stm32f401 adc
stm32f401 adc
STM32F401 的 ADC(模数转换器)是用于将模拟信号转换为数字信号的外设模块,以下是其基本特性和使用要点:
主要特性
- 分辨率:12 位,最大转换值 4095(0x0FFF)。
- 通道数量:
- 最多 16 个外部通道(具体取决于型号)。
- 可测量外部信号、内部温度传感器、VREFINT(内部参考电压)等。
- 转换模式:
- 单次转换(Single Conversion)
- 连续转换(Continuous Conversion)
- 扫描模式(多通道自动扫描)
- 触发源:软件触发、定时器触发、外部中断触发等。
- 时钟频率:最大 36 MHz(需通过预分频器配置)。
- 参考电压:VREF+(通常接 3.3V)和 VSSA(模拟地)。
基本配置步骤(以 HAL 库为例)
-
启用 ADC 和 GPIO 时钟:
__HAL_RCC_ADC1_CLK_ENABLE(); // 启用 ADC1 时钟 __HAL_RCC_GPIOA_CLK_ENABLE(); // 启用 GPIOA 时钟(假设使用 PA1 作为 ADC 输入) -
配置 GPIO 为模拟输入:
GPIO_InitTypeDef GPIO_InitStruct = {0}; GPIO_InitStruct.Pin = GPIO_PIN_1; // 例如 PA1 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; // 模拟模式 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); -
初始化 ADC:
ADC_HandleTypeDef hadc1; hadc1.Instance = ADC1; hadc1.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4; // 时钟分频(确保 ADC 时钟 ≤36MHz) hadc1.Init.Resolution = ADC_RESOLUTION_12B; // 12 位分辨率 hadc1.Init.ScanConvMode = DISABLE; // 单通道禁用扫描模式 hadc1.Init.ContinuousConvMode = DISABLE; // 单次转换模式 hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT; // 数据右对齐 HAL_ADC_Init(&hadc1); -
配置 ADC 通道:
ADC_ChannelConfTypeDef sConfig = {0}; sConfig.Channel = ADC_CHANNEL_1; // 对应 PA1 的 ADC 通道 sConfig.Rank = 1; // 转换顺序(单通道设为1) sConfig.SamplingTime = ADC_SAMPLETIME_56CYCLES; // 采样时间(根据信号阻抗调整) HAL_ADC_ConfigChannel(&hadc1, &sConfig); -
校准 ADC(提高精度):
HAL_ADCEx_Calibration_Start(&hadc1); // 执行校准 -
启动转换并读取结果:
HAL_ADC_Start(&hadc1); // 启动转换 if (HAL_ADC_PollForConversion(&hadc1, 10) == HAL_OK) { uint16_t adc_value = HAL_ADC_GetValue(&hadc1); // 读取转换结果 }
常见问题
- 采样时间不足:高频信号或高阻抗源需要更长的采样时间(例如
ADC_SAMPLETIME_112CYCLES)。 - 参考电压不稳定:确保 VREF+ 和 VSSA 稳定,减少噪声。
- 时钟配置错误:检查 ADC 时钟是否 ≤36 MHz(通过预分频器调整)。
- 通道映射错误:确认 GPIO 引脚对应的 ADC 通道(参考数据手册)。
示例应用
-
读取电位器电压(PA1 接电位器):
float voltage = (float)adc_value * 3.3f / 4095.0f; // 假设 VREF = 3.3V -
使用 DMA 多通道扫描:适合高速采集多路信号(需配置 DMA 和扫描模式)。
如果需要更具体的代码或配置,请提供详细需求!
stm32f401的PROTEUS仿真
搭建了一个stm32f401的PROTEUS仿真模型,PA9接一个发光二极管,以闪亮的方式点亮,在KEIL 5 中编辑了源代码,仿真通过。 *附件:simulation.rar
STM32F401 AHB时钟大于30MHz就不运行了是怎么回事?
STM32F401 AHB时钟大于30MHz 就不运行了,手册数据是84MHz,是什么问题?
STM32F401和STM32F411系列上的外设内部互联
电子发烧友网站提供《STM32F401和STM32F411系列上的外设内部互联.pdf》资料免费下载
资料下载
张桂英
2023-09-21 09:43:12
AN4616_从STM32F401/411系列移植到STM32L4/STM32L4plus系列微控制器
AN4616_从STM32F401/411系列移植到STM32L4/STM32L4plus系列微控制器
资料下载
靓仔峰
2022-11-21 17:06:55
STM32F401 定时器做编码器使用 采集电机旋转速度、旋转方向
定时器做编码器STM32F401的所有定时器都可以作为编码器使用(STM32F401在某宝20RMB以内买到的,晶振不同,不知道怎么操作的看我上一篇博文,里面有介绍怎么移植,经过本人验证,目前没有
资料下载
的撒的
2022-01-17 09:47:14
STM32F401xB STM32F401xC datasheet
STM32F401xB STM32F401xC datasheet(嵌入式开发考研专业)-Arm® Cortex®-M4 32-bit MCU+FPU, 105 DMIPS, 256KB Flash / 64KB
资料下载
张生
2021-08-04 12:05:58
如何去缓冲STM32F401上ADC噪声的输入呢
stm32f401 上)2000个样本,10个样本/秒,测量室温约30.5-31摄氏度计数 2000.000000平均 30.930100标准 4.062343最少 3.670000中位数 30.810000最大
STM32F401的所有定时器都可以作为编码器使用
定时器做编码器STM32F401的所有定时器都可以作为编码器使用(STM32F401在某宝20RMB以内买到的,晶振不同,不知道怎么操作的看我上一篇博文,里面有介绍怎么移植,经过本人验证,目前没有
使用STM32F401时需注意什么
使用STM32F401时需注意:stm32f401的系统库文件配置的晶振频率为25MHz,在外部使用8MHz的晶振是需对其进行修改,修改内容如下:1、修改st
使用STM32F401的大内存特性
需要使用STM32F401的大内存特性,买了1批STM32F401CCU6. QFN48封装的。随便翻了一下PDF,第一感觉和F103的48脚封
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- EDA是什么?有什么作用?
- dtmb信号覆盖城市查询
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 什么是场效应管?它的作用是什么?
- 如何进行编码器的正确接线?接线方法介绍
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- 单片机和嵌入式的区别是什么
- amoled屏幕和oled区别
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机
- 元宇宙概念龙头股一览