本次实验是在之前实验的基础上进行的,利用了之前实验的串口通讯、TFT显示屏等功能。有关ADC转换的配置和代码则参考了官方的例程: I1 P% C& n5 N这是例程的介绍:' A/ x& u) S3 m# l3 J c ![]() 6 N& x+ U# w8 p) l3 z I 一、基本配置. K+ I' I* y% H; q . Q1 s! s; |! d1 i h2 K, X/ D2 R2 W 启用了ADC1的通道0,即PA0引脚进行ADC转换的输入端,用外部可调直流电源输出的电压作检测对象,为预防意外,直流电源通过一个160欧姆的限流电阻连接到PA0引脚,转换的结果显示在TFT屏幕中:
ADC初始化的结果则通过串口传输到电脑上:; X) z: @) \% R1 X0 |( x
二、获取官方例程的配置信息和基础代码! p- @0 t2 ?5 F/ |" i. |: p 1 O: w' w$ x; w! Y( k/ ?5 a; s- N 打开官方的例程,通过STM32CubeMX2查看有关ADC的设置信息,我是截图保存以便实验配置时照抄:
然后生成项目文件,这样就可以从这个项目文件中获得对应的代码。这一步很重要,否则就不容易找到例程的代码。 ) r& x6 ?, ]; q4 F$ k' o$ U 三、STM32CubeMX配置 $ y9 E) z3 s( U6 R9 M6 u 进入时钟设置,将ADC的频率降低至合适范围:* L( a( e2 N$ ]$ D1 k, Y
启用ADC的通道0,基本上按照默认值,不需要作修改:
- T# u4 w( A7 B a) V g
生成配置代码。 # o* X) I4 V* h* s, D 四、添加代码- a6 L1 i) K! z5 R3 M W4 j; C# h + W9 \' f* P9 O 用官方例程生成的项目里,有关ADC的初始化及运行的代码全部在example.c和example.h两个文件中,起初我直接将这两个文件复制过来,但编译失败,最后只好将代码复制到main.c文件里。- e) [( ^0 b6 F$ q: i ADC的启用分三步:首先是初始化,然后是启用自动校准,最后是启用转换。# R ]) J/ r/ E- p8 S - S3 `: b+ \% G( o% | 我开始只是复制了初始化的代码,所以导致得不到转换的结果,我还以为配置不正确,折腾了几天。后来将例程中的三个函数全部复制过来,然后再调试修改,最终获得了成功。 这是ADC转换实验的演示视频链接:https://www.bilibili.com/video/B ... 947cc7ec0f39013509b |
STM32C542RC开发板I2C通讯实验——AT24C32的读写操作
【STMC5】STM32C5实现CUBEMX2点灯
STM32C542RC开发板I2C通讯实验
STM32C542RC开发板启用SPI驱动TFT显示屏
STM32C542RC开发板驱动TFT显示屏
【STM32H5 评测】ADC 电压表
【NUCLEO-C562RE】MNIST 数字识别
【STM32C5教程】(9)DAC 模拟量信号输出实验
STM32C542RC开发板Stop、Sleep和standby模式测试
【STM32C5教程】(10)LPUART DMA 通信实验
微信公众号
手机版