为什么像下面这样定义两个数组?
const uint16_t LEDS = GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
const uint16_t LED[4] = {GPIO_Pin_12, GPIO_Pin_13, GPIO_Pin_14, GPIO_Pin_15};
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
就你给的代码来看, 这是为了控制四个LED的, 且应该有类似这样的定义:
#define GPIO_Pin_12 (1<<12)
#define GPIO_Pin_13 (1<<13)
#define GPIO_Pin_14 (1<<14)
#define GPIO_Pin_15 (1<<15)通常要点亮LED 0, 将对应的GPIO(一个寄存器, 假设就叫GPIO_LED)的值与GPIO_Pin_12做或(|)运算, 即GPIO_LED | GPIO_Pin_12, 对应到你的变量定义也可以是GPIO_LED | LED[0]. 类推点亮其他LED.
有时我们需要一次把四个LED全都点亮, 我们可以这么做: GPIO_LED | LED[0] | LED[1] | LED[2] | LED[3].
等价于GPIO_LED | (LED[0] | LED[1] | LED[2] | LED[3]), 括号里的东西不就是你的变量LEDS么~