嵌入式系統(tǒng)原理及應(yīng)用項目化教程 課件 (陳群英)項目1、2 點亮一個LED燈、流水燈控制設(shè)計與實現(xiàn)_第1頁
嵌入式系統(tǒng)原理及應(yīng)用項目化教程 課件 (陳群英)項目1、2 點亮一個LED燈、流水燈控制設(shè)計與實現(xiàn)_第2頁
嵌入式系統(tǒng)原理及應(yīng)用項目化教程 課件 (陳群英)項目1、2 點亮一個LED燈、流水燈控制設(shè)計與實現(xiàn)_第3頁
嵌入式系統(tǒng)原理及應(yīng)用項目化教程 課件 (陳群英)項目1、2 點亮一個LED燈、流水燈控制設(shè)計與實現(xiàn)_第4頁
嵌入式系統(tǒng)原理及應(yīng)用項目化教程 課件 (陳群英)項目1、2 點亮一個LED燈、流水燈控制設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩70頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

嵌入式系統(tǒng)原理及應(yīng)用

項目化教程項目1

點亮一個LED燈目錄1.1嵌入式ARM處理器STM321.2任務(wù)1開發(fā)環(huán)境搭建1.3任務(wù)2使用寄存器點亮一個LED燈1.1嵌入式ARM處理器STM32嵌入式系統(tǒng)概述

嵌入式系統(tǒng)是以應(yīng)用為中心,嵌入到應(yīng)用對象當(dāng)中的專用計算機(jī)系統(tǒng)。由于嵌入式系統(tǒng)具有體積小、性能強(qiáng)、功耗低、可靠性高以及面向具體應(yīng)用等特點,目前已經(jīng)廣泛地應(yīng)用于軍事國防、消費(fèi)電子、信息家電、網(wǎng)絡(luò)通信、工業(yè)控制等各個領(lǐng)域,可以說我們生活在一個充滿嵌入式的世界當(dāng)中。1.1嵌入式ARM處理器STM32ARM處理器1.1嵌入式ARM處理器STM32Cortex-M3概覽1.1嵌入式ARM處理器STM32基于CM3的微控制器1.1嵌入式ARM處理器STM32初識STM32CORTEXM3CPU

72MHz6kB-64kBSRAMARMPeripheralBus(max72MHz)2x12-bitADC

16channels/1Msps1/2xI2C0/1xSPI1/2/4xUSART/LIN

Smartcard/IrDa

ModemControl32/49/80*I/OsUpto16Ext.ITsFlashI/F32kB-512kB

FlashMemoryTempSensor1xUSB2.0FS1xbxCAN2.0B6x16-bitPWM

SynchronizedACTimer2xWatchdog

(independent&window)2/3/5x16-bitTimerExternalMemoryInterface**JTAG/SWDebugXTALoscillators

32KHz+4~16MHzPowerSupply

Reg1.8V

POR/PDR/PVDDMA

3to11*ChannelsNestedvectITCtrl2xSPI/I2S**2xDAC**1xSDIO**ImageSensor**1xUSART/LIN

Smartcard/IrDa

Modem-Ctrl1xSPIBridgeBridge1xSysticTimerARMLiteHi-SpeedBus

Matrix/Arbiter(max72MHz)Int.RCoscillators

32KHz+8MHzPLLClockControlRTC/AWUARMPeripheralBus(max36MHz)20BBackupRegs1.1嵌入式ARM處理器STM32初識STM321.1嵌入式ARM處理器STM32初識STM321.1嵌入式ARM處理器STM32初識STM321.1嵌入式ARM處理器STM32STM32命名規(guī)則1.2任務(wù)1開發(fā)環(huán)境搭建MDK安裝1.2任務(wù)1開發(fā)環(huán)境搭建MDK安裝1.2任務(wù)1開發(fā)環(huán)境搭建MDK安裝1.2任務(wù)1開發(fā)環(huán)境搭建USB轉(zhuǎn)串口驅(qū)動的安裝1.2任務(wù)1開發(fā)環(huán)境搭建開發(fā)板的資源描述1.2任務(wù)1開發(fā)環(huán)境搭建串口燒錄程序1.2任務(wù)1開發(fā)環(huán)境搭建串口燒錄程序1.2任務(wù)1開發(fā)環(huán)境搭建串口燒錄程序1.2任務(wù)1開發(fā)環(huán)境搭建串口燒錄程序1.2任務(wù)2使用寄存器點亮一個LED燈硬件設(shè)計1.2任務(wù)2使用寄存器點亮一個LED燈軟件設(shè)計1.2任務(wù)2使用寄存器點亮一個LED燈軟件設(shè)計1.2任務(wù)2使用寄存器點亮一個LED燈軟件設(shè)計1.2任務(wù)2使用寄存器點亮一個LED燈軟件設(shè)計1.2任務(wù)2使用寄存器點亮一個LED燈軟件設(shè)計1.2任務(wù)2使用寄存器點亮一個LED燈軟件設(shè)計1.2任務(wù)2使用寄存器點亮一個LED燈軟件設(shè)計1.2任務(wù)2使用寄存器點亮一個LED燈軟件設(shè)計1.2任務(wù)2使用寄存器點亮一個LED燈軟件設(shè)計1.2任務(wù)2使用寄存器點亮一個LED燈軟件設(shè)計1.2任務(wù)2使用寄存器點亮一個LED燈軟件設(shè)計#include"stm32f10x.h"

(1)voidSystemInit()

(2){}intmain(){RCC_APB2ENR|=1<<3;

(3)GPIOB_CRL&=~(0x0F<<(4*0));GPIOB_CRL|=(3<<4*0);

(4)GPIOB_BSRR=(1<<(16+0));

(5)while(1){}}1.2任務(wù)2使用寄存器點亮一個LED燈軟件設(shè)計1.2任務(wù)2使用寄存器點亮一個LED燈軟件設(shè)計1.2任務(wù)2使用寄存器點亮一個LED燈軟件設(shè)計#include"stm32f10x.h"voidSystemInit(){}voiddelay(unsignedinti){while(i--);}intmain(){RCC_APB2ENR|=1<<3;GPIOB_CRL&=~(0x0F<<(4*0));GPIOB_CRL|=(3<<4*0);GPIOB_BSRR=(1<<(16+0));while(1){GPIOB_BSRR=(1<<(16+0));delay(0xFFFFF);GPIOB_BSRR=(1<<(0));delay(0xFFFFF);}}1.2任務(wù)2使用寄存器點亮一個LED燈工程編譯與調(diào)試1.2任務(wù)2使用寄存器點亮一個LED燈測試結(jié)果

下載成功后可以看到開發(fā)板上LED0指示燈閃爍舉一反三(1)控制LED3發(fā)光二極管閃爍。(2)點亮LED0、LED1、LED2、LED3指示燈。(3)實現(xiàn)LED0、LED1、LED2、LED3指示燈交替亮滅,類似流水燈效果。嵌入式系統(tǒng)原理及應(yīng)用

項目化教程項目2流水燈控制設(shè)計與實現(xiàn)目錄2.1STM32存儲器映射2.2認(rèn)識STM32固件庫2.3任務(wù)3使用庫函數(shù)點亮流水燈2.1STM32存儲器映射存儲器分塊序號用途地址范圍Block0SRAM(FLASH)0x00000000-0x1FFFFFFF(512MB)Block1SRAM0x20000000-0x3FFFFFFF(512MB)Block2片上外設(shè)0x40000000-0x5FFFFFFF(512MB)Block3FSMC的bank1-bank20x60000000-0x7FFFFFFF(512MB)Block4FSMC的bank3-bank40x80000000-0x9FFFFFFF(512MB)Block5FSMCregister0xA0000000-0xBFFFFFFF(512MB)Block6Notused0xC0000000-0xDFFFFFFF(512MB)Block7Cortex-M3內(nèi)部外設(shè)0xE0000000-0xFFFFFFFF(512MB)2.1STM32存儲器映射總線基地址總線名稱總線基地址相對外設(shè)基地址的偏移APB10x400000000x0APB20x400100000x00010000AHB0x400180000x000180002.1STM32存儲器映射GPIO外設(shè)基地址外設(shè)名稱外設(shè)基地址相對APB2總線的地址偏移GPIOA0x400108000x00000800GPIOB0x40010C000x00000C00GPIOC0x400110000x00001000GPIOD0x400114000x00001400GPIOE0x400118000x00001800GPIOF0x40011C000x00001C00GPIOG0x400120000x000020002.1STM32存儲器映射GPIOB寄存器地址寄存器名稱寄存器地址相對GPIOB基址的偏移GPIOB_CRL0x40010C000x00GPIOB_CRH0x40010C040x04GPIOB_IDR0x40010C080x08GPIOB_ODR0x40010C0C0x0CGPIOB_BSRR0x40010C100x10GPIOB_BRR0x40010C140x14GPIOB_LCKR0x40010C180x182.2認(rèn)識STM32固件庫STM32內(nèi)部有數(shù)百個寄存器,為了方便用戶編程,提高程序的移植性,解決不同廠商的芯片軟件兼容的問題,ST公司推出了一套CMSIS(CortexMicroControllerSoftwareInterfaceStandard)標(biāo)準(zhǔn)固件庫。(1)_htmresc文件夾:存放ST公司的LOGO圖標(biāo)。(2)Libraries文件夾:在這個文件夾內(nèi)有兩個子目錄,CMSIS文件夾用于存放符合CMSIS標(biāo)準(zhǔn)的文件,包括STM32啟動文件、ARMCortex內(nèi)核文件、stm32f10x.h、system_stm32f10x.h和system_stm32f10x.c文件。啟動文件有多種,需根據(jù)使用的STM32芯片來選擇,因為開發(fā)板上使用的是大容量的STM32F1芯片,所以選擇startup_stm32f10x_hd.s。core_cm3.h屬于CMSIS的核心文件,由ARM提供,對于所有CM3內(nèi)核的芯片來說這個文件都是相同的。system_stm32f10x.h主要是申明系統(tǒng)及總線時鐘相關(guān)的函數(shù),其中就有SystemInit()函數(shù)申明,這個函數(shù)在我們系統(tǒng)啟動的時候都會調(diào)用,用來設(shè)置整個系統(tǒng)和總線時鐘。stm32f10x.h是STM32F10x的頭文件,內(nèi)部封裝了STM32的總線、內(nèi)存和外設(shè)寄存器等,同時還包含一些時鐘相關(guān)的定義和中斷相關(guān)定義等。STM32F10x_StdPeriph_Driver文件夾用于存放STM32外設(shè)驅(qū)動文件,inc目錄用于存放外設(shè)的頭文件,src目錄用于存放外設(shè)的源文件。從這些文件的命名就可以知道對應(yīng)文件的功能。(3)Project文件夾:此文件夾下有2個子目錄,STM32F10x_StdPeriph_Examples文件夾存放的是ST公司提供的外設(shè)驅(qū)動例程,在開發(fā)過程中可以借鑒這些例程快速構(gòu)建自己的外設(shè)驅(qū)動。STM32F10x_StdPeriph_Template文件夾存放的是官方的固件庫工程模板,我們后面創(chuàng)建自己工程模板的時候就需要復(fù)制此文件夾內(nèi)的幾個文件。(4)Utilities文件夾:此文件夾是ST官方評估板的一些源文件。(5)stm32f10x_stdperiph_lib_um是固件庫的幫助文檔2.3任務(wù)3使用庫函數(shù)點亮流水燈創(chuàng)建庫函數(shù)工程模板2.3任務(wù)3使用庫函數(shù)點亮流水燈配置魔法棒2.3任務(wù)3使用庫函數(shù)點亮流水燈配置宏信息2.3任務(wù)3使用庫函數(shù)點亮流水燈配置頭文件路徑2.3任務(wù)3使用庫函數(shù)點亮流水燈編譯模板工程2.3任務(wù)3使用庫函數(shù)點亮流水燈STM32GPIO結(jié)構(gòu)2.3任務(wù)3使用庫函數(shù)點亮流水燈輸入工作模式1—輸入浮空模式2.3任務(wù)3使用庫函數(shù)點亮流水燈輸入工作模式2—輸入上拉模式2.3任務(wù)3使用庫函數(shù)點亮流水燈輸入工作模式3—輸入下拉模式2.3任務(wù)3使用庫函數(shù)點亮流水燈輸入工作模式4—模擬模式2.3任務(wù)3使用庫函數(shù)點亮流水燈輸出工作模式1—開漏輸出模式2.3任務(wù)3使用庫函數(shù)點亮流水燈輸出工作模式2—開漏復(fù)用輸出模式2.3任務(wù)3使用庫函數(shù)點亮流水燈輸出工作模式3—推挽輸出模式2.3任務(wù)3使用庫函數(shù)點亮流水燈輸出工作模式4—推挽復(fù)用輸出模式2.3任務(wù)3使用庫函數(shù)點亮流水燈GPIO工作方式上電復(fù)位后,GPIO默認(rèn)為浮空狀態(tài),部分特殊功能引腳為特定狀態(tài)推挽輸出:可以輸出強(qiáng)高低電平,連接數(shù)字器件

開漏輸出:只可以輸出強(qiáng)低電平,高電平得靠外部電阻拉高。輸出端相當(dāng)于三極管的集電極.要得到高電平狀態(tài)需要上拉電阻才行.適合于做電流型的驅(qū)動,其吸收電流的能力相對強(qiáng)(一般20ma以內(nèi))2.3任務(wù)3使用庫函數(shù)點亮流水燈GPIO相關(guān)配置寄存器每組GPIO端口的寄存器包括:兩個32位配置寄存器(GPIOx_CRL,GPIOx_CRH),兩個32位數(shù)據(jù)寄存器(GPIOx_IDR和GPIOx_ODR),一個32位置位/復(fù)位寄存器(GPIOx_BSRR),一個16位復(fù)位寄存器(GPIOx_BRR),一個32位鎖定寄存器(GPIOx_LCKR)。每個I/O端口位可以自由編程,然而I/O端口寄存器必須按32位字被訪問(不允許半字或字節(jié)訪問)。2.3任務(wù)3使用庫函數(shù)點亮流水燈GPIO相關(guān)配置寄存器-GPIOx_CRL:端口配置低寄存器-GPIOx_CRH:端口配置高寄存器

-GPIOx_IDR:端口輸入寄存器-GPIOx_ODR:端口輸出寄存器

-GPIOx_BSRR:端口位設(shè)置/清除寄存器

-GPIOx_BRR:端口位清除寄存器-GPIOx_LCKR:端口配置鎖存寄存器是每組IO口含下面7個寄存器。也就是7個寄存器,一共可以控制一組GPIO的16個IO口。2.3任務(wù)3使用庫函數(shù)點亮流水燈端口配置低寄存器(GPIOx_CRL)2.3任務(wù)3使用庫函數(shù)點亮流水燈端口配置低寄存器(GPIOx_CRL)2.3任務(wù)3使用庫函數(shù)點亮流水燈端口配置高寄存器(GPIOx_CRH)2.3任務(wù)3使用庫函數(shù)點亮流水燈端口輸入數(shù)據(jù)寄存器(GPIOx_IDR)2.3任務(wù)3使用庫函數(shù)點亮流水燈端口輸出數(shù)據(jù)寄存器(GPIOx_ODR)2.3任務(wù)3使用庫函數(shù)點亮流水燈端口輸出數(shù)據(jù)寄存器(GPIOx_ODR)2.3任務(wù)3使用庫函數(shù)點亮流水燈端口位設(shè)置/清除寄存器(GPIOx_BSRR)2.3任務(wù)3使用庫函數(shù)點亮流水燈端口位清除寄存器(GPIOx_BRR)2.3任務(wù)3使用庫函數(shù)點亮流水燈使用GPIO庫函數(shù)點亮流水燈2.3任務(wù)3使用庫函數(shù)點亮流水燈LEDGPIO初始化voidLED_Init(){GPIO_InitTypeDefGPIO_InitStructure;//定義結(jié)構(gòu)體變量RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//使能GPIOB外設(shè)時鐘GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3;//選擇要設(shè)置的IO口GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;//設(shè)置推挽輸出模式GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;//設(shè)置傳輸速率GPIO_Init(GPIOB,&GPIO_Ini

溫馨提示

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

最新文檔

評論

0/150

提交評論