你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
stm1024 发表于 2018-11-20 15:09 可能我没表达清楚。 1.串口发送数据前,定时器配置好,但是未使能。 2.串口发送数据后,定时器使能,开启 ...
查看全部评分
奏奏奏 发表于 2018-11-21 13:42 建议楼主先把STM32串口中断的原理先搞懂 版主回复了这么多好像也没有在一个频道上, 楼主说的中断是定时器 ...
党国特派员 发表于 2018-12-3 17:36 就是一个接收超时的检测。关键是在接收的这段时间里你还要不要MCU去处理其它事情。 1、接收时MCU不处理其它 ...
我现在就是这么做的,
版主回复了这么多好像也没有在一个频道上,
楼主说的中断是定时器中断,其他人说的是串口中断,不要搞混了,理解不了很正常。
评分
查看全部评分
不管哪个中断吧,我确实没搞懂,现在程序能用了,用的定时器中断计数,计数到一定值了,就跳出循环,在循环的时候一直监测有没有收到数据
1、接收时MCU不处理其它事情,就是检测是否有数据到达,那就简单。发完成后,开一个计时器(timer,systick)都可以,1秒中记数一次,在接收检测函数里读一下时间做判断。
2、接收时MCU还要处理其它的事情,这个就是要在接收中断里来接收数据。发完成后,开一个5分钟的定时器,只要定时器中断触发了,说明接收超时了。如果在5分钟(中断)内接到数据,立马停止定时器。接收成功。这种就相当于异步通讯。异步处理起来相当麻烦。首先你得发送和接收一一对应,还有可能出现接收乱序的问题。如果没有OS支持,那是相当的痛苦。
评分
查看全部评分
您说的很好,我现在设计的这个就是串口通讯,不做别的,相当于一个串口测试工具,把需要发送和接收的数据储存在MCU里,然后通过触摸屏来发送接收数据,测试各个串口,加上了定时器,还挺好用的,以前不懂定时器,用的是延时,结果延时的时候MCU都来处理延时了,接收了数据也收不到了,所以后来开始学习定时器,感觉挺方便的,设置好定时器后,开启定时器,就可以一直扫描串口接收到的数据,如果定时器到五分钟了还没有收到数据,说明设备有问题,直接跳出扫描,根据不同的串口,设置不同的等待时间,开启不同的定时器,哈哈,已经试验成功了,现在正在测量电池的电压问题,ADC 两个电阻搞定,正在测试程序和完善界面