你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
hhhhhhhaa 发表于 2018-11-20 15:01 因为我接收数据是要在5分钟内的任意时刻都可以,不能用中断的,需要一直检查有没有收到数据 ...
stm1024 发表于 2018-11-20 15:09 可能我没表达清楚。 1.串口发送数据前,定时器配置好,但是未使能。 2.串口发送数据后,定时器使能,开启 ...
安 发表于 2018-11-20 15:05 数据读取不及时,会有溢出的风险,所以还是用中断接收放入缓冲区,其他地方再对缓冲区进行判断处理。如果能 ...
TLLED 发表于 2018-11-20 16:46 我觉得可以这样处理,串口1数据输出数据后, 打开定时器,串口接收要使用中断接收,不要使用循环查询方式, ...
hhhhhhhaa 发表于 2018-11-20 17:10 大神,你说的这个太高深,我看不懂,我初学这个。。。。
安 发表于 2018-11-20 17:14 如果串口数据不能及时读取,后面来的数据就会导致串口产生溢出错误。
安 发表于 2018-11-21 08:54 是会产生中断,需要清除溢出标志位和读取数据寄存器,这个手册里面都写了的。 ...
可能我没表达清楚。
1.串口发送数据前,定时器配置好,但是未使能。
2.串口发送数据后,定时器使能,开启五分钟倒计时
3.while循环里面检查串口数据,如果:
3.1 5分钟内收到数据,则认为未超时,失能定时器,然后主循环做有应答的逻辑
3.2 5分钟后未收到数据,定时器中断被触发,修改标识超时的全局变量,失能定时器,主循环中做超时无应答的逻辑
为什么一定不能用中断呢?有其他原因吗?
额,定时器中断后,还是会继续啊,是不是要在中断里把定时器失能啊?因为我没用过定时器,现在也是找了一个例子
大神,你说的这个太高深,我看不懂,我初学这个。。。。
嗯,我就是一直在查询接收的数据,和您说的差不多
如果串口数据不能及时读取,后面来的数据就会导致串口产生溢出错误。
定时器是不是开启以后,如果不停止就会一直进行下去?
不懂啊,比如说一直给这个串口发命令,如果中断里没有读取的话,中断标志位也就不会清除,那是不是就是会一直在中断里死循环了?死循环以后还怎么溢出啊
嗯,这个再手册里看到了,我其实不太懂您说的意思啊,流程没搞懂O(∩_∩)O哈哈~