这就跟你问声好!
我在SDK5的串行日志接口有问题。我想打印一些信息到控制台进行调试。我使用的是SDK5中的ble_app_barebone示例项目。
我对软件的配置如下:
1.在da1458x_config_basic.h头文件中
/ / # undef CFG_PRINTF
#定义CFG_PRINTF / / VuN
# ifdef CFG_PRINTF
#定义CFG_PRINTF_UART2
# endif
2.在头文件user_peri_setup .h中
#if HW_CONFIG_BASIC_DK ||
#定义UART1_TX_GPIO_PORT GPIO_PORT_1
#定义UART1_TX_GPIO_PIN GPIO_PIN_2
#定义UART1_RX_GPIO_PORT GPIO_PORT_1
#定义UART1_RX_GPIO_PIN GPIO_PIN_3
3.在arch_main.c文件
int main_func(空白)
{
sleep_mode_t sleep_mode;
/ /全局初始化
system_init ();
arch_printf(“Hello World \r\n”);
}
4.另外,uart2.c文件被添加到sdk_driver文件夹中,并包含在Include Paths中,因此它编译成功
在所有上述修改之后,我使用“Rebuild”选项编译了ble_app_barebone示例项目。但是,在配置为115200 - 8N1的控制台上什么也没有出现。为了验证我正在使用的DA14583基本开发板上的UART引脚没有损坏,我在SDK3中尝试了template_583示例项目,并做了一些基本与上述步骤相同的修改。它能工作,所以我可以排除硬件和驱动的问题。
你能检查一下并告诉我SDK5的串行日志接口可能出了什么问题吗?谢谢你!

大家好!
所以,我解决了这个问题。这似乎是SDK5中的一个bug。这个问题可以通过注释掉arch_printf_process()来解决;然后将此函数移动到schedule_while_ble_on(void)函数中的另一个位置
如果(ble_evt_end_set)
{
Uint32_t sleep_duration = 0;
rcx20_read_freq ();
//如果你有足够的时间对收音机进行温度校准
If (lld_sleep_check(&sleep_duration, 4)) //6 slots -> 3.750 ms
//检查时间和温度运行无线电校准。
conditionally_run_radio_cals ();
}
arch_printf_process ();
//授予控制给应用程序,尝试去睡觉
//如果应用返回GOTO_SLEEP
如果(! app_asynch_trm ())
打破;