STMCU小助手
发布时间:2021-12-30 13:13
|
stm32H743的ADC支持的最大频率为36MHz,有相关资料上说是可以超频,具体技术细节不多讨论。( w" p( `# F- z4 J8 a/ z% J ; f: U) G8 j! b# H; R. j3 P" s% s 需求: 使用stm32H743的ADC采集5路数据,当然还要配合DMA,现在把5路数据分在两个ADC上,ADC1和ADC3,那么也要用两个DMA还传送数据。 , `5 L7 R' E7 d3 B: z CubeMX配置如下:, p& H" Y. a" M# _, P 1 i4 v% Q/ @! U) t 配置时钟: ' w# N8 y# T; H! u- g$ [ 先配置主时钟,我的是8M的,再配置系统频率480M,然后配置ADC时钟36M,分频后ADC的频率为18M,其它参数系统会自动配置,这个还是比较方便的,配置如下图:* d& L' u1 s% S( o2 s * P0 ?8 u4 p" J- W% X8 a& r" d0 G
下面配置芯片管脚: ADC1下面采3个通道:+ K5 W4 h+ G$ J3 a7 r
0 @$ I, Y( G3 q. @4 Z# T3 M6 G DMA配置: 0 ~( K' h+ k M$ k) m: d
( Z9 [, G' n7 @ GPIO配置:
' v4 b" t. u4 ` ADC3下面挂2个通道:; O1 r/ c7 A9 |+ w * s" R+ y, S# N* d- }; W 主要是DMA,避免冲突,用了另一个DMA,其它配置都一样。
中断配置: % q* y( c: E+ w4 E6 L+ E- l 因为在使用HAL库时,函数调用太繁杂,也没有那么多时间细细研究,所以,把调用HAL句柄的选项点掉了:+ x4 P* U- e, c/ i& n+ H4 a: E* L $ V+ y$ C+ a* V' d; S$ }7 S- O1 K1 u; r
% u9 `) Z g: ~8 d 然后就可以生成代码了。2 ]4 d% `5 M2 g1 s: g: E E$ R$ k- a, o. V" u4 |& g 在生成后的代码中,要启用采样时调用函数:
在文件stm32h7xx_it.cvoid 中的中断函数: void DMA2_Stream0_IRQHandler(void)) G6 t) @. J0 t3 [ void DMA1_Stream0_IRQHandler(void) 中,要清中断标志位和停止采集: - W6 D" W& i9 n9 B$ B
+ R+ X2 S- a$ W , v8 V& Y0 h: k- S" T: \4 q* H |
【STM32H735G-DK测评】lvgl移植
【STM32H735G-DK 测评】STM32H735G-DK External Loder 编译和测试
【福利三:逢7发帖赢大礼】使用MPU6050模块、img_dsc、img_btn机制实现一些简单有趣的动画效果
【福利三:逢7发帖赢大礼】使用arc弧形拉条控件控制PWM舵机及使用SPI3接口操作NRF24L01模块进行无线通信
【福利三:逢7发帖赢大礼】调试nucleo-WBA65RI工程测试样板的一些心得
【福利三:逢7发帖赢大礼】lv_timer和BME680实现温度、湿度、气压数据读取
【福利三:逢7发帖赢大礼】成功利用STM32H743VI片内SRAM12和DTCM空间(完全胜利)
【福利三:逢7发帖赢大礼】想要充分利用STM32H743VI片内的RAM空间(但并不顺利)
【福利三:逢7发帖赢大礼】使用惠勤致远STM32H743VI开发板+ST7796并口彩屏移植LVGL9.5并分享一些额外内容
【 逢7发帖赢大礼】7、TouchGFX中实现云彩流动效果
微信公众号
手机版