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

关于CC2640R2F低功耗使用唤醒方式串口接收的问题

我说下我的思路:  
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

赞(0)
未经允许不得转载:TI中文支持网 » 关于CC2640R2F低功耗使用唤醒方式串口接收的问题
分享到: 更多 (0)