какой спецификатор форматирования применить
-
-
19.07.2023 #78342
Николай
КлючникRR2021 20 июл 2023, 13:14вообщем нужно шестнадцатиричный код преобразовать в текст условно получить из 0x0F два символа 0x30 0x46 т.е. ‘0’ ‘F’
uint8_t crc3 ,
uint8_t buf[132]={0},
//№1
crc3 = 0xF0,
sprintf ( (char *) buf ,%2X,, crc3 ),
uart_write( 5, buf, 4),
//№2
crc3 = 0x00,
sprintf ( (char *) buf ,%2X,, crc3 ),
uart_write( 5, buf,4),
//№3
crc3 = 0x0F,
sprintf ( (char *) buf ,%2X,, crc3 ),
uart_write( 5, buf, 4),
//№4
crc3 = 0xFF,
sprintf ( (char *) buf ,%2X,, crc3 ),
uart_write( 5, buf, 4),
в №1 всё получается как надо 0x46 0x30 0x2C (запятая )
в №2 получается 0x20 0x30 0x2C (запятая ), а хотелось бы чтобы получалось 0x30 0x30 0x2C
в №3 получается 0x20 0x46 0x2C (запятая ), а хотелось бы чтобы получалось 0x30 0x46 0x2C
в №4 всё получается как надо 0x46 0x46 0x2C (запятая )
вообщем что применить вместо %2Xcheblin 20 июл 2023, 15:10лучше скажи что делаешь в целом.
напоминает очередной, 338-ой текстовый протокол.
если это так, то совет. пересылай прям как есть, в бинарном виде. UART с этим справится на отличненько.rjur 20 июл 2023, 15:36RR2021 писал(а):вообщем что применить вместо %2X%02X,
RR2021 20 июл 2023, 15:46cheblin писал(а):лучше скажи что делаешь в целом.
напоминает очередной, 338-ой текстовый протокол.
если это так, то совет. пересылай прям как есть, в бинарном виде. UART с этим справится на отличненько.считаю контрольную сумму в uint8_t и надо передать его как два ASCII символа т.е. каждый полубайт символом например 0x0F два символа 0x30 0x46 т.е. ‘0’ ‘F’
зы совет rjur помогПоследний раз редактировалось RR2021 20 июл 2023, 15:48, всего редактировалось 1 раз.
RR2021 20 июл 2023, 15:47rjur писал(а):RR2021 писал(а):вообщем что применить вместо %2X%02X,
спасибо! то что нужно
-
Viewing 0 reply threads
- Вы должны войти в систему, чтобы ответить в этой теме.