我说下我的思路:
1、外部中断唤醒CC2640,在IO中断回调中发送外部中断消息;
2、在消息处理中,CC2640初始化串口资源,使用不阻塞的CALLBACK模式进行接收,等待接收四个字节;
3、然后CC2640使用阻塞方式发送四个字节用于握手同步,
4、另一方在中断中收到握手的第一个字节开始发送;
void UsartThread(void)
{
UART_Handle uart;
UART_Params uartParams;
UART_init();
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;
uartParams.readMode = UART_MODE_CALLBACK;
uartParams.readCallback = UsartReadCallback;
uart = UART_open(Board_UART0, &uartParams);
if (uart == NULL) {
}
else
{
if(UsartData.flag==0x5a||UsartData.flag==0x5c)
{
UART_read(uart, UsartReadData, 4);
}
UART_write(uart, &UsartData, UsartData.len);
//UART_close(uart);
}
}
void UsartReadCallback(UART_Handle handle, void *buf, size_t count)
{
Event_post(syncEvent, MR_USINT_EVT);//发送消息处理
// if(((unsigned char *)buf)[0]==0xaa)
// {
// PIN_setOutputValue(PinMyHandle, IOID_5, 1);
// UsartData.len = 4;
// UsartData.cmd = 0x01;
// UsartData.data[0] = UsartData.flag^UsartData.len^UsartData.cmd;
// RF_Para.PowerFlag = 0;
// }
}
但是我发现收不到数据。。
对家看看有什么问题
风吹我衣:
TI大神嗯,冒个泡
YiKai Chen:
回复 风吹我衣:
你需要額外用個GPIO喚醒低功耗下的CC2640R2F才能開始做串口接收
风吹我衣:
回复 YiKai Chen:
我已经唤醒了,但是发过来收不到,所以我想是不是要想个办法同步一下。
YiKai Chen:
回复 风吹我衣:
參考一下 e2e.ti.com/…/2630687
TI中文支持网


