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

查看: 3554|回复: 1

STM32F207串口接收内容不全

[复制链接]

3

主题

9

回帖

0

蝴蝶豆

初级会员

最后登录
2019-7-25
发表于 2012-11-23 11:00:51 | 显示全部楼层 |阅读模式
处理器为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

主题

4

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2012-12-1 12:46:33 | 显示全部楼层

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

查询方式,不能保障重叠的问题。必须中断,或者DMA方式。
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版