單元二LED流水燈控制湯宇嬌上海城建職業(yè)課件_第1頁(yè)
單元二LED流水燈控制湯宇嬌上海城建職業(yè)課件_第2頁(yè)
單元二LED流水燈控制湯宇嬌上海城建職業(yè)課件_第3頁(yè)
單元二LED流水燈控制湯宇嬌上海城建職業(yè)課件_第4頁(yè)
單元二LED流水燈控制湯宇嬌上海城建職業(yè)課件_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

單元二LED流水燈控制主講人:湯宇嬌上海城建職業(yè)學(xué)院本單元內(nèi)容GPIO功能概述GPIO寄存器功能說(shuō)明基于寄存器方式控制GPIO教學(xué)目標(biāo)了解GPIO的功能和電路結(jié)構(gòu)了解GPIO模塊的寄存器含義掌握基于寄存器的程序開(kāi)發(fā)方式2.1GPIO功能概述用途GPIOGPIO是通用輸入/輸出(GeneralPurposeI/O)的簡(jiǎn)稱(chēng),主要用于工業(yè)現(xiàn)場(chǎng)需要用的數(shù)字量輸入/輸出的場(chǎng)合,例如輸出功能:繼電器、LED、蜂鳴器等的控制輸入功能:傳感器狀態(tài)、高低電平等信息的讀取復(fù)用功能:片內(nèi)外設(shè)的對(duì)外接口時(shí)序模擬:模擬SPI、I2C和UART等常用接口的時(shí)序基本特性STM32微控制器概述STM32的GPIO特性?xún)蓚€(gè)概念GPIOPA0對(duì)應(yīng)STM32F103RE芯片的14腳,屬于端口GPIOA,輸出電平由端口GPIOA的輸出數(shù)據(jù)寄存器GPIOA_ODR的第0位決定GPIO模塊由端口GPIOA、GPIOB、GPIOC等多個(gè)獨(dú)立的子模塊構(gòu)成例如:端口GPIOA包括PA0~PA15這16個(gè)引腳,通過(guò)7個(gè)硬件寄存器控制引腳工作目標(biāo)芯片GPIOSTM32F103RE的端口及引腳端口引腳數(shù)量備注GPIOAPA0~PA1516--GPIOBPB0~PB1516GPIOCPC0~PC1213GPIODPD21總結(jié):一個(gè)端口默認(rèn)包含16個(gè)引腳,但是不同型號(hào)的STM32微控制器所包含的端口數(shù)量及各端口包含的引腳數(shù)量各不相同,具體信息可以查詢(xún)芯片的數(shù)據(jù)手冊(cè)引腳占用情況GPIOSTM32F103RE的端口及引腳PD0和PD1接入HSEPC14和PC15接入LSEPA13和PA14作為SWD接口1.2STM32GPIO模塊的電路結(jié)構(gòu)電路結(jié)構(gòu)GPIO123端口寄存器組輸入輸出驅(qū)動(dòng)器引腳電路工作模式分類(lèi)GPIO工作模式輸入模式輸出模式模擬模式復(fù)用模式浮空輸入上拉輸入下拉輸入推挽輸出開(kāi)漏輸出根據(jù)上/下拉電阻的使能情況根據(jù)兩個(gè)MOS管的導(dǎo)通情況用法總結(jié)GPIOGPIO工作模式的用法總結(jié)輸入模式浮空輸入:按鍵識(shí)別上拉輸入:IO內(nèi)部上拉電阻輸入下拉輸入:IO內(nèi)部下拉電阻輸入模擬模式作為片內(nèi)模擬外設(shè)的對(duì)外引腳單純作為低功耗使用用法總結(jié)GPIOGPIO工作模式的用法總結(jié)輸出模式推挽輸出:可以輸出高/低電平,主要用于連接數(shù)字器件,如指示燈和繼電器等模塊;開(kāi)漏輸出:只能輸出低電平,適用于電流型驅(qū)動(dòng),也可以作為電平轉(zhuǎn)換;復(fù)用模式復(fù)用推挽:片內(nèi)外設(shè)功能(URAT的TX,RX,SPI的MOSI,MISO,SCK,SS;

復(fù)用開(kāi)漏:片內(nèi)外設(shè)功能(I2C的SCL,SDA)2.3GPIO模塊的寄存器介紹端口寄存器GPIO端口寄存器配置低寄存器GPIOx_CRL配置高寄存器GPIOx_CRH輸入數(shù)據(jù)寄存器GPIOx_IDR輸出數(shù)據(jù)寄存器GPIOx_ODR設(shè)置/復(fù)位寄存器GPIOx_BSRR復(fù)位寄存器GPIOx_BRR配置鎖定寄存器GPIOx_LCKR配置寄存器GPIO端口配置低寄存器GPIOx_CRL配置寄存器GPIO端口配置高寄存器GPIOx_CRH配置寄存器GPIO輸入數(shù)據(jù)寄存器GPIOx_IDR配置寄存器GPIO輸出數(shù)據(jù)寄存器GPIOx_ODR配置寄存器GPIO置位/復(fù)位寄存器GPIOx_BSRR配置寄存器GPIO復(fù)位寄存器GPIOx_BRR配置寄存器GPIO端口配置鎖定寄存器GPIOx_LCKR使用舉例GPIO要求PA0輸出低電平,PA15輸出高電平2.4

利用指針訪(fǎng)問(wèn)單個(gè)寄存器端口地址范圍GPIOSTM32F103RE芯片的GPIO模塊各端口寄存器的地址范圍端口號(hào)寄存器組地址范圍備注GPIOA0x40010800-0x40010BFF每組端口占用了0x000~0x3FF共1K字節(jié)的存儲(chǔ)空間,而實(shí)際每組端口只包括7個(gè)32位的寄存器,只需要28個(gè)字節(jié)的存儲(chǔ)空間,多余的存儲(chǔ)空間預(yù)留給芯片升級(jí)使用。

GPIOB0x40010C00-0x40010FFFGPIOC0x40011000-0x400113FFGPIOD0x40011400-0x400117FF端口地址范圍GPIO端口GPIOA對(duì)應(yīng)寄存器的起始地址及偏移量寄存器名稱(chēng)寄存器起始地址偏移量GPIOA_CRL0x400108000x00GPIOA_CRH0x400108040x04GPIOA_IDR0x400108080x08GPIOA_ODR0x4001080c0x0CGPIOA_BSRR0x400108100x10GPIOA_BRR0x400108140x14GPIOA_LCKR0x400108180x180x40010800作為模式寄存器的起始地址,也是端口GPIOA寄存器組的起始地址所有寄存器為32位,占用四個(gè)字節(jié)的存儲(chǔ)空間12地址轉(zhuǎn)換方法GPIO利用指針完成地址的轉(zhuǎn)換地址轉(zhuǎn)換方法GPIO利用指針完成地址的轉(zhuǎn)換unsignedint*p表示定義一個(gè)指向無(wú)符號(hào)整型的指針p=0x40010800UL表示為指針變量p賦值,指向地址單元0x40010800UL*p即指針的解引用,表示訪(fǎng)問(wèn)從地址單元0x40010800UL開(kāi)始的4個(gè)字節(jié)地址單元的內(nèi)容地址轉(zhuǎn)換過(guò)程GPIO寄存器定義:#defineGPIOA_CRL*(volatileunsignedint*)(0x40010800UL)0x40010800UL將有符號(hào)常數(shù)轉(zhuǎn)換為一個(gè)無(wú)符號(hào)32位常數(shù)volatileunsignedint*(0x40010800UL)表示將常數(shù)強(qiáng)制轉(zhuǎn)換為指向無(wú)符號(hào)整型的指針,即寄存器的地址*(volatileunsignedint*)(0x40010800UL)表示指針的“解引用”,訪(fǎng)問(wèn)(讀/寫(xiě))指針?biāo)赶虻刂返臄?shù)據(jù)利用define取一個(gè)別名,用GPIOA_CRL代表該存儲(chǔ)空間通過(guò)GPIOA_CRL來(lái)訪(fǎng)問(wèn)對(duì)應(yīng)的存儲(chǔ)空間1234避免編譯器優(yōu)化指針的基類(lèi)型代表從地址0x40010800開(kāi)始的4字節(jié)存儲(chǔ)空間2.5

利用指結(jié)構(gòu)體指針訪(fǎng)問(wèn)寄存器組寄存器組GPIO多個(gè)寄存器的定義地址連續(xù)

利用結(jié)構(gòu)體實(shí)現(xiàn)寄存器名稱(chēng)寄存器起始地址偏移量GPIOA_CRL0x400108000x00GPIOA_CRH0x400108040x04GPIOA_IDR0x400108080x08GPIOA_ODR0x4001080c0x0CGPIOA_BSRR0x400108100x10GPIOA_BRR0x400108140x14GPIOA_LCKR0x400108180x18unsignedint數(shù)據(jù)類(lèi)型占用4個(gè)字節(jié)地址轉(zhuǎn)換過(guò)程GPIO#define

GPIOA

((GPIO_TypeDef*)0x40010800UL)0x40010800UL將有符號(hào)常數(shù)轉(zhuǎn)換為一個(gè)無(wú)符號(hào)32位常數(shù)GPIO_TypeDef*(0x40010800UL)表示將常數(shù)強(qiáng)制轉(zhuǎn)換為指向GPIO_TypeDef類(lèi)型的結(jié)構(gòu)體指針利用define取別名,用GPIOA作為結(jié)構(gòu)體指針的別名123結(jié)構(gòu)體指針加成員變量的形式訪(fǎng)問(wèn)硬件寄存器GPIOA->CRL;GPIO

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論