Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
ADC
八路adc采集结果不稳定
发布于 2022-09-04 13:49:15 浏览:986
订阅该版
``` #define ADC_DEV_NAME "adc1" /* ADC 设备名称 */ #define ADC_DEV_CHANNEL_PA0 0 /* ADC 通道 */ #define ADC_DEV_CHANNEL_PA1 1 /* ADC 通道 */ #define ADC_DEV_CHANNEL_PA4 4 /* ADC 通道 */ #define ADC_DEV_CHANNEL_PA5 5 /* ADC 通道 */ #define ADC_DEV_CHANNEL_PA6 6 /* ADC 通道 */ #define ADC_DEV_CHANNEL_PA7 7 /* ADC 通道 */ #define ADC_DEV_CHANNEL_PB0 8 /* ADC 通道 */ #define ADC_DEV_CHANNEL_PB1 9 /* ADC 通道 */ #define REFER_VOLTAGE 330 /* 参考电压 3.3V,数据精度乘以100保留2位小数*/ #define CONVERT_BITS (1 << 12) /* 转换位数为12位 */ //创建adc采集线程 rt_thread_t Adc_thread = RT_NULL; static void Adc_entry(void* paremeter) { rt_adc_device_t adc_dev; rt_uint32_t adc1_value,adc1_vol,adc2_value,adc2_vol,adc3_value,adc3_vol,adc4_value,adc4_vol; rt_uint32_t adc5_value,adc5_vol,adc6_value,adc6_vol,adc7_value,adc7_vol,adc8_value,adc8_vol; rt_err_t ret; adc_dev = (rt_adc_device_t)rt_device_find(ADC_DEV_NAME); if (adc_dev == RT_NULL) { rt_kprintf("adc sample run failed! can't find %s device!\n", ADC_DEV_NAME); } /* 使能设备*/ ret= rt_adc_enable(adc_dev, ADC_DEV_CHANNEL_PA0|ADC_DEV_CHANNEL_PA1|ADC_DEV_CHANNEL_PA4|ADC_DEV_CHANNEL_PA5|ADC_DEV_CHANNEL_PA6|ADC_DEV_CHANNEL_PA7|ADC_DEV_CHANNEL_PB0|ADC_DEV_CHANNEL_PB1); if(ret == RT_EOK) { rt_kprintf("adc sample run success! find %s device!\n", ADC_DEV_NAME); } rt_thread_mdelay(1000); while(1) { /* 读取采样值 */ adc1_value= rt_adc_read(adc_dev, ADC_DEV_CHANNEL_PA0); /* 转换为对应电压值 */ adc1_vol = adc1_value * REFER_VOLTAGE / CONVERT_BITS; rt_kprintf("the adc1_voltage is :%d.%02d \n", adc1_vol / 100, adc1_vol % 100); adc2_value= rt_adc_read(adc_dev, ADC_DEV_CHANNEL_PA1); adc2_vol = adc2_value * REFER_VOLTAGE / CONVERT_BITS; rt_kprintf("the adc2_voltage is :%d.%02d \n", adc2_vol / 100, adc2_vol % 100); adc3_value= rt_adc_read(adc_dev, ADC_DEV_CHANNEL_PA4); adc3_vol = adc3_value * REFER_VOLTAGE / CONVERT_BITS; rt_kprintf("the adc3_voltage is :%d.%02d \n", adc3_vol / 100, adc3_vol % 100); adc4_value= rt_adc_read(adc_dev, ADC_DEV_CHANNEL_PA5); adc4_vol = adc4_value * REFER_VOLTAGE / CONVERT_BITS; rt_kprintf("the adc4_voltage is :%d.%02d \n", adc4_vol / 100, adc4_vol % 100); adc5_value= rt_adc_read(adc_dev, ADC_DEV_CHANNEL_PA6); adc5_vol = adc5_value * REFER_VOLTAGE / CONVERT_BITS; rt_kprintf("the adc5_voltage is :%d.%02d \n", adc5_vol / 100, adc5_vol % 100); adc6_value= rt_adc_read(adc_dev, ADC_DEV_CHANNEL_PA7); adc6_vol = adc6_value * REFER_VOLTAGE / CONVERT_BITS; rt_kprintf("the adc6_voltage is :%d.%02d \n", adc6_vol / 100, adc6_vol % 100); adc7_value= rt_adc_read(adc_dev, ADC_DEV_CHANNEL_PB0); adc7_vol = adc7_value * REFER_VOLTAGE / CONVERT_BITS; rt_kprintf("the adc7_voltage is :%d.%02d \n", adc7_vol / 100, adc7_vol % 100); adc8_value= rt_adc_read(adc_dev, ADC_DEV_CHANNEL_PB1); adc8_vol = adc8_value * REFER_VOLTAGE / CONVERT_BITS; rt_kprintf("the adc8_voltage is :%d.%02d \n", adc8_vol / 100, adc8_vol % 100); rt_thread_delay(500); } } int app_ADC_init(void) { Adc_thread = rt_thread_create("adc1", Adc_entry, RT_NULL, THREAD_STACK_SIZE*4, THREAD_PRIORITY-20, THREAD_TIMESLICE*2); if(Adc_thread != RT_NULL) { rt_thread_startup(Adc_thread); } return RT_EOK; } INIT_APP_EXPORT(app_ADC_init); ``` 数据采集过程中adc的值移植不稳定,三路3.3v,5路0v,采集的结果如图   
查看更多
3
个回答
默认排序
按发布时间排序
小小李sunny
2022-09-04
这家伙很懒,什么也没写!
rt_adc_enable这个函数,一个通道一个通道去使能。你这样或出来的结果是15,并不是你所用的通道
小王001
2022-09-04
这家伙很懒,什么也没写!
补充:用的正点原子f407zgt6,裸机dma adc 8路采集的数据稳定,上了rtt后数据不稳定
flashman2002
2022-09-04
这家伙很懒,什么也没写!
建议先使用Fish命令进行相关通道的测试后再排除问题。 如`msh >adc probe adc1``msh >adc enable 5``msh >adc read 5`等命令测试
撰写答案
登录
注册新账号
关注者
0
被浏览
986
关于作者
小王001
这家伙很懒,什么也没写!
提问
14
回答
11
被采纳
0
关注TA
发私信
相关问题
1
请大神帮忙看下风格 还是哪里有问题 照着串口驱动写的ADC驱动
2
ADC config
3
rt_thread_delay()和ADC采样之间的冲突
4
请教在官方BSP中的STM32F40X程序中加入ADC,串口没输出。
5
给RT-Thread添加ADC驱动框架
6
求助:ADC采样被干扰
7
【内核和外设学习营】十里 ADC光敏电阻电压采集实验
8
<内核学习营>+坦然+探索者stm32f407板子的ADC测试光传感器实验
9
【内核学习营】+青春+ADC读取光敏传感器实验
10
《内核学习营》+水一方+项目中应用的ADC实现电压采集
推荐文章
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
CherryUSB STM32 glue 新增初始化
2
在LPC1114上移植 RT-Thread Nano 3.1.5
3
求助can通讯下怎末运用485
4
STM32F407ZGT适配串口V2驱动
5
【CFP】2025 RT-Thread全球技术大会演讲征集开始啦!
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
DMA
USB
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
rt-smart
FAL
I2C_IIC
cubemx
UART
ESP8266
WIZnet_W5500
BSP
ota在线升级
PWM
flash
packages_软件包
freemodbus
潘多拉开发板_Pandora
ADC
GD32
定时器
flashDB
编译报错
keil_MDK
socket
中断
rt_mq_消息队列_msg_queue
Debug
ulog
SFUD
msh
C++_cpp
at_device
本月问答贡献
聚散无由
9
个答案
6
次被采纳
RTT_逍遥
10
个答案
2
次被采纳
a1012112796
5
个答案
2
次被采纳
三世执戟
4
个答案
2
次被采纳
加缪
2
个答案
2
次被采纳
本月文章贡献
wake_mirco
2
篇文章
7
次点赞
mushroom
1
篇文章
9
次点赞
张世争
1
篇文章
7
次点赞
sakumisu
1
篇文章
6
次点赞
RTT_逍遥
1
篇文章
6
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部