stm32内部的iic怎么感觉不稳定啊,大家遇到过没
2个回答
展开全部
我觉得还好吧,加点针对性的的代码就可以了
1.比如为了防止错过Ack信号的读取,可以加入循环发送并读Ack的步骤,也可以直接关中断,如果有资源用DMA最好了,收发数据以及标志位的相关处理和判断都自动处理。
2.还有就是调试过程中,如果断点设在等待Ack前,会清除Ack信号
ADDR: Address sent (master mode)/matched (slave mode)
This bit is cleared by software reading SR1 register followed reading SR2
Ack信号会在读SR1和SR2后被清除。调试器会读取SR1和SR2,所以设断点在等待Ack前会导致程序检测不到Ack信号
1.比如为了防止错过Ack信号的读取,可以加入循环发送并读Ack的步骤,也可以直接关中断,如果有资源用DMA最好了,收发数据以及标志位的相关处理和判断都自动处理。
2.还有就是调试过程中,如果断点设在等待Ack前,会清除Ack信号
ADDR: Address sent (master mode)/matched (slave mode)
This bit is cleared by software reading SR1 register followed reading SR2
Ack信号会在读SR1和SR2后被清除。调试器会读取SR1和SR2,所以设断点在等待Ack前会导致程序检测不到Ack信号
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询