OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6217|回复: 3

lorawan发送数据,怎么字符串+16进制一起发送?

[复制链接]

31

主题

85

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
294
金钱
294
注册时间
2018-5-3
在线时间
69 小时
发表于 2020-12-31 17:32:15 | 显示全部楼层 |阅读模式
1金钱
串口发送AT指令,但是date要求十六进制双字符格式。
uint8_t lora_send2[] ="at+send=lora:1:5A1111\r\n";
Usart_SendString(&huart1,lora_send2);
直接这样发送,网关收到就是  5A 11 11
uint8_t lora_send[19] ="at+send=lora:1:";
uint16_t RS485_qccwqq=0x6162;//接收计数器
lora_send[15] = RS485_qccwqq >> 8;
lora_send[16] = (uint8_t)RS485_qccwqq;
lora_send[17] = 0x0d;
lora_send[18] = 0x0a;
Usart_SendString(&huart1,lora_send);
这样发送,网关收到的就是ab6162对应的字符串),如何实现发送的是可变的16进制数据?我需要发送16进制的数据到网关
void Usart_SendString(UART_HandleTypeDef*usarthandle,uint8_t *str)
{
       unsignedint k=0;
  do
  {
     HAL_UART_Transmit(usarthandle,(uint8_t *)(str + k) ,1,1000);
     k++;
  }while(*(str + k)!='\0');
  
}

111.png

最佳答案

查看完整内容[请看2#楼]

使用sprintf函数转一下就可以了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

7

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2021-1-8
在线时间
3 小时
发表于 2020-12-31 17:32:16 | 显示全部楼层
回复

使用道具 举报

3

主题

821

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3329
金钱
3329
注册时间
2011-11-10
在线时间
207 小时
发表于 2021-1-1 21:30:01 | 显示全部楼层
直接发送就行了啊,看你接收端用说明格式来显示了。和串口助手一样道理,同样的数据用HEX格式和ASII格式显示不一样。一个是给人看的,一个是给计算机看的。其实都是一个东西。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2021-1-3 02:33:47 | 显示全部楼层
帮顶
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 13:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表