|
/*
* 函数名: I2C_Read(uchar address)
* 功能: 读取对应寄存器的值
* 输入参数: uchar address-->对应寄存器的地址
* 输出参数: 返回值为I2C读出UCB0RXBUF内的数据
* 说明: 在读数据之前必须先写入要读的寄存器地址。
*/
uchar I2C_Read(uchar address)
{
PointCnt = 0;
Tx_Buffer[0] = address;
I2C_Tx_Init();
UCB0CTL1 |= UCTXSTT; //开始标志位;
__bis_SR_register(CPUOFF + GIE);
I2C_Rx_Init();
UCB0CTL1 |= UCTXSTT;
while (UCB0CTL1 & UCTXSTT); //没有这句话运行完 没有提供停止位!
__bis_SR_register(CPUOFF + GIE); // Enter LPM0 w/ interrupts
return Rx_Buffer;
}
请问下大神:为什么我将 __bis_SR_register(CPUOFF + GIE); 用_EINT();代替以后就是读不到数据了?这是为什么?想了很久都没有想明白,求大侠们赐教!
|
|