完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
原程序如下:
#include extern unsigned char RXData,TXData,TXByteCtr,ATXData[2]; void I2C_Init(unsigned char SlaveAddress) [ P3SEL |= 0x03; // Assign I2C pins to USCI_B0 UCB0CTL1 |= UCSWRST; // Enable SW reset UCB0CTL0 = UCMST + UCMODE_3 + UCSYNC; // I2C Master, synchronous mode UCB0CTL1 = UCSSEL_2 + UCSWRST+UCTR; // Use SMCLK UCB0BR0 = 12; // fSCL = SMCLK/12 = ~100kHz UCB0BR1 = 0; UCB0I2CSA = SlaveAddress; // Slave Address is 048h UCB0CTL1 &= ~UCSWRST; // Clear SW reset, resume operation UCB0IE |= UCTXIE+UCRXIE+UCSTPIE; ] void I2C_WriteReg(unsigned char RegAddr, unsigned char Data) //////////涓婁笅灞侫PI闇?瑕佺敤鍒? [ TXByteCtr = 2; // Load TX byte counter ATXData[0]=RegAddr; ATXData[1]=Data; while (UCB0CTL1 & UCTXSTP); // Ensure stop condition got sent UCB0IE |= UCTXIE; UCB0CTL1 |= UCTR + UCTXSTT; // I2C TX, start condition __bis_SR_register(LPM0_bits + GIE); // Enter LPM0 w/ interrupts __no_operation(); ] unsigned char I2C_ReadByte() //////////涓婁笅灞侫PI闇?瑕佺敤鍒? [ while (UCB0CTL1 & UCTXSTP); // Ensure stop condition got sent UCB0CTL1 &= ~UCTR; UCB0IE &=~ UCTXIE; UCB0CTL1 |= UCTXSTT; // I2C start condition while(UCB0CTL1 & UCTXSTT); // Start condition sent? UCB0CTL1 |= UCTXSTP; return RXData; ] #pragma vector = USCI_B0_VECTOR __interrupt void USCI_B0_ISR(void) [ switch(__even_in_range(UCB0IV,12)) [ case 0: break; // Vector 0: No interrupts case 2: break; // Vector 2: ALIFG case 4: break; // Vector 4: NACKIFG case 6: break; // Vector 6: STTIFG case 8: UCB0IFG &= ~UCSTPIFG; // Clear stop condition int flag __bic_SR_register_on_exit(LPM0_bits); // Exit LPM0 if data was transmitted break; // Vector 8: STPIFG case 10: RXData=UCB0RXBUF; // UCB0CTL1 |= UCTXNACK+UCTXSTP; UCB0IFG &= ~UCRXIFG; __bic_SR_register_on_exit(LPM0_bits); break; // Vector 10: RXIFG case 12: // Vector 12: TXIFG if (TXByteCtr) // Check TX byte counter [ UCB0TXBUF = ATXData[2-TXByteCtr]; // Load TX buffer TXByteCtr--; // Decrement TX byte counter ] else [ UCB0CTL1 |= UCTXSTP; // I2C stop condition UCB0IFG &= ~UCTXIFG; // Clear USCI_B0 TX int flag __bic_SR_register_on_exit(LPM0_bits); // Exit LPM0 ] break; default: break; ]] int main(void) [ WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer return 0; ] 这里是报错: #10010errors encountered during linking;"I2C.out" not built #10234-D unresolved symbols remain 请指点,谢谢 |
|
相关推荐
2个回答
|
|
Hi Yankun,
CCS 报这个错误是因为你的程序里面有没定义或是没有申明的函数或变量。你可以在CCS的 console窗口里面找到相关的unresolved symbols。 你把console里的报错信息,滑条往上面拉一点,可以找到相关的信息。然后把它贴出来,或是自己看一下,应该比较容易找到问题所在。 xiexei ken BR, KEN |
|
|
|
lining870815844 发表于 2018-5-25 08:25 非常感谢,是变量的定义有问题,目前已经解决了,再次感谢您的帮助! |
|
|
|
只有小组成员才能发言,加入小组>>
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
476 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
946 浏览 1 评论
549 浏览 0 评论
普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?
424 浏览 1 评论
975 浏览 0 评论
73浏览 3评论
CC3100BOOST使用CC3200lunchXL进行烧录
917浏览 2评论
TAS5411-Q1喇叭有爆破音,电压就会被拉低,有什么好办法解决吗?
372浏览 2评论
159浏览 2评论
208浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-10-7 04:18 , Processed in 0.812380 second(s), Total 82, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号