ODR te da un control completo del estado de salida de todo el puerto. Si sabes cuáles deberían ser los valores de los pines del puerto en cualquier momento dado, puedes escribir directamente en ODR. Esto sobrescribirá los valores de cada pin, donde 1 establece y 0 reinicia. Esto puede ser más deseable que BSRR si sabes cuáles deberían ser los valores de los pines de salida en memoria.
BSRR te proporciona un método para establecer y reiniciar a nivel de pin individual sin importar cuáles sean los valores actuales. Te ofrece dos rangos donde puedes establecer y reiniciar explícitamente los pines como una operación de un solo disparo. Cada 1 en el rango de establecimiento se establecerá para ese pin, y cada 1 en el rango de reinicio se reiniciará para ese pin (si tanto el establecimiento como el reinicio están configurados para un pin, el establecimiento tiene prioridad). Esto puede ser más deseable que ODR si no es necesario mantener en memoria cuáles deberían ser los pines.