微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > simpleBLECentral传送数据后立即接收的问题

simpleBLECentral传送数据后立即接收的问题

时间:10-02 整理:3721RD 点击:

请问在simpleBLECentral中,想连上后就传送数据与接收数据,所以我在GAP_LINK_PARAM_UPDATE_EVENT:下写先发送数据再接收数据

这样反而只有出现Write sent:的数据,却没有出现Read rsp:的数据,如果把发送这一段批注掉,却可以出现Read rsp:的数据

1、请问当写完数据之后,是不能直接取数据是吗?

2、发现写的DelayMS(1000);都没作用,LCD_WRITE_STRING( "write", HAL_LCD_LINE_5 );与LCD_WRITE_STRING( "read", HAL_LCD_LINE_6 );是同时出现

 

 case GAP_LINK_PARAM_UPDATE_EVENT:

      {

        LCD_WRITE_STRING( "Param Update", HAL_LCD_LINE_1 );

       

        uint8 TX_status;  

        uint8 RX_status; 

        if ( simpleBLEState == BLE_STATE_CONNECTED &&

              simpleBLECharHdl != 0 &&

              simpleBLEProcedureInProgress == FALSE )

        {

       // Do a write

        attWriteReq_t TX;

                     

        TX.handle = simpleBLECharHdl;

        TX.len = 1;

        TX.value[0] = simpleBLECharVal;

        TX.sig = 0;

        TX.cmd = 0;

        TX_status = GATT_WriteCharValue( simpleBLEConnHandle, &TX, simpleBLETaskId );      

        LCD_WRITE_STRING( "write", HAL_LCD_LINE_5 );

 

        DelayMS(1000);

        // Do a read

        attReadReq_t RX;

       

        RX.handle = simpleBLECharHdl;

        RX_status = GATT_ReadCharValue( simpleBLEConnHandle, &RX, simpleBLETaskId );

        LCD_WRITE_STRING( "read", HAL_LCD_LINE_6 );

 

       }

      }

      break;

Sco,

不能这样操作。任何两个操作之间必须至少得到HCI层的response之后才能继续下一个操作。

另外你这里直接加delay的话也是不行的,系统实际上是单线程,这样就直接把MCU挂起了,应该会导致连接断开。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top