#include "McuE104BT52Drv.h" #include /* 模块返回值 */ static char gMcuE104BT52DrvOkAck[3] = "OK"; //static char gMcuE104BT52DrvErrAck[4] = "ERR"; static char gMcuE104BT52DrvATCmd[3] = "AT"; // 模块上电确认指令 //static char gMcuE104BT52DrvSLEEPCmd[9] = "AT+SLEEP"; // 睡眠指令 static char gMcuE104BT52DrvTransCmd[12] = "AT+TRANMD=1"; // 设置模块为透传模式 static char gMcuE104BT52DrvAdvCmd[9] = "AT+ADV=1"; // 设置模块为普通广播 static char gMcuE104BT52DrvRoleCmd[10] = "AT+ROLE=0"; // 设置模块为从机模式 //static char gMcuE104BT52DrvDiscon0CMd[12] = "AT+DISCON=0"; // 断开第零路蓝牙连接 //static char gMcuE104BT52DrvDiscon1CMd[12] = "AT+DISCON=1"; // 断开第一路蓝牙连接 static char gMcuE104BT52DrvNameSet[29] = "AT+NAME=ZTT-XFZ-LP-V100-0001"; // 设置设备名指令 static char gMcuE104BT52DrvRecvBuf[20] = {0};//不需要过大只需要接收指令 /* 等待模块自身初始化完成 */ int McuE104BT52DrvInit(E104BT52_OBJ *BlueObj) { unsigned int rt; /* 发送AT命令,判断返回值 */ BlueObj->BluetoothSend((unsigned char *)gMcuE104BT52DrvATCmd, strlen(gMcuE104BT52DrvATCmd)); /* 启动接收 */ rt = BlueObj->BluetoothRecv((unsigned char *)gMcuE104BT52DrvRecvBuf, sizeof(gMcuE104BT52DrvRecvBuf)); if (rt > 0) { if (NULL == strstr(gMcuE104BT52DrvRecvBuf, gMcuE104BT52DrvOkAck)) { return -1; } } /* 设置设备名 */ /* 发送透传模式命令,判断返回值 */ sprintf(&gMcuE104BT52DrvNameSet[24], "%04x", BlueObj->BlueToothId); //gMcuE104BT52DrvNameSet[27] = '0' + BlueObj->BlueToothId; BlueObj->BluetoothSend((unsigned char *)gMcuE104BT52DrvNameSet, strlen(gMcuE104BT52DrvNameSet)); /* 启动接收 */ rt = BlueObj->BluetoothRecv((unsigned char *)gMcuE104BT52DrvRecvBuf, sizeof(gMcuE104BT52DrvRecvBuf)); if (rt > 0) { if (NULL == strstr(gMcuE104BT52DrvRecvBuf, gMcuE104BT52DrvOkAck)) { return -1; } } /* 设置模块为透传模式 */ /* 发送透传模式命令,判断返回值 */ BlueObj->BluetoothSend((unsigned char *)gMcuE104BT52DrvTransCmd, strlen(gMcuE104BT52DrvTransCmd)); /* 启动接收 */ rt = BlueObj->BluetoothRecv((unsigned char *)gMcuE104BT52DrvRecvBuf, sizeof(gMcuE104BT52DrvRecvBuf)); if (rt > 0) { if (NULL == strstr(gMcuE104BT52DrvRecvBuf, gMcuE104BT52DrvOkAck)) { return -1; } } /* 设置广播模式 */ BlueObj->BluetoothSend((unsigned char *)gMcuE104BT52DrvAdvCmd, strlen(gMcuE104BT52DrvAdvCmd)); /* 启动接收 */ rt = BlueObj->BluetoothRecv((unsigned char *)gMcuE104BT52DrvRecvBuf, sizeof(gMcuE104BT52DrvRecvBuf)); if (rt > 0) { if (NULL == strstr(gMcuE104BT52DrvRecvBuf, gMcuE104BT52DrvOkAck)) { return -1; } } /* 设置从机模式 */ BlueObj->BluetoothSend((unsigned char *)gMcuE104BT52DrvRoleCmd, strlen(gMcuE104BT52DrvRoleCmd)); /* 启动接收 */ rt = BlueObj->BluetoothRecv((unsigned char *)gMcuE104BT52DrvRecvBuf, sizeof(gMcuE104BT52DrvRecvBuf)); if (rt > 0) { if (NULL == strstr(gMcuE104BT52DrvRecvBuf, gMcuE104BT52DrvOkAck)) { return -1; } } return 0; }