
stm32H743的ADC支持的最大频率为36MHz,有相关资料上说是可以超频,具体技术细节不多讨论。 3 I& w8 E. H3 C) ~" P 需求: 1 J3 Q+ y) u+ W 使用stm32H743的ADC采集5路数据,当然还要配合DMA,现在把5路数据分在两个ADC上,ADC1和ADC3,那么也要用两个DMA还传送数据。 : @1 |$ _+ i4 v5 K/ {* P CubeMX配置如下:+ j& g1 S9 o" U: P' k1 T4 V 配置时钟: 先配置主时钟,我的是8M的,再配置系统频率480M,然后配置ADC时钟36M,分频后ADC的频率为18M,其它参数系统会自动配置,这个还是比较方便的,配置如下图:7 R3 G8 C7 B" s, U ![]() ![]() + }6 |# g/ v2 ] 下面配置芯片管脚:4 @. S1 O1 h0 p; q) }' j1 R ADC1下面采3个通道:( i2 j) j2 B- A5 P6 j9 [ ![]() ![]() DMA配置:, [# U2 D4 H9 w; W% y. w' \ ![]() 1 @: z5 O% U- m+ ?4 n# F GPIO配置:' t) h6 e0 ]- j" D8 r2 V 6 [6 Z, ^+ J- f' R9 V$ J- V ![]() ADC3下面挂2个通道: . j& n8 r! Z, l% H( G5 r: q 主要是DMA,避免冲突,用了另一个DMA,其它配置都一样。9 O6 X1 r, W7 c% ?/ V s ![]() . L7 X" E0 S4 A4 |& c 中断配置: 因为在使用HAL库时,函数调用太繁杂,也没有那么多时间细细研究,所以,把调用HAL句柄的选项点掉了: ![]() ! P7 P: K! E3 z6 I 然后就可以生成代码了。 ! ?5 R1 O0 I" I8 ?, C" V, d& h 在生成后的代码中,要启用采样时调用函数:
在文件stm32h7xx_it.cvoid 中的中断函数: void DMA2_Stream0_IRQHandler(void)( [ n. Y1 i1 g* o2 C+ ~ void DMA1_Stream0_IRQHandler(void) 中,要清中断标志位和停止采集: ( o4 ~8 h7 z2 y$ x M8 l' L3 r
, [, U; z) h! q7 D0 T. B8 a |
STM32H7的TCM,SRAM等五块内存基础知识
STM32H7的TCM,SRAM等五块内存基础知识
简单了解一下STM32H7的BDMA
有奖预约 | STM32H7R7基于RT-Thread RTOS的智能终端GUI解决方案
【STM32H745I-DISCO】基于TouchGFX的工业控制器界面设计
STM32H745I-DISCO串口打印
【STM32H745I-DISCO】TouchGFX探索——3、触屏滑屏操作与中文显示
TouchGFX软件下载及使用
【STM32H745I-DISCO】TouchGFX探索——2、照葫芦画瓢
STM32H745I-DISCO硬件信号为空,M4、M7对于硬件信号的优先性判断