本人在外设初始化函数(simple_peripheral.c)后面添加了串口的初始化,执行完初始化函数,准备发送数据,程序就卡在了CPUwfi(),没办法执行了。
Alvin Chen:
UART_Handle uart; UART_Params uartParams;/* 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);if (uart == NULL) {/* UART_open() failed */while (1);}UART_write(uart, echoPrompt, sizeof(echoPrompt));参考上面的程序
Viki Shi:
建议参考下我们的串口例程 Simple Serial Socket : github.com/…/ble_examples
user5893623:
回复 Alvin Chen:
本人书写的跟您推荐的一致。
user5893623:
回复 Alvin Chen:
void Test_Uartinit(void){ UART_init(); UART_Params_init(&uart_params); uart_params.baudRate=115200; uart_params.dataLength=UART_LEN_8; uart_params.stopBits=UART_STOP_ONE;
uart_params.readDataMode=UART_DATA_BINARY; uart_params.writeDataMode=UART_DATA_BINARY;
uart_params.readMode=UART_MODE_BLOCKING; uart_params.writeMode=UART_MODE_BLOCKING; uart_params.readEcho=UART_ECHO_OFF; uart_params.readReturnMode=UART_RETURN_NEWLINE; uart_params.readCallback=UART_MODE_BLOCKING; uart_params.writeCallback=UART_MODE_BLOCKING;
uart_handle=UART_open(Board_UART0,&uart_params);
UART_control(uart_handle,UARTCC26XX_RETURN_PARTIAL_ENABLE,NULL);
UART_read(uart_handle,uart_rx_buff,200);
}
这是本人的书写内容。
user5893623:
回复 user5893623:
#elif defined(__TI_COMPILER_VERSION__)
__STATIC_INLINE void
CPUwfi(void)
{// Wait for the next interrupt.__asm("wfi\n");
}
程序一致卡死在这里。没办法执行串口打印数据。
Alvin Chen:
回复 user5893623:
你添加到了哪里?
Alvin Chen:
回复 Alvin Chen:
在你uart 配置使用的时候判断一下函数返回值。看一下是否成功。下面有具体UART使用手册供你参考:
software-dl.ti.com/…/_u_a_r_t_c_c26_x_x_8h.html
user5893623:
回复 Alvin Chen:
添加到了SimpleBLEPeripheral_init()函数里面VOID GAPRole_StartDevice(&SimpleBLEPeripheral_gapRoleCBs)函数后面。
user5893623:
回复 Alvin Chen:
串口返回的结构体指针是正确的,调试的时候核实过。
user5893623:
回复 user5893623:
// Start the GAPRoleVOID GAPRole_StartDevice(&SimpleBLEPeripheral_gapRoleCBs);
char data[]="hello world\r\n";
Test_Uartinit();
Uart_Send(uart_handle ,(uint8_t *)data,sizeof(data)/sizeof(data[0]));添加到了这里。