【发布时间】:2023-02-09 22:21:25
【问题描述】:
如何在 C 中使用 printf 打印十六进制数字?
static void ReadReg_SI5338(uint8_t *pBuffer)
{
uint8_t ret;
ret = HAL_I2C_Master_Transmit(&hi2c2, SI5338_ADDR, pBuffer, 1, 5);
if ( ret != HAL_OK )
{
printf("Error Tx\r\n");
}
else
{
ret = HAL_I2C_Master_Receive(&hi2c2, SI5338_ADDR, pBuffer, 1, 5);
if ( ret != HAL_OK )
{
printf("Error Rx\r\n");
}
else
{
printf(pBuffer[0], "\r\n");
}
}
}
该代码有效,它读取正确的值,但在终端中打印垃圾。我想要它的格式为“0x38”、“0x01”等。但我不知道该怎么做。
【问题讨论】: