蓝桥杯物联网 EX1-12.ADC转换实验

蓝桥杯物联网设计与研发(基础实验)EX12.ADC转换实验

基于省赛资源套装-STM32L071微控制器

一、STM32CubeMX配置

  1. 外设配置

蓝桥杯物联网 EX1-12.ADC转换实验_第1张图片

蓝桥杯物联网 EX1-12.ADC转换实验_第2张图片
  1. 时钟配置

蓝桥杯物联网 EX1-12.ADC转换实验_第3张图片

系统时钟采用4.194MHz时钟

二、Keil5程序编写

  1. 在USER CODE BEGIN PV和USER CODE END PV之间添加以下代码

float ADC_Value =0;
uint8_t ADC_Value_Send[20]={0};
  1. 在USER CODE BEGIN 2和USER CODE END 2之间添加以下代码

HAL_ADC_Start(&hadc);

3.在USER CODE BEGIN 3和USER CODE END 3之间添加以下代码

ADC_Value=HAL_ADC_GetValue(&hadc)*(3.3/4095);
sprintf((char*)ADC_Value_Send,"ADC_Value : %.2f",ADC_Value);
HAL_UART_Transmit(&huart2,ADC_Value_Send,20,500);
HAL_Delay(1000);

4.HAL_ADC库函数解析

函数名称

HAL_ADC_Start (ADC_HandleTypeDef * hadc)

函数作用

启用 ADC,开始常规组的转换。

参数

ADC柄口

函数名称

HAL_ADC_GetValue (ADC_HandleTypeDef * hadc)

函数作用

获取ADC常规组转换结果。

参数

ADC柄口

5.HAL_UART库函数解析

函数名称:HAL_UART_Receive (UART_HandleTypeDef * huart, uint8_t * pData, uint16_t Size, uint32_t Timeout)

函数作用:在阻塞模式下发送一定数量的数据

参数

功能

huart

UART柄口

pData

指向数据缓冲区的指针

Size

要发送的数据量

Timeout

允许超时持续时间

6.sprintf函数解析

sprintf指的是字符串格式化命令,函数声明为 int sprintf(char *string, char *format [,argument,...]);,主要功能是把格式化的数据写入某个字符串中,即发送格式化输出到 string 所指向的字符串。sprintf 是个变参函数。使用sprintf 对于写入buffer的字符数是没有限制的,这就存在了buffer溢出的可能性。解决这个问题,可以考虑使用 snprintf函数,该函数可对写入字符数做出限制。

参数

功能

string

这是指向一个字符数组的指针,该数组存储了 C 字符串

format

这是字符串,包含了要被写入到字符串 str 的文本

argument

根据不同的 format 字符串,函数可能需要一系列的附加参数,每个参数包含了一个要被插入的值,替换了 format 参数中指定的每个 % 标签。参数的个数应与 % 标签的个数相同。

你可能感兴趣的:(蓝桥杯物联网基础实验,物联网,单片机,嵌入式硬件,蓝桥杯)