搭建机器人电控系统——MCU基石——STM32 GPIO原理
文章目錄
- 搭建機(jī)器人電控系統(tǒng)——MCU基石
- GPIO是什么?
- GPIO的模式
- 5種輸入模式:
- 4種輸出模式:
- GPIO的輸出速度
搭建機(jī)器人電控系統(tǒng)——MCU基石
在上一章中,我講解了搭建一個機(jī)器人電控系統(tǒng)的前期準(zhǔn)備工作,包括電源的選擇和主控的開發(fā),經(jīng)過一些基礎(chǔ)的單片機(jī)任務(wù)之后,現(xiàn)在你應(yīng)該對單片機(jī)的一些編程習(xí)慣有了掌握。
在本章中,我將會按照一個機(jī)器人的底盤到上層機(jī)構(gòu)的順序,單獨來對每一個機(jī)構(gòu)的電控部分進(jìn)行講解。從中分別來詳細(xì)展示運動模型、通信協(xié)議、PWM輸出和算法部分,從而讓你學(xué)會如何用MCU去控制每個部分機(jī)構(gòu)的運動。
不過在這之前,我會以STM32F407為例,先補(bǔ)充一些關(guān)于MCU的基本知識原理:
STM32系統(tǒng)架構(gòu)
STM32時鐘配置
GPIO原理
中斷NVIC與EXTI
GPIO是什么?
IO口是單片機(jī)除了特殊引腳之外的輸出輸入引腳,GPIO也是各大外設(shè)功能中的一種。之所以把GPIO單獨拿出來講解,是因為GPIO是IO口最基本的功能,在你初始化任何外設(shè)的功能的時候,除了都要使能時鐘以外,你基本都要先初始化GPIO的結(jié)構(gòu)體:
所以我們說,外設(shè)正常工作的激勵來源是時鐘信號,而外設(shè)的硬件環(huán)境是GPIO。
GPIO(General-purpose input/output),通用輸入輸出口,其電路原理圖如下圖所示:
我們在初始化它的結(jié)構(gòu)體的時候,通常有以下兩大要點:
GPIO的模式
5種輸入模式:
GPIO的輸入模式表示信息或者激勵從IO引腳獲得,比如按鍵檢測、ADC采集、PWM捕獲等。
①輸入浮空模式Floating
IO引腳不接任何上拉或下拉電阻,即在空閑狀態(tài)下IO引腳的電平狀態(tài)不確定。
②輸入上拉模式IPD
IO引腳接上拉電阻,即在空閑狀態(tài)下IO引腳的電平狀態(tài)為高。
③輸入下拉模式IPU
IO引腳接下拉電阻,即在空閑狀態(tài)下IO引腳的電平狀態(tài)為低。
④模擬輸入模式AIN
IO引腳作為模擬量采集輸入,如ADC,即不經(jīng)過TTL施密特觸發(fā)器進(jìn)行電平轉(zhuǎn)換成TTL格式。
⑤復(fù)用功能輸入
IO引腳復(fù)用(既有GPIO的功能也有其他外設(shè)功能)到其他外設(shè)上(比如串口功能外設(shè)),此時作為輸出RX引腳讀取外部數(shù)據(jù)信息。
4種輸出模式:
GPIO的輸出模式表示信息從IO引腳輸出,比如點亮LED燈、輸出PWM波等。
①開漏輸出模式DD
MCU內(nèi)信息從寄存器輸出,經(jīng)過N-MOS管到IO引腳。當(dāng)輸出為高電平時,N-MOS關(guān)閉,此時IO引腳電平僅由上拉或下拉電阻決定。
②開漏復(fù)用輸出模式AFDD
MCU內(nèi)信息從外設(shè)模塊輸出,經(jīng)過N-MOS管到IO引腳。當(dāng)輸出為高電平時,N-MOS關(guān)閉,此時IO引腳電平僅由上拉或下拉電阻決定。
③推挽輸出模式PP
MCU內(nèi)信息從寄存器輸出,經(jīng)過P-MOS管道IO引腳。當(dāng)輸出為低電平時,P-MOS關(guān)閉,此時IO引腳電平僅由上拉或下拉電阻決定。
④推挽復(fù)用輸出模式AFPP
MCU內(nèi)信息從外設(shè)模塊輸出,經(jīng)過P-MOS管道IO引腳。當(dāng)輸出為低電平時,P-MOS關(guān)閉,此時IO引腳電平僅由上拉或下拉電阻決定。
GPIO的輸出速度
GPIO輸出的速度有2MHZ、25MHZ、50MHZ、100MHZ。頻率表示輸出驅(qū)動電路的帶寬。設(shè)置GPIO的速度時要保證頻率(帶寬)大于驅(qū)動對象信號頻率(一般大于10倍以上)。
比如:串口波特率為115.2K,則用2M的速度即可,省點且噪聲小;CAN通信配置波特率為1MHZ,則用25MHZ以上可以,如果用2MHZ可能會導(dǎo)致失真。
一個點燈的例程:
因為是要點燈,假設(shè)這個燈是高電平點亮,即外部接地。所以設(shè)置GPIO模式為推挽輸出,這樣我程序里設(shè)高就能亮。(如果設(shè)置為開漏輸出,那么程序設(shè)高沒用,得看IO對應(yīng)引腳是被上拉還是下拉。)
總結(jié)
以上是生活随笔為你收集整理的搭建机器人电控系统——MCU基石——STM32 GPIO原理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: unity 手机重力迷宫(一)
- 下一篇: android qq登陆界面代码下载,【