国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

查看: 1656|回復(fù): 0
打印 上一主題 下一主題

【飛控開(kāi)發(fā)基礎(chǔ)3】開(kāi)源編隊(duì)無(wú)人機(jī)-串口(基礎(chǔ)收發(fā))

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2022-7-15 11:35:20 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
COCOFLY教程
——瘋殼·無(wú)人機(jī)·系列
串口(基礎(chǔ)收發(fā))




    圖1


    一、串口簡(jiǎn)介

    在嵌入式開(kāi)發(fā)領(lǐng)域講的串口通常指的是 UART,UART 即為通用異步收發(fā)傳輸器(Universal Asynchronous Receiver/Transmitter)。是一種通用串行數(shù)據(jù)總線, 用于異步通信。該總線雙向通信,可以實(shí)現(xiàn)全雙工傳輸和接收。
    UART 常常用于兩個(gè)單片機(jī)之間進(jìn)行數(shù)據(jù)傳輸,如下圖所示。

   
    圖2
    其通信過(guò)程如下圖所示。


圖3
    STM32F103 提供了 3 路串口,支持同步單線通信和半雙工單線通信、支持LIN、支持調(diào)制解調(diào)器操作、智能卡協(xié)議和 IrDA SIR ENDEC 規(guī)范、具有 DMA 等。可配置為串口的引腳是有限制的,所以在設(shè)計(jì)硬件電路時(shí)需要注意哪些引腳可以配置為串口引腳,如下表所示。
    串口管腳映射

   
    圖4



    二、UART 串口通訊協(xié)議

    串口通訊過(guò)程中一幀數(shù)據(jù)包含了起始位、數(shù)據(jù)位、停止位以及可有可無(wú)的奇偶校驗(yàn)位,除了需要知道這些概念外,還需要理解波特率的概念。
    (1)起始位,當(dāng)未有數(shù)據(jù)發(fā)送時(shí),數(shù)據(jù)線處于邏輯“1”狀態(tài);先發(fā)出一個(gè)邏輯“0”信號(hào),表示開(kāi)始傳輸字符;
    (2)數(shù)據(jù)位,緊接著起始位之后的 8 個(gè)數(shù)據(jù)。從最低位開(kāi)始傳送;
    (3)奇偶校驗(yàn)位,一般不用;
    (4)停止位,一般為 1 位(也可以是 1.5 位或者 2 位),為高電平。作為結(jié)束的標(biāo)志;
    (5)波特率,波特率表示每秒鐘傳送的碼元符號(hào)的個(gè)數(shù),是衡量數(shù)據(jù)傳送速率的指標(biāo)。
    如下圖所示,為一幀串口數(shù)據(jù)的幀組成。


圖5
    三、UART 串口寄存器

    STM32F103 與串口相關(guān)的寄存器眾多,這里只講解重要的幾個(gè)寄存器。
    (1)USART_SR:狀態(tài)寄存器,如下圖所示:


圖6
    需要了解的位有:TXE:發(fā)送寄存器為空;TC:發(fā)送完成;RXNE:讀取數(shù)據(jù)寄存器不為空;ORE:上溢錯(cuò)誤;FE:幀錯(cuò)誤;PE:奇偶校驗(yàn)錯(cuò)誤。
    (2)USART_DR:該寄存器只有低 8 位有效,而且具有讀寫(xiě)操作,有關(guān)該寄存器中的數(shù)據(jù)是要發(fā)送的數(shù)據(jù)還是接受到的數(shù)據(jù)取決于執(zhí)行的操作是“讀取” 還是“寫(xiě)入”。 如下圖所示:

   
    圖7

    (3)USART_BRR:波特率寄存器,用于設(shè)置串口通訊的波特率,如下圖所示:

   
    圖8
    其中在寄存器中會(huì)設(shè)定相應(yīng)的值,DIV_Mantissa[11:0]用來(lái)設(shè)定分頻系數(shù)的整數(shù)部分,DIV_Fraction[3,0]用來(lái)設(shè)定分頻系數(shù)的小數(shù)部分。
    串口的波特率計(jì)算公式如下:

     
    公式1

    這里的 fPCLKx(x=1、2)是給外設(shè)的時(shí)鐘(PCLK1 用于 USART2、3、4、5, PCLK2 用于USART1,這里 STM32F103CBT6 沒(méi)有的串口就不講解)。USARTDIV是一個(gè)無(wú)符號(hào)的浮點(diǎn)數(shù)。假設(shè)串口波特率為 115200,使用的是串口 1,串口的時(shí)鐘為 PCLK2 的時(shí)鐘(即 APB2 總線的時(shí)鐘)為 72MHz,如下圖所示。

   
    圖9
    根據(jù)公式可得:
    USARTDIV=72000000/(115200*16)=39.0625

    所以小數(shù)部分 DIV_Fraction=0.0625*16=1=0x01。


    整數(shù)部分 DIV_Mantissa=39=0x27。

    四、串口基礎(chǔ)收發(fā)實(shí)驗(yàn)

    串口收發(fā)實(shí)驗(yàn)使用 STM32 的串口 1 即 UART1,通過(guò)串口模塊連接電腦,使用串口調(diào)試助手來(lái)進(jìn)行通信,STM32 收到數(shù)據(jù)后把收到的數(shù)據(jù)在發(fā)回電腦。串口引腳如下圖所示:

     
    圖10
    兩個(gè)串口引腳分別與 PA9 與 PA10 引腳相連,那么我們就對(duì) PA9 與 PA10 引腳以及串口模塊進(jìn)行配置,配置代碼(通過(guò)調(diào)用官方庫(kù))。
    代碼編寫(xiě)的思路如下:

    編程思路

   
    表1
    串口初始化代碼如下:

   
    圖11
    串口中斷函數(shù)代碼如下:

   
    圖12
    設(shè)置串口 1 的波特率為 115200,代碼如下:

   
    圖13

    保存、編譯、下載代碼,把飛控上的 USART1 上接的視覺(jué)模塊先拔下來(lái), 然后接上 USB 轉(zhuǎn)串口模塊,如下圖所示:

   
    圖14
    然后在把 USB 轉(zhuǎn)串模塊插到電腦的 USB 口,打開(kāi)電腦端的串口調(diào)試助手, 找到對(duì)應(yīng)的 COM 口(前提是安裝了 USB 轉(zhuǎn)串口驅(qū)動(dòng)),設(shè)置波特率為 115200, 打開(kāi),在串口調(diào)試助手的輸入框內(nèi)輸入“www.fengke.club”,點(diǎn)發(fā)送,然后可以看到串口調(diào)試助手收到來(lái)自 STM32 的回發(fā)信息,也是“www.fengke.club”,如下圖所示。

   
    圖15





更多完整學(xué)習(xí)資料和對(duì)應(yīng)開(kāi)源套件,請(qǐng)登陸官網(wǎng):“瘋殼”

    文件下載請(qǐng)點(diǎn)擊: 【3】串口(基礎(chǔ)收發(fā)).pdf (889.23 KB)

本版積分規(guī)則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 91精品视品在线播放 | 亚洲欧美一区二区三区国产精品 | 人操人操 | 欧美在线视频播放 | 九九色在线视频 | 精品国产麻豆 | 青草视频免费观看在线观看 | 精品国产一区二区三区不卡蜜臂 | 国产欧美日韩第一页 | 成人嫩草影院免费观看 | 韩剧伦理年轻的嫂子6在线观看 | 日本高清视频成人网www | 欧美人与动欧交视频 | 日韩精品视频一区二区三区 | 亚洲精品人成网在线播放蜜芽 | 欧美黄色片免费看 | 成人综合网站 | 成人午夜爽爽爽免费视频 | 精品动漫在线观看 | 五月婷婷基地 | 日本精品久久久久中文字幕2 | 一级毛片一级毛片免费毛片 | 热久久91 | 福利视频久久 | 免费视频现线观看 | 无限看动漫片的视频高清免费 | 久久久久久久免费视频 | 日本高清不卡在线 | 亚洲涩综合 | 四虎4hu永久在线观看 | 日本大黄视频 | 五月天综合色 | 久久这里有精品视频 | 日韩免费看 | 91国语精品3p在线观看 | 欧美黑粗硬| 国产一在线| 97香蕉久久夜色精品国产 | 四虎2019 | 国产欧美一区二区三区观看 | 欧美不卡视频在线 |