请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号: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"); 中断; } }
我弄错了吗?
是否有任何特定配置?
此致
好的