我正在研究I2C协议,我想用STM32微控制器来实现它。因此,阅读文档文件时,我展示了一个I2C的初始化流程图,它在开始时(在我们进行启动器init设置之后)重新设置软件。我读过一篇在文档中引用软件重置的文章,但我无法在我的脑海中清楚地说明为什么我们需要软件重置。

发布于 2022-05-14 19:12:36
您还没有指定您正在使用的确切部分,但是对于许多STM32,每当总线被RCC锁定时,I2C外围设备就会监视它。如果在您的开机顺序中没有很好地定义I2C总线的状态,那么I2C外围设备可能会看到它所认为的总线活动。然后它监视公共汽车,寻找停车顺序。如果你指示它在它还认为公共汽车很忙的时候做一个开始序列,它就会拒绝。
软件重置的目的不仅是将寄存器重置为其默认值,而且是获取外围设备认为总线处于回空闲状态。
https://stackoverflow.com/questions/72240340
复制相似问题