Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
ADC
给RT-Thread添加ADC驱动框架
发布于 2018-05-07 22:31:18 浏览:5179
订阅该版
[tocm] # ADC驱动框架 ADC(Analog-to-Digital Converter) 基本功能:按通道号获取原始值 # RT-Thread的ADC实现 1. 为省空间,所以的ADC通道合并为一个设备: RT_Device_Class_Miscellaneous 2. 使用pos参数作为通道号 ## 接口 ```c struct rt_adc_ops { rt_err_t (*convert)(struct rt_device *device, int channel, int *value); }; struct rt_device_adc { struct rt_device parent; const struct rt_adc_ops *ops; }; ``` ADC只需要实现转换接口,输入参数为通道号。 ### 返回值的定义 暂定为原始值,数据类型为int,支持负数。 ## read ```c static rt_size_t _adc_read(rt_device_t dev, rt_off_t pos, void *buffer, rt_size_t size) { rt_err_t result = RT_EOK; rt_size_t i; struct rt_device_adc *adc = (struct rt_device_adc *)dev; int *value = (int *)buffer; if(!adc->ops->convert) { return 0; } for(i=0; i
ops->convert(dev, pos + i, value); if(result != RT_EOK) { return 0; } value++; } return i; } ``` ### pos pos参数为通道编号,每次可以读取多个通道。 ### size 统一定义为byte,避免歧义。 每一个通道的大小是 sizeof(int) 注意: pos与size的定义并不相同。
查看更多
4
个回答
默认排序
按发布时间排序
aozima
2018-05-07
调网络不抓包,调I2C等时序不上逻辑分析仪,就像电工不用万用表!
占位: 驱动示例与测试 ```c dev = rt_device_find("adc"); rt_device_open(dev, RT_DEVICE_FLAG_RDONLY); int value; rt_device_read(dev, channel, &value, sizeof(value)); ``` 
yygkqzh
2018-06-07
这家伙很懒,什么也没写!
谢谢楼主分享 明天调试看看
flyangus
2018-06-07
这家伙很懒,什么也没写!
如何对应到具体硬件上去?
mreasonlee
2019-04-14
这家伙很懒,什么也没写!
代码中的-> 是转码错误,请同学们注意下。
撰写答案
登录
注册新账号
关注者
0
被浏览
5.2k
关于作者
aozima
调网络不抓包,调I2C等时序不上逻辑分析仪,就像电工不用万用表!
提问
92
回答
4422
被采纳
369
关注TA
发私信
相关问题
1
请大神帮忙看下风格 还是哪里有问题 照着串口驱动写的ADC驱动
2
ADC config
3
rt_thread_delay()和ADC采样之间的冲突
4
请教在官方BSP中的STM32F40X程序中加入ADC,串口没输出。
5
求助:ADC采样被干扰
6
【内核和外设学习营】十里 ADC光敏电阻电压采集实验
7
<内核学习营>+坦然+探索者stm32f407板子的ADC测试光传感器实验
8
【内核学习营】+青春+ADC读取光敏传感器实验
9
《内核学习营》+水一方+项目中应用的ADC实现电压采集
10
STM32F10X HAL ADC+TIM+DMA+USART程序
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
机器人操作系统 (ROS2) 和 RT-Thread 通信
4
五分钟玩转RT-Thread新社区
5
国产MCU移植系列教程汇总,欢迎查看!
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
RyanMqtt 移植指南(三)
2
RyanMqtt QOS质量测试(二)
3
WCH APT 零等待FLASH的思考
4
RyanMqtt使用介绍和示例代码(一)
5
RTT平台 zephyr_polling软件包 Bluenrg2 蓝牙芯片启动流程
热门标签
RT-Thread Studio
串口
Env
LWIP
AT
SPI
Bootloader
FinSH
ART-Pi
CAN总线
Hardfault
USB
文件系统
DMA
RT-Thread
SCons
线程
RT-Thread Nano
MQTT
stm32
ESP8266
rt-smart
WIZnet_W5500
RTC
flash
ota
UART
FAL
packages_软件包
I2C
freemodbus
cubemx
潘多拉开发板_Pandora
定时器
PWM
BSP
ADC
socket
AB32VG1
SDIO
keil_MDK
中断
消息队列_msg_queue
编译报错
Debug
C++_cpp
msh
QEMU
SFUD
MicroPython
本月问答贡献
出出啊
1463
个答案
324
次被采纳
小小李sunny
1379
个答案
274
次被采纳
张世争
700
个答案
155
次被采纳
crystal266
518
个答案
152
次被采纳
whj467467222
1215
个答案
146
次被采纳
本月文章贡献
出出啊
1
篇文章
11
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
4
篇文章
6
次点赞
crystal266
2
篇文章
5
次点赞
whj467467222
2
篇文章
4
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部