这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 点灯程序,一直点不亮!!!!

共10条 1/1 1 跳转至

点灯程序,一直点不亮!!!!

菜鸟
2014-04-04 21:33:41     打赏
我的点灯程序,一直没反应,程序如下

int main(void)  
{  
#ifdef DEBUG  
  debug();  
#endif  
    vu32 i = 1;   
      
    GPIO_InitTypeDef GPIO_InitStructure; //GPIO 状态恢复默认  
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB , ENABLE);  
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3; //管脚位置定义,标号可  
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//输出速度50MHz  
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   
    GPIO_Init(GPIOB, &GPIO_InitStructure);//B 组GPIO 初始化  
           
  /* Infinite loop */  
  while (1)  
  {  
  i++;  
  sleep(10000);  
  GPIO_ResetBits(GPIOB,GPIO_Pin_3);  
  if(i%2 == 0)  
        GPIO_WriteBit(GPIOB,GPIO_Pin_3,(BitAction)0x01);  
  else{  
        GPIO_WriteBit(GPIOB,GPIO_Pin_3,(BitAction)0x00);  
    }  
  }  
}  
 

我想让灯一闪一闪的,sleep就是一个循环
void sleep(vu32 ncount)  
{  
for(; ncount != 0; ncount--);  
}  

我是直接生成hex文件,然后用j flash刷进去的。灯一直不亮。是不是程序有问题呢



菜鸟
2014-04-04 21:37:43     打赏
2楼
求帮忙看下 @Snake0301  @烈火狂龙

院士
2014-04-04 21:55:27     打赏
3楼

从代码上面 看不出来哪里的问题啊~~

楼主 是不是使用单步运行看看灯是否亮。

这个延时可能有些短,


院士
2014-04-04 22:31:03     打赏
4楼
 这段程序从理论上可以实现楼主的意思。 

院士
2014-04-04 22:38:40     打赏
5楼

楼主, 我已经将你的代码写入我的开发板上了。

LED灯是正常控制,只是由于你的延时时间太短了,看到的常亮而已。


菜鸟
2014-04-05 14:45:42     打赏
6楼
我的是一直不亮,我设置成常亮,它也不亮,是不是开机配置没弄好,我的main函数就这些,有没有漏掉什么初始化的东西

高工
2014-04-05 15:03:15     打赏
7楼

在while(1)内最后一条语句之后再添加一条sleep(10000)试试,仅有一条延时看不出来的闪烁的


高工
2014-04-05 15:12:24     打赏
8楼

撸主,这块U的RPB3口上电复位后默认不是通用IO哟。

是jtag的一个调试端口

要配置一下复用才行,或者把jtag给毙了

可以看我的帖子:  http://forum.eepw.com.cn/thread/249462/1

不要锁死了哟。


工程师
2014-04-05 16:18:14     打赏
9楼
PB3是JTAG口,要先关闭JTAG,打开SWD,才能控制这个端口。

院士
2014-04-06 07:13:17     打赏
10楼
噢 看了楼上的回复才明白! 我并没有使用你的引脚!我只是验证了程序的逻辑功能!

共10条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]