STME32使用RTOS与ADC_DMA冲突
*以下文章资源均来自互联网,文章内容仅供参考,如果侵犯了您的权益,请留言或通过邮箱与我联系。
The following article resources are all from the Internet, the content of the article is for reference only. If you violate your rights and interests, please leave a message or contact me through email.
E-mail:chaoliang.hou@cn-depulong.com
/****************************************************************************************
在我学习STM32的时候使用的是正点原子的开发板,所以里面的有些代码可能使用了例程中的代码,如果这里会涉及利益上的问题,请与我取得联系。
/*****************************************************************************************
STME32使用RTOS与ADC_DMA冲突
在使用STM32过程中,使用RTOS操作系统,并且也使用ADC采集电压(使用DMA数据传输),发现在打开ADC的DMA数据传输之后,操作系统就会挂掉,经过很多种方法,最后找到原因,ADC的采样周期太小,调整ADC的采样周期就可以。
1.问题发现
在RTOS初始化之前打开ADC的DMA之后,RTOS无法运行,直接卡在第一个任务中。
在关闭DMA之后,RTOS就可以执行任务了。
在这之后,RTOS就可以正常执行任务了,那这样看的话,就是ADC的DMA出了问题。
2.问题解决
在搜集了大量资料之后,在一个网站上发现了,有大神的解决方案
CUBEMX_FREERTOS ADC_DMA死机,高手一定遇到过
https://www.stmcu.org.cn/module/forum/thread-613621-1-1.html
(出处: 论坛-意法半导体STM32/STM8技术社区)
帖子上面说,要调整ADC的采样周期,在调整之后问题就解决了。
在这之前ADC的采样周期是1.5,现在改为239.5,问题得到解决。
总结
以上是生活随笔为你收集整理的STME32使用RTOS与ADC_DMA冲突的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: Nutanix 在 2020 .NEXT
- 下一篇: TeXstudio安装和运行