作者:手机用户2602924833 | 来源:互联网 | 2023-10-10 13:29
staticvoidhdc_i2c_init(void){P3SEL|(BIT0|BIT1);UCB0CTL1|UCSWRST;UCB0CTL0UCMST+UCMODE_3+UC
static void hdc_i2c_init(void)
{P3SEL |= (BIT0 | BIT1); UCB0CTL1 |= UCSWRST;UCB0CTL0 = UCMST + UCMODE_3 + UCSYNC ;UCB0CTL1 |= UCSSEL_2;UCB0BR0 = 40;UCB0BR1 = 0;UCB0CTL0 &= ~UCSLA10;UCB0I2CSA = (HDC2010_ADDR>>1); //因为msp430硬件不需要在地址里体现读写位,只需7位地址即可UCB0CTL1 &= ~UCSWRST;
}void hdc2010_Init()
{hdc_i2c_init();/* Startup sequence */
// i2c_send(ADDR_WR, ConfigReg, 2);
// i2c_send(ADDR_WR, MeaConfigReg, 2);
}void hdc_SingleAcquisition(U8 *recvBuf)
{//Start Conversioni2c_send(ADDR_WR, StartConvert, 2);i2c_send(ADDR_WR, ReadAddr, 1);i2c_receive(ADDR_RD, recvBuf, 4); //TLOW, THIGH, HLOW, HHIGH
// i2c_send_and_recv(ADDR_RD, &ReadAddr, 1, recvBuf, 4);
}U8 hdc_readByte(U8 start_addr,U8 *pword_value)
{UCB0CTL1 |= UCTR; // 写模式UCB0CTL1 |= UCTXSTT; // 发送启动位和写控制字节UCB0TXBUF = start_ad