STM32HAL库发送字符串,将uint8_t数据转为字符串发送,sprintf函数的使用方法
目录
- 1. HAL库发送字符串,将uint8_t数据转为字符串发送,sprintf函数的使用方法
- 2. 总结
1. HAL库发送字符串,将uint8_t数据转为字符串发送,sprintf函数的使用方法
使用
HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size, uint32_t Timeout)
函数
发送字符串:
uint8_t CFG_GEAR_BUF_START[] = "ATPE";
HAL_UART_Transmit(&huart2, CFG_GEAR_BUF_START, 4, 1000);
输出:
发送单个数组:
输出:
HEX显示
发送数组:
输出:
HEX显示
发送单个数组转字符串:
输出:
输出长度改为1:
输出长度改为2:
0x12=18,再长一点就会乱码;
数据全部转为十进制字符串:
数据全部转为十六进制字符串:
插入一个字符:
2. 总结
HAL_UART_Transmit可以发送字符串,输出数据长度符合即可;.
uint8_t CFG_GEAR_BUF_START[] = "ATPE";
HAL_UART_Transmit(&huart2, CFG_GEAR_BUF_START, 4, 1000);
HAL_UART_Transmit直接发送的数据输出为十六进制类型;
HAL_UART_Transmit输出转换的字符串,输出的数据长度超出范围造成乱码;
使用sprintf函数可以将uint8_t类型的数据以十进制或十六进制的形态转换为char类型的数据,并加载在sprintf的数组中,加载时注意数据的长度,数据的地址,使用HAL_UART_Transmit输出时也需要注意数据的长度,以避免造成数据错乱。
sprintf(TEST_UCHAR, “%d”, TEST_BUF2[0]);
sprintf(TEST_UCHAR, “%x”, TEST_BUF2[0]);