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

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

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

【S32K 進(jìn)階之旅】 LPUART 模塊的例程解讀

大大通 ? 2023-04-06 16:43 ? 次閱讀

上篇【S32K 進(jìn)階之旅】系列博文介紹了 S32K 中的 LPUART 模塊,并以 S32DS 開發(fā)環(huán)境中自帶的例程 LPUART_s32k144 為例,使用 S32K144-EVB 評估板燒錄進(jìn)行了演示。為了幫助新手快速的入門 LPUART 模塊,本文將逐句解析例程 LPUART_s32k144

一、 串口初始化:void LPUART_init(void)

1. 開啟時(shí)鐘


初始化確保時(shí)鐘關(guān)閉。

查詢 S32K144 參考手冊,設(shè)置 LPUART 時(shí)鐘源為 SOSCDIV2_CLK(0b001),并使能時(shí)鐘。


2. LPUART1->BAUD:LPUART波特率寄存器

用于配置串口波特率。




下圖為 32 位寄存器 BAUD 的圖表:

LPUART BAUD寄存器

通過查詢 LPUART BAUD 寄存器位功能可知:波特率=baud clock / ((OSR+1) * SBR)。baud clock為 SOSCDIV2_CLK= 8 MHz,OSR 默認(rèn)值為F=15,則可以算出波特率為 9600 時(shí),SBR的值約為 52,即 0x34。不使用BAUD寄存器的其他功能,則給 BAUD 寄存器賦值0x0F000034。


3. LPUART->CTRL:LPUART 控制寄存器

控制 LPUART 系統(tǒng)的多種可選特性,只有在發(fā)送器和接收器被禁止時(shí)才可以更改。



根據(jù)下圖32 位寄存器 CTRL 的圖表可知:TE=1,RE=1(0x000C0000)


LPUART CTRL寄存器

查寄存器字段知:設(shè)置收發(fā)使能,8-bit數(shù)據(jù)位,1-bit停止位,無校驗(yàn)位,不使用中斷功能。

二、 功能函數(shù)

1. 發(fā)送單字符:void LPUART1_transmit_char(char send)

下圖為 32 位寄存器 STAT 的圖表:


LPUART STAT寄存器

已知:LPUART_STAT_TDRE_MASK=0x800000u,LPUART_STAT_TDRE_SHIFT=23u

函數(shù)功能:在發(fā)送器緩沖器空的時(shí)候,將 send 代表的數(shù)據(jù)放入 LPUART->DATA 中發(fā)送。


2. 字符串發(fā)送函數(shù):void LPUART1_transmit_string(char data_string[])

函數(shù)功能:通過循環(huán)調(diào)用 LPUART1_transmit_char函數(shù)發(fā)送單個(gè)字符直到檢測到字符串結(jié)尾‘\0’,來實(shí)現(xiàn)發(fā)送字符串的功能。

3. 單字符接收函數(shù):char LPUART1_receive_char(void)

已知:LPUART_STAT_RDRF_MASK=0x200000u;LPUART_STAT_RDRF_SHIFT=21u。

函數(shù)功能:等待接收器緩沖器滿的時(shí)候,讀取 LPUART->DATA 的數(shù)據(jù)賦值給 receive,并返回 receive 的值。



3. 單字符接收并回傳函數(shù):void LPUART1_receive_and_echo_char(void)

函數(shù)功能:使用 LPUART1_receive_char 函數(shù)接收 send代表的字符,并通過LPUART1_transmit_char 函數(shù)重新發(fā)送。

注: “\r”是回車,“\n”是換行, Windows 系統(tǒng)中每行結(jié)尾應(yīng)按 <回車><換行>的順序,即 “\r\n”。需要將例程中所有的“\n\r”改為“\r\n”,否則串口工具顯示輸出字符串將不會換行,出現(xiàn)錯(cuò)誤格式。

三、 初始化引腳:void PORT_init (void)


函數(shù)功能:使能 PORTC 時(shí)鐘,配置引腳復(fù)用 PTC6為接收引腳,PTC7 為發(fā)送引腳。

注:各引腳功能具體查詢 S32K144 參考手冊。

ALT1

ALT2

ALT3

ALT4

ALT5

ALT6

PTC7

LPUART1_TX

CAN1_TX

FTM3_CH3

FTM1_QD_PHA

PTC6

LPUART1_RX

CAN1_RX

FTM3_CH2

FTM1_QD_PHB

四、 主循環(huán):

函數(shù)功能:發(fā)送一個(gè)輸入提示字符‘>’,等待主機(jī)回傳,并將收到的字符再次回傳。

五、 參考文檔

[1] S32K144 Reference Manual.pdf,NXP

[2] S32K1xx Series Cookbook.pdf,NXP

[3] S32K1xx Series Reference Manual.pdf,NXP

[4] S32K144_IO_Signal_Description_Input_Multiplexing,NXP

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

    關(guān)注

    60

    文章

    1256

    瀏覽量

    182516
  • 汽車電子
    +關(guān)注

    關(guān)注

    3019

    文章

    7790

    瀏覽量

    165702
  • S32k144
    +關(guān)注

    關(guān)注

    1

    文章

    6

    瀏覽量

    1870
收藏 人收藏

    評論

    相關(guān)推薦

    解讀表面貼裝型晶體濾波器:DSF633S 2POLE 與 DSF633S 4POLE

    解讀表面貼裝型晶體濾波器:DSF633S 2POLE 與 DSF633S 4POLE
    的頭像 發(fā)表于 07-31 14:21 ?264次閱讀
    <b class='flag-5'>解讀</b>表面貼裝型晶體濾波器:DSF633<b class='flag-5'>S</b> 2POLE 與 DSF633<b class='flag-5'>S</b> 4POLE

    基于S32K3的ECU參考設(shè)計(jì)集成電池管理方案

    S32K396/376 BMS-EVB板現(xiàn)已供貨,同時(shí)S32K39 / 37 / 36系列芯片將于今年6月正式上市。相關(guān)的集中式電芯監(jiān)控參考設(shè)計(jì)板也已上市。
    發(fā)表于 04-26 10:59 ?435次閱讀

    stm32L072芯片LPUART1接收發(fā)送失敗的原因?怎么解決?

    使用stm32擴(kuò)展庫開發(fā)L072系列時(shí)發(fā)現(xiàn),初始化LPUART1后,所得到得波特率與電腦實(shí)際接受不符,且只有波特率在9600以上,串口才不會進(jìn)入溢出中斷。但接受數(shù)據(jù)仍然不對,初始化如下: void
    發(fā)表于 04-09 07:46

    關(guān)于STM32L051C8T6芯片LPUART+DMA接收問題求解

    STM32L051C8T6芯片低功耗串口LPUART+DMA。 我用STM32CUBEMX 生成了程序LPUART以及UART2串口+DMA的程序。 重新寫了RxCpltCall函數(shù)里面有回顯功能
    發(fā)表于 03-28 07:05

    RK3568驅(qū)動(dòng)指南|驅(qū)動(dòng)基礎(chǔ)進(jìn)階篇-進(jìn)階5 自定義實(shí)現(xiàn)insmod命令實(shí)驗(yàn)

    RK3568驅(qū)動(dòng)指南|驅(qū)動(dòng)基礎(chǔ)進(jìn)階篇-進(jìn)階5 自定義實(shí)現(xiàn)insmod命令實(shí)驗(yàn)
    的頭像 發(fā)表于 02-20 14:10 ?571次閱讀
    RK3568驅(qū)動(dòng)指南|驅(qū)動(dòng)基礎(chǔ)<b class='flag-5'>進(jìn)階</b>篇-<b class='flag-5'>進(jìn)階</b>5 自定義實(shí)現(xiàn)insmod命令實(shí)驗(yàn)

    基于 NXP S32K311 評估板的方案

    該方案是以 NXP S32K311 芯片為主控制器的評估板方案,S32K311 是基于 ARM Cortex-M7 的嵌入式應(yīng)用微控制器,有 64 KB 的 Dflash、1 MB 的 Pflash
    的頭像 發(fā)表于 02-18 11:22 ?658次閱讀
    基于 NXP <b class='flag-5'>S32K</b>311 評估板的方案

    全志R128 SDK HAL 模塊開發(fā)指南之 LPUART

    LPUART 模塊介紹 LPUART 驅(qū)動(dòng)主要實(shí)現(xiàn)設(shè)備驅(qū)動(dòng)的底層細(xì)節(jié),并為上層提供一套標(biāo)準(zhǔn)的 API 接口以供使用。 模塊配置 配置路徑如下: Kernel Setup --->
    發(fā)表于 02-02 10:04

    RK3568驅(qū)動(dòng)指南|驅(qū)動(dòng)基礎(chǔ)進(jìn)階篇-進(jìn)階8 內(nèi)核運(yùn)行ko文件總結(jié)

    RK3568驅(qū)動(dòng)指南|驅(qū)動(dòng)基礎(chǔ)進(jìn)階篇-進(jìn)階8 內(nèi)核運(yùn)行ko文件總結(jié)
    的頭像 發(fā)表于 01-31 14:58 ?1026次閱讀
    RK3568驅(qū)動(dòng)指南|驅(qū)動(dòng)基礎(chǔ)<b class='flag-5'>進(jìn)階</b>篇-<b class='flag-5'>進(jìn)階</b>8 內(nèi)核運(yùn)行ko文件總結(jié)

    S32K 進(jìn)階之旅】 NXP S32K3 以太網(wǎng) RMII 接口調(diào)試(1)

    大聯(lián)大世平集團(tuán)推出了一款基于NXP車規(guī)級MCUS32K344的開發(fā)板——花名“Cavalry”,它使用BGA257封裝的32位ArmCortex-M7S32K344作為主控芯片,在69.6
    的頭像 發(fā)表于 01-18 08:26 ?1872次閱讀
    【<b class='flag-5'>S32K</b> <b class='flag-5'>進(jìn)階</b><b class='flag-5'>之旅</b>】 NXP <b class='flag-5'>S32K</b>3 以太網(wǎng) RMII 接口調(diào)試(1)

    DC電源模塊的關(guān)鍵參數(shù)解讀

    BOSHIDA DC電源模塊的關(guān)鍵參數(shù)解讀 BOSHIDA DC電源模塊是一種電子設(shè)備,用于將交流電(AC)轉(zhuǎn)換為直流電(DC)供電給其他電子設(shè)備。關(guān)鍵參數(shù)對于了解電源模塊的性能和適用
    的頭像 發(fā)表于 01-12 14:01 ?662次閱讀
    DC電源<b class='flag-5'>模塊</b>的關(guān)鍵參數(shù)<b class='flag-5'>解讀</b>

    PS-1220S插拔力試驗(yàn)機(jī):力學(xué)世界的探秘之旅

    PS-1220S插拔力試驗(yàn)機(jī):力學(xué)世界的探秘之旅
    的頭像 發(fā)表于 01-05 09:08 ?433次閱讀
    PS-1220<b class='flag-5'>S</b>插拔力試驗(yàn)機(jī):力學(xué)世界的探秘<b class='flag-5'>之旅</b>

    解讀模塊波長與傳輸距離的關(guān)系 波長是影響光模塊傳輸距離的因素嗎

    解讀模塊波長與傳輸距離的關(guān)系 波長是影響光模塊傳輸距離的因素嗎?? 光模塊波長與傳輸距離的關(guān)系是一個(gè)重要的光通信技術(shù)問題。波長是光的特性之一,它直接影響了光信號在光纖中傳輸?shù)男阅芎途?/div>
    的頭像 發(fā)表于 12-27 11:28 ?1111次閱讀

    IGBT和模塊的標(biāo)準(zhǔn)體系解讀

    IGBT和模塊的標(biāo)準(zhǔn)體系解讀
    的頭像 發(fā)表于 12-14 11:38 ?1100次閱讀
    IGBT和<b class='flag-5'>模塊</b>的標(biāo)準(zhǔn)體系<b class='flag-5'>解讀</b>

    S32K146的hard fault問題解決方案

    最近有個(gè)客戶使用S32K146的產(chǎn)品在量產(chǎn)之后出現(xiàn)了三個(gè)售后件,ABBA測試之后的結(jié)果表明失效現(xiàn)象跟著S32K146走;同時(shí)客戶反饋說試著將其中一個(gè)售后件重新燒錄程序,S32K146又正常工作了。結(jié)合這兩種情況,
    的頭像 發(fā)表于 11-22 11:35 ?1952次閱讀
    <b class='flag-5'>S32K</b>146的hard fault問題解決方案

    S32DS中串口接收中斷怎么清除?

    S32DS中做S32K144的串口接收,使用中斷方式。初始化時(shí)如下 LPUART_DRV_Init(INST_DEBUGDebug_StateDebug_InitConfig0
    發(fā)表于 11-06 07:55