打印

有没有人做过lm3s和MSP430的I2C通信?

[复制链接]
2258|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sphinz|  楼主 | 2011-10-28 13:39 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 sphinz 于 2011-11-13 11:40 编辑

我现在正在做lm3s8962和MSP430F2013的I2C通信,流程是这样的:lm3s8962做主机,MSP430f2013做从机,8962定时发出接收数据请求,F2013发出两个数据。F2013参考的是msp430x20x3_usi_09.c的程序,并且DCO的频率设为8MHz;lm3s8962的程序是使用库函数,自己写的。
双芯片通信时,用示波器能够打到波形,波形中的地址位是正确的,但是数据位和我设定的值不一样。示波器打的时序图中,可以看出第二个数据位后没有应答位。
请问下高手,问题最有可能出在哪儿呢?

  I2CMasterSlaveAddrSet(I2C0_MASTER_BASE,MSP430F2013_ADDR,true);

  I2CMasterControl(I2C0_MASTER_BASE, I2C_MASTER_CMD_BURST_RECEIVE_START);  
  while(I2CMasterBusy(I2C0_MASTER_BASE))
  {
  }
  datah=I2CMasterDataGet(I2C0_MASTER_BASE); //读取到的高位

  I2CMasterControl(I2C0_MASTER_BASE,I2C_MASTER_CMD_BURST_RECEIVE_FINISH);
  while(I2CMasterBusy(I2C0_MASTER_BASE))
  {
  }
  datal=I2CMasterDataGet(I2C0_MASTER_BASE);//读取到的低位

tek00006.JPG (68.84 KB )

tek00006.JPG

相关帖子

沙发
中国无芯| | 2011-10-28 21:04 | 只看该作者
楼主水平已经相当高了啊

使用特权

评论回复
板凳
TI_MCU| | 2011-10-29 16:45 | 只看该作者
"波形中的数据位是正确的,但是数据位和我设定的值不一样。"

这句没读懂...楼主MSP430能收到数据吗

使用特权

评论回复
地板
weshiluwei6| | 2011-10-30 11:04 | 只看该作者
那个波形怎么又的啊 不错啊

使用特权

评论回复
5
sphinz|  楼主 | 2011-11-13 11:40 | 只看该作者
"波形中的数据位是正确的,但是数据位和我设定的值不一样。"

这句没读懂...楼主MSP430能收到数据吗
TI_MCU 发表于 2011-10-29 16:45

地址位是正确的,数据位不一样。。
后来解决了,在MSP430中加了一个延时,不过到现在都不知道为什么。。囧!

使用特权

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

本版积分规则

个人签名:鸵鸟蝈蝈

1

主题

40

帖子

1

粉丝