一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

3天內(nèi)不再提示

關(guān)于USART波特率 TIM的外設(shè)預(yù)分頻值

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

掃碼添加小助手

加入工程師交流群

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

1USART串口預(yù)分頻

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

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

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

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

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

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

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

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

2

TIM定時器預(yù)分頻

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

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

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

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

另一個關(guān)于APB1、APB2時鐘問題

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

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

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

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

定時器RCC時鐘:

定時器Cbue時鐘配置:

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

    關(guān)注

    2293

    文章

    11032

    瀏覽量

    365075
  • 定時器
    +關(guān)注

    關(guān)注

    23

    文章

    3298

    瀏覽量

    118982
  • Tim
    Tim
    +關(guān)注

    關(guān)注

    0

    文章

    84

    瀏覽量

    18361
  • USART
    +關(guān)注

    關(guān)注

    1

    文章

    201

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    可編程電源的通信波特率應(yīng)如何設(shè)置?

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

    CAN總線十萬個為什么 | CAN自定義波特率有什么用?

    導(dǎo)讀CAN總線通信中,波特率一致并不總能保證通信順暢。本文將揭秘自定義波特率的原理和應(yīng)用,探討如何通過優(yōu)化采樣點和提高容忍度解決通信問題,助力工程師提升通信穩(wěn)定性。通常情況下,CAN總線通信只需確保
    的頭像 發(fā)表于 02-07 11:36 ?711次閱讀
    CAN總線十萬個為什么 | CAN自定義<b class='flag-5'>波特率</b>有什么用?

    RS232通信的波特率設(shè)置說明

    RS232通信的波特率設(shè)置是確保數(shù)據(jù)正確傳輸?shù)年P(guān)鍵參數(shù)之一。以下是對RS232通信波特率設(shè)置的說明: 一、波特率的概念 波特率是指每秒傳輸?shù)谋忍財?shù)(bps),是衡量數(shù)據(jù)傳輸速度的重要指
    的頭像 發(fā)表于 12-10 16:26 ?4384次閱讀

    波特率設(shè)置中的常見問題解析

    在數(shù)字通信系統(tǒng)中,波特率是一個關(guān)鍵參數(shù),它直接影響數(shù)據(jù)傳輸?shù)男屎涂煽啃?。然而,在實際應(yīng)用中,波特率的設(shè)置往往會引起一些常見的問題。 一、波特率與數(shù)據(jù)速率的混淆 問題描述: 許多人會將波特率
    的頭像 發(fā)表于 11-22 10:06 ?1722次閱讀

    波特率與串行通信的關(guān)系 各種設(shè)備波特率轉(zhuǎn)換的方法

    波特率(Baud Rate)是串行通信中的一個重要參數(shù),它指的是信號傳輸?shù)乃俾?,即單位時間內(nèi)傳輸?shù)姆枺ɑ蛐盘枲顟B(tài))的數(shù)量。在串行通信中,波特率決定了數(shù)據(jù)傳輸?shù)乃俣龋虼藢τ谕ㄐ判屎驮O(shè)備兼容性
    的頭像 發(fā)表于 11-22 10:01 ?1666次閱讀

    常見的波特率標準和協(xié)議

    波特率是指在數(shù)據(jù)通信中,每秒鐘傳輸?shù)姆枖?shù)(或比特數(shù)),是衡量數(shù)據(jù)通信速度的重要指標。在不同的通信協(xié)議和場景中,常見的波特率標準和協(xié)議有所不同。以下是一些常見的波特率標準和協(xié)議: 一、串口通信
    的頭像 發(fā)表于 11-22 09:56 ?6199次閱讀

    Wi-Fi與藍牙的波特率對比分析

    Wi-Fi與藍牙是兩種不同的無線通信技術(shù),它們在波特率(或稱數(shù)據(jù)傳輸速率)方面存在顯著的差異。以下是對Wi-Fi與藍牙波特率的對比分析: 一、Wi-Fi的波特率 概述 : Wi-Fi(無線局域網(wǎng)
    的頭像 發(fā)表于 11-22 09:54 ?1848次閱讀

    波特率的定義和計算方法 波特率與數(shù)據(jù)傳輸速度的關(guān)系

    波特率的定義 波特率(Baud Rate),又稱調(diào)制速率或傳符號,是指每秒傳輸?shù)姆枖?shù)目,單位為波特(Bd)。它是一個數(shù)字信號通信中重要的參數(shù),在串行通信協(xié)議中經(jīng)常被用作衡量串行數(shù)據(jù)
    的頭像 發(fā)表于 11-22 09:49 ?9186次閱讀

    MCU串口自動識別波特率原理分析

    現(xiàn)在的單片機資源越來越豐富了,其中我們常用的串口也是內(nèi)部集成了多個,關(guān)鍵功能也越來越強了。 我們有些應(yīng)用可能會用到串口自動識別波特率,今天就來講講MCU串口自動識別波特率底層的常見的原理,以及MCU的案例。
    的頭像 發(fā)表于 10-23 16:12 ?2006次閱讀
    MCU串口自動識別<b class='flag-5'>波特率</b>原理分析

    波特率9600和115200的區(qū)別

    在現(xiàn)代通信技術(shù)中,數(shù)據(jù)傳輸速率是一個關(guān)鍵的性能指標。對于串行通信,波特率是衡量數(shù)據(jù)傳輸速度的基本單位。波特率9600和115200是兩種常見的設(shè)置,它們在不同的應(yīng)用場景中有著各自的優(yōu)勢和局
    的頭像 發(fā)表于 10-18 14:56 ?5597次閱讀

    波特率與比特有何關(guān)系 波特率與數(shù)據(jù)傳輸速率的關(guān)系

    波特率(Baud Rate)和比特(Bit Rate)是衡量數(shù)據(jù)通信系統(tǒng)性能的兩個重要參數(shù),它們之間有著密切的關(guān)系,但并不完全相同。 波特率(Baud Rate): 波特率是指在數(shù)據(jù)
    的頭像 發(fā)表于 10-18 14:55 ?2558次閱讀

    uart波特率和傳輸頻率的關(guān)系 UART串口的常用波特率為多少

    UART(Universal Asynchronous Receiver/Transmitter)是一種廣泛使用的異步串行通信技術(shù),它允許兩臺設(shè)備之間進行雙向數(shù)據(jù)傳輸。在UART通信中,波特率和傳輸
    的頭像 發(fā)表于 10-06 16:12 ?7023次閱讀
    uart<b class='flag-5'>波特率</b>和傳輸頻率的關(guān)系 UART串口的常用<b class='flag-5'>波特率</b>為多少

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

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

    【GD32 MCU 入門教程】GD32 MCU 常見外設(shè)介紹(10)USART 模塊介紹

    通用同步異步收發(fā)器(USART) 提供了一個靈活方便的串行數(shù)據(jù)交換接口,數(shù)據(jù)幀可以通過全雙工或半雙工,同步或異步的方式進行傳輸。 USART提供了可編程的波特率發(fā)生器,能對UCLK(PCLK1或PCLK2) 進行
    的頭像 發(fā)表于 08-19 09:25 ?2119次閱讀
    【GD32 MCU 入門教程】GD32 MCU 常見<b class='flag-5'>外設(shè)</b>介紹(10)<b class='flag-5'>USART</b> 模塊介紹

    關(guān)于比特波特率的定義與區(qū)別介紹

    比特波特率都是衡量數(shù)字通信中數(shù)據(jù)傳輸速率的重要參數(shù)。比特率直接表示了單位時間內(nèi)傳輸?shù)臄?shù)據(jù)量(以比特為單位),而波特率則表示了信號變化的速率(以符號為單位)。在實際應(yīng)用中,需要根據(jù)具體的調(diào)制方式和通信協(xié)議來確定兩者之間的關(guān)系。
    的頭像 發(fā)表于 08-05 14:31 ?1092次閱讀