串口发送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); 这样发送,网关收到的就是ab(6162对应的字符串),如何实现发送的是可变的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'); }
|