打印
[STM32F0]

STM32F030 I2C 从模式中断编程

[复制链接]
357|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
和下土|  楼主 | 2024-1-31 23:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
第一次用I2C的从模式,之前用的是主模式,用的IO模拟的,在很多设备都用上了,没什么问题。在使用I2C从模式之前,也在网上看到很多人说这个是坑。自己花了几天的时间,终于跳过了这个坑,再次总结下:

1. 最困难的地方:因为需要两个平台对接,主端用的是LINUX系统,芯片是TI335X,从端是STM32F030,我两端的程序都没写过,所以出现问题了,无法判定是哪一边的问题,这个很痛苦。



2. 例子。虽然“拿来主义”不太厚道”,但是站在巨人的肩膀上,往往是最快的。

1) STM32F030的代码:http://www.openedv.com/forum.php?mod=attachment&aid=NDczMzV8N2FkMWE1NWZ8MTU0MTUwMjI3MnwwfDY0NTIy



2)Linux的代码:http://blog.sina.com.cn/s/blog_13087b7fa0102wcyg.html



3. 实际上STM32F030写的已经很好了,只是我在调试过程中,总是huiy怀疑这怀疑那的,改了很多代码,做了很多打印信息,实际上证明我的怀疑都是错的。



4. Linux才是很大的坑,毕竟我很少在Linux下编程。

  1)ioctl返回的是成功失败的标志位,而我一开始以为是返回成功的字节数,这里花了半天时间,老是返回1,实际上就是成功的,而我认为应该范围我需要的长度。

2) 在读、写同时操作的时候,必须先读后写。我在调试的时候,先调试写的代码,是OK的,在调试度的代码,也是OK,最后合并的时候,也是OK。但是发现一断电重开机就不行,折腾几下右可以了。最后把读放在写前面就没在出现异常了。

以上,做个记录。


使用特权

评论回复
沙发
jcky001| | 2024-2-1 11:45 | 只看该作者
虽然“拿来主义”不太厚道”,但是站在巨人的肩膀上,往往是最快的。有道理

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

102

主题

1061

帖子

0

粉丝