第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/13 20:07:39 阅读更多 →
第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 阅读更多 →

最新新闻

终极指南:使用React+Vite快速构建Chrome扩展程序

终极指南:使用React+Vite快速构建Chrome扩展程序

终极指南:使用ReactVite快速构建Chrome扩展程序 【免费下载链接】chrome-extension-boilerplate-react-vite Chrome Extension Boilerplate with React Vite Typescript 项目地址: https://gitcode.com/GitHub_Trending/ch/chrome-extension-boilerplate-react-…

2026/8/13 20:07:37 阅读更多 →
终极指南:如何在不安装Office的情况下解析Outlook邮件文件

终极指南:如何在不安装Office的情况下解析Outlook邮件文件

终极指南:如何在不安装Office的情况下解析Outlook邮件文件 【免费下载链接】XstReader Xst Reader is an open source viewer for Microsoft Outlook’s .ost and .pst files, written entirely in C#. To download an executable of the current version, go to th…

2026/8/13 20:07:37 阅读更多 →
10分钟上手Qiskit Textbook:环境搭建与第一个量子程序实战教程

10分钟上手Qiskit Textbook:环境搭建与第一个量子程序实战教程

10分钟上手Qiskit Textbook:环境搭建与第一个量子程序实战教程 【免费下载链接】textbook Source content for the Qiskit Textbook 项目地址: https://gitcode.com/gh_mirrors/textboo/textbook Qiskit Textbook是学习量子计算的终极资源,提供了…

2026/8/13 20:07:37 阅读更多 →
教育机构网站建设方案:打造高转化品牌官网的全流程指南

教育机构网站建设方案:打造高转化品牌官网的全流程指南

在如今这个信息爆炸的时代,做教育行业的朋友们可能都有这样一个痛点:明明自己的教学质量硬、师资强,家长口碑也好,但是线下的咨询量就是上不去,线上的品牌曝光也寥寥无几。很多时候,不是你的课不好,而是你的“门面”没开好。在这个移动互联网主导决策的时代,网站已经不…

2026/8/13 20:07:37 阅读更多 →
Gopeed:重新定义现代下载体验的跨平台全能下载器

Gopeed:重新定义现代下载体验的跨平台全能下载器

Gopeed:重新定义现代下载体验的跨平台全能下载器 【免费下载链接】gopeed A fast, modern download manager for HTTP, BitTorrent, Magnet, and ed2k. Cross-platform, built with Golang and Flutter. 项目地址: https://gitcode.com/GitHub_Trending/go/gopee…

2026/8/13 20:07:37 阅读更多 →
Cloudflare OS蓝图功能详解:快速创建专业级工作空间模板

Cloudflare OS蓝图功能详解:快速创建专业级工作空间模板

Cloudflare OS蓝图功能详解:快速创建专业级工作空间模板 【免费下载链接】cloudflare-os Agent workspace built on Cloudflare Workers for creating documents, building apps, and running agents with your company’s context and systems. 项目地址: https:…

2026/8/13 20:06:37 阅读更多 →

日新闻

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

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

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

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

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

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

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

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

Windows家庭版远程桌面多用户破解完整指南: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分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

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

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

如何快速生成中国车牌图片: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工程开始实践

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

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

月新闻

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

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

免费解锁百度网盘SVIP加速: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指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

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

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

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

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