#include "stm32f10x.h"
void Delay_us(unsigned long Countlinef);
GPIO_InitTypeDef GPIO_InitStructure;
void GPIO_init()
{
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE);
//GPIO???????è??
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
}
int main(void)
{
SystemInit();
GPIO_init();
while(1)
{
GPIO_SetBits(GPIOA,GPIO_Pin_1);
Delay_us(5);
GPIO_ResetBits(GPIOA, GPIO_Pin_1);
Delay_us(5);
}
}
#define SYSTICK_CSR (*((volatile unsigned long *) 0xE000E010))
#define SYSTICK_LOAD (*((volatile unsigned long *) 0xE000E014))
#define SYSTICK_VAL (*((volatile unsigned long *) 0xE000E018))
#define SYSTICK_CALRB (*((volatile unsigned long *) 0xE000E01C))
unsigned long SysTick_Delay;
void SysTick_InitStructReadCmd(void)
{
SYSTICK_VAL = 0;
SYSTICK_LOAD = SystemCoreClock / 100000;
SYSTICK_CSR |= 0x06;
}
void SysTick_Hangler(void)
{
SYSTICK_VAL = 0;
if(SysTick_Delay != 0x00)
{
SysTick_Delay--;
}
}
void Delay_us(unsigned long Countlinef)
{
SYSTICK_CSR |= 0x07;
SysTick_Delay = Countlinef;
while(SysTick_Delay != 0);
SYSTICK_CSR |= 0x06;
}
|