本文主要叙述在使用STM32的串口(USART)与上位机进行通信时的程序设计思路,同时也是串口通信的程序运行原理。
1、当接收到从电脑发过来的数据时,
①把接收到的数据保存在数组(g_usart_rx_buf)中;
②在接收状态寄存器(g_usart_rx_sta)中计数接收到的有效数据个数;
2、当收到回车(回车的表示由2个字节组成:0x0D 和 0x0A)的第一个字节 0x0D 时,
①计数器将不再增加,等待 0x0A 的到来;
②如果 0x0A 没有来到,则认为这次接收失败,重新开始下一次接收。
③如果顺利接收到 0x0A,则标记 g_usart_rx_sta 的第 15 位,这样完成一次接收,并等待该位被其他程序清除,从而开始下一次的接收。
3、如果迟迟没有收到 0x0D,那么在接收数据超过 USART_REC_LEN 的时候,则会丢弃前面的数据,重新接收。