最近愁于I2C,例程实在太少了,,,
一个器件的I2C为:
写地址是0XA6.
初始化代码为:
ROM_SysCtlClockSet(SYSCTL_SYSDIV_2_5 | SYSCTL_USE_PLL | SYSCTL_XTAL_16MHZ | //80mhz
SYSCTL_OSC_MAIN);
SysCtlPeripheralEnable(SYSCTL_PERIPH_I2C0);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);
GPIOPinConfigure(GPIO_PB2_I2C0SCL);
GPIOPinConfigure(GPIO_PB3_I2C0SDA);
GPIOPinTypeI2C(GPIO_PORTB_BASE, GPIO_PIN_3);
GPIOPinTypeI2CSCL(GPIO_PORTB_BASE, GPIO_PIN_2 );
I2CMasterInitExpClk(I2C0_MASTER_BASE, SysCtlClockGet(), true); //400kbps
I2CMasterEnable(I2C0_MASTER_BASE);
应该没问题吧...
可往往下就不会写了...
对这几个函数十分不明白
I2CMasterSlaveAddrSet (unsigned long ulBase, unsigned char ucSlaveAddr, tBoolean bReceive)
这个函数是设置从器件的地址的吧??最后一个参数定义是写地址还是读地址..
I2CMasterSlaveAddrSet(I2C0_MASTER_BASE,0XA6,false);此处应该这样写吧??
还有就是这两个函数
I2CMasterControl
I2CMasterDataPut
如果要对器件0x45这个8位寄存器读一个字节,那这个程序应该怎么写呢?
那如果多0x46这个寄存器读4个字节呢?
谢谢~
