TI中文支持网
TI专业的中文技术问题搜集分享网站

MSP432P401R 執行 timerled 範例時出錯

HI~各位

請問 當我執行simplelink_msp432_sdk_1_40_01_00 裡面的範例

C:\ti\simplelink_msp432_sdk_1_40_01_00\examples\rtos\MSP_EXP432P401R\drivers\timerled

當 timerCallback 只有執行  GPIO_toggle(Board_GPIO_LED0); 不會有錯誤。

但是當我將timerCallback內容修改為    UART_write(uart, echoPrompt, sizeof(echoPrompt)); 則會出現不正常錯誤

下面是我修改過的code

不知哪邊出了問題?

/*
 *  ======== timerled.c ========
 */

#include <stddef.h>

/* Driver Header files */
#include <ti/drivers/GPIO.h>
#include <ti/drivers/Timer.h>
#include <ti/drivers/UART.h>

/* Board Header file */
#include "Board.h"


/* Callback used for toggling the LED. */
void timerCallback(Timer_Handle myHandle);

/*
 *  ======== mainThread ========
 */

UART_Handle uart;
const char  echoPrompt[] = "Echoing characters:\r\n";

void *mainThread(void *arg0)
{UART_Params uartParams;/* Period and duty in microseconds */Timer_Handle timer0;Timer_Params params;/* Call driver init functions */GPIO_init();Timer_init();UART_init();/* Turn off user LED */// GPIO_write(Board_GPIO_LED0, Board_GPIO_LED_OFF);/* Create a UART with data processing off. */UART_Params_init(&uartParams);uartParams.writeDataMode = UART_DATA_BINARY;uartParams.readDataMode = UART_DATA_BINARY;uartParams.readReturnMode = UART_RETURN_FULL;uartParams.readEcho = UART_ECHO_OFF;uartParams.baudRate = 115200;uart = UART_open(Board_UART0, &uartParams);/* Setting up the timer in continuous callback mode that calls the callback* function every 1,000,000 microseconds, or 1 second.*/Timer_Params_init(&params);params.period = 1000000;params.periodUnits = Timer_PERIOD_US;params.timerMode = Timer_CONTINUOUS_CALLBACK;params.timerCallback = timerCallback;timer0 = Timer_open(Board_TIMER0, &params);if (timer0 == NULL) {/* Failed to initialized timer */while (1);}if (Timer_start(timer0) == Timer_STATUS_ERROR) {/* Failed to start timer */while (1);}return (NULL);
}

/*
 * This callback is called every 1,000,000 microseconds, or 1 second. Because
 * the LED is toggled each time this function is called, the LED will blink at
 * a rate of once every 2 seconds.
 * */
void timerCallback(Timer_Handle myHandle)
{GPIO_toggle(Board_GPIO_LED0);UART_write(uart, echoPrompt, sizeof(echoPrompt));
}

Chen pochi:

/**======== timerled.c ========*/

#include <stddef.h>

/* Driver Header files */
#include <ti/drivers/GPIO.h>
#include <ti/drivers/Timer.h>
#include <ti/drivers/UART.h>

/* Board Header file */
#include "Board.h"

/* Callback used for toggling the LED. */
void timerCallback(Timer_Handle myHandle);

/**======== mainThread ========*/

UART_Handle uart;
const charechoPrompt[] = "Echoing characters:\r\n";

void *mainThread(void *arg0)
{

UART_Params uartParams;
/* Period and duty in microseconds */Timer_Handle timer0;Timer_Params params;
/* Call driver init functions */GPIO_init();Timer_init();UART_init();/* Turn off user LED */// GPIO_write(Board_GPIO_LED0, Board_GPIO_LED_OFF);/* Create a UART with data processing off. */UART_Params_init(&uartParams);uartParams.writeDataMode = UART_DATA_BINARY;uartParams.readDataMode = UART_DATA_BINARY;uartParams.readReturnMode = UART_RETURN_FULL;uartParams.readEcho = UART_ECHO_OFF;uartParams.baudRate = 115200;
uart = UART_open(Board_UART0, &uartParams);
/* Setting up the timer in continuous callback mode that calls the callback* function every 1,000,000 microseconds, or 1 second.*/Timer_Params_init(&params);params.period = 1000000;params.periodUnits = Timer_PERIOD_US;params.timerMode = Timer_CONTINUOUS_CALLBACK;params.timerCallback = timerCallback;

timer0 = Timer_open(Board_TIMER0, &params);
if (timer0 == NULL) {/* Failed to initialized timer */while (1);}
if (Timer_start(timer0) == Timer_STATUS_ERROR) {/* Failed to start timer */while (1);}
return (NULL);
}

/** This callback is called every 1,000,000 microseconds, or 1 second. Because* the LED is toggled each time this function is called, the LED will blink at* a rate of once every 2 seconds.* */
void timerCallback(Timer_Handle myHandle)
{GPIO_toggle(Board_GPIO_LED0);UART_write(uart, echoPrompt, sizeof(echoPrompt));
}

gaoyang9992006:

回复 Chen pochi:

试试用printf替换这个,看看能否正常输出。

Chen pochi:

回复 gaoyang9992006:

gaoyang9992006你好,感謝你的回覆,我會嘗試看看 。

赞(0)
未经允许不得转载:TI中文支持网 » MSP432P401R 執行 timerled 範例時出錯
分享到: 更多 (0)