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.

[参考译文] MSP432WARE:未生成 UART Rx 中断

Guru**** 2552450 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/590098/msp432ware-uart-rx-interrupt-is-not-generating

器件型号:MSP432WARE
主题中讨论的其他器件:MSP432P401R

大家好、

我正在使用 MSP432P401R EVM 板。

q)未 生成 UART Rx 中断。

在12MHz、24MHz 以及可能的 boud 速率下尝试代码。

在转到应用 UART 之前、我测试了驱动程序库环回 UART 代码...但在本示例中、还会生成 Rx 中断。

我为 UART 选择了端口3.2和端口3.3。

/* DriverLib 包括*/
#include "driverlib.h"

/*标准包括*/
#include

#include

volatile uint8_t TXData = 1;
volatile uint8_t RXData = 0;

const eUSCI_UART_Config uartConfig =

EUSCI_A_UART_CLOCKSOURCE_SMCLK、// SMCLK 时钟源
78、// BRDIV = 78
2、// UCxBRF = 2
0、// UCxBRS = 0
EUSCI_A_UART_NO_奇 偶校验、//无奇偶校验
EUSCI_A_UART_MSB_FIRST、// LSB 优先
EUSCI_A_UART_One_stop_bit、//一个停止位
EUSCI_A_UART_MODE、// UART 模式
EUSCI_A_UART_oversampling_BAUDRATE_generation //过采样
};


int main (空)

/*停止 WDT */
MAP_WDT_A_HOLDTimer();

/*在 UART 模式下选择 P1.2和 P1.3并将 P1.0作为输出(LED)*/
MAP_GPIO_setPeripheralModuleFunctionInputPin (GPIO_PORT_P3、
GPIO_PIN2 | GPIO_PIN3、GPIO_PRIMARY_MODULE_FUNCTION);
MAP_GPIO_setAsOutputPin (GPIO_PORT_P1、GPIO_PIN0);
MAP_GPIO_setOutputLowOnPin (GPIO_PORT_P1、GPIO_PIN0);


MAP_PCM_setCoreVoltageLevel (PCM_VCORE1);
CS_setDCOCenteredFrequency (CS_DCO_FREQUENCY); /CS_setDCOCenteredFrequency (CS_DCO_FREQUENCY 24);

 //UCA2STATW=0X0080;


/*配置 UART 模块*/
MAP_UART_initModule (EUSCI_A2_base、uartConfig);

/*启用 UART 模块*/
MAP_UART_enableModule (EUSCI_A2_base);//启用中断*

MAP_UART_enableInterrupt (EUSCI_A2_base、EUSCI_A_UART_receive_interrupt);
MAP_Interrupt_enableInterrupt (INT_EUSCIA2);
MAP_Interrupt_enableSlepOnIsrExit();

while (1)

UART_transmitData (EUSCI_A2_base、TXData);


MAP_Interrupt_enableSlepOnIsrExit();
MAP_PCM_gotoLPM0InterruptSafe ();

/* EUSCI A2 UART ISR - Echos 数据返回 PC 主机*/
空 EUSCIA2_IRQHandler (空)

uint32_t status = MAP_UART_getEnabledInterruptStatus (EUSCI_A2_base);

MAP_UART_clearInterruptFlag (EUSCI_A2_base、status);

IF (STATUS 和 EUSCI_A_UART_receive_interrupt_FLAG)

   RXData = MAP_UART_receiveData (EUSCI_A2_base);

  if (RXData!= TXData)//检查值

   MAP_GPIO_setOutputHighOnPin (GPIO_PORT_P1、GPIO_PIN0);
   while (1);//陷阱 CPU

  TXData++;
  MAP_Interrupt_disableSlepOnIsrExit();


如果我做错了、请告诉我。

任何配置都是必需的

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Sanjay、
    您能否提供器件版本以及 driverLib 版本?

    此致、
    Chris
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    我能够使用您提供的代码、中断工作正常。 我所做的唯一更新是针对 driverLib 的 include:

    //#include "driverlib.h"
    #include

    我使用的是 ccsv7.1、msp432_sdk_1_30_00_40和 MSP-EXP432P401R 版本2.0。 我从 Resource Explorer 中下载了 UART_PC_ECHO_12MHz_brclk_MSP_EXP432P401R_nortos_CCS 工程、并使用您的代码替换现有应用代码。

    此致、
    Chris
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Chris、
    我是 MSP-EXP432P401R 的初学者。 我使用的是 ccsv6.2.0、MSP432_DriverLib_Users_Guide-MSP432P4xx-2_20_00_08、并具有修订版1.0。
    我怀疑您提供的是 ccsv6.2.0驱动程序库的修订版和驱动程序 library...ca

    此致、
    Sanjay
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请在此处查找 MSP432和 MSP430驱动程序库:
    www.ti.com/.../mspdriverlib

    此致、
    Chris