版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
嵌入式系統(tǒng)應用實驗報告姓名:學號:學院:專業(yè):班級:指導教師:實驗1、流水燈實驗1.1實驗要求編程控制實驗板上LED燈輪流點亮、熄滅,中間間隔一定時間。1.2原理分析實驗主要考察對STM32F10X系列單片機GPIO的輸出操作。參閱數(shù)據(jù)手冊可知,通過軟件編程,GPIO可以配置成以下幾種模式:
輸入浮空
輸入上拉
輸入下拉
模擬輸入
開漏輸出
推挽式輸出
推挽式復用功能
開漏式復用功能根據(jù)實驗要求,應該首先將GPIO配置為推挽輸出模式。由原理圖可知,單片機GPIO輸出信號經(jīng)過74HC244緩沖器,連接LED燈。由于74HC244的OE1和OE2都接地,為相同電平,故A端電平與Y端電平相同且LED燈共陽,所以,如果要點亮LED,GPIO應輸出低電平。反之,LED燈熄滅。1.3程序分析軟件方面,在程序啟動時,調(diào)用SystemInit()函數(shù)(見附錄1),對系統(tǒng)時鐘等關鍵部分進行初始化,然后再對GPIO進行配置。GPIO配置函數(shù)為SZ_STM32_LEDInit()(見附錄2),函數(shù)中首先使能GPIO時鐘:RCC_APB2PeriphClockCmd(GPIO_CLK[Led],ENABLE);然后配置GPIO輸入輸出模式:GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;再配置GPIO端口翻轉(zhuǎn)速度:配置過程較為復雜,涉及到搶占優(yōu)先級和響應優(yōu)先級的概念。程序首先將所有外部中斷歸為NVIC_PriorityGroup_2,即2位搶占優(yōu)先級和2位響應優(yōu)先級:NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);然后將所有外部中斷信號的搶占優(yōu)先級規(guī)定為0、1、2,使其可以相互區(qū)別,并將配置好的參數(shù)寫入對應寄存器中,完成配置:NVIC_InitStructure.NVIC_IRQChannel=GPIO_KEY1_EXTI_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;NVIC_Init(&NVIC_InitStructure);NVIC_InitStructure.NVIC_IRQChannel=GPIO_KEY2_EXTI_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1;NVIC_Init(&NVIC_InitStructure);NVIC_InitStructure.NVIC_IRQChannel=GPIO_KEY3_EXTI_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=2;NVIC_Init(&NVIC_InitStructure)。初始化完成后,程序進入等待按鍵中斷觸發(fā)狀態(tài),一旦按鍵按下,則進入中斷服務函數(shù)EXTI9_5_IRQHandler()(見附錄7)中。在函數(shù)中對LED燈進行點亮、熄滅操作,并重置中斷產(chǎn)生標志位。實驗流程圖如下(主函數(shù)代碼見附錄8):硬件連接方式如下圖所示:2.3實驗結(jié)果實驗三、定時器實驗3.1實驗要求利用STM32的通用定時器TIM5產(chǎn)生一個1S的中斷,在中斷函數(shù)中實現(xiàn)LED1、LED2、LED3、LED4同時翻轉(zhuǎn)的效果。3.2原理分析實驗主要考察對STM32F10X系列單片機定時器的使用。實驗中使用的STM32F107單片機有多達10個定時器,包括:
多達4個16位定時器,每個定時器有多達4個用于輸入捕獲/輸出比較/PWM或脈沖計數(shù)的通道和增量編碼器輸入
1個16位帶死區(qū)控制和緊急剎車,用于電機控制的PWM高級控制定時器
2個獨立的看門狗定時器(獨立的和窗口型的)
系統(tǒng)時間定時器:24位自減型計數(shù)器
2個16位基本定時器用于驅(qū)動DAC根據(jù)時鐘樹可知,系統(tǒng)時鐘經(jīng)過分頻之后,進入TIM5的時鐘模塊入口,在經(jīng)過預分頻處理,才供給TIM5作時鐘使用。預分頻器的系數(shù)為:TIMx_PSC,當TIMx_PSC=0時表示不分頻,則TIM5定時器的時鐘
用CK_CNT=模塊入口時鐘72MHz;當TIMx_PSC=1時表示不分頻,則TIM5定時器的時鐘用CK_CNT=模塊入口時鐘36MHz;以此類推。公式為:CK_CNT=fCK_PSC/(PSC[15:0]+1),其中PSC最大為65535。
其次是TIM5計數(shù)器計數(shù)值的設置,TIM5計數(shù)器以CK_CNT為時鐘計數(shù),向下計數(shù)到0或向上計數(shù)到設定值(TIMx_ARR)則產(chǎn)生中斷。以向上計數(shù)為例,從0開始計數(shù)到設定值TIMx_ARR時產(chǎn)生中斷。要產(chǎn)生一秒一次中斷則要使計數(shù)器的值乘以預分頻的值=系統(tǒng)時鐘72MHz,其中計數(shù)器的值和預分頻值都必須小于65535。我們使預分頻值為7200,計數(shù)器值為10000,則7200*10000=72,000,000即72M。其中拆分方法很多35000*2000=72,000,000,只要注意計數(shù)器的值和預分頻值都必須小于65535即可。當計數(shù)值溢出后,會改變計數(shù)溢出標志位,并產(chǎn)生定時器中斷,實驗中使用其產(chǎn)生中斷來進行LED燈翻轉(zhuǎn)。3.3程序分析LED初始化部分與實驗一相同,完成初始化后,點亮所有LED燈。定時器配置函數(shù)為TIM5_Init()(見附錄6)。配置函數(shù)首先使能計數(shù)器時鐘:RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM5,ENABLE);然后自動裝載計數(shù)值,計數(shù)從0開始:TIM_TimeBaseStructure.TIM_Period=(100-1);再對計時器進行預分頻系數(shù)設置:TIM_TimeBaseStructure.TIM_Prescaler=(7200-1);并將計數(shù)器設置為向上計數(shù):TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;最后寫入計時器配置寄存器,完成配置:TIM_TimeBaseInit(TIM5,&TIM_TimeBaseStructure)。配置完成后,還要對計數(shù)器溢出標志位進行清零,并打開溢出中斷,使能計數(shù)器以開始計數(shù)。TIM_ClearITPendingBit(TIM5,TIM_IT_Update);TIM_ITConfig(TIM5,TIM_IT_Update,ENABLE);TIM_Cmd(TIM5,ENABLE)。定時器配置完成并使能后,計數(shù)器開始工作,當?shù)竭_預設的計數(shù)值之后,產(chǎn)生中斷信號。系統(tǒng)在進行相關配置后可以響應定時器產(chǎn)生的中斷,中斷配置函數(shù)為NVIC_Configuration()(見附錄7)。函數(shù)首先將中斷向量表首地址置于0x08000000:NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x0000);然后使能TIM5中斷:NVIC_InitStructure.NVIC_IRQChannel=TIM5_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;NVIC_InitStructure.NVIC_IRQChannelSubPriority=1;NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;最后將配置參數(shù)寫入中斷控制寄存器,完成配置:NVIC_Init(&NVIC_InitStructure)。一旦中斷產(chǎn)生,系統(tǒng)會對中斷產(chǎn)生響應,暫停所有正在執(zhí)行的低優(yōu)先級任務且將任務信息和數(shù)據(jù)壓入對應對戰(zhàn)區(qū),并進入中斷服務函數(shù)TIM5_IRQHandler()(見附錄8)中進行處理。在中斷服務函數(shù)中判斷并清除了中斷標志位,以便定時器下一次計數(shù)中斷產(chǎn)生。函數(shù)中調(diào)用了LED_Spark()函數(shù)(見附錄9),實現(xiàn)了LED的閃爍。程序流程圖如下:硬件連接方式如下圖所示:實驗四、按鍵中斷控制LED燈定時閃爍4.1實驗要求綜合實驗一、二、三,利用STM32讀取外部按鍵狀態(tài),按鍵按下一次產(chǎn)生一次外部中斷在中斷處理函數(shù)中使按鍵所對應的燈閃爍,閃爍間隔通過定時器定時控制。其中,SKEY1控制LED1以1S為間隔,閃爍3次,SKEY2控制LED2以2S為間隔閃爍3次,SKEY3控制LED3以3S為間隔,閃爍3次。4.2原理分析實驗需要用到STM32的GPIO輸入輸出操作,GPIO外部中斷和內(nèi)部定時器中斷。在以上三個實驗中,對各個部分都已經(jīng)進行過詳盡的解釋,這里不再贅述。 此實驗需要將以上實驗做綜合,并對時序進行調(diào)整。難點為,對GPIO外部中斷和定時器內(nèi)部中斷的處理,即如何確定兩種不同中斷的優(yōu)先級。這里的使用的方法是,將所有按鍵外部中斷置于中斷分組2,即NVIC_PriorityGroup_2中。將所有按鍵中斷搶占優(yōu)先級置為0,即最高級別中斷,響應優(yōu)先級置分別置為1、2、3,相互區(qū)別。將定時器中斷搶占優(yōu)先級置為1,相應優(yōu)先級社會中低于按鍵中斷,使其可以被按鍵信號中斷計時,并刷新LED閃爍狀態(tài)。4.3程序分析這在程序初始化階段,分別對LED、按鍵外部中斷和定時器中斷進行初始化。主函數(shù)如下:intmain(void){ /*LED初始化*/LED_config(); /*LED閃爍?*/Led_Turn_on_all();Delay(3000000);Led_Turn_off_all();Delay(3000000);Led_Turn_on_all();Delay(3000000);Led_Turn_off_all();Delay(3000000);Led_Turn_on_all();Delay(3000000);Led_Turn_off_all(); /*按鍵初始化*/GPIO_KEY_Config(); /*按鍵外部中斷初始化*/KEY_EXIT_In
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年股權(quán)轉(zhuǎn)讓合同:創(chuàng)業(yè)公司股權(quán)轉(zhuǎn)讓
- 2025年度生產(chǎn)線施工期施工進度與成本控制合同3篇
- 學校營養(yǎng)午餐與孩子身體素質(zhì)的提升
- 2024年版門診醫(yī)療服務業(yè)務合作合同一
- 家庭早期教育在商業(yè)領域的創(chuàng)新實踐
- 2024年高精密薄膜貼片電阻項目可行性研究報告
- 二零二五年度城市地下綜合管廊運營勞務承包合同書3篇
- 2024年環(huán)保設備購置與安裝合同
- 二零二五年度吊車租賃合同爭議解決及調(diào)解協(xié)議3篇
- 2024版保安服務合同終止函
- 2024-2025學年烏魯木齊市數(shù)學三上期末檢測試題含解析
- 湖南2025年湖南機電職業(yè)技術(shù)學院合同制教師招聘31人歷年參考題庫(頻考版)含答案解析
- 2025年初級經(jīng)濟師之初級經(jīng)濟師基礎知識考試題庫及完整答案【全優(yōu)】
- 黑龍江省哈爾濱市第六中學2025屆高考數(shù)學三模試卷含解析
- 五年高考真題(2020-2024)分類匯編 政治 專題19 世界多極化 含解析
- 【MOOC】數(shù)字邏輯設計及應用-電子科技大學 中國大學慕課MOOC答案
- ISBAR輔助工具在交班中應用
- GB 30254-2024高壓三相籠型異步電動機能效限定值及能效等級
- 非物質(zhì)文化遺產(chǎn)拓印 課件
- DZ∕T 0289-2015 區(qū)域生態(tài)地球化學評價規(guī)范(正式版)
- 中南財經(jīng)政法大學工商管理碩士(MBA)
評論
0/150
提交評論