Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread
恩智浦[FRDM-MCXN947]初探 之 ADC与DAC
发布于 2024-12-02 17:11:46 浏览:12
订阅该版
[tocm] # 1 FRDM-MCXN947开发板 NXP FRDM-MCXN947板是NXP官方基于MCXN947器件的低成本设计和评估板。MCXN947器件将Arm Cortex-M33单片机和神经处理单元(NPU)集成到单个封装中。NXP支持MCXN947设备的工具和软件,包括硬件评估板,软件开发IDE,示例应用程序和驱动程序。 ![FRDM-MCXN947.png](https://oss-club.rt-thread.org/uploads/20241202/0272dc437ebd972003d9a981ca836ab0.png.webp) 请参见[FRDM-MCXN947快速指南](https://www.nxp.com.cn/docs/en/quick-reference-guide/FRDM-MCXN947-QSG.pdf "FRDM-MCXN947快速指南") 。 # 2 开发环境搭建 ## 2.1 Keil MDK V5.38 安装 MDK-ARM 5.38(或以上版本均可)。安装方法可以参考 [Keil MDK安装](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/tutorial/quick-start/keil/keil "Keil MDK安装")。 安装NXP.MCXN947_DFP.19.0.0.pack:[下载链接](https://mcuxpresso.nxp.com/cmsis_pack/repo/NXP.MCXN947_DFP.19.0.0.pack "下载链接") 。 ![图片1.png](https://oss-club.rt-thread.org/uploads/20241202/b133ffd7cb275e3791295d5d0d28c848.png.webp) ## 2.2 安装ENV 下载链接:https://www.rt-thread.org/download.html#download-rt-thread-env-tool ,目前已升级到env-windows-v2.0.0, 安装步骤中包含了git的安装,安装步骤请参见[Env 用户手册](https://www.rt-thread.org/document/site/#/development-tools/env/env "Env 用户手册")。 **特别说明:安装目录不能有空格!** ## 2.3 安装串口调式助手 个人推荐使用Serial Studio。 下载链接:https://github.com/Serial-Studio/Serial-Studio 。 # 3 获取rt-thread-master源码 下拉代码git clone https://github.com/RT-Thread/rt-thread.git ,rt-thread 文件配置代码位置如下图分部,克隆的rt-thread文件在env环境大文件夹下图: ![图片2.png](https://oss-club.rt-thread.org/uploads/20241202/1d0bc6fec08c929275f4613bc9a78fa6.png.webp) **特别说明: 国内访问github网络连接不太稳定可能导致连接失败,可待网页端连接成功后重新上述步骤!** # 4 编译环境 ## 4.1 修改EXEC_PATH 如: ~~D:\Program~~\env-windows\rt-thread\bsp\nxp\mcx\mcxn\frdm-mcxn947目录中找到“rtconfig.py”,以记事本格式打开,根据使用的编译器类型,首先确认 EXEC_PATH 这个变量定义的路径对不对,不对的先按照自己计算机上的路径进行修改。 ![图片3.png](https://oss-club.rt-thread.org/uploads/20241202/bb25f4c35e293f9c34a1342faa524d64.png.webp) ## 4.2 配置硬件驱动 以管理员身份运行env.exe,切换到frdm-mcxn947工程目录cd rt-thread\bsp\nxp\mcx\mcxn\frdm-mcxn947 ![图片4.png](https://oss-club.rt-thread.org/uploads/20241202/418100bdd2ebe669bc575f941906c16d.png.webp) env环境中输入menuconfig后按回车,弹出当前工程的配置界面: ![图片5.png](https://oss-club.rt-thread.org/uploads/20241202/ff1866b7a4763c60744d3dbe7cf34659.png.webp) “HardWare Drivers Config”-> “On-Chip Peripheral Drivers”: - 选择“Enable ADC Channel” -> 选中Enable ADC0 Channel0 ; - 选择“Enable DAC Channel” -> 选中Enable DAC2 Channel . ![图片6.png](https://oss-club.rt-thread.org/uploads/20241202/969a77397c0567bd14aadd5080d1fbf3.png.webp) 保存后退出。 ## 4.3 重新生成工程 输入“scons —target=mdk5”后按回车重新生成工程。 ![图片7.png](https://oss-club.rt-thread.org/uploads/20241202/e4e41738bc65330219fb9dba3689695e.png.webp) ## 4.4 修改MDK配置 双击打开~~D:\Program~~\env-windows\rt-thread\bsp\nxp\mcx\mcxn\frdm-mcxn947目录下的“project.uvprojx”,打开kei MDK,启动工程编译环境,修改配置如下: ![图片8.png](https://oss-club.rt-thread.org/uploads/20241202/77b19d45c24d99d6813c6165c5a8736b.png.webp) 此步配置可减少编译警告。 # 5 编写代码 在application中添加测试文件adc_test.c,并编写如下代码: ```c #include
#define ADC_DEV_NAME "adc0" #define REFER_VOLTAGE 3300 //max adc voltage is 3.3V #define CONVERT_BITS (1<<16) //16bit adc0 void adc_test(int argv,char **argc) { rt_adc_device_t adc_dev; rt_uint32_t value,vol; rt_uint8_t i; rt_err_t ret = RT_EOK; adc_dev = (rt_adc_device_t)rt_device_find(ADC_DEV_NAME); if(adc_dev == RT_NULL) { rt_kprintf("adc_test failed! can't find %s device!\n",ADC_DEV_NAME); return; } ret = rt_adc_enable(adc_dev,0); rt_kprintf("rt_adc_enable(adc_dev,0) is : %s\n",ret); // while(1) // { // value = rt_adc_read(adc_dev,0); // vol = value * REFER_VOLTAGE / CONVERT_BITS; // rt_kprintf("the voltage is : [%d.%03d]V\n",vol/1000,vol%1000); // rt_thread_delay(1500); // } value = rt_adc_read(adc_dev,0); rt_kprintf("rt_adc_read(adc_dev,0) is : %x\n",value); rt_kprintf("REFER_VOLTAGE is : %x\n",REFER_VOLTAGE); rt_kprintf("CONVERT_BITS is : %x\n",CONVERT_BITS); for(i=0;i<3;i++) { value = rt_adc_read(adc_dev,0); vol = value * REFER_VOLTAGE / CONVERT_BITS; rt_kprintf("the voltage is : [%d.%03d]V\n",vol/1000,vol%1000); rt_thread_delay(1000); } return; } MSH_CMD_EXPORT(adc_test,adc_test); ``` 在Keil MDK环境中重新工程文件,会出现一堆警报,只要不出现错误可暂时忽略。 ![图片9.png](https://oss-club.rt-thread.org/uploads/20241202/db9033c3149752c0fd0ccbf8c595c1fd.png) # 6 硬件连接 使用自带USB线将电脑与开发板J17连接; 使用杜邦线将FRDM-MCXN-947开发板上J4-2与J3-2短接。 ![图片10.jpg](https://oss-club.rt-thread.org/uploads/20241202/95f5226df84087fec204bba8f79416b5.jpg.webp) # 7 功能验证 在Keil MDK环境中下载上述编译好的程序到FRDM-MCXN-947开发板; 运行串口调式助手Serial Studio,配置好端口和波特率,点击连接; 触发FRDM-MCXN-947开发板上SW1(RESET)开关,观察串口调式助手信息: ![图片11.png](https://oss-club.rt-thread.org/uploads/20241202/ef2e2feaf977316560d837667e0e96db.png.webp) ## 7.1 DAC功能 在Serial Studio上使用DAC,,分先后输入如下指令: - dac probe dac2 - dac enable dac2 - dac write 0 10000 ![图片12.png](https://oss-club.rt-thread.org/uploads/20241202/02506cf9e33d87be2da85c94e3477466.png.webp) ## 7.2 ADC功能 在Serial Studio上使用ADC,分先后输入如下指令: - adc probe adc0 - adc enable adc0 - adc read 0 ![图片13.png](https://oss-club.rt-thread.org/uploads/20241202/f060900b0d289fd1dfe14e1eb9fc67be.png.webp) ## 7.3 数据验证 ### A. 数据转换 输入指令:adc_test ![图片14.png](https://oss-club.rt-thread.org/uploads/20241202/d9e66aa696878f2d48f5569949cba924.png.webp) ### B. 综合验证 输入指令:dac write 0 15000 输入指令:adc_test ![图片15.png](https://oss-club.rt-thread.org/uploads/20241202/6f1f31f9e6f3edc7cc29ac86d8726563.png.webp)
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
xnosky
这家伙很懒,什么也没写!
文章
2
回答
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
编译报错
SFUD
msh
rt_mq_消息队列_msg_queue
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
出出啊
1517
个答案
342
次被采纳
小小李sunny
1443
个答案
289
次被采纳
张世争
805
个答案
174
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
出出啊
1
篇文章
4
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
1
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部