发帖
4 0 1

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

wuliao0o0
中级会员

3

主题

3

回帖

449

积分

中级会员

积分
449
EC系列 620 4 2023-9-25 15:17:40

[i=s] 本帖最后由 wuliao0o0 于 2023-9-25 18:52 编辑 [/i]<br /> <br />

使用这个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));来拼开头,长度为源数据的长度即原本的字节数据

──── 0人觉得很赞 ────

使用道具 举报

2023-9-25 19:35:32
学习了
2023-9-26 10:30:48
打卡学习
2023-9-26 11:24:25
打卡学习
您需要登录后才可以回帖 立即登录
高级模式
返回
统计信息
  • 会员数: 28271 个
  • 话题数: 40232 篇