工程是在 2.21协议栈的simple peripheral的基础是建立的,添加一个uart task用于处理串口信息,任务优先级为1,在任务初始化中的代码如下:
UART_init();
UART_Params_init(&UartParams);
UartParams.baudRate = 115200;//115200;
UartParams.readDataMode = UART_DATA_BINARY;
UartParams.writeDataMode = UART_DATA_BINARY;
UartParams.readCallback = UartRcvDoneCb;
UartParams.readMode = UART_MODE_CALLBACK;
UartParams.writeCallback = UartSendDoneCb;
UartParams.writeMode = UART_MODE_CALLBACK;
UartParams.readEcho = UART_ECHO_OFF;
UartHdl = UART_open(0, &UartParams);
//Enable Partial Reads on all subsequent UART_read()
UART_control(UartHdl, UARTCC26XX_RETURN_PARTIAL_ENABLE, NULL);
UART_read(UartHdl, UartRcvBuff, UART_ONCE_RECEIVE_DATA_BYTE_MAX);//start a uart read
现象是,无法连接上手机,但是有意思的是,如果事先把模块的Rx引脚和其它设备的Tx引脚用杜邦线连接,这样就一切工作正常,可顺利连接,当把Rx和其它模块的Tx断开,这时蓝牙连接会立即断开。
另外一种情况是,如果把初始化中的UART_read给取消,这时,不用给Rx引脚连接任何外部引脚,直接悬空,就可以用其它手机正常连接,而且连接很稳定,不知哪位大神可以帮我解决一下这个问题,不胜感激,