c++ - char C++ STM32中数组uint_t8的转换
问题描述
我使用 STM32L151CB 我有函数,它在 ttl 上获取数据uint8_t rxb[32]
,然后我希望它数组转换为十六进制 uint8_t AppDate[0] = rxb[0]
,AppDate
必须是十六进制(0x13
)。我有两个文件 uart_board.c 下面的代码,但AppDate
在文件 main.c 中。我必须如何在我的函数中使用 return
uart_board.c
:
int32_t resDateLidar(void){
uint8_t rxb[32];
uint8_t* lidar[10];
char* str;
char hex_num[3] = {0};
//HAL_UART_Receive_IT( &UartContext[uartId].UartHandle, &UartContext[uartId].RxData, 1 );
if(HAL_UART_Receive(&UartContext[UART_1].UartHandle, &rxb, 32, 300) == HAL_OK){
DelayMs(100);
for (int i = 0; i < 32; i++)
{
if((rxb[i] == 89) && (rxb[i+1] == 89)){
lidar[0] = rxb[i];
lidar[1] = rxb[i + 1];
lidar[2] = rxb[i + 2];
lidar[3] = rxb[i + 3];
lidar[4] = rxb[i + 4];
lidar[5] = rxb[i + 5];
lidar[6] = rxb[i + 6];
lidar[7] = rxb[i + 7];
lidar[8] = rxb[i + 8];
lidar[9] = rxb[i + 9];
lidar[10] = rxb[i + 10];
//str = (char*)lidar;
}
}
//HAL_UART_Transmit(&UartContext[UART_1].UartHandle, &rxb, 32, 300);
//HAL_UART_Transmit(&UartContext[UART_1].UartHandle, &lidar, 10, 300);
DelayMs(1000);
}
return lidar;
}
我有传感器激光雷达,激光雷达发送 9 个字节,我可以HAL_UART_Transmit
在 ttl 上发送数据。循环过滤我的数据,只发送 9 个字节的信息而不是 32 个。我想分配AppDate[0] = lidar[0],AppDate[1] = lidar[1],AppDate[2] = lidar[2]
. (例如激光雷达发送到我的 stm 89 89 194 0 13 134 13 160 55)
解决方案
推荐阅读
- java - Java Spring Boot - JPA:StackOverflowError 与 @ManyToMany 关系
- python - 从 numpy where() 转换数据
- reactjs - React POST 请求是在没有 cookie 的情况下发送的
- python - 在 python 中比较两个图像时,我想获得 SSIM
- go - Golang:忽略标志参数的位置
- c - 如果元素出现超过 n 次,则删除该元素的出现 - realloc():下一个大小无效
- r - 我应该在哪里对条形图重新排序以使条形组与数据框的顺序相同
- c++ - shared_ptr 没有可行的重载 '='
- wordpress - 如何在产品标题中插入类别名称?
- java - 无法使用 DataSourceFactory 编译 Dropwizard 应用程序