amoBBS 阿莫电子论坛

 找回密码
 注册
搜索
bottom↓
查看: 18754|回复: 55

STM32 硬件IIC 终极解决方案

  [复制链接]
发表于 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)
发表于 2011-10-19 14:57:44 | 显示全部楼层
看到STM32的IIC,蛋疼啊
发表于 2011-10-19 15:19:38 | 显示全部楼层
怎么每个地方的研讨会的内容都不一样啊??
发表于 2011-10-19 15:26:46 | 显示全部楼层
支持RGB和SDRAM这个不错。
发表于 2011-10-19 15:36:56 | 显示全部楼层
回复【3楼】avrgogo
-----------------------------------------------------------------------

支持,终于看到更高级点的功能了
发表于 2011-10-19 15:37:38 | 显示全部楼层
RGB和SDRAM看着都流口水
发表于 2011-10-19 16:25:45 | 显示全部楼层
马上来杭州咯
发表于 2011-10-19 16:35:22 | 显示全部楼层
回复【6楼】clever0725  
-----------------------------------------------------------------------
我也在济南,那天公司上班没去,qq:506064082,咱们可以聊聊,呵呵
 楼主| 发表于 2011-10-19 17:44:29 | 显示全部楼层
通信外设应用级库函数 给个这个东东的手册 其实用处不大 自己看看库里带的历程 很快就上手了
我是青岛的 大四了 QQ:357017598
(Communication peripheral application library (CPAL))
UM1029
STM32 通信外设应用级库函数ourdev_686453T17SS2.pdf(文件大小:548K) (原文件名:CD00291090.pdf)
发表于 2011-10-19 18:34:03 | 显示全部楼层
哎,今天没时间去~
发表于 2011-10-22 00:59:11 | 显示全部楼层
先试试
发表于 2011-10-22 21:22:30 | 显示全部楼层
关注
发表于 2011-10-22 23:24:42 | 显示全部楼层
mark
发表于 2011-10-22 23:41:58 | 显示全部楼层
看了一下,DMA模式,中断优先级最高,说明STM32的IIC的毛病并没有解决。
 楼主| 发表于 2011-10-23 01:36:21 | 显示全部楼层
回复【13楼】i55x  
-----------------------------------------------------------------------

F1 F2 F4 的I2C IP核都是一样的,但是 F2后不在有 F1的中断局限性,这个CPAL更多是方便使用,包裹的好。那种组合的标志位自己来写实在麻烦。目前还没受到过I2C中断的困扰问题。
发表于 2011-10-25 11:48:04 | 显示全部楼层
飘过...
发表于 2011-10-29 23:27:48 | 显示全部楼层
dev是不是应该把单个文件大小限制搞大些
发表于 2011-10-29 23:37:08 | 显示全部楼层
回复【13楼】i55x
看了一下,dma模式,中断优先级最高,说明stm32的iic的毛病并没有解决。
-----------------------------------------------------------------------
发表于 2011-12-7 11:20:07 | 显示全部楼层
mark
发表于 2011-12-7 11:29:50 | 显示全部楼层
看到中断优先级最高,就知道没有用的东东
发表于 2011-12-7 13:39:02 | 显示全部楼层
mark
发表于 2011-12-7 17:02:49 | 显示全部楼层
库函数的,用不惯啊,IIC,一直都是自己模拟的。。。
发表于 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);
}
发表于 2012-5-17 10:37:21 | 显示全部楼层
十分蛋疼,好难用啊
发表于 2012-8-15 13:24:25 | 显示全部楼层
普遍反应IIC有问题
发表于 2012-9-3 19:22:02 | 显示全部楼层
mark



发表于 2013-3-28 13:48:16 | 显示全部楼层
stm32的硬件iic不好用吗?怎么大多数人多事用模拟的呢?
发表于 2013-4-2 21:31:18 | 显示全部楼层
stm32 的iic到底怎么回事啊
比一般的好像有点问题啊(个人感觉)程序里只有一个IIC的程序就好使
加了别的初始化函数IIC就死在循环里了
到底怎么回事啊
发表于 2013-4-10 16:05:22 | 显示全部楼层
希望能解决我的问题
发表于 2013-5-11 22:14:11 | 显示全部楼层
额,还没用过,看看!
发表于 2013-8-22 09:02:09 | 显示全部楼层
表示只用模拟 想怎么用就怎么用, 妈妈再也不用担心读写失败了~~~
发表于 2013-8-22 09:32:08 | 显示全部楼层
好,mark 一个
发表于 2014-1-9 21:46:03 | 显示全部楼层
本来还想学的,这下只好用我的模拟了,话说我的模拟也写得不错
发表于 2014-7-8 14:43:51 | 显示全部楼层
准备试试呢。不知道STM32做从机怎么样?
发表于 2014-8-11 10:22:55 | 显示全部楼层
哇。。。楼主确定这个硬件II才
发表于 2014-8-12 13:30:16 | 显示全部楼层
怪不得好多人都在蛋疼~
发表于 2014-8-13 22:35:55 | 显示全部楼层

库函数的,用不惯啊,IIC,一直都是自己模拟的。。。
发表于 2014-8-25 15:23:12 | 显示全部楼层
标记,STM32 硬件IIC 终极解决方案
发表于 2014-9-12 16:38:47 | 显示全部楼层
还在用模拟IIC
发表于 2014-9-13 17:15:41 | 显示全部楼层
终于知道STM32的I2C蛋疼的原因了。。。。。。
发表于 2014-9-20 23:16:55 | 显示全部楼层
不错,收藏一下……
发表于 2014-9-25 09:28:12 | 显示全部楼层
了解一下!!!
发表于 2014-9-26 14:04:30 来自手机 | 显示全部楼层
谢谢分享!
发表于 2014-9-26 15:22:38 | 显示全部楼层
正在蛋疼这个,试试看看
发表于 2014-9-26 15:30:47 | 显示全部楼层
真的能很好解决吗?有谁试过这份程序呢?
发表于 2014-11-19 09:51:43 | 显示全部楼层
正为stm32 的IIC  蛋疼中。。。
发表于 2014-11-19 12:43:43 | 显示全部楼层
iic  st应该是没有付专利费用,自己设计的iic
发表于 2014-11-20 16:23:28 | 显示全部楼层
学习了,谢谢楼主!
发表于 2014-11-20 17:42:16 | 显示全部楼层
多谢分享。
发表于 2014-11-20 21:57:31 | 显示全部楼层
前段时间正好一个项目,尝试了硬件I2C,真是被坑死了
换成模拟的果断解决
对库不怎么了解得情况下
慎用
发表于 2014-12-5 14:49:10 | 显示全部楼层
用这个库看看,
发表于 2016-4-13 21:23:23 | 显示全部楼层
支持RGB和SDRAM
发表于 2016-4-13 21:58:31 | 显示全部楼层
为了规避飞利浦的专利,每家芯片厂的MCU,I2C接口的名字都不一样。

其实,I2C接口速度比较慢,用IO口软件模拟更方便。
发表于 2016-4-13 23:13:21 | 显示全部楼层
专利问题是双刃剑
发表于 2016-4-14 08:42:20 | 显示全部楼层
在Q3出G4和L4
发表于 2016-4-24 20:54:46 | 显示全部楼层
不知道适合所有的stm32不呢
友情提示:标题不合格、重复发帖,将会被封锁ID。详情请参考:论坛通告:封锁ID、获得注册邀请码、恢复被封ID、投诉必读
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|阿莫电子论坛(原ourAVR/ourDEV) ( 工信部备案:粤ICP备09047143号 公安备案:44190002001997(交互式论坛) )

GMT+8, 2018-8-22 11:34

阿莫电子论坛, 原"中国电子开发网"

© 2004-2018 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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