OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5421|回复: 12

STM32F0x芯片的IDLE模式问题

[复制链接]

4

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2017-8-14
在线时间
20 小时
发表于 2017-8-14 17:33:45 | 显示全部楼层 |阅读模式
1金钱
想要实现的功能:
通过使能串口的IDLE中断实现获取一帧数据的信息,而不需要每接收到一个字节就进入一次中断判断一次,使用IDLE只需在数据接收完毕后,在主循环不断判断IDLE对应的标志位即可。

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

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

谢谢。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

266

帖子

0

精华

高级会员

Rank: 4

积分
693
金钱
693
注册时间
2017-7-27
在线时间
98 小时
发表于 2017-8-14 20:09:27 | 显示全部楼层
这是空闲中断,开接收中断就可以了,
回复

使用道具 举报

10

主题

266

帖子

0

精华

高级会员

Rank: 4

积分
693
金钱
693
注册时间
2017-7-27
在线时间
98 小时
发表于 2017-8-14 20:19:43 | 显示全部楼层
STM32F103VB  给你参考

EVAL_串口输入输出实验3.rar

3.34 MB, 下载次数: 182

回复

使用道具 举报

17

主题

354

帖子

0

精华

高级会员

Rank: 4

积分
797
金钱
797
注册时间
2017-5-21
在线时间
340 小时
发表于 2017-8-15 05:16:39 来自手机 | 显示全部楼层
空闲中断完全可以在中断里操作,开启接收中断进行判断。不必要占用主程序
回复

使用道具 举报

4

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2017-8-14
在线时间
20 小时
 楼主| 发表于 2017-8-15 09:40:20 | 显示全部楼层
huanghan 发表于 2017-8-14 20:09
这是空闲中断,开接收中断就可以了,

我就是想用空闲中断接收一帧的数据后再处理数据,但是打开空闲中断就有以上的问题了
回复

使用道具 举报

4

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2017-8-14
在线时间
20 小时
 楼主| 发表于 2017-8-15 09:40:48 | 显示全部楼层
huanghan 发表于 2017-8-14 20:19
STM32F103VB  给你参考

这个例程不是用空闲中断吧
回复

使用道具 举报

4

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2017-8-14
在线时间
20 小时
 楼主| 发表于 2017-8-15 09:41:31 | 显示全部楼层
l6931639 发表于 2017-8-15 05:16
空闲中断完全可以在中断里操作,开启接收中断进行判断。不必要占用主程序

要接收不定长的帧数据,用空闲中断是比较好的
回复

使用道具 举报

17

主题

354

帖子

0

精华

高级会员

Rank: 4

积分
797
金钱
797
注册时间
2017-5-21
在线时间
340 小时
发表于 2017-8-15 11:16:55 | 显示全部楼层
我用的是F0,F1没有怎么用过。在使用过程中也出现过你说的情况,后来发现是打开空闲中断时还使用了DMA接收中断和发送中断,产生中断冲突了。你没有代码,不确定你的问题是什么。
回复

使用道具 举报

4

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2017-8-14
在线时间
20 小时
 楼主| 发表于 2017-8-15 11:59:54 | 显示全部楼层
l6931639 发表于 2017-8-15 11:16
我用的是F0,F1没有怎么用过。在使用过程中也出现过你说的情况,后来发现是打开空闲中断时还使用了DMA接收 ...

我并没有使用DMA
回复

使用道具 举报

10

主题

266

帖子

0

精华

高级会员

Rank: 4

积分
693
金钱
693
注册时间
2017-7-27
在线时间
98 小时
发表于 2017-8-16 13:27:14 | 显示全部楼层
用空闲中断不知道什么时候有数据来,接收会丢帧吧!要接收不定长的帧数据,用DMA
回复

使用道具 举报

10

主题

266

帖子

0

精华

高级会员

Rank: 4

积分
693
金钱
693
注册时间
2017-7-27
在线时间
98 小时
发表于 2017-8-16 13:29:56 | 显示全部楼层
Dinor 发表于 2017-8-15 09:40
这个例程不是用空闲中断吧

不是空闲中断,是接收中断。
回复

使用道具 举报

17

主题

354

帖子

0

精华

高级会员

Rank: 4

积分
797
金钱
797
注册时间
2017-5-21
在线时间
340 小时
发表于 2017-8-16 14:10:43 来自手机 | 显示全部楼层
huanghan 发表于 2017-8-16 13:27
用空闲中断不知道什么时候有数据来,接收会丢帧吧!要接收不定长的帧数据,用DMA

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

使用道具 举报

0

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2019-5-13
在线时间
17 小时
发表于 2020-6-3 11:02:59 | 显示全部楼层
用IDLE也是先单字节中断把串口数据存下来,等收到IDLE中断证明一帧结束,把之前存的数据做处理
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-29 09:01

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表