工具/软件:Code Composer Studio
我目前正在研究 MSP430f67791A 微控制器的 I2C、并面临 EEPROM (24LC1025)连接方面的一些问题。 它未正确初始化、因此无法正常工作。 我们将在端口引脚 P2.5 (clk)和 P2.6 (data)上连接 EEPROM。 在调试过程中、我们发现它没有清除 UCBBUSY 标志。 因此它不会初始化 EEPROM。 我的发送初始化例程如下所示。 我们在以下代码中将0xC0作为预分频传递。 从器件地址为0x54。
void TI_USCI_I2C_transmitinit (unsigned char slave_address、unsigned char prescale){
P2SEL0 |= SDA_PIN | SCL_PIN;
UCB0CTLW0 |= UCSWRST;//启用软件复位
UCB0CTLW0 |= UCMST | UCMODE_3 | UCSSEL_2;// I2C 主设备,使用 SMCLK
UCB0BR0 =预分频;// fSCL = SMCLK/160 =~100kHz
UCB0BR1 = 0;
UCB0I2CSA = SLAVE_ADDRESS;//设置从器件地址
UCB0CTLW0 &=~UCSWRST;//清除软件复位,恢复操作
UCB0IE |= UCNACKIE;
UCB0IE &=~UCRXIE0;
UCB0IE |= UCTXIE0;//启用 TX 中断
}
unsigned char TI_USCI_I2C_NO迎宾(){
返回(UCB0STATW 和 UCBBUSY);
}
我们调用上述函数、然后检查忙位。 如下面所述。
TI_USCI_I2C_transmitinit (0x54、0xc0);// 0x96 init 使用 USCI 进行传输
while (TI_USCI_I2C_NO迎宾());//等待总线空闲
我可以获得任何支持吗?
此致、
Kalpana Nachnekar