2 stm32之间的通信

时间:2019-03-23 13:51:40

标签: stm32 i2c

我正在尝试与I2C通信2 STM32,我的配置如下:

7位寻址模式(无双地址,只有OAR1)

100khz速度

启用了ACK(在从属设备上)

已禁用ACK(在主设备上,因为主设备/从设备之间随时只能传输1个字节)

在主/从机上,都将GPIOB(PB6)用作AF的SCL和将GPIOB(PB7)用作AF的SDA。

主密码:

div

从站代码:

left-margin

地址不匹配。我在示波器上看不到SDA和SCL信号的任何响应。我使用4.7kohm的电阻将SCL和SDA都拉至3.3v 每行。(STM32F103C6)。

1 个答案:

答案 0 :(得分:0)

目前,在i2c_Master_Config()的主开始处启用了主I2C模块,然后在sendData()的末尾将其禁用,再也没有启用。

从属I2C模块在readData()的开始处启用,并在其结尾处被禁用。

这足以中断通信。应该一直启用I2C外设模块(直到您了解何时应该禁用它)。

p.s。抱歉,我没有深入分析您的代码-很多“魔术数字”而不是助记符位名称使分析变得困难。也许还有其他错误。