STM32:没有启用时钟扩展功能的I2C从设备

时间:2019-05-21 11:27:34

标签: stm32 i2c master-slave cortex-m

我必须在STM32L053上实现一个I2C从属设备,以在从属uC上读写一些任意字节的内存,并且要求它也应适用于不支持时钟延长({{1 }})。

我在以下位置找到了一个很好的例子:

这是本文的实现:

对于我来说,此实现对100KHz数据速率下的读取操作没有问题,但来自主设备的写入操作仅能正常工作约50%。有时写入的字节是正确的,有时不正确...

此示例与我的环境之间的区别是,尽管uC有所不同,但STM32L0仍然存在偏差,但由于事实,我还必须使用较低的sysclock,我还必须满足低功耗的另一要求。我的uC以4Mhz运行,示例中的uC以32Mhz运行。 因此,恐怕由于系统时钟慢,我无法在接收下一个传入数据之前在ISR中足够快地从主服务器读取传入的写数据...

如果可以在我的4Mhz环境中完全实现这样的No-Clock-Stretching-I2C-Slave,有人可以给我一个提示吗,如果可以,我该怎么做才能使写入操作也可靠地工作?

以下是NOSTRETCH=1设置的参考手册的说明:

enter image description here

enter image description here

enter image description here

这是读/写功能和I2C ISR的实现:

NOSTRETCH=1

0 个答案:

没有答案