0
点赞
收藏
分享

微信扫一扫

ADC实验

small_Sun 02-29 13:45 阅读 2

一、 实验简介(实验目的)

利用STM32F1 的ADC1 通道1 来采样外部电压值,并在TFTLCD 模块上显示出来。

二、 实验设备(实验设备及用到的模块)

1.电脑:window10及以上

2.开发板名称:正点原子战舰V3 STM32F103开发板

3.模块名称:ADC模块,LCD模块,LED模块,KEY模块

4.数据通信方式及设备

三、 实验原理(软硬件全面阐述)

1.芯片该部分工作原理

(1).KEY部分对应芯片引脚

ADC实验_stm32

在战舰 STM32 开发板上的按键 KEY0 连接在引脚PE4 上、KEY1 连接在引脚PE3 上、KEY2 连接在引脚PE2 上、WK_UP 连接在引脚PA0 上。

(2).LED部分对应芯片引脚

ADC实验_LCD_02

在战舰 STM32 开发板上的LED0连接的引脚是PB5,LED1连接的引脚是PE5。


2.模块工作原理、电路图

(1).KEY的STM32连接原理图

ADC实验_stm32_03

如上图电路图所示,KEY0、KEY1 和 KEY2 都接地都是是低电平有效,而 WK_UP接的是VCC3.3所以是高电平有效,并且外部都没有上下拉电阻,所以需要在 STM32 内部设置上下拉。

(2).LED的STM32连接原理图

ADC实验_stm32_04

通过位带操作 PB5 输出高低电平从而控制 LED0。


3. 用到的库函数阐述

ADC初始化函数:

void ADC_Init(ADC_TypeDef* ADCx,ADC_InitTypeDef* ADC_InitStruct);

void ADC_Delnit(ADC_TypeDef* ADCx)

ADC使能函数 :

void ADC_Cmd(ADC_TypeDef*ADCx, FunctionalState NewState);

void ADC_ITConfig(ADC_TypeDef*ADCx,uint16_t ADC_IT, FunctionalState NewState);

ADC使能软件转换函数:

void ADC_SoftwareStartConvCmd(ADC_TypeDef* ADCx,FunctionalState NewState);

ADC规则通道配置函数:

void ADC_RegularChannelConfig(ADC_TypeDef* ADCx, uint8_t ADC_Channel, uint8_t Rank, uint8_t ADC_SampleTime);

ADC获取转换结果函数

uint16_t ADC_GetConversionValue(ADC_TypeDef*ADCx);

其它重要函数:

void ADC_ResetCalibration(ADC_TypeDef* ADCx);

FlagStatus ADC_GetResetCalibrationStatus(ADC_TypeDef* ADCx);  

void ADC_StartCalibration(ADC_TypeDef* ADCx);

FlagStatus ADC GetCalibrationStatus(ADC TypeDef* ADCx);

四、 程序分析(有开头介绍,模块设计)

1.概述

在主函数中,在TFTLCD 模块上显示一些提示信息后,将每隔250ms 读取一次ADC 通道0 的值,并显示读到的ADC 值(数字量),以及其转换成模拟量后的电压值。同时控制 LED0 闪烁,以提示程序正在运行。

while(1)
{
adcx=Get_Adc_Average(ADC_Channel_1,10);
LCD_ShowxNum(156,130,adcx,4,16,0);∥显示ADC的值
temp=(float)adcx*(3.3/4096);
adcx=temp;
LCD_ShowxNum(156,150,adcx,1,16,0);∥显示电压值
temp-=adcx;
temp*=1000;
LCD_ShowxNum(172,150,temp,3,16,0X80);
LEDO=!LEDO;
delay_ms(250);
}


2. 各个模块阐述

(1).LCD模块:在开发板屏幕上显示信息

(2).LED模块:小灯初始化并使能时钟

(3).KEY模块:按键初始化,设置响应优先级

(4).ADC模块:使用ADC1来执行AD转换操作


3.程序分析总结

① 开启 PA 口时钟和 ADC1 时钟,设置 PA1 为模拟输入。

② 复位 ADC1,同时设置 ADC1 分频因子。

③ 初始化 ADC1 参数,设置 ADC1 的工作模式以及规则序列的相关信息。

④ 使能 ADC 并校准。

⑤ 读取 ADC 值。 

举报

相关推荐

0 条评论