第33讲:实战——ADC采集、电压采样快速代码生成
CSDN专栏嵌入式程序开发实战嵌入式双范式AI编程嵌入式开发必掌握嵌入式求职面试技术资料第33讲实战——ADC采集、电压采样快速代码生成一、ADC基础ADC模数转换器是模拟量采集的核心用于读取传感器模拟信号、电压采样等。1.1 ADC配置要点基本参数分辨率12位STM32F103采样时间影响精度触发方式软件触发、定时器触发转换模式单次、连续、扫描通道配置ADC1通道通道0PA0通道1PA1通道2PA2通道3PA3通道4PA4通道5PA5通道6PA6通道7PA7二、单通道ADC采集2.1 基础采集Prompt生成STM32F103 ADC采集代码 - ADC1通道0PA0 - 功能采集电压值 - 使用HAL库AI生成#includestm32f1xx_hal.hADC_HandleTypeDef hadc1;voidADC1_Init(void){hadc1.InstanceADC1;hadc1.Init.ScanConvModeADC_SCAN_DISABLE;hadc1.Init.ContinuousConvModeDISABLE;hadc1.Init.ExternalTrigConvADC_SOFTWARE_START;hadc1.Init.DataAlignADC_DATAALIGN_RIGHT;hadc1.Init.NbrOfConversion1;HAL_ADC_Init(hadc1);// 配置通道ADC_ChannelConfTypeDef sConfig{0};sConfig.ChannelADC_CHANNEL_0;sConfig.RankADC_REGULAR_RANK_1;sConfig.SamplingTimeADC_SAMPLETIME_55CYCLES_5;HAL_ADC_ConfigChannel(hadc1,sConfig);}uint16_tADC_Read(void){HAL_ADC_Start(hadc1);HAL_ADC_PollForConversion(hadc1,100);uint16_tvalueHAL_ADC_GetValue(hadc1);HAL_ADC_Stop(hadc1);returnvalue;}floatADC_ReadVoltage(void){uint16_trawADC_Read();floatvoltage(float)raw*3.3f/4095.0f;returnvoltage;}intmain(void){HAL_Init();SystemClock_Config();ADC1_Init();UART_Init();while(1){floatvoltageADC_ReadVoltage();printf(Voltage: %.2fV\r\n,voltage);HAL_Delay(100);}}2.2 多次采样滤波平均值滤波#defineSAMPLE_COUNT10uint16_tADC_ReadFiltered(void){uint32_tsum0;for(uint8_ti0;iSAMPLE_COUNT;i){sumADC_Read();}returnsum/SAMPLE_COUNT;}中值滤波#defineMEDIAN_COUNT5uint16_tADC_ReadMedian(void){uint16_tvalues[MEDIAN_COUNT];for(uint8_ti0;iMEDIAN_COUNT;i){values[i]ADC_Read();}// 排序for(uint8_ti0;iMEDIAN_COUNT-1;i){for(uint8_tji1;jMEDIAN_COUNT;j){if(values[i]values[j]){uint16_ttempvalues[i];values[i]values[j];values[j]temp;}}}returnvalues[MEDIAN_COUNT/2];}三、多通道ADC采集3.1 扫描模式Prompt生成STM32F103 多通道ADC采集代码 - ADC1通道0-3PA0-PA3 - 功能采集4路电压 - 使用DMA传输 - 使用HAL库AI生成#defineADC_CHANNELS4uint16_tadcBuffer[ADC_CHANNELS];voidADC1_Multi_Init(void){hadc1.InstanceADC1;hadc1.Init.ScanConvModeADC_SCAN_ENABLE;// 扫描模式hadc1.Init.ContinuousConvModeENABLE;// 连续转换hadc1.Init.ExternalTrigConvADC_SOFTWARE_START;hadc1.Init.DataAlignADC_DATAALIGN_RIGHT;hadc1.Init.NbrOfConversionADC_CHANNELS;HAL_ADC_Init(hadc1);// 配置各通道ADC_ChannelConfTypeDef sConfig{0};sConfig.ChannelADC_CHANNEL_0;sConfig.RankADC_REGULAR_RANK_1;sConfig.SamplingTimeADC_SAMPLETIME_55CYCLES_5;HAL_ADC_ConfigChannel(hadc1,sConfig);sConfig.ChannelADC_CHANNEL_1;sConfig.RankADC_REGULAR_RANK_2;HAL_ADC_ConfigChannel(hadc1,sConfig);sConfig.ChannelADC_CHANNEL_2;sConfig.RankADC_REGULAR_RANK_3;HAL_ADC_ConfigChannel(hadc1,sConfig);sConfig.ChannelADC_CHANNEL_3;sConfig.RankADC_REGULAR_RANK_4;HAL_ADC_ConfigChannel(hadc1,sConfig);// 启动DMAHAL_ADC_Start_DMA(hadc1,(uint32_t*)adcBuffer,ADC_CHANNELS);}floatADC_GetVoltage(uint8_tchannel){if(channelADC_CHANNELS)return0.0f;return(float)adcBuffer[channel]*3.3f/4095.0f;}四、典型应用场景4.1 电压监测需求监测电池电压低于阈值报警代码#defineBATTERY_LOW_THRESHOLD3.3fvoidBattery_Monitor(void){floatvoltageADC_ReadVoltage();printf(Battery: %.2fV\r\n,voltage);if(voltageBATTERY_LOW_THRESHOLD){printf(Warning: Battery low!\r\n);// 报警}}4.2 温度采集NTC热敏电阻需求使用NTC热敏电阻测量温度代码// NTC参数#defineNTC_R2510000.0f// 25°C时的电阻10kΩ#defineNTC_BETA3950.0f// B值#defineNTC_R_REF10000.0f// 参考电阻10kΩfloatNTC_ReadTemperature(void){uint16_trawADC_Read();// 计算NTC电阻floatr_ntc(float)raw*NTC_R_REF/(4095.0f-raw);// 计算温度B值方程floattempK1.0f/(1.0f/298.15flog(r_ntc/NTC_R25)/NTC_BETA);floattempCtempK-273.15f;returntempC;}4.3 光照采集需求使用光敏电阻测量光照强度代码floatLight_ReadIntensity(void){uint16_trawADC_Read();// 转换为光照强度简化// 实际需要根据光敏电阻特性曲线计算floatintensity(float)raw/4095.0f*100.0f;// 0-100%returnintensity;}五、本讲核心要点6.1 记住这三句话ADC配置分辨率、采样时间、触发方式、转换模式数据滤波平均值滤波、中值滤波提高精度典型应用电压监测、温度采集、光照采集6.2 下讲预告第34讲将深入讲解实战PWM输出调速、控灯原型开发PWM是电机控制、LED调光的基础如何快速生成PWM代码下一讲将详细讲解。

相关新闻

做项目管理一定要用专业软件吗?

做项目管理一定要用专业软件吗?

大家好,我是陈哥。 做项目管理是不是必须要用软件? 每次听到这个问题,我都会说:项目管理的核心是人和流程。不用任何管理软件,肯定是能做项目管理的。但是,适配的项目管理软件会让你更轻松。一、纯人工管理…

2026/8/12 3:21:56 阅读更多 →
第32讲:实战——I2C传感器极简驱动快速验证

第32讲:实战——I2C传感器极简驱动快速验证

CSDN专栏: 嵌入式程序开发实战嵌入式双范式AI编程嵌入式开发必掌握嵌入式求职面试技术资料 第32讲:实战——I2C传感器极简驱动快速验证 一、I2C传感器驱动基础 I2C是最常用的传感器接口,快速验证I2C传感器驱动是嵌入式开发的基本功。 1.…

2026/8/9 22:41:10 阅读更多 →
第31讲:实战——SPI屏驱动快速试错、点亮屏幕

第31讲:实战——SPI屏驱动快速试错、点亮屏幕

CSDN专栏: 嵌入式程序开发实战嵌入式双范式AI编程嵌入式开发必掌握嵌入式求职面试技术资料 第31讲:实战——SPI屏驱动快速试错、点亮屏幕 一、SPI屏幕驱动基础 SPI屏幕是嵌入式常见的显示设备,驱动屏幕需要正确配置SPI、理解屏幕控制命令…

2026/8/13 10:30:59 阅读更多 →

最新新闻

你的电脑健康管家:LibreHardwareMonitor硬件监控完全指南

你的电脑健康管家:LibreHardwareMonitor硬件监控完全指南

你的电脑健康管家:LibreHardwareMonitor硬件监控完全指南 【免费下载链接】LibreHardwareMonitor Libre Hardware Monitor is free software that can monitor the temperature sensors, fan speeds, voltages, load and clock speeds of your computer. 项目地址…

2026/8/13 19:02:17 阅读更多 →
USB Sniffer Lite高级技巧:触发机制与数据包过滤实用指南

USB Sniffer Lite高级技巧:触发机制与数据包过滤实用指南

USB Sniffer Lite高级技巧:触发机制与数据包过滤实用指南 【免费下载链接】usb-sniffer-lite A simple USB sniffer based on Raspberry Pi RP2040 项目地址: https://gitcode.com/gh_mirrors/us/usb-sniffer-lite USB Sniffer Lite是一款基于Raspberry Pi R…

2026/8/13 19:02:17 阅读更多 →
深入探索Linux内核的Per-CPU变量:多核时代的性能加速器

深入探索Linux内核的Per-CPU变量:多核时代的性能加速器

深入探索Linux内核的Per-CPU变量:多核时代的性能加速器 【免费下载链接】linux-insides A book-in-progress about the Linux kernel and its insides. 项目地址: https://gitcode.com/gh_mirrors/li/linux-insides 在多核处理器成为主流的今天,L…

2026/8/13 19:02:17 阅读更多 →
5分钟成为Windows功能管理大师:ViVeTool终极配置指南

5分钟成为Windows功能管理大师:ViVeTool终极配置指南

5分钟成为Windows功能管理大师:ViVeTool终极配置指南 【免费下载链接】ViVe C# library and console app for using new feature control APIs available in Windows 10 version 2004 and newer 项目地址: https://gitcode.com/gh_mirrors/vi/ViVe 你知道吗&…

2026/8/13 19:02:17 阅读更多 →
实用指南:如何部署高性能Bifrost AI网关并优化LLM请求路由

实用指南:如何部署高性能Bifrost AI网关并优化LLM请求路由

实用指南&#xff1a;如何部署高性能Bifrost AI网关并优化LLM请求路由 【免费下载链接】bifrost Fastest enterprise AI gateway (50x faster than LiteLLM) with adaptive load balancer, cluster mode, guardrails, 1000 models support & <100 s overhead at 5k RPS.…

2026/8/13 19:02:17 阅读更多 →
如何用Kikoeru-Express在10分钟内搭建个人音乐流媒体服务器?

如何用Kikoeru-Express在10分钟内搭建个人音乐流媒体服务器?

如何用Kikoeru-Express在10分钟内搭建个人音乐流媒体服务器&#xff1f; 【免费下载链接】kikoeru-express kikoeru 后端 项目地址: https://gitcode.com/gh_mirrors/ki/kikoeru-express 你是否曾为管理大量音声文件而烦恼&#xff1f;想要一个专属的音乐服务器来整理、…

2026/8/13 19:01:17 阅读更多 →

日新闻

Visual Studio新建项目解决方案为空:系统性排查与修复指南

Visual Studio新建项目解决方案为空:系统性排查与修复指南

1. 问题现象与本质剖析如果你是一位.NET开发者&#xff0c;或者正准备踏入这个领域&#xff0c;那么Visual Studio&#xff08;后面简称VS&#xff09;绝对是你绕不开的伙伴。但有时候&#xff0c;这个伙伴会跟你开一个不大不小的玩笑&#xff1a;你满怀期待地点击“创建新项目…

2026/8/13 0:00:09 阅读更多 →
长春建设厅网站:普通人买房办事必看的真实指南与避坑攻略

长春建设厅网站:普通人买房办事必看的真实指南与避坑攻略

说实话,每次提起“长春建设厅网站”这几个字,我心里都挺有感触的。不是因为它有多高大上,也不是因为那里藏着什么不可告人的秘密,恰恰相反,是因为它太“接地气”了,或者说,它是咱们普通人想要在这个城市好好生活、安稳买房时,必须得翻过的一座“数据山”。很多新朋友第…

2026/8/13 0:00:09 阅读更多 →
Windows家庭版远程桌面多用户破解完整指南:RDPWrap终极解决方案

Windows家庭版远程桌面多用户破解完整指南:RDPWrap终极解决方案

Windows家庭版远程桌面多用户破解完整指南&#xff1a;RDPWrap终极解决方案 【免费下载链接】rdpwrap.ini RDPWrap.ini for RDP Wrapper Library by StasM 项目地址: https://gitcode.com/GitHub_Trending/rd/rdpwrap.ini 你是否曾为Windows家庭版无法支持多用户远程桌面…

2026/8/13 0:00:09 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑&#xff1a;baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码&#xff08;维护中 rm repo&#xff09; 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/13 2:38:34 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片&#xff1a;Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/13 10:41:52 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身&#xff0c;而应重视模型外的系统搭建&#xff0c;即Harness。提出AgentModelHarness的实用公式&#xff0c;详细介绍Harness的四个层次&#xff1a;持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/13 10:41:51 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速&#xff1a;macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/13 10:41:50 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南&#xff1a;3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗&#xff1f;ncmdump解密工具帮你轻松解决这个困…

2026/8/13 10:41:49 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片&#xff1a;为英语学习 App 打造桌面级学习助手适用平台&#xff1a;HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0&#xff08;API 26 Beta&#xff09;新增了 AgentCard 智能体卡片能力&#xff0c;这是继 HMAF&#xff08;鸿蒙智能体框架&#x…

2026/8/13 10:41:49 阅读更多 →