完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
本人在用MSP430G2453搭配BQ76930调试硬件I2C通讯,现在的情况是在不能写数据到BQ的寄存器里面,有时候可以写进去但读不出来数据,请各位高手指点,谢谢
代码如下: unsigned char SA=0x08; //从器件地址bq76930_03DBTR unsigned char RX_BUF; //接收数据 unsigned char TX_Byc=2; void i2c_init (void) { P1SEL2 = BIT6 | BIT7; P1SEL = BIT6 | BIT7; P1DIR = BIT6 | BIT7; P1OUT &= ~(BIT6 | BIT7); UCB0CTL1 |= UCSWRST; // enable SW reset UCB0CTL0 = UCMST+UCMODE_3+UCSYNC ; // I2C Master, synchronous mode UCB0CTL1 = UCSSEL_2+UCSWRST; // Use SMCLK, keep SW reset UCB0BR0 = 20; //fscl=SMCLK/12=~100KHz UCB0BR1 = 0; UCB0I2CSA = SA; //set slave address UCB0CTL1 &= ~UCSWRST; //clear SW reset } void I2C_WriteData(unsigned char address,unsigned char data) { while(UCB0CTL1&UCTXSTP);//确认停止 while (UCB0STAT & UCBBUSY); //检测BUS是否空闲 繁忙UCBBUSY=1 UCB0CTL1 |= UCTR; //I2C 发送 IFG2 &= ~UCB0TXIFG; UCB0CTL1 |= UCTXSTT; //启动I2C while((IFG2&UCB0TXIFG)==0); UCB0TXBUF = address; while(UCB0CTL1 & UCTXSTT); while((IFG2&UCB0TXIFG)==0); UCB0TXBUF = data; while((IFG2&UCB0TXIFG)==0); UCB0CTL1 |= UCTXSTP ; IFG2 &= ~UCB0TXIFG; } unsigned char I2C_ReadData(unsigned char BQ_address) { // IE2 |= UCB0RXIE; //enable read interrupt i2c_init(); while (UCB0STAT & UCBBUSY); // Ensure stop condition got sent UCB0CTL1 |= UCTR + UCTXSTT; // I2C TX, start condition while((IFG2 & UCB0TXIFG)==0); UCB0TXBUF = BQ_address;////eeprom low addr if(UCB0STAT&UCNACKIFG) //检测UCNACKIFG:1 需要重新发送 { UCB0CTL1 |= UCTR + UCTXSTT; // I2C TX, start condition while((IFG2&UCB0TXIFG)==0); // Wait USCI_B0 TX flag Flag reset automaticall UCB0TXBUF = BQ_address;// Load TX buffer } while((IFG2 & UCB0TXIFG)==0); IFG2 &= ~UCB0TXIFG; UCB0CTL1 &= ~UCTR; // I2C RX, delay_us(10); while (UCB0CTL1 & UCTXSTP);// 判断总线是否被释放 UCB0CTL1 |= UCTXSTT; // Start condition while((UCB0CTL1&UCTXSTT)==1); RX_BUF = UCB0RXBUF; UCB0CTL1 |= UCTXSTP + UCTXNACK; while((UCB0CTL1 & UCTXSTP)==1); return (RX_BUF); } |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
3051个成员聚集在这个小组
加入小组2962 浏览 1 评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3673 浏览 2 评论
请问怎么把下面51单片机的代码改成msp430 g2 pocket的代码,还有改下时间变成30秒
2360 浏览 1 评论
4824 浏览 1 评论
2585 浏览 1 评论
1360浏览 3评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3674浏览 2评论
2963浏览 1评论
1555浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 06:53 , Processed in 1.015393 second(s), Total 47, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号