
概述 本章通过使用模数转换器(ADC),通过轮询方式采集多个ADC通道电压。 硬件准备 首先需要准备一个开发板,这里我准备的是NUCLEO-F030R8的开发板: ![]() 选择芯片型号 使用STM32CUBEMX选择芯片stm32f030r8,如下所示: ![]() HSE与LSE分别为外部高速时钟和低速时钟,在本文中使用内置的时钟源,故都选择Disable选项,如下所示: ![]() 配置时钟树 STM32F0的最高主频到48M,所以配置48即可: ![]() 串口配置 本次实验使用的串口1进行串口通信,波特率配置为115200。 ![]() ADC配置 STM32f030中,有一个ADC(模拟/数字转换器),每个 ADC 有 12 位、 10 位、 8 位和 6 位可选,每个ADC有16个外部通道、2个内部通道和一个VBAT 通道的信号。 本文将开ADC的IN0、IN1、IN15一共三个通道,来分别读取ADC,由于串口2和IN2,IN3复用,故不使用IN2、IN3。配置如下: ![]() 注意在生产工程设置中不能出现中文,不然会报错。 ![]() ![]() 配置keil ![]() ![]() 在main.c中,添加头文件,若不添加会出现 identifier "FILE" is undefined报错。
函数声明和串口重定向:
变量定义:
主循环:
演示效果 设定adc0口接3.3V,adc1口接GND,adc3口接1.5V,输出如下。 ![]() 转载自:记帖 如有侵权请联系删除 |
【有奖体验】STM32Cube通过Clang/LLVM支持进一步简化代码开发
STM32CubeMX应用结构选择指南
经验分享 | STM32CubeMX 生成时钟获取函数的分析
兔哥的最强U5图显【000】——U5G9最小系统绘制
兔哥的ST67——【000】ST67模组订购
基于LORA的环境感知系统
经验分享 | 使用CubeMx配置NVIC时为何不见子优先级?
经验分享 | 三个 ADC 同步模式配置以及 CubeMx 错误配置的解决方法
兔哥的边缘AI【001】——DIY-STM32N6全IO扩展板
兔哥的BLE【002】-WB09最小系统板PCB设计