I2C访问
i2c_write
{
写防挂死寄存器,发9个时钟周期;====
通道选择 =====
加信号量保护
查看是否空闲,应该空闲,否则信号量进不来
写数据
写地址
启动I2C传输
查看是否OK
去信号量保护
}
这段代码有问题 ==== 也应该放到信号量保护里面,否则A进程获取信号量进入I2C访问的时候;B进程进入防挂死处理的时候会让A访问失败。
另外,I2C传输失败的时候要打印寄存器,寄存器也要注意防止海量日志。可以通过两种方法结合。
非异常到异常状态或者 非异常到异常状态打印; 打印不能超过N次