OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 18369|回复: 11

1<

[复制链接]

69

主题

216

帖子

0

精华

高级会员

Rank: 4

积分
514
金钱
514
注册时间
2012-3-21
在线时间
0 小时
发表于 2013-8-6 10:24:17 | 显示全部楼层 |阅读模式
有一段代码中有这样一句语句:
GPIO_InitStructure.GPIO_Pin = (1<<GPIO_PinSource2) ;

程序是直接使用 GPIO_PinSource2 引脚, 为什么赋值里要写成这样 1<<GPIO_PinSource2 ? 
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

头像被屏蔽

52

主题

440

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1237
金钱
1237
注册时间
2013-1-9
在线时间
151 小时
发表于 2013-8-6 10:39:25 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

2

主题

1446

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2256
金钱
2256
注册时间
2010-12-16
在线时间
206 小时
发表于 2013-8-6 11:42:48 | 显示全部楼层
看看PinSource和Pin的值具体是多少就知道了.

这个PinSource是给EXTI用的,这样写是刚好正确而已,并不是原始设计目的.
技术讨论请发帖 , 需要我回复请点左下的 < 回复 > 让系统通知我 . 本人不通过其他方式返回任何参数.
回复 支持 反对

使用道具 举报

69

主题

216

帖子

0

精华

高级会员

Rank: 4

积分
514
金钱
514
注册时间
2012-3-21
在线时间
0 小时
 楼主| 发表于 2013-8-6 12:23:00 | 显示全部楼层
回复【3楼】shihantu:
---------------------------------
我还是不懂,给我讲下吧。
程序的目的是把两个LED点亮,硬件上两个LED分别连在PA2和PA3上。初始化完整代码如下

#define LED_PIN_0                       (GPIO_PinSource2)
#define LED_PIN_1                       (GPIO_PinSource3)

GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = (1<<LED_PIN_0) | (1><<LED_PIN_1);  //1<<LED_PIN_0怎么理解?
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure); //这里怎么是GPIOB,不应该是GPIOA ?

我做过实验,上述代码确实可以把两个led点亮。但我不明白为什么?>
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-8-6 12:47:18 | 显示全部楼层
回复【4楼】servent:
---------------------------------
你要看GPIO_PinSource2,GPIO_PinSource3是什么东西,找他们的定义.
一直要找到你看得懂的为止.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

1446

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2256
金钱
2256
注册时间
2010-12-16
在线时间
206 小时
发表于 2013-8-6 17:25:17 | 显示全部楼层
的确是GPIOA才对,你要排除没有其他代码干扰结果.

你要看看<位操作>的相关知识.
技术讨论请发帖 , 需要我回复请点左下的 < 回复 > 让系统通知我 . 本人不通过其他方式返回任何参数.
回复 支持 反对

使用道具 举报

1

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
54
金钱
54
注册时间
2013-7-31
在线时间
3 小时
发表于 2013-8-7 07:39:39 | 显示全部楼层
可能是作者知道Pinsource2代表什么,然后用这个值移位。你用的时候查到对应的值,然后把它换掉是一样的。说白了,就是个数值,只不过作者知道是什么意思。
回复 支持 反对

使用道具 举报

28

主题

1489

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1656
金钱
1656
注册时间
2013-7-24
在线时间
1 小时
发表于 2013-8-7 08:31:19 | 显示全部楼层
这种方式就是既要用库,又不使用库准备好的宏定义。
/*用于EXTI的IO口定义,表示位号*/
#define GPIO_PinSource0            ((uint8_t)0x00)
#define GPIO_PinSource1            ((uint8_t)0x01)
#define GPIO_PinSource2            ((uint8_t)0x02)
#define GPIO_PinSource3            ((uint8_t)0x03)
#define GPIO_PinSource4            ((uint8_t)0x04)
#define GPIO_PinSource5            ((uint8_t)0x05)
#define GPIO_PinSource6            ((uint8_t)0x06)
#define GPIO_PinSource7            ((uint8_t)0x07)
#define GPIO_PinSource8            ((uint8_t)0x08)
#define GPIO_PinSource9            ((uint8_t)0x09)
#define GPIO_PinSource10           ((uint8_t)0x0A)
#define GPIO_PinSource11           ((uint8_t)0x0B)
#define GPIO_PinSource12           ((uint8_t)0x0C)
#define GPIO_PinSource13           ((uint8_t)0x0D)
#define GPIO_PinSource14           ((uint8_t)0x0E)
#define GPIO_PinSource15           ((uint8_t)0x0F)
于20150522停用该账号:http://www.microstar.club
回复 支持 反对

使用道具 举报

69

主题

216

帖子

0

精华

高级会员

Rank: 4

积分
514
金钱
514
注册时间
2012-3-21
在线时间
0 小时
 楼主| 发表于 2013-8-7 11:29:07 | 显示全部楼层
回复【8楼】styleno1:
---------------------------------
明白了,谢谢您!
回复 支持 反对

使用道具 举报

69

主题

216

帖子

0

精华

高级会员

Rank: 4

积分
514
金钱
514
注册时间
2012-3-21
在线时间
0 小时
 楼主| 发表于 2013-8-7 11:29:36 | 显示全部楼层
回复【7楼】jayyuz:
---------------------------------
是的,后来看懂了!
回复 支持 反对

使用道具 举报

69

主题

216

帖子

0

精华

高级会员

Rank: 4

积分
514
金钱
514
注册时间
2012-3-21
在线时间
0 小时
 楼主| 发表于 2013-8-7 11:30:04 | 显示全部楼层
回复【6楼】shihantu:
---------------------------------
有道理,后来看明白了!
回复 支持 反对

使用道具 举报

69

主题

216

帖子

0

精华

高级会员

Rank: 4

积分
514
金钱
514
注册时间
2012-3-21
在线时间
0 小时
 楼主| 发表于 2013-8-7 11:32:07 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
谢谢原子哥!
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-15 15:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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