首页 > 其他 > 详细

stm32的串口接收问题

时间:2016-03-02 12:56:43      阅读:163      评论:0      收藏:0      [点我收藏+]

stm32在使用中断方式进行串口接收数据的时候,官方库中可以调用USART_ReceiveData(USART1),似乎并没有现成的功能可以使用,而且keil中使用一般意义上的字符串又很困难,所以这些东西大多需要自己现写,分享一下我写的思路。

比如接收四个字符,如下代码编译器需要进入四次中断来完整接收四个字节的数据,这里简单的接收到最后一位的时候转回头一位来接收。

void USART1_IRQHandler(void)
{
    if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) 
    { 
      USART_ClearITPendingBit(USART2,USART_IT_RXNE);        
      data[i] = USART_ReceiveData(USART1);
      i++;
      if(i==4)i=0;
    }
}

这样容易产生丢包,而且对于长度不同的消息很难处理,所以更多的时候需要自己灵活定义一个协议,例如#abcdef*,然后通过判断起始和结尾的字符,把中间的内容存到数组里面来实现多位数据或者字符串的接收。

stm32的串口接收问题

原文:http://www.cnblogs.com/kyasever/p/5234329.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!