更改fw的uart端口,并将uart\ U TX端口/引脚分配给P04,将uart\ U RX端口/引脚分配给P05(确保您更改的配置位于HW\ U CONFIG\ U PRO\ U DK下,并且该板在HW\ U CONFIG定义中声明)。
#elif硬件配置\u专业\u DK
#定义UART2\U TX\U GPIO\U端口GPIO\U端口0
#定义UART2\U TX\U GPIO\U引脚GPIO\U引脚4
#定义UART2\U RX\U GPIO\U端口GPIO\U端口0
#定义UART2\U RX\U GPIO\U引脚GPIO\U引脚5
如果您有我们的另一个DK,或者您正在使用自定义板,请使用适当的GPIO修改上述定义
将arch\u console.h文件包含到user\u barebone.c中
调用arch\u printf()
将终端的波特率改为115200。
为了打印十进制值,您应该使用arch\u printf()中的“%d”。请检查一些示例代码。
uint8\u t my\u data[3]={10,11,12}//十进制拱形printf(“uint8\u t my\u data[3]={10,11,12}//小数“);arch_printf(“\r\n”);arch_printf(“十二月:%d%d%d”,我的数据[0],我的数据[1],我的数据[2]);arch_printf(“\r\n”);arch_printf(“十六进制:%x%x%x”,我的数据[0],我的数据[1],我的数据[2]);arch_printf(“\r\n”);arch_printf(“\r\n”);uint8\u t my\u data\u hex[3]={0x10,0x11,0x12}//hex arch\u printf(“uint8\u t my\u data\u hex[3]={0x10,0x11,0x12}//十六进制“);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]);
你好Jasu,
printf_byte_dec()函数的作用是以十进制格式打印字节值。在使用BLE示例时,可以使用arch\u printf()函数进行调试,您可以在十进制、十六进制、字符或字符串之间选择格式。你能给我一个简短的代码片段吗?你的结果是什么?
谢谢,下午好
电压=(adc_值*5)/1023;
printf\ u byte\ u dec(电压);
printf_字符串(“\n\r\n\r”);
电阻=((5*(100.0/电压))-100);
Rln=对数(电阻);
温度=(1/(0.001129148+(0.000234125*Rln)+(0.0000000876741*Rln*Rln*Rln));
打印字节(温度);
但uart上什么也没印?
如果我使用printf\u字节,我将得到十六进制值!!
如何解决这个问题?是否可以打印十进制值?
你好Jasu,
在我之前的文章中,我建议您使用arc\u console.h库中的arch\u printf()API。我开发了sdk5.0.4的ble\u app\u barebone示例,并使用了Pro-DK。让我描述一下我做了什么,并确保你做了同样的配置。
#elif硬件配置\u专业\u DK
#定义UART2\U TX\U GPIO\U端口GPIO\U端口0
#定义UART2\U TX\U GPIO\U引脚GPIO\U引脚4
#定义UART2\U RX\U GPIO\U端口GPIO\U端口0
#定义UART2\U RX\U GPIO\U引脚GPIO\U引脚5
如果您有我们的另一个DK,或者您正在使用自定义板,请使用适当的GPIO修改上述定义
为了打印十进制值,您应该使用arch\u printf()中的“%d”。请检查一些示例代码。
如果你想打印浮点数。您应该遵循以下论坛帖子中描述的过程:
https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bluetooth-low-energy-%E2%80%93-software/floating-point
谢谢,下午好