2186|0

1

帖子

0

TA的资源

一粒金砂(初级)

楼主
 
本帖最后由 paulhyde 于 2014-9-15 03:21 编辑

求助 msp430g2553与TCA6416用IIC通讯 但中断只能进一次,这是什么原因 #include "msp430g2553.h" void gpio_init (void); void iic_init(void); unsigned char TXData[4]={0x02,0x00,0xa2,0x03}; int i,j; void main(void) { WDTCTL = WDTPW + WDTHOLD; //Close Interal Watchdog Timer i=0; P1DIR |= 0x01; P1OUT&= ~0x01; _EINT(); gpio_init (); iic_init(); UCB0CTL1 |= UCTR + UCTXSTT; // I2C TX, start condition while (1){ } } void gpio_init (void) { P1SEL |= BIT6 + BIT7; // Assign I2C pins to USCI_B0 P1SEL2|= BIT6 + BIT7; // Assign I2C pins to USCI_B0 } void iic_init(void) { UCB0CTL1 |= UCSWRST; // Enable SW reset UCB0CTL0 = UCMST + UCMODE_3 + UCSYNC; // I2C Master, synchronous mode UCB0CTL1 = UCSSEL_2 + UCSWRST+ UCTR; // Use SMCLK, keep SW reset UCB0BR0 = 12; // fSCL = SMCLK/12 = ~100kHz UCB0BR1 = 0; UCB0I2CSA = 0x20; // Slave Address is 020h UCB0CTL1 &= ~UCSWRST; // Clear SW reset, resume operation IE2 |= UCB0TXIE; // Enable TX interrupt } // USCI_B0 Data ISR #pragma vector = USCIAB0TX_VECTOR __interrupt void USCIAB0TX_ISR(void) { UCB0TXBUF = TXData; // TX data P1OUT^=0x01; i=i+1; if(i==4){ UCB0CTL1 |= UCTXSTP; // I2C TX, start condition } }

 

 

此帖出自电子竞赛论坛
点赞 关注
 
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表