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

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

【開(kāi)源教程18】瘋殼·開(kāi)源編隊(duì)無(wú)人機(jī)-GPIO(遙控器指示燈控制)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2022-8-24 15:17:35 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
COCOFLY教程
——瘋殼·無(wú)人機(jī)·系列
GPIO(遙控器指示燈控制)




圖1

一、GPIO 簡(jiǎn)介
GPIO(General-purpose input/output),通用的輸入輸出的簡(jiǎn)稱(chēng),單片機(jī)的引腳可以供使用者自由使用,可以配置為輸出,也可以配置為輸入。其中輸出又可以是輸出“高電平”或者“低電平”。在電子電路中“高電平”是電壓高的狀態(tài), 用邏輯來(lái)表示即為 1,“低電平”是電壓低的狀態(tài),用邏輯來(lái)表示即為 0。
STM32F103 系列是意法半導(dǎo)體基于 ARM Cortex M3 內(nèi)核的 32 位單片機(jī), 遙控器上用的主核心是 48 腳的 STM32F103C8T6,其片上的資源與飛控主板上的主核心 STM32F103CBT6 基本一致,不同點(diǎn)在于TM32F103C8T6 的 RAM 為20kBytes、Flash 為 64kBytes,而 STM32F103CBT6 的 RAM 為 20kBytes、Flash 為 128kBytes。其引腳如下圖所示。


圖2
STM32F103C8T6 的 GPIO 的功能較多,有 A、B、C、D 等四組 GPIO,每組每個(gè) GPIO 口都可以作為輸出輸出口使用之外, 還能作為復(fù)用引腳使用, 比如串口、I2C、SPI 等特殊接口的引腳。 但是需要注意的是每個(gè)引腳的復(fù)用功能是有限制的, 所以硬件連接時(shí)需要注意每個(gè)引腳有哪些復(fù)用功能, 這個(gè)可以在STM32F103 的數(shù)據(jù)手冊(cè)中查看。GPIO 口一共有 8 種模式,分別為:浮空輸入, 上拉輸入,下拉輸入,模擬輸入, 開(kāi)漏輸出, 推挽輸出,推挽式復(fù)用功能,開(kāi)漏式復(fù)用功能如下表所示。
STM32F103GPIO 工作模式


表1
這 8 種功能我們就不一一介紹了, 有興趣可以上網(wǎng)搜索了解一下,這里主要講解一下開(kāi)漏輸出和推挽輸出的區(qū)別。
(1)開(kāi)漏輸出:
輸出端相當(dāng)于三極管的集電極. 需要上拉電阻才能得到高電平, 利用外部上拉電阻的驅(qū)動(dòng)能力,減少 IC 內(nèi)部的驅(qū)動(dòng),驅(qū)動(dòng)能力強(qiáng),適合于做電流型的驅(qū)動(dòng), 可達(dá)到 20mA。
(2)推挽輸出:
可以輸出高,低電平,連接數(shù)字器件,是由兩個(gè)參數(shù)相同的三極管或MOSFET 以推挽方式連接,各負(fù)責(zé)正負(fù)半周的波形放大任務(wù)。電路工作時(shí),兩只對(duì)稱(chēng)的功率開(kāi)關(guān)管每次只有一個(gè)導(dǎo)通,所以導(dǎo)通損耗小、效率高,既提高電路的負(fù)載能力, 又提高開(kāi)關(guān)速度。
總結(jié)一下:推挽輸出可以輸出強(qiáng)高低電平,連接數(shù)字器件;而開(kāi)漏輸出只可以輸出低電平,高電平得靠外部電阻拉高。輸出端相當(dāng)于三極管的集電極,要得到高電平狀態(tài)需要上拉電阻才行,適合于做電流型的驅(qū)動(dòng),其吸收電流的能力相對(duì)強(qiáng)(一般 20ma 以?xún)?nèi))。
二、GPIO 相關(guān)寄存器
STM32F103 的每個(gè) GPIO 端口有:兩個(gè) 32 位配置寄存器(GPIOx_CRL 和GPIOx_CRH)、兩個(gè) 32 位數(shù)據(jù)寄存器(GPIOx_IDR 和 GPIOx_ODR)、一個(gè) 32 位置位/復(fù)位寄存器(GPIOx_BSRR)、一個(gè) 16 位復(fù)位寄存器(GPIOx_BRR)、一個(gè) 32 位鎖定寄存器(GPIOx_LCKR)。
(1)GPIOx_CRL 寄存器(x=A~G)


圖3
該寄存器用于配置 IO0~7 的輸入輸出模式以及速率設(shè)置。
(2)GPIOx_CRH 寄存器(x=A~G)


圖4
該寄存器用于配置 IO8~15 的輸入輸出模式以及速率設(shè)置。
(3)GPIOx_IDR 寄存器(x=A~G)


圖5
IDR 是 GPIO 的輸入數(shù)據(jù)寄存器。通過(guò) IDR 寄存器可以讀出 IO 的狀態(tài)。需要注意的是 IDR 寄存器只能以字(16 位)的形式讀出。
(4)GPIOx_ODR 寄存器(x=A~G)


圖6
ODR 是 GPIO 的輸出數(shù)據(jù)寄存器。通過(guò) ODR 寄存器可以輸出高低電平。
(5)GPIOx_BSRR 寄存器(x=A~G)


圖7
BSRR 是GPIO 的端口位設(shè)置/清除寄存器。BSRR 寄存器的高 16 位是清除IO 位,低 16 位是置位 IO 位。需要注意的是 BSRR 只有在寫(xiě)入 1 的時(shí)候,相應(yīng)的功能才有作用,寫(xiě)入 0 是無(wú)效的。
(6)GPIOx_BRR 寄存器(x=A~G)


圖8
BRR 是 GPIO 的端口位清除寄存器。BRR 基礎(chǔ)只有在寫(xiě)入 1 的時(shí)候,相應(yīng)的功能才有作用,寫(xiě)入 0 無(wú)效。
(7)GPIOx_LCKR 寄存器(x=A~G)


圖9

LCKR 是GPIO 的端口配置鎖定寄存器。LCKR 寄存器用來(lái)鎖定IO 口的配置, 設(shè)置后,除了復(fù)位后不能再配置 IO 的狀態(tài)。
三、GPIO 實(shí)驗(yàn)
本節(jié)實(shí)驗(yàn)的內(nèi)容是對(duì)遙控上的指示燈進(jìn)行控制,這里和在飛控實(shí)驗(yàn)中周期點(diǎn)亮航情燈一樣,也是周期點(diǎn)亮遙控手柄上的指示燈。
遙控手柄上接到 STM32F103C8T6 上的 GPIO 管腳的指示燈有四顆,分別是電源指示燈、連接無(wú)人機(jī)指示燈、cocobit 編程模式指示燈以及緊急降落指示燈, 如下圖所示。


圖10
查看原理圖,可知四個(gè) LED 指示燈分別對(duì)應(yīng) PA8、PC13、PB4、PB5。


圖11
編寫(xiě)代碼的思路如下表所示:
代碼思路


表2
按照代碼思路,編寫(xiě)代碼(通過(guò)調(diào)用官方庫(kù)) 如下圖所示為 GPIO 的初始化部分代碼:



圖12
完成配置后只需要周期點(diǎn)亮以及關(guān)閉 LED 即可,如下圖所示。


圖13
其中延時(shí)函數(shù),如下圖所示。


圖14
保存、編譯、下載,就可以看到遙控手柄的四個(gè) LED 指示燈周期性閃爍, 如下圖所示。


圖15




文件下載請(qǐng)點(diǎn)擊: 【1】GPIO(遙控器指示燈控制).pdf (855.71 KB)


本版積分規(guī)則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产日韩欧美视频在线观看 | 成人在线视频一区 | 久久综合九色综合97_ 久久久 | 久久久久久久99视频 | 真正免费一级毛片在线播放 | 狠狠色狠狠色狠狠五月ady | 成人在线视频网 | 黄色毛片在线 | 精品国精品国产自在久国产不卡 | 久久久久久久一精品 | 99re最新这里只有精品 | 欧美精品国产第一区二区 | 天堂资源最新版在线www | 特级做a爰片毛片免费看 | 国产成人在线免费观看 | 国产成人精品福利网站在线观看 | 天堂va在线高清一区 | 一区二区三区亚洲 | h视频免费高清在线观看 | 六月丁香伊人 | qvod经典视频在线播放 | 国产福利免费 | 亚洲女同在线观看 | 亚洲精品国产高清不卡在线 | 国产精品久久久久久久久久妇女 | 97毛片 | 国产精品一级香蕉一区 | 婷婷久久久五月综合色 | 一区二区三区四区视频 | 成人午夜精品久久久久久久小说 | 日本人亚洲人jizz | 麻豆小说| 99爱这里只有精品 | 亚洲第一黄色网 | 亚洲一级高清在线中文字幕 | 九九热视频在线播放 | 久久99热只有视精品6国产 | 草逼视频下载 | 亚洲网站在线 | 亚洲看片网站 | 污网站免费观看 |