求助三句话的程序,我找不到错误

[复制链接]
 楼主| iiijjj0323 发表于 2012-7-2 20:55 | 显示全部楼层 |阅读模式
pi, gp, GPIO, IO, LED
本帖最后由 iiijjj0323 于 2012-7-2 20:57 编辑

我在主循环中想让LED闪动,这样写的
void main()
{
  while(1)
  {
        GPIO_ResetBits(GPIOA, GPIO_Pin_2);     // 点亮LED
        for(i=0;i<0xfffffff;i++);                      // 延时
        GPIO_SetBits(GPIOA, GPIO_Pin_2);         //灭LED
   }
我用的是stm32103rb单片机,单片机时钟 GPIO 等 初始化肯定没有问题,我用的是keil4
如果我把主函数改成
void main()
{
  while (1)
  {      
    for (i = 0; i <5 ; i++)
    {
      if (i %= 1)
      {
        GPIO_ResetBits(GPIOA, GPIO_Pin_2);
      }
      else
      {
        GPIO_SetBits(GPIOA, GPIO_Pin_2);  
      }
      for (i=0;i<0xfffffff;i++);
    }
  }
}
这样改后LED就能闪动了,但我总感觉第一个比较简练,却不好使,led一直亮,不知道为什么,请大家找找原因
shendalei 发表于 2012-7-3 10:42 | 显示全部楼层
GPIO_ResetBits(GPIOA, GPIO_Pin_2);     // 点亮LED
        for(i=0;i<0xfffffff;i++);                      // 延时
        GPIO_SetBits(GPIOA, GPIO_Pin_2);         //灭LED
                for(i=0;i<0xfffffff;i++);                      // 延时
 楼主| iiijjj0323 发表于 2012-7-3 13:09 | 显示全部楼层
明白了,谢谢,哈哈
电子学习员 发表于 2012-7-5 00:06 | 显示全部楼层
熄灭后还需要一次延时
sedatefire 发表于 2012-7-5 18:07 | 显示全部楼层
GPIO_SetBits(GPIOA, GPIO_Pin_2);         //灭LED
这个搞完后就又搞回去了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

29

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部