GPIO 即通用輸入輸出口。凡事都要熟悉,熟能生巧。一定要掌握MDK軟件的工程操作方法。
對于GPIO的操作。
Project里面要有以下幾個文件夾(開發(fā)之前需要包含相應的庫文件,這里默認已經(jīng)包含)
STEP BY STEP(以按鍵和LED燈為例):
1.在USER文件夾里新建對應功能的C文件和H文件(這里對應 Key.c Key.h LED.c LED.h)其中C文件用來進行對應外設的硬件配置,H文件是申明對應C文件里面定義的配置函數(shù)。注意H文件開頭要檢查以下時候需要檢查以下重復定義的情況, 如下:
#ifndef __EXTI_H
#define __EXTI_H
2.下面重點總結(jié)下功能C文件里面對應外設的硬件配置過程。
STEP1:建立數(shù)據(jù)結(jié)構(gòu),配置工作時鐘
STM32這種單片機和51單片機的很大不同就是,對應不同功能的硬件有相應的工作時鐘與其對應。這個時鐘是必不可少的,就像人的心臟一樣。
先建立數(shù)據(jù)結(jié)構(gòu)GPIO_InitTypeDef GPIO_InitStructure;
然后配置時鐘,RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC, ENABLE);
可能每次你都不清楚,為什么硬件配置要那么來,從庫開發(fā)的角度來說,要學會去看庫的幫助文件,打開之后找到Data Structure這一塊,找到對應的GPIO的數(shù)據(jù)結(jié)構(gòu)。
而庫開發(fā)不同關于寄存器開發(fā)的地方是,庫是間接的用數(shù)據(jù)結(jié)構(gòu)去填充寄存器。所以首先得要有這個對應的數(shù)據(jù)結(jié)構(gòu),也就是這里的 GPIO_InitStructure;
打開幫助中GPIO_InitTypeDef 這個結(jié)構(gòu)體,里面的變量結(jié)構(gòu)就可以看出來,分別是:管腳(pin),速度(speed),工作模式(Mode)
00091 typedef struct
00092 {
00093 uint16_t GPIO_Pin; /*!< Specifies the GPIO pins to be configured.
00094 This parameter can be any value of @ref GPIO_pins_define */
00095
00096 GPIOSpeed_TypeDef GPIO_Speed; /*!< Specifies the speed for the selected pins.
00097 This parameter can be a value of @ref GPIOSpeed_TypeDef */
00098
00099 GPIOMode_TypeDef GPIO_Mode; /*!< Specifies the operating mode for the selected pins.
00100 This parameter can be a value of @ref GPIOMode_TypeDef */
00101 }GPIO_InitTypeDef;
然后依照每個變量的值的情況進行賦值如:GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;其實在GPIO_InitStructure結(jié)構(gòu)體中的變量都是枚舉型的,也就是說它的值都是一定的,是個常數(shù)。
void GPIO_Init
(
GPIO_TypeDef *
GPIOx,
GPIO_InitTypeDef*
GPIO_InitStruct
)
2.初始化寄存器(數(shù)據(jù)結(jié)構(gòu)映射到寄存器中)
到這里還沒有好,這一步僅僅是把你申明的一個結(jié)構(gòu)體變量的每個部分確定了,還沒有映射到寄存器中去,那么怎么映射到寄存器中去呢?庫開發(fā)早就已經(jīng)設計了一個映射的功能函數(shù)在幫助里面可以看到,這個函數(shù)的用法如:GPIO_Init(GPIOC, &GPIO_InitStructure);
View Code
View Code
結(jié)論:
GPIO的設置分為四步
1.申明結(jié)構(gòu)體 GPIO_InitTypeDef GPIO_InitStructure;
2.設置時鐘 RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC, ENABLE);
3.結(jié)構(gòu)體賦值 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
4.初始化寄存器 GPIO_Init(GPIOC, &GPIO_InitStructure);
設置多個GPIO的時候,如果Mode和Speed都是一樣的,就只可以設置一次就行。
參考:http://blog.chinaaet.com/cpb0508/p/5100018550
上一篇:STM32 GPIO使用超強總結(jié)
下一篇:STM32 的gpio mode set 詳解
推薦閱讀
史海拾趣
為了進一步提升公司的競爭力和市場份額,Carlisle Interconnect Components公司積極尋求與產(chǎn)業(yè)鏈上下游企業(yè)的戰(zhàn)略合作。通過與原材料供應商、設備制造商以及終端客戶的緊密合作,公司實現(xiàn)了產(chǎn)業(yè)鏈的整合和優(yōu)化。這種合作模式不僅降低了公司的生產(chǎn)成本和風險,更提高了產(chǎn)品的質(zhì)量和交付速度,為公司贏得了更多的競爭優(yōu)勢。
- 創(chuàng)業(yè)初期:
- 描述Clulite公司的創(chuàng)始人或核心團隊如何識別電子行業(yè)中的某個市場機遇。
- 講述他們是如何籌集初始資金,設立公司,并開發(fā)出第一款產(chǎn)品或解決方案的。
- 可以提及公司在初創(chuàng)階段面臨的挑戰(zhàn),如技術(shù)難題、市場競爭等。
- 技術(shù)創(chuàng)新:
- 講述Clulite如何通過研發(fā)創(chuàng)新,推出了一款顛覆性的產(chǎn)品或技術(shù),從而獲得了市場認可。
- 詳細描述這一創(chuàng)新過程,包括研發(fā)團隊的努力、關鍵技術(shù)的突破等。
- 提及這一創(chuàng)新如何幫助公司在市場上取得了競爭優(yōu)勢。
- 市場拓展:
- 描述Clulite如何逐步擴大市場份額,從地區(qū)市場走向全國乃至國際市場。
- 可以講述公司如何建立銷售網(wǎng)絡、與合作伙伴建立合作關系,以及參與行業(yè)展會等活動來推廣品牌和產(chǎn)品。
- 提及公司在市場拓展過程中遇到的挑戰(zhàn)和應對策略。
- 品質(zhì)管理:
- 講述Clulite如何注重產(chǎn)品質(zhì)量和客戶體驗,通過嚴格的質(zhì)量控制流程來提升產(chǎn)品可靠性。
- 描述公司如何建立完善的售后服務體系,為客戶提供及時、專業(yè)的支持。
- 提及這些舉措如何幫助公司贏得了客戶的信任和口碑。
- 可持續(xù)發(fā)展:
- 講述Clulite如何關注環(huán)境保護和社會責任,推動公司的可持續(xù)發(fā)展。
- 描述公司如何采取環(huán)保措施,減少生產(chǎn)過程中的污染排放。
- 提及公司如何參與社會公益事業(yè),回饋社會。
請注意,這些故事需要根據(jù)Clulite公司的實際情況進行調(diào)整和補充。如果你需要更具體的內(nèi)容,建議查閱Clulite公司的官方網(wǎng)站、新聞報道或行業(yè)分析報告,以獲取更詳細的信息和數(shù)據(jù)。
Applied Micro Circuits Corp(AMCC)是一家半導體公司,主要從事高性能處理器和高速互連解決方案的設計和制造。以下是關于AMCC公司發(fā)展的五個相關故事:
公司成立與早期發(fā)展:AMCC公司于1979年由Hemant Kanakia等人在美國加利福尼亞州的圣塔克拉拉創(chuàng)立。公司最初專注于設計和制造用于通信和數(shù)據(jù)中心應用的集成電路芯片。在成立初期,AMCC致力于開發(fā)高性能、低功耗的處理器和互連解決方案,以滿足不斷增長的通信市場需求。
技術(shù)創(chuàng)新與產(chǎn)品發(fā)布:AMCC公司在技術(shù)創(chuàng)新方面處于行業(yè)領先地位。公司持續(xù)投入研發(fā),并推出了一系列創(chuàng)新產(chǎn)品。1997年,AMCC發(fā)布了第一款64位PowerPC處理器,開創(chuàng)了其在高性能處理器市場的先河。隨后,公司不斷推出新一代的處理器產(chǎn)品,包括PowerPC、ARM等系列,以滿足不同客戶的需求。
業(yè)務拓展與市場擴張:隨著時間的推移,AMCC不斷拓展其業(yè)務范圍和市場覆蓋。公司不僅在通信領域取得了成功,還逐漸進軍數(shù)據(jù)中心、云計算、存儲等新興領域。AMCC通過與各大客戶和合作伙伴的緊密合作,擴大了產(chǎn)品的市場份額和影響力。
收購與整合:AMCC通過一系列收購和整合,加強了自身的技術(shù)實力和市場競爭力。公司收購了一些在特定領域具有核心技術(shù)的公司,如Tahoe Networks(2004年)、3ware(2005年)、Mindspeed Technologies(2014年)等。這些收購使得AMCC得以快速擴大產(chǎn)品線,并加速了公司在新興市場的布局。
英特爾收購:2016年,英特爾公司宣布以約17億美元的價格收購AMCC。這一交易使得AMCC成為英特爾旗下的子公司,英特爾得以借助AMCC在通信和數(shù)據(jù)中心領域的技術(shù)優(yōu)勢和客戶資源,進一步拓展其在半導體行業(yè)的地位。此次收購也標志著AMCC作為獨立實體的終結(jié),但其在半導體行業(yè)的技術(shù)貢獻和市場影響將持續(xù)延續(xù)。
這些故事展示了AMCC公司在技術(shù)創(chuàng)新、產(chǎn)品發(fā)布、業(yè)務拓展、收購整合等方面的發(fā)展歷程,以及其作為半導體行業(yè)重要參與者的地位和影響力。
長江連接器(CJT)公司自創(chuàng)立之初,就致力于電子連接器的研發(fā)、生產(chǎn)和銷售。公司憑借對連接器技術(shù)的深入研究和理解,不斷積累技術(shù)經(jīng)驗,逐漸在連接器領域建立了自己的技術(shù)壁壘。在初創(chuàng)階段,長江連接器就注重產(chǎn)品質(zhì)量和技術(shù)創(chuàng)新,通過引進先進的生產(chǎn)設備和技術(shù)人才,不斷提高產(chǎn)品的性能和可靠性。
隨著技術(shù)的不斷積累和市場的不斷擴大,長江連接器開始積極拓展國內(nèi)外市場。公司通過與國內(nèi)外知名企業(yè)的合作,將產(chǎn)品廣泛應用于消費類電子、電氣電子、薄膜開關、LED顯示器屏/燈飾、家用電器、電腦及電腦周邊、通訊設備等領域。同時,長江連接器注重品牌形象的塑造和推廣,通過參加各類行業(yè)展會、舉辦技術(shù)交流會等方式提升品牌知名度和美譽度。
Diodes Incorporated公司成立于1970年,其初衷是致力于半導體技術(shù)的研發(fā)和生產(chǎn)。在創(chuàng)立初期,公司面臨著來自行業(yè)巨頭的激烈競爭,但憑借對技術(shù)的深入理解和市場需求的敏銳洞察,Diodes Incorporated逐漸在市場中找到了自己的定位。公司專注于生產(chǎn)高品質(zhì)、特定應用的半導體產(chǎn)品,逐漸在消費電子、計算機、通信等領域建立了良好的聲譽。
也許大家在看到“披露外商半導體公司在華設立研發(fā)中心的居心?”這個標題時,會覺得博主是個憤青,可是我實在不知道用什么標題了。請大家將就吧。 10年前,當我剛進入半導體產(chǎn)業(yè)時,我對半導體是七竊通了六竊。 筆者在上篇“外企在華設立研發(fā)中心 ...… 查看全部問答∨ |
現(xiàn)象: 在網(wǎng)上下載的1138的tft2.4的例子同一型號的屏在8962上就運行不起來 sd_FAT32驅(qū)動的例子也在我的板子上運行不起來 但是針對8962的例子就完全可以 時鐘頻率(分頻方式都一樣)、i/o差不多什么都一樣的,具體會有什么不 ...… 查看全部問答∨ |
請問一下各位高手,利用DeviceEmulatorBSP.msi怎么制作自己需要的SDK并包含有模擬器??? 網(wǎng)上找了一些資料,但是制作出來的SDK無法彈出模擬器出來!不知道怎么使用?!? 查看全部問答∨ |
|
下面是我的一段測試代碼: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO.Ports; namespac ...… 查看全部問答∨ |
ARM CPU的工作模式: 1.User:該模式為Unprivileged modes,該模式下的程序不能訪問受保護的系統(tǒng)資源,不能更改CPU工作模式。如果需要跳出該模式,程序需要拋出一個異常(Exception),使CPU進入\"Exception\"模式。\"User\"模式下可以使用的 ...… 查看全部問答∨ |
作為第一個在Hercules板塊中發(fā)帖滴人,怎么著也要發(fā)點兒資料! 上點兒介紹性的內(nèi)容吧,好多人應該都不知道這是啥。 什么是 Hercules?Hercules 安全微處理器是基于 TI 針對汽車電子市場的 20 多年安全關鍵型系統(tǒng)專業(yè)技術(shù)、行業(yè)協(xié)作而發(fā)展成熟的硬 ...… 查看全部問答∨ |
|
1.概述 1.1解析ZigBee堆棧架構(gòu)ZigBee堆棧是在IEEE 802.15.4標準基礎上建立的,定義了協(xié)議的MAC和PHY層。ZigBee設備應該包括IEEE802.15.4(該標準定義了RF射頻以及與相鄰設備之間的通信)的PHY和MAC層,以及ZigBee堆棧層:網(wǎng)絡層(NWK)、應用層和 ...… 查看全部問答∨ |
本帖最后由 孟令民 于 2014-3-14 09:37 編輯 RC降壓求助,沒有輸出。我是在網(wǎng)上查的資料根據(jù)網(wǎng)上的電路圖自己焊了一個,就是沒有輸出不知道為什么。還請壇友們幫忙解答下,非常感謝。用的是安規(guī)電容,24v 4749穩(wěn)壓管。備注:沒有輸出問題已經(jīng)查到 ...… 查看全部問答∨ |
設計資源 培訓 開發(fā)板 精華推薦
- 基于單片機的LED自適應調(diào)光系統(tǒng)
- 智能小車主控系統(tǒng)電路設計
- Microchip 升級數(shù)字信號控制器(DSC)產(chǎn)品線 推出PWM 分辨率和 ADC 速度業(yè)界領先的新器件
- 意法半導體STM32MP23x:突破成本限制的工業(yè)AI應用核心
- 意法半導體推出用于匹配遠距離無線微控制器STM32WL33的集成的匹配濾波芯片
- ESP32開發(fā)板連接TFT顯示屏ST7789跳坑記
- 如何讓ESP32支持analogWrite函數(shù)
- LGVL配合FreeType為可變字體設置字重-ESP32篇
- 使用樹莓派進行 ESP32 Jtag 調(diào)試
- 威世推出適用于下一代電動汽車冷卻系統(tǒng)的緊湊型熱敏電阻
- 通過vmRT-Thread和vSOME/IP支持車載SOA開發(fā)
- “唯算力論”是誤區(qū)!堆滿硬件也不一定靠譜!如何才能邁入自動駕駛?
- 賦能工業(yè)視覺:Teledyne Bumblebee X 5GigE 立體視覺相機
- 這款“逆天”電池充滿電僅需18秒!背后藏著什么黑科技?
- 動力電池的2025中場戰(zhàn)事
- 高算力支持下,端側(cè)AI模型能給座艙帶來哪些變化?
- Allotrope Energy開發(fā)超級電容器 使混合動力應用的性能提高一倍
- 福特汽車申請新專利 或?qū)⑴鋫淇梢苿幼雷拥目刂婆_
- 長城汽車攜手南京藝術(shù)學院及超高清聯(lián)盟,共推車載音視頻技術(shù)革新
- 下載有好禮!羅姆帶您學習電源設計應用小技巧(功率器件篇)
- EEWorld邀你來拆解(第10期)——玩具總動員
- Microchip直播:單片機編程不再難, 利用MPLAB®代碼配置器(MCC)實現(xiàn)快速開發(fā)
- 【搜集令】曬曬你收藏的經(jīng)典模擬電路?。?!
- 答題贏京東卡|《安森美和安富利物聯(lián)網(wǎng)創(chuàng)新設計大賽作品集》
- TI C2000精品課暑期伴你行 學習好禮送不停
- 有獎直播|相約Keysight World 2019“汽車電子及新能源汽車測試”論壇
- 話說我接觸的ADI實驗室電路“評估板”
- 了解PI高性能AC-DC產(chǎn)品,答題贏好禮