Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread一般讨论
【FRDM-MCXA156测评】- UART模块
发布于 2025-02-24 22:51:38 浏览:18
订阅该版
[tocm] # 引言 本文将介绍如何在 NXP FRDM-MCXA156 开发板上配置和使用 RT-Thread RTOS,并通过一个简单的串口通信 Demo 演示如何在该开发板上运行应用。 # NXP FRDM-MCXA156 开发板概述 NXP FRDM-MCXA156 是一款基于 MCX-A156 系列微控制器的开发板,适用于各类嵌入式系统开发。该板具备以下特点: 开发板基于 Arm® Cortex®-M33 核心,主频高达 1GHz,并提供高达 1MB 的闪存 和 128KB 的 RAM,其中还包括 8KB 的 ECC 内存保护,极大增强了数据的可靠性。该开发板支持一系列外设接口,包括 CAN-FD、FlexIO、FS USB、I3C、LPLUART、LPSPI、LPI2C,以及强大的 DMA 和 LDO 功能,适合进行高效、低功耗的嵌入式系统开发。 对于嵌入式开发者来说,FRDM-MCXA156 提供了强大的硬件基础,但选择合适的操作系统和开发工具,能更好地提高开发效率。 # 准备开发环境 请参考RT_Thread文档中心此篇NXP FRDM-MCXA156 上手指南,内容非常详尽。 [《NXP FRDM-MCXA156上手指南》](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/tutorial/quick-start/frdm_mcxa156/quick-start "《NXP FRDM-MCXA156上手指南》") # Demo实现 串口通信 Demo串口通信是嵌入式开发中最常见的操作之一。在RT_Thread上实现FRDM-MCXA156串口通信非常简单。以下是一个基于UART2的简单串口发送 Demo,用于测试开发板的串口功能。 首先,打开rt-thread\bsp\nxp\mcx\mcxa\frdm-mcxa156\rtconfig.h文件,找到#define BSP_USING_UART0,在其下方添加#define BSP_USING_UART2 ```c /* On-chip Peripheral Drivers */ #define BSP_USING_PIN #define BSP_USING_UART #define BSP_USING_UART0 #define BSP_USING_UART2 /* end of On-chip Peripheral Drivers */ ``` 然后需要进行引脚功能配置,这里需要参考官方数据手册,链接如下: [MCXAP100M96FS6.pdf](https://club.rt-thread.org/file_download/e13b93424886703b) 打开rt-thread\bsp\nxp\mcx\mcxa\frdm-mcxa156\board\MCUX_Config\board\pin_mux.c文件,在BOARD_InitPins函数内添加如下配置,结合数据手册对于引脚的介绍,模仿BOARD_InitPins函数内Uart0配置即可; ```c RESET_ReleasePeripheralReset(kLPUART2_RST_SHIFT_RSTn); const port_pin_config_t p2_10_pin_config = { kPORT_PullUp, kPORT_LowPullResistor, kPORT_FastSlewRate, kPORT_PassiveFilterDisable, kPORT_OpenDrainDisable, kPORT_LowDriveStrength, kPORT_NormalDriveStrength, kPORT_MuxAlt3, // LPUART2 TXD kPORT_InputBufferEnable, kPORT_InputNormal, kPORT_UnlockRegister }; PORT_SetPinConfig(PORT2, 10U, &p2_10_pin_config); // 配置为 LPUART2 TXD const port_pin_config_t p2_11_pin_config = { kPORT_PullUp, kPORT_LowPullResistor, kPORT_FastSlewRate, kPORT_PassiveFilterDisable, kPORT_OpenDrainDisable, kPORT_LowDriveStrength, kPORT_NormalDriveStrength, kPORT_MuxAlt3, // LPUART2 RXD kPORT_InputBufferEnable, kPORT_InputNormal, kPORT_UnlockRegister }; PORT_SetPinConfig(PORT2, 11U, &p2_11_pin_config); // 配置为 LPUART2 RXD ``` uart_send_demo具体实现,在Applications目录下新建uart_demo.c添加如下代码: ```c #include
#include
#include
/* 发送缓冲区 */ #define TX_BUFFER "Hello from UART2!\r\n" static void uart_send_demo(void) { rt_device_t uart_dev; rt_size_t size; /* 查找 UART2 设备 */ uart_dev = rt_device_find("uart2"); if (uart_dev == RT_NULL) { rt_kprintf("UART2 device not found!\n"); return; } /* 打开 UART2 设备 */ if (rt_device_open(uart_dev, RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX) != RT_EOK) { rt_kprintf("Failed to open UART2 device!\n"); return; } /* 发送数据 */ size = rt_device_write(uart_dev, 0, TX_BUFFER, rt_strlen(TX_BUFFER)); if (size == rt_strlen(TX_BUFFER)) { rt_kprintf("Data sent successfully!\n"); } else { rt_kprintf("Data sending failed!\n"); } /* 关闭 UART2 设备 */ rt_device_close(uart_dev); } MSH_CMD_EXPORT(uart_send_demo, uart send); ``` 接下来编译烧录,准备个USB转TTL模块,接入UART2引脚,参考官方QuickStartGuide文件,以及开发板原理图文件 **QuickStartGuide:** [MCXA156QSG.pdf](https://club.rt-thread.org/file_download/198f7bbcc36981ac) **开发板原理图:** [spf-90841_A4_a156.pdf](https://club.rt-thread.org/file_download/db8952687042b28f)  # 功能测试 使用终端工具,示例使用的XSHELL,分别连接RT-Thread的MSH和USB转TTL模块,在MSH终端里输入uart_send_demo运行uart send示例,在UART_DEBUG页面里查看输出,如下所示:  功能测试成功! # 总结 NXP FRDM-MCXA156 开发板搭载 Arm Cortex-M33 核心,具备强大的性能和低功耗特点,非常适合用于工业控制和物联网(IoT)应用。开发板支持丰富的外设接口和通信协议,如 CAN-FD、I3C、USB、LPI2C 等,并且集成了高效的传感器接口。 结合 RT-Thread RTOS,开发者可以轻松配置和管理硬件外设,并实现高效的实时任务调度。通过简单的串口通信 Demo,本示例展示了如何快速上手开发板,进行串口数据的发送和接收。无论是进行工业控制、物联网开发,还是其他嵌入式应用,NXP FRDM-MCXA156 和 RT-Thread 都为开发者提供了理想的开发平台。
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
G39OL1
这家伙很懒,什么也没写!
文章
1
回答
1
被采纳
0
关注TA
发私信
相关文章
1
有关动态模块加载的一篇论文
2
最近的调程序总结
3
晕掉了,这么久都不见layer2的踪影啊
4
继续K9ii的历程
5
[GUI相关] FreeType 2
6
[GUI相关]嵌入式系统中文输入法的设计
7
20081101 RT-Thread开发者聚会总结
8
嵌入式系统基础
9
linux2.4.19在at91rm9200 上的寄存器设置
10
[转]基于嵌入式Linux的通用触摸屏校准程序
推荐文章
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
DMA
USB
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
rt-smart
FAL
I2C_IIC
UART
ESP8266
cubemx
WIZnet_W5500
ota在线升级
PWM
BSP
flash
freemodbus
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
keil_MDK
ulog
SFUD
msh
C++_cpp
MicroPython
本月问答贡献
RTT_逍遥
10
个答案
3
次被采纳
xiaorui
3
个答案
2
次被采纳
winfeng
2
个答案
2
次被采纳
三世执戟
8
个答案
1
次被采纳
KunYi
8
个答案
1
次被采纳
本月文章贡献
catcatbing
3
篇文章
5
次点赞
lizimu
2
篇文章
9
次点赞
swet123
1
篇文章
4
次点赞
Days
1
篇文章
4
次点赞
YZRD
1
篇文章
2
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部