欢迎来到天天文库
浏览记录
ID:22524649
大小:226.12 KB
页数:16页
时间:2018-10-29
《中断程序的解释》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、关于V2.0版本一在main函数中的定义intmain(void){Disablelntenupt;//关闭CPU总中断RCC_Configuration();GPIO_Configuration();EXTI_Configuration();NVIC_Configuration();Enablelnterrupt;//打开总中断while(l){}}注意以下问题:(1)头文件部分写的是#include"main.h"在main.h中定义了#ifndef_MAIN_H#define_MAIN_H^include"myfun.hu#endif以上关于_1^人1~
2、_11的宏定义,是为了防止多个重名头文件存在。在”myfun.h”对应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对应于一个GP1O的位操作。对应书上P101页的函数定义两个延迟函数,放在了myfun.c。很好理解。延迟函数是自己做的。然而在myfun.h中还是做了很多定义。GPIO用到的头文件。(2)关于时钟的初始化配置voidRCC_Configuration(void);闪容voidRCC_Configuration(void){ErrorStatusHSEStartUpStatus;///HSE起振
4、状态0表示出错,其他的表示成果SUCCESSRCC_DeInit();RCC_HSEConfig(RCC_HSE_ON);HSEStartUpStatus=RCC_WaitForHSEStartUp();///若选择HSE做系统吋钟:先调用RCC_HSEConfig()使能HSE,后调用//RCC_WaitForHSEStartUp()函数等待HSE起震,最后调用RCC_GetFlagStatus()函数获収HSE//晶振状态if(HSEStartUpStatus==SUCCESS){FLASH_PrefetchBufferCmd(FLASH_Prefetch
5、Buffer_Enable);//使能Flash半周期访问FLASH_SetLatency(FLASH_Latency_2);//设置FLASH存储器延时周期数RCC_HCLKConfig(RCC_SYSCLK_Divl);//设置AHB时钟RCC_PCLK2Config(RCC_HCLK_Divl);//设置APB2时钟RCC_PCLKlConfig(RCC_HCLK_Div2);//设罝APB1时钟RCC_PLLConfig(RCC_PLLSource_HSE_Divl,RCC_PLLMul_9);//设置锁相环的倍频RCC_PLLCmd(ENABLE);
6、//使能锁相环while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET)//等待PLL就绪{}RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);//设置系统时钟为PLL吋钟while(RCC_GetSYSCLKSource()!=0x08)//确认系统时钟是否为PLL时钟{}}}其中,ErrorStatus在stm32fl0x_type.h中定义typedefenum{ERROR=0,SUCCESS=!ERROR}ErrorStatus;RCC_DeInit();//在stm32fl0x_
7、rcc.c中定义。表示复位RCC时钟到默认的配置。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,
此文档下载收益归作者所有