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

蓝牙主模块往CC2541发送数据的问题

现在蓝牙主模块已经和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:

谢谢!我看看

赞(0)
未经允许不得转载:TI中文支持网 » 蓝牙主模块往CC2541发送数据的问题
分享到: 更多 (0)