中级会员
 
- 积分
- 252
- 金钱
- 252
- 注册时间
- 2015-7-25
- 在线时间
- 20 小时
|
5金钱
delay.c文件
#include <delay.h>
static unsigned char fac_us=0;
static unsigned char fac_ms=0;
void delay_init()
{
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8); //?????????±?? HCLK/8
fac_us=SystemCoreClock/8000000; //???????±????1/8
fac_ms=(unsigned int)fac_us*1000;
}
void delay_us(int nus)
{
unsigned int temp;
SysTick->LOAD=nus*fac_us; //?±??????
SysTick->VAL=0x00; //?????????÷
SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk ; //????????
do
{
temp=SysTick->CTRL;
}
while(temp&0x01&&!(temp&(1<<16)));//?????±??????
SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk; //??±??????÷
SysTick->VAL =0X00; //?????????÷
}
void delay_ms(int nms)
{
unsigned int temp;
SysTick->LOAD=(unsigned int)nms*fac_ms;//?±??????(SysTick->LOAD??24bit)
SysTick->VAL =0x00; //?????????÷
SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk ; //????????
do
{
temp=SysTick->CTRL;
}
while(temp&0x01&&!(temp&(1<<16)));//?????±??????
SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk; //??±??????÷
SysTick->VAL =0X00; //?????????÷
}
main.c文件
#include <stm32f0xx.h>
#include <led.h>
#include <delay.h>
int main()
{
delay_init();
LED_Init();
while(1)
{
GPIO_SetBits(GPIOA,GPIO_Pin_5);
delay_ms(1000);
GPIO_ResetBits(GPIOA,GPIO_Pin_5);
delay_ms(1000);
}
}
然后板子上的LED闪的飞快.....
求大神帮我看看哪里出问题了
|
|