amobbs.com 阿莫电子技术论坛

标题: STM32 硬件IIC 终极解决方案 [打印本页]

作者: cxjava    时间: 2011-10-19 14:49
标题: STM32 硬件IIC 终极解决方案
刚刚参加 了在济南的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)
作者: skynet    时间: 2011-10-19 14:57
看到STM32的IIC,蛋疼啊
作者: cgbabc    时间: 2011-10-19 15:19
怎么每个地方的研讨会的内容都不一样啊??
作者: avrgogo    时间: 2011-10-19 15:26
支持RGB和SDRAM这个不错。
作者: newhz    时间: 2011-10-19 15:36
回复【3楼】avrgogo
-----------------------------------------------------------------------

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

F1 F2 F4 的I2C IP核都是一样的,但是 F2后不在有 F1的中断局限性,这个CPAL更多是方便使用,包裹的好。那种组合的标志位自己来写实在麻烦。目前还没受到过I2C中断的困扰问题。
作者: huqiaoli_ARM    时间: 2011-10-25 11:48
飘过...
作者: qq302011    时间: 2011-10-29 23:27
dev是不是应该把单个文件大小限制搞大些
作者: eworker    时间: 2011-10-29 23:37
回复【13楼】i55x
看了一下,dma模式,中断优先级最高,说明stm32的iic的毛病并没有解决。
-----------------------------------------------------------------------
作者: abcdzhy    时间: 2011-12-7 11:20
mark
作者: linghu2    时间: 2011-12-7 11:29
看到中断优先级最高,就知道没有用的东东
作者: oaixuw    时间: 2011-12-7 13:39
mark
作者: channe    时间: 2011-12-7 17:02
库函数的,用不惯啊,IIC,一直都是自己模拟的。。。
作者: xubinghua_1009    时间: 2012-4-8 21: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);
}

作者: dongfo    时间: 2012-5-17 10:37
十分蛋疼,好难用啊
作者: Making    时间: 2012-8-15 13:24
普遍反应IIC有问题
作者: chengying    时间: 2012-9-3 19:22
mark




作者: 东方云滨    时间: 2013-3-28 13:48
stm32的硬件iic不好用吗?怎么大多数人多事用模拟的呢?
作者: ABCDELF    时间: 2013-4-2 21:31
stm32 的iic到底怎么回事啊
比一般的好像有点问题啊(个人感觉)程序里只有一个IIC的程序就好使
加了别的初始化函数IIC就死在循环里了
到底怎么回事啊
作者: jun503380    时间: 2013-4-10 16:05
希望能解决我的问题
作者: Mr.luke2012    时间: 2013-5-11 22:14
额,还没用过,看看!
作者: 1米49    时间: 2013-8-22 09:02
表示只用模拟 想怎么用就怎么用, 妈妈再也不用担心读写失败了~~~
作者: lkm_unication    时间: 2013-8-22 09:32
好,mark 一个

作者: zcguoji    时间: 2014-1-9 21:46
本来还想学的,这下只好用我的模拟了,话说我的模拟也写得不错
作者: dhw5qq    时间: 2014-7-8 14:43
准备试试呢。不知道STM32做从机怎么样?
作者: jackieha    时间: 2014-8-11 10:22
哇。。。楼主确定这个硬件II才
作者: 蓝蓝的恋    时间: 2014-8-12 13:30
怪不得好多人都在蛋疼~
作者: xinhoujue    时间: 2014-8-13 22:35

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

其实,I2C接口速度比较慢,用IO口软件模拟更方便。
作者: vows    时间: 2016-4-13 23:13
专利问题是双刃剑
作者: ln08136207    时间: 2016-4-14 08:42
在Q3出G4和L4
作者: Dragontan    时间: 2016-4-24 20:54
不知道适合所有的stm32不呢
作者: wuhuijiang    时间: 2019-4-5 08:00
不是说 IIC 的专利到期了? 可以免费用了,STM 最近版这个IIC的硬件问题没有了?
作者: ddcour    时间: 2019-10-12 15:54
debug模式可以用,到release模式就不灵了,这ST的IIC真是鬼一样




欢迎光临 amobbs.com 阿莫电子技术论坛 (https://www.amobbs.com/) Powered by Discuz! X3.4