winricky 发表于 2017-3-30 17:04:12

如何使用HAL I2C做Slave接收

想用一个I2C 做DMA Slave收发,但是我发现这方面资料太少了
而且看ST的example都太简单了,只能说API能用而已,请帮忙想想部分可靠的架构

我的想法是,在DMACpltCallback中做状态机变化,
收发方面由I2C Master控制状态机,I2C Master先写固定字节传递Write or Read操作,
然后根据收到的信息控制状态机,在某个状态下做SlaveTransmit或者SlaveReceiver,这时候可以知道何时可以
但是这里还要考虑状态超时什么的,感觉不如Cypress的EzI2C方便使用,用户只需要提供读写内存,类似eeprom的读写方式使用
请教还有什么可靠的方式保证通信吗?

最后吐槽一下居然ST没有提供pc机上的ISP烧写工具和代码,貌似没有看到I2C的,只有一个简单的USB bridge工程

奏奏奏 发表于 2017-3-30 17:04:13

winricky 发表于 2017-3-31 09:54
自己顶啊
有没有I2C 做Slave通信的案例啊

具体可以参考我之前的帖子:
STM32F1的I2C主机间通讯工程
https://www.stmcu.org.cn/module/forum/forum.php?mod=viewthread&tid=610058&fromuid=3319693
(出处: 意法半导体STM32/STM8技术社区)

winricky 发表于 2017-3-31 09:54:40

自己顶啊
有没有I2C 做Slave通信的案例啊
页: [1]
查看完整版本: 如何使用HAL I2C做Slave接收