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 Conversion
i2c_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
msp430硬件i2c驱动
最新推荐文章于 2024-07-28 19:54:59 发布
本文详细介绍了Msp430微控制器的硬件I2C驱动实现,包括配置、初始化步骤、数据传输过程及常见问题解决,旨在帮助开发者更好地理解和应用Msp430的I2C通信。
摘要由CSDN通过智能技术生成