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

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

3天內不再提示

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

黃工的嵌入式技術圈 ? 來源:黃工的嵌入式技術圈 ? 2020-03-06 14:52 ? 次閱讀

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

1USART串口預分頻

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

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

有朋友其實已經(jīng)發(fā)現(xiàn),UART波特率設置太高,或太低就不能實現(xiàn)了??聪聢D波特率計算公式:

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

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

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

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

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

2

TIM定時器預分頻

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

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

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

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

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

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

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

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

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

定時器RCC時鐘:

定時器Cbue時鐘配置:

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

    關注

    2258

    文章

    10828

    瀏覽量

    352493
  • 定時器
    +關注

    關注

    23

    文章

    3218

    瀏覽量

    113686
  • Tim
    Tim
    +關注

    關注

    0

    文章

    81

    瀏覽量

    17813
  • USART
    +關注

    關注

    1

    文章

    195

    瀏覽量

    30682
收藏 人收藏

    評論

    相關推薦

    串口通信中的波特率你真的了解嗎?差距竟如此重要!

    波特率在串口通信中的作用在串口通信中,波特率起著至關重要的作用。因為在傳輸數(shù)據(jù)時,發(fā)送方和接收方需要以相同的波特率進行通信。如果兩端的波特率不同,那么就會出現(xiàn)數(shù)據(jù)丟失、傳輸錯誤等問題,
    的頭像 發(fā)表于 08-27 11:46 ?553次閱讀
    串口通信中的<b class='flag-5'>波特率</b>你真的了解嗎?差距竟如此重要!

    如何使用示波器測量串口波特率

    在通信和電子測量領域,串口波特率是一個至關重要的參數(shù),它決定了數(shù)據(jù)在串行通信線上的傳輸速率。使用示波器來測量串口波特率是一種常見且有效的方法,尤其是在沒有專業(yè)串口調試工具或需要更精確測量時。本文將
    的頭像 發(fā)表于 05-27 16:25 ?2961次閱讀

    芯海應用筆記:通用 MCU USART 自動波特率檢測

    本文檔介紹和說明芯海科技旗下 CS32 系列 MCU 的自動波特率檢測功能,并為不具備硬件自動波特率檢測的 MCU 產品提供替代軟件方法 。*附件:應用筆記:芯海通用MCU USART自動波特
    發(fā)表于 05-16 11:42

    STM32F0R8T6定時器預分頻配置影響AD采樣,為什么?

    今天碰到一個奇怪的問題,開了TIM17的100ms中斷,預分頻99,發(fā)現(xiàn)以前正常采樣電位器的AD數(shù)據(jù)錯誤,明明是12位的AD通過調試查看變量發(fā)現(xiàn)采樣到了6000多的,但把
    發(fā)表于 05-15 07:28

    波特率有什么危害尼?又該如何避免?

    深入探討了波特率過高可能帶來的危害,并提供了一些實用建議來保護設備不受影響。在通信領域,波特率是決定數(shù)據(jù)傳輸速度的重要參數(shù)。然而,波特率設置不當可能會對設備造成嚴重的影響。本文旨在揭示波特率
    的頭像 發(fā)表于 04-03 16:45 ?939次閱讀

    請問STM32F407 SPI如何設置不同的波特率?

    請教下大家F407 SPI1(Master)的波特率,因為讀取TI ADS1274,需要將SPI波特率設置成某些特殊,比如 51200 * 256 = 13107200,請問是否能做到? 目前我
    發(fā)表于 03-13 08:23

    為啥要轉換波特率 波特率和傳輸速率的關系

    對于串行多主 CAN 總線,如果波特率被稱為“500000波特”,則 CAN 上的該端口每秒最多可傳輸500000位。
    的頭像 發(fā)表于 03-06 17:38 ?3536次閱讀
    為啥要轉換<b class='flag-5'>波特率</b> <b class='flag-5'>波特率</b>和傳輸速率的關系

    波特率發(fā)生器使用哪個定時器 波特率發(fā)生器的時鐘來源是什么

    波特率發(fā)生器是一種用于控制串行數(shù)據(jù)通信速率的設備,它可以生成特定波特率的時鐘信號。在嵌入式系統(tǒng)、通信設備和計算機硬件中,波特率發(fā)生器的使用十分常見。波特率發(fā)生器通常使用定時器來實現(xiàn)時鐘
    的頭像 發(fā)表于 01-24 09:56 ?1423次閱讀

    什么是串口波特率?串口通信為什么要設置波特率?

    什么是串口波特率?串口通信為什么要設置波特率?波特率與比特的關系 如何選擇串口波特率?? 串口波特率
    的頭像 發(fā)表于 01-22 16:10 ?1548次閱讀

    以太網(wǎng)CAN轉換器波特率的設置步驟是怎樣的?

    確定CAN總線的波特率:首先,需要確定所連接的CAN總線的波特率。CAN總線的波特率通常以位/秒(bps)為單位,用于確定數(shù)據(jù)傳輸速度。
    的頭像 發(fā)表于 01-17 09:24 ?766次閱讀

    單片機的各個通信協(xié)議的波特率

    下面是一些常見的波特率數(shù)值,這些波特率通常被用于串口通信,SPI、I2C、CAN等接口的實際波特率可能有所不同:USART:110bps300bps600bps1200bps2400b
    的頭像 發(fā)表于 12-09 08:00 ?2237次閱讀
    單片機的各個通信協(xié)議的<b class='flag-5'>波特率</b>

    什么是串口波特率?串口通信為什么要設置波特率?

    在電子設備的世界中,數(shù)據(jù)是通過各種方式進行傳輸?shù)?。其中,串口通信是一種常見的數(shù)據(jù)傳輸方式,它以其簡單、可靠和廣泛的特性,成為了電子設備間通信的重要手段。而在串口通信中,有一個非常重要的參數(shù)——波特率
    的頭像 發(fā)表于 11-03 08:21 ?3786次閱讀
    什么是串口<b class='flag-5'>波特率</b>?串口通信為什么要設置<b class='flag-5'>波特率</b>?

    SJA1000波特率計算

    電子發(fā)燒友網(wǎng)站提供《SJA1000波特率計算.zip》資料免費下載
    發(fā)表于 10-13 11:43 ?6次下載
    SJA1000<b class='flag-5'>波特率</b>計算

    CAN通信波特率不對會怎樣?

    CAN通信波特率不對會怎樣?? CAN通信是一種流行的通信協(xié)議,它廣泛應用于許多現(xiàn)代車輛的系統(tǒng)中。CAN通信協(xié)議通過處理器之間的數(shù)據(jù)交換,實現(xiàn)車輛的控制。CAN通信協(xié)議的一項重要特性是其波特率控制
    的頭像 發(fā)表于 10-11 17:19 ?2088次閱讀

    STM32 USART自動波特率檢測

    電子發(fā)燒友網(wǎng)站提供《STM32 USART自動波特率檢測.pdf》資料免費下載
    發(fā)表于 09-25 15:09 ?8次下載
    STM32 <b class='flag-5'>USART</b>自動<b class='flag-5'>波特率</b>檢測