蘇州大學(xué)電子信息學(xué)院嵌入式培訓(xùn)2_第1頁
蘇州大學(xué)電子信息學(xué)院嵌入式培訓(xùn)2_第2頁
蘇州大學(xué)電子信息學(xué)院嵌入式培訓(xùn)2_第3頁
蘇州大學(xué)電子信息學(xué)院嵌入式培訓(xùn)2_第4頁
蘇州大學(xué)電子信息學(xué)院嵌入式培訓(xùn)2_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第八期全國電子專業(yè)人才師資培訓(xùn)班嵌入式設(shè)計(jì)與開發(fā)項(xiàng)目概 述 嵌入式設(shè)計(jì)與開發(fā)競賽規(guī)則 CT117E硬件資源介紹 CT117E使用方法及程序設(shè)計(jì) CT117E驅(qū)動(dòng)安裝及調(diào)試方法 使用Keil MDK開發(fā)環(huán)境編寫一個(gè)應(yīng)用程序 STM32外設(shè)模塊介紹及編程 嵌入式設(shè)計(jì)與開發(fā)項(xiàng)目模擬題分析競賽規(guī)則競賽采用Cortex-M3處理器STM32F103RB。采用Keil MDK4.10集成開發(fā)環(huán)境。競賽不涉及操作系統(tǒng)相關(guān)知識(shí)。競賽分值比例:更多信息見大賽永久官方網(wǎng)站:CT117E簡介(1) 嵌入式學(xué)習(xí)與實(shí)訓(xùn)產(chǎn)品 Colink調(diào)試器 STM32F103RB處理器 演示程序

2、選拔賽及決賽指定專用平臺(tái) 支持Keil MDK及IAR EWARM集成開發(fā)環(huán)境CT117E簡介(2) 處理器外設(shè)資源 72MHz Cortex-M3處理器 128K字節(jié)Flash,20K字節(jié)SRAM ADC USB RTC/Timer/SysTicks USART/I2C/SPI(EEPROM) GPIO(Led/Key/Buzzer/LCD)硬件資源 電源選擇跳線-JP1 電容 USB頭 5V-DC插座 三端穩(wěn)壓管AMS1117 復(fù)位電路 按鍵 電阻、電容硬件資源 CoLink調(diào)試工具 EEPROM芯片(ATMEL93C46) USB轉(zhuǎn)串口芯片(FT2232) USB插座 JTAG調(diào)試接口(

3、CN7)關(guān)于CooCox的更多信息見網(wǎng)站:http:/http:/硬件資源 GPIO-LED/Key/Buzzer/LCD硬件資源 GPIO-LED GPIO-Key硬件資源 串行總線-SPI/I2C/USART/USB硬件資源 USB轉(zhuǎn)串口驅(qū)動(dòng)安裝 通過USB(CN2)接口供電 選擇“從列表或指定位置安裝”CT117E使用方法CT117E使用方法 CooCox for MDK驅(qū)動(dòng)安裝 雙擊CoMDKPlugin-1.3.1 安裝路徑設(shè)置為Keil軟件安裝位置CT117E使用方法 程序調(diào)試與下載 單擊Project菜單,單擊“Options for Target” 在Debug標(biāo)簽中選擇Coo

4、Cox DebbugerCT117E使用方法 程序調(diào)試與下載 單擊Settings選項(xiàng) 在Debug的Adapter下拉菜單中選擇ColinkCT117E使用方法 程序調(diào)試與下載 Flash Download 選項(xiàng)中單擊ADD 選擇STM32中密度產(chǎn)品(STM32F10 x Med-Density Flash)CT117E使用方法 程序調(diào)試與下載 單擊Utilities標(biāo)簽 在下拉菜單中選擇CooCox Debugger18CT117E程序設(shè)計(jì) 基于STM32固件庫的程序設(shè)計(jì)步驟(1) 創(chuàng)建工程目錄 相關(guān)文件拷貝 修改配置文件 創(chuàng)建工程,添加相關(guān)文件 設(shè)置路徑 保存工程文件,進(jìn)行程序調(diào)試CT1

5、17E程序設(shè)計(jì) 基于STM32固件庫的程序設(shè)計(jì)步驟(2) 創(chuàng)建工程目錄及文件拷貝拷貝STM32固件庫Example中的stm32f10 x_it.c拷貝STM32固件庫Example中的stm32f10 x_it.hstm32f10 x_conf.h根據(jù)產(chǎn)品Flash存儲(chǔ)器大小,選擇相應(yīng)的啟動(dòng)代碼,復(fù)制到所建文件夾中。CT117E程序設(shè)計(jì) 基于STM32固件庫的程序設(shè)計(jì)步驟(3) 修改頭文件-stm32f10 x.h定義STM32芯片的規(guī)模類型如果使用標(biāo)準(zhǔn)固件庫,定義宏USE_STDPERIPH_DRIVERCT117E程序設(shè)計(jì) 基于STM32固件庫的程序設(shè)計(jì)步驟(3) 修改配置文件-stm3

6、2f10 x_conf.hSTM32處理器外設(shè)資源頭文件,可根據(jù)工程需求打開和關(guān)閉。CT117E程序設(shè)計(jì) 基于STM32固件庫的程序設(shè)計(jì)步驟(3) 修改應(yīng)用文件-stm32f10 x_it.c中斷服務(wù)函數(shù),根據(jù)程序設(shè)計(jì)要求,編寫相關(guān)代碼 基于STM32固件庫的程序設(shè)計(jì)步驟(4) 創(chuàng)建工程,添加相關(guān)文件CT117E程序設(shè)計(jì)添加啟動(dòng)代碼.LibrariesCMSISCM3DeviceSupportSTSTM32F10 xstartuparm文件system_stm32f10 x.c必須添加.LibrariesCMSISCM3DeviceSupportSTSTM32F10 x更具程序設(shè)計(jì)需求,選擇性

7、添加驅(qū)動(dòng)外設(shè)源文件。.LibrariesSTM32F10 x_StdPeriph_DriversrcCT117E程序設(shè)計(jì) 基于STM32固件庫的程序設(shè)計(jì)步驟(5) 路徑設(shè)置設(shè)置H文件路徑:(1).LibrariesSTM32F10 x_StdPeriph_Driverinc(2).LibrariesCMSISCM3DeviceSupportSTSTM32F10 x(3).include(包含stm32f10 x_it.h、stm32f10 x_conf.h以及其它用戶自定義的頭文件)CT117E程序設(shè)計(jì) 編寫一個(gè)應(yīng)用程序(1) main.c#include “stm32f10 x.h” /*#

8、include “stm32f10 x_lib.h”*/ int main(void)RCC_Configuration(); /* 外設(shè)時(shí)鐘使能 */ GPIO_Configuration(); /* 處理器IO引腳配置 */ NVIC_Configuration(); /* 中斷控制器配置 */ USART_Configuration(); /* 串口配置函數(shù) */ Sys_Init(); /* 系統(tǒng)初始化 */ while(1) 26CT117E程序設(shè)計(jì) 編寫一個(gè)應(yīng)用程序(2) stm32f10 x_it.c#include “stm32f103x_it.h” extern unsign

9、ed char Rx;void USART1_IRQHandler(void) /串口中斷服務(wù)函數(shù) if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET); Rx=USART_ReceiveData(USART1); USART_ClearITPendingBit(USART1, USART_IT_RXNE); /清除中斷標(biāo)志位CT117E程序設(shè)計(jì) STM32外設(shè)模塊介紹-GPIO IO引腳功能 IO引腳的結(jié)構(gòu) IO引腳編程方法 IO引腳測試程序-LED控制 IO引腳測試程序-Buzzer控制 STM32 IO引腳功能 通用I/O 單獨(dú)的位設(shè)

10、置或位清除 外部中斷/喚醒線 復(fù)用功能(AF)和重映射 GPIO鎖定機(jī)制 CT117E程序設(shè)計(jì)CT117E程序設(shè)計(jì) STM32 IO引腳結(jié)構(gòu)(1)CT117E程序設(shè)計(jì) STM32 IO引腳結(jié)構(gòu)(2)CT117E程序設(shè)計(jì) STM32 IO引腳編程方法 使能相應(yīng)引腳時(shí)鐘源 根據(jù)外設(shè)配置引腳工作模式 操作IO引腳輸入輸出CT117E程序設(shè)計(jì)/LED測試程序#include “stm32f10 x.h” /頭文件void GPIO_Configuration(void); /函數(shù)聲明void delay(u32 t); /函數(shù)聲明int main(void)unsigned char i;GPIO_C

11、onfiguration(); /GPIO引腳配置while(1) /循環(huán)for(i=0;i8;i+)GPIO_Write(GPIOC,(1LOAD = (ticks & SYSTICK_MAXCOUNT) - 1; /#denfine SYSTICK_MAXCOUNT (124) 1) CT117E程序設(shè)計(jì) 基于SysTick的毫秒延時(shí)演示程序 main.c #include “stm32f10 x.h” void GPIO_Configuration(void); int main(void) GPIO_Configuration(); /GPIO配置 Systick_Config(Sys

12、temCoreClock/1000); /SysTick配置 while(1); stm32f10 x_it.c void SysTick_Handler(void) /Systick中斷服務(wù)函數(shù) TimingDelay_Decrement(); CT117E程序設(shè)計(jì)CT117E程序設(shè)計(jì) 基于SysTick的按鍵功能測試?yán)?按鍵區(qū)抖方法(硬件): RS觸發(fā)器 濾波電容 按鍵去抖動(dòng)(軟件): 軟件延時(shí) STM32外設(shè)模塊介紹-RTC STM32 RTC構(gòu)成 STM32 RTC的編程方法 RTC測試?yán)藽T117E程序設(shè)計(jì)CT117E程序設(shè)計(jì) STM32 RTC的時(shí)鐘源 LSI振蕩器、LSE振蕩

13、器或HSE振蕩器128分頻 STM32 RTC構(gòu)成(1) APB1接口部分 RTC核心部分 預(yù)分頻模塊 32位獨(dú)立定時(shí)計(jì)數(shù)器41CT117E程序設(shè)計(jì) STM32 RTC構(gòu)成(2) STM32 RTC的編程方法(1) 打開電源管理和備份寄存器時(shí)鐘 使能RTC和備份寄存器的訪問 選擇時(shí)鐘源 使能中斷 設(shè)置RTC預(yù)分頻器 fTR_CLK = fRTCCLK/(PRL19:0+1) fTR_CLK = fRTCCLK/(PRL19:0+1) 時(shí)鐘源32.768KHz,預(yù)分頻裝載寄存器值為0 x7FFFF CT117E程序設(shè)計(jì) STM32 RTC的編程方法(2) void RTC_Configurati

14、on(void) RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_BKP,ENABLE);PWR_BackupAccessCmd(ENABLE); /使能RTC及備份寄存器的訪問BKP_DeInit(); /BKP外設(shè)復(fù)位RCC_LSICmd(ENABLE); /打開因此使用內(nèi)部低速振蕩器while(RCC_GetFlagStatus(RCC_FLAG_LSIRDY) = RESET); /等待LSI準(zhǔn)備就緒RCC_RTCCLKConfig(RCC_RTCCLKSo

15、urce_LSI);/選擇時(shí)鐘源 RCC_RTCCLKCmd(ENABLE); /使能RTC時(shí)鐘RTC_WaitForSynchro(); /等待RTC時(shí)鐘與APB時(shí)鐘同步RTC_WaitForLastTask();RTC_ITConfig(RTC_IT_SEC, ENABLE); /使能RTC秒中斷RTC_WaitForLastTask(); /等待RTC寄存器完成寫操作RTC_SetPrescaler(40000); /設(shè)置RTC寄存器預(yù)分頻值產(chǎn)生1秒信號(hào)RTC_WaitForLastTask(); /等待RTC寄存器完成寫操作 CT117E程序設(shè)計(jì) STM32 RTC測試?yán)蘨nt ma

16、in(void)NVIC_Configuration(); /中斷配置RTC_Configuration(); /RTC配置RTC_WaitForLastTask(); /等待上次寫操作完成RTC_SetCounter(RTCTime); /將計(jì)數(shù)值寫入RTC寄存器RTC_WaitForLastTask();STM3210B_LCD_Init(); /LCD初始化LCD_Clear(Black);LCD_SetTextColor(White);LCD_SetBackColor(Black);while(1) RTC_LCDDisplay(); /獲取時(shí)間并通過LCD顯示 CT117E程序設(shè)計(jì)

17、STM32 USART結(jié)構(gòu) STM32 USART引腳配置 STM32 USART增強(qiáng)功能 STM32 USART硬件流控 STM32 USART的編程方法 STM32 USART中斷測試程序CT117E程序設(shè)計(jì) STM32 USART引腳配置(1)CT117E程序設(shè)計(jì) STM32 USART引腳配置(2)CT117E程序設(shè)計(jì) STM32 USART增強(qiáng)功能LIN模式 USART同步模式 USART單線半雙工通信 USART的智能卡功能 USART的IrDA模式 USART的DMA通信 CT117E程序設(shè)計(jì) STM32 USART硬件流控CT117E程序設(shè)計(jì) STM32 USART編程方法(1

18、) 使能串口及GPIO引腳時(shí)鐘源 復(fù)位串口 串口波特率及其它配置 數(shù)據(jù)發(fā)送與接收 串口狀態(tài)查詢CT117E程序設(shè)計(jì) STM32 USART編程方法(2)void USART_Configuration(void)USART_InitStructure.USART_BaudRate = 9600; /設(shè)置串口傳輸波特率為9600 USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_StopBits = USART_StopBits_1; /1位停止位USART_InitStru

19、cture.USART_Parity = USART_Parity_No; /無奇偶校驗(yàn)USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; /禁能硬件流控制模式USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;USART_Init(USART1, &USART_InitStructure); /USART1 配置USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); /使能U

20、SART1接收中斷/USART_ITConfig(USART1, USART_IT_TXE, ENABLE); /使能USART1發(fā)送中斷USART_Cmd(USART1, ENABLE); /使能串口CT117E程序設(shè)計(jì) STM32 USART中斷測試程序(1)int main(void)GPIO_Configuration();NVIC_Configuration();/LCD初始化STM3210B_LCD_Init();LCD_Clear(Black);LCD_SetBackColor(Black);LCD_SetTextColor(White);USART_Configuration();while(1)if(RxOver = 1)/Line: X方向顯示起始地址,Column:Y方向顯示起始地址LCD_DisplayChar(Line*20,Column*16,RxByte);CT117E程序設(shè)計(jì) STM32 USART中斷測試程序(2)Column-;if(Column = 0)Column = 20;Line+;if(Line =

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論