Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
ADC
给RT-Thread添加ADC驱动框架
发布于 2018-05-07 22:31:18 浏览:5802
订阅该版
[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)); ``` ![baidu.jpg](http://oss-fa.rt-thread.org/uploads/20201209/42ddc06e48505b0ab42d3f18218db288.jpg)
yygkqzh
2018-06-07
这家伙很懒,什么也没写!
谢谢楼主分享 明天调试看看
flyangus
2018-06-07
这家伙很懒,什么也没写!
如何对应到具体硬件上去?
mreasonlee
2019-04-14
这家伙很懒,什么也没写!
代码中的-> 是转码错误,请同学们注意下。
撰写答案
登录
注册新账号
关注者
0
被浏览
5.8k
关于作者
aozima
调网络不抓包,调I2C等时序不上逻辑分析仪,就像电工不用万用表!多用整理的好的文字,比截图更省流量,还能在整理过程中思考。
提问
92
回答
4479
被采纳
379
关注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
国产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
TinyUSB Demo运行教程
2
RT-Thread学习大礼包一键带走!
3
freemodbus从机调试说明
4
【1024】瑞萨 RA 系列 BSP 制作与适配最新版本的 Keil 、 RSC、固件,较新的 FSP
5
基于 RT-Thread 星火一号开发板的俄罗斯方块
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
ART-Pi
FinSH
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
rt-smart
FAL
ESP8266
I2C_IIC
WIZnet_W5500
ota在线升级
UART
cubemx
PWM
flash
packages_软件包
freemodbus
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
ulog
C++_cpp
at_device
本月问答贡献
出出啊
1516
个答案
342
次被采纳
小小李sunny
1440
个答案
289
次被采纳
张世争
799
个答案
171
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
出出啊
1
篇文章
1
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
4
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部