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.

[参考译文] MSP432E401Y:将参数传递给 ISR

Guru**** 2543360 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/961340/msp432e401y-passing-argument-to-isr

器件型号:MSP432E401Y

大家好、我想知道如何将参数传递给 UART ISR

我想访问对象协调器、但除非我在主循环之外构建对象、否则我似乎无法访问

extern "C" void UART0_IRQHandler (void)

uint32_t ui32StatusA;
uint32_t ui32Status;

//
//获取中断状态。
//
ui32StatusA = UARTIntStatus (UART0_BASE、TRUE);
ui32Status = UARTIntStatus (UART0_BASE、TRUE);

if (((ui32StatusA & UART_INT_RX)== UART_INT_RX){
CHAR 字节= UARTCharGetNonBlocking (UART0_BASE);
Coordinator.modemManager.buffer.push (字节);
UARTIntClear (UART0_BASE、UART_INT_RX);

否则、如果(((ui32Status & UART_INT_TX)= UART_INT_TX){
coordinator.modemManager.sendNextByte();
UARTIntClear (UART0_BASE、UART_INT_TX);

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

    不能将参数传递给 ISR。  

    要用作参数的东西需要是全局变量、然后在 ISR 中可以看到全局变量。 将其标记为易失性。