请问LM3S6911的I2C问题

[复制链接]
3659|4
 楼主| rubinsma 发表于 2011-8-3 23:21 | 显示全部楼层 |阅读模式
我按照例程写了一段I2C代码,但在送数据时,
用示波器看不到总线上的数据出来,
但在INIT的前一段增加了IO拉低,确实连接和片子应该都是好的。
有人知道为啥么?

void I2C_Init(void)
{
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);
    GPIOPinTypeGPIOOutput(GPIO_PORTB_BASE, GPIO_PIN_2|GPIO_PIN_3 );
    GPIOPadConfigSet(GPIO_PORTB_BASE,GPIO_PIN_2|GPIO_PIN_3 , GPIO_STRENGTH_8MA, GPIO_PIN_TYPE_STD);
GPIOPinWrite(GPIO_PORTB_BASE , GPIO_PIN_2|GPIO_PIN_3 , 0 );


SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);
SysCtlPeripheralEnable(SYSCTL_PERIPH_I2C0);                        //en I2C Pin
GPIOPinTypeI2C(SYSCTL_PERIPH_GPIOB,GPIO_PIN_2|GPIO_PIN_3);

  I2CMasterInitExpClk(I2C0_MASTER_BASE , SysCtlClockGet() , false);    //i2c0 400Kbps
  I2CMasterInit(I2C0_MASTER_BASE, true);
  I2CMasterEnable(I2C0_MASTER_BASE);
  I2CMasterSlaveAddrSet(I2C0_MASTER_BASE, 0x48, 0);


}
void I2C_Trans(char cmd)
{
while(1)
{I2CMasterControl(I2C0_MASTER_BASE, I2C_MASTER_CMD_SINGLE_SEND);

I2CMasterDataPut(I2C0_MASTER_BASE, 0x61);

}
 楼主| rubinsma 发表于 2011-8-4 00:09 | 显示全部楼层
AFSEL    0x40005420
ODR        0x4000550c
DEN        0x4000551c
这三个寄存器,AFSEL和ODR都没初始化到,是否我用的库函数有问题?
 楼主| rubinsma 发表于 2011-8-4 00:09 | 显示全部楼层
手动修改后,时钟终于出来了。。。
永远的不知 发表于 2011-8-4 01:35 | 显示全部楼层
2# rubinsma

您使用的哪个版本的库函数?建议下载最新的库函数。
lixmlxm 发表于 2013-3-1 10:03 | 显示全部楼层
请问有谁调过24C256,我进去后连续读10个没有问题,连续读12个以上就有问题!通过打印中断次数,只能判断有32个中断,但是32以上就不行了,是我设置问题吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

26

主题

73

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部