Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
NXP 微控制器
【FRDM-MCXA156测评】- UART模块
发布于 2025-02-24 22:51:38 浏览:204
订阅该版
[tocm] # 引言 本文将介绍如何在 NXP FRDM-MCXA156 开发板上配置和使用 RT-Thread RTOS,并通过一个简单的串口通信 Demo 演示如何在该开发板上运行应用。 # NXP FRDM-MCXA156 开发板概述 NXP FRDM-MCXA156 是一款基于 MCX-A156 系列微控制器的开发板,适用于各类嵌入式系统开发。该板具备以下特点: 基于 Arm® Cortex®-M33 核心,提供高达 1MB 的闪存 和 128KB 的 RAM,其中还包括 8KB 的 ECC 内存保护,极大增强了数据的可靠性。该开发板支持一系列外设接口,包括 CAN-FD、FlexIO、FS USB、I3C、LPLUART、LPSPI、LPI2C,以及强大的 DMA 和 LDO 功能,适合进行高效、低功耗的嵌入式系统开发。 对于嵌入式开发者来说,FRDM-MCXA156 提供了强大的硬件基础,结合RT-Thread RTOS能更好地提高开发效率。 # 准备开发环境 请参考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
试贴-消灭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
rt-smart
RTC
FAL
I2C_IIC
cubemx
ESP8266
UART
WIZnet_W5500
ota在线升级
PWM
BSP
flash
freemodbus
packages_软件包
潘多拉开发板_Pandora
GD32
定时器
ADC
flashDB
编译报错
socket
中断
rt_mq_消息队列_msg_queue
keil_MDK
Debug
SFUD
ulog
msh
C++_cpp
MicroPython
本月问答贡献
出出啊
1523
个答案
343
次被采纳
小小李sunny
1444
个答案
290
次被采纳
张世争
815
个答案
179
次被采纳
crystal266
555
个答案
162
次被采纳
whj467467222
1222
个答案
149
次被采纳
本月文章贡献
出出啊
1
篇文章
2
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
3
次点赞
crystal266
2
篇文章
1
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部