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

串口接收延时问题

[复制链接]
hhhhhhhaa 提问时间:2018-11-20 09:01 /
阅读主题, 点击返回1楼
收藏 评论24 发布时间:2018-11-20 09:01
24个回答
stm1024 回答时间:2018-11-20 15:09:01
hhhhhhhaa 发表于 2018-11-20 15:01
因为我接收数据是要在5分钟内的任意时刻都可以,不能用中断的,需要一直检查有没有收到数据 ...

可能我没表达清楚。
1.串口发送数据前,定时器配置好,但是未使能。
2.串口发送数据后,定时器使能,开启五分钟倒计时
3.while循环里面检查串口数据,如果:
3.1 5分钟内收到数据,则认为未超时,失能定时器,然后主循环做有应答的逻辑
3.2 5分钟后未收到数据,定时器中断被触发,修改标识超时的全局变量,失能定时器,主循环中做超时无应答的逻辑
为什么一定不能用中断呢?有其他原因吗?
TLLED 回答时间:2018-11-20 16:46:14
我觉得可以这样处理,串口1数据输出数据后, 打开定时器,串口接收要使用中断接收,不要使用循环查询方式,否则会出现丢数据现象,使用中断不影响,在规定的时间内接收到数据后,把有关接收定时器的变量清零,没有接收到数据就去判断超时处理。
hhhhhhhaa 回答时间:2018-11-20 17:09:29
stm1024 发表于 2018-11-20 15:09
可能我没表达清楚。
1.串口发送数据前,定时器配置好,但是未使能。
2.串口发送数据后,定时器使能,开启 ...

额,定时器中断后,还是会继续啊,是不是要在中断里把定时器失能啊?因为我没用过定时器,现在也是找了一个例子
hhhhhhhaa 回答时间:2018-11-20 17:10:26
安 发表于 2018-11-20 15:05
数据读取不及时,会有溢出的风险,所以还是用中断接收放入缓冲区,其他地方再对缓冲区进行判断处理。如果能 ...

大神,你说的这个太高深,我看不懂,我初学这个。。。。
hhhhhhhaa 回答时间:2018-11-20 17:11:36
TLLED 发表于 2018-11-20 16:46
我觉得可以这样处理,串口1数据输出数据后, 打开定时器,串口接收要使用中断接收,不要使用循环查询方式, ...

嗯,我就是一直在查询接收的数据,和您说的差不多
回答时间:2018-11-20 17:14:50
hhhhhhhaa 发表于 2018-11-20 17:10
大神,你说的这个太高深,我看不懂,我初学这个。。。。

如果串口数据不能及时读取,后面来的数据就会导致串口产生溢出错误。
hhhhhhhaa 回答时间:2018-11-20 17:15:14
stm1024 发表于 2018-11-20 15:09
可能我没表达清楚。
1.串口发送数据前,定时器配置好,但是未使能。
2.串口发送数据后,定时器使能,开启 ...

定时器是不是开启以后,如果不停止就会一直进行下去?
hhhhhhhaa 回答时间:2018-11-21 08:33:35
安 发表于 2018-11-20 17:14
如果串口数据不能及时读取,后面来的数据就会导致串口产生溢出错误。

不懂啊,比如说一直给这个串口发命令,如果中断里没有读取的话,中断标志位也就不会清除,那是不是就是会一直在中断里死循环了?死循环以后还怎么溢出啊
回答时间:2018-11-21 08:54:46
是会产生中断,需要清除溢出标志位和读取数据寄存器,这个手册里面都写了的。
hhhhhhhaa 回答时间:2018-11-21 13:28:37
安 发表于 2018-11-21 08:54
是会产生中断,需要清除溢出标志位和读取数据寄存器,这个手册里面都写了的。 ...

嗯,这个再手册里看到了,我其实不太懂您说的意思啊,流程没搞懂O(∩_∩)O哈哈~

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版