菜鸟跪求大神帮忙,跑马灯程序下载到板子里,板子的灯不亮 板子是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 -- ;
 }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
wolfdong7
1楼-- · 2019-07-21 06:20
你看下是不是你打开电源的方式不对!^-^
sheep
2楼-- · 2019-07-21 06:52
回复【2楼】wolfdong7:
---------------------------------
打开电源方式 具体是哪个寄存器的配置?不懂   
例外问问,为什么下载这个程序到板子时,总是“开始连接...”   


本人刚刚开始学arm,感觉好难,一个跑马灯都运行不了,这相当于在c,c++,java里的hello world 程序吧,这都搞不好,崩溃啊
wolfdong7
3楼-- · 2019-07-21 10:34
回复【3楼】sheep:
---------------------------------
没有,上面我是开玩笑的。
你这个是寄存器我看不懂啦。
呵呵,其实是库函数我也可能不会,因为搭建环境还是蛮复杂的。
板子是不是自己做的呀?
生活中没有会的朋友吗?刚开始先买个开发板学习吧,这样出现莫名其妙的问题也好解决。
熊瑟
4楼-- · 2019-07-21 13:05
回复【3楼】sheep:
---------------------------------
能自己点亮跑马灯,确实比hello world难很多,但是也比hello world有用很多
sheep
5楼-- · 2019-07-21 17:08
 精彩回答 2  元偷偷看……
odleio
6楼-- · 2019-07-21 20:44
include <stm32f4xx.h>
我倒,调用Cortex-M4的寄存器定义头文件

一周热门 更多>