欢迎光临散文网 会员登陆 & 注册

STM32CUBEMX(9)--ADC通过轮询方式读取,USART打印

2021-06-03 23:17 作者:记帖  | 我要投稿

概述

本章通过使用模数转换器(ADC),通过轮询方式采集多个ADC通道电压。

之前已经做过DMA方式采样,详情请查看:https://www.bilibili.com/read/cv11455185

硬件准备

    首先需要准备一个开发板,这里我准备的是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,adc15口接1.5V,输出如下。

视频讲解




STM32CUBEMX(9)--ADC通过轮询方式读取,USART打印的评论 (共 条)

分享到微博请遵守国家法律