是否有一个SDK 5.0.3示例BLE项目(target_app)使用UART进行调试?外围的例子在"\projects\target_apps\peripheral_examples" use "\projects\target_apps\peripheral_examples\shared\common_uart\common_uart.c",其中包含注释:“(Do not use for your designs) - (legacy)”和我发现的BLE示例项目都没有使用printf调试,所以我不确定如何在BLE示例中“添加”printf调试。
谢谢你!
设备:
嗨rydello,
请查看以下,基于SKD5模板,实现UART打印功能所需的步骤:
1)在da1458x_config_basic.h文件中定义CFG_PRINTF_UART2。
2)在user_peripher_setup .h中将TX的默认引脚修改为P0_4, RX的默认引脚修改为P0_5
3)在schedule_while_ble_on中做以下更改:
//将控制权授予应用程序,尝试进入睡眠
//如果应用程序返回GOTO_SLEEP
如果(app_asynch_trm ())
{
继续;//再次调用rwip_schedule(
}
其他的
{
arch_printf_process ();
打破;
}
4)在。app_on_ble_powered中的user_callback_config.h中,用一个自定义函数e.x. user_app_on_ble_powered替换NULL值
5)在empty_peripheral_template.h文件中声明并实现user_app_on_ble_powered函数,如下所示:
实现:enum arch_main_loop_callback_ret user_app_on_ble_powered(void){返回KEEP_POWERED;}
6)包含提供printf功能的“arch_console.h”文件。
7)使用arch_puts将数据打印到uart中。
由于MT_dialog
谢谢你!我现在能够看到我的uart调试输出消息。我已经确保定义了CFG_PRINTF和CFG_PRINTF_UART2,我修改了UART2 TX和RX端口/引脚的定义,并实现了user_app_on_ble_powered()回调。然而,schedule_while_ble_on()中的建议更改似乎不起作用,因为只有当user_app_on_ble_powered()返回一个false(0)值时才会调用arch_printf_process()。我留下了代码,似乎是工作的:
//将控制权授予应用程序,尝试进入睡眠
//如果应用程序返回GOTO_SLEEP
如果(! app_asynch_trm ())
打破;
/ / SDKIMPROVEMENTS需要测试! !我们可以添加以下条件,然后移动
//退出循环
//我们可以考虑把它放在app_asynch_trm之前
/ /如果(GetBits16 (CLK_CTRL_REG RUNNING_AT_XTAL16M))
//执行printf进程
arch_printf_process ();
谢谢!