打印

RTC中断过程中,串口发送数据丢失问题

[复制链接]
3957|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
startostar|  楼主 | 2011-8-1 14:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32F103 ,串口发送数据采用主程序查询方式,RTC开启秒中断,问题如下
:发现发送的数据不定期丟数,怀疑是否是秒中断中断时破坏发送数据。
想问这种情况是否会发生,怎么可以避免中断破坏查询式数据发送?

谢谢
沙发
yujie870705| | 2011-8-1 14:44 | 只看该作者
一般发送数据时会关掉所有中断

使用特权

评论回复
板凳
startostar|  楼主 | 2011-8-1 14:57 | 只看该作者
我串口1s要发50帧数据,如果关RTC的话,RTC计数精度会偏差很大,有没更好的办法

使用特权

评论回复
地板
香水城| | 2011-8-1 15:09 | 只看该作者
不应该发生这种问题,如果出现这样的问题,很可能是你的UART部分的数据变量与RTC部分的数据变量之间发生了冲突,可以重点从这个思路查查。

使用特权

评论回复
5
startostar|  楼主 | 2011-8-1 15:19 | 只看该作者
是香水城,不是数据装进发送缓冲器里,位发送过程中不会受中断影响?

使用特权

评论回复
6
香水城| | 2011-8-1 15:22 | 只看该作者
是香水城,不是数据装进发送缓冲器里,位发送过程中不会受中断影响?
startostar 发表于 2011-8-1 15:19


如果数据没有装进发送缓冲器时,也不会受中断影响吗?这是你的程序部分需要处理的。

使用特权

评论回复
7
startostar|  楼主 | 2011-8-1 15:35 | 只看该作者
我发送数据用的变量是单独定义的变量,其他地方没有改写它的地方,其他情况有可能改写它吗?请指点下可能的几种情况,还有我用串口调试助手接收发送的数据是帧丢字节不是帧内数据错,您觉得还有啥可能性

使用特权

评论回复
8
香水城| | 2011-8-1 15:43 | 只看该作者
又是用串口调试助手! 本论坛中出现过无数次因为串口调试助手出现接收数据错误!!

请直接用示波器看。

使用特权

评论回复
9
startostar|  楼主 | 2011-8-1 15:48 | 只看该作者
我发送数据太快了,115200,一秒50帧,而且数据是变化的,最要命的是好久才出现一次,示波器捉不到
降低数据率和帧率的话,我可能要等N分钟,。。
串口调试助手出现接收数据错误?用了N年了还真没碰过,他们出现的能是溢出错误?

使用特权

评论回复
10
香水城| | 2011-8-1 16:50 | 只看该作者
一个简单的判断方法,你可以设置一个计数器变量,每次在装载数据到发送缓冲器时,把这个变量加1,如果这个变量不等于要发送的数目,说明数据根本没有送入发送缓冲器;如果这个变量等于发送的数目,则有可能是数据重叠或串口调试助手的问题。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

30

帖子

1

粉丝