现在蓝牙主模块已经和CC2541连接上了。
CC2541往蓝牙主模块发送数据,蓝牙主模块可以接收到。
可是蓝牙主模块往CC2541发送数据,CC2541收不到。
发送代码:
if(BL_Flag==9)
{
BL_Flag=0;
HAL_UART_Transmit (&huart1 ,(uint8_t *)(START),1,1500);
flag=1;
}
if(BL_Flag==1)
{
BL_Flag=0;
HAL_UART_Transmit (&huart1 ,(uint8_t *)(STO),1,1500);
}
接收代码:
可是断点都执行不到。
请问高手,CC2541接收数据的时候,格式有什么要求吗?谢谢!
Alvin Chen:
你上面的程序时UART发送,怎么可能发到蓝牙端呢?
请自行看我之前给你的回复。attWriteReq_t req;
req.pValue = GATT_bm_alloc( simpleBLEConnHandle, ATT_WRITE_REQ, 1, NULL );
if ( req.pValue != NULL )
{
req.handle = simpleBLECharHdl;
req.len = 1;
req.pValue[0] = simpleBLECharVal;
req.sig = 0;
req.cmd = 0;
status = GATT_WriteCharValue( simpleBLEConnHandle, &req, simpleBLETaskId );e2echina.ti.com/…/179562
ccb bcc:
回复 Alvin Chen:
谢谢!现在是蓝牙模块啊,只能这么发送。我是用单片机控制的,接收就是用串口。
if((HAL_UART_Receive (&huart1 ,&Head,1,500)==HAL_OK)&&(Head=='t')) { if(HAL_UART_Receive (&huart1 ,aRxBuffer,10,4500)==HAL_OK) { if((aRxBuffer[0]=='i')&&(aRxBuffer[1]=='m')&&(aRxBuffer[2]=='e')) { HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin); } for(i=0;i<12;i++) aRxBuffer[i]=0; } Head=0;
}
ccb bcc:
回复 Alvin Chen:
谢谢!现在是蓝牙模块,用STM32单片机控制的,只能用串口。接收也是用串口,可以收到。
代码如下:
if((HAL_UART_Receive (&huart1 ,&Head,1,500)==HAL_OK)&&(Head=='t')) { if(HAL_UART_Receive (&huart1 ,aRxBuffer,10,4500)==HAL_OK) { if((aRxBuffer[0]=='i')&&(aRxBuffer[1]=='m')&&(aRxBuffer[2]=='e')) { HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin); } for(i=0;i<12;i++) aRxBuffer[i]=0; } Head=0; }
ccb bcc:
回复 Alvin Chen:
谢谢!如果收到数据,接收缓冲区在哪呢?告诉我好吗?
Alvin Chen:
回复 ccb bcc:
请描述你的问题,如果你指的的peripheral的接收在Profiles 里面的simpleGATTprofile.c
建议你自己去看一下手册有助于你的学习。
file:///C:/Texas%20Instruments/BLE-CC254x-1.5.0.16/Documents/BLE_API_Guide_main.htm
ccb bcc:
回复 Alvin Chen:
谢谢!我看看