STM32F107的串口通讯总结
STM32F107的串口通讯总结
1. STM32的一般规律,首先要使用串口必先使能串口时钟,比如串口1: RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);
2. 串口使用的GPIO口设置: 首先使能GPIO的时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);其次GPIO端口的模式配置(复用推挽输出、浮空输入等)
3. 主程序有中断的要使用中断配置,注意中断的抢占优先级和子优先级,串口的一般排次位。
初始化中断。
4. 串口配置 : 波特率、字节长度 、停止位、奇偶校验、模式、硬件流控制等
初始化串口、串口接收中断使能、串口使能。
5. 接收中断服务函数编写, voidUSART1_IRQHandler(void)。
一般来说,接收中断服务函数要考虑的问题比较多,主要有一下几点: 接收数据的正确性(某字节的校验、包括CRC校验等),数据长度的正确性(是否接收完整),数据接收过程中突然出现中断或者死机的防护措施等。
6. 串口函数的发送和接收函数 USART_SendData(USART_TypeDef*USARTx, uint16_t Data);
uint16_tUSART_ReceiveData(USART_TypeDef* USARTx);
7. 串口的状态标志 FlagStatusUSART_GetFlagStatus(USART_TypeDef* USARTx, uint16_t USART_FLAG);
清除串口的中断标志 voidUSART_ClearITPendingBit(USART_TypeDef* USARTx, uint16_t USART_IT);
------ 串口章节算是比较复杂的,涉及的内容比较多,也是重点。学好了为以后的485通讯做好基础。