Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread
英飞凌Infineon
英飞凌CYW43012 Wi-Fi & Bluetooth开发板(二) - ADC
发布于 2024-02-01 14:55:45 浏览:256
订阅该版
[tocm] # 英飞凌CYW43012 Wi-Fi & Bluetooth开发板(二) - ADC # 一、前言 使用`RT-Thread Studio`配置 `ADC` 设备,使用单通道的方式获取电位器输出的电压值。 ## 1.1 原理图查看方式 打开`Board Information` ![2-11.png](https://oss-club.rt-thread.org/uploads/20240201/b9f5452f2fce5b7da2a7262948ae6b49.png) 查看`SCH`文件 ![2-12.png](https://oss-club.rt-thread.org/uploads/20240201/43358a7b104b45d4d085fcd6cb52f949.png.webp) # 二、实验步骤 ## 2.1. 新建工程 新建工程见上一章节 ## 2.2. 配置工程 打开` RT-Thread Studio` 工程中的`RT-Thread Settings`, 配置如下: ![2-10.png](https://oss-club.rt-thread.org/uploads/20240201/d1a26c903279b68dd95910d3c9b8f4c9.png) 配置信息如下: ![2-20.png](https://oss-club.rt-thread.org/uploads/20240201/d2bf528b27f1aa9f04d9742b06197e07.png.webp) 打开组件,把"使用`ADC`设备驱动程序"勾选上 ![2-30.png](https://oss-club.rt-thread.org/uploads/20240201/76b2c5d41a7b99487efd35e291803e1c.png.webp) ## 2.3. 硬件连接 使用开发板上的`A0`引脚 ![2-60.jpg](https://oss-club.rt-thread.org/uploads/20240201/d69e285cfc42f4b4699e195ce15c66b9.jpg.webp) 查看原理图可知使用的是`MCU_ARD_ADC0`这个`ADC` ![2-50.png](https://oss-club.rt-thread.org/uploads/20240201/851f4457a4d62c83e395722695b4ee63.png.webp) 查看原理图可知, 需要使用的引脚为`P10.0` ![2-40.png](https://oss-club.rt-thread.org/uploads/20240201/cb74f47b4ea75a43fb8996cd90ff6e11.png.webp) ## 2.4. 编写代码 ```c #include "cy_pdl.h" #include "cyhal.h" #include "cybsp.h" #include "cy_retarget_io.h" // ADC通道0 #define ADC_CHANNEL_0 (P10_0) /* 转换系数 */ #define CONVERSION_VALUE (1000u) /* 初始化ADC通道 */ void adc_channel_init(void); /* 读取通道电压值 */ void read_adc_channel_value(void); /* ADC 句柄 */ cyhal_adc_t adc_obj; /* ADC通道句柄 */ cyhal_adc_channel_t adc_chan_0_obj; /* ADC默认配置信息 */ const cyhal_adc_config_t adc_config = { .continuous_scanning=false, // 禁用连续扫描 .average_count=1, // 禁用平均计数 .vref=CYHAL_ADC_REF_VDDA, // 单端通道的VREF设置为VDDA .vneg=CYHAL_ADC_VNEG_VSSA, // 单端通道的VNEG设置为VSSA .resolution = 12u, // 12-bit 分辨率 .ext_vref = NC, .bypass_pin = NC }; int main(void) { cybsp_init(); // 初始化设备和板子外围设备 __enable_irq(); // 使能全局中断 cy_retarget_io_init(CYBSP_DEBUG_UART_TX, CYBSP_DEBUG_UART_RX, CY_RETARGET_IO_BAUDRATE); // 初始化UART printf("-----------------------------------------------------------\r\n\n"); adc_channel_init(); // 初始化ADC通道 cyhal_adc_configure(&adc_obj, &adc_config); // 配置ADC while (1) { read_adc_channel_value(); cyhal_system_delay_ms(300u); // 延迟300ms } } // 初始化 void adc_channel_init(void) { cyhal_adc_init(&adc_obj, ADC_CHANNEL_0, NULL); /* ADC 通道配置 */ const cyhal_adc_channel_config_t channel_config = { .enable_averaging = false, // 禁用通道的平均值 .min_acquisition_ns = 1000u, // 最短采集时间设置为1us .enabled = true }; // 使能 cyhal_adc_channel_init_diff(&adc_chan_0_obj, &adc_obj, ADC_CHANNEL_0, CYHAL_ADC_VNEG, &channel_config); } // 读取ADC值 void read_adc_channel_value(void) { int32_t adc_result = 0; // 读取AD值, 并将其转化为电压(单位mv) adc_result = cyhal_adc_read_uv(&adc_chan_0_obj) / CONVERSION_VALUE; printf("Channel 0 input: %4ldmV\r\n", (long int)adc_result); } ``` ## 2.5. 效果 连接串口助手, 旋转点位器, 在串口助手中查看效果。 ![2-70.png](https://oss-club.rt-thread.org/uploads/20240201/92795eb5522643969fd592d91d68c3d0.png) # 总结 板子上的ADC电压采集精度高, 速度块。并且有单通道和多通道两种ADC转换方式。线性度在有效区间效果较好。
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
灵_沉
这家伙很懒,什么也没写!
文章
3
回答
0
被采纳
0
关注TA
发私信
相关文章
1
RT-THREAD在STM32H747平台上移植lwip
2
正点原子miniSTM32开发板读写sdcard
3
反馈rtt串口驱动对低功耗串口lpuart1不兼容的问题
4
Keil MDK 移植 RT-Thread Nano
5
RT1061/1052 带 RTT + LWIP和LPSPI,有什么坑要注意吗?
6
RT thread HID 如何收发数据
7
求一份基于RTT系统封装好的STM32F1系列的FLASH操作程序
8
RT-Thread修改项目名称之后不能下载
9
rt-studio编译c++
10
有木有移植rt-thread(nano)到riscv 32位MCU上
推荐文章
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组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
rt_mq_消息队列_msg_queue
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
a1012112796
20
个答案
3
次被采纳
张世争
11
个答案
3
次被采纳
踩姑娘的小蘑菇
7
个答案
3
次被采纳
rv666
9
个答案
2
次被采纳
用户名由3_15位
13
个答案
1
次被采纳
本月文章贡献
程序员阿伟
9
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
RTT_逍遥
1
篇文章
6
次点赞
大龄码农
1
篇文章
5
次点赞
ThinkCode
1
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部