各种函数初始化或者置位复位函数,参数里的引脚,什么时候可以用 “|”的关系,什么时候只能多次调用函数呢?

2019-07-20 19:39发布


为什么 GPIO_SetBit 参数可以一次传递两个参数(GPIO_Pin_9 与 GPIO_Pin_10),而 SYSCFG_EXTILineConfig()却不能用类似的方法呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
正点原子
1楼-- · 2019-07-21 00:37
 精彩回答 2  元偷偷看……
睡不着的诗人
2楼-- · 2019-07-21 02:25
楼主什么意思
睡不着的诗人
3楼-- · 2019-07-21 05:07
那句话为什么不行,谢谢
花好,月正圆
4楼-- · 2019-07-21 08:59
先上这两张图。#define EXTI_PortSourceGPIOA       ((uint8_t)0x00)
#define EXTI_PortSourceGPIOB       ((uint8_t)0x01)


EXTI_PortSourceGPIOA   | EXTI_PortSourceGPIOB        实际值是0x00 | 0x01 = 0x01,所以按位或运算结果就出错。
而由库函数:
#define GPIO_Pin_0                 ((uint16_t)0x0001)  /* Pin 0 selected */
#define GPIO_Pin_1                 ((uint16_t)0x0002)  /* Pin 1 selected */


GPIO_Pin_0  |  GPIO_Pin_1         
实际值是0x01 | 0x02  =
   0000 0001
|  0000 0010
------------------------
   0000 0011  =0x03.这样就把GPIO_Pin_0与GPIO_Pin_1同时设置了。


其他情况,以此类推即可。

一周热门 更多>