Рукав пришивается только на данные, т.е. i2c_enable_dma() делает
ничего, пока не взведён TxE в SR1 -- а он "set when DR is empty in
transmission. TxE is not set during address phase." А address phase закончилась, когда мы прошли последние две строчки в update(), поскольку
"Reading I2C_SR2 after reading I2C_SR1 clears the ADDR flag, even if the ADDR flag was set after reading I2C_SR1. Consequently, I2C_SR2 must be read only when ADDR is found set in I2C_SR1 or when the STOPF bit is cleared."
RM0008, 26.6 I2C registers