我想打印等价的二进制值的十进制值。如何在uart中打印二进制值?
Printf_byte_dec函数不工作!!??
嗨Jasu,
printf_byte_dec()函数的作用是:打印一个十进制字节值。在使用BLE示例时,可以使用arch_printf()函数进行调试,可以在十进制、十六进制、字符或字符串之间选择格式。能否提供一个简短的代码片段给我?你的结果是什么?
谢谢,PM_Dialog
电压= (adc_value * 5) / 1023;printf_byte_dec(电压);printf_string(“\ n \ r \ n \ r”);电阻=(((5 *(100.0 /电压))- 100);Rln =日志(阻力);温度= (1 / (0.001129148 + (0.000234125 *Rln) + (0.0000000876741 *Rln *Rln));printf_byte_dec(温度);
但是在uart上什么也没有打印出来?
如果我使用printf_byte,我将得到十六进制值!!
如何解决这个问题?是否可以打印十进制值?
在我之前的文章中,我建议你使用arc_console.h库中的arch_printf () API。我在SDK 5.0.4的ble_app_barebone例子中工作,我使用的是Pro-DK。我来描述一下我做了什么确保你们做了相同的构型。
# elif HW_CONFIG_PRO_DK
#定义UART2_TX_GPIO_PORT GPIO_PORT_0
#定义UART2_TX_GPIO_PIN GPIO_PIN_4
#定义UART2_RX_GPIO_PORT GPIO_PORT_0
#定义UART2_RX_GPIO_PIN GPIO_PIN_5
如果您有我们的其他DKs,或者您正在使用自定义板,请使用相应的gpio修改上述定义
为了打印十进制值,你应该在arch_printf()中使用" %d "。请检查一些示例代码。
Uint8_t my_data[3] = {10,11,12};//十进制arch_printf("uint8_t my_data[3] = {10,11,12};/ /十进制”);arch_printf (" \ r \ n ");arch_printf(“12月:% d % d % d”,my_data [0], my_data [1], my_data [2]);arch_printf (" \ r \ n ");arch_printf(“十六进制:% % x % x”,my_data [0], my_data [1], my_data [2]);arch_printf (" \ r \ n ");arch_printf (" \ r \ n ");Uint8_t my_data_hex[3] = {0x10, 0x11, 0x12}; //hex arch_printf("uint8_t my_data_hex[3] = {0x10 , 0x11 , 0x12}; //hex"); arch_printf("\r\n"); arch_printf("DEC: %d %d %d" ,my_data_hex[0] ,my_data_hex[1],my_data_hex[2]); arch_printf("\r\n"); arch_printf("HEXL %x %x %x" ,my_data_hex[0] ,my_data_hex[1],my_data_hex[2]);
如果你想打印浮点数。你应该遵循下面论坛帖子中描述的步骤:
https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bluetooth-low-energy-%E2%80%93-software/floating-point
嗨Jasu,
printf_byte_dec()函数的作用是:打印一个十进制字节值。在使用BLE示例时,可以使用arch_printf()函数进行调试,可以在十进制、十六进制、字符或字符串之间选择格式。能否提供一个简短的代码片段给我?你的结果是什么?
谢谢,PM_Dialog
电压= (adc_value * 5) / 1023;
printf_byte_dec(电压);
printf_string(“\ n \ r \ n \ r”);
电阻=(((5 *(100.0 /电压))- 100);
Rln =日志(阻力);
温度= (1 / (0.001129148 + (0.000234125 *Rln) + (0.0000000876741 *Rln *Rln));
printf_byte_dec(温度);
但是在uart上什么也没有打印出来?
如果我使用printf_byte,我将得到十六进制值!!
如何解决这个问题?是否可以打印十进制值?
嗨Jasu,
在我之前的文章中,我建议你使用arc_console.h库中的arch_printf () API。我在SDK 5.0.4的ble_app_barebone例子中工作,我使用的是Pro-DK。我来描述一下我做了什么确保你们做了相同的构型。
# elif HW_CONFIG_PRO_DK
#定义UART2_TX_GPIO_PORT GPIO_PORT_0
#定义UART2_TX_GPIO_PIN GPIO_PIN_4
#定义UART2_RX_GPIO_PORT GPIO_PORT_0
#定义UART2_RX_GPIO_PIN GPIO_PIN_5
如果您有我们的其他DKs,或者您正在使用自定义板,请使用相应的gpio修改上述定义
为了打印十进制值,你应该在arch_printf()中使用" %d "。请检查一些示例代码。
如果你想打印浮点数。你应该遵循下面论坛帖子中描述的步骤:
https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bluetooth-low-energy-%E2%80%93-software/floating-point
谢谢,PM_Dialog