打印
[应用相关]

STM32F103使用cubemx配置ADC和DMA导致delay函数无法使用的问题

[复制链接]
1199|18
手机看帖
扫描二维码
随时随地手机跟帖
楼主
cr315|  楼主 | 2022-6-2 10:14 | 只看该作者 回帖奖励 |倒序浏览
。。。。

使用特权

评论回复
沙发
cr315|  楼主 | 2022-6-3 10:00 | 只看该作者 |阅读模式
问题补充:
用CUBEMX配置完adc和dma后在主函数中调用函数HAL_ADC_Start_DMA(&hadc1,(uint32_t *)&DMA_value,6);

会导致while循环中的delay延时函数失效,具体情况是:
不打开ADC,delay函数正常使用,可以1S打印一次信息,
但是打开HAL_ADC_Start_DMA(&hadc1,(uint32_t *)&DMA_value,6);函数后,打印频率不是1S,而是比1S快
同样,只使用ADC不使用DMA,在while循环之前打开HAL_ADC_Start_IT(&hadc1);,可以1S打印一次信息,
但是如果同时打开HAL_ADC_Start_IT(&hadc1);和HAL_ADC_Start(&hadc1);,就会导致打印的频率比1S快
有没有大佬知道如何解决问题

使用特权

评论回复
板凳
51xlf| | 2022-6-6 13:07 | 只看该作者
因为你使能了中断。   

使用特权

评论回复
地板
robertesth| | 2022-6-7 16:07 | 只看该作者
DMA一直在产生中断代码   

使用特权

评论回复
5
kkzz| | 2022-6-20 20:00 | 只看该作者
ADC和DMA这个确实有问题。   

使用特权

评论回复
6
janewood| | 2022-6-24 09:46 | 只看该作者
DMA中断去掉就可以 。

使用特权

评论回复
7
soodesyt| | 2022-6-24 11:31 | 只看该作者
使用cubemx取消强制中断。  

使用特权

评论回复
8
pl202| | 2022-6-24 13:48 | 只看该作者
STM32F103性能有问题吗

使用特权

评论回复
9
sonicll| | 2022-6-24 14:18 | 只看该作者
估计是中断优先级设置的问题

使用特权

评论回复
10
chenci2013| | 2022-6-25 12:41 | 只看该作者
应该是代码就不执行了吧   

使用特权

评论回复
11
saservice| | 2022-6-25 13:34 | 只看该作者
这个没有设置好。  

使用特权

评论回复
12
tpgf| | 2022-7-1 10:27 | 只看该作者
还有这种副作用啊

使用特权

评论回复
13
qcliu| | 2022-7-1 10:38 | 只看该作者
有相关文档说明吗

使用特权

评论回复
14
gwsan| | 2022-7-1 11:02 | 只看该作者
有官方文档说明吗

使用特权

评论回复
15
tfqi| | 2022-7-1 11:09 | 只看该作者
只能想办法避开它

使用特权

评论回复
16
nawu| | 2022-7-1 11:17 | 只看该作者
cubemx可以取消强制中断

使用特权

评论回复
17
zljiu| | 2022-7-1 11:43 | 只看该作者
这个如何进行取消呢

使用特权

评论回复
18
香水城| | 2022-7-1 12:50 | 只看该作者
应该是中断优先级配置方面的问题,你确认下你的程序逻辑。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1322

主题

3795

帖子

0

粉丝