一、 STM32的輸入輸出管腳有下面8種(4輸入+2輸出+2復(fù)用輸出)可能的配置:
① 浮空輸入_IN_FLOATING
② 帶上拉輸入_IPU
③ 帶下拉輸入_IPD
④ 模擬輸入_AIN
⑤ 開漏輸出_OUT_OD
⑥ 推挽輸出_OUT_PP
⑦ 復(fù)用功能的推挽輸出_AF_PP
⑧ 復(fù)用功能的開漏輸出_AF_OD
1.1 I/O口的輸出模式下,有3種輸出速度可選(2MHz、10MHz和50MHz),這個速度是指I/O口驅(qū)動電路的響應(yīng)速度而不是輸出信號的速度,輸出信號的速度與程序有關(guān)(芯片內(nèi)部在I/O口 的輸出部分安排了多個響應(yīng)速度不同的輸出驅(qū)動電路,用戶可以根據(jù)自己的需要選擇合適的驅(qū)動電路)。通過選擇速度來選擇不同的輸出驅(qū)動模塊,達(dá)到最佳的噪聲控制和降低功耗的目的。高頻的驅(qū)動電路,噪聲也高,當(dāng)不需要高的輸出頻率時,請選用低頻驅(qū)動電路,這樣非常有利于提高系統(tǒng)的EMI性能。當(dāng)然如果要輸出較高頻率的信號,但卻選用了較低頻率的驅(qū)動模塊,很可能會得到失真的輸出信號。
輸出速度又稱輸出驅(qū)動電路的響應(yīng)速度,可理解為:輸出驅(qū)動電路的帶寬,即一個驅(qū)動電路可以不失真地通過信號的最大頻率。
如果一個信號的頻率超過了驅(qū)動電路的響應(yīng)速度,就有可能信號失真。如果信號頻率為10MHz,而你配置了2MHz的帶寬,則10MHz的方波很可能就變成了正弦波。就好比是公路的設(shè)計時速,汽車速度低于設(shè)計時速時,可以平穩(wěn)地運行,如果超過設(shè)計時速就會顛簸,甚至翻車。
關(guān)鍵是: GPIO的引腳速度跟應(yīng)用相匹配,速度配置越高,噪聲越大,功耗越大。
帶寬速度高的驅(qū)動器耗電大、噪聲也大,帶寬低的驅(qū)動器耗電小、噪聲也小。使用合適的驅(qū)動器可以降低功耗和噪聲。
GPIO的引腳速度跟應(yīng)用匹配(推薦10倍以上)。比如:
1.1.1 對于串口,假如最大波特率只需115.2k,那么用2M的GPIO的引腳速度就夠了,既省電也噪聲小。
1.1.2 對于I2C接口,假如使用400k波特率,若想把余量留大些,那么用2M的GPIO的引腳速度或許不夠,這時可以選用10M的GPIO引腳速度。
1.1.3 對于SPI接口,假如使用18M或9M波特率,用10M的GPIO的引腳速度顯然不夠了,需要選用50M的GPIO的引腳速度。
1.2 GPIO口設(shè)為輸入時,輸出驅(qū)動電路與端口是斷開,所以輸出速度配置無意義。
1.3 在復(fù)位期間和剛復(fù)位后,復(fù)用功能未開啟,I/O端口被配置成浮空輸入模式。
1.4 所有端口都有外部中斷能力。為了使用外部中斷線,端口必須配置成輸入模式。
1.5 GPIO口的配置具有上鎖功能,當(dāng)配置好GPIO口后,可以通過程序鎖住配置組合,直到下次芯片復(fù)位才能解鎖。
二、GPIO的翻轉(zhuǎn)速度指:輸入/輸出寄存器的0 ,1 值反映到外部引腳(APB2上)高低電平的速度.手冊上指出GPIO最大翻轉(zhuǎn)速度可達(dá)18MHz。通過簡單的程序測試,用示波器觀察到的翻轉(zhuǎn)時間是綜合的時間,包括取指令的時間、指令執(zhí)行的時間、指令執(zhí)行后信號傳遞到寄存器的時間(這其中可能經(jīng)過很多環(huán)節(jié),比如AHB、APB、總線仲裁等),最后才是信號從寄存器傳輸?shù)揭_所經(jīng)歷的時間。如有上拉電阻,其阻值越大,RC延時越大,即邏輯電平轉(zhuǎn)換的速度越慢,功耗越大。
三、在STM32中如何配置片內(nèi)外設(shè)使用的IO端口
首先,一個外設(shè)經(jīng)過 ①配置輸入的時鐘和 ②初始化后即被激活(開啟);③如果使用該外設(shè)的輸入輸出管腳,則需要配置相應(yīng)的GPIO端口(否則該外設(shè)對應(yīng)的輸入輸出管腳可以做普通GPIO管腳使用);④再對外設(shè)進(jìn)行詳細(xì)配置。
對應(yīng)到外設(shè)的輸入輸出功能有下述三種情況:
① 外設(shè)對應(yīng)的管腳為輸出:需要根據(jù)外圍電路的配置選擇對應(yīng)的管腳為復(fù)用功能的推挽輸出或復(fù)用功能的開漏輸出。
② 外設(shè)對應(yīng)的管腳為輸入:則根據(jù)外圍電路的配置可以選擇浮空輸入、帶上拉輸入或帶下拉輸入。
③ ADC對應(yīng)的管腳:配置管腳為模擬輸入。
如果把端口配置成復(fù)用輸出功能,則引腳和輸出寄存器斷開,并和片上外設(shè)的輸出信號連接。將管腳配置成復(fù)用輸出功能后,如果外設(shè)沒有被激活,那么它的輸出將不確定。
四、 通用IO端口(GPIO)初始化
4.1 GPIO初始化
41.1 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | B | C, ENABLE):使能APB2總線外設(shè)時鐘;
41.2 RCC_ APB2PeriphResetCmd (RCC_APB2Periph_GPIOA | B | C, DISABLE):釋放GPIO復(fù)位。
4.2 置各個PIN端口(模擬輸入_AIN、輸入浮空_IN_FLOATING、輸入上拉_IPU、輸入下拉_IPD、開漏輸出_OUT_OD、推挽式輸出_OUT_PP、推挽式復(fù)用輸出_AF_PP、開漏復(fù)用輸出_AF_OD)。
4.3GPIO初始化完成。
五、 的GPIO操作函數(shù)
uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);//讀GPIO某一位的輸入
uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx);//讀GPIO的輸入
uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);//讀GPIO某一位的輸出
uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx);//讀GPIO的輸出
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);//將GPIO的某個位置位
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);//將GPIO的某個位復(fù)位
void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);//寫GPIO的某個位
void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);//寫GPIO
六、管腳的復(fù)用功能 重映射
1、復(fù)用功能:內(nèi)置外設(shè)是與I/O口共用引出管腳(不同的功能對應(yīng)同一管腳)
STM32 所有內(nèi)置外設(shè)的外部引腳都是與標(biāo)準(zhǔn)GPIO引腳復(fù)用的,如果有多個復(fù)用功能模塊對應(yīng)同一個引腳,只能使能其中之一,其它模塊保持非使能狀態(tài)。
2、重映射功能:復(fù)用功能的引出腳可以通過重映射,從不同的I/O管腳引出,即復(fù)用功 能的引出腳位是可通過程序改變到其他的引腳上!
直接好處:PCB電路板的設(shè)計人員可以在需要的情況下,不必把某些信號在板上繞一大圈完成聯(lián)接,方便了PCB的設(shè)計同時潛在地減少了信號的交叉干擾。
如:USART1: 0: 沒有重映像(TX/PA9,RX/PA10); 1: 重映像(TX/PB6,RX/PB7)。
(參考AFIO_MAPR寄存器介紹)[0,1為一寄存器的bit值]
【注】 下述復(fù)用功能的引出腳具有重映射功能:
- 晶體振蕩器的引腳在不接晶體時,可以作為普通I/O口
- CAN模塊; - JTAG調(diào)試接口;- 大部分定時器的引出接口; - 大部分USART引出接口
- I2C1的引出接口; - SPI1的引出接口;
舉例:對于STM32F103VBT6,47引腳為PB10,它的復(fù)用功能是I2C2_SCL和 USART3_TX,表示在上電之后它的默認(rèn)功能為PB10,而I2C2的SCL和USART3的TX為它的復(fù)用功能;另外在TIM2的引腳重映射后,TIM2_CH3也成為這個引腳的復(fù)用功能。
(1)要使用STM32F103VBT6的47、48腳的USART3功能,則需要配置47腳為復(fù)用推挽輸出或復(fù)用開漏輸出,配置48腳為某種輸入模式,同時使能USART3并保持I2C2的非使能狀態(tài)。
(2)使用STM32F103VBT6的47腳作為TIM2_CH3,則需要對TIM2進(jìn)行重映射,然后再按復(fù)用功能的方式配置對應(yīng)引腳。
上一篇:ucosi操作系統(tǒng)移植到STM32
下一篇:STM32的庫如何實現(xiàn)對同一組IO口的一部分引腳進(jìn)行讀寫
推薦閱讀
史海拾趣
2014年5月19日,ConnectBlue公司被全球領(lǐng)先的定位與無線通信技術(shù)公司u-blox收購。這一收購為ConnectBlue公司帶來了新的發(fā)展機遇和更廣闊的市場空間。在u-blox的支持下,ConnectBlue公司得以進(jìn)一步加大研發(fā)投入,拓展產(chǎn)品線,提升產(chǎn)品品質(zhì)和服務(wù)水平。同時,公司還借助u-blox的全球銷售網(wǎng)絡(luò)和品牌影響力,進(jìn)一步開拓國際市場,實現(xiàn)了新的跨越式發(fā)展。
隨著航空業(yè)的逐漸發(fā)展,福特汽車公司意識到航空通信技術(shù)的重要性。在20世紀(jì)30年代,福特開始投資研發(fā)航空無線電通信系統(tǒng),旨在提高飛行中的通信效率和安全性。這一舉措不僅促進(jìn)了福特在航空技術(shù)領(lǐng)域的進(jìn)一步拓展,也為后來的航空通信標(biāo)準(zhǔn)制定提供了參考。
在20世紀(jì)20年代,亨利·福特不僅專注于汽車制造業(yè),還展現(xiàn)了對航空技術(shù)的濃厚興趣。他資助了威廉·布什納爾·斯道特(Willam Bushnell Stout)的飛機研發(fā)項目,這標(biāo)志著福特向航空領(lǐng)域的初步探索。斯道特設(shè)計的福特三發(fā)飛機(后被稱為“鐵皮鵝”)雖未直接成為商業(yè)成功的典范,但它為福特汽車公司積累了寶貴的航空技術(shù)經(jīng)驗,也為后續(xù)可能的航空通信項目奠定了基礎(chǔ)。
隨著技術(shù)的不斷進(jìn)步和市場需求的日益增長,CapXon公司開始積極拓展市場,尋求更廣闊的發(fā)展空間。公司不僅在臺灣本土市場取得了顯著的成果,還逐步將產(chǎn)品推向國際市場,與全球眾多知名電子品牌建立了長期穩(wěn)定的合作關(guān)系。同時,CapXon還注重品牌塑造,通過一系列的市場推廣活動,提高了品牌知名度和美譽度,進(jìn)一步鞏固了公司在行業(yè)中的地位。
面對日益增長的全球市場需求,Holmes Electronics決定實施全球化戰(zhàn)略。他們首先在亞洲建立了生產(chǎn)基地,利用當(dāng)?shù)氐某杀緝?yōu)勢和供應(yīng)鏈資源,大幅提高生產(chǎn)效率并降低成本。隨后,公司又在歐洲和美國設(shè)立了研發(fā)中心和銷售網(wǎng)絡(luò),以更好地服務(wù)當(dāng)?shù)乜蛻舨⒉蹲绞袌鰴C會。這一全球化戰(zhàn)略不僅使Holmes Electronics的產(chǎn)品遍布全球,還增強了公司的市場響應(yīng)能力和品牌影響力。
凌陽16位單片機學(xué)習(xí)的好資料。歡迎大家下載!凌陽16位單片機是臺灣凌陽公司生產(chǎn)的性價比很高的一款十六位單片機。,該芯片擁有8路10位精度的AD,其中1路AD為音頻轉(zhuǎn)換通道,并且內(nèi)置有自動增益電路。這為實現(xiàn)語音錄入提供了方便的硬件 ...… 查看全部問答∨ |
|
平臺:pxa270+wce5.0 目前想移植T9輸入法了,但沒有加載,我想應(yīng)該是注冊表沒有設(shè)置對,我在platform.reg中添加以下設(shè)置: [HKEY_CURRENT_USER\\Keyboard Layout\\Preload\\1] @=\"e0010804\" [HKEY_LOCAL_MACHINE\\System\\CurrentControlSet ...… 查看全部問答∨ |
|
我看datasheet中寫道prot0的GPIO中斷和p2.13腳都會觸發(fā)EINT3中斷,但是現(xiàn)在程序中總是觸發(fā)不了中斷,是不是我弄錯了,希望大家給解釋一下… 查看全部問答∨ |
Vista里ActiveSync沒了,成了Mobile Device Center。 原來程序里用ADOFILTR中的DEVICETODESKTOP轉(zhuǎn)CDB數(shù)據(jù), 現(xiàn)在怎么辦??? … 查看全部問答∨ |
【為C2000做貢獻(xiàn)】合眾達(dá)電子研討會培訓(xùn)講義電子版 合眾達(dá)電子研討會培訓(xùn)講義電子版,非常好的講義,很多。300多頁吧,希望大家喜歡;… 查看全部問答∨ |
用兩個CD4094分時復(fù)用控制7個數(shù)碼管和7個按鍵怎么處理 兩個CD4094一個控制段選,一個控制位選,控制位選的4094的Q1到Q7還接上7個按鍵,然后把按鍵連起來一個IO口控制,想問,怎么樣處理數(shù)碼管位選和按鍵沖突的?我寫的程序數(shù)碼管管能正常使用,但是按鍵用不。我還是個菜鳥,請各位高手指教一下,或者給 ...… 查看全部問答∨ |
DIY數(shù)字電源中,由于電路設(shè)計的欠合理,恰巧又遇到買的元件不是設(shè)計指定的元件,致使接連燒壞CPU。 (相關(guān)電路參見“全數(shù)字電源”有關(guān)貼子) 開始懷疑是耦合變壓器反饋到初的高壓脈沖引起的,隨即買了高速光耦合器等IC做實驗。以下僅帖兩圖。 1 ...… 查看全部問答∨ |
意見征集---你覺得STC系列的51單片機應(yīng)該歸入那一類資源? 意見征集---你覺得STC系列的51單片機應(yīng)該歸入那一類資源? 最近EEWORLD下載中心的“捉蟲行動一:單片機問題資源大作戰(zhàn)!”活動正在如火如荼的進(jìn)行,大家參與的積極性非常高。目前已經(jīng)基本上把不屬于單片機類的資源給剔 ...… 查看全部問答∨ |
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦
- 電動車電池成本降一半,續(xù)航卻減一半?寧德時代新電池能突圍嗎?
- 從“不可修”到可拆可換:CTP電池的售后怎么辦?
- 區(qū)域控制器ZCU國產(chǎn)化:從物料齊全到系統(tǒng)話語權(quán)
- 總額超260億-盤點全球移動機器人領(lǐng)域融資TOP10企業(yè)
- 安森美CEO談?wù)撾妱悠嚺cAI服務(wù)器前景
- LILYGO T-LoRa Pager:復(fù)古造型與前沿技術(shù)結(jié)合的物聯(lián)網(wǎng)手持設(shè)備
- VS Code+PlatformIO搭建ESP32 Arduino開發(fā)環(huán)境
- Esp32環(huán)境離線搭建參考
- ESP32使用舵機庫時的錯誤
- ESP32 S3接ST7789屏幕線序
- 特斯拉模塊化布線專利:讓機器人更易組裝 為量產(chǎn)Model Y做準(zhǔn)備
- 瓜子二手車居然用上了機器人?
- 華為發(fā)布2025十大趨勢預(yù)測:5G、AI、智能技術(shù)大量普及
- “運營商的命根子”的5G基站,為何以租代買計劃中止?
- 5G時代平板電腦是否還能迎來第二春?
- 工業(yè)機器人以9%極速增長 到2030年將影響1570萬人就業(yè)
- 量產(chǎn)在即 固態(tài)電池技術(shù)發(fā)展現(xiàn)狀解讀
- 兆易創(chuàng)新推出全新SPI NOR Flash —GD25WDxxCK產(chǎn)品系列
- 是德科技與 CharIN 攜手,致力于建立電動汽車充電全球標(biāo)準(zhǔn)
- 貿(mào)澤2018年擴(kuò)大其分銷產(chǎn)品陣容,新增51家供應(yīng)商