Other Parts Discussed in Thread: MSP430F5326
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MSP430F5326 您好!
MSP430F5326作为主器件、在发送地址时需要将 R/W 位置位以进行读取、如下所示:
但我只成功地将 r/w 位设置为0。
代码如下:
UCB0CTL1 |= UCSWRST; /*软件复位已启用*/
UCB0CTL0 |= UCMST | UCMODE_3 | UCSYNC; /*从设备和主设备地址:7位,单主设备配置,主设备模式,启用 I2C,同步模式*/
UCB0CTL1 = UCSSEL_2 | UCSWRST; /*源锁定:SMCLK,USCI 逻辑在复位状态期间保持*/
UCB0BR0 = 80;// SPICLK = SMCLK/80:100kHz (最大400kHz)
UCB0BR1=0x000;
UCB0CTL1 &=~UCSWRST; /*清除软件复位*/
UCB0I2CSA = SLAVE_ADR; //加载从地址
UCB0CTLW0 |=(UCTR | UCTXSTT); // I2C Tx +启动条件
UCB0IFG &=~(UCNACKIFG);
while ((UCB0IFG & UCTXIFG)!= UCTXIFG)// attente buffer libre
{
if ((UCB0IFG & UCNACKIFG)== UCNACKIFG)
{
NACK =真;
debug_str ("nack\r\n");
中断;
}
}
我弄错了吗?
是否有任何特定配置?
此致
好的