Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
NXP 微控制器
RTThreaed
开发板测评
【恩智浦FRDM-MCX947开箱实践指南1】
发布于 2024-04-07 10:26:26 浏览:1516
订阅该版
[tocm] # 1.硬件介绍 开发板描述: NXP FRDM-MCXN947板是NXP官方基于MCXN947器件的低成本设计和评估板。MCXN947器件将Arm Cortex-M33单片机和神经处理单元(NPU)集成到单个封装中。NXP支持MCXN947设备的工具和软件,包括硬件评估板,软件开发IDE,示例应用程序和驱动程序。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240407/6e5ee5196d9cd684637c9b8d2b1162f7.png.webp) > 1. 该板由一个MCXN947器件和一个64 mbit外部串行闪存(由Windows提供)组成。 > 2.该板还具有P3T1755DPI3C温度传感器,CAN PHY,以太网PHY,SDHC电路(DNP),RGB LED,触摸板,高速USB电路,按钮和MCU-Link调试探头电路。 > 3. 提供Arduino扩展,PMOD扩展,MicroBus总线扩展。 > 4. 支持摄像头模块和NXP低成本LCD模块PAR-LCD-S035。 > 5. 兼容Arduino屏蔽模块和Mikroe点击板。 > 6. 板载MCU-Link调试探头基于LPC55S69单片机。 开发板外观如下图所示: ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240407/80346460ed79c91b5efbd0f6c77ff303.png.webp) 硬件配置: 该开发板常用 板载资源 如下: ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240407/17c24eefc03bbce69b85a986d55a0045.png.webp) - MCU:MCXN947VDFT,主频150 MHz - 外部FLASH:W25Q64JVSSIQ(8 MB) - 常用外设 ○LED:RGBLED(R接P0_10,G接P0_27,B接P1_2) ○按键:3个,RESET(RESET_B),WAKEUP(P0_23),ISPMODE(P0_6) ○常用接口:Arduino兼容IO接口,mikroBUS 接口,PMOD接口,FlexIO接口,摄像头接口,USB接口,CAN接口,MCU-Link USB接口,Debug接口 开发板更多详细信息请参考 NXP[官方网站](https://docs.nxp.com/bundle/UG10092/page/topics/introduction.html#)。 # 2.开发环境 目前FRDM-MCXN947板级支持包提供MDK5,并且支持 GCC 开发环境,现以 MDK5 开发环境为例,介绍如何将示例程序运行起来。运行示例程序前需要做如下准备工作: NXP官方的FRDM-MCXN947的上手教程,可以[参考这里](https://docs.nxp.com/bundle/UG10092/page/topics/introduction.html#) ## 2.1 MDK 开发环境 需要安装 MDK-ARM 5.38(或以上版本均可)和MCXN947_DFP17.0.0芯片资源包。安装方法可以参考 Keil MDK安装。 1. keil安装教程:[嵌入式系统开发的集成开发环境Keil 5.39版本的安装和配置使用](https://blog.csdn.net/Mr_ICer/article/details/135225009) 2. MCXN947_DFP17.0.0芯片资源包下载地址:[https://www.keil.arm.com/packs/mcxn947_dfp-nxp/devices/](https://www.keil.arm.com/packs/mcxn947_dfp-nxp/devices/) ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240407/30f30ab6f329274ffe2b8fd221387d15.png.webp) 下载后直接安装即可 ## 2.2 源码获取 1. [https://github.com/RT-Thread/rt-thread/](https://github.com/RT-Thread/rt-thread/) 恩智浦FRDM-MCX947程序源码在rt-thread仓库中,需要克隆下载 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240407/b2739df3e330dc32b18dcf6602ae4cf3.png.webp) 2. [源码目录说明](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/tutorial/quick-start/src_code_introduction/rtthread_dir) ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240407/45ad0e0eb8a9eb6f2d80ca98d3ca711c.png) ## 2.3 硬件连接 使用USB线连接开发板的USB转串口 到 PC 电脑。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240407/a11945e07262a44ff2c3883cd2a388e5.png.webp) 运行第一个示例程序 # 3. 编译下载 进入到 `rt-thread\bsp\nxp\mcxn\frdm-mcxn947 `文件夹中,双击 `project.uvprojx `文件, ## 3.1 打开 MDK5工程 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240407/0d240d47d061a7cd91871201b656dcbf.png) `main`主程序在`applications`文件夹下 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240407/298228b502fddf2b2e2c8b262dcfa498.png) `main`程序 ```cpp /* * Copyright (c) 2006-2024, RT-Thread Development Team * Copyright (c) 2019-2020, Arm Limited. All rights reserved. * * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes * 2019-10-24 Magicoe first version * 2020-01-10 Kevin/Karl Add PS demo * 2020-09-21 supperthomas fix the main.c * */ #include
#include
#include "drv_pin.h" #define LEDB_PIN ((0*32)+10) #define BUTTON_PIN ((0*32)+23) static void sw_pin_cb(void *args); int main(void) { #if defined(__CC_ARM) rt_kprintf("using armcc, version: %d\n", __ARMCC_VERSION); #elif defined(__clang__) rt_kprintf("using armclang, version: %d\n", __ARMCC_VERSION); #elif defined(__ICCARM__) rt_kprintf("using iccarm, version: %d\n", __VER__); #elif defined(__GNUC__) rt_kprintf("using gcc, version: %d.%d\n", __GNUC__, __GNUC_MINOR__); #endif rt_pin_mode(LEDB_PIN, PIN_MODE_OUTPUT); /* Set GPIO as Output */ rt_pin_mode(BUTTON_PIN, PIN_MODE_INPUT_PULLUP); rt_pin_attach_irq(BUTTON_PIN, PIN_IRQ_MODE_FALLING, sw_pin_cb, RT_NULL); rt_pin_irq_enable(BUTTON_PIN, 1); rt_kprintf("MCXN947 HelloWorld\r\n"); #ifdef RT_USING_SDIO rt_thread_mdelay(2000); if (dfs_mount("sd", "/", "elm", 0, NULL) == 0) { rt_kprintf("sd mounted to /\n"); } else { rt_kprintf("sd mount to / failed\n"); } #endif while (1) { rt_pin_write(LEDB_PIN, PIN_HIGH); /* Set GPIO output 1 */ rt_thread_mdelay(500); /* Delay 500mS */ rt_pin_write(LEDB_PIN, PIN_LOW); /* Set GPIO output 0 */ rt_thread_mdelay(500); /* Delay 500mS */ } } static void sw_pin_cb(void *args) { rt_kprintf("sw pressed\r\n"); } // end file ``` ## 3.2 程序解析 该程序是使用RT-Thread实时操作系统(RTOS)编写的C语言应用程序,主要功能包括LED灯的闪烁控制、按钮中断处理以及SD卡挂载。以下是程序的详细分析: 1. 头文件包含与版权信息 包含了rtdevice.h、rtthread.h和drv_pin.h头文件,分别提供了RT-Thread设备驱动接口、RT-Thread内核功能和特定硬件平台(如GPIO)的驱动定义。提供了版权信息及版本变更记录,显示了该程序基于RT-Thread实时操作系统,并列出了参与开发的团队成员及其贡献。 2. 定义常量 - LEDB_PIN:定义LED引脚编号为第0组的第10号引脚(根据特定硬件平台的GPIO编号规则)。 - BUTTON_PIN:定义按钮引脚编号为第0组的第23号引脚。 3. 定义回调函数 - sw_pin_cb(void *args):当按钮按下触发中断时调用的回调函数。该函数仅输出一条消息"sw pressed",表明按钮已被按下。 4. main()函数 - 输出编译器版本信息:根据预定义的编译器宏判断使用的编译器类型(如ARM Compiler、Clang、IAR或GCC),并打印对应的版本信息。 - 初始化LED与按钮引脚: > 将LED引脚设置为输出模式,以便后续控制LED的亮灭。 > 将按钮引脚设置为输入模式并启用内部上拉电阻,用于检测按钮的按下状态。 > 注册按钮引脚的下降沿中断,并启用中断功能。当按钮被按下时,将调用sw_pin_cb()回调函数。 - 输出欢迎消息:"MCXN947 HelloWorld",表明设备型号及程序名称。 - 挂载SD卡(条件编译,仅在RT_USING_SDIO定义时执行): > 延迟2秒,给SD卡足够的初始化时间。 使用dfs_mount()函数尝试将SD卡挂载到根目录/,使用ELM FatFS文件系统。如果挂载成功,输出"sd mounted to /";否则,输出"sd mount to / failed"。 - 主循环: > 使LED引脚输出高电平,LED亮起。 > 延迟500毫秒。 > 使LED引脚输出低电平,LED熄灭。 > 延迟500毫秒。 > 循环执行上述操作,实现LED灯的周期性闪烁。 综上所述,该程序的主要功能是在RT-Thread实时操作系统环境下,控制LED灯以固定频率闪烁,并通过按钮中断响应用户的按键操作。同时,根据配置,尝试挂载SD卡并报告挂载结果。 ## 3.3 执行编译 编译完成后,点击下载按钮将固件下载至开发板,下载完成后,程序会自动开始运行,观察程序运行状况。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240407/75c65248a219d34bed917f63de6de9c6.png.webp) 提示警告` Pack NXP::MCXN947_DFP@17.0.0: Required C 99, but current is C
`,设置匹配编译器c99 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240407/7011a96976906b633132d4ecff3abb5b.png.webp) > 提示:工程默认配置使用 CMSIS-DAP下载程序,点击下载按钮可下载程序到开发板 # 4. 测试运行 如没有自动运行,按下复位按键重启开发板,观察开发板上 LED 的实际效果。 ## 4.1 硬件显示 正常运行后,LED 灯会周期性闪烁,如下图所示: ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240407/88a4d2c569d231790143f8487d907d27.png.webp) ## 4.2 打印效果 连接开发板对应串口到PC,在串口工具里打开相应的串口(115200-8-1-N),复位设备后 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240407/ca91f9f0479479f3f8ed950c9811685d.png.webp) 可以看到 RT-Thread 的输出信息: 1. 启动打印`RT-Thread` ```cpp \ | / - RT - Thread Operating System / | \ 5.1.0 build Feb 19 2024 16:40:05 2006 - 2024 Copyright by RT-Thread team using armclang, version: 6190000 MCXN947 HelloWorld msh > ``` ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240407/7b6a458b9f8784f050be1adbc0e98eae.png) 2. 按键sw2 你可以按动按键sw2会有打印信息`sw pressed` 3. help指令 本案例接入rt-thread,因此可以测试相关指令查看系统状态 输入`help`进行指引学习,输出如下图 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240407/8d57d59eba71359c37d13483f2df64d1.png) ## 4.3 继续学习 已完成 RT-Thread 快速上手!点击这里进行 [内核学习](https://www.nxp.com/design/design-center/development-boards/general-purpose-mcus/frdm-development-board-for-mcx-n94-n54-mcus:FRDM-MCXN947)。 # 5. 总结 🥳🥳🥳现在,我们在本教程中,您学习了恩智浦FRDM-MCX947开箱实践指南。🛹🛹🛹从而实现对外部世界进行感知,充分认识这个有机与无机的环境,后期会持续分享esp32跑freertos实用案列🥳🥳🥳科学地合理地进行创作和发挥效益,然后为人类社会发展贡献一点微薄之力。🤣🤣🤣 如果你有任何问题,可以通过下面的二维码加入鹏鹏小分队,期待与你思维的碰撞😘😘😘 参考博客: - [NXP新品FRDM-MCXN947 评测活动开放, RT-Thread x NXP兴趣小组招募!](https://club.rt-thread.org/ask/article/37210d9731f6c853.html) - [FRDM-MCXN947内核学习](https://www.nxp.com/design/design-center/development-boards/general-purpose-mcus/frdm-development-board-for-mcx-n94-n54-mcus:FRDM-MCXN947) - [嵌入式系统开发的集成开发环境Keil 5.39版本的安装和配置使用](https://blog.csdn.net/Mr_ICer/article/details/135225009) - [MCXN947_DFP17.0.0](https://www.keil.arm.com/packs/mcxn947_dfp-nxp/devices/) - [RT-Thread](https://github.com/RT-Thread/rt-thread/) - [NXP新品FRDM-MCXN947 评测活动开放, RT-Thread x NXP兴趣小组招募!](https://club.rt-thread.org/ask/article/37210d9731f6c853.html "NXP新品FRDM-MCXN947 评测活动开放, RT-Thread x NXP兴趣小组招募!")
2
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
2345vor
每天都满怀期待i😀
文章
20
回答
2
被采纳
0
关注TA
发私信
相关文章
1
试贴-消灭0主题
2
LPC M4的一些资料
3
LPC4088的临时分支
4
lpc1788 ad 不稳定
5
1788 LCD控制器缓冲区字节问题
6
一起来学习LPC4088吧
7
上传LPC4088的realtouch主工程
8
RealBoard 4088预定帖 [第一批板子不多,预定提前结束]
9
晒RealBoard LPC4088开箱照啦,速带小板凳前来围观
10
4088主程序需要的SD卡资源
推荐文章
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
keil_MDK
rt_mq_消息队列_msg_queue
ulog
C++_cpp
at_device
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
a1012112796
13
个答案
2
次被采纳
张世争
9
个答案
2
次被采纳
rv666
5
个答案
2
次被采纳
用户名由3_15位
11
个答案
1
次被采纳
本月文章贡献
程序员阿伟
9
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
5
次点赞
RTT_逍遥
1
篇文章
2
次点赞
ThinkCode
1
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部