那曲檬骨新材料有限公司

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

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

3天內不再提示

一個關于LPUART輸出異常問題分享

STM32單片機 ? 來源:未知 ? 作者:李建兵 ? 2018-03-16 10:12 ? 次閱讀

使用STM32L496的Nucleo板的LPUART 做打印輸出時,電腦端始終沒法出現任何信息

根據該開發板使用手冊說明,外設LPUART的TX/RX腳【PG7/PG8】默認與開發板STLINK部分的VCP端口相連,這樣做的好處就可以省去飛線的麻煩,更不需要外接USB-UART轉換器件。

客戶的LPUART相關代碼是基于該Nucleo板的cube庫例程修改而成。

上述CUBE庫LPUART例程里的通信口用的PB10/PB11。從芯片數據手冊我們可以得知LPUART的通信口可以復用到多個端口,如:PA2,PA3/PB11,PB10/PC1,PC0/PG7,PG8。

先基于例程配置使用PB10/PB11通信口做打印輸出,用飛線接到STM32L496的Nucleo板STLINK端的VCP接口,輸出正常。說明STLINK端的VCP端口、LPUART外設以及PC端vcp驅動的安裝都是正常的。

將LPUART通信口修改PG7,PG8,并做相關復用功能、GPIO配置的修改,電腦端根本看不到任何打印信息。即使用示波器直接測試LPUART輸出腳PG7也毫無動靜。難道PG7,PG8有什么特別的地方?查看手冊!

通過查看手冊可得知,端口PG[15:2]的供電由VDDIO2負責?,F在需要用它,VDDIO2腳應接上相關電源。

通過查看NUCLEO板原理圖可知,VDDIO2已經與VDD相連了。

那軟件上還需要添加些什么配置呢?因為要操作VDDIO2域,電源接口時鐘要使能。另外,還要對一個跟VDDIO2供電有效的寄存器位【IOSV】進行置位,申明VDDIO2域可以工作了。

HAL_PWREx_EnableVddIO2(); //IOSV@PWR_CR2 ……①

__HAL_RCC_PWR_CLK_ENABLE(); //PWREN@RCC_APB1ENR1……②

將上面的第一句代碼插入到例程中的HAL_UART_MspInit()函數里,將第二句代碼

添加到SystemClock_Config()即可。然后編譯調試,輸出正常,問題基本了結。

上面是基于現存Cube庫代碼修改而成的。如果利用STM32CubeMx工具進行配置會快捷很多,關于上面添加的那些配代碼STM32CubeMx都幫你配置好,省去你研究那些細節了,從效率上講高了很多。也許會有人說這個效率是以犧牲對細節的把握為代價,也沒說錯。不過多數時候作為應用工程師來講重點還是在應用功能的實現和優化層面。

最后順便提醒下關于LPUART的波特率配置要注意的問題。

其實在前面的測試過程中,在設置波特率時也遇到點問題。例程中的波特率設置的115200,當把波特率設置為較低數值,比方9600時,發現UART通信不工作了。當波特率調高時工作又正常了,這樣反復驗證了多次現象依舊,應該是波特率設置這個地方有些細節需進一步了解確認。打開STM32L4的參考手冊RM0394閱讀相關章節。關于波特率的設置及參數限制都做了明確描述。

1.對于LPUART的波特率設置除了滿足上述公式外,還得遵守LPUART的時鐘須在【3倍波特率到4096倍波特率】范圍內。前面測試過程中,LPUART的時鐘源來自系統時鐘,最高80MHz。依據上述規定及公式,那它的波特率最低不得低于80M/4096=19531,所以當我們設置波特率為9600時自然無法正常通信了,此時建議配置在38400以上。

2.LPUART的時鐘源可以是系統時鐘,還可以是LSE。如果是32768的LSE,根據上述規定,LPUART_BRR的值不得小于0X300,即十進制768.那么相應的波特率配置就不要高于9600.

OK,拋磚引玉似地分享這些小細節,愿君有所獲。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6043

    文章

    44621

    瀏覽量

    638570
  • pcb
    pcb
    +關注

    關注

    4326

    文章

    23160

    瀏覽量

    399966
  • PCB設計
    +關注

    關注

    394

    文章

    4701

    瀏覽量

    86351

原文標題:一個關于LPUART輸出異常問題分享

文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    基于rtt studio創建的stm32h750基礎工程,LPUART1編譯下載后程序可以運行但無log輸出

    記錄下開啟低功耗串口lpuart1的問題點和臨時解決辦法,希望官方早日修復問題現象:使用rtt studio基于芯片創建了stm32h750的基礎工程,log串口選用的LPUART1(tx:PB6
    發表于 03-16 10:07

    記錄下開啟低功耗串口lpuart1的問題點和臨時解決辦法

    問題現象:使用rtt studio基于芯片創建了stm32h750的基礎工程,log串口選用的LPUART1(tx:PB6/rx:PB7)編譯下載后程序可以運行,但無log輸出,硬件上串口指示燈變常
    發表于 07-27 10:38

    為什么在X-CUBE-LPUART中找不到關于STM32U5項目

    根據應用說明,它說 X-CUBE-LPUART 支持 STM32U5。我試圖在 LPBAM 中找到 LPUART 接收的示例,但我找不到任何示例。Cube IDE 有示例,但 LP
    發表于 12-02 07:41

    基于MM32L0130的LPUART外設應用簡介

    固定分頻系數的話會引入累計誤差,所以在接收和發送的時候采用3、4分頻交替進行接收和發送,每個bit采樣次,每個bit采用3分頻還是4分頻由MCTL寄存器控制,接收和發送時序圖如下:當LPUART工作
    發表于 12-09 16:04

    淺析LPUART使用DMA的配置步驟

    完成和DMA傳輸出錯。各通道單獨的中斷請求由這3種事件標志邏輯或起來??梢耘渲眉拇嫫鞯膶粊硎鼓苓@些中斷:1.2LPUART使用DMA的配置步驟1 根據基本UART配置步驟配置LPUART2 使能
    發表于 12-12 17:10

    I.MX RT1062中未觸發LPUART1 RX中斷處理程序的原因?

    我有用于 i.MX RT1062 處理器的 MIMXRT1060-EVKB。 我已經下載了關于第二引導加載程序的軟件 。我使用的是 gnu 工具鏈,所以我必須使用 makefil
    發表于 03-16 06:59

    FRDM-K32L2A4S LPUART0如何配置?

    ,115200 8N1,啟用了 tx 和 rx。 使用 pinmux 工具,我選擇 GPIO A14 作為 TX,GPIO A15 作為 RX。我生成了代碼并嘗試發送一個
    發表于 03-21 07:32

    不能同時使用lpuart_adapter和uart_adapter嗎?

    我將 MKL17Z32 與 MCUExpresso 和 SDK v2.8.0 起使用。這個微控制器有2LPUARTLPUART0和LPUart
    發表于 03-24 07:36

    以STM32L431為例,解析LPUART喚醒STOP模式

    使用HSI16作為LPUART的時鐘,波特率就可以較高。不過使用LPUART來喚醒還是有問題要注意,即高速的波特率與LPUART的喚醒時間差的問題。
    發表于 10-31 14:27 ?2.4w次閱讀
    以STM32L431為例,解析<b class='flag-5'>LPUART</b>喚醒STOP模式

    遇到開關電源電壓輸出異常時的診斷和維修措施

    民熔小課堂在之前的分享中提到了開關電源電壓輸出異常的幾種情況,而它們的異常原因也大致探討了部分。那么在遇到開關電源電壓輸出異常時又怎樣處理呢
    發表于 08-31 09:41 ?5594次閱讀

    基于MM32L0130的LPUART應用(1)

    LPUART(Low power universal asynchronous receiver transmitter,低功耗通用異步收發器),相比標準的UART,其功耗極低,支持在低功耗模式下運行,并且可以將MCU從低功耗模式喚醒。
    的頭像 發表于 06-02 17:27 ?1325次閱讀
    基于MM32L0130的<b class='flag-5'>LPUART</b>應用(1)

    【S32K 進階之旅】LPUART 模塊介紹與應用

    S32K144 LPUART 模塊特性等詳解
    的頭像 發表于 03-29 14:27 ?4928次閱讀
    【S32K 進階之旅】<b class='flag-5'>LPUART</b> 模塊介紹與應用

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

    為了幫助新手快速的入門 LPUART 模塊,本文將逐句解析例程 LPUART_s32k144,例程的導入方式及演示效果請參考我的上篇博文
    的頭像 發表于 04-06 16:43 ?2888次閱讀
    【S32K 進階之旅】 <b class='flag-5'>LPUART</b> 模塊的例程解讀

    地址未對齊引起的HardFault異常

    地址未對齊引起的 HardFault 異常
    的頭像 發表于 09-18 10:57 ?910次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>個</b>地址未對齊引起的HardFault<b class='flag-5'>異常</b>

    晶振輸出頻率異常怎么辦?

    晶振輸出頻率異常怎么辦? 晶振輸出頻率異常是指晶振輸出信號的頻率與預期不符。晶振作為種常見的時
    的頭像 發表于 01-24 16:11 ?1006次閱讀
    百家乐官网包赢技巧| 永利高网址| 电子百家乐假在线哪| 太阳城网上版| 宝马会网上娱乐| 百家乐官网视频游戏网站| 百家乐官网赌博大全| 在线百家乐官网下| 澳门百家乐群策略| 太阳城莱迪广场| 百家乐官网庄闲必胜手段| 月华百家乐官网的玩法技巧和规则 | 香港百家乐玩| 大发888真钱娱乐城下载| 错那县| 真人百家乐官网游戏网| 百家乐大白菜| 大发888 安装包的微博| 百家乐官网高手投注法| 百家乐官网赌台| 索罗门百家乐官网的玩法技巧和规则| 百家乐庄闲对冲| 南通棋牌游戏中心下载| 澳门百家乐官网现场真人版| 聚众玩百家乐官网的玩法技巧和规则 | 百家乐官网赌场论坛| 赌博百家乐的玩法技巧和规则 | 百家乐官网画面| 新锦江百家乐娱乐场开户注册| 百家乐官网手机软件| 监利县| 葡京百家乐玩法| 百家乐博娱乐网赌百家乐的玩法技巧和规则| 百家乐官网统计概率| 大发百家乐现金| 纳雍县| 百家乐薯片| 百家乐官网出千原理| 百家乐网络赌博地址| 战神国际娱乐平| 百家乐公式书|