串口初始化
/* enable GPIO clock */
rcu_periph_clock_enable(RCU_GPIOD);//使能GPIOA时钟
/* enable USART clock */
rcu_periph_clock_enable(RCU_USART1);//使能USART0时钟
gpio_af_set(GPIOD, GPIO_AF_7, GPIO_PIN_5);//复用功能7
gpio_mode_set(GPIOD, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_5);//PA9配置成串口输出
gpio_output_options_set(GPIOD, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ,GPIO_PIN_5);
gpio_af_set(GPIOD, GPIO_AF_7, GPIO_PIN_6);//复用功能7
gpio_mode_set(GPIOD, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_6);//PA10配置成串口输入
gpio_output_options_set(GPIOD, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ,GPIO_PIN_6);
usart_deinit(USART1); // 串口复位
usart_word_length_set(USART1, USART_WL_8BIT); // 字长
usart_stop_bit_set(USART1, USART_STB_1BIT); // 停止位
usart_parity_config(USART1, USART_PM_NONE);
usart_baudrate_set(USART1, 9600U); // 波特率
usart_receive_config(USART1, USART_RECEIVE_ENABLE); // 接收使能
usart_transmit_config(USART1, USART_TRANSMIT_ENABLE); // 发送使能
usart_hardware_flow_rts_config(USART1, USART_RTS_DISABLE);
usart_hardware_flow_cts_config(USART1, USART_CTS_DISABLE);
usart_enable(USART1); // 串口使能
nvic_irq_enable(USART1_IRQn,1,0);
|