你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F207串口接收内容不全

[复制链接]
LL-395390 提问时间:2012-11-23 11:00 /
处理器为STM32F207,我的串口1初始化正常,其向PC上串口发送内容, 具体语句为printf("\r\ntest gprs start\n"); 调试助手显示正常。但是,我用调试助手向串口发送数据,却总是收不全,而且每次收到的不一样?为啥?我觉得我尽可能解决了好多问题。
不过,我不想让每次收到的数据都挨着,所以加了个换行语句USART_SendData(USART1 ,0xA);结果就不行了!

while (1)
    {
        /* 等待USART1接收数据完毕 */
          if(USART_GetFlagStatus(USART1 , USART_IT_RXNE) == SET)
         {
             /* 向串口发送接收到的数据 */
    USART_SendData(USART1 , USART_ReceiveData(USART1));
          /* 短延时,保证收发稳定性 */
       for(i = 0; i < 500; i ++);
   
    USART_SendData(USART1 ,0xA);
    for(i = 0; i < 500; i ++);
       while(USART_GetFlagStatus(USART1,USART_IT_TXE) == SET);
   }
  }

我发送的是abcdefgfgdfgdfgdfgdfgdfgdfg,但是收获结果为:
abcd
abcd
a
abcdefg
abcde
abcd

abcdefg
a


请问为啥?谢谢。
另外还有个问题,感觉STM32的库函数USART_Receive或者Send这么写之后,我都搞不太清我通过串口收的具体内容是什么?不如写个buf[SIZE]接收后,在处理?谁能给我说下,该怎么处理?如果能有用数组接收内容的例程给我一份好吗?因为我通过串口收到的数据需要处理后再发送!
收藏 评论1 发布时间:2012-11-23 11:00

举报

1个回答
高山-404205 回答时间:2012-12-1 12:46:33

回复:STM32F207串口接收内容不全

查询方式,不能保障重叠的问题。必须中断,或者DMA方式。
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版