打印
[应用相关]

stm32的gpio设置led的问题?

[复制链接]
736|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
fhguo1990|  楼主 | 2015-4-17 22:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
gpio模式设置为GPIO_Mode_Out_PP:

  //LED:
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_Init(GPIOB, &GPIO_InitStructure);

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_Init(GPIOB, &GPIO_InitStructure);

#define LED2(tmp) (GPIOB->ODR=(tmp?(GPIOB->ODR|1<<7):(GPIOB->ODR&(~(1<<7)))))

可是led只有初始化设置的时候有效,之后在设置,就无效了;
无法达到间隔着一亮一灭,只能要么一直亮,要么一直灭,太奇怪了~~~~~~~

沙发
我是MT| | 2015-4-17 22:20 | 只看该作者
你的代码只是设置了GPIO的模式吧

用SetBits和 Reset函数控制高低电平不就想亮就凉  想灭就灭了

使用特权

评论回复
板凳
fhguo1990|  楼主 | 2015-4-17 22:21 | 只看该作者
是啊,我也试过SetBits和 Reset函数,
反正也只是第一次设置有效,以后再调用这两个函数就无效

使用特权

评论回复
地板
fhguo1990|  楼主 | 2015-4-17 22:22 | 只看该作者
#define LED2(tmp) (GPIOB->ODR=(tmp?(GPIOB->ODR|1<<7):(GPIOB->ODR&(~(1<<7)))))

我也用ODR寄存器控制高低电平,应该也一样吧?

使用特权

评论回复
5
我是MT| | 2015-4-17 22:22 | 只看该作者
帖个完整代码 看看呗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

23

主题

254

帖子

2

粉丝