国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

關于USART波特率 TIM的外設預分頻值

黃工的嵌入式技術圈 ? 來源:黃工的嵌入式技術圈 ? 2020-03-06 14:52 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

使用、參考STM32標準外設庫,寄存器開發的朋友也需要注意一些細節問題。

1USART串口預分頻

許多朋友用寄存器開發,就需要對寄存器中每一位十分熟悉才行。

但是在STM32中外設的寄存器很多,不像51這類單片機,就那么為數不多的寄存器,而且寄存器也能很容易理解。

有朋友其實已經發現,UART波特率設置太高,或太低就不能實現了。看下圖波特率計算公式:

從上圖可以看得出,波特率與fCK和USARTDIV。其中USARTDIV是一個無符號的定點數,這12位的值設置在USART_BRR寄存器。

結合上面圖文,大家應該可以知道,波特率也是有一個范圍的,而且波特率是存在誤差的。

舉一個例子:fCK = 36M,波特率 = 100,那么計算出USARTDIV = 36M / 1600 =22500.

然而,12位的數最大為4095,所以,越界了。

寫這些其實希望不管你使用寄存器,還是庫開發,其實都需要了解這些,避免入坑。

2

TIM定時器預分頻

前面有朋友問了我關于TIM定時器的問題,說自己參考STM32標準外設庫,配置定時器,但是定時卻不準確。

經過交談,他把配置代碼截圖給我看了。我一看,就看出問題出在預分頻值上。

而這位朋友是使用STM32F407,主頻168M,他想讓定時器每秒計數1000個,就是上面“SystemCoreClock / 1000”。

然而,他卻沒有考慮溢出問題:168M / 1000 = 168K,PrescalerValue最大值為65535.

另一個關于APB1、APB2時鐘問題

有朋友發現自己配置的定時會相差一倍,其實原因也是在于預分頻值不對造成的。

讓大家看一下下圖兩個預分頻宏定義:

原因在于:有的TIM定時器時鐘是APB1,有的是APB2。這兩個時鐘一般默認配置是相差一倍,所以定時也就會相差一倍。

關于TIM使用的APB時鐘差異,大家可以通過查看“參考手冊”RCC章節,或結合STM32Cube工具理解。

定時器RCC時鐘:

定時器Cbue時鐘配置:

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

    關注

    2309

    文章

    11162

    瀏覽量

    373474
  • 定時器
    +關注

    關注

    23

    文章

    3368

    瀏覽量

    123652
  • Tim
    Tim
    +關注

    關注

    0

    文章

    85

    瀏覽量

    19040
  • USART
    +關注

    關注

    1

    文章

    202

    瀏覽量

    33170
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    是否可以將 visionfive2 的 uart 配置為 1Mb 波特率

    我需要通過 uart 加載 u-boot 和 u-boot spl,由于某種原因我不能使用 sd 或 spi flash。但是這需要太多時間,因為默認的 uart 波特率是 115200。 我試過
    發表于 02-04 06:24

    碩博電子IO模塊修改波特率和節點ID操作步驟

    正確設置波特率與節點ID,是保證IO模塊與控制器穩定通信的關鍵。配置不當易引發設備失聯、數據錯亂等故障。本文將詳細講解波特率與節點ID的規范修改步驟,輕松搞定配置難題。
    的頭像 發表于 01-27 10:39 ?526次閱讀
    碩博電子IO模塊修改<b class='flag-5'>波特率</b>和節點ID操作步驟

    請問使用串口ISP波特率可以自己設定嗎?

    請問使用串口ISP,波特率可以自己設定嗎?
    發表于 01-14 08:27

    FDCAN 數據段波特率增加后發送失敗的問題分析

    客戶在使用 FDCAN 協議,仲裁段波特率配置位 1Mbit/s,數據段波特率配置為 5Mbit/s時,發現 FDCAN 發送功能異常。首先建議客戶使用 IC 內部回環模式進行測試發現 5M
    發表于 01-04 11:16 ?0次下載

    請問波特率參數如何設置?

    波特率參數如何設置?
    發表于 12-24 08:05

    支持小數波特率的意義是什么

    我看芯源有一款MCU是支持小數波特率,支持小數波特率的意義是什么?是為了數據傳輸更穩定?
    發表于 12-11 07:15

    請問支持小數波特率接收數據的意義在哪兒?

    我看芯源支持小數波特率,話說,支持小數波特率接收數據的意義在哪兒?是通訊更有精度嗎?
    發表于 12-02 07:17

    UART波特率計算及UART收發回顯實驗

    Register)。波特率與寄存器的的公式如圖19_8 所示。N表示BRR寄存器的,B是波特率,PCLK 是外設時鐘的頻率(單位:MH
    的頭像 發表于 10-17 09:51 ?2987次閱讀
    UART<b class='flag-5'>波特率</b>計算及UART收發回顯實驗

    115200的波特率,為啥實際速度只有11KB/s?

    波特率≠真實速度! 這幾個概念確實容易混淆,但它們描述的是通信過程中不同層面的速率指標。讓我們一起來理清楚它們的區別和聯系↓ 主要區別解析 比特 (Bit Rate): 指每秒傳輸的二進制比特數量
    的頭像 發表于 09-10 11:18 ?772次閱讀

    請問如何使用低功耗 UART (LP UART) 波特率補償?

    如何使用低功耗 UART (LP UART) 波特率補償?
    發表于 08-21 07:05

    波特率是什么

    波特率是串行通信中的一個核心參數,用于描述數據在傳輸線路上的傳輸速率。以下從定義、單位、與比特的關系、實際應用及設置注意事項等方面進行詳細說明: 一、定義與本質 波特率(Baud Rate)指單位
    的頭像 發表于 07-22 11:11 ?8386次閱讀

    可編程電源的通信波特率應如何設置?

    支持9600-115200bps,Chroma 62000P系列支持1200-230400bps)。 標準波特率:優先選擇通用標準(如9600、19200、38400、115200bps),避免使用非標波特率
    發表于 07-07 15:01

    基于瑞薩64位MPU RZ/G2L的uboot串口多波特率支持介紹

    本文主要介紹基于瑞薩64位MPU RZ/G2L,討論uboot下非常規波特率115200的支持方法,用于解決客戶對uboot下特殊波特率的需求,供客戶參考。
    的頭像 發表于 07-04 15:54 ?3066次閱讀
    基于瑞薩64位MPU RZ/G2L的uboot串口多<b class='flag-5'>波特率</b>支持介紹

    第二十章 TIM——基本定時器

    本章介紹了W55H32基本定時器TIM6、TIM7,16位向上計數,含時鐘源、預分頻器等,講解定時計算及初始化結構體。
    的頭像 發表于 06-20 13:51 ?1158次閱讀
    第二十章 <b class='flag-5'>TIM</b>——基本定時器

    第十四章 USART——串口通訊

    本章介紹了USART串口通訊,含物理層(RS-232、TTL電平)、協議層(波特率、數據幀),及W55MH32的USART功能與應用。
    的頭像 發表于 06-14 16:30 ?1799次閱讀
    第十四章 <b class='flag-5'>USART</b>——串口通訊