STMCU小助手
发布时间:2021-12-30 13:13
|
stm32H743的ADC支持的最大频率为36MHz,有相关资料上说是可以超频,具体技术细节不多讨论。 / E3 v2 C/ X# j+ E0 e1 F 需求:7 t3 j. j) j- i: H) t 使用stm32H743的ADC采集5路数据,当然还要配合DMA,现在把5路数据分在两个ADC上,ADC1和ADC3,那么也要用两个DMA还传送数据。0 T% ?( O* z/ k 9 T3 b) a6 f+ r6 f CubeMX配置如下: 2 l, d! P' n- p# C$ u 配置时钟:; ?2 c/ K! q9 y, x2 y' T$ X - Q% k: C/ O! x/ S4 z- x8 B 先配置主时钟,我的是8M的,再配置系统频率480M,然后配置ADC时钟36M,分频后ADC的频率为18M,其它参数系统会自动配置,这个还是比较方便的,配置如下图:7 c- m; |" A; i+ \- K, [4 t; N + n8 m/ Q: j2 F' p3 e: U2 [
- ^# u6 C" P# t. w. `. W# k
( B0 e# d) K/ y, o# w) s- k 下面配置芯片管脚: # B; L3 s+ D3 |& t ADC1下面采3个通道:
5 T5 _& s. k9 H
* _4 x, L/ I$ M$ ^" s L5 S DMA配置:4 b& d& g' y+ c
8 B1 J, O' H3 f4 |; g( \0 a GPIO配置:* l9 w! N9 W1 f8 z/ ^) b& Z8 d " ]* ~2 i7 [# M8 p, T. |- X4 C9 S) j
ADC3下面挂2个通道: / E, @" y7 v6 }, h# X' M6 T 主要是DMA,避免冲突,用了另一个DMA,其它配置都一样。
0 N) Q, _( g. L: s' `3 }4 c' f 中断配置:3 H: V, P/ Q/ Y$ q 因为在使用HAL库时,函数调用太繁杂,也没有那么多时间细细研究,所以,把调用HAL句柄的选项点掉了:$ ]2 y6 X- J; v3 \" ]- e. Y! ]
. M4 B& w( `7 C5 l: R0 w 然后就可以生成代码了。 5 o( @$ O8 q/ [& W* u& M0 V 在生成后的代码中,要启用采样时调用函数:
在文件stm32h7xx_it.cvoid 中的中断函数:0 J6 W4 x! L# r: E/ U void DMA2_Stream0_IRQHandler(void) 7 `% Y4 W5 k# B8 Y void DMA1_Stream0_IRQHandler(void) 中,要清中断标志位和停止采集:
) `9 s6 _$ I; Z) S- d: f |
【 逢7发帖赢大礼】1、利用CubeMX生成正点原子H7R7开发板的STM32CubeIDE工程
【STM32H735G-DK测评】ADC3+TIMER1+DMA 采样模拟信号
【STM32H735DK测评】Ethernet+lwip DHCP获取IP地址
STM32H743基于CubeMx5.0配置手册
【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实现温度、湿度、气压数据读取
微信公众号
手机版