菜鸟跪求大神帮忙,跑马灯程序下载到板子里,板子的灯不亮 板子是stm32f407vet

2019-07-21 05:14发布

#include <stm32f4xx.h> uint32_t Gb_TimingDelay=100; void  Delay(uint32_t nTime); int  main ()
{
 SysTick_Config(SystemCoreClock/1000);  // 设置 systemtick 一毫秒中断
 
 RCC->AHB1ENR|=  0x00000008; // 使能GPIOD 时钟
 RCC->APB2ENR|=  (1<<14);  // 使能syscfg 时钟
 
 GPIOD->MODER&=0x00FFFFFF; // 设置 PD12,13,14,15 输出
 GPIOD->MODER|=0x55000000;
 
 GPIOD->OTYPER&=0xFFFF0FFF; // 设置PD12,13,14,15 推挽输
 GPIOD->OSPEEDR&=0x00FFFFFF;  //PD12,13,14,15  速度100m
 GPIOD->OSPEEDR|=0xff000000;
 
 SYSCFG->CMPCR=0x00000001; // 使用IO 补偿单元,
 // 当GPIO速度超过 50M 的时候要考虑使用此设置
 
 GPIOD->UPDR&=0x00FFFFFF; //PD12,13,14,15 无上拉无下拉
          
 GPIOD->BSRRH=0xf000;//reset  register GPIOx_BSRRH,  write only
 //set register GPIOx_BSRRL,  write only
 while(1)
 {
  GPIOD->BSRRH=0xf000;
  GPIOD->BSRRL=0x1000;
  Delay(500);
  
  GPIOD->BSRRH=0xf000;
  GPIOD->BSRRL=0x1000<<1;
  Delay(500);
  
  GPIOD->BSRRH=0xf000;
  GPIOD->BSRRL=0x1000<<2;
  Delay(500);
  
  GPIOD->BSRRH=0xf000;
  GPIOD->BSRRL=0x1000<<3;
  Delay(500);
 }
} void Delay(uint32_t nTime)
{
 Gb_TimingDelay=nTime;
 
 while(Gb_TimingDelay!=0);
}
void SysTick_Handler(void)
{
 if(Gb_TimingDelay!=0x00)
 {
  Gb_TimingDelay -- ;
 }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。