娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

GPIO簡介

GPIO的英文名稱是General Purpose Input Output,顧名思意,就是通用輸入輸出口,可以用來輸入輸出高低電平進(jìn)而控制各種連接在GPIO上的模塊等等。STM32的GPIO就是51單片機(jī)的P11、P12等等引腳,不過STM32的GPIO更加強(qiáng)大,具有多種模式,為了控制功耗,每一個(gè)GPIO都有單獨(dú)的時(shí)鐘開關(guān),每使用到一個(gè)GPIO都要對(duì)其時(shí)鐘使能,而且STM32的GPIO的輸入輸出必須單獨(dú)配置。



GPIO的模式與各種外設(shè)GPIO模式的設(shè)置

在這里插入圖片描述

GPIO有八種輸入輸出模式,對(duì)于輸出模式還能設(shè)置輸出的速度,每一個(gè)外設(shè)對(duì)應(yīng)GPIO口的模式都不全相同,例如使用I2C_SCL的時(shí)候GPIO口要設(shè)置成 開漏復(fù)用輸出,SPI_SCK主模式GPIO口要設(shè)置成 推挽復(fù)用輸出等等,記住是不可能的,不過官方的參考手冊(cè)就已經(jīng)給出了每一個(gè)外設(shè)的GPIO的配置情況,我們需要用到某個(gè)外設(shè)GPIO口的時(shí)候不知道怎么配置模式可以到《STM32中文參考手冊(cè)》8.1.11小節(jié)查看
在這里插入圖片描述


GPIO的常用寄存器

首先對(duì)于每一個(gè)寄存器必須以字(32位)的方式操作這些外設(shè)寄存器

  1. 端口配置低寄存器(GPIOx_CRL) (x=A…E)
    配置GPIO 0~7位的模式
    在這里插入圖片描述

  2. 端口配置高寄存器(GPIOx_CRH) (x=A…E)
    配置GPIO 8~16位的模式
    在這里插入圖片描述

  3. 端口輸入數(shù)據(jù)寄存器(GPIOx_IDR) (x=A…E)
    有16個(gè)位 只讀并只能以字(16位)的形式讀出
    對(duì)于每個(gè)GPIO16個(gè)引腳的狀態(tài),是高電平就是1,低電平就是0
    在這里插入圖片描述

  4. 端口輸出數(shù)據(jù)寄存器(GPIOx_ODR) (x=A…E)
    配置GPIO輸出的電平
    在這里插入圖片描述

  5. 端口位設(shè)置/清除寄存器(GPIOx_BSRR) (x=A…E)
    前16位寫1就會(huì)對(duì)對(duì)應(yīng)的ODR寄存器的位寫1
    后16位寫1就會(huì)對(duì)對(duì)應(yīng)的ODR寄存器的位寫0
    一般只用BSRR寄存器來寫1,也就是只用前16位,后面16位一般不用
    在這里插入圖片描述

  6. 端口位清除寄存器(GPIOx_BRR) (x=A…E)
    前16位有效,后16位無效,對(duì)一個(gè)位寫1,就會(huì)清楚對(duì)應(yīng)的ODR位為0
    功能上于BSRR的后16位一樣,因此一般不用BSRR的后16位
    在這里插入圖片描述

固件庫中的GPIO類型結(jié)構(gòu)體,里面包含了各種寄存器,而且都是有序排布,每兩個(gè)寄存器的地址相隔是4:

typedef struct

{

  __IO uint32_t CRL;

  __IO uint32_t CRH;

  __IO uint32_t IDR;

  __IO uint32_t ODR;

  __IO uint32_t BSRR;

  __IO uint32_t BRR;

  __IO uint32_t LCKR; //不常用

} GPIO_TypeDef;


GPIO的初始化

在這里插入圖片描述

對(duì)于任何一種外設(shè)的初始化,其實(shí)都遵循差不多的配置流程

無非就是定義一個(gè)結(jié)構(gòu)體變量,里面放了外設(shè)相關(guān)的寄存器,開始對(duì)于的外設(shè)的時(shí)鐘(有的外設(shè)和GPIO共用引腳(復(fù)用),這時(shí)候需要把兩個(gè)時(shí)鐘都打開),配置結(jié)構(gòu)體變量中的參數(shù)(即外設(shè)的各種配置參數(shù),例如GPIO的模式,輸出速度等等),最后調(diào)用一個(gè)初始化函數(shù)一般叫XXX_Init(),入口參數(shù)一般是塞入結(jié)構(gòu)體(注意要加上&取地址號(hào)),外設(shè)的名稱,如果有特殊需要,比如需要開啟中斷,那就還需要使用一個(gè)中斷開啟函數(shù)什么什么的。

例:初始化GPIOE_5為復(fù)用推挽輸出

void GPIO_Config()

{

GPIO_InitTypeDef GPIO_InitStructure; //定義初始化結(jié)構(gòu)體

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE); //初始化GPIO的時(shí)鐘

GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_5; //引腳位

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//模式

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//輸出速度

GPIO_Init(GPIOE,&GPIO_InitStructure);//調(diào)用庫函數(shù)的GPIO初始化函數(shù)

}


GPIO的常用庫函數(shù)

  • 初始化函數(shù)
    void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);

  • 引腳置1函數(shù)
    void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);

  • 引腳置0函數(shù)
    void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);


用GPIO點(diǎn)亮LED

LED連接的引腳為PE5,低電平點(diǎn)亮
電路圖

#include "stm32f10x.h"

#include "bsp_systick.h" //systick 用于寫延時(shí)函數(shù)


void GPIO_Config()

{

GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE|RCC_APB2Periph_GPIOB,ENABLE);

GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_5;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOE,&GPIO_InitStructure);

GPIO_Init(GPIOB,&GPIO_InitStructure);

}


int main(void)

{

GPIO_Config();

GPIO_SetBits(GPIOE,GPIO_Pin_5); //設(shè)置GPIOE的電平為高,即滅掉LED

while(1)

{

GPIO_ResetBits(GPIOE,GPIO_Pin_5);

delay_ms(300);

GPIO_SetBits(GPIOE,GPIO_Pin_5);

delay_ms(300);

GPIO_ResetBits(GPIOB,GPIO_Pin_5);

delay_ms(300);

GPIO_SetBits(GPIOB,GPIO_Pin_5);

delay_ms(300);

}

}


關(guān)鍵字:STM32  GPIO  配置  點(diǎn)亮LED 引用地址:STM32筆記(三)GPIO的配置(用GPIO點(diǎn)亮LED)

上一篇:STM32單片機(jī)基礎(chǔ)03——使用GPIO點(diǎn)亮一個(gè)LED
下一篇:STM32——GPIO設(shè)置:快速點(diǎn)亮第一個(gè)LED燈

推薦閱讀

近年來,智能可穿戴設(shè)備銷量不斷上升,品類日漸豐富,從健康監(jiān)測(cè)、社交娛樂,到虛擬現(xiàn)實(shí)等功能均有涉及。而隨著5G時(shí)代的到來和物聯(lián)網(wǎng)的應(yīng)用,這些智能穿戴設(shè)備的應(yīng)用場景將越來越廣,那么它們能否在未來取代智能手機(jī)的地位呢??第一代Apple Watch的發(fā)布,引領(lǐng)了智能穿戴設(shè)備的潮流,也打開了一片廣闊的市場。?智能手機(jī)的誕生革了無數(shù)電子產(chǎn)品的命,如MP...
摘要:CAN總線廣泛應(yīng)用于汽車電子、現(xiàn)代工業(yè)及軍工航空等安全要求較高的領(lǐng)域,優(yōu)質(zhì)的CAN信號(hào)是各節(jié)點(diǎn)穩(wěn)定通信的基礎(chǔ),那么,如何判斷總線信號(hào)質(zhì)量的優(yōu)劣呢?我們可以對(duì)信號(hào)做一次質(zhì)量評(píng)估。 一、為什么要評(píng)估檢查CAN信號(hào)的質(zhì)量? 信號(hào)質(zhì)量較差的CAN信號(hào),可能會(huì)導(dǎo)致發(fā)送或接收節(jié)點(diǎn)無法正確識(shí)別信號(hào)電平,使通信受到影響。信號(hào)質(zhì)量評(píng)估是分析CAN通信信號(hào)質(zhì)...
自動(dòng)駕駛可以說是目前的一個(gè)熱門詞,任何一個(gè)想好好發(fā)展的車企,只要稍微跟自動(dòng)駕駛粘上邊,哪怕是自動(dòng)輔助駕駛很初級(jí),都會(huì)在上面大做文章,似乎自己的企業(yè)達(dá)到了一個(gè)全新的技術(shù)研發(fā)水平。而部分國人買車,也喜歡買有所謂技術(shù)含量的,而自動(dòng)輔助駕駛技術(shù)就是他們的最愛,加上廠家的一系列宣傳攻勢(shì),正符合他們的胃口,從而很快促成一樁樁購車的買賣。 不...
導(dǎo)讀:歐洲電池制造商InoBat公司宣布與美國電池材料供應(yīng)商Group14 Technologies公司進(jìn)行合作,將使用Group14的專利硅基負(fù)極材料為汽車生產(chǎn)高能量密度的電池。InoBat公司表示,高能量密度電池市場需求飆升,相比傳統(tǒng)鋰離子電池,硅基負(fù)極材料的單位體積能量密度更高。Group14表示,能源部已經(jīng)認(rèn)可其“新穎的、可投入使用的納米材料和可靠的工業(yè)規(guī)模工藝”...

史海拾趣

問答坊 | AI 解惑

[引]avrADC轉(zhuǎn)換實(shí)驗(yàn)-ADC噪聲抑制模式

/* ******************************************************** * 文件: adc.c * 功能: ADC轉(zhuǎn)換實(shí)驗(yàn)-ADC噪聲抑制模式 * 工具: WinAVR20050214(AVR-GCC) * mcu : Atmega8 * 時(shí)鐘: 外部晶體8MHz * 日期: 2005年10月25 ...…

查看全部問答∨

如何開始DSP編程[精]

如何開始DSP編程 這本書,從安裝CCS 軟件開始,一步一步教你如何開始DSP編程, 并給出了相應(yīng)操作的圖示,是一本難得的好書 對(duì)初學(xué)者來說,可以以最快的速度入門。 …

查看全部問答∨

工程師出身的還是銷售、市場出身的員工更容易做到公司上層? 歡迎加入討論!!

工程師出身的還是銷售、市場出身的員工更容易做到公司上層? 歡迎加入討論!! 1.工程師會(huì)有更大的上升空間,因?yàn)閺淖钕聦拥墓こ處熥錾蟻淼膯T工對(duì)公司的產(chǎn)品線會(huì)有更加深刻的認(rèn)識(shí),技術(shù)上的優(yōu)勢(shì) 使他們更能了解更深層次的市場動(dòng)向,從而對(duì) ...…

查看全部問答∨

用最新庫玩轉(zhuǎn)智林STM32開發(fā)板(之四)------點(diǎn)亮真彩屏

驅(qū)動(dòng)智林STM32開發(fā)板,真彩屏首先設(shè)定PINC為輸出 所有子函數(shù)都在TFT018.c中 編譯運(yùn)行,則在屏幕顯示如下: STM32F  EVAL  BOARD    Version 1.0   ZERO  Research www.the0.net 整個(gè)工程 ...…

查看全部問答∨

懸掛運(yùn)動(dòng)控制系統(tǒng)

本帖最后由 paulhyde 于 2014-9-15 09:02 編輯 往屆題目:懸掛運(yùn)動(dòng)控制系統(tǒng),包括完整的硬件電路,程序代碼以及報(bào)告~~希望能給你幫助~~  …

查看全部問答∨

貼片IC的焊接

貼片元件的焊接并不容易,特別是長了蜈蚣腳的貼片IC。以下文字和圖片轉(zhuǎn)載自www.hifidiy.net,讓我們來看看28腳的貼片IC是怎么用電烙鐵焊上去的。 首先來張全部焊接點(diǎn)的PCB圖 這是焊接貼片的必須工具 這個(gè)是準(zhǔn)備焊接的DD 夾一個(gè)的姿勢(shì) 先 ...…

查看全部問答∨

如何在EVC中將字符串轉(zhuǎn)換為十六進(jìn)制數(shù)組???

如何在EVC中將字符串轉(zhuǎn)換為十六進(jìn)制數(shù)組???…

查看全部問答∨

如何降低在Xilinx 編譯時(shí)的Peak Memory Usage?

    Peak Memory Usage好象是編譯VHDL時(shí)使用到的內(nèi)存.我剛用Xilinx 的,編了個(gè)簡單的只是對(duì)幾個(gè)信號(hào)進(jìn)行初始化,就用了120,GATE COUNT才48.而有個(gè)資料里的GATE COUNT是414,573.Peak Memory Usage才86 MB .不知道需要如何設(shè)置什么參數(shù)? &nb ...…

查看全部問答∨

lm3s怎樣和5V器件的TTL電平接口呢

以前搞51,現(xiàn)在想學(xué)習(xí)lm3s,Lm3s是用的3.3v.請(qǐng)問怎樣和5V器件的TTL電平接口呢?…

查看全部問答∨

自動(dòng)增益控制電路

本帖最后由 dontium 于 2015-1-23 13:12 編輯 …

查看全部問答∨
小廣播
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 德安县| 富蕴县| 梁山县| 金阳县| 郎溪县| 木兰县| 蛟河市| 山阳县| 通渭县| 剑河县| 新沂市| 镇雄县| 河曲县| 钟祥市| 贵德县| 芜湖县| 江口县| 张家口市| 区。| 平山县| 蓬莱市| 彭山县| 肃南| 泰和县| 梅州市| 绥德县| 马公市| 和林格尔县| 纳雍县| 苍溪县| 曲水县| 巴中市| 牟定县| 都兰县| 阳谷县| 黎平县| 开江县| 安福县| 通化市| 西吉县| 永平县|