Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
ADC设备
双通道ADC采集问题
发布于 2021-11-03 11:57:15 浏览:1556
订阅该版
```c void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc) { GPIO_InitTypeDef GPIO_InitStruct = {0}; if(hadc->Instance==ADC1) { /* USER CODE BEGIN ADC1_MspInit 0 */ /* USER CODE END ADC1_MspInit 0 */ /* Peripheral clock enable */ __HAL_RCC_ADC1_CLK_ENABLE(); __HAL_RCC_GPIOC_CLK_ENABLE(); /**ADC1 GPIO Configuration PC2 ------> ADC1_IN3 */ GPIO_InitStruct.Pin = GPIO_PIN_2; GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); /* USER CODE BEGIN ADC1_MspInit 1 */ /* USER CODE END ADC1_MspInit 1 */ } } ``` ADC1只配置的是PC2通道3为什么使能通道5,然后`rt_adc_read(dev, 5)`也能读出值
查看更多
4
个回答
默认排序
按发布时间排序
刺刺赐
2021-11-03
大家吃好喝好
从上面这种图只能看出来PC3被设置成模拟输入
小小李sunny
2021-11-03
这家伙很懒,什么也没写!
这里只是把PC2设置为模拟输入模式,配置和读取ADC的值只能读取该通道。读取其他通道有值但不是不是该通道所采集的值,不能用
嚜軒公告
2021-11-26
努力中
你这不就配置了一个通道
fubaojun2006
2021-12-02
哇(挖)~~坑~~~啊!
我读了源码,代码的调用路径: ``` rt_adc_read --》 dev->ops->convert(dev, channel, &value); --》 stm_adc_ops.convert = stm32_get_adc_value --》 ADC_ChanConf.Channel = stm32_adc_get_channel(channel); ADC_ChanConf.Rank = 1; --》 HAL_ADC_ConfigChannel --》 HAL_ADC_GetValue ``` 可以确认的是,这个rt_adc_read 确定读取的是你设定的通道5的电压值。`stm32_get_adc_value`这个函数的作用就是只配置`Rank = 1`这样一个`regular group`, 另外,`ADC1_CONFIG.Init.NbrOfConversion = 1`, 也就是每次只转换这一个通道。 所以可以确认的是 读取的是硬件通道`5 PA5 ADC12_IN5`的值。 那为什么你读取的值是对的呢,这个要从硬件IO 上找原因了。  从IO结构图上看出,模拟输入 与 数字输入 是一条线上的。只是数字输入这里多了一个TTL 施密特触发器。 当芯片复位时,IO口的模式为 数字浮空输入,一般来说浮空输入模式 对外的漏电流为1uA 这很小的。 所以,对于模拟输入那里 几乎不产生电压影响。 所以,就算硬件ADC去获取PA5的电压,也依然能够反映外部真实的ADC值。 那么根据这硬件图,我推测,如果是把PA5 设定为PP输出模式 ,ADC 依然可以读到IO上的电压值。只是这个值会随着PA5的输出电压变化而变化。 这就是为什么读外部ADC时要设定为模拟输入的原因: 切断其他电路对外部模拟电压的干扰。 如果想要测试我说的这个,可以用一个滑动变阻器,抽头 放在PA5这里。 两种情况: - 1.不对PA5 初始化, 滑动变阻器 看ADC值。 - 2.对PA5 初始化PP输出,定时1s 翻转电平,看ADC值。 好像空口无凭 啊 (ಥ_ಥ) 我去实验一下。不过通道不一定选择你这个PA5。
撰写答案
登录
注册新账号
关注者
0
被浏览
1.6k
关于作者
黄城铭
这家伙很懒,什么也没写!
提问
8
回答
0
被采纳
0
关注TA
发私信
相关问题
1
adc设备不能打开。。。。。
2
ADC 设备名称是怎么确定的
3
stm32g0 设备驱动框架 wdt adc 报错
4
ADC设备只能采集一个通道值?
5
rtthread studio adc三通道采集ntc电阻出现问题
6
ADC复制的void HAL_ADC_MspInit编译错误
7
多通道ADC读取出现问题
8
ADC 总线打不开 控制台没有ADC总线
9
rt_adc_voltage 使用问题
10
求助粉尘传感器GP2Y10使用工程
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
RT-Thread项目助手v0.3 | Ubuntu与MacOS平台的RT-Thread Env
2
【FRA156测评DM-MCX】- 环境配置篇
3
【基于HPM6750+RW007的网页服务器】---SD卡文件系统
4
有关RT_thread studio使用WDT的一点经验
5
ART-PI2 上手记录(一)
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
rt-smart
RTC
FAL
I2C_IIC
ESP8266
UART
cubemx
WIZnet_W5500
ota在线升级
PWM
BSP
flash
freemodbus
packages_软件包
潘多拉开发板_Pandora
GD32
定时器
ADC
flashDB
编译报错
socket
中断
rt_mq_消息队列_msg_queue
Debug
keil_MDK
SFUD
msh
ulog
C++_cpp
MicroPython
本月问答贡献
lchnu
3
个答案
2
次被采纳
张世争
1
个答案
2
次被采纳
a1012112796
9
个答案
1
次被采纳
三世执戟
7
个答案
1
次被采纳
crystal266
4
个答案
1
次被采纳
本月文章贡献
jinchanchan
8
篇文章
13
次点赞
ssdd45555
3
篇文章
2
次点赞
聚散无由
1
篇文章
4
次点赞
rvcore
1
篇文章
1
次点赞
lvdongchina
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部