2019-07-20 16:27发布
lnsylyl 发表于 2017-2-14 20:26 我觉得你不必纠结这些东西,人家的代码没毛病,每个人都有自己的书写习惯,其实,个人觉得还是下面的写法,更易 ...
2017214 发表于 2017-2-14 20:58 初始化单个IO口:GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; 初始化多个IO口可以写成: GPIO_InitStructur ...
最多设置5个标签!
我觉得你不必纠结这些东西,人家的代码没毛病,每个人都有自己的书写习惯,其实,个人觉得还是下面的写法,更易于理解
GPIO_InitStructure.GPIO_Pin =GPIO_PIN_1 |
| GPIO_PIN_4
| GPIO_PIN_5
| GPIO_PIN_8
| GPIO_PIN_9
| GPIO_PIN_10
| GPIO_PIN_14
| GPIO_PIN_15;
初始化多个IO口可以写成:
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3;
其中GPIO_Pin_x是宏定义 :如下 (在MDK中 按键盘F12可以跟踪)
#define GPIO_Pin_0 ((uint16_t)0x0001) /*!< Pin 0 selected */
#define GPIO_Pin_1 ((uint16_t)0x0002) /*!< Pin 1 selected */
................
GPIO_InitStructure.GPIO_Pin = (3<<0)|(3<<4)|(7<<8)|(3<<14);
(3<<0)==(GPIO_PIN_0 | GPIO_PIN_1)
(3<<4)==(GPIO_PIN_0 | GPIO_PIN_1)<<4==(3<<0)==(GPIO_PIN_4 | GPIO_PIN_5)
(3<<0)|(3<<4)== (3<<0)==(GPIO_PIN_0 | GPIO_PIN_1)| (3<<0)==(GPIO_PIN_4 | GPIO_PIN_5)
按这推算
其实我也习惯这种写法
谢谢回复,解决了
一周热门 更多>