STM32CubeMX+ADC数据采集
设计对电池电压进行检测的应用程序
STM32理解:https://blog.csdn.net/u010893262/article/details/68942710
一、ADC(Analog-to-Digital Converter)模数转换器
模拟信号----->数字信号
二、ADC外设的工作参数配置
二、ADC外设的工作参数配置
三、配置USART外设的工作参数
四、生成代码
在main.c文件中设置所需变量
/* USER CODE BEGIN PV */ // ADC转换值存放 uint16_t adc_value = 0; // 电压值 float voltage = 0.0; // 电压值结果显示 char voltString[50] = {0}; /* USER CODE END PV */
在while循环里
while (1) { // 启动ADC转换 HAL_ADC_Start(&hadc1); // 等待转换完成,第二个参数表示超时时间,单位ms HAL_ADC_PollForConversion(&hadc1, 100); // 为换取ADC状态 adc_value = HAL_ADC_GetValue(&hadc1); // 采取的右对齐除以2的12次方,参考电压为3.3V voltage = (float)adc_value / 4096 * 3.3; sprintf(voltString, "²É¼¯µ½µÄµçѹֵΪ: %.2f V", voltage); printf("%s\r\n", voltString); HAL_Delay(1000); /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ }
在USART.c添加
#include "usart.h" int fputc(int ch, FILE *f) { HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF); return ch; }
在USART.h添加
#include "main.h" #include <stdio.h>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律