基于RT-THREAD STM32F429IGT6 BSP的ADC设备应用
硬件平台:野火STM32挑战者 MCU:STM32F429IGT6
开发工具:
- MDK Version:5.25
- VSCode
- env
- STM32CubeMX Version:5.2.1
- rt-thread源码 Version:4.0.1
工具获取
说明:
这次先介绍下ADC设备的操作方法,然后一步一步完成ADC设备的BSP过程。
该BSP主要实现使用ADC设备管理接口
管理ADC采集电压信号
,其中硬件图下图:
根据芯片手册,PC3
引脚对应的adc通道情况,如下图:
ADC设备的操作方法
应用程序通过RT-Thred提供的adc设备管理接口操作adc设备,相关函数接口如下表:
方法名称 | 方法描述 |
---|---|
rt_device_find() | 根据 ADC 设备名称查找设备获取设备句柄 |
rt_adc_enable() | 使能ADC设备 |
rt_adc_read() | 读取adc设备数据 |
rt_adc_disable() | 关闭adc设备 |
1. 查找 ADC 设备
在使用adc设备之前需要先查找adc设备句柄,通过下面函数完成:
rt_device_t rt_device_find(const char* name);
参数 | 描述 |
---|---|
name | adc设备名字 |
返回 | 描述 |
设备句柄 | 无查找到正确的设备后返回对应的设备句柄 |
RT_NULL | 没有查找到设备 |
根据 rt-thread 设备注册格式,一般注册到设备块的 adc 设备名字为adc0
、adc1
等等。
2. 使能 ADC 设备
跟我们前面使用pin设备一样,具体操作之前都得先使能,使能adc设备用如下函数完成:
rt_err_t rt_adc_enable(rt_adc_device_t dev, rt_uint32_t channel);
参数 | 描述 |
---|---|
dev | ADC设备句柄 |
channel | ADC设备所使用的通道 |
返回 | 描述 |
RT_EOK | 使能成功 |
-RT_ENOSYS | 使能失败,设备操作方法为空 |
其他值 | 使能失败 |
3. 读取ADC设备所在通道值
读取adc设备通道值使用如下函数完成:
rt_uint32_t rt_adc_read