打印
[MCU]

2553驱动bh1750,硬件i2c,停止在一个地方

[复制链接]
3607|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chuandaoxy|  楼主 | 2021-12-21 20:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

一直停在这while((IFG2 & UCB0TXIFG)==0);        // UCB0TXIFG is set when UCB0TXBUF is empty
这是神魔情况,网上很多人提过,但是没有看到解决方法,硬件i2c的问题

void I2C_WriteData(uint8 data)
{
        I2C_Init(Master,SMCLK);
        i2c_delay_ms(1);
        while((UCB0CTL1 & UCTXSTP));         // 确保总线空闲
        UCB0CTL1 |= UCTR + UCTXSTT;     // I2C TX, start condition
        while((IFG2 & UCB0TXIFG)==0);         // UCB0TXIFG is set when UCB0TXBUF is empty.
        UCB0TXBUF = SlaveAddress;                // Load TX buffer
       while((IFG2 & UCB0TXIFG)==0);        // UCB0TXIFG is set when UCB0TXBUF is empty.
        UCB0TXBUF = data;
        while((IFG2 & UCB0TXIFG)==0);         // UCB0TXIFG is set when UCB0TXBUF is empty.
        UCB0CTL1 |= UCTXSTP;                  // I2C stop condition
        i2c_delay_ms(1);
}

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

852

主题

1040

帖子

4

粉丝