新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > stm32學習筆記--串口波特率

        stm32學習筆記--串口波特率

        作者: 時間:2016-11-27 來源:網絡 收藏
        這幾天的學習有什么問題呢?開始看前幾個例程的時候貌似還找到些感覺,學了些東西,比如串口需要配置的波特率是如何計算的,如何通過位段位帶別名區的設計實現對I/O口單個位的尋址操作,端口模式如何設置,spi與iic之間各自的優勢和劣勢,上個周稀里糊涂看了那么多,現在一想就剩下這些了,然后是這個周,這個周的感覺是更加的不扎實,很多東西都是走馬觀花,看了就忘,比如中斷控制,直到看了第二遍才形成框架,看門狗DMA游戲手柄紅外通信的各個實驗,好吧,這些東西我僅僅知道是怎么回事,對他們的了解甚至不如上個周的模塊,至少還有個框架,到了這里,只剩下“哦,這個,我知道……”就沒了,對!就沒了。所以接下來要去改程序,不管改什么程序,當然最好是直接拿三軸加速度計的程序去改,隨便改,改了之后在板子上能看到效果,去做這種事兒,如果這個模塊沒什么好改的就去改別的,反正要著手去改,不能只這樣看了,好吧,明天開始試試。
        下面把我還能記得的東西整理一下。
        1.串口的波特率是如何配置的
        STM32的每個串口都有一個獨立的波特率寄存器USSART-BRR,通過設置該寄存器就可以達到配置不同波特率的目的。當然關鍵是波特率該設置成多少的問題。因為首先我們應該知道的是為什么要配置波特率,下面是百度找到的答案
        單片機串行通信波特率就是每發送兩個數據的之間的間隔,或者是每秒鐘發送的字節數,你在進行串行通信時,是兩個單片機進行通信,那肯定是要進行同步的(波特率要相同),要不然通信沒法建立
        也就是說波特率是不能任意設置的,需要和芯片配合起來。我們知道波特率之后還需要把它用寄存器表示出來,這就牽涉到最初說道的計算。其中USART-BRR的最低四位用來存放小數部分,緊接著的12位用來存放整數部分,最高16位沒有使用。計算公式如下
        USARTDIV=PCLK2/(串口波特率*16)。這樣就可以算出USARTDIV的值了,然后轉換成二進制放入寄存器中就完成了對串口波特率的設置。


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 台州市| 桂林市| 阿瓦提县| 台东市| 七台河市| 凤山市| 固始县| 绥芬河市| 岳阳市| 沁源县| 明星| 鄂托克旗| 焦作市| 通江县| 竹北市| 西昌市| 宜兰县| 凤山市| 东丽区| 涟水县| 枣强县| 西乌珠穆沁旗| 黄浦区| 康保县| 长乐市| 赞皇县| 金川县| 普安县| 舞钢市| 东宁县| 昔阳县| 宁明县| 杭州市| 陇南市| 津市市| 阿合奇县| 武宁县| 仲巴县| 乌兰察布市| 卓尼县| 康马县|