STM32F0x芯片的IDLE模式问题

2019-08-14 15:02发布

想要实现的功能:
通过使能串口的IDLE中断实现获取一帧数据的信息,而不需要每接收到一个字节就进入一次中断判断一次,使用IDLE只需在数据接收完毕后,在主循环不断判断IDLE对应的标志位即可。

问题描述:
串口的引脚相关配置是正常的,可正常收发串口数据,printf也可使用,但在使能了IDLE后,printf打印一个字符后就停止了,接下来收发就再无反应,只能重启,但重启后还是同样的效果。

疑问:
1、F0和F1的部分寄存器不相同,是否有遗漏需要设置的地方?
2、其他朋友们有没有遇到同样或相似的问题?可否提供例程?

谢谢。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
l6931639
1楼-- · 2019-08-14 23:49
我用的是F0,F1没有怎么用过。在使用过程中也出现过你说的情况,后来发现是打开空闲中断时还使用了DMA接收中断和发送中断,产生中断冲突了。你没有代码,不确定你的问题是什么。
Dinor
2楼-- · 2019-08-15 03:00
l6931639 发表于 2017-8-15 11:16
我用的是F0,F1没有怎么用过。在使用过程中也出现过你说的情况,后来发现是打开空闲中断时还使用了DMA接收 ...

我并没有使用DMA
huanghan
3楼-- · 2019-08-15 06:10
 精彩回答 2  元偷偷看……
huanghan
4楼-- · 2019-08-15 11:35
Dinor 发表于 2017-8-15 09:40
这个例程不是用空闲中断吧

不是空闲中断,是接收中断。
l6931639
5楼-- · 2019-08-15 14:43
huanghan 发表于 2017-8-16 13:27
用空闲中断不知道什么时候有数据来,接收会丢帧吧!要接收不定长的帧数据,用DMA

空闲中断与dma配合,没有出现过丢帧

一周热门 更多>