搜索
bottom↓
回复: 57

STM32 硬件IIC 终极解决方案

  [复制链接]

出0入0汤圆

发表于 2011-10-19 14:49:48 | 显示全部楼层 |阅读模式
刚刚参加 了在济南的STM32 全国研讨会 50%的中奖率下也没抽到那个 渴望已久的STM32F4 的板子,倒是给了个没用的f100的小板。
会上得知两个季度后会有支持 RBG 接口 和SDRAM 的新型号的STM32面世。大家期待吧。


(原文件名:图像023.jpg)


(原文件名:图像028.jpg)


(原文件名:图像029.jpg)


(原文件名:图像031.jpg)
会上有一女应用工程师 姓姚吧提到了,为了规避 飞利浦专利的问题 STM32 的I2C 采用了特殊的硬件设计。所以不同以往,应用起来不太舒服,ST为了解决这个问题 开发了CPAL  
STM32 I2C Communication Peripheral Application Library高级封装了IIC 的硬件收发函数。昨天晚上花点时间折腾好一试果然好用~!若是有哪位朋友对STM32的I2C 失望的不妨一试。另外 STM32 F1 F2 F4 的IP核都是一样的以后肯定能用到的。

哪位有多余STM32F4-DISCOVERY 小弟求一份,这东西真不好买啊........

点击此处下载 ourdev_686371BBYLTQ.zip(文件大小:1.91M) (原文件名:stm32_i2c_cpal.zip)

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入12汤圆

发表于 2011-10-19 14:57:44 | 显示全部楼层
看到STM32的IIC,蛋疼啊

出0入0汤圆

发表于 2011-10-19 15:19:38 | 显示全部楼层
怎么每个地方的研讨会的内容都不一样啊??

出0入0汤圆

发表于 2011-10-19 15:26:46 | 显示全部楼层
支持RGB和SDRAM这个不错。

出0入0汤圆

发表于 2011-10-19 15:36:56 | 显示全部楼层
回复【3楼】avrgogo
-----------------------------------------------------------------------

支持,终于看到更高级点的功能了

出0入0汤圆

发表于 2011-10-19 15:37:38 | 显示全部楼层
RGB和SDRAM看着都流口水

出0入0汤圆

发表于 2011-10-19 16:25:45 | 显示全部楼层
马上来杭州咯

出0入0汤圆

发表于 2011-10-19 16:35:22 | 显示全部楼层
回复【6楼】clever0725  
-----------------------------------------------------------------------
我也在济南,那天公司上班没去,qq:506064082,咱们可以聊聊,呵呵

出0入0汤圆

 楼主| 发表于 2011-10-19 17:44:29 | 显示全部楼层
通信外设应用级库函数 给个这个东东的手册 其实用处不大 自己看看库里带的历程 很快就上手了
我是青岛的 大四了 QQ:357017598
(Communication peripheral application library (CPAL))
UM1029
STM32 通信外设应用级库函数ourdev_686453T17SS2.pdf(文件大小:548K) (原文件名:CD00291090.pdf)

出0入0汤圆

发表于 2011-10-19 18:34:03 | 显示全部楼层
哎,今天没时间去~

出0入0汤圆

发表于 2011-10-22 00:59:11 | 显示全部楼层
先试试

出0入0汤圆

发表于 2011-10-22 21:22:30 | 显示全部楼层
关注

出0入0汤圆

发表于 2011-10-22 23:24:42 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-10-22 23:41:58 | 显示全部楼层
看了一下,DMA模式,中断优先级最高,说明STM32的IIC的毛病并没有解决。

出0入0汤圆

 楼主| 发表于 2011-10-23 01:36:21 | 显示全部楼层
回复【13楼】i55x  
-----------------------------------------------------------------------

F1 F2 F4 的I2C IP核都是一样的,但是 F2后不在有 F1的中断局限性,这个CPAL更多是方便使用,包裹的好。那种组合的标志位自己来写实在麻烦。目前还没受到过I2C中断的困扰问题。

出0入0汤圆

发表于 2011-10-25 11:48:04 | 显示全部楼层
飘过...

出0入0汤圆

发表于 2011-10-29 23:27:48 | 显示全部楼层
dev是不是应该把单个文件大小限制搞大些

出0入0汤圆

发表于 2011-10-29 23:37:08 | 显示全部楼层
回复【13楼】i55x
看了一下,dma模式,中断优先级最高,说明stm32的iic的毛病并没有解决。
-----------------------------------------------------------------------

出0入0汤圆

发表于 2011-12-7 11:20:07 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-12-7 11:29:50 | 显示全部楼层
看到中断优先级最高,就知道没有用的东东

出0入0汤圆

发表于 2011-12-7 13:39:02 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-12-7 17:02:49 | 显示全部楼层
库函数的,用不惯啊,IIC,一直都是自己模拟的。。。

出0入0汤圆

发表于 2012-4-8 21:20:20 | 显示全部楼层
能请大侠帮我解答下为什么写函数没有应答呢?劳烦您看下我下面的问号?
疑虑一 I2C_InitStructure.I2C_Ack = I2C_Ack_Enable; //设置是否开启ACK响应
       /*允许1字节1应答模式*/  
       I2C_AcknowledgeConfig(I2C1, ENABLE);              //使能I2C接口响应
       以上这两句话C语言是不是软件来开启I2C1的应答功能?第二句话注释:允许一字节一应答模式,那为什么在下面的写页函数没有见到应答呢????
      **函数名:I2C_PageWrite_24C
        **功能:写入一页(以内)
        **注意事项:此函数供群写入调用
*************************************************/
void I2C_PageWrite_24C(u8 addr,u8* pBuffer, u8 no)
{
        while(I2C_GetFlagStatus(I2C1, I2C_FLAG_BUSY));                          //等待总线空闲

        /*起始位*/
        I2C_GenerateSTART(I2C1, ENABLE);
        while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT));

#ifdef AT24C01A
        /*器件地址(写)*/                  
        I2C_Send7bitAddress(I2C1, EEPROM_ADDR, I2C_Direction_Transmitter);  ??本来这句话后面不是应该有应答的吗?
        while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));
        
        /*写地址值*/
        I2C_SendData(I2C1, addr);                         ??这句话后面不是也应该有应答的吗?
        while(! I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED));

#else
        I2C_Send7bitAddress(I2C1, addr<<1, I2C_Direction_Transmitter);
        while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));
#endif
        while(no--)  
        {
          I2C_SendData(I2C1, *pBuffer);   ??发送一个字节的数据不是也应该有一个应答吗?
          pBuffer++;
          while (!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED));
        }
        
        /*停止位*/
        I2C_GenerateSTOP(I2C1, ENABLE);
}

出0入0汤圆

发表于 2012-5-17 10:37:21 | 显示全部楼层
十分蛋疼,好难用啊

出0入0汤圆

发表于 2012-8-15 13:24:25 | 显示全部楼层
普遍反应IIC有问题

出0入0汤圆

发表于 2012-9-3 19:22:02 | 显示全部楼层
mark



出0入0汤圆

发表于 2013-3-28 13:48:16 | 显示全部楼层
stm32的硬件iic不好用吗?怎么大多数人多事用模拟的呢?

出0入0汤圆

发表于 2013-4-2 21:31:18 | 显示全部楼层
stm32 的iic到底怎么回事啊
比一般的好像有点问题啊(个人感觉)程序里只有一个IIC的程序就好使
加了别的初始化函数IIC就死在循环里了
到底怎么回事啊

出0入0汤圆

发表于 2013-4-10 16:05:22 | 显示全部楼层
希望能解决我的问题

出0入0汤圆

发表于 2013-5-11 22:14:11 | 显示全部楼层
额,还没用过,看看!

出0入0汤圆

发表于 2013-8-22 09:02:09 | 显示全部楼层
表示只用模拟 想怎么用就怎么用, 妈妈再也不用担心读写失败了~~~

出0入0汤圆

发表于 2013-8-22 09:32:08 | 显示全部楼层
好,mark 一个

出0入0汤圆

发表于 2014-1-9 21:46:03 | 显示全部楼层
本来还想学的,这下只好用我的模拟了,话说我的模拟也写得不错

出0入0汤圆

发表于 2014-7-8 14:43:51 | 显示全部楼层
准备试试呢。不知道STM32做从机怎么样?

出0入0汤圆

发表于 2014-8-11 10:22:55 | 显示全部楼层
哇。。。楼主确定这个硬件II才

出0入8汤圆

发表于 2014-8-12 13:30:16 | 显示全部楼层
怪不得好多人都在蛋疼~

出0入0汤圆

发表于 2014-8-13 22:35:55 | 显示全部楼层

库函数的,用不惯啊,IIC,一直都是自己模拟的。。。

出0入0汤圆

发表于 2014-8-25 15:23:12 | 显示全部楼层
标记,STM32 硬件IIC 终极解决方案

出0入0汤圆

发表于 2014-9-12 16:38:47 | 显示全部楼层
还在用模拟IIC

出0入10汤圆

发表于 2014-9-13 17:15:41 | 显示全部楼层
终于知道STM32的I2C蛋疼的原因了。。。。。。

出0入0汤圆

发表于 2014-9-20 23:16:55 | 显示全部楼层
不错,收藏一下……

出0入0汤圆

发表于 2014-9-25 09:28:12 | 显示全部楼层
了解一下!!!

出0入0汤圆

发表于 2014-9-26 14:04:30 来自手机 | 显示全部楼层
谢谢分享!

出0入0汤圆

发表于 2014-9-26 15:22:38 | 显示全部楼层
正在蛋疼这个,试试看看

出0入0汤圆

发表于 2014-9-26 15:30:47 | 显示全部楼层
真的能很好解决吗?有谁试过这份程序呢?

出0入0汤圆

发表于 2014-11-19 09:51:43 | 显示全部楼层
正为stm32 的IIC  蛋疼中。。。

出0入0汤圆

发表于 2014-11-19 12:43:43 | 显示全部楼层
iic  st应该是没有付专利费用,自己设计的iic

出0入0汤圆

发表于 2014-11-20 16:23:28 | 显示全部楼层
学习了,谢谢楼主!

出0入0汤圆

发表于 2014-11-20 17:42:16 | 显示全部楼层
多谢分享。

出0入0汤圆

发表于 2014-11-20 21:57:31 | 显示全部楼层
前段时间正好一个项目,尝试了硬件I2C,真是被坑死了
换成模拟的果断解决
对库不怎么了解得情况下
慎用

出0入0汤圆

发表于 2014-12-5 14:49:10 | 显示全部楼层
用这个库看看,

出0入0汤圆

发表于 2016-4-13 21:23:23 | 显示全部楼层
支持RGB和SDRAM

出0入0汤圆

发表于 2016-4-13 21:58:31 | 显示全部楼层
为了规避飞利浦的专利,每家芯片厂的MCU,I2C接口的名字都不一样。

其实,I2C接口速度比较慢,用IO口软件模拟更方便。

出0入0汤圆

发表于 2016-4-13 23:13:21 | 显示全部楼层
专利问题是双刃剑

出0入0汤圆

发表于 2016-4-14 08:42:20 | 显示全部楼层
在Q3出G4和L4

出0入0汤圆

发表于 2016-4-24 20:54:46 | 显示全部楼层
不知道适合所有的stm32不呢

出0入0汤圆

发表于 2019-4-5 08:00:10 | 显示全部楼层
不是说 IIC 的专利到期了? 可以免费用了,STM 最近版这个IIC的硬件问题没有了?

出10入95汤圆

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

本版积分规则

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

GMT+8, 2024-4-24 04:30

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

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