STM32L431在去掉注释memcpy后会不断重启
STM32F4的串口在配置DMA之后,不能使用高波特率吗?
用stm32cubeide上传串口通信代码之后,st-link红灯一直亮,再想下载的时候显示Target no device found
stm32f103USART2无法收发信息
请问为什么自己加了stdio.h,sprintf还是用不了?
串口重定向为什么printf不能打印到串口上
STM32H7串口智能卡模式
STM32F103做从站 上电过程,上位机不断发送数据造成,通讯失败,请大侠指导一下
蓝牙串口接受18位数据(包含包头1、包尾1、校验1)错位
STM32H747I-DISCO开发板无法连接芯片
如果串口数据不能及时读取,后面来的数据就会导致串口产生溢出错误。
定时器是不是开启以后,如果不停止就会一直进行下去?
不懂啊,比如说一直给这个串口发命令,如果中断里没有读取的话,中断标志位也就不会清除,那是不是就是会一直在中断里死循环了?死循环以后还怎么溢出啊
嗯,这个再手册里看到了,我其实不太懂您说的意思啊,流程没搞懂O(∩_∩)O哈哈~
我现在就是这么做的,
版主回复了这么多好像也没有在一个频道上,
楼主说的中断是定时器中断,其他人说的是串口中断,不要搞混了,理解不了很正常。
评分
查看全部评分
不管哪个中断吧,我确实没搞懂,现在程序能用了,用的定时器中断计数,计数到一定值了,就跳出循环,在循环的时候一直监测有没有收到数据
1、接收时MCU不处理其它事情,就是检测是否有数据到达,那就简单。发完成后,开一个计时器(timer,systick)都可以,1秒中记数一次,在接收检测函数里读一下时间做判断。
2、接收时MCU还要处理其它的事情,这个就是要在接收中断里来接收数据。发完成后,开一个5分钟的定时器,只要定时器中断触发了,说明接收超时了。如果在5分钟(中断)内接到数据,立马停止定时器。接收成功。这种就相当于异步通讯。异步处理起来相当麻烦。首先你得发送和接收一一对应,还有可能出现接收乱序的问题。如果没有OS支持,那是相当的痛苦。
评分
查看全部评分
您说的很好,我现在设计的这个就是串口通讯,不做别的,相当于一个串口测试工具,把需要发送和接收的数据储存在MCU里,然后通过触摸屏来发送接收数据,测试各个串口,加上了定时器,还挺好用的,以前不懂定时器,用的是延时,结果延时的时候MCU都来处理延时了,接收了数据也收不到了,所以后来开始学习定时器,感觉挺方便的,设置好定时器后,开启定时器,就可以一直扫描串口接收到的数据,如果定时器到五分钟了还没有收到数据,说明设备有问题,直接跳出扫描,根据不同的串口,设置不同的等待时间,开启不同的定时器,哈哈,已经试验成功了,现在正在测量电池的电压问题,ADC 两个电阻搞定,正在测试程序和完善界面