主题中讨论的其他器件: TMP75
我们将 TMP75温度传感器用作 MSP430F5338的从器件。 我已使用给出的示例代码进行配置、以将 ACLK 配置为 I2C 线路的输入。 使用时钟从高电平切换到低电平的不同行为来探测 SCL 和 SDA 线时、我们面临着一个问题、或者根本没有响应。 已尝试使用 FLL 和不使用 FLL 进行配置。 XT1中给出的输入时钟是通过一个运行频率为32kHz 的晶体振荡器提供的。
配置 ACLK
空 ConfigXT1 (空)
{
P7SEL |= BIT0 + BIT1;//XT1IN、XT1OUT
UCSCTL4 |= SELA_XT1CLK;
UCSCTL6 &=~(XT1OFF);
UCSCTL6 |=(XT1DRIVE0_L | XT1DRIVE1_L);
UCSCTL6 &=~(XT1BYPASS |XTS);
执行{
UCSCTL7 &=~(XT1LFOFFG);
//清除 XT2、XT1、DCO 故障标志
SFRIFG1 &=~OFIFG;//清除故障标志
} while (UCSCTL7 & XT1LFOFFG);
}
配置 I2C 从设备
P2SEL |= BIT1 + BIT2;
UCB0CTL1 |= UCSWRST;//启用 SW 复位
UCB0CTL0 = 0x00;
UCB0CTL0 |= UCMST + UCMODE_3 + UCSYNC;
UCB0CTL1 |= UCSSEL_1;
//UCB0BR0 = 80;
//UCB0BR1 = 0;//清除 SW 复位
UCB0CTL0 &=~UCSLA10;
UCB0CTL1 &=~UCSWRST;
UCB0I2CSA |= 0x4f;
UCB0IE |=(UCTXIE | UCRXIE);//启用 TX 中断
_bis_SR_register (GIE);