STM32最小系统板教程第三章第6讲|STM32 ADC实验
置顶公众号,不错过每一讲内容。
完整课程体系(公众号每日更新一讲):
本讲知识点:ADC简介、电压采集实验
3.6.1 ADC简介
ADC又称为模拟数字转换器,本款STM32芯片共有两个ADC可供用户配置使用,分别为ADC1和ADC2。本芯片的ADC是一种12位的逐次逼近型的ADC,有多达18路通道,可测量16路外部信号和2路内部信号源。每个通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的转换结果可以左对齐或右对齐的方式存储在16位数据寄存器中。
图3-6-1 ADC的时钟
由《STM32F10xxx参考手册》第56页,时钟树系统框图可以知道,ADC的外设时钟最大为14MHz,所以我们在配置它的时钟时应该注意,否则会导致转换不准确。
3.6.2 ADC电压采集
本讲实验是通过配置ADC1的通道0来测量外部电压信号,ADC的通道与GPIO引脚对应关系通过《STM32F103c8t6数据手册》第17页查表可知,本讲所用的通道0就对应PA0引脚。
图3-6-2ADC通道与GPIO对应表
一如既往,我们在上一讲的基础上添加adc.c、adc.h文件,并加入ADC的库函数,贴图如下:
图3-6-3 添加ADC相关文件
我们继续在adc.c中编写ADC的初始化程序,配置贴图如下:
图3-6-4 ADC1,通道0配置
图3-6-5 主函数程序编写
图3-6-6 仿真器与最小系统接线图
接线时,杜邦线的一端接PA0引脚,另一端接所需测量的电压信号,由于我们的板子上有3.3V电源和GND,因此可以测量这两路信号源,虽然板载有5V电源,但不建议测5V电源,很有可能烧掉单片机。程序编译无误后下载到我们的板子上,打开串口助手查看打印信息:
图3-6-7 测量3.3V电压信号
图3-6-8 测量GND信号
根据实验可以看出,测量的结果还是比较准确的。好了本讲的内容就到这里,大家动手实践一下吧
视频课程(点击文末左下角“阅读原文”,可看高清视频):
https://v.qq.com/txp/iframe/player.html?vid=l073639rtnr&width=500&height=375&auto=0
最小系统板的购买链接(复制到淘宝打开即可):
https://item.taobao.com/item.htm?&id=573256065703
elink32仿真器购买链接(复制到淘宝打开即可):
https://item.taobao.com/item.htm?&id=558334383550
课程系列回顾:
STM32最小系统板教程第三章第1讲|从“点灯”入门STM32
STM32最小系统板教程第三章第2讲|STM32时钟系统及实现准确延时
STM32最小系统板教程第三章第3讲|STM32 UART串口通信
STM32最小系统板教程第三章第5讲|STM32 定时器实验
STM32最小系统板教程第三章第6讲|STM32 ADC实验(就是本文)