搜索
bottom↓
123
返回列表 发新帖
楼主: Appcat

被STM32的I2C调戏了两天,终于花半小时用模拟I2C将其消灭,公布代码

  [复制链接]

出1070入962汤圆

 楼主| 发表于 2013-5-14 11:44:42 | 显示全部楼层
鬼吹土豆 发表于 2013-5-11 22:39
低速的当然要优先级高了,木桶效应嘛

I2C的低速,一是理解为速度低,二是理解为实时性要求低,这样的外设,在空闲的时候慢慢操作就是了,如果来了实时性更高的请求,随便插入,弄完了这边在接着慢慢搞。
对于中断可重入的M3 ARM来说,I2C中断优先级最高,意味着其他高速外设的中断都要为它让路,不是不可以,而是会带来很多麻烦,对I2C中断函数写作要求更高,那种慢慢等的
写法就歇菜了。这样一来,不觉得别扭吗?
这个和木桶效应毛关系都扯不上,外设和外设之间的不是桶板那样对等的关系。

出10入0汤圆

发表于 2013-6-2 16:36:41 | 显示全部楼层
MARK                                       

出0入0汤圆

发表于 2013-7-8 11:57:45 | 显示全部楼层
经典神帖.

出0入0汤圆

发表于 2013-7-19 19:33:17 | 显示全部楼层
标记之

出0入0汤圆

发表于 2013-7-19 20:05:58 | 显示全部楼层
MARK                                         

出0入0汤圆

发表于 2013-7-19 20:24:00 来自手机 | 显示全部楼层
得继续把硬件的iic搞出来,既然用这个东西,就要有啃骨头的决心,将来用spi,sdio,fsmc什么的卡住了,难道都去用gpio模拟?所以要迎难而上

出0入0汤圆

发表于 2013-7-19 20:36:10 | 显示全部楼层
学习了~谢谢楼主的分享

出0入0汤圆

发表于 2013-7-20 22:37:02 | 显示全部楼层
顶一个~~学习了

出0入0汤圆

发表于 2013-7-21 11:22:35 | 显示全部楼层
有硬件,为什么不用呢。。

出0入0汤圆

发表于 2013-7-21 11:47:16 | 显示全部楼层
硬件的IIC 用不好

出0入0汤圆

发表于 2013-7-26 17:52:21 | 显示全部楼层
还没敢去用硬件IIC

出0入0汤圆

发表于 2013-7-26 19:48:57 来自手机 | 显示全部楼层
不错呀


出0入0汤圆

发表于 2014-4-2 23:13:40 | 显示全部楼层
据说stm32 硬件i2c有问题?

出0入0汤圆

发表于 2014-4-3 09:42:30 | 显示全部楼层
panxiaoku 发表于 2009-7-13 14:58
怎么不用硬件的I2C,要用模拟的呢?

硬件的比模拟的要复杂一点,不如直接用模拟的,反倒更省事,也更好移植

出0入0汤圆

发表于 2014-4-15 06:15:37 | 显示全部楼层
我的问题也是总线一直被占用。参考一下。

出0入8汤圆

发表于 2014-4-27 19:00:24 | 显示全部楼层
我也被调戏了两天

出0入0汤圆

发表于 2014-4-27 21:21:05 | 显示全部楼层
路过路过赞下吧 程序表示看不懂

出0入0汤圆

发表于 2014-8-1 16:53:48 | 显示全部楼层
flame_boy 发表于 2011-6-8 13:11
**** 作者被禁止或删除 内容自动屏蔽 ****

怎么没看到代码啊,

出0入0汤圆

发表于 2014-8-8 18:12:09 | 显示全部楼层
还在被调戏中

出0入0汤圆

发表于 2014-8-10 20:11:37 | 显示全部楼层
遇到困难解决不了,
被迫用极其低效的方法,
难道这还值得骄傲吗?

出0入8汤圆

发表于 2014-8-11 08:45:21 | 显示全部楼层
标记一下,代码越写越简洁~

出0入0汤圆

发表于 2014-8-11 17:02:00 | 显示全部楼层
貌似不错,呵呵!

出0入0汤圆

发表于 2014-8-11 20:58:13 | 显示全部楼层
顶一个。。

出0入0汤圆

发表于 2014-8-12 10:06:18 | 显示全部楼层
MARK     

出0入0汤圆

发表于 2014-8-12 11:21:46 | 显示全部楼层
不了解,硬件I2C很难用吗?
mark

出0入8汤圆

发表于 2014-12-24 13:13:12 | 显示全部楼层
借用了一下35楼,感觉挺爽~

出0入0汤圆

发表于 2014-12-24 13:19:28 | 显示全部楼层
东西蛮好的,学习

出0入0汤圆

发表于 2014-12-24 13:22:28 | 显示全部楼层
我也是用的模拟的。硬件IIC感觉还不如模拟的好用那

出0入0汤圆

发表于 2014-12-24 13:46:45 | 显示全部楼层
MARK 正在调试I2C!

出0入0汤圆

发表于 2014-12-24 14:11:41 | 显示全部楼层
搞个逻辑分析仪调,肯定加速不少.

出0入0汤圆

发表于 2014-12-24 14:46:22 | 显示全部楼层
好帖   ,硬件IIC太鸡肋啦

出0入270汤圆

发表于 2014-12-24 15:01:20 | 显示全部楼层
一直在用硬件的IIC 没出过问题

出0入0汤圆

发表于 2014-12-24 16:08:30 | 显示全部楼层
STM32/STM8硬件IIC感觉是硬伤,但是我没有亲身调试过,要用到IIC,想都不想,模拟的

出0入0汤圆

发表于 2014-12-24 17:14:10 | 显示全部楼层
用了这么久的模拟IIC,其实还没用过硬件IIC。。。大家说不好用我就跟着不用了。。。

出0入0汤圆

发表于 2014-12-24 21:11:41 | 显示全部楼层
楼主辛苦,学习了

出0入0汤圆

发表于 2014-12-24 22:44:04 | 显示全部楼层
一直用硬件II2C,遇到过干扰死掉情况,但重设下就好了啊,谁能说说硬件II2C到底什么BUG啊

出0入0汤圆

发表于 2014-12-24 23:26:07 | 显示全部楼层
先收藏了啊,谢谢分享!

出0入0汤圆

发表于 2014-12-25 08:03:30 | 显示全部楼层
还没真正用过硬件的I2C,先了解,后续需要就绕开,MARK

出0入0汤圆

发表于 2014-12-25 09:03:22 | 显示全部楼层
学习了  教授

出0入0汤圆

发表于 2014-12-25 10:26:30 | 显示全部楼层
强悍的IIC,我来学习一下,免得被搞的昏头转向。

出0入0汤圆

发表于 2014-12-25 10:56:18 | 显示全部楼层
准备用i2c的路过学习

出0入0汤圆

发表于 2014-12-25 12:26:46 | 显示全部楼层
这个是好东西啊!mark

出0入0汤圆

发表于 2014-12-25 13:18:29 | 显示全部楼层
顶起

出0入0汤圆

发表于 2014-12-29 15:31:19 | 显示全部楼层
mark,iic模拟,驱动

出0入0汤圆

发表于 2014-12-29 16:34:52 | 显示全部楼层
谢谢分享,I2C不常用,先收藏下。

出0入0汤圆

发表于 2015-1-5 09:28:43 | 显示全部楼层
硬件 I2C 的停在  while (!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED)); 就不动了,同样改用模拟的了。

出0入0汤圆

发表于 2015-1-5 10:21:58 | 显示全部楼层
很多人调试IIC都出现过这样的问题,原因就是他跟我们很多处理器的标志位不一样,其实,努力看懂它的那个时序,很简单的。原来没有杰出的时候,很多同学说stm32的IIC有问题,我说:这不是国产货,不可能出了这么多货了,IIC有问题,是你们没有搞懂。后来为了教育他们,花了一天时间,搞起,其实不难

出0入0汤圆

发表于 2015-1-5 10:23:02 | 显示全部楼层
个人觉得软件模拟,速度太慢,特别是处理姿态的时候,如果用硬件,可以用DMA。。

出0入0汤圆

发表于 2015-1-5 23:01:20 | 显示全部楼层
感谢分享。。。。

出0入0汤圆

发表于 2015-1-26 10:32:23 | 显示全部楼层
大神 24CL16不是16K的么,这个模拟I2C的速度怎么算的,延时常数为5的时候,I2C的速度是多少啊?

出1070入962汤圆

 楼主| 发表于 2015-1-26 11:02:06 | 显示全部楼层
tragedy 发表于 2015-1-26 10:32
大神 24CL16不是16K的么,这个模拟I2C的速度怎么算的,延时常数为5的时候,I2C的速度是多少啊?
...

是16Kbit,不是16KByte。

延时常数和MCU主频有关,最好的测试办法是逻辑分析仪看一下就知道实际速度了。

出0入0汤圆

发表于 2015-1-27 23:42:21 | 显示全部楼层
哈哈,谢谢LZ分享,还是模拟的稳定~o(∩_∩)o 哈哈

出0入0汤圆

发表于 2015-3-5 17:56:06 | 显示全部楼层
直接用模拟的,省事,反正要求也不是很高。

出0入0汤圆

发表于 2015-3-5 22:57:35 | 显示全部楼层
好长!STM32集成的I2C好难搞

出0入0汤圆

发表于 2015-3-5 23:38:04 | 显示全部楼层
stm32芯片推出这么多年了,硬件iic的这些个bug还没有修改吗?

出0入0汤圆

发表于 2015-3-6 09:05:47 | 显示全部楼层
感觉硬件IIC多少都存在点bug

出0入0汤圆

发表于 2015-3-6 10:30:49 | 显示全部楼层
有用啊,可以发表论文了,真真使用!

出0入0汤圆

发表于 2015-4-23 00:57:12 | 显示全部楼层
mark,马上会用到IIC,谢谢经验分享!

出0入0汤圆

发表于 2015-4-23 07:51:19 | 显示全部楼层
之前一直用硬件的,看来软件的也蛮灵活的。

出0入0汤圆

发表于 2015-4-23 10:41:55 | 显示全部楼层
mark 一下

出0入0汤圆

发表于 2015-4-26 22:01:12 | 显示全部楼层
最近也在硬件I2C,偶尔出现卡死,看来是不是要考虑用软件模拟

出0入0汤圆

发表于 2015-4-27 22:39:58 | 显示全部楼层
把速度降到20KHz,目前还未出现卡死,反正对速度要求不高,先将就着用了

出0入0汤圆

发表于 2015-5-15 06:17:10 | 显示全部楼层
MARK            

出0入0汤圆

发表于 2015-5-15 09:39:19 | 显示全部楼层
模拟跟非模拟有什么区别?

出0入0汤圆

发表于 2015-5-15 13:12:26 | 显示全部楼层
学习了啊

出0入0汤圆

发表于 2015-7-13 15:05:25 | 显示全部楼层
劝大家都用模拟地吧,硬件不稳定一会儿好一会坏,就是不能用,事实胜于雄辩

出0入0汤圆

发表于 2015-7-13 19:50:08 | 显示全部楼层
很好 可以参考一下  谢谢

出0入0汤圆

发表于 2015-7-13 21:43:06 | 显示全部楼层
今天在用IIC,待会模拟下!

出0入0汤圆

发表于 2015-7-13 22:48:07 | 显示全部楼层
STM32的I2C

出0入0汤圆

发表于 2021-6-23 22:56:20 来自手机 | 显示全部楼层
留着备用

出150入640汤圆

发表于 2021-6-23 23:42:56 | 显示全部楼层
居然加精了,不可思议。二十六年前就知道用GPIO模拟I2C了,还有UART!一群人说stm32的硬件i2c有bug,燃鹅,这个bug并没有加入st的silicon errata手册。

出675入8汤圆

发表于 2021-6-23 23:53:25 来自手机 | 显示全部楼层
我倒是想试试硬件的

出0入10汤圆

发表于 2021-6-24 08:24:37 | 显示全部楼层
有些非标的时序,只能用软件吧。只有标准的时序才能用硬件i2c吧
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-26 07:36

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表