为什么我的LED不闪烁,下面是程序和电路。#include "stm32f10x.h"
void delay_ms(u32 ms){
u32 temp;
SysTick->LOAD = 9000 * ms; //重装初值,72MHz时
SysTick->CTRL = 0x01; //使能,减到0无动作,采用外部时钟
SysTick->VAL = 0; //清零计数器
do{
temp = SysTick->CTRL; //读取当前倒计数数值
}while((temp & 0x01) && (!(temp & (1 << 16)))); //等待时间到达
SysTick->CTRL = 0; //关闭计数器
SysTick->VAL = 0; //清空计数器
}
void testGPIO_Config(void){
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = testGPIO_Pin;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(testGPIO, &GPIO_InitStructure);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE);
}
int main(void){
SystemInit();
//SysTick
testGPIO_Config();
while(1){
GPIO_WriteBit(testGPIO, testGPIO_Pin, Bit_RESET);
delay_ms(1000);
GPIO_WriteBit(testGPIO, testGPIO_Pin, Bit_SET);
delay_ms(1000);
}
//return 0;
}
|