Red de conocimiento informático - Problemas con los teléfonos móviles - Dado que STM32 puede operar ODR directamente, ¿por qué necesitamos configurar BSRR y BRR?

Dado que STM32 puede operar ODR directamente, ¿por qué necesitamos configurar BSRR y BRR?

Si quieres cambiar el estado de un determinado bit sin afectar a otros, es fácil utilizar BSRR o BRR. La operación directa de ODR requiere un proceso de "lectura-operación-escritura", lo que reduce la velocidad.

Por ejemplo, para borrar PA1, PA3 y PA7 sin afectar el estado de otros bits, es decir:

GPIOA->BRR=PA1|PA3|PA7;

Si desea utilizar ODR para operar, será así:

GPIOA->ODR&=~(PA1|PA3|PA7);

Aunque la declaración C Solo hay uno de ellos, pero si observa el código ensamblador, encontrará que usar BRR es mucho más rápido que ODR.