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

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

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

一、STM32CubeMX配置

  1. 外设配置

  1. 时钟配置

系统时钟采用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 参数中指定的每个 % 标签。参数的个数应与 % 标签的个数相同。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

躺平的居同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值