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.

[参考译文] CC3235SF:Uart0中断问题

Guru**** 2558250 points
Other Parts Discussed in Thread: MSP430G2553, CC3235SF

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/979098/cc3235sf-issue-with-the-uart0-interrupt

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

尊敬的 TI:  

我们正在尝试在两个 MCU 之间建立通信。 一个是 msp430g2553和 cc3235sf,MSP430运行良好,它正在发送小字母('a' ),我们通过连接外部 TTL 来检查这一点。

cc3235sf 方面的问题,我在 MSP430有按钮,当按钮打开时,它正在发送数据,否则不发送数据。

最初、在启动设置时、我将成功获取数据。 但是当按钮处于关闭状态时、数据不在 cc3235sf 上、但控制器仍在运行。 但当按钮打开时。 整个程序在 cc3235sf 端崩溃。 为什么会发生这种情况?

帮助我解决这个问题。

这是我的代码...

UART_INIT();
// InitTerm();
/*创建一个数据处理关闭的 UART。 *
UART_PARAMS_INIT (uartParams);

uartParams.writeDataMode = UART_DATA_BINARY;
// uartParams.readDataMode = UART_DATA_BINARY;
uartParams.readDataMode = UART_DATA_TEXT;
uartParams.readReturnMode = UART_return_full;
uartParams.readMode = UART_MODE_CALLACK;
// uartParams.readMode = UART_MODE_BLOCKING;
uartParams.writeMode = UART_MODE_BLOCKING;
uartParams.readTimeout = UART_WAIT_FOREVER;
uartParams.writeTimeout = UART_WAIT_FOREVE;
uartParams.readCallback = readCallbackFunction;
// uartParams.readCallback = NULL;
uartParams.writeCallback = NULL;
uartParams.readEcho = UART_ECHO_OFF;
uartParams.dataLength = UART_LEN_8;
uartParams.stopbits = UART_STOP_ONE;
uartParams.parityType = UART_PAR_NONE;
uartParams.baudrate = 9600;

uart0 = UART_open (CONFIG_UART_0、uartParams);
uart1 = UART_open (CONFIG_UART_1、uartParams);

UART_CONTROL (uart0、UART_CMD_RXENABLE、NULL);
UART_CONTROL (uart1、UART_CMD_RXENABLE、NULL);

if (uart1 ==空)
{
/* UART_open()失败*/
while (1)
;
}

if (uart0 == NULL)
{
/* UART_open()失败*/
while (1)
;
} 

回调函数....

静态空 readCallbackFunction (UART_Handle handle、void * buffer、size_t size)
{
// UART_control (uart0、UART_CMD_RXDISABLE、NULL);
// UART_PRINT ("********* 收到的数据 !\r\n");

UART_PRINT ("正在接收:%c "、*(char*) buffer);
// reciverData[0]= 0;

// memset (reciverData、'\0'、sizeof (reciverData));
// uart_print ("、%x\r\n"、recreceData[1]);
// UART_CONTROL (uart0、UART_CMD_RXENABLE、NULL);
} 

主循环中的数据接收函数...

UART_READ (uart0、reciverData、sizeof (reciverData)); 

接收器数据的大小 为单字节、发送数据的大小也相同。

我正在使用 uart0进行通信,即..

另一个用于串行监视器的 UART (uart1)...

请告诉我问题在哪里? 这是使用 UART 中断接收数据的正确方式吗?

提前感谢。

Sarju Bhatnagar

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

    您好 Sarju、

    您能否说明如何使用 MSP430上的按钮控制 UART 输出? 该按钮是用于控制是否发送测试数据的某些代码的 GPIO、还是用于实际解复用/解复用 MSP430上的 UART 信号、或以其他方式导致发送到 CC3235的实际 UART 信号中断?

    看一下您的代码、它在大多数情况下看起来都不错。 我唯一的问题是、您是否也尝试使用过 uartParams.readDataMode = UART_DATA_BINARY?

    此致、

    Michael