智能小車系統(tǒng)設(shè)計(jì)-基于STM32 課件 【ch04】實(shí)驗(yàn)2-GPIO與蜂鳴器_第1頁
智能小車系統(tǒng)設(shè)計(jì)-基于STM32 課件 【ch04】實(shí)驗(yàn)2-GPIO與蜂鳴器_第2頁
智能小車系統(tǒng)設(shè)計(jì)-基于STM32 課件 【ch04】實(shí)驗(yàn)2-GPIO與蜂鳴器_第3頁
智能小車系統(tǒng)設(shè)計(jì)-基于STM32 課件 【ch04】實(shí)驗(yàn)2-GPIO與蜂鳴器_第4頁
智能小車系統(tǒng)設(shè)計(jì)-基于STM32 課件 【ch04】實(shí)驗(yàn)2-GPIO與蜂鳴器_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

實(shí)驗(yàn)2GPIO與蜂鳴器智能小車系統(tǒng)設(shè)計(jì)——基于STM3201實(shí)驗(yàn)內(nèi)容通過學(xué)習(xí)蜂鳴器電路原理圖、STM32系統(tǒng)架構(gòu)與存儲(chǔ)器組織,以及GPIO功能框圖、寄存器和固件庫函數(shù),設(shè)計(jì)一個(gè)蜂鳴器驅(qū)動(dòng)程序,并通過DbgCar調(diào)試組件測(cè)試。實(shí)驗(yàn)內(nèi)容02實(shí)驗(yàn)原理實(shí)驗(yàn)原理蜂鳴器電路原理圖

GPIO與蜂鳴器實(shí)驗(yàn)涉及的硬件包括一個(gè)蜂鳴器、與蜂鳴器串聯(lián)的限流電阻R?o。蜂鳴器通過1k2電阻連接到STM32F103RCT6芯片的PD2引腳,如圖4-1所示。PD2引腳為高電平時(shí),蜂鳴器響起;PD2引腳為低電平時(shí),蜂鳴器不工作。實(shí)驗(yàn)原理蜂鳴器電路原理圖

蜂鳴器的工作電流為30mA,但STM32F103RCT6芯片的I/O輸出最大電流為25mA,不適合直接驅(qū)動(dòng)蜂鳴器。實(shí)驗(yàn)原理STM32系統(tǒng)架構(gòu)與存儲(chǔ)器組織

1.STM32系統(tǒng)架構(gòu)STM32由4個(gè)驅(qū)動(dòng)單元和4個(gè)被動(dòng)單元組成,4個(gè)驅(qū)動(dòng)單元分別是Cortex-M3內(nèi)核、DCode總線、System總線和通用DMA1/DMA2,4個(gè)被動(dòng)單元分別是內(nèi)部Flash、內(nèi)部SRAM、FSMC和AHB到APB的橋(AHB2APBx)。STM32系統(tǒng)框圖如圖4-2所示。實(shí)驗(yàn)原理STM32系統(tǒng)架構(gòu)與存儲(chǔ)器組織

實(shí)驗(yàn)原理STM32系統(tǒng)架構(gòu)與存儲(chǔ)器組織

2.STM32存儲(chǔ)器映射Cortex-M3只有一個(gè)單一固定的存儲(chǔ)器映射,這一點(diǎn)極大地方便了軟件在各種以Cortex-M3為內(nèi)核的微控制器間的移植。實(shí)驗(yàn)原理STM32系統(tǒng)架構(gòu)與存儲(chǔ)器組織

實(shí)驗(yàn)原理STM32系統(tǒng)架構(gòu)與存儲(chǔ)器組織

3.STM32部分片內(nèi)外設(shè)寄存器組起始地址STM32片內(nèi)外設(shè)包括ADC1、ADC2、USART1、USART2、USART3、UART4、UART5、SPI1、SPI2/I2S2、SPI3/I2S3、GPIOA、GPIOB、GPIOC、GPIOD、GPIOE、GPIOF、GPIOG、TIM1、TIM2、TIM3、TIM4、TIM5、TIM6、TIM7、TIM8、EXTI、AFIO、DAC、PWR、BKP、CAN_TX、CAN_TR、I2C1、I2C2、IWDG、WWDG和RTC。實(shí)驗(yàn)原理STM32系統(tǒng)架構(gòu)與存儲(chǔ)器組織

GPIO功能框圖

STM32的I/O引腳可以通過寄存器配置為各種不同的功能,如輸入或輸出,所以又被稱為GPIO(GeneralPurposeInputOutput,通用輸入/輸出)。GPIO分為GPIOA、GPIOB、GPIOC、GPIOD、GPIOE、GPIOF和GPIOG共7組,每組端口又分為0~15共計(jì)16個(gè)不同的引腳。對(duì)于不同型號(hào)的STM32核心板,端口的組數(shù)和引腳數(shù)不盡相同,讀者可以參考相應(yīng)芯片的數(shù)據(jù)手冊(cè)。實(shí)驗(yàn)原理實(shí)驗(yàn)原理GPIO功能框圖

1.輸出相關(guān)寄存器

輸出相關(guān)寄存器包括端口位設(shè)置/清除寄存器(GPIOx_BSRR)和端口輸出數(shù)據(jù)寄存器(GPIOx_ODR)??梢酝ㄟ^更改GPIOx_ODR中的值來改變GPIO引腳電平。(GPIOxODR)。可以通過更改GPIOxODR中的值來改變GPIO引腳電平。然而,寫GPIOxODR是一次性更改16個(gè)引腳的電平,這樣很容易把一些不需要更改的引腳電平更改為非預(yù)期值。實(shí)驗(yàn)原理GPIO功能框圖

2.輸出驅(qū)動(dòng)器

輸出驅(qū)動(dòng)器既可以配置為推挽模式,也可以配置為開漏模式。本實(shí)驗(yàn)的蜂鳴器配置為推挽模式,下面對(duì)推挽模式的工作機(jī)理進(jìn)行講解。當(dāng)輸出驅(qū)動(dòng)器的輸出控制端為高電平時(shí),經(jīng)過反向,上方的P-MOS管導(dǎo)通,下方的N-MOS管關(guān)閉,I/O引腳對(duì)外輸出高電平;當(dāng)輸出驅(qū)動(dòng)器的輸出控制端為低電平時(shí),經(jīng)過反向,上方的P-MOS管關(guān)閉,下方的N-MOS管導(dǎo)通,I/O引腳對(duì)外輸出低電平。實(shí)驗(yàn)原理GPIO功能框圖

3.I/O引腳及保護(hù)二極管與I/O引腳相連接的兩個(gè)二極管也稱為保護(hù)二極管,用于防止引腳過高或過低的外部電壓輸入,當(dāng)引腳的外部電壓高于Vpp時(shí),上方的二極管導(dǎo)通,當(dāng)引腳電壓低于Vss時(shí),下方的二極管導(dǎo)通,從而可以防止不正常的電壓引入芯片導(dǎo)致芯片燒毀。實(shí)驗(yàn)原理GPIO部分寄存器STM32的GPIO寄存器地址映射和復(fù)位值如表4-2所示。每個(gè)GPIO端口有7個(gè)寄存器,本實(shí)驗(yàn)涉及的GPIO寄存器包括2個(gè)32位端口配置寄存器(GPIOx_CRL、GPIOx_CRH)、1個(gè)32位端口輸出數(shù)據(jù)寄存器(GPIOx_ODR),1個(gè)32位端口位設(shè)置/清除寄存器(GPIOx_BSRR)、1個(gè)32位端口位清除寄存器(GPIOx_BRR)。實(shí)驗(yàn)原理實(shí)驗(yàn)原理GPIO部分寄存器1.端口配置寄存器(GPIOx_CRL和GPIOx_CRH)4.2.3節(jié)已經(jīng)介紹了STM32的GPIO可以通過寄存器配置成8種模式。每個(gè)GPIO端口具體由CNF[1:0]和MODE[1:0]配置為8種模式中的一種,如表4-3所示。實(shí)驗(yàn)原理實(shí)驗(yàn)原理GPIO部分寄存器2.端口輸出數(shù)據(jù)寄存器(GPIOx_ODR)GPIOxODR是一組GPIO端口16個(gè)引腳的輸出數(shù)據(jù)寄存器,只用了低16位。寫數(shù)據(jù)可以控制某組GPIO的輸出電平。GPIOxODR的結(jié)構(gòu)、偏移地址和復(fù)位值,以及各個(gè)位的解釋說明如圖4-10和表4-5所示。GPIOxODR簡(jiǎn)稱為ODR。實(shí)驗(yàn)原理實(shí)驗(yàn)原理GPIO部分寄存器3.端口位設(shè)置/清除寄存器(GPIOx_BSRR)GPIOx_BSRR用于設(shè)置GPIO端口的輸出位為0或1。該寄存器和ODR具有類似的功能,都可以用來設(shè)置GPIO端口的輸出位為0或1。GPIOx_BSRR的結(jié)構(gòu)、偏移地址和復(fù)位值,以及各個(gè)位的解釋說明如圖4-11和表4-6所示。實(shí)驗(yàn)原理實(shí)驗(yàn)原理GPIO部分寄存器4.端口位清除寄存器(GPIOx_BRR)GPIOxBRR用于設(shè)置GPIO端口的輸出位為0,GPIOx_BRR的結(jié)構(gòu)、偏移地址和復(fù)位值,以及對(duì)部分位的解釋說明如圖4-12和表4-7所示。GPIOx_BRR簡(jiǎn)稱為BRR。實(shí)驗(yàn)原理實(shí)驗(yàn)原理GPIO部分固件庫函數(shù)

1.GPIO_InitGPIO_Init函數(shù)的功能是設(shè)定PA、PB、PC、PD、PE、PF、PG端口的任意一個(gè)引腳的輸入/輸出的配置信息,通過向GPIOx→CRL或GPIOx→CRH寫入?yún)?shù)來實(shí)現(xiàn)。同時(shí),該函數(shù)還可以根據(jù)需要初始化STM32的I/O端口狀態(tài),通過向GPIOx→BRR或GPIOx→BSRR寫入?yún)?shù)來實(shí)現(xiàn)。實(shí)驗(yàn)原理GPIO部分固件庫函數(shù)

2.GPIO_WriteBitGPIO_WriteBit函數(shù)的功能是設(shè)置或清除所選定端口的特定位,通過向GPIOx→BSRR或GPIOx→BRR寫入?yún)?shù)來實(shí)現(xiàn)。具體描述如表4-12所示。實(shí)驗(yàn)原理GPIO部分固件庫函數(shù)

3.GPIO_ReadOutputDataBitGPIO_ReadOutputDataBit函數(shù)的功能是讀取指定外設(shè)端口的指定引腳的輸出值,通過讀GPIOx→ODR來實(shí)現(xiàn)。具體描述如表4-13所示。RCC部分寄存器

本實(shí)驗(yàn)涉及的RCC寄存器只有APB2外設(shè)時(shí)鐘使能寄存器(RCC_APB2ENR),該寄存器的結(jié)構(gòu)、偏移地址和復(fù)位值如圖4-13所示,對(duì)部分位的解釋說明如表4-14所示。實(shí)驗(yàn)原理RCC部分固件庫函數(shù)

RCC_APB2PeriphClockCmd函數(shù)的功能是打開或關(guān)閉APB2上相應(yīng)外設(shè)的時(shí)鐘,通過向RCC→APB2ENR寫入?yún)?shù)來實(shí)現(xiàn)。具體描述如表4-15所示。實(shí)驗(yàn)原理03實(shí)驗(yàn)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論