完善资料让更多小伙伴认识你,还能领取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 非常感谢,是变量的定义有问题,目前已经解决了,再次感谢您的帮助! |
|
|
|
只有小组成员才能发言,加入小组>>
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
696 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
605 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1065 浏览 1 评论
760 浏览 0 评论
普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?
530 浏览 1 评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
171浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
133浏览 14评论
在使用3254进行录音的时候出现一个奇怪的现象,右声道有吱吱声,请教一下,是否是什么寄存器设置存在问题?
130浏览 13评论
TLV320芯片内部自带数字滤波功能,请问linein进来的模拟信号是否是先经过ADC的超采样?
126浏览 12评论
GD32F303RCT6配置PA4 ADC引脚,将PA2代替key功能,PA2连接时无法实现预期功能,为什么?
64浏览 10评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-30 02:17 , Processed in 0.631713 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号