BSRR寄存器的优点多多,所以官方HAL库操作GPIO都是使用的BSRR寄存器。
有个问题,因为BSRR寄存器只能写1,写0是无效的,所以在想要只改变单独一个引脚电平且不影响其他引脚时可以直接写入"=",不必使用"|="
下面是官方库函数写寄存器的方法。
现在问题就来了,"="和"|="到底哪个更快呢?
通常操作寄存器我们都习惯用"|="
因为没法实验验证到底哪个快!理论上"="要会快点,毕竟不用比较直接对位进行覆盖。
但如果速度相差不大还是我觉得还是用BSRR |= (1<< n)吧!