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

初始化確保時鐘關閉。
查詢 S32K144 參考手冊,設置 LPUART 時鐘源為 SOSCDIV2_CLK(0b001),并使能時鐘。


2. LPUART1->BAUD:LPUART波特率寄存器
用于配置串口波特率。

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

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

3. LPUART->CTRL:LPUART 控制寄存器
控制 LPUART 系統(tǒng)的多種可選特性,只有在發(fā)送器和接收器被禁止時才可以更改。

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

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

二、 功能函數(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ā)送器緩沖器空的時候,將 send 代表的數(shù)據(jù)放入 LPUART->DATA 中發(fā)送。

2. 字符串發(fā)送函數(shù):void LPUART1_transmit_string(char data_string[])
函數(shù)功能:通過循環(huán)調用 LPUART1_transmit_char函數(shù)發(fā)送單個字符直到檢測到字符串結尾‘\0’,來實現(xiàn)發(fā)送字符串的功能。
3. 單字符接收函數(shù):char LPUART1_receive_char(void)

已知:LPUART_STAT_RDRF_MASK=0x200000u;LPUART_STAT_RDRF_SHIFT=21u。
函數(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)中每行結尾應按 <回車><換行>的順序,即 “\r\n”。需要將例程中所有的“\n\r”改為“\r\n”,否則串口工具顯示輸出字符串將不會換行,出現(xiàn)錯誤格式。
三、 初始化引腳:void PORT_init (void)

函數(shù)功能:使能 PORTC 時鐘,配置引腳復用 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ā)送一個輸入提示字符‘>’,等待主機回傳,并將收到的字符再次回傳。
五、 參考文檔
[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
-
NXP
+關注
關注
60文章
1290瀏覽量
185498 -
汽車電子
+關注
關注
3029文章
8023瀏覽量
167818 -
S32k144
+關注
關注
1文章
9瀏覽量
1933
發(fā)布評論請先 登錄
相關推薦
BOOSTXL-K350QVG-S1 QVGA顯示BoosterPack?插件模塊用戶指南

智能家居之旅(15):HA傳感器采集主板低功耗設計的遭遇

快來圍觀:S32K344 VCU項目開發(fā)隨筆~

基于S32K3的ECU參考設計集成電池管理方案
STM32G031J6的LPUART發(fā)送導致系統(tǒng)復位怎么解決?
stm32L072芯片LPUART1接收發(fā)送失敗的原因?怎么解決?
關于STM32L051C8T6芯片LPUART+DMA接收問題求解
基于 NXP S32K311 評估板的方案

評論