上篇【S32K 進(jìn)階之旅】系列博文介紹了 S32K 中的 LPUART 模塊,并以 S32DS 開發(fā)環(huán)境中自帶的例程 LPUART_s32k144 為例,使用 S32K144-EVB 評(píng)估板燒錄進(jìn)行了演示。為了幫助新手快速的入門 LPUART 模塊,本文將逐句解析例程 LPUART_s32k144
一、 串口初始化:void LPUART_init(void)
1. 開啟時(shí)鐘
初始化確保時(shí)鐘關(guān)閉。
查詢 S32K144 參考手冊(cè),設(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è)字符直到檢測(cè)到字符串結(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”,否則串口工具顯示輸出字符串將不會(huì)換行,出現(xiàn)錯(cuò)誤格式。
三、 初始化引腳:void PORT_init (void)
函數(shù)功能:使能 PORTC 時(shí)鐘,配置引腳復(fù)用 PTC6為接收引腳,PTC7 為發(fā)送引腳。
注:各引腳功能具體查詢 S32K144 參考手冊(cè)。
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
-
NXP
+關(guān)注
關(guān)注
60文章
1267瀏覽量
183391 -
汽車電子
+關(guān)注
關(guān)注
3024文章
7883瀏覽量
166552 -
S32k144
+關(guān)注
關(guān)注
1文章
7瀏覽量
1884
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論