0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

NXP FRDM-MCXA153 RT-Thread實踐指南之UART介紹

恩智浦MCU加油站 ? 來源:恩智浦MCU加油站 ? 2024-10-18 10:03 ? 次閱讀

近期,我們即將推出一系列關于MCXA153 RTT的深度文章,這一系列將全面而細致地探討該系列微控制器的多個核心功能模塊,旨在為廣大電子愛好者、工程師及研發(fā)人員提供寶貴的技術資源和見解。首當其沖的將是關于12C、SPI、FLASH、ADC、GPIO以及UART的精彩介紹。

MCXA153 RTT系列作為業(yè)界領先的微控制器產(chǎn)品,其強大的功能和廣泛的應用領域一直備受矚目。從高速數(shù)據(jù)傳輸?shù)腟PI接口,到精準模擬信號采集的ADC模塊;從靈活多用的GPIO端口,到穩(wěn)定可靠的UART通信協(xié)議,每一個功能模塊都蘊含著豐富的技術內(nèi)涵和實用價值。

我們誠邀各位讀者持續(xù)關注這一系列文章,相信通過我們的深入剖析和實例演示,您將對MCXA153 RTT系列微控制器有更全面、更深入的了解,并在實際工作中受益匪淺。讓我們一同探索MCXA153 RTT的無限可能,共同推動電子技術的發(fā)展與創(chuàng)新!

今天為大家?guī)?a target="_blank">NXP FRDM-MCXA153 RT-Thread實踐指南1-UART介紹:

前言

本系列文章為根據(jù)RT-Thread官網(wǎng)在線文檔整理整合后發(fā)布的恩智浦FRDM-MCXA153開發(fā)實踐指南,旨在協(xié)助開發(fā)者快速熟悉掌握FRDM-MCXA153在RT-Thread下的環(huán)境搭建以及驅(qū)動程序的使用。本指南將詳細介紹恩智浦FRDM-MCXA153的開發(fā)實踐步驟,包括環(huán)境配置、驅(qū)動程序的使用等內(nèi)容,希望對小伙伴有所幫助!

開發(fā)板介紹

FRDM-MCXA153是恩智浦(NXP)推出的一款緊湊且可擴展的開發(fā)平臺,專為MCX A14和A15系列MCU的快速原型設計而打造。該開發(fā)板提供了豐富的行業(yè)標準接口,便于訪問MCU的I/O、集成的開放標準串行接口以及外部閃存。板載MCU-Link調(diào)試器進一步簡化了開發(fā)流程。

2.1 MCXA153微控制器核心特性

Arm Cortex-M33內(nèi)核

128KB閃存

32kB SRAM

8kB ECC RAM, LPLUART、LPSPI、LPI2C、FS USB、DMALDO

超低功耗設計,適用于廣泛的應用場景

FRDM-MCXA153開發(fā)板外觀

987c09f2-8ce4-11ef-a511-92fbcf53809c.png

2.2 開發(fā)板主要資源:

1. 微控制器

MCXA15x Arm Cortex-M33內(nèi)核

128KB閃存

32kB SRAM

8kB ECC SRAM LPUART、LPSPI、LPI2C、FS USB、DMA和LDO

2.連接性

全速USB端口(Type-C接口,支持主機/設備模式)

高速USB Type-C接口

SPI/I2C/UART擴展接口(PMOD/mikroBUS、DNP)

Wi-Fi擴展接口(PMOD/mikroBUS、DNP)

3.調(diào)試

板載MCU-Link調(diào)試器(支持CMSIS-DAP)

JTAG/SWD接口

4. 傳感器

P3T1755DPJ I3C/I2C溫度傳感器

5. 擴展選項

Arduino兼容排針

FRDM標準接口

FlexIO LCD接口

Pmod (DNP)

mikroBUS

RGB用戶LED、復位、ISP和喚醒按鈕

2.3 MCXA153特色功能:

支持MIPI I3C總線,為傳感器連接提供高效解決方案

深度睡眠模式下可使用LPUART作為喚醒源(需使用FRO16k作為時鐘源)

支持全速USB功能,可實現(xiàn)虛擬COM端口等應用

2.4 推薦開發(fā)環(huán)境:

MDK-Arm Microcontroller Development Kit (Keil) 5.33或更高版本

更多詳細信息請參考NXP官方網(wǎng)站

RT-Thread UART實踐

3.1 實驗目標

rt-thread中 FRDM-MCXA153默認的serial驅(qū)動只支持默認uart0, 此實驗主要增強串口驅(qū)動,增加uart2的支持, 并記錄移植過程。

3.2 UART驅(qū)動架構

988e4734-8ce4-11ef-a511-92fbcf53809c.png

1. IO設備管理層: 向應用層提供統(tǒng)一接口(如rt_device_read、rt_device_write等)

2. 設備框架層(serial_v2.c):

對接IO設備管理層

為驅(qū)動層提供統(tǒng)一的UART操作接口(configure、control、putc、getc、transmit等)

3. 驅(qū)動層:

實現(xiàn)rt_hw_serial_register和rt_hw_serial_isr接口(drv_usartv2.c)

實現(xiàn)struct rt_uart_ops中定義的各種方法(drv_usart.c)

通過rt_hw_serial_register注冊設備到系統(tǒng)

3.3 驅(qū)動開發(fā)流程

1. 擴展struct rt_serial_device

struct mcx_uart
{
struct rt_serial_device *serial;//設備信息和操作
LPUART_Type *uart_base;//串口句柄
IRQn_Type irqn;//中斷
clock_name_t clock_src;//時鐘選擇
clock_attach_id_t clock_attach_id;
clock_ip_name_t clock_ip_name;
clock_div_name_t clock_div_name;
char*device_name;
};
2. 配置串口參數(shù)

9899a14c-8ce4-11ef-a511-92fbcf53809c.png

struct serial_configure
{
rt_uint32_t baud_rate; //比特率
rt_uint32_t data_bits :4;//數(shù)據(jù)長度
rt_uint32_t stop_bits :2;//停止位
rt_uint32_t parity :2;//校驗位
rt_uint32_t bit_order :1;//小段發(fā)送
rt_uint32_t invert :1;//模式選擇 正常模式 歸零編碼方式
rt_uint32_t bufsz :16;//buf大小
rt_uint32_t flowcontrol :1;//硬件流控制
rt_uint32_t reserved :5;//保留的位
};

3. 實現(xiàn)rt_uart_ops接口

struct rt_uart_ops
{
rt_err_t(*configure)(structrt_serial_device*serial,structserial_configure*cfg);
rt_err_t (*control)(struct rt_serial_device *serial, int cmd, void *arg);
int (*putc)(struct rt_serial_device *serial, char c);
int (*getc)(struct rt_serial_device *serial);
rt_ssize_t(*dma_transmit)(structrt_serial_device*serial,rt_uint8_t*buf, rt_size_tsize,intdirection);
};
3.4 關鍵接口實現(xiàn)

1. configure: 配置串口基本屬性(波特率等)

2. control: 控制UART設備

#define RT_DEVICE_CTRL_RESUME 0x01 /**< resume device */
#define RT_DEVICE_CTRL_SUSPEND 0x02 /**< suspend device */
#define RT_DEVICE_CTRL_CONFIG 0x03 /**< configure device */
#define RT_DEVICE_CTRL_CLOSE 0x04 /**< close device */
#define RT_DEVICE_CTRL_NOTIFY_SET 0x05 /**< set notify func */
#define RT_DEVICE_CTRL_SET_INT 0x06 /**< set interrupt */
#define RT_DEVICE_CTRL_CLR_INT 0x07 /**< clear interrupt */
#define RT_DEVICE_CTRL_GET_INT 0x08 /**< get interrupt status */
#define RT_DEVICE_CTRL_CONSOLE_OFLAG 0x09 /**< get console open flag */
#define RT_DEVICE_CTRL_MASK

3.5 putc: 發(fā)送一個字符

LPUART_WriteByte(uart->uart_base, ch);

3.6 getc: 接收一個字符

if (kLPUART_RxDataRegFullInterruptEnable & LPUART_GetStatusFlags(uart->uart_base))
{
return LPUART_ReadByte(uart->uart_base);
}
3.7 實現(xiàn)步驟

1. 在pin_mux.c中初始化引腳

2. 注冊和使用UART設備
#define UART2_NAME "uart2"
static rt_device_t uart2_serial;
char str[] = "hello rttread!
";
uart2_serial = rt_device_find(UART2_NAME);
rt_device_open(uart2_serial, RT_DEVICE_FLAG_INT_RX);
rt_device_write(uart2_serial,0,str,(sizeof(str)-1));

結語

本文詳細介紹了如何在FRDM-MCXA153開發(fā)板上擴展RT-Thread的UART驅(qū)動支持。這不僅展示了RTThread優(yōu)秀的可擴展性,也為開發(fā)者提供了實用的UART驅(qū)動開發(fā)參考。希望本文能夠幫助更多開發(fā)者在恩智浦MCU平臺上充分利用RT-Thread的強大功能。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 微控制器
    +關注

    關注

    48

    文章

    7552

    瀏覽量

    151416
  • 恩智浦
    +關注

    關注

    14

    文章

    5860

    瀏覽量

    107456
  • 開發(fā)板
    +關注

    關注

    25

    文章

    5050

    瀏覽量

    97455
  • RT-Thread
    +關注

    關注

    31

    文章

    1289

    瀏覽量

    40122
  • MCUs
    +關注

    關注

    0

    文章

    59

    瀏覽量

    3485

原文標題:MCXA153 RTT技術盛宴來襲,精彩不容錯過!

文章出處:【微信號:NXP_SMART_HARDWARE,微信公眾號:恩智浦MCU加油站】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    RT-Thread上CAN實踐

    開箱測試RT-Thread官方已完成了對英飛凌XMC7200EVK的移植,通過shell可以看到做好了uart3的console。本文將介紹如何進行RT-ThreadCan移植。接下來
    的頭像 發(fā)表于 11-13 01:03 ?1178次閱讀
    <b class='flag-5'>RT-Thread</b>上CAN<b class='flag-5'>實踐</b>

    恩智浦FRDM-MCXA153 RT-Thread實踐指南 實現(xiàn)和優(yōu)化RT-Thread的SPI驅(qū)動

    串行外設接口(SPI)是一種廣泛使用的同步串行通信接口,在嵌入式系統(tǒng)中扮演著重要角色。本文將深入探討如何在NXP MCXA153 MCU上實現(xiàn)和優(yōu)化RT-Thread的SPI驅(qū)動,同時介紹
    的頭像 發(fā)表于 11-14 08:58 ?1098次閱讀
    恩智浦<b class='flag-5'>FRDM-MCXA153</b> <b class='flag-5'>RT-Thread</b><b class='flag-5'>實踐</b><b class='flag-5'>指南</b> 實現(xiàn)和優(yōu)化<b class='flag-5'>RT-Thread</b>的SPI驅(qū)動

    恩智浦FRDM-MCXA153 RT-Thread開發(fā)實戰(zhàn)(六):I2C總線開發(fā)與應用

    ? 工程創(chuàng)建 目前RT-Thread Studio尚未支持恩智浦FRDM-MCXA153開發(fā)板BSP,需要從gitee下載最新的主線,通過scons命令創(chuàng)建工程。下載好主線源碼后,在
    的頭像 發(fā)表于 11-21 09:26 ?992次閱讀
    恩智浦<b class='flag-5'>FRDM-MCXA153</b> <b class='flag-5'>RT-Thread</b>開發(fā)實戰(zhàn)(六):I2C總線開發(fā)與應用

    RT-Thread記錄(十二、UART設備—使用測試)

    UART 設備開始學會使用 RT-Thread I/O 設備模型
    的頭像 發(fā)表于 07-02 12:42 ?5017次閱讀
    <b class='flag-5'>RT-Thread</b>記錄(十二、<b class='flag-5'>UART</b>設備—使用測試)

    FRDM-MCXA153開發(fā)板的開箱體驗

    FRDM-MCXA153 以及NXP 的全新logo。這種設計比較簡潔明了,使開發(fā)者一眼便能識別其核心信息,為開發(fā)人員帶來輕松上手、高效開發(fā)的體驗。
    的頭像 發(fā)表于 02-25 09:45 ?1029次閱讀
    <b class='flag-5'>FRDM-MCXA153</b>開發(fā)板的開箱體驗

    RT-Thread編程指南

    RT-Thread編程指南——RT-Thread開發(fā)組(2015-03-31)。RT-Thread做為國內(nèi)有較大影響力的開源實時操作系統(tǒng),本文是RT
    發(fā)表于 11-26 16:06 ?0次下載

    RT-Thread文檔_RT-Thread 潘多拉 STM32L475 上手指南

    RT-Thread文檔_RT-Thread 潘多拉 STM32L475 上手指南
    發(fā)表于 02-22 18:23 ?9次下載
    <b class='flag-5'>RT-Thread</b>文檔_<b class='flag-5'>RT-Thread</b> 潘多拉 STM32L475 上手<b class='flag-5'>指南</b>

    RT-Thread文檔_RT-Thread SMP 介紹與移植

    RT-Thread文檔_RT-Thread SMP 介紹與移植
    發(fā)表于 02-22 18:31 ?9次下載
    <b class='flag-5'>RT-Thread</b>文檔_<b class='flag-5'>RT-Thread</b> SMP <b class='flag-5'>介紹</b>與移植

    RT-Thread文檔_UART 設備

    RT-Thread文檔_UART 設備
    發(fā)表于 02-22 18:32 ?2次下載
    <b class='flag-5'>RT-Thread</b>文檔_<b class='flag-5'>UART</b> 設備

    【上?!?月25日-基于恩智浦MCX N系列MCU結合RT-Thread的應用與實踐 線下培訓

    5月25號,RT-Thread將攜手恩智浦共同舉辦基于恩智浦MCXN系列MCU結合RT-Thread的應用與實踐線下培訓。我們將為大家?guī)矶髦瞧諱CXN系列MCU的詳細介紹、精彩Dem
    的頭像 發(fā)表于 05-13 18:19 ?873次閱讀
    【上?!?月25日-基于恩智浦MCX N系列MCU結合<b class='flag-5'>RT-Thread</b>的應用與<b class='flag-5'>實踐</b> 線下培訓

    【本周六-上海】RT-Thread+NXP線下培訓,快速上手新系列MCU

    5月25號,RT-Thread將攜手恩智浦共同舉辦基于恩智浦MCXN系列MCU結合RT-Thread的應用與實踐線下培訓。我們將為大家?guī)矶髦瞧諱CXN系列MCU的詳細介紹、精彩Dem
    的頭像 發(fā)表于 05-22 08:35 ?550次閱讀
    【本周六-上?!?b class='flag-5'>RT-Thread+NXP</b>線下培訓,快速上手新系列MCU

    NXP FRDM-MCXC444開發(fā)板在RT-Thread環(huán)境下的上手過程

    NXP FRDM-MCXC444開發(fā)板是一款基于MCX C444 MCU的高性能開發(fā)板,它集成了豐富的硬件資源和接口,支持快速原型設計。本文將為讀者提供一份詳細的RT-Thread上手指南
    的頭像 發(fā)表于 10-12 11:51 ?408次閱讀
    <b class='flag-5'>NXP</b> <b class='flag-5'>FRDM</b>-MCXC444開發(fā)板在<b class='flag-5'>RT-Thread</b>環(huán)境下的上手過程

    基于恩智浦FRDM-MCXA153開發(fā)板實現(xiàn)RT-Thread的GPIO驅(qū)動

    隨著嵌入式系統(tǒng)的不斷發(fā)展,高效且易用的實時操作系統(tǒng)(RTOS)變得越來越重要。RT-Thread作為一個開源的物聯(lián)網(wǎng)操作系統(tǒng),以其卓越的性能和豐富的生態(tài)系統(tǒng)贏得了廣泛的認可。
    的頭像 發(fā)表于 10-25 10:18 ?334次閱讀
    基于恩智浦<b class='flag-5'>FRDM-MCXA153</b>開發(fā)板實現(xiàn)<b class='flag-5'>RT-Thread</b>的GPIO驅(qū)動

    基于恩智浦FRDM-MCXA153開發(fā)板實現(xiàn)RT-Thread的ADC驅(qū)動

    數(shù)轉換器(ADC)是現(xiàn)代嵌入式系統(tǒng)中不可或缺的組件,它能將連續(xù)的模擬信號轉換為離散的數(shù)字信號。本文將深入探討如何在NXPFRDM-MCXA153開發(fā)板上實現(xiàn)和使用RT-Thread的ADC驅(qū)動,為開發(fā)者提供一個全面而實用的
    的頭像 發(fā)表于 11-01 12:29 ?339次閱讀
    基于恩智浦<b class='flag-5'>FRDM-MCXA153</b>開發(fā)板實現(xiàn)<b class='flag-5'>RT-Thread</b>的ADC驅(qū)動

    基于NXP MCXA153 MCU實現(xiàn)RT-Thread的MTD NOR Flash驅(qū)動

    在嵌入式系統(tǒng)中,片上Flash存儲器是一個關鍵組件,用于存儲程序代碼和關鍵數(shù)據(jù)。本文將詳細介紹如何在NXPMCXA153 MCU上實現(xiàn)RT-Thread的MTD (Memory Technology Device) NOR Fl
    的頭像 發(fā)表于 11-09 14:00 ?457次閱讀
    基于<b class='flag-5'>NXP</b> <b class='flag-5'>MCXA153</b> MCU實現(xiàn)<b class='flag-5'>RT-Thread</b>的MTD NOR Flash驅(qū)動