关于EC_01F的一个小问题以及nb通信时asciiHex转码代码

[复制链接]
查看472 | 回复4 | 2023-9-25 15:17:40 | 显示全部楼层 |阅读模式

本帖最后由 wuliao0o0 于 2023-9-25 18:52 编辑

使用这个nb模块时会一直多收6个字节的数据,即使在我没发数据时也可以接收到,所以在处理时需要对这个进行单独判断。 Hex-asciiHex代码: [code]void splitByteToASCII(unsigned char byte) { buffer[length] = byte >> 4; // 取高4位 buffer[length + 1] = byte & 0x0F; // 取低4位 buffer[length] += (buffer[length] > 9) ? 'A' - 10 : '0'; // 将高4位转换为对应的ASCII码 buffer[length + 1] += (buffer[length + 1] > 9) ? 'A' - 10 : '0'; // 将低4位转换为对应的ASCII码 length += 2; }[/code] 这里的length是一个公共变量用来控制数组元素的位移的(因为我是把数据放到数组里然后通过串口发出去的),可以根据自己需求删/留. 以下是通过at指令配置连接云端代码(官方有具体解释我就贴个代码,有问题可以问我): [code]Uart2_SendStr("AT+CGATT=1"); delay(1000); Uart2_SendStr("AT+SKTCREATE=1,1,6\r\n"); delay(500); Uart2_SendStr("AT+SKTCONNECT=0,\"122.114.122.174\",35648\r\n"); delay(1000); Uart2_SendStr("AT+ECIPR=115200\r\n"); delay(300);[/code]

发数据的时候可以用sprintf(buffer, "AT+SKTSEND=0,%u,", (unsigned int)(p->len + 24));来拼开头,长度为源数据的长度即原本的字节数据

回复

使用道具 举报

WangChong | 2023-9-25 19:35:32 | 显示全部楼层
学习了
回复

使用道具 举报

王乐乐 | 2023-9-26 10:30:48 | 显示全部楼层
打卡学习
回复

使用道具 举报

496199544 | 2023-9-26 11:24:25 | 显示全部楼层
打卡学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则