OpenEdv-开源电子网

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

FreeRTOS+DMA+ 空闲中断,一个容易隐藏的问题

[复制链接]

4

主题

44

帖子

0

精华

高级会员

Rank: 4

积分
635
金钱
635
注册时间
2019-4-23
在线时间
84 小时
发表于 2019-7-9 15:57:24 | 显示全部楼层 |阅读模式
本帖最后由 jiuhao2019 于 2019-7-9 20:15 编辑

串口接收中断里,采用网上多数的例子,先关DMA,接收数据,再开DMA和重置DMA接收number;.
如果DMA设置模式用normal或circular,一般情况下是正常的;
如果设置为circular,有高负载情况,同时频繁发送,频繁接收;会产生一个问题现象,接收buff里的数据某时刻不会变了.虽然这时能正常的进入空闲中断;
将DMA模式设置为normal,没有出现问题现象;
待验证.



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

使用道具 举报

4

主题

44

帖子

0

精华

高级会员

Rank: 4

积分
635
金钱
635
注册时间
2019-4-23
在线时间
84 小时
 楼主| 发表于 2019-7-10 09:26:00 | 显示全部楼层
串口部分,HAL改成LL,没有出现问题现象;待进一步验证.
回复 支持 反对

使用道具 举报

4

主题

44

帖子

0

精华

高级会员

Rank: 4

积分
635
金钱
635
注册时间
2019-4-23
在线时间
84 小时
 楼主| 发表于 2019-8-30 14:35:26 | 显示全部楼层
可能是__HAL_LOCK(huart);__HAL_UNLOCK(huart);这个引起的.HAL库的串口全双工不支持RTOS吧因为跟踪这个锁的定义就会发现.
回复 支持 反对

使用道具 举报

0

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2019-8-9
在线时间
18 小时
发表于 2019-8-31 15:50:41 | 显示全部楼层
很好的资料,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 22:33

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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