This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430G2553:我的代码不会进入 ISR

Guru**** 2558440 points
Other Parts Discussed in Thread: MSP430G2553

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/599821/msp430g2553-my-code-does-not-enter-in-the-isr

器件型号:MSP430G2553
主题中讨论的其他器件: MSP430WARE

我已经为 I2C 编写了用于连接传感器的代码

我的代码不会遇到 I2C 的 ISR。

请引导我

#include

unsigned char TXData[]={0xA7、0x32、0xA6};//指向 TX 数据的指针
unsigned int TXByteCtr = 2;
int main (空)

WDTCTL = WDTPW + WDTHOLD;//停止 WDT
P1SEL |= BIT6 + BIT7;//将 I2C 引脚分配给 USCI_B0
P1SEL2|= BIT6 + BIT7;//将 I2C 引脚分配给 USCI_B0
UCB0CTL1 |= UCSWRST;//启用 SW 复位
UCB0CTL0 = UCMST + UCMODE_3;// I2C 主器件、同步模式
UCB0CTL1 = UCSSEL_2 + UCSWRST;//使用 SMCLK、保持软件复位
UCB0BR0 = 12;// fSCL = SMCLK/12 =~100kHz
UCB0BR1 = 0;
UCB0CTL1 &=~UCSWRST;//清除 SW 复位,恢复运行
UCB0I2CSA = 0x53;//从器件地址为048h
IE2 |= UCB0TXIE;//启用 TX 中断

while (1)

_DELAY_CYCLES (10);
while (UCB0CTL1 & UCTXSTP);//确保发送了 STOP 条件
UCB0CTL1 |= UCTR + UCTXSTT;// I2C TX、启动条件
_bis_SR_register (GIE);//使用中断输入 LPM0
/*
if (TXByteCtr = 0)

while (UCB0CTL1 & UCTXSTP);//确保发送了 STOP 条件
UCB0CTL1 |= UCTR + UCTXSTT;// I2C TX、启动条件
_bis_SR_register (GIE);//使用中断输入 LPM0

*


///----------------------------------
// USCIAB0TX_ISR 的结构使其可用于传输任何数据
//预加载带有字节计数的 TXByteCtr 的字节数。 此外、TXData
//指向要发送的下一个字节。
///----------------------------------
#if defined (__TI_Compiler_version__)|| Defined (__IAR_systems_ICC__)
#pragma vector = USCIAB0TX_vector
_interrupt void USCIAB0TX_ISR (void)
#Elif defined (_GNU_)
void __attribute__((interrupt (USCIAB0TX_vector)) USCIAB0TX_ISR (void)
其他
错误编译器不受支持!
#endif

if (TXByteCtr)//检查 TX 字节计数器

UCB0TXBUF = TXData[TXByteCTR];//加载 TX 缓冲器
TXByteCtr -;//减量 TX 字节计数器

其他

UCB0TXBUF = TXData[TXByteCTR];
UCB0CTL1 |= UCTXSTP;// I2C 停止条件
IE2 &=~UCB0TXIE;//清除 USCI_B0 TX 内部标志

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、开尔文、

    下面 是一个应用手册链接、其中介绍了如何调试类似的通信问题。 如果您对本文档有任何疑问、或者它不能帮助您解决问题、请告诉我。

    此外、您还可以在 Resource Explorer 中找到有关此主题的代码示例、您可以通过 CSS 或 dev.ti.com 进行访问。 从 Resource Explorer 中、转到"Software"->"MSP430Ware-v:3.60.00.10"->"Devices"->"MSP430G2xx"->"MSP430G2553"->"Peripheral Examples"->"Register Level"。 所有 msp430g2xx3_uscib0_i2c_xx.c 文件都是 I2C 代码示例、我认为 msp430g2xx3_uscib0_i2c_06.c 与您尝试执行的操作非常接近。