-
- 素材大。
- 894.5 KB
- 素材授權(quán):
- 免費(fèi)下載
- 素材格式:
- .ppt
- 素材上傳:
- lipeier
- 上傳時(shí)間:
- 2019-06-26
- 素材編號(hào):
- 234381
- 素材類別:
- 課件PPT
-
素材預(yù)覽
這是stm32ppt,包括了何為嵌入式系統(tǒng),嵌入式系統(tǒng)的特點(diǎn)及發(fā)展趨勢(shì),嵌入式系統(tǒng)的開發(fā)過程,如何成為嵌入式開發(fā)人員等內(nèi)容,歡迎點(diǎn)擊下載。
stm32ppt是由紅軟PPT免費(fèi)下載網(wǎng)推薦的一款課件PPT類型的PowerPoint.
stm32嵌入式開發(fā) 第一講:嵌入式系統(tǒng)開發(fā)概述 課程安排 何為嵌入式系統(tǒng) 嵌入式系統(tǒng)的特點(diǎn)及發(fā)展趨勢(shì) 嵌入式系統(tǒng)的開發(fā)過程 如何成為嵌入式開發(fā)人員 何為嵌入式系統(tǒng) 嵌入式系統(tǒng),英文全稱為Embeded System。 IEEE 的定義:嵌入式系統(tǒng)是“控制、監(jiān)視或者輔助裝置、機(jī)器和設(shè)備運(yùn)行的裝置”。 業(yè)界普遍采用的定義:嵌入式系統(tǒng)是以應(yīng)用為中心、以計(jì)算機(jī)技術(shù)為基礎(chǔ)、軟件硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗等嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。 理解嵌入式系統(tǒng) 嵌入式系統(tǒng)是與應(yīng)用緊密結(jié)合的,是面向用戶、面向產(chǎn)品、面向應(yīng)用的。 嵌入式系統(tǒng)是一個(gè)技術(shù)密集、資金密集、高度分散、不斷創(chuàng)新的知識(shí)集成系統(tǒng)。 嵌入式系統(tǒng)可定制、可裁減。 嵌入式系統(tǒng)中的軟件一般都固化在存儲(chǔ)器芯片或單片機(jī)本身中。 嵌入式系統(tǒng)本身不具備自主開發(fā)能力。 嵌入式系統(tǒng)的基本結(jié)構(gòu) 嵌入式系統(tǒng)可以籠統(tǒng)地分為硬件和軟件兩部分。 嵌入式處理器 嵌入式微處理器EMPU 嵌入式微控制器MCU 嵌入式數(shù)字信號(hào)處理器EDSP 片上可編程系統(tǒng)SOPC 嵌入式系統(tǒng)的特點(diǎn) 嵌入式系統(tǒng)是與應(yīng)用緊密結(jié)合的。 嵌入式系統(tǒng)具有很強(qiáng)的專用性,可定制、可裁減,且必須結(jié)合實(shí)際系統(tǒng)需求進(jìn)行合理的裁減利用。 嵌入式系統(tǒng)是一個(gè)技術(shù)密集、資金密集、高度分散、不斷創(chuàng)新的知識(shí)集成系統(tǒng)。 嵌入式系統(tǒng)必須有采用專用的開發(fā)工具和環(huán)境才能進(jìn)行開發(fā)。 嵌入式系統(tǒng)具有通用計(jì)算機(jī)的功能,但實(shí)現(xiàn)了小型化的體積和高的運(yùn)行可靠性。 嵌入式系統(tǒng)需要根據(jù)不同的處理器來進(jìn)行定制。 嵌入式系統(tǒng)的發(fā)展趨勢(shì) 嵌入式處理器的功能越來越強(qiáng)大,而功耗不斷降低。 嵌入式系統(tǒng)的人機(jī)界面不斷強(qiáng)化,應(yīng)用更加人性化。 嵌入式系統(tǒng)開發(fā)環(huán)境不斷優(yōu)化,提供了更為豐富的調(diào)試功能。 嵌入式系統(tǒng)逐漸強(qiáng)化聯(lián)網(wǎng)功能。 嵌入式系統(tǒng)開始提供更為豐富的接口。 嵌入式系統(tǒng)越來越滲透到不同的產(chǎn)品中。 嵌入式系統(tǒng)的開發(fā)過程 如何成為嵌入式開發(fā)人員 要想成為一個(gè)比較優(yōu)秀的嵌入式開發(fā)人員,應(yīng)該牢記“博、專、實(shí)踐”的原則。 博 專 實(shí)踐 嵌入式操作系統(tǒng)概述 嵌入式操作系統(tǒng)的發(fā)展歷史 第一階段(簡(jiǎn)單操作系統(tǒng)) 第二階段(通用的嵌人式實(shí)時(shí)操作系統(tǒng)) 第三階段(Intemet嵌入式系統(tǒng)) 嵌入式操作系統(tǒng)的分類 按照是否免費(fèi)來分類 免費(fèi)嵌入式操作系統(tǒng) 收費(fèi)的嵌入式操作系統(tǒng) 按照系統(tǒng)對(duì)相應(yīng)時(shí)間的敏感程度 硬實(shí)時(shí)系統(tǒng) 軟實(shí)時(shí)系統(tǒng) 非實(shí)時(shí)系統(tǒng) 嵌入式操作系統(tǒng)的特點(diǎn) 能夠有效管理復(fù)雜的系統(tǒng)資源。 嵌人式操作系統(tǒng)提高了系統(tǒng)的可靠性。 能夠把硬件虛擬化。 能夠提供庫(kù)函數(shù)、驅(qū)動(dòng)程序、工具集以及應(yīng)用程序,提高了開發(fā)效率,縮短了開發(fā)周期。 具有高的系統(tǒng)實(shí)時(shí)性能。 嵌入式操作系統(tǒng)充分發(fā)揮了32位CPU的多任務(wù)潛力 嵌入式系統(tǒng)都是為了完成一些特定的任務(wù)而設(shè)計(jì)的,通用型操作系統(tǒng)往往無法滿足某些特定的要求。 嵌入式系統(tǒng)的系統(tǒng)資源相對(duì)通用系統(tǒng)來說是極為有限的。 嵌入式系統(tǒng)配置靈活。 ARM體系結(jié)構(gòu)的特點(diǎn) 體積小、低功耗、低成本、高性能。 支持 Thumb(16 位)/ARM(32 位)雙指令集,能很好的兼容8/16 位器件。 大量使用寄存器,指令執(zhí)行速度更快。 ARM處理器共有37個(gè)寄存器,分為若干個(gè)組(BANK)。 大多數(shù)數(shù)據(jù)操作都在寄存器中完成。 ARM處理器有7種不同的處理器模式 尋址方式靈活簡(jiǎn)單,執(zhí)行效率高。 指令長(zhǎng)度固定。 Cortex-M3微處理器 Cortex-M3微處理器采用ARMv7-M 架構(gòu) 。 Cortex-M3系列微處理器的主要特點(diǎn)如下: Thumb-2 指令集架構(gòu)(ISA)的子集。 哈佛處理器架構(gòu),在加載/存儲(chǔ)數(shù)據(jù)的同時(shí)能夠執(zhí)行指令取指。 三級(jí)流水線。 32 位單周期乘法。 具備硬件除法。 Thumb 狀態(tài)和調(diào)試狀態(tài)。 處理模式和線程模式。 ISR 的低延遲進(jìn)入和退出。 可中斷-可繼續(xù)的LDM/STM,PUSH/POP。 ARMv6類型BE8/LE支持。 ARMv6 非對(duì)齊訪問。 RealView MDK系統(tǒng)安裝需求 最小內(nèi)存128MB; 硬盤空間剩余至少50M; Windows98或者后續(xù)的操作系統(tǒng); RealView MDK的安裝 RealView MDK的安裝 RealView MDK的安裝 RealView MDK的安裝 RealView MDK的安裝 RealView MDK的安裝 RealView MDK的安裝 RealView MDK集成開發(fā)環(huán)境總攬 基于ARM Cortex-M3的STM32最小開發(fā)系統(tǒng) 數(shù)據(jù)傳送指令 寄存器間數(shù)據(jù)傳送指令 存儲(chǔ)器數(shù)據(jù)傳送指令 索引數(shù)據(jù)傳送指令 寄存器間數(shù)據(jù)傳送指令 MOV R8, R3 MVN 存儲(chǔ)器數(shù)據(jù)傳送指令 存儲(chǔ)器數(shù)據(jù)傳送指令 索引數(shù)據(jù)傳送指令 索引數(shù)據(jù)傳送指令 數(shù)據(jù)處理指令 算術(shù)四則運(yùn)算指令 64位乘法指令 邏輯操作指令 移位和循環(huán)指令 數(shù)據(jù)序轉(zhuǎn)指令 位操作指令 通用I/O接口的結(jié)構(gòu) 通用I/O接口的結(jié)構(gòu) GPIO的功能 通用I/O 單獨(dú)的位設(shè)置或位清除 外部中斷/喚醒線 復(fù)用功能(AF)和重映射 GPIO鎖定機(jī)制 GPIO的功能配置 輸入配置 輸出配置 復(fù)用功能配置 模擬輸入配置 復(fù)用功能與重映射 OSC_IN引腳和OSC_OUT引腳 OSC_IN/OSC_OUT PD0/PD1 復(fù)用功能與重映射 復(fù)用功能與重映射 復(fù)用功能與重映射 復(fù)用功能與重映射 復(fù)用功能與重映射 復(fù)用功能與重映射 GPIO寄存器結(jié)構(gòu) typedef struct { vu32 CRL; //端口控制寄存器的低字節(jié) vu32 CRH; //端口控制寄存器的高字節(jié) vu32 IDR; //端口輸入數(shù)據(jù)寄存器 vu32 ODR; //端口輸出數(shù)據(jù)寄存器 vu32 BSRR; //位置位/復(fù)位寄存器 vu32 BRR; //位復(fù)位寄存器 vu32 LCKR; //鎖定寄存器 } GPIO_TypeDef; typedef struct { vu32 EVCR; //事件控制寄存器 vu32 MAPR; //重映射調(diào)試及AF寄存器 vu32 EXTICR[4]; //配置寄存器 } AFIO_TypeDef; 通用I/O接口的編程方法 庫(kù)函數(shù): GPIO_DeInit函數(shù) GPIO_AFIODeInit函數(shù) GPIO_Init函數(shù) GPIO_StructInit函數(shù) GPIO_ReadInputDataBit函數(shù) GPIO_ReadInputData函數(shù) GPIO_ReadOutputDataBit函數(shù) GPIO_ReadOutputData函數(shù) GPIO_SetBits函數(shù) GPIO_ResetBits函數(shù) GPIO_WriteBit函數(shù) GPIO_Write函數(shù) GPIO_PinLockConfig函數(shù) GPIO_EventOutputConfig函數(shù) GPIO_EventOutputCmd函數(shù) GPIO_PinRemapConfig函數(shù) GPIO_EXTILineConfig函數(shù) Flash閃存的結(jié)構(gòu) STM32高性能的閃存模塊提供了 高達(dá)512K字節(jié)的容量 10萬次以上的擦寫次數(shù) 在128K的STM32中,閃存由如下兩部分組成: 主存儲(chǔ)塊為16Kx64 位。 信息塊為320x64 位。 Flash閃存的基本特性 Flash閃存讀取 等待時(shí)間 預(yù)取 半周期 Flash閃存編程和擦除 Flash寄存器結(jié)構(gòu) typedef struct { vu32 ACR; //Flash進(jìn)入控制寄存器 vu32 KEYR; //FPEC關(guān)鍵寄存器 vu32 OPTKEYR; //選項(xiàng)字節(jié)關(guān)鍵寄存器 vu32 SR; //Flash狀態(tài)寄存器 vu32 CR; //Flash控制寄存器 vu32 AR; //Flash地址寄存器 vu32 RESERVED; //保留 vu32 OBR; //選項(xiàng)字節(jié)和狀態(tài)寄存器 vu32 WRPR; //選項(xiàng)字節(jié)寫保護(hù)寄存器 } FLASH_TypeDef; typedef struct { vu16 RDP; //讀出選項(xiàng)字節(jié) vu16 USER; //用戶選項(xiàng)字節(jié) vu16 Data0; //數(shù)據(jù)0選項(xiàng)字節(jié) vu16 Data1; //數(shù)據(jù)1選項(xiàng)字節(jié) vu16 WRP0; //寫保護(hù)0的選項(xiàng)字節(jié) vu16 WRP1; //寫保護(hù)1的選項(xiàng)字節(jié) vu16 WRP2; //寫保護(hù)2的選項(xiàng)字節(jié) vu16 WRP3; //寫保護(hù)3的選項(xiàng)字節(jié) } OB_TypeDef; Flash的編程方法 庫(kù)函數(shù): Flash_SetLatency函數(shù) Flash_HalfCycleAccessCmd函數(shù) Flash_PrefetchBufferCmd函數(shù) Flash_Unlock函數(shù) Flash_Lock函數(shù) Flash_ErasePage函數(shù) Flash_EraseAllPages函數(shù) Flash_EraseOptionBytes函數(shù) Flash_ProgramWord函數(shù) Flash_ProgramHalfWord函數(shù) Flash_ProgramOptionByteData函數(shù) Flash_EnableWriteProtection函數(shù)Flash_ReadOutProtection函數(shù) Flash_UserOptionByteConfig函數(shù) Flash的編程方法(續(xù)) 庫(kù)函數(shù): Flash_GetUserOptionByte函數(shù) Flash_GetWriteProtectionOptionByte函數(shù) Flash_GetReadOutProtectionStatus函數(shù) Flash_GetPrefectchBufferStatus函數(shù) Flash_ITConfig函數(shù) Flash_GetFlagStatus函數(shù) Flash_ClearFlag函數(shù) Flash_GetStatus函數(shù) Flash_WaitForLastOperation函數(shù) ADC系統(tǒng)概述 STM32芯片內(nèi)部集成的12位ADC: 是一種逐次逼近型模擬數(shù)字轉(zhuǎn)換器。 具有18個(gè)通道 可測(cè)量16個(gè)外部和2個(gè)內(nèi)部信號(hào)源。 ADC系統(tǒng)各通道的A/D轉(zhuǎn)換可以單次、連續(xù)、掃描或間斷模式執(zhí)行。 ADC系統(tǒng)概述 STM32的ADC系統(tǒng)所用到的引腳,有如下幾個(gè): VREF+ VDDA VREF- VSSA ADC_IN[15:0] EXTSEL[2:0] JEXTSEL[2:0] ADC系統(tǒng)功能特性 ADC開關(guān)控制 ADC時(shí)鐘 ADC通道選擇 ADC的轉(zhuǎn)換模式 ADC的掃描模式 ADC的注入通道管理 間斷模式 ADC的校準(zhǔn)模式 可編程的通道采樣時(shí)間 外部觸發(fā)轉(zhuǎn)換 DMA請(qǐng)求 中斷 模擬看門狗 ADC的數(shù)據(jù)對(duì)齊 ADC_CR2寄存器的ADC的數(shù)據(jù)對(duì)齊 ALIGN位選擇轉(zhuǎn)換后數(shù)據(jù)儲(chǔ)存的對(duì)齊方式。 雙ADC模式 同時(shí)注入模式 同時(shí)規(guī)則模式 快速交替模式 慢速交替模式 交替觸發(fā)模式 獨(dú)立模式 組合模式 同時(shí)注入模式+同時(shí)規(guī)則模式 同時(shí)規(guī)則模式+交替觸發(fā)模式 同時(shí)注入模式+交替模式 溫度傳感器 溫度傳感器在內(nèi)部和ADC_IN16輸入通道相連接,此通道把傳感器輸出的電壓轉(zhuǎn)換成數(shù)字值。 溫度傳感器的參數(shù): 支持的溫度范圍為-40到125度 精確度為+/-1.5°C 模擬輸入的采樣時(shí)間必須大于2.2 μs。 ADC寄存器結(jié)構(gòu) typedef struct { vu32 SR; //ADC狀態(tài)寄存器 vu32 CR1; //ADC配置寄存器1 vu32 CR2; //ADC配置寄存器2 vu32 SMPR1; //ADC樣本時(shí)間寄存器1 vu32 SMPR2; //ADC樣本時(shí)間寄存器2 vu32 JOFR1; //ADC位移寄存器1 vu32 JOFR2; //ADC位移寄存器2 vu32 JOFR3; //ADC位移寄存器3 vu32 JOFR4; //ADC位移寄存器4 vu32 HTR; //ADC高壓域值寄存器 vu32 LTR; //ADC低壓域值寄存器 vu32 SQR1; //ADC用于常規(guī)組的序列選擇器寄存器1 vu32 SQR2; //ADC用于常規(guī)組的序列選擇器寄存器2 vu32 SQR3; //ADC用于常規(guī)組的序列選擇器寄存器3 vu32 JSQR; //ADC用于常規(guī)組的序列選擇器寄存器 vu32 JDR1; //ADC數(shù)據(jù)轉(zhuǎn)換注入組寄存器1 vu32 JDR2; //ADC數(shù)據(jù)轉(zhuǎn)換注入組寄存器2 vu32 JDR3; //ADC數(shù)據(jù)轉(zhuǎn)換注入組寄存器3 vu32 JDR4; //ADC數(shù)據(jù)轉(zhuǎn)換注入組寄存器4 vu32 DR; //ADC常規(guī)組數(shù)據(jù)寄存器 } ADC_TypeDef; ADC的編程方法 庫(kù)函數(shù): ADC_DeInit函數(shù) ADC_Init函數(shù) ADC_StructInit函數(shù) ADC_Cmd函數(shù) ADC_DMACmd函數(shù) ADC_ITConfig函數(shù) ADC_ResetCalibration函數(shù) ADC_GetResetCalibrationStatus函數(shù) ADC_StartCalibration函數(shù) ADC_GetCalibrationStatus函數(shù) ADC_SoftwareStartConvCmd函數(shù) ADC的編程方法(續(xù)) 庫(kù)函數(shù): ADC_GetSoftwareStartConvStatus函數(shù) ADC_DiscModeChannelCountConfig函數(shù) ADC_DiscModeCmd函數(shù) ADC_RegularChannelConfig函數(shù) ADC_ExternalTrigConvCmd函數(shù) ADC_GetConversionValue函數(shù) ADC_GetDualModeConversionValue函數(shù) ADC_AutoInjectedConvCmd函數(shù)ADC_InjectedDiscModeCmd函數(shù) ADC_ExternalTrigInjectedConvConfig函數(shù) ADC_ExternalTrigInjectedConvCmd函數(shù) 嵌套向量中斷控制器(NVIC) STM32嵌套向量中斷控制器(NVIC)主要特性如下: 具有43 個(gè)可屏蔽中斷通道(不包含16 個(gè)Cortex-M3 的中斷線)。 具有16 個(gè)可編程的優(yōu)先等級(jí)。 可實(shí)現(xiàn)低延遲的異常和中斷處理。 具有電源管理控制。 系統(tǒng)控制寄存器的實(shí)現(xiàn)。 NVIC寄存器結(jié)構(gòu) typedef struct { vu32 Enable[2]; //中斷置位使能寄存器 u32 RESERVED0[30]; vu32 Disable[2]; //中斷清除使能寄存器 u32 RSERVED1[30]; vu32 Set[2]; //中斷置位掛起寄存器 u32 RESERVED2[30]; vu32 Clear[2]; //中斷清除掛起寄存器 u32 RESERVED3[30]; vu32 Active[2]; //中斷活動(dòng)位寄存器 u32 RESERVED4[62]; vu32 Priority[11]; //中斷優(yōu)先級(jí)寄存器 } NVIC_TypeDef; typedef struct { vu32 CPUID; //CPUID基寄存器 vu32 IRQControlState; //中斷控制狀態(tài)寄存器 vu32 ExceptionTableOffset; //向量表偏移寄存器 vu32 AIRC; //應(yīng)用中斷/復(fù)位控制寄存器 vu32 SysCtrl; //系統(tǒng)控制寄存器 vu32 ConfigCtrl; //配置控制寄存器 vu32 SystemPriority[3]; //系統(tǒng)處理優(yōu)先級(jí)寄存器 vu32 SysHandlerCtrl; //系統(tǒng)處理控制和狀態(tài)寄存器 vu32 ConfigFaultStatus; //配置出錯(cuò)狀態(tài)寄存器 vu32 HardFaultStatus; //硬件出錯(cuò)狀態(tài)寄存器 vu32 DebugFaultStatus; //調(diào)試出錯(cuò)寄存器 vu32 MemoryManageFaultAddr; //存儲(chǔ)器管理出錯(cuò)地址寄存器 vu32 BusFaultAddr; //總線出錯(cuò)地址 } SCB_TypeDef; NVIC的編程方法 庫(kù)函數(shù): NVIC_DeInit函數(shù) NVIC_SCBDeInit函數(shù) NVIC_PriorityGroupConfig函數(shù) NVIC_Init函數(shù) NVIC_StructInit函數(shù) NVIC_SETPRIMASK函數(shù) NVIC_RESETPRIMASK函數(shù) NVIC_SETFAULTMASK函數(shù) NVIC_RESETFAULTMASK函數(shù) NVIC_BASEPRICONFIG函數(shù) NVIC_GetBASEPRI函數(shù) NVIC_GetCurrentPendingIRQChannel函數(shù) NVIC_GetIRQChannelPendingBitStatus函數(shù) NVIC_GetIRQChannelPendingBit函數(shù) NVIC_ClearIRQChannelPendingBit函數(shù) NVIC的編程方法(續(xù)) 庫(kù)函數(shù): NVIC_GetCurrentActiveHandle函數(shù) NVIC_GetIRQChannelActiveBitStatus函數(shù) NVIC_GetCPUID函數(shù) NVIC_SetVectorTable函數(shù) NVIC_GenerateSystemReset函數(shù) NVIC_GenerateCoreReset函數(shù) NVIC_SystemLPConfig函數(shù) NVIC_SystemHandlerConfig函數(shù) NVIC_SystemHandlerPriorityConfig函數(shù) NVIC_GetSystemHandlerPendingBitStatus函數(shù) NVIC_SetSystemHandlerPendingBit函數(shù) NVIC_ClearSystemHandlerPendingBit函數(shù) NVIC_GetSystemHandlerActiveBitStatus函數(shù) NVIC_GetFaultHandlerSources函數(shù) NVIC_GetFaultAddress函數(shù) 外部中斷/事件控制器(EXTI) STM32的EXTI 控制器主要特性如下: 每個(gè)中斷/事件都有獨(dú)立的觸發(fā)和屏蔽。 每個(gè)中斷線都有專用的狀態(tài)位。 支持多達(dá)19 個(gè)中斷/事件請(qǐng)求。 檢測(cè)脈沖寬度低于APB2 時(shí)種寬度的外部信號(hào)。 喚醒事件管理 通過處理外部時(shí)間或內(nèi)部中斷來喚醒內(nèi)核。 通過配置任何外部I/O端口、RTC 鬧鐘和USB喚醒事件可以喚醒CPU(內(nèi)核從WFE退出)。 外部中斷/事件線路映像 EXTI功能說明 如果需要產(chǎn)生中斷,中斷線必須事先配置好并被激活。 為產(chǎn)生一個(gè)有效的事件觸發(fā),事件連接線必須事先配置好并被激活。 硬件中斷選擇可以配置19 個(gè)線路做為中斷源。 硬件事件選擇可以配置19 個(gè)線路為事件源。 EXTI的編程方法 庫(kù)函數(shù): EXTI_DeInit函數(shù) EXTI_Init函數(shù) EXTI_StructInit函數(shù) EXTI_GenerateSWInterrupt函數(shù) EXTI_GetFlagStatus函數(shù) EXTI_ClearFlag函數(shù) EXTI_GetITStatus函數(shù) EXTI_ClearITPendingBit函數(shù) USART結(jié)構(gòu) STM32的USART為通用同步異步收發(fā)器 工業(yè)標(biāo)準(zhǔn)NRZ異步串行數(shù)據(jù)格式。 分?jǐn)?shù)波特率發(fā)生器。 同步單向通信和半雙工單線通信。 LIN(局部互連網(wǎng))。 智能卡協(xié)議和IrDA(紅外數(shù)據(jù))SIR ENDEC規(guī)范。 調(diào)制解調(diào)器(CTS/RTS)。 多處理器通信能力。 DMA方式。 USART特征描述 STM32的數(shù)據(jù)字長(zhǎng) 通信格式 USART發(fā)送器 USART發(fā)送配置過程如下: 通過在USART_CR1寄存器上置位UE位來激活USART。 通過設(shè)置USART_CR1的M位來定義傳輸字長(zhǎng)。 在USART_CR2中設(shè)置停止位的位數(shù)。 如果采用多緩沖器通信,配置USART_CR3中的DMA使能位(DMAT),同時(shí)設(shè)置DMA寄存器。 設(shè)置USART_CR1中的TE位,發(fā)送一個(gè)空閑幀作為第一次數(shù)據(jù)發(fā)送。 利用USART_BRR寄存器選擇要求的波特率。 把要發(fā)送的數(shù)據(jù)寫進(jìn)USART_DR寄存器(此動(dòng)作清除TXE位)。在只有一個(gè)緩沖器的情況下,對(duì)每個(gè)待發(fā)送的數(shù)據(jù)重復(fù)步驟(7)。 USART接收器 整個(gè)USART接收配置過程如下: 將USART_CR1寄存器的UE置1來激活USART。 設(shè)置USART_CR1的M位定義字長(zhǎng)。 在USART_CR2中設(shè)置停止位的個(gè)數(shù)。 如果需多緩沖器通信,選擇USART2_CR3中的DMA使能位(DMAT),同時(shí)設(shè)置DMA寄存器。 利用波特率寄存器USART_BRR選擇希望的波特率。 設(shè)置USART_CR1的RE位,激活USART接收器,使其開始尋找起始位。 USART增強(qiáng)功能 LIN模式 USART同步模式 USART單線半雙工通信 USART的智能卡功能 USART的IrDA模式 USART的DMA通信 USART的硬件流控制 USART的中斷請(qǐng)求 USART的編程方法 庫(kù)函數(shù): USART_DeInit函數(shù) USART_Init函數(shù) USART_StrucInit函數(shù) USART_Cmd函數(shù) USART_ITConfig函數(shù) USART_DMACmd函數(shù) USART_SetAddress函數(shù) USART_WakeUpConfig函數(shù) USART_ReceiverWakeUpCmd函數(shù) USART_LINBreakDetectionConfig函數(shù) USART_LINCmd函數(shù) USART_SendData函數(shù) USART的編程方法 (續(xù)) 庫(kù)函數(shù): USART_ReceiveData函數(shù) USART_SendBreak函數(shù) USART_SetGuardTime函數(shù) USART_SetPrescaler函數(shù) USART_SmartCardCmd函數(shù) USART_SmartCardNackCmd函數(shù) USART_HalfDuplexCmd函數(shù) USART_IrDAConfig函數(shù) USART_IrDACmd函數(shù) USART_GetFlagStatus函數(shù) USART_ClearFlag函數(shù) USART_GetITStatus函數(shù) USART_ClearITPendingBit函數(shù) CAN結(jié)構(gòu) CAN模式 STM32的bxCAN具有7種模式: 初始化模式 正常模式 睡眠模式 測(cè)試模式 靜默模式 環(huán)回模式 環(huán)回靜默模式 CAN的編程方法 庫(kù)函數(shù): CAN_DeInit函數(shù) CAN_Init函數(shù) CAN_FilterInit函數(shù) CAN_StructInit函數(shù) CAN_ITConfig函數(shù) CAN_Transmit函數(shù) CAN_TransmitStatus函數(shù) CAN_CancelTransmit函數(shù) CAN_FIFORelease函數(shù) CAN_MessagePending函數(shù) CAN_Receive函數(shù) CAN_Sleep函數(shù) CAN_WakeUp函數(shù) CAN_GetFlagStatus函數(shù) CAN_ClearFlag函數(shù) CAN_GetITStatus函數(shù) CAN_ClearITPendingBit函數(shù) SPI結(jié)構(gòu) STM32的SPI接口通過如下引腳和外部設(shè)備相連: MISO引腳 MOSI引腳 SCK引腳 NSS引腳 SPI從模式工作原理 配置SPI從模式的步驟如下: 設(shè)置DFF位以定義數(shù)據(jù)幀格式為8位或16位。 定義數(shù)據(jù)傳輸和串行時(shí)鐘之間的相位關(guān)系。 幀格式必須和主設(shè)備相同,MSB在前還是LSB在前取決于SPI_CR1寄存器中的LSBFIRST位。 硬件模式下,在完整的數(shù)據(jù)幀(8位或16位)發(fā)送過程中,NSS引腳必須為低電平。軟件模式下,設(shè)置SPI_CR1寄存器中的SSM位并清除SSI位。 清除MSTR位,設(shè)置SPE位,使相應(yīng)引腳工作于SPI模式下。 SPI主模式工作原理 配置SPI主模式的步驟如下: 設(shè)置SPI_CR1寄存器的BR[2:0]位,來定義串行時(shí)鐘波特率。 選擇CPOL和CPHA位,定義數(shù)據(jù)傳輸和串行時(shí)鐘間的相位關(guān)系。 設(shè)置DFF位來定義8或16位數(shù)據(jù)幀格式。 配置SPI_CR1寄存器的LSBFIRST位定義幀格式。 如果NSS引腳需要工作在輸入模式,硬件模式中在整個(gè)數(shù)據(jù)幀傳輸期間應(yīng)把NSS引腳連接到高電平;在軟件模式中,需設(shè)置SPI_CR1寄存器的SSM和SSI位。如果NSS引腳工作在輸出模式,則只需設(shè)置SSOE位。 設(shè)置MSTR和SPE位,只當(dāng)NSS引腳被連到高電平,這些位才能保持置位。 SPI高級(jí)功能 SPI通信的CRC SPI的DMA通信 全雙工模式 單工模式 SPI的中斷請(qǐng)求 SPI的編程方法 庫(kù)函數(shù): SPI_DeInit函數(shù) SPI_Init函數(shù) SPI_StructInit函數(shù) SPI_Cmd函數(shù) SPI_ITConfig函數(shù) SPI_DMACmd函數(shù) SPI_SendData函數(shù) SPI_ReceiveData函數(shù) SPI_NSSInternalSoftwareConfig函數(shù) SPI_SSOutputCmd函數(shù) SPI的編程方法 (續(xù)) 庫(kù)函數(shù): SPI_DataSizeConfig函數(shù) SPI_TransmitCRC函數(shù) SPI_CalculateCRC函數(shù) SPI_GetCRC函數(shù) SPI_GetCRCPolynomial函數(shù) SPI_BiDirectionalLineConfig函數(shù) SPI_GetFlagStatus函數(shù) SPI_ClearFlag函數(shù) SPI_GetITStatus函數(shù) SPI_ClearITPendingBit函數(shù) I2C結(jié)構(gòu) STM32內(nèi)部集成了串行外設(shè)接口I2C I2C的主要特點(diǎn) STM32的I2C接口具有如下4種工作模式: 從發(fā)送器模式 從接收器模式 主發(fā)送器模式 主接收器模式 I2C主要功能 I2C從模式工作原理 I2C主模式工作原理 SMBus功能 I2C的DMA功能 DMA發(fā)送 DMA接收 I2C的中斷請(qǐng)求 I2C的編程方法 庫(kù)函數(shù): I2C_DeInit函數(shù) I2C_Init函數(shù) I2C_StructInit函數(shù) I2C_Cmd函數(shù) I2C_DMACmd函數(shù) I2C_DMALastTransferCmd函數(shù) I2C_GenerateSTART函數(shù) I2C_GenerateSTOP函數(shù) I2C_AcknowledgeConfig函數(shù) I2C_OwnAddress2Config函數(shù) I2C_DualAddressCmd函數(shù) I2C_GeneralCallCmd函數(shù) I2C_ITConfig函數(shù) I2C_SendData函數(shù) I2C_ReceiveData函數(shù) I2C_Send7bitAddress函數(shù) 系統(tǒng)計(jì)時(shí)器(SysTick)及其編程方法 系統(tǒng)計(jì)時(shí)器(SysTick)提供了1個(gè)24位、降序、零約束、寫清除的計(jì)數(shù)器。 系統(tǒng)計(jì)時(shí)器(SysTick)及其編程方法 庫(kù)函數(shù): SysTick_CLKSourceConfig函數(shù) SysTick_Setreload函數(shù) SysTick_CounterCmd函數(shù) SysTick_ITConfig函數(shù) SysTick_GetCounter函數(shù) SysTick_GetFlagStatus函數(shù) 通用定時(shí)器(TIM)結(jié)構(gòu) STM32的通用定時(shí)器TIM,是一個(gè)通過可編程預(yù)分頻器驅(qū)動(dòng)的16位自動(dòng)裝載計(jì)數(shù)器構(gòu)成。 通用TIMx定時(shí)器特性包括: 具備16位向上,向下,向上/向下自動(dòng)裝載計(jì)數(shù)器。 具備16位可編程預(yù)分頻器。 具備4個(gè)獨(dú)立通道。 TIM使用外部信號(hào)控制定時(shí)器和定時(shí)器互連的同步電路。 可以通過事件產(chǎn)生中斷,中斷類型豐富。 具備DMA功能。 時(shí)基單元 時(shí)基單元包含: 計(jì)數(shù)器寄存器(TIMx_CNT) 預(yù)分頻器寄存器(TIMx_PSC) 自動(dòng)裝載寄存器(TIMx_ARR) 計(jì)數(shù)器的模式 向上計(jì)數(shù)模式 向下計(jì)數(shù)模式 中央對(duì)齊模式 通用定時(shí)器的特殊工作模式 輸入捕獲模式 PWM 輸入模式 輸出模式 輸出比較模式 PWM 模式 單脈沖模式(OPM) TIM的編程方法 庫(kù)函數(shù): TIM_DeInit函數(shù) TIM_TimeBaseInit函數(shù) TIM_OCInit函數(shù) TIM_ICInit函數(shù) TIM_TimeBaseStructInit函數(shù) TIM_OCStructInit函數(shù) TIM_ICStructInit函數(shù) TIM_Cmd函數(shù) TIM_ITConfig函數(shù) TIM_DMAConfig函數(shù) TIM_DMACmd函數(shù) TIM_InternalClockConfig函數(shù) TIM_ITRxExternalClockConfig函數(shù) TIM_TIxExternalConfig函數(shù) TIM_ETRClockMode1Config函數(shù) TIM_ETRClockMode2Config函數(shù) TIM_ETRConfig函數(shù) TIM_SelectInputTrigger函數(shù) TIM_PrescalerConfig函數(shù) TIM_CounterModeConfig函數(shù) TIM的編程方法 (續(xù)) 庫(kù)函數(shù): TIM_ForcedOC1Config函數(shù) TIM_ForcedOC2Config函數(shù) TIM_ForcedOC3Config函數(shù) TIM_ForcedOC4Config函數(shù) TIM_ARRPreloadConfig函數(shù) TIM_SelectCCDMA函數(shù) TIM_OC1PreloadConfig函數(shù) TIM_OC2PreloadConfig函數(shù) TIM_OC3PreloadConfig函數(shù) TIM_OC4PreloadConfig函數(shù) TIM_OC1FastConfig函數(shù) TIM_OC2FastConfig函數(shù) TIM_OC3FastConfig函數(shù) TIM_OC4FastConfig函數(shù) TIM_ClearOC1Ref函數(shù) TIM_ClearOC2Ref函數(shù) TIM_ClearOC3Ref函數(shù) TIM_ClearOC4Ref函數(shù) TIM_UpdateDisableConfig函數(shù) TIM_EncoderInterfaceConfig函數(shù) TIM_GenerateEvent函數(shù) TIM的編程方法 (續(xù)) 庫(kù)函數(shù): TIM_OC1PolarityConfig函數(shù) TIM_OC2PolarityConfig函數(shù) TIM_OC3PolarityConfig函數(shù) TIM_OC4PolarityConfig函數(shù) TIM_UpdateRequestConfig函數(shù) TIM_SelectHallSensor函數(shù) TIM_SelectOnePulseMode函數(shù) TIM_SelectOutputTrigger函數(shù) TIM_SelectSlaveMode函數(shù) TIM_SelectMasterSlaveMode函數(shù) TIM_SetCounter函數(shù) TIM_SetAutoreload函數(shù) TIM_SetCompare1函數(shù) TIM_SetCompare2函數(shù) TIM_SetCompare3函數(shù) TIM_SetCompare4函數(shù) TIM的編程方法 (續(xù)) 庫(kù)函數(shù): TIM_SetIC1Prescaler函數(shù) TIM_SetIC2Prescaler函數(shù) TIM_SetIC3Prescaler函數(shù) TIM_SetIC4Prescaler函數(shù) TIM_SetClockDivision函數(shù) TIM_GetCapture1函數(shù) TIM_GetCapture2函數(shù) TIM_GetCapture3函數(shù) TIM_GetCapture4函數(shù) TIM_GetCounter函數(shù) TIM_GetPrescaler函數(shù) TIM_GetFlagStatus函數(shù) TIM_ClearFlag函數(shù) TIM_GetITStatus函數(shù) TIM_ClearITPendingBit函數(shù)
stm32定時(shí)器ppt:這是stm32定時(shí)器ppt,包括了STM32定時(shí)器概述,通用定時(shí)器TIMx相關(guān)寄存器,庫(kù)函數(shù),程序設(shè)計(jì)方法,系統(tǒng)時(shí)鐘SysTick簡(jiǎn)介,SysTick應(yīng)用實(shí)例等內(nèi)容,歡迎點(diǎn)擊下載。
stm32教程PPT:這是stm32ppt,包括了什么是STM32,STM32系列介紹,STM32F10x的兩條產(chǎn)品線,STM32F101 “基本型”系列,STM32F103 “增強(qiáng)型”系列,STM32F103 “增強(qiáng)型”系列,STM32F101 “基本型”系列,STM32 通用平臺(tái),Cortex-M3 處理器,出色的功耗表現(xiàn),USB接口開發(fā)包,支持SRM32的開發(fā)環(huán)境IDE,STM32F10XXX 編程仿真器,STM3210B-EVAL簡(jiǎn)介,STM3210B-EVAL功能框圖,STM3210B-EVAL特性等內(nèi)容。新的基于ARM內(nèi)核的32位MCU系列內(nèi)核為ARM公司為要求高性能、低成本、低功 耗的嵌入式應(yīng)用專門設(shè)計(jì)的Cortex-M3內(nèi)核標(biāo)準(zhǔn)的ARM架構(gòu)超前的體系結(jié)構(gòu)高性能低電壓低功耗創(chuàng)新的內(nèi)核以及外設(shè)簡(jiǎn)單易用/自由/低風(fēng)險(xiǎn)在32位的FLASH MCU中性能最強(qiáng)整體信號(hào)處理方面勝過DSP解決方案出眾的控制和連通性 非常適合低電壓/低功耗的應(yīng)用場(chǎng)合,歡迎點(diǎn)擊下載。
stm32教程PPT課件:這是一個(gè)關(guān)于stm32教程PPT課件,包括了什么是STM32,如何開發(fā)STM32,實(shí)例操作等內(nèi)容,ST Cortex-M3 Contents 什么是STM32? 新的基于ARM內(nèi)核的32位MCU系列內(nèi)核為ARM公司為要求高性能、低成本、低功 耗的嵌入式應(yīng)用專門設(shè)計(jì)的Cortex-M3內(nèi)核標(biāo)準(zhǔn)的ARM架構(gòu)超前的體系結(jié)構(gòu)高性能低電壓低功耗創(chuàng)新的內(nèi)核以及外設(shè)簡(jiǎn)單易用/自由/低風(fēng)險(xiǎn)。UDIV&SDIV 指令執(zhí)行需要2到12周期,取決與被除數(shù)與除數(shù)兩者越相近指令完成越快指令可以被中斷(丟棄/重啟) Cortex-M3 VS ARM7: 主要參數(shù)比較 Cortex-M3 附加的特性簡(jiǎn)化了跟蹤調(diào)試接口的管腳 ,從9腳減少到 2 或 3腳硬件中斷處理不需要匯編代碼綜合的原子位操作改進(jìn)了數(shù)據(jù)存儲(chǔ) 擴(kuò)展的數(shù)據(jù)觀測(cè)點(diǎn) & Flash 保護(hù)技術(shù)嵌入式的睡眠控制和掉電模式可選擇的小型的存儲(chǔ)器保護(hù)單元 (MPU) 和 嵌入式跟蹤宏單元 (ETM) 高集成度內(nèi)置式的管理單元減少了對(duì)外部器件的需求:上電復(fù)位,低電壓檢測(cè),掉電檢測(cè),帶有獨(dú)立時(shí)鐘的看門狗計(jì)時(shí)器一個(gè)主晶振驅(qū)動(dòng)整個(gè)系統(tǒng)廉價(jià)的4-6MHz晶振驅(qū)動(dòng)CPU,歡迎點(diǎn)擊下載stm32教程PPT課件哦。