野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12583|回复: 1

流水灯程序中led灯引脚电平清0置1的疑惑?

[复制链接]
发表于 2016-3-9 17:00:51 | 显示全部楼层 |阅读模式
在流水灯程序中,使用寄存器控制IO,看下面三段程序
QQ截图20160309164401.png
手册中GPIOx_BSRR寄存器得明确BSy为高电平1才能把相应的ODRy位置1
QQ截图20160309164953.png
手册中GPIOx_BRR寄存器得明确BRy为高电平1才能把相应的ODRy位清0

QQ截图20160309164215.png
这段只是定义了led1的引脚,并没有给引脚明确赋电平值

QQ截图20160309163821.png
QQ截图20160309163904.png

而通过这三段程序后实验证明却可以改变是led1亮灭,也就是说改变了给 led1 的引脚清0置1了
这怎么实现的呢?拿设置高电平为例说明我的疑惑!!!
在宏定义          #define      macLED1_GPIO_PORT            GPIOB                                 /* GPIO端口 */
                        #define      macLED1_GPIO_PIN                GPIO_Pin_0    只是定义了引脚、
再通过这两句  #define       LED1_ON                            digitalLo(macLED1_GPIO_PORT,macLED1_GPIO_PIN)
                       #define         digitalHi(p,i)                            {p->BSRR=i;}                        //设置为高电平
最后也只是相当于是说把   引脚GPIO_Pin_0的电平值传给GPIOB_BRR中的第0位,但关键就是这整个代码中
并没有设置GPIO_Pin_0的电平,也就是说没法确定BR0是1还是0,也就无法确定是否置1
所以这样的那最后是怎么实现led1  引脚清0置1了的呢?





回复

使用道具 举报

发表于 2016-3-9 20:41:43 | 显示全部楼层
可以看看我们最新的教程,基于F4的:http://www.firebbs.cn/thread-10568-1-1.html
gpio点灯的章节已详细讲解。F1的教程我们还没整理完,F1与F4类似,看了就懂了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 15:17 , Processed in 0.040533 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表