日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]STM32F4每個(gè)GPIO端口有四個(gè)32位配置寄存器(GPIOx_MOER,GPIOx_OTYPER,GPIOx_OSPEEDR和GPIOx_PUPDR),兩個(gè)32位數(shù)據(jù)寄存器(GPIO_IDR和GPIO_ODR),一個(gè)32為置位/復(fù)位寄存器(GPIOx_BSRR),一個(gè)32為GPIO鎖寄存器(GPIO

STM32F4每個(gè)GPIO端口有四個(gè)32位配置寄存器(GPIOx_MOER,GPIOx_OTYPER,GPIOx_OSPEEDR和GPIOx_PUPDR),兩個(gè)32位數(shù)據(jù)寄存器(GPIO_IDR和GPIO_ODR),一個(gè)32為置位/復(fù)位寄存器(GPIOx_BSRR),一個(gè)32為GPIO鎖寄存器(GPIOx_LCKR),兩個(gè)32為復(fù)用功能寄存器(GPIOx_AFRH和GPIOx_AFRL)。主要特性如下
·每個(gè)端口支持16個(gè)IO引腳控制
·推挽或者開漏+帶上拉電阻或者下拉電阻
·從數(shù)據(jù)輸出寄存器(GPIOx_ODR)或者外設(shè)(復(fù)用功能引腳)輸出數(shù)據(jù)
·每個(gè)IO支持速度選擇
·輸入狀態(tài):浮動(dòng),上拉/下拉,模擬
·輸入數(shù)據(jù)到輸入數(shù)據(jù)寄存器(GPIOx_IDR)或者外設(shè)(復(fù)用功能輸入)
·置位和復(fù)位寄存器(GPIOx_BSRR)
·GPIO鎖機(jī)制,用于凍結(jié)IO配置
·模擬輸入
·復(fù)用功能輸入輸出選擇寄存器
·每兩個(gè)時(shí)鐘周期的快速IO切換
·高靈活度的復(fù)用功能使得IO可以作為通用IO使用或者外設(shè)使用

根據(jù)數(shù)據(jù)手冊(cè)中列出的每個(gè) I/O 端口的特定硬件特征,GPIO 端口的每個(gè)位可以由軟件分別配置成多
種模式。
·輸入浮空
·輸入上拉
·輸入下拉
·模擬輸入
·具有上拉下拉功能的開漏輸出
·具有上拉下拉功能的推挽輸出
·具有上拉下拉功能的推挽復(fù)用功能
·具有上拉下拉功能的開漏復(fù)用功能
每個(gè)IO口可以自由編程,端口寄存器必須按32位字被訪問。GPIOx_BSRR跟GPIOx_BRR允許對(duì)熱河GPIO的讀/寫的獨(dú)立訪問;這樣在讀和寫之間訪問之間產(chǎn)生IRQ(中斷請(qǐng)求)時(shí)不會(huì)發(fā)生危險(xiǎn)。 關(guān)于引腳耐壓5V可以參考數(shù)據(jù)手冊(cè)的引腳說明。
復(fù)位期間跟剛復(fù)位后,復(fù)用功能未開啟,IO端口被配置成浮空輸入模式,復(fù)位后JTAG引腳被置于輸入上拉或下拉模式。
PA15:JTDI置于上拉模式
PA14:JTCK/SWCLK置于下拉模式
PA13:JTMS/SWDAT置于上拉模式
PB4:JNTRST置于上拉模式
PB3:JTDO浮空狀態(tài)

微控制器通過多路選擇器將 IO 引腳與相應(yīng)的片上外設(shè)相連接,這里要注意一點(diǎn),每一次只能與一個(gè)片上外設(shè)相連接,防止多個(gè)外設(shè)使用這個(gè)引腳造成沖突。
每個(gè)引腳都有一個(gè)多路選擇器,每個(gè)多路選擇器有 16 路輸入(AF0 到AF15) ,通過寄存器 GPIOx_AFRL(從 0 到 7)和 GPIOx_AFRH(從 8 到 15)進(jìn)行配置。
·復(fù)位后 IO 引腳默認(rèn)連接到系統(tǒng)復(fù)用功能 0(AF0)
·片上外設(shè)的復(fù)用功能映射從 AF1 到 AF13
·M4 的 FPU EVENTOUT 映射到 AF15
不能將EVENTOUT映射到一下引腳:PC13,PC14,PC15,PH0,PH1和PI8
置位和復(fù)位寄存器(GPIOx_BSRR)是一個(gè) 32 位寄存器,允許用戶程序置位或者復(fù)位輸出數(shù)據(jù)寄存器 GPIOx_ODR 的每個(gè)位。置位和復(fù)位寄存器GPIOx_BSRR 的位數(shù)是 GPIOx_ODR 的兩倍。寄存器 GPIOx_BSRR 就是對(duì)寄存器 GPIOx_ODR 的位操作,GPIOx_BSRR 的高 16 位用于
復(fù)位操作,低 16 位用置位操作,只有對(duì)寄存器 GPIOx_BSRR 相應(yīng)的位置 1 才對(duì)寄存器 GPIOx_ODR 有效,置 0 是無效的。如果對(duì)于寄存器GPIOx_ODR 的同一位同時(shí)進(jìn)行置位和復(fù)位操作,那么置位操作的優(yōu)先級(jí)要高。當(dāng)對(duì) GPIOx_ODR 的個(gè)別位編程時(shí),軟件不需要禁止中斷:在單次AHB1 寫操作里,可以只更改一個(gè)或多個(gè)位。GPIO鎖允許凍結(jié)IO配置。在一個(gè)端口位上執(zhí)行了LOCK程序,下一次復(fù)位前將不能再更改端口位配置。
所有端口都有外部中斷能力,在使用外部中斷先端口必須配置成輸入模式。
模擬輸入配置時(shí),輸出換從其被禁止,禁止施密特觸發(fā)器輸入,弱上拉下拉被電阻禁止,讀輸入寄存器時(shí)數(shù)值為0。
外設(shè)的GPIO設(shè)置模式在F1參考手冊(cè)上有,但是在F4上這個(gè)說明沒有了具體大家在使用的時(shí)候可以參考f1,也可以參考官方外設(shè)例子。

STM32F4的GPIO庫
初始化配置函數(shù)
void GPIO_DeInit(GPIO_TypeDef*GPIOx)初始化GPIO寄存器到默認(rèn)值
void GPIO_Init(GPIO_TypeDef*GPIOx,GPIO_InitTypeDef*GPIO_InitStruct)GPIO初始化
void GPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct)將GPIO_InitStruct組員設(shè)置到默認(rèn)值
void GPIO_PinLockConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)GPIO寄存器鎖

GPIO的讀和寫
uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)讀某一引腳的輸入數(shù)據(jù)寄存器IDR
uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx)讀某一端口的輸入數(shù)據(jù)寄存器IDR
uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx)讀某一端口的輸出數(shù)據(jù)寄存器ODR
uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)讀某一引腳的輸出數(shù)據(jù)寄存器ODR
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)GPIO置高
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)GPIO置低
void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin,BitAction BitVal)根據(jù)BitVal寫ODR寄存器
void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal)設(shè)置輸出寄存器ODR數(shù)值
void GPIO_ToggleBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)通過GPIO->ODR^=GPIO_Pin;實(shí)現(xiàn)GPIO翻轉(zhuǎn)

GPIO復(fù)用功能配置函數(shù)
void GPIO_PinAFConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_PinSource, uint8_t GPIO_AF)使用前要先使能GPIO時(shí)鐘與外設(shè)時(shí)鐘


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

基于ARM? Cortex?-M4的STM32F4 MCU系列采用了意法半導(dǎo)體的NVM工藝和ART Accelerator?,在高達(dá)180 MHz的工作頻率下通過閃存執(zhí)行時(shí)其處理性能達(dá)到225 DMIPS/608 Cor...

關(guān)鍵字: stm32f4 ARM

stm32f4和f1都有哪些區(qū)別?除了需要的頭文件不一樣,管腳配置什么的有區(qū)別么?

關(guān)鍵字: stm32f4 f1 比較

STM32F407VET6引腳圖及中文資料

關(guān)鍵字: stm32f4 引腳圖

比較F1的片子對(duì)于F4的RTC來說有很大提升,F(xiàn)4的RTC提供了日歷時(shí)鐘和兩個(gè)可編程鬧鐘中斷,一個(gè)周期性可編程喚醒標(biāo)志。這樣很方便設(shè)置系統(tǒng)時(shí)間,并不會(huì)像F1的RTC那樣要自己計(jì)算年月日時(shí)分秒。F4的RTC是一個(gè)獨(dú)立的BC...

關(guān)鍵字: rtc stm32f4

【實(shí)驗(yàn)?zāi)康摹枯敵?路占空比不同的PWM信號(hào)是各個(gè)版本ST庫必備的例子。本實(shí)驗(yàn)的主要目的不是表現(xiàn)ST芯片PWM功能的強(qiáng)大,而是要完成輸出的精確計(jì)算?!緦?shí)驗(yàn)內(nèi)容】輸出7路PWM信號(hào),并用示波器測(cè)量輸出?!緦?shí)驗(yàn)原理】1、時(shí)

關(guān)鍵字: pwm stm32f4 tim1 信號(hào)輸出

STM32F4的隨機(jī)數(shù)發(fā)生器RNG,以環(huán)境噪聲為種子,產(chǎn)生32位隨機(jī)數(shù)供主機(jī)使用?!局饕匦浴?、產(chǎn)生32位隨機(jī)數(shù) 2、兩次轉(zhuǎn)換時(shí)間間隔40PLL48CLK 3、隨機(jī)數(shù)熵檢測(cè)以發(fā)現(xiàn)不正常位,以產(chǎn)生穩(wěn)定序列 3、可被關(guān)閉以...

關(guān)鍵字: stm32f4 隨機(jī)數(shù)發(fā)生器

書接上文,開始折騰ADC的DMA傳輸。因?yàn)榇蠹叶荚谡fDMA,就連ST的例子里邊也是使用DMA的。 ADC采集到的數(shù)據(jù)都存儲(chǔ)在一個(gè)固定的寄存器中。當(dāng)常規(guī)采樣方式采樣多個(gè)通道時(shí)候,使用DMA可以較好地避免將采集到的數(shù)據(jù)...

關(guān)鍵字: adc dma stm32f4 數(shù)據(jù)傳輸 采集數(shù)據(jù)

為了提搞系統(tǒng)的可靠性,STM32F4系列MCU有一個(gè)獨(dú)立看門狗(IWDG)和一個(gè)窗口看門狗(WWDG)。今天做的實(shí)驗(yàn)是關(guān)于獨(dú)立看門狗的。獨(dú)立看門狗使用的時(shí)鐘源是內(nèi)部低速振蕩器LSI。因?yàn)長SE可能沒接,HSE可能壞點(diǎn),H...

關(guān)鍵字: iwdg stm32f4 獨(dú)立看門狗

對(duì)于串口就不多羅嗦了, 雖然串口是一種比較古老的接口, 速度較慢, 在計(jì)算機(jī)上早已淘汰, 但是由于它結(jié)構(gòu)簡(jiǎn)單, 使用方便, 或許也由于在計(jì)算機(jī)上使用過有基礎(chǔ)支撐(單片機(jī)就是在走曾經(jīng)電腦走過的路), 在嵌入式系統(tǒng)中依然

關(guān)鍵字: stm32f4 usart配置

Ⅰ、概述STM32的TIM定時(shí)器分為三類:基本定時(shí)器、通用定時(shí)器和高級(jí)定時(shí)器。從分類來看就知道STM32的定時(shí)器功能是非常強(qiáng)大的,但是,功能強(qiáng)大了,軟件配置定時(shí)器就相對(duì)復(fù)雜多了。很多初學(xué)者甚至工作了一段時(shí)間的人都不

關(guān)鍵字: stm32f4 tim 基本延時(shí) 計(jì)數(shù)原理
關(guān)閉