IO設置函數
包括兩個函數:GPIO_Set和GPIO_AF_Set. GPIO_AF_Set,每次只能設置一個IO口的復用功能。
STM32F4的每組通用I/O端口包括4個32位配置寄存器(MODER,OTYPER,OSPEEDR和PUPDR),2個32位數據寄存器(IDR和ODR),1個32位置位/復位寄存器(BSRR),1個32位鎖定寄存器(LCKR)和2個32位復用功能選擇寄存器(AFRH和AFRL).
這樣,STM32F4每組IO有10個32位寄存器控制,其中常用的有4個配置寄存器+2個數據寄存器+2個復用功能選擇寄存器,共8個。
各個寄存器介紹
1.MODER寄存器,該寄存器是GPIO端口模式控制寄存器,用于控制GPIOx(STM32F4最多有9組IO,x=A/B/C/D/E/F/G/H/I)的工作模式。
MODERy[1:0]:端口x配置位(y=0~15)這些位通過軟件寫入,用于配置I/O方向模式。
00:輸入(復位狀態)
01: 通用輸出模式
10: 復用功能模式
11:模擬模式
該寄存器各位在復位后,一般都是0(個別不是0,比如JTAG占用的幾個IO口),也就是在默認狀態下是輸入狀態的。每組IO下有16個IO口,該寄存器共32位,每兩個控制一個IO,位31:16 保留,必須保持復位值。
2.OSPEEDR寄存器,該寄存器用于控制GPIOx的輸出速度。(輸出模式)復位時,寄存器值一般為0.
00: 2MHz(低速)
01: 25MHz(中速)
10: 50MHz(快速)
11: 30pF時為100MHz(高速)(15pF時為80MHz輸出(最大速度))
3.PUPDR寄存器,用于控制GPIOx的上拉/下拉。復位后,寄存器值為0.
00: 無上拉/下拉
01: 上拉
10: 下拉
11: 保留
4.ODR寄存器,用于設置某個IO輸出低電平(ODRy=0)還是高電平(ODRy=1),該寄存器也僅在輸出模式下有效,在輸入模式下(MODER[1:0])不起作用.
5.IDR寄存器,用于讀取GPIOx的輸入,用于讀取某個IO的電平,如果對應的位為0,則說明該IO輸入的是低電平
6.OTYPER寄存器,在輸入模式不起作用,低16位有效。
0: 輸出推挽(復位狀態)
1: 輸出開漏
7.AFRL和AFRH,是用來設置IO引腳復用和映射的,STM32F4每個IO引腳通過一個復用器連接到板載外設,該復用器一次僅允許一個外設的復用功能(AF)連接到IO引腳,AFRL控制0…7這8個IO口,AFRH控制8…15這8個IO口。4個位控制一個IO。
0000: AF0
1111: AF15
8.BSRR寄存器是端口位設置/清除寄存器,BSRR低16位用于設置GPIO口對應位輸出高電平,高16位用于設置GPIO口對應位輸出低電平.
void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)
{
/* Check the parameters */
assert_param(IS_GPIO_PIN(GPIO_Pin));
assert_param(IS_GPIO_PIN_ACTION(PinState));
if(PinState != GPIO_PIN_RESET)
{
GPIOx->BSRR = GPIO_Pin;
}
else
{
GPIOx->BSRR = (uint32_t)GPIO_Pin << 16U;
}
}
STM32F4的IO的8種模式
4種輸入模式
1.GPIO_Mode_IN_FLOATING 浮空輸入
MCU直接讀取I/O電平,I/O電平狀態不確定,完全由外部輸入決定
2.GPIO_Mode_IPU 上拉輸入
IO內部接上拉電阻,此時如果IO口外部沒有信號輸入或引腳懸空,IO默認為高電平,如果要大電流還是要外部上拉
3.GPIO_Mode_IPD 下拉輸入
IO內部接上拉電阻,沒有外部信號或引腳懸空,IO默認為低電平
4.GPIO_Mode_AIN 模擬輸入
當位于模擬輸入配置下,通過數模轉換,轉換成模擬信號,CPU不能在"輸入數據寄存器"上讀到有效數據.
4種輸出模式
1.GPIO_Mode_OUT_OD 開漏輸出
2.GPIO_Mode_AF_OD 復用開漏輸出
3.GPIO_Mode_OUT_PP 推挽輸出
4.GPIO_Mode_AF_PP 復用推挽輸出
開漏輸出:可以輸出強低電平,高電平得靠外部電阻拉高
推挽輸出:可以輸出強高低電平.
上一篇:按鍵實驗(GPIO的輸入模式)
下一篇:STM32F4的GPIO口配置模式
推薦閱讀
史海拾趣
在DAQ Electronics LLC公司的發展歷程中,質量一直是其堅守的核心原則。公司建立了嚴格的質量控制體系,從原材料采購到產品生產、檢測、包裝等各個環節都進行嚴格把控。這種對質量的堅持,使得DAQ Electronics LLC公司的產品在市場上獲得了良好的口碑和信譽。客戶對公司的產品和服務給予了高度評價,也為公司的持續發展提供了有力保障。
隨著電子行業的不斷發展,Curtis Industries公司意識到技術創新的重要性。公司投入大量資源進行技術研發,成功推出了一系列具有行業領先水平的產品。其中,公司在某一關鍵領域的突破性技術,不僅解決了行業內的技術難題,還為公司贏得了廣泛的贊譽。Curtis Industries因此成為了電子行業的技術創新引領者,推動了整個行業的發展。
面對數字化浪潮的挑戰,EBK Kruger積極擁抱數字化轉型。公司引入了先進的ERP系統和智能制造技術,提高了生產效率和產品質量。同時,EBK Kruger還加強了對大數據和人工智能技術的研發和應用,為客戶提供了更加智能化和個性化的產品和服務。通過數字化轉型的推動,EBK Kruger在激烈的市場競爭中保持了領先地位。
隨著環保意識的不斷提高,Eurohm Resistors公司積極響應綠色發展的號召。公司投入大量資源研發環保型電阻器產品,采用可再生材料和綠色生產工藝,降低產品對環境的影響。同時,公司還積極參與各種環保活動,推動行業的綠色發展。
隨著市場的不斷擴張和競爭的加劇,Eurohm Resistors始終堅持品質至上的原則。公司建立了嚴格的質量控制體系,從原材料采購到生產流程,再到成品檢驗,每一個環節都嚴格把關。這種對品質的堅守不僅贏得了客戶的信任,也為公司贏得了良好的口碑。
隨著公司的發展,Astron Wireless Technologies Inc開始尋求與其他行業的領軍企業建立戰略合作關系。通過與一家知名通信設備制造商的合作,公司成功將其無線通信技術集成到了對方的產品中,從而進一步擴大了市場份額。這一合作不僅提升了公司的知名度,還為公司帶來了穩定的收入來源。
安防監控系統一般由下面五道防線組成: 第一道安全防線:由周界防范報警系統構成,以防范翻圍墻和周邊進入社區的非法入侵者。采用感應線纜或主動紅外線對射器。 第二道安全防線:由社區監控系統構成,對出入社區和主要通道上的車輛,人 ...… 查看全部問答∨ |
|
電平控制的RS觸發器芯片的名稱是什么啊? jk觸發器都是脈沖控制觸發的,我現在想找個電平控制的rs觸發器,不知道芯片名稱是什么啊?我的信號有的是瞬間的,有的是電平的。我要在高電平期間,把瞬間信號鎖存。找了半天芯片,就是找不到電平觸發的 ...… 查看全部問答∨ |
|
求救,各位達人,WinCE6.0如何加載位于BinFS文件系統中類型為NandImage的.bin文件中的內容? 我現在做的是BinFS+Multi-bin,目的是加快WINCE6.0的啟動速度,減小內存使用。核心的東西都放在XIPKERNEL.bin中,為RAMIMAGE,而其他東西則放在nk.bin中,為NANDIMAGE。現在的現象是,xipkernel里面的東西好像加載都是正常的,但是nk.bin中的內容一 ...… 查看全部問答∨ |
我要實現的是4X4鍵盤顯示電路 我鍵盤接P2口 顯示電路用LED(8位) ,使用的是 (P3.1)串行通行 現在我要讓鍵盤每一個鍵對應顯示 1,2,3,....F,0, 我的單片機初始狀態顯示了 LED 全亮 可我的按鍵 ...… 查看全部問答∨ |
請問大家,我現在調試IR2130做驅動,我想輸出高臂端,可是死活不行那,誰能講講怎么回事嗎,現在的現象是,我輸出PWM,可是在HO,VSS之上的波形,是一樣的,沒有電壓差,就是說IGBT沒有輸出,怎么搞的,NND,郁悶.… 查看全部問答∨ |
設計資源 培訓 開發板 精華推薦
- 我是大偵探之:尋找遺落的TI電源拼圖
- “悅”讀deyisupport博文 樂享知識智贏好禮
- 有獎直播|Keysight World 2020【電信基礎設施、云與人工智能分論壇】
- 免費申請富士通FRAM 曬心得 贏大禮!
- 有獎直播:使用 NI CompactDAQ 和 LabVIEW構建基于傳感器的測試系統
- 看這里!發表個人原創就有機會獲得E金幣啦~~
- 【ST直播】MEMS傳感器開發套件簡介、了解內嵌“有限狀態機和機器學習內核”的傳感器
- 看視頻答題,玩轉幸運大抽獎:Littelfuse汽車電子電路保護知多少
- 【EE團拍賣】\\
- 搶先體驗!免費試用LM3S8962 評估套件!(10.13~11.30)