
stm32H743的ADC支持的最大频率为36MHz,有相关资料上说是可以超频,具体技术细节不多讨论。: {3 s1 L& L: m' ` 需求:! m) P/ s1 v8 y, q, O Z" N4 f% o% I( u3 [. n, W 使用stm32H743的ADC采集5路数据,当然还要配合DMA,现在把5路数据分在两个ADC上,ADC1和ADC3,那么也要用两个DMA还传送数据。3 O3 ^1 O. I5 L; a J ; k' L% Q; c0 t! ^& y h CubeMX配置如下:3 V0 F) A2 ]/ F7 N ( h; H* q- P, P" s2 q# e \1 r+ j 配置时钟: " k0 e8 R! ]: i- ?8 k% ~ 先配置主时钟,我的是8M的,再配置系统频率480M,然后配置ADC时钟36M,分频后ADC的频率为18M,其它参数系统会自动配置,这个还是比较方便的,配置如下图: V6 q* i3 P% \" { % {, j1 ?( f( _' P, s ![]() 1 _% }, d0 j* q7 e* |4 x ![]() S) y7 r+ a8 v7 M% R. R9 r9 O 下面配置芯片管脚:* b" K; M! w0 l5 t3 X) n( S 1 S1 B' ^) e3 A/ d ADC1下面采3个通道:. h3 u! E. A. }! K) ` ![]() - S7 j; C0 N8 l% t ![]() DMA配置: ( m- g( ?, `1 N( s ![]() 1 |4 l; s* A8 B! h3 }8 X GPIO配置:& ^& z! _" X5 x' ?: S ![]() 1 C/ _% y! N- Q1 \( G ADC3下面挂2个通道:1 a; O8 _8 P: n ) c3 K6 |& |3 |+ W( E- g: [ 主要是DMA,避免冲突,用了另一个DMA,其它配置都一样。) i4 e, k$ D. k6 m9 F, b6 @ ![]() 6 n, s$ ]+ w0 m9 n- [8 e 中断配置: 因为在使用HAL库时,函数调用太繁杂,也没有那么多时间细细研究,所以,把调用HAL句柄的选项点掉了:# b+ G l/ N# G+ Q' r ![]() 1 }( ~5 C. p# ?0 d, t: A& b* ` 然后就可以生成代码了。8 @/ m6 M( ~6 l$ j7 O" |: Y 在生成后的代码中,要启用采样时调用函数:
在文件stm32h7xx_it.cvoid 中的中断函数: 3 g, Q& c8 z0 M, M' T' `" Z void DMA2_Stream0_IRQHandler(void) void DMA1_Stream0_IRQHandler(void) 中,要清中断标志位和停止采集: # {' P5 z. ?& A8 F, J7 T
- i4 b% u! K4 W0 L% Y4 U7 w' B! J $ E6 B% N; e2 ] |
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对于硬件信号的优先性判断