概述
以STM32CUBEMX創(chuàng)建STM32F103工程,同時(shí)移植在GD32F303中,同時(shí)通過(guò)GD32303C_START開(kāi)發(fā)板內(nèi)進(jìn)行驗(yàn)證。 需要樣片的可以加Qun申請(qǐng):615061293。
硬件準(zhǔn)備
這里準(zhǔn)備了2塊開(kāi)發(fā)板進(jìn)行驗(yàn)證,分別是GD32303C_START開(kāi)發(fā)板。
開(kāi)發(fā)板管腳配置
在GD32303C_START中的LED管腳配置如下所示。
不同速率對(duì)應(yīng)的波形
以PC3為例,在推挽輸出無(wú)上下拉情況下,輸出速率主要有4種,一般的低端MCU只有3種,沒(méi)有Very High。 下面是ST的配置圖。
在固件庫(kù)中,定義如下所示。
LOW速率
Medium速率
High速率
Very High速率
可以看到,在不同速率下,端口的反應(yīng)速度不一樣,設(shè)置最大輸出速率越大,響應(yīng)越快,對(duì)應(yīng)的噪聲也就越大。
輸出方式
在上圖中,P-MOS帶了一個(gè)?,說(shuō)明是低電平導(dǎo)通。
上圖是GPIO的示意圖,有輸入和輸出,如果簡(jiǎn)化為輸出,則如下所示。
模擬文件下載
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。
線與
推挽輸出高電平與電源電壓基本上沒(méi)有壓差 高低電平的驅(qū)動(dòng)能力較強(qiáng),推挽輸出的電流都能達(dá)到幾十mA。 但是無(wú)法進(jìn)行線與操作,做進(jìn)行線與操作,那么電源和地就會(huì)短路,因?yàn)閙os管電阻很小。 看下圖可以得知,電流通過(guò)Q3的P-MOS流到Q2的N-MOS,最終回到地。
開(kāi)漏輸出
開(kāi)漏輸出又叫漏極開(kāi)漏輸出簡(jiǎn)化后可以看作如下的示意圖。
若還是使用上面推挽的電路圖,當(dāng)N-MOS為低電平時(shí)候,那么他的輸出就是一個(gè)高阻態(tài)。 可以看到,R5沒(méi)有電流通過(guò),電壓也是接近于0,所以GPIO無(wú)法對(duì)外輸出高電平。
此時(shí)需要增加一個(gè)上拉,這樣的話上拉的電流就會(huì)流出去。 所以在開(kāi)漏輸出情況下,需要增加一個(gè)上拉才能進(jìn)行輸出高電平。
對(duì)于輸出低電平,他和推挽輸出差不多,電流通過(guò)N-MOS流到地中。
上圖是沒(méi)有增加上拉,但是開(kāi)漏輸出模式都需要增加,增加上拉之后如下圖所示。 電流通過(guò)N-MOS流回地中。
輸出電壓
由于推挽輸出在輸出的時(shí)候是通過(guò)單片機(jī)內(nèi)部的電壓,所以他的電壓是不能改變的。 但是開(kāi)漏輸出是通過(guò)外部上拉的電壓,所以可以改變開(kāi)漏輸出模式下的電壓大小。 下圖是當(dāng)上拉為5V時(shí)候,也是可以驅(qū)動(dòng)出去的,這個(gè)上拉電壓最大值需要看單片機(jī)的耐壓。
審核編輯:湯梓紅
-
開(kāi)發(fā)板
+關(guān)注
關(guān)注
25文章
5129瀏覽量
98325 -
GPIO
+關(guān)注
關(guān)注
16文章
1217瀏覽量
52434 -
開(kāi)漏輸出
+關(guān)注
關(guān)注
0文章
34瀏覽量
7354 -
stm32cubemx
+關(guān)注
關(guān)注
5文章
284瀏覽量
15049 -
推挽輸出
+關(guān)注
關(guān)注
0文章
42瀏覽量
6534
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
STM32CUBEMX開(kāi)發(fā)GD32F303(6)----GPIO輸入函數(shù)說(shuō)明
![<b class='flag-5'>STM32CUBEMX</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>GD32F303</b>(6)----<b class='flag-5'>GPIO</b>輸入函數(shù)<b class='flag-5'>說(shuō)明</b>](https://file.elecfans.com/web2/M00/7D/B1/pYYBAGN9lquADVPRAAdK0uCRbS8927.jpg)
STM32CUBEMX開(kāi)發(fā)GD32F303(8)----USART收發(fā)配置
![<b class='flag-5'>STM32CUBEMX</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>GD32F303</b>(8)----USART收發(fā)配置](https://file.elecfans.com/web2/M00/7D/B1/pYYBAGN9lquADVPRAAdK0uCRbS8927.jpg)
STM32CUBEMX開(kāi)發(fā)GD32F303(9)----USART通過(guò)DMA收發(fā)
![<b class='flag-5'>STM32CUBEMX</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>GD32F303</b>(9)----USART通過(guò)DMA收發(fā)](https://file.elecfans.com/web2/M00/7E/46/poYBAGOEerqAe0LjAADILAsHIgY275.png)
STM32CUBEMX開(kāi)發(fā)GD32F303(1)----前期準(zhǔn)備與燒錄
![<b class='flag-5'>STM32CUBEMX</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>GD32F303</b>(1)----前期準(zhǔn)備與燒錄](https://file.elecfans.com/web2/M00/7D/00/poYBAGN8kKuABpMWAAHL0NzvwKY406.jpg)
STM32CUBEMX開(kāi)發(fā)GD32F303(3)----點(diǎn)亮LED
![<b class='flag-5'>STM32CUBEMX</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>GD32F303</b>(3)----點(diǎn)亮LED](https://file.elecfans.com/web2/M00/7D/B1/pYYBAGN9lquADVPRAAdK0uCRbS8927.jpg)
GD32F303固件庫(kù)開(kāi)發(fā)(5)----GPIO輸出模式,速率測(cè)試、開(kāi)漏和輸出說(shuō)明
![<b class='flag-5'>GD32F303</b>固件庫(kù)<b class='flag-5'>開(kāi)發(fā)</b>(5)----<b class='flag-5'>GPIO</b><b class='flag-5'>輸出</b><b class='flag-5'>模式</b>,<b class='flag-5'>速率</b><b class='flag-5'>測(cè)試</b>、<b class='flag-5'>開(kāi)</b><b class='flag-5'>漏</b>和<b class='flag-5'>輸出</b><b class='flag-5'>說(shuō)明</b>](https://file.elecfans.com/web2/M00/7D/B1/pYYBAGN9lquADVPRAAdK0uCRbS8927.jpg)
STM32CUBEMX開(kāi)發(fā)GD32F303(5)----GPIO輸出函數(shù)說(shuō)明
![<b class='flag-5'>STM32CUBEMX</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>GD32F303</b>(5)----<b class='flag-5'>GPIO</b><b class='flag-5'>輸出</b>函數(shù)<b class='flag-5'>說(shuō)明</b>](https://file.elecfans.com/web2/M00/7D/B1/pYYBAGN9lquADVPRAAdK0uCRbS8927.jpg)
STM32CUBEMX開(kāi)發(fā)GD32F303(10)----雙ADC輪詢(xún)模式掃描多個(gè)通道
![<b class='flag-5'>STM32CUBEMX</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>GD32F303</b>(10)----雙ADC輪詢(xún)<b class='flag-5'>模式</b>掃描多個(gè)通道](https://file.elecfans.com/web2/M00/7E/46/poYBAGOEerqAe0LjAADILAsHIgY275.png)
STM32CUBEMX開(kāi)發(fā)GD32F303(11)----ADC在DMA模式下掃描多個(gè)通道
![<b class='flag-5'>STM32CUBEMX</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>GD32F303</b>(11)----ADC在DMA<b class='flag-5'>模式</b>下掃描多個(gè)通道](https://file.elecfans.com/web2/M00/7E/46/poYBAGOEerqAe0LjAADILAsHIgY275.png)
STM32CUBEMX開(kāi)發(fā)GD32F303(12)----輸出PWM及修改PWM頻率與占空比
![<b class='flag-5'>STM32CUBEMX</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>GD32F303</b>(12)----<b class='flag-5'>輸出</b>PWM及修改PWM頻率與占空比](https://file.elecfans.com/web2/M00/7F/44/pYYBAGOG-mCABL1OAABYRteGsss251.png)
GD32F303固件庫(kù)開(kāi)發(fā)(12)----輸出PWM及修改PWM頻率與占空比
![<b class='flag-5'>GD32F303</b>固件庫(kù)<b class='flag-5'>開(kāi)發(fā)</b>(12)----<b class='flag-5'>輸出</b>PWM及修改PWM頻率與占空比](https://file.elecfans.com/web2/M00/7F/44/pYYBAGOG-mCABL1OAABYRteGsss251.png)
STM32CUBEMX開(kāi)發(fā)GD32F303(14)----IIC之配置OLED
![<b class='flag-5'>STM32CUBEMX</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>GD32F303</b>(14)----IIC之配置OLED](https://file.elecfans.com/web2/M00/7E/B7/poYBAGOG-mGAZl3hABOR8D6E0tU278.png)
STM32CUBEMX開(kāi)發(fā)GD32F303(15)----外部中斷EXTI
![<b class='flag-5'>STM32CUBEMX</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>GD32F303</b>(15)----外部中斷EXTI](https://file1.elecfans.com/web2/M00/8D/DA/wKgZomTA0BuADZlYAAtosFo6QvA005.png)
STM32CUBEMX開(kāi)發(fā)GD32F303
![<b class='flag-5'>STM32CUBEMX</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>GD32F303</b>](https://file.elecfans.com/web2/M00/7E/B7/poYBAGOG-mGAZl3hABOR8D6E0tU278.png)
STM32CUBEMX開(kāi)發(fā)GD32F303(17)----內(nèi)部Flash讀寫(xiě)
![<b class='flag-5'>STM32CUBEMX</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>GD32F303</b>(17)----內(nèi)部Flash讀寫(xiě)](https://file.elecfans.com/web2/M00/7E/B7/poYBAGOG-mGAZl3hABOR8D6E0tU278.png)
評(píng)論