OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8948|回复: 3

串口少接收了1个数据求救。

[复制链接]

3

主题

7

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2011-8-29
在线时间
1 小时
发表于 2011-9-7 09:52:55 | 显示全部楼层 |阅读模式
 
正点大哥  想请教一下 我在进行串口调试时 从上位机向stm32发送字符 AA  78  00  02  CC  33  C3  3C,接收正常!然后再发送 AA  78  00  02  CC  33  C3  3C,竟然发现没有接收到AA,后面的几个字符均正常接收,求教,串口程序如下:
void USART1_IRQHandler()
{
 u8 res;
 if(USART1->SR&(1<<5))
 {   
  res=USART1->DR;   
  USART_RX_BUF[USART_RX_STA&0X3F]=res;
     USART_RX_STA++;
     if((USART_RX_BUF[0]==0xAA)&&(USART_RX_BUF[1]==0x78)&&(USART_RX_BUF[4]==0xCC)&&(USART_RX_BUF[5]==0x33)&&(USART_RX_BUF[6]==0xC3)&&(USART_RX_BUF[7]==0x3C))
     { kkk3=USART_RX_BUF[3];
               USART_RX_STA=0;}      
  }           
}
请问错在哪里,搞了几天了,就是搞不明白,先谢谢了。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2011-9-7 10:18:44 | 显示全部楼层
回复【楼主位】cdust:
---------------------------------
你这种机制,问题很大.
比如,你这个如果每次都发送正确,每次都接收正确,那是没问题的.
问题是,如果你发送过程中,某个数据错了,那么按照你的这个规律,恐怕永远也回不到正确的轨道了.也就是数据只要一次有误,后面永远都是错的了.
你必须有其他机制,来保证发生错误的时候,可以设置USART_RX_STA为0,而且后续等下一次数据开始才接收.

所以要我说,你这个应该是在接收过程中受到错误的东西了,导致后续全部都无法接收正确了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

3

主题

7

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2011-8-29
在线时间
1 小时
 楼主| 发表于 2011-9-7 10:49:43 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
我明白你的意思,你是要我建立1个错误接收后的处理机制,这个我会加进去的。主要是是我监控了数据,发现上位机发送的数据准确,但是接收第二个数据就是少了前面1个AA,不是偶然发生的,而是每次都这样,所以上面的程序肯定有问题,但是我不知道问题在哪?求教
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2011-9-7 12:26:33 | 显示全部楼层
上面的程序,我看也没有问题.可以正确接受.只要你的数据无错误.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 22:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表