本文档免费下载,如果你觉得对你有帮助,情给好评并
下载,我需要财富值,谢谢!
/**********************STM32F103 外部中断************************
*********************长沙理工大学 3+1 实验室*********************
*************************2012 年 9 月 22 日*************************/
#include"stm32f10x.h"
//配置系统时钟************************************************************
void RCC_Configuration(void)
{
ErrorStatus HSEStartUpStatus; //将外部时钟设置成枚举变量
RCC_DeInit(); //复位 RCC 外部设备寄存器到默认值
RCC_HSEConfig(RCC_HSE_ON); //打开外部时钟
HSEStartUpStatus=RCC_WaitForHSEStartUp(); //检测外部时钟是否就绪
if(HSEStartUpStatus==SUCCESS) //如果就绪(SUCCESS)则进行下一步程序
{
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); //开启 flash 缓冲功能(使能缓存)
FLASH_SetLatency(FLASH_Latency_2); //延时两个周期
RCC_HCLKConfig(RCC_SYSCLK_Div1); //设置 AHB 时钟为不分频的系统时钟
RCC_PCLK1Config(RCC_HCLK_Div2); //设置 AP1 为 2 分频系统时钟(不能超过 36M)
RCC_PCLK2Config(RCC_HCLK_Div1); //设置 AP1 为为系统时钟频率(前面 AHB 给定的
时钟)
RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9); //设置外部时钟为 PLL 的上输入时钟并且倍频 9
RCC_PLLCmd(ENABLE); //使能 PLL 时钟
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET) //检测 PLL 是否就绪 RESET:就绪
{}
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); //配置外部时钟作为系统的时钟
while(RCC_GetSYSCLKSource()!=0x08) //检测外部时钟是否作为 PLL 的输入时钟
{}
}
}
//配置 GPIO 函数************************************************
//功能:配置 GPIO 的输入输出模式
void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure; //定义 GPIO 初始化函数
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE); // 使 能 GPIOA 和
GPIOB 的时钟,配置其复用模式
//配置 GPIO 口的输入*******