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.

[参考译文] CCS/MSP430FR5969:I2C 从模式 UCRXIE0中断未启用

Guru**** 2555630 points
Other Parts Discussed in Thread: MSP430FR5969

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/751325/ccs-msp430fr5969-i2c-slave-mode-ucrxie0-interrupt-not-enabled

器件型号:MSP430FR5969

工具/软件:Code Composer Studio

您好!、

当处于从机模式时、我无法获得任何中断。

它显示了启用寄存器 UCB0IE 中中断的操作码、位 UCRXIE0未被置位。

此外、调试器显示错误:无法从非基元位置加载

我错过了什么?

/*--------------------------------------------
* Initialize_I2C_Slave ()
*
*初始化 MSP430FR5969的 I2C 从模式
***********************************************************************************************。 *
void Initialize_I2C_Slave (void)

uint8_t test = 0;


UCB0CTL1 = UCSWRST;// eUSCI_B 处于复位状态
UCB0CTLW0 |= UCMODE_3 + UCSYNC;// I2C 从机模式
UCB0I2COA0 = UCOAEN | 0x29; //设置从地址
P1SEL0 = 0;
P1SEL1 |=(BIT6 | BIT7);// UCB0 I2C 模式
UCB0CTL1 &=~Ω(UCSWRST);// eUSCI_B 处于运行状态

UCB0IE |= UCTXIE0;//启用 TX 中断
UCB0IE |= UCRXIE0;//启用 RX 中断
UCB0IE |= UCSTTIE;//启用启动条件中断
UCB0IE |= UCSTPIE;//启用停止条件中断

if ((UCB0IE & UCRXIE0)== UCRXIE0)

//!!!!! 调试应该在这里!!!!
测试= 1;

enable_IRQ ();//启用中断生成

此致、

Julian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    已解决 LOL!
    编译器优化设置为0 -寄存器优化
    将设置更改为"关闭"会引发问题

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

    您好 Julian、

    很高兴 E2E 论坛能够如此快速地解决您的问题! )

    将来在发布代码时、使用代码插入工具按钮、如下所示: 这将帮助其他人快速查看并提供反馈。

    现在我将继续并关闭此主题、但如果您有任何疑问、请随时制作新主题!

    谢谢、
    JD