|
示波器,厚礼协好贵,但是有时候还是很想看波形怎么办?我们可以使用STM32的ADC配合DMA连续采集波形数据之后利用串口示波器来显示波形。 ; I+ E+ b; h/ A0 V0 b" H5 q 本期教大伙如何使用STM32 关于ADC配置以及DMA配置。 R- a$ ]/ H. ^' y4 q7 x
. ? I' o1 ]; [# R, p' j' j 1. 什么是DMA?) \0 W, J+ D! L/ r+ x. L Direct Memory Access(DMA): 直接内存操作!是一种允许外设之间或外设和内存之间直接进行数据传输的技术,相当于直接把数据搬到存储区,无需CPU的干预。这提高了数据传输的效率,同时释放了CPU用于其他任务。 + E) _# X2 C6 D& R" E. |! t 2. STM32中的DMA特性: 多通道支持: STM32的DMA控制器通常支持多个通道,每个通道可以连接到不同的外设或内存区域。 内存到内存传输: DMA可以在两个内存区域之间传输数据,而不涉及外设。 内存到外设传输: DMA可以从内存传输数据到外设,例如将数据发送到USART或SPI外设。' T* A, K2 z7 }7 v$ \' ~3 ^ 外设到内存传输: DMA可以从外设接收数据并将其存储到内存中,例如从ADC获取数据。' v5 ^4 N! @0 N7 S+ ]1 q- r# X' \ 循环模式: DMA支持循环模式,即在传输完成后重新开始,无需重新配置。+ S( s' N, i8 d# T) R 传输方向和数据宽度: DMA支持不同的传输方向(内存到外设、外设到内存等)和数据宽度(8位、16位、32位)。) |( k/ q4 K6 D" V' n6 P & w" w/ b- q+ Q7 V* N. P/ L2 ] 3. DMA的工作原理: 配置: 在DMA传输之前,需要配置DMA控制寄存器,包括源地址、目的地址、数据宽度、传输方向等。4 ^& `5 B5 @( O; p. c0 x+ t( M/ z 触发: 一旦配置完成,DMA可以由硬件或软件触发开始传输。(本期我们选择软件触发) 中断: DMA传输完成时,可以触发中断以通知CPU。7 ?4 Z/ h- y6 c6 I6 O/ r `1 L 循环传输: DMA可以配置为在传输完成后自动重新开始,形成循环传输。 , V$ ^. H3 ^- j- |# c 4. 应用场景:# Q# }" y. |5 E" l. ]. e+ B; k DMA在需要大量数据传输的应用中特别有用,例如音频处理、图像处理、通信协议等。) M) V. {/ q* f2 V ' z$ L2 z2 }* ]/ o) x 内容实现1 q) O! |: \; }% X x 时钟配置$ Y$ Z& w w* c5 w
% x5 x" v D/ |- U1 Y
首先在CubeMX中选择我们的芯片,配置好时钟树以及时钟。 & z4 L! O! B0 R 引脚配置以及DMA配置" u' e6 Z8 r6 x; u& E( z 4 h7 B! d0 E! E8 O1 d. r
将PA1(或者其他IO)配置为ADC_IN以及模拟模式。 2 [1 Y$ X! K2 |- I, j4 J) R/ t
k* m2 o. l) U r0 D6 h( M 在ADC配置中,开启DMA传输,模式为循环模式!9 a) G- \* c5 v6 C" f3 g" m2 X 6 e0 V; u! k' O, k
开启ADC连续转换以及DMA请求~, u+ B8 z" P- Y# j. q* @8 y2 u; [ 防止ADC只采样一次以及DMA只工作一次。 / h6 R0 Z v7 S2 a* P' ` 工程内容 接下来就是创建工程了。) v' F8 l4 n; O) q+ A
定义一个全局变量来存放DMA读取的内容. q+ I( z4 I( F! j( ]" x; N " U8 P4 x) |0 v; `/ r
开启DMA,传入相关参数和存储区。7 x. m& D( N8 h& T
在While中打印存储区的内容,之后利用我们的串口示波器查看波形。) R5 z9 m+ }5 |+ q) `( N
$ m7 U3 e2 U* k5 ?4 `4 ~; R 转载自:电路小白6 s# t6 p% S. s- H 如有侵权请联系删除 ; P+ G1 }: A U a$ M; r 3 T/ Z+ I, _$ y: I) o* E# L |
【STM32H5 评测】ADC 电压表
经验分享 | 通过STM32 TIMER的PWM功能模拟输出正弦波
【福利三:雨露均沾·逢7狂欢】之四:用一个定时器同步另外两个定时器输出PWM
【逢7发帖赢大礼】STM32开发之WIFI实时时钟
【逢7发帖赢大礼】STM32开发之指纹识别!
【逢7发帖赢大礼】STM32开发之环境空气质量监测
【逢7发帖赢大礼】STM32开发之人体实时运动信息监测!
【逢7发帖赢大礼】STM32开发之IC门禁卡UID读取方法!
【逢7发帖赢大礼】全网最简单的Arduino_STM32开发环境搭建教程!
STM32H563 ADC+TIM+DMA应用演示
微信公众号
手机版