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.

[参考译文] MSP430F47177:USCIAB0RX、USCIAB0TX、USCIAB1RX、USCIAB1TX - MSP430中断

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/718621/msp430f47177-usciab0rx-usciab0tx-usciab1rx-usciab1tx---msp430-interrupts

器件型号:MSP430F47177
您好!

我想知道触发四 个 ISR 的时间:

USCIAB0TX_VECTOR

USCIAB0RX_VECTOR

USCIAD1TX_Vector

USCIAB1RX_VECTOR

找不到任何相关信息。

请帮帮我

谢谢你。

此致、

Sameer Batra  

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

    有一个中断向量用于处理两个 USCI 模块(A 和 B)的 TX 事件、还有一个中断向量用于处理两个模块的 RX 事件;请参阅用户指南的第19.3.16节。

    F47177有四个 USCI 模块(A0/B0/A1/B1)、因此它需要四个向量。 gcc 头文件显示:

    #define USCIAD1TX_Vector (19) /* 0xFFE4 USCI A1/B1发送*/
    #define USCIAB1RX_Vector (20) /* 0xFFE6 USCI A1/B1接收*/...
    
    #define USCIAB0TX_Vector (25) /* 0xFFF0 USCI A0/B0发送*/
    #define USCIAB0RX_Vector (26) /* 0xFFF2 USCI A0/B0接收*/
    
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Clemens:  

    感谢您的快速响应。

    正如您所说:

    F4777有四个 USCI 模块(A0/B0/A1/B1)、因此它需要四个向量。 gcc 头文件显示:

    #define USCIAD1TX_Vector (19) /* 0xFFE4 USCI A1/B1发送*/
    #define USCIAB1RX_Vector (20) /* 0xFFE6 USCI A1/B1接收*/...
    
    #define USCIAB0TX_Vector (25) /* 0xFFF0 USCI A0/B0发送*/
    #define USCIAB0RX_Vector (26) /* 0xFFF2 USCI A0/B0接收*/ 
    我正在发布我的代码的某些部分。 我感到困惑的是,当未确认中断标志被置位时,我应该在哪里写入中断例程。
    根据数据表和用户手册,我了解到 USCI_A0和 USCI_A1支持 SPI、UART、IrDA。 USCI_B0 & USCI_B1支持 SPI 和 I2C。  
    我的问题是 :  
     
    1-当未确认中断标志被置位时,需要哪个向量。
    2-当负确认 位被置位时,应该在哪里写入中断服务程序。
    正如数据表所说的将 USB0和 USB1用于 I2C 一样,我写道:  
    #Pragma Code_Section (USCIABTRX_ISR、"LOWPAGE")
    #Pragma Vector = USCIAB1RX_Vector  
    __inrupt void USCIAB0RX_ISR (void)
    IF (UCNACKIFG 和 UCB0STAT
     {
      UCBOCTL |= UCTXSTP   //停止 I2C
    很好的帮助!
    此致,  
    Sameer Batra  
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    《用户手册》第21.3.7节规定:

    USCI_Ax 和 USCI_Bx 共用同一个中断向量。 在 I2C 模式中、状态改变中断标志 UCSTTIFG、UCSTPIFG、UCNACKIFG、来自 USCI_Bx 的 UCALIFG 和来自 USCI_Ax 的 UCAxRXIFG 被路由至一个中断向量。 I2C 发送和接收中断标志 UCBxTXIFG 和来自 USCI_Bx 的 UCBxRXIFG 以及来自 USCI_Ax 的 UCAxTXIFG 共享另一个中断向量。

    (见第21-25页。)

    μ I²C 状态变化中断与处理 Ax 接收的矢量相同。

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

    感谢您的信息清除器、

    现在我已经为否定确认编写了中断例程,但现在我遇到了链接错误。  

    为便于参考,我将分别附上代码和错误的屏幕截图。  

    代码:

    错误:

    请提供帮助,

     

    此致,

    Sameer Batra  

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    不要对只能复制/粘贴的文本使用屏幕截图。

    该错误通常在您为同一矢量声明了多个中断处理程序时发生。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您提供的信息。