stm32ADC采样仿真实验的实验报告
时间: 2023-07-30 16:10:05 浏览: 100
实验目的:
学习STM32F103C8T6的ADC采样功能,了解ADC采样的基本原理,并能够编写相应的代码进行ADC采样仿真实验。
实验器材:
1. STM32F103C8T6开发板
2. USB转串口模块
3. 电位器
4. 杜邦线若干
5. 电源适配器
实验原理:
ADC(Analog-to-Digital Converter)是模拟信号转数字信号的重要模块,可以将模拟信号转换成数字信号以供处理器使用。STM32F103C8T6的ADC采样功能能够将外部模拟信号转换成数字信号,并送到处理器进行处理。
STM32F103C8T6的ADC采样功能基本原理如下:
1. 将模拟信号通过模拟开关连接到采样保持电容上。
2. 将采样保持电容上的电压进行比较,得到数字电压值。
3. 将数字电压值通过一个8位的ADC模块转换成数字信号。
4. 数字信号经过比较、计算等操作后,得到处理结果。
实验步骤:
1. 连接实验器材,将电位器的第一个脚连接到STM32F103C8T6的PA0口,第二个脚连接到GND,第三个脚连接到VCC。
2. 打开Keil uVision5集成开发环境,新建一个工程。
3. 将工程的芯片型号设置为STM32F103C8T6,选择对应的晶振频率和Flash容量,确定芯片的时钟源。
4. 在工程中添加头文件“stm32f10x_adc.h”和“stm32f10x_gpio.h”,并编写相应的代码。代码如下:
```c
#include "stm32f10x_adc.h"
#include "stm32f10x_gpio.h"
void ADC_Configuration(void)
{
ADC_InitTypeDef ADC_InitStructure;
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_ADC1, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
GPIO_Init(GPIOA, &GPIO_InitStructure);
ADC_DeInit(ADC1);
ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
ADC_InitStructure.ADC_ScanConvMode = DISABLE;
ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
ADC_InitStructure.ADC_NbrOfChannel = 1;
ADC_Init(ADC1, &ADC_InitStructure);
ADC_Cmd(ADC1, ENABLE);
ADC_ResetCalibration(ADC1);
while(ADC_GetResetCalibrationStatus(ADC1));
ADC_StartCalibration(ADC1);
while(ADC_GetCalibrationStatus(ADC1));
}
uint16_t Get_ADC_Value(void)
{
ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_55Cycles5);
ADC_SoftwareStartConvCmd(ADC1, ENABLE);
while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC));
return ADC_GetConversionValue(ADC1);
}
int main(void)
{
uint16_t adc_value = 0;
ADC_Configuration();
while(1)
{
adc_value = Get_ADC_Value();
}
}
```
5. 对代码进行编译、烧录,打开串口调试助手,可以看到ADC采样到的电压值。
实验结果:
通过实验,我们可以得到ADC采样到的电压值,可以通过串口调试助手进行查看。
实验总结:
通过本次实验,我们了解了STM32F103C8T6的ADC采样功能,并且能够编写相应的代码进行ADC采样仿真实验。同时,我们也了解了ADC采样的基本原理,为后续的学习打下了基础。