GD32F303固件庫開發(fā)(5)----GPIO輸出模式,速率測試、開漏和輸出說明
@TOC
概述
以STM32CUBEMX創(chuàng)建STM32F103工程,同時(shí)移植在GD32F303中,同時(shí)通過GD32303C_START開發(fā)板內(nèi)進(jìn)行驗(yàn)證。需要樣片的可以加Qun申請:615061293。
樣品申請
https://www.wjx.top/vm/wFGhGPF.aspx#
視頻教學(xué)
聽不到聲音的請點(diǎn)擊跳轉(zhuǎn)進(jìn)行觀看。?https://www.bilibili.com/video/BV1J3411N7u8/

csdn課程
課程更加詳細(xì)。?https://download.csdn.net/course/detail/37144
硬件準(zhǔn)備
這里準(zhǔn)備了2塊開發(fā)板進(jìn)行驗(yàn)證,分別是GD32303C_START開發(fā)板。?

開發(fā)板管腳配置
在GD32303C_START中的LED管腳配置如下所示。?

不同速率對應(yīng)的波形
以PC3為例,在推挽輸出無上下拉情況下,輸出速率主要有4種,一般的低端MCU只有3種,沒有Very High。 下面是ST的配置圖。?

?在固件庫中,定義如下所示。?

GPIO_OSPEED_2MHZ速率

GPIO_OSPEED_10MHZ速率

GPIO_OSPEED_50MHZ速率

GPIO_OSPEED_MAX速率

可以看到,在不同速率下,端口的反應(yīng)速度不一樣,設(shè)置最大輸出速率越大,響應(yīng)越快,對應(yīng)的噪聲也就越大。
輸出方式

?

?在上圖中,P-MOS帶了一個(gè)?,說明是低電平導(dǎo)通。?

上圖是GPIO的示意圖,有輸入和輸出,如果簡化為輸出,則如下所示。?

模擬文件下載
https://download.csdn.net/download/qq_24312945/85250172
推挽輸出
推挽輸出的內(nèi)部電路大概是下圖這個(gè)樣子,由一個(gè)P-MOS和一個(gè)N-MOS組合而成,同一時(shí)間只有一個(gè)管子能夠進(jìn)行導(dǎo)通。?

?當(dāng)輸出高電平時(shí)候,P-MOS導(dǎo)通,N-MOS截至,此時(shí)電源電流入R5。?

?當(dāng)輸出低電平時(shí)候,N-MOS導(dǎo)通,P-MOS截至,此時(shí)電流流入R5的為0。?

線與
推挽輸出高電平與電源電壓基本上沒有壓差 高低電平的驅(qū)動能力較強(qiáng),推挽輸出的電流都能達(dá)到幾十mA。 但是無法進(jìn)行線與操作,做進(jìn)行線與操作,那么電源和地就會短路,因?yàn)閙os管電阻很小。 看下圖可以得知,電流通過Q3的P-MOS流到Q2的N-MOS,最終回到地。?

最后
以上的代碼會在Q_qun里分享。Q_qun:615061293。 或者關(guān)注『記帖』,持續(xù)更新文章和學(xué)習(xí)資料!?

開漏輸出
開漏輸出又叫漏極開漏輸出簡化后可以看作如下的示意圖。?

?若還是使用上面推挽的電路圖,當(dāng)N-MOS為低電平時(shí)候,那么他的輸出就是一個(gè)高阻態(tài)。 可以看到,R5沒有電流通過,電壓也是接近于0,所以GPIO無法對外輸出高電平。?

?此時(shí)需要增加一個(gè)上拉,這樣的話上拉的電流就會流出去。 所以在開漏輸出情況下,需要增加一個(gè)上拉才能進(jìn)行輸出高電平。?

?對于輸出低電平,他和推挽輸出差不多,電流通過N-MOS流到地中。?

?上圖是沒有增加上拉,但是開漏輸出模式都需要增加,增加上拉之后如下圖所示。 電流通過N-MOS流回地中。?

輸出電壓
由于推挽輸出在輸出的時(shí)候是通過單片機(jī)內(nèi)部的電壓,所以他的電壓是不能改變的。 但是開漏輸出是通過外部上拉的電壓,所以可以改變開漏輸出模式下的電壓大小。 下圖是當(dāng)上拉為5V時(shí)候,也是可以驅(qū)動出去的,這個(gè)上拉電壓最大值需要看單片機(jī)的耐壓。?
