void simple_uart_init()
{
UART_Params_init(¶ms);
params.readMode = UART_MODE_CALLBACK;
params.writeMode = UART_MODE_BLOCKING;
params.readTimeout = UART_WAIT_FOREVER;
params.writeTimeout = UART_WAIT_FOREVER;
params.readCallback = readCallback;
params.writeCallback = NULL;
params.readReturnMode = UART_RETURN_NEWLINE;
params.readDataMode = UART_DATA_TEXT;
params.writeDataMode = UART_DATA_TEXT;
params.readEcho = UART_ECHO_ON;
params.baudRate = 115200;
params.dataLength=UART_LEN_8;/*!< Data length is 8 bits */
params.stopBits=UART_STOP_ONE ;/*!< One stop bit */
params.parityType=UART_PAR_NONE;
handle = UART_open(Board_UART, ¶ms);
UART_control(handle, UARTCC26XX_RETURN_PARTIAL_ENABLE, NULL);
UART_read(handle, rxBuffe, 20);
if (!handle) {
System_printf("UART did not open");
}
}
void simple_write(uint16_t hello[],uint16_t u)
{
UART_write(handle, hello, u);
}
void simple_read()
{
UART_read(handle, rxBuffe, length);
}
void readCallback(handle,rxBuffe, length)
{
//simple_write("\nUART started\n",13);
//simple_read();
//simple_write(rxBuffe,length);
// Enqueue the event.
SimpleBLECentral_enqueueMsg(SBC_UARTCMD_EVT, 0,0);
}
void SimpleBLECentral_processuartcmd()
{
Simple_Set_Led(Board_SIMPLE_LED_RED,LED_ON );
simple_write("\nUART started\n",13);
simple_read();
simple_write(rxBuffe,length);
}
我分析清楚了,现在是第一次能进去,以后就进不去了,但其他程序还可以运行,我觉得可能是什么标志位没能清掉,但不知道怎么弄,要怎么办呢?
请问有什么解决办法么?