女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

【S32K 進階之旅】 LPUART 模塊的例程解讀

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

上篇【S32K 進階之旅】系列博文介紹了 S32K 中的 LPUART 模塊,并以 S32DS 開發環境中自帶的例程 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 系統的多種可選特性,只有在發送器和接收器被禁止時才可以更改。



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


LPUART CTRL寄存器

查寄存器字段知:設置收發使能,8-bit數據位,1-bit停止位,無校驗位,不使用中斷功能。

二、 功能函數

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

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


LPUART STAT寄存器

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

函數功能:在發送器緩沖器空的時候,將 send 代表的數據放入 LPUART->DATA 中發送。


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

函數功能:通過循環調用 LPUART1_transmit_char函數發送單個字符直到檢測到字符串結尾‘\0’,來實現發送字符串的功能。

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

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

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



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

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

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

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


函數功能:使能 PORTC 時鐘,配置引腳復用 PTC6為接收引腳,PTC7 為發送引腳。

注:各引腳功能具體查詢 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

四、 主循環:

函數功能:發送一個輸入提示字符‘>’,等待主機回傳,并將收到的字符再次回傳。

五、 參考文檔

[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
    NXP
    +關注

    關注

    61

    文章

    1328

    瀏覽量

    187377
  • 汽車電子
    +關注

    關注

    3035

    文章

    8243

    瀏覽量

    169418
  • S32k144
    +關注

    關注

    1

    文章

    9

    瀏覽量

    2027
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    免費分享Arduino入門+進階(全套例程+書籍)

    創意,比如控制燈光、傳感器、電機等。以下是Arduino入門+進階學習資料1.Arduino編程語言說明(相關文件可在下文掃碼領取)2.Arduino系列學習例程
    的頭像 發表于 05-22 11:40 ?72次閱讀
    免費分享Arduino入門+<b class='flag-5'>進階</b>(全套<b class='flag-5'>例程</b>+書籍)

    簡述K3SK8S的區別

    K3s 是CNCF 認證的 Kubernetes 發行版和Sandbox項目,專為低資源環境而設計。由 Rancher Labs 維護著 K3s
    的頭像 發表于 04-18 10:27 ?253次閱讀

    為什么無法使用Lpuart_Uart_Ip_ 發送任何數據回調中的AsyncSend?

    使用 Lpuart_Uart_Ip_ 發送任何數據回調中的 AsyncSend. 我的 RTD 版本是 3.0.0 P07,S32DS 版本是 3.5 請允許我知道如何解決它,謝謝。
    發表于 04-11 07:51

    S32K148頻繁UART_FRAMING_ERROR的原因?

    我在使用 UART 模塊時遇到了一些問題,其中UART_FRAMING_ERROR經常發生,只有 20% 的有效載荷被成功接收。 該項目使用 freeRTOS 和 S32 SDK。任務從另一個芯片
    發表于 04-11 07:35

    S32K312通過UART口打印系統信息,是否有使用Printf () 函數打印信息的Demo例程

    S32K312通過UART口打印系統信息,是否有使用Printf () 函數打印信息的Demo例程
    發表于 04-11 07:21

    使用RTD5.0.0的s32k312,C40_Ip擦除pflash存在一些問題求解決

    /t5/s32k/s32k344-c40-ip-hardware-fault-problem/td-p/1697432 但在 RTD 5.0.0 C40_ip.h 中,“Fls_MemMap.h” 不存在 那么,如何將C40_Ip API 放入 RAM 中呢?可以給
    發表于 04-11 06:53

    k32l2b31寫入LPUART1-&gt;STAT |= (1&lt;&lt;25)會導致semihost_hardfault是為什么?

    我想在 k32l2b31 上激活 LIN Break 檢測 必須在狀態寄存器中設置位 LKDE i try LPUART1->STAT |= (1<<25) 但在調試時顯示為 “semihost_hardfault” 誰知道為什么呢?
    發表于 04-08 06:36

    使用S32K322上的LPUART進行UART通信,接收超過14個字符時遇到問題,求解決

    我正在使用 S32K322 上的 LPUART 進行 UART 通信,并在接收超過 14 個字符時遇到問題。具體來說,在調用 Lpuart_Uart_Ip_GetReceiveStatus我收到錯誤
    發表于 03-28 07:00

    EB tresos導入S32K1 RTD中的例程,verify工程時報錯怎么解決?

    EB tresos版本:EB tresos Studio 29.0 RTD版本:SW32K1_S32M24x_RTD_R21-11_2.0.0_QLP1 import的例程路徑如下: NXPsw32k1_s32m24x_rtd_r21-
    發表于 03-27 06:29

    S32k系列微型機,特別是S32K388具有并行處理功能嗎?

    S32k系列微型機,特別是S32K388具有并行處理功能嗎?
    發表于 03-26 08:27

    WD50-110S24K1 WD50-110S24K1

    電子發燒友網為你提供AIPULNION(AIPULNION)WD50-110S24K1相關產品參數、數據手冊,更有WD50-110S24K1的引腳圖、接線圖、封裝手冊、中文資料、英文資料,WD50-110S24K1真值表,WD5
    發表于 03-20 18:59
    WD50-110<b class='flag-5'>S24K</b>1 WD50-110<b class='flag-5'>S24K</b>1

    S32K344將LPUART6添加到Uart_example產生硬故障怎么解決?

    我嘗試添加一個串行端口 (LPUART_6),以便能夠通過 S32K3x4EVB-T172評估板上的串行轉 USB 適配器輸出消息。 我正在使用:S32DS 3.6.0、S32Kxx
    發表于 03-20 07:25

    手冊描述LPUart1可以工作在APB clock domain,請問用HAL庫如何設置?

    你好,看到手冊描述LPUart1可以工作在APB clock domain,請問用HAL庫如何設置,謝謝! 下面代碼應該為independent clock設置,對吧? void
    發表于 03-11 06:12

    S32K 進階之旅】如何使用 S32K3 PIT 定時器實現精準延時?

    周期中斷定時器(PeriodicInterruptTimer,PIT)模塊顧名思義,就是通過計時行為引發周期性中斷事件的觸發器。本文基于S32K312開發板實現延時功能,在此之前先簡單介紹下PIT
    的頭像 發表于 03-10 16:33 ?539次閱讀
    【<b class='flag-5'>S32K</b> <b class='flag-5'>進階</b><b class='flag-5'>之旅</b>】如何使用 <b class='flag-5'>S32K</b>3 PIT 定時器實現精準延時?

    BOOSTXL-K350QVG-S1 QVGA顯示BoosterPack?插件模塊用戶指南

    電子發燒友網站提供《BOOSTXL-K350QVG-S1 QVGA顯示BoosterPack?插件模塊用戶指南.pdf》資料免費下載
    發表于 12-05 14:45 ?0次下載
    BOOSTXL-<b class='flag-5'>K350QVG-S</b>1 QVGA顯示BoosterPack?插件<b class='flag-5'>模塊</b>用戶指南