打印
[STM32F1]

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

[复制链接]
2748|46
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gshhkkk|  楼主 | 2022-7-26 18:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用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快
有没有大佬知道如何解决问题

使用特权

评论回复
沙发
未说出口的像你| | 2022-8-16 06:46 | 只看该作者
这个可能是因为初始化顺序的问题吧

使用特权

评论回复
板凳
我吃小朋友| | 2022-8-16 07:08 | 只看该作者
是不是你初始化的问题呢?

使用特权

评论回复
地板
失物招領| | 2022-8-16 07:31 | 只看该作者
这个官方是否有demo呀,你可以参考demo来找找原因

使用特权

评论回复
5
将爱藏于深海| | 2022-8-16 07:53 | 只看该作者
可以关闭DMAADC是否正常啊

使用特权

评论回复
6
故意相遇| | 2022-8-16 08:15 | 只看该作者
你可以问问STFAE,他家hal自动生成虽然简单,但是遇到问题也不好搞

使用特权

评论回复
7
白马过平川| | 2022-8-16 08:38 | 只看该作者
打印频率快1秒呢?时序的问题?

使用特权

评论回复
8
风凉| | 2022-8-16 08:59 | 只看该作者
没遇到过这问题啊,感觉像程序逻辑的事儿

使用特权

评论回复
9
捧一束彼岸花| | 2022-8-16 09:23 | 只看该作者
你可以把工程附上来,让大家帮你看看

使用特权

评论回复
10
月亮一键变蓝| | 2022-8-16 09:45 | 只看该作者
. Whiledelay函数失效,是不是因为你的delay采用的不是软延时呢?

使用特权

评论回复
11
在曼谷的春| | 2022-8-16 10:08 | 只看该作者
正常delay你要是用定时器的话,也不会失效的啊,你可以看看初始化地方,定时器是否初始化了

使用特权

评论回复
12
suzhanhua| | 2022-8-17 16:44 | 只看该作者
是不是开启了中断呢?   

使用特权

评论回复
13
phoenixwhite| | 2022-8-18 17:30 | 只看该作者
这个需要关闭DMA的中断代码。   

使用特权

评论回复
14
SantaBunny| | 2023-2-23 20:03 | 只看该作者
delay延时用的是for while死循环,这种延时精度不高,当有频繁中断产生时,延时就会变长,如果要精准定时建议你使用定时器,并且用优先级别较高的定时器

使用特权

评论回复
15
中国龙芯CDX| | 2024-3-31 22:54 | 只看该作者
直接使用官方的程序进行移植会更好的

使用特权

评论回复
16
fengm| | 2024-4-6 17:30 | 只看该作者
ADC的工作频率依赖于系统时钟的配置。如果系统时钟没有正确配置,可能会影响ADC的转换速率,从而影响到延时函数的执行。

使用特权

评论回复
17
claretttt| | 2024-4-7 13:12 | 只看该作者
比如在主循环中使用HAL_Delay()函数,或者在定时器中断中使用计数器来实现延时。这些方法都不会影响到中断服务函数的执行。

使用特权

评论回复
18
tifmill| | 2024-4-7 14:33 | 只看该作者
如果delay函数的准确性不是关键,可以考虑使用硬件延迟

使用特权

评论回复
19
jimmhu| | 2024-4-7 16:33 | 只看该作者
在DMA传输完成中断中处理数据时,如果数据处理占用了过多的时间,也会影响到延时函数的执行。优化中断服务程序中的数据处理逻辑,尽量减少中断服务程序的执行时间。

使用特权

评论回复
20
kkzz| | 2024-4-7 18:37 | 只看该作者
可能会持续占用资源并干扰其他功能,包括delay函数。

使用特权

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

本版积分规则

17

主题

43

帖子

0

粉丝