2020-02-23 04:17 AM
E.g. RM0351 Rev 6 tells for UART/CR2 / ADDR:
" This bit field can only be written when reception is disabled (RE = 0) or the USART is disabled (UE=0)"
However it seems thaT RE = 0 is not sufficient. Only with UE = 0, a new address may be written.
(gdb) p /x USART1->CR1 = 0x401c
$32 = 0x401c
(gdb) p /x USART1->CR2 = 0x13000000
$33 = 0x13000000
(gdb) p /x USART1->CR2
$34 = 0x13000000
(gdb) p /x USART1->CR1 = 0x4019
$35 = 0x4019
(gdb) p /x USART1->CR2 = 0x11000000
$36 = 0x11000000
(gdb) p /x USART1->CR2
$37 = 0x13000000
Do I do something wrong or is this an undocumented error?