uart中的十进制值

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.wsdof.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
4个职位/ 0个新职位
最后发表
Jasu
离线
最后看到:2年4天前
加入:2019-01-23 26
uart中的十进制值

我想打印等价的二进制值的十进制值。如何在uart中打印二进制值?

Printf_byte_dec函数不工作!!??

关键词:
设备:
PM_Dialog
离线
最后看到:11小时26分钟前
工作人员
加入:2018-02-08 11:03
嗨Jasu,

嗨Jasu,

printf_byte_dec()函数的作用是:打印一个十进制字节值。在使用BLE示例时,可以使用arch_printf()函数进行调试,可以在十进制、十六进制、字符或字符串之间选择格式。能否提供一个简短的代码片段给我?你的结果是什么?

谢谢,PM_Dialog

Jasu
离线
最后看到:2年4天前
加入:2019-01-23 26
电压= (adc_value * 5) / 1023;

电压= (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,我将得到十六进制值!!

如何解决这个问题?是否可以打印十进制值?

PM_Dialog
离线
最后看到:11小时26分钟前
工作人员
加入:2018-02-08 11:03
嗨Jasu,

嗨Jasu,

在我之前的文章中,我建议你使用arc_console.h库中的arch_printf () API。我在SDK 5.0.4的ble_app_barebone例子中工作,我使用的是Pro-DK。我来描述一下我做了什么确保你们做了相同的构型。

  1. #在da1458x_config_basic.h中定义CFG_PRINTF
  2. 修改fw的uart端口,将UART_TX端口/pin配置为P04,将UART_RX端口/pin配置为P05(要确保修改的配置在HW_CONFIG_PRO_DK下,且该单板在HW_CONFIG定义中声明)。

# 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修改上述定义

  1. 将arch_console.h文件包含到user_barebone.c中
  2. 调用arch_printf ()
  3. 修改终端波特率为115200。

为了打印十进制值,你应该在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

谢谢,PM_Dialog