資源描述:
《中斷程序的解釋》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、關(guān)于V2.0版本一在main函數(shù)中的定義intmain(void){Disablelntenupt;//關(guān)閉CPU總中斷RCC_Configuration();GPIO_Configuration();EXTI_Configuration();NVIC_Configuration();Enablelnterrupt;//打開(kāi)總中斷while(l){}}注意以下問(wèn)題:(1)頭文件部分寫(xiě)的是#include"main.h"在main.h中定義了#ifndef_MAIN_H#define_MAIN_H^include"myfun.hu#endif以上關(guān)于_1^人1~
2、_11的宏定義,是為了防止多個(gè)重名頭文件存在。在”myfun.h”對(duì)應(yīng)myfun.c文件里面定義了include,,stm32fl0x_conf.hn#include"cortexm3_macro.hn///控制的是PD2#include"stm32fl0x_lib.h"#defineLED1_ONGFIO_ResetBits(GFIOD,GPIO_Pin_2)#defineLED1_OFFGP10_SetBits(GPI0D,GPIO_Pin_2)#defineDisablelnterrupt_SETPRIMASK()#defineEnablelnterru
3、pt_RESETPRIMASK()voidDelayMs(vu32nms);voidDelayUs(vu32nus);#endif其巾,LEDI_ON和LED1_OFF對(duì)應(yīng)于一個(gè)GP1O的位操作。對(duì)應(yīng)書(shū)上P101頁(yè)的函數(shù)定義兩個(gè)延遲函數(shù),放在了myfun.c。很好理解。延遲函數(shù)是自己做的。然而在myfun.h中還是做了很多定義。GPIO用到的頭文件。(2)關(guān)于時(shí)鐘的初始化配置voidRCC_Configuration(void);閃容voidRCC_Configuration(void){ErrorStatusHSEStartUpStatus;///HSE起振
4、狀態(tài)0表示出錯(cuò),其他的表示成果SUCCESSRCC_DeInit();RCC_HSEConfig(RCC_HSE_ON);HSEStartUpStatus=RCC_WaitForHSEStartUp();///若選擇HSE做系統(tǒng)吋鐘:先調(diào)用RCC_HSEConfig()使能HSE,后調(diào)用//RCC_WaitForHSEStartUp()函數(shù)等待HSE起震,最后調(diào)用RCC_GetFlagStatus()函數(shù)獲収HSE//晶振狀態(tài)if(HSEStartUpStatus==SUCCESS){FLASH_PrefetchBufferCmd(FLASH_Prefetch
5、Buffer_Enable);//使能Flash半周期訪(fǎng)問(wèn)FLASH_SetLatency(FLASH_Latency_2);//設(shè)置FLASH存儲(chǔ)器延時(shí)周期數(shù)RCC_HCLKConfig(RCC_SYSCLK_Divl);//設(shè)置AHB時(shí)鐘RCC_PCLK2Config(RCC_HCLK_Divl);//設(shè)置APB2時(shí)鐘RCC_PCLKlConfig(RCC_HCLK_Div2);//設(shè)罝APB1時(shí)鐘RCC_PLLConfig(RCC_PLLSource_HSE_Divl,RCC_PLLMul_9);//設(shè)置鎖相環(huán)的倍頻RCC_PLLCmd(ENABLE);
6、//使能鎖相環(huán)while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET)//等待PLL就緒{}RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);//設(shè)置系統(tǒng)時(shí)鐘為PLL吋鐘while(RCC_GetSYSCLKSource()!=0x08)//確認(rèn)系統(tǒng)時(shí)鐘是否為PLL時(shí)鐘{}}}其中,ErrorStatus在stm32fl0x_type.h中定義typedefenum{ERROR=0,SUCCESS=!ERROR}ErrorStatus;RCC_DeInit();//在stm32fl0x_
7、rcc.c中定義。表示復(fù)位RCC時(shí)鐘到默認(rèn)的配置。voidRCC一Delnit(void){/*SetHSIONbit*/RCC-〉CR
8、=(u32)0x00000001;/*ResetSW[l:0],HPRE[3:0],PPRE1[2:O],PPRE2[2:0],ADCPRE[l:0]andMCO[2:0]bits*/RCC-〉CFGR&=(u32)0xF8FF0000;/*ResetHSEON,CSSONandPLLONbits*/RCC->CR&=(u32)0xFEF6FFFF;/*ResetHSEBYPbit*/RCC->CR&=(u32)0xFFFB
9、FFFF;/*ResetPLLSRC,