GPIO->ODR与GPIO_Pin同作为实现输出时的区别是什么?

你好!我刚开始学习使stm32,看到有些程序中使用GPIO->ODR实现输出,而有的则用GPIO_Pin来实现输出,我想问一下这两种用法的区别。

GPIO->ODR是32位的输出数据寄存器(高16位保留,低16为依次对应某个GPIO口的16个引脚)。对ODR赋值是一次操作16位的,也就是同时设置了16个引脚的输出电平;而GPIO_PIN是指某个端口的具体某一个引脚,是位操作,可以通过设置BSRR或BRR寄存器来设置某一特定引脚的输出电平,而保持其他引脚输出不变,速度快,效率高。具体可以看看stm32参考手册关于GPIO寄存器的说明。
温馨提示:答案为网友推荐,仅供参考
相似回答