|
#ifndef bsp_led_h
#define bsp_led_h
#include "stm32f10x.h"
void RCC_Configuration(void);
void DPIO_Configuration(void);
void SysTick_Configuration(void);
void NVIC_Configuration(void);
void Delay(u32 n);
#endif
#include "bsp_led.h"
void RCC_Configuration()
{
SystemInit();
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
RCC_HCLKConfig(RCC_SYSCLK_Div1);
}
void DPIO_Configuration()
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_InitStructure.GPIO_Mode =GPIO_Mode_Out_PP;
GPIO_Init(GPIOB,&GPIO_InitStructure);
}
void SysTick_Configuration()
{
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);
SysTick_Config(9000000);
}
void NVIC_Configuration()
{
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
NVIC_InitStructure.NVIC_IRQChannel =SysTick_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
}
在stm32f10x_it.c中的中斷處理函數(shù):
void SysTick_Handler(void)
{
NVIC_ClearPendingIRQ(SysTick_IRQn);
if(GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_5)==RESET)
{
GPIO_SetBits(GPIOB, GPIO_Pin_5);
}
else
{
GPIO_ResetBits(GPIOB, GPIO_Pin_5);
}
}
|
|