
参考手册上的原话是“如果在上一次数据传输结束之前TxE位已置1,但数据字节尚未写入DR寄存器,则BTF位会置1,而接口会一直延长SCL低电平,等待I2C_DR寄存器被写入,以将BTF清零。” 我结合着ST的HAL库,对主发送器发送数据的时候,BTF何时置1有两种理解:1、当数据在发送的时候,即移位寄存器中有值,但DR为空,BTF会马上被置1,当数据发送完毕,这时才会延长SCL为低电平。2、当数据在发送的时候,DR为空,但BTF不会马上置1,当数据发送完毕,BTF置1,同时延长SCL为低电平。 不知道我的理解哪里有问题? |
感觉第二个解释会合适一点。 |