Я использую STM32L151CB У меня есть функция, которая получает данные по ttl uint8_t rxb[32]
, затем я хочу, чтобы массив преобразовывался в шестнадцатеричные uint8_t AppDate[0] = rxb[0]
, AppDate
должен быть шестнадцатеричным (0x13
). У меня есть два файла uart_board. c код ниже, но AppDate
в файле main. c. Как я должен использовать возврат в моей функции
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;
}
У меня есть датчик LIDAR, лидар посылает 9 байт, я могу HAL_UART_Transmit
данные, на ttl. l oop для фильтрации моих данных и отправки только 9 байтов информации вместо 32. Я хочу присвоить AppDate[0] = lidar[0],AppDate[1] = lidar[1],AppDate[2] = lidar[2]
. (например лидар прислать на мой стм 89 89 194 0 13 134 13 160 55)