---------------------------------------------------------------------------------------------------------------------------------------------------------------------
在WCH沁恒官方提供的CH583的EVT资源包中,找到BLE文件中找到BLE_UART这个工程文件,在这个程序中添加一组自定义的属性服务,自定义包含五种不同属性的服务,包含可读、可写、通知、可读可写、安全可读。
在没有添加之前,通过手机的BLE调试助手连接对应的蓝牙,可以观察到只有一个属性服务,这个属性服务是在BLE_UART程序中利用串口3与蓝牙进行数据收发功能。
因此在此基础上,将整个gattprofile.c文件添加到BLE_UART程序中,这样就可以添加一组自定义属性服务,包含五种不同属性的服务,包含可读、可写、通知、可读可写、安全可读。
具体实现步骤如下:
第一步:
在peripheral.c中找到void Peripheral_Init()初始化BLE外设中,在初始化GATT属性中添加SimpleProfile_AddService(GATT_ALL_SERVICES);这是添加一个SimpleProfile的GATT属性服务到BLE设备上,并指定添加所有的GATT属性服务。可以根据定义的特征和属性,实现自定义的功能好数据交换。
1 GGS_AddService(GATT_ALL_SERVICES); // GAP
2 GATTServApp_AddService(GATT_ALL_SERVICES); // GATT attributes
3 DevInfo_AddService(); // Device Information Service 4 ble_uart_add_service(on_bleuartServiceEvt); 5 6 SimpleProfile_AddService(GATT_ALL_SERVICES); //添加了一个简单的自定义Profile服务 7 8 // Setup the SimpleProfile Characteristic Values //设置SimpleProfile的特征值 9 { 10 //定义5个特征值 11 uint8_t charValue1[SIMPLEPROFILE_CHAR1_LEN] = {1}; 12 uint8_t charValue2[SIMPLEPROFILE_CHAR2_LEN] = {23}; //23是十进制数,在手机APP中读取的数值是十六进制17 13 uint8_t charValue3[SIMPLEPROFILE_CHAR3_LEN] = {3}; 14 uint8_t charValue4[SIMPLEPROFILE_CHAR4_LEN] = {4}; 15 uint8_t charValue5[SIMPLEPROFILE_CHAR5_LEN] = {1, 2, 3, 4, 5}; 16 17 //将特征值设置对应的特征参数(特征参数的ID、长度、数据) 18 SimpleProfile_SetParameter(SIMPLEPROFILE_CHAR1, SIMPLEPROFILE_CHAR1_LEN, charValue1); 19 SimpleProfile_SetParameter(SIMPLEPROFILE_CHAR2, SIMPLEPROFILE_CHAR2_LEN, charValue2); 20 SimpleProfile_SetParameter(SIMPLEPROFILE_CHAR3, SIMPLEPROFILE_CHAR3_LEN, charValue3); 21 SimpleProfile_SetParameter(SIMPLEPROFILE_CHAR4, SIMPLEPROFILE_CHAR4_LEN, charValue4); 22 SimpleProfile_SetParameter(SIMPLEPROFILE_CHAR5, SIMPLEPROFILE_CHAR5_LEN, charValue5); 23 }