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

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

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

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

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

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

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

我們誠邀各位讀者持續(xù)關(guān)注這一系列文章,相信通過我們的深入剖析和實例演示,您將對MCXA153 RTT系列微控制器有更全面、更深入的了解,并在實際工作中受益匪淺。讓我們一同探索MCXA153 RTT的無限可能,共同推動電子技術(shù)的發(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ū)動架構(gòu)

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 關(guān)鍵接口實現(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));

結(jié)語

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

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

    關(guān)注

    48

    文章

    7437

    瀏覽量

    150821
  • 恩智浦
    +關(guān)注

    關(guān)注

    14

    文章

    5815

    瀏覽量

    106260
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    4888

    瀏覽量

    97022
  • RT-Thread
    +關(guān)注

    關(guān)注

    31

    文章

    1259

    瀏覽量

    39825
  • MCUs
    +關(guān)注

    關(guān)注

    0

    文章

    59

    瀏覽量

    3465

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

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

收藏 人收藏

    評論

    相關(guān)推薦

    RT-Thread記錄(十一、UART設備—源碼解析)

    一文帶你深入理解 RT-Thread I/O 設備模型 — UART 設備源碼分析。
    的頭像 發(fā)表于 07-01 11:24 ?5347次閱讀
    <b class='flag-5'>RT-Thread</b>記錄(十一、<b class='flag-5'>UART</b>設備—源碼解析)

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

    UART 設備開始學會使用 RT-Thread I/O 設備模型
    的頭像 發(fā)表于 07-02 12:42 ?4879次閱讀
    <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 ?871次閱讀
    <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全球技術(shù)大會:RT-Thread對POSIX的實現(xiàn)情況介紹

    RT-Thread全球技術(shù)大會:RT-Thread對POSIX的實現(xiàn)情況介紹 ? ? ? ? ? ? 審核編輯:彭靜
    的頭像 發(fā)表于 05-27 16:52 ?1836次閱讀
    <b class='flag-5'>RT-Thread</b>全球技術(shù)大會:<b class='flag-5'>RT-Thread</b>對POSIX的實現(xiàn)情況<b class='flag-5'>介紹</b>

    RT-Thread文檔_RT-Thread 簡介

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

    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> 設備

    RT-Thread設備驅(qū)動開發(fā)指南》基礎(chǔ)篇--以先楫bsp的hwtimer設備為例

    :對RT-thread以及設備框架進行介紹,再分別介紹基于IO框架中常用的外設設備,分別是UART、PIN、SPI/QSPI、HWTIMER、PWM、RTC、ADC、DAC
    的頭像 發(fā)表于 02-24 08:16 ?1287次閱讀
    《<b class='flag-5'>RT-Thread</b>設備驅(qū)動開發(fā)<b class='flag-5'>指南</b>》基礎(chǔ)篇--以先楫bsp的hwtimer設備為例

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

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

    【本周六-上?!?b class='flag-5'>RT-Thread+NXP線下培訓,快速上手新系列MCU

    5月25號,RT-Thread將攜手恩智浦共同舉辦基于恩智浦MCXN系列MCU結(jié)合RT-Thread的應用與實踐線下培訓。我們將為大家?guī)矶髦瞧諱CXN系列MCU的詳細介紹、精彩Dem
    的頭像 發(fā)表于 05-22 08:35 ?468次閱讀
    【本周六-上?!?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 ?263次閱讀
    <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 ?177次閱讀
    基于恩智浦<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ù)轉(zhuǎn)換器(ADC)是現(xiàn)代嵌入式系統(tǒng)中不可或缺的組件,它能將連續(xù)的模擬信號轉(zhuǎn)換為離散的數(shù)字信號。本文將深入探討如何在NXPFRDM-MCXA153開發(fā)板上實現(xiàn)和使用RT-Thread的ADC驅(qū)動,為開發(fā)者提供一個全面而實用的
    的頭像 發(fā)表于 11-01 12:29 ?117次閱讀
    基于恩智浦<b class='flag-5'>FRDM-MCXA153</b>開發(fā)板實現(xiàn)<b class='flag-5'>RT-Thread</b>的ADC驅(qū)動