nrf52 uart_init()空载未连接导致跑飞

现象描述:

串口进行了初始化,但是未连线;

int main(void)
{
    ret_code_t err_code;    
    gpio_init();
    timer_init();
    uart_init();
    clocks_start();
    err_code = esb_init();
    APP_ERROR_CHECK(err_code);

}

代码莫名其妙的死在了 clocks_start() 内的 NRF_CLOCK->EVENTS_HFCLKSTARTED = 0 代码处;

解决办法:

串口对应管脚必须连线,或者 屏蔽此代码;

原因分析:

        未知;

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这段代码是用于初始化和启用日志库的后端(backend)的代码片段。它根据所定义的宏来选择性地启用不同的后端。 首先,`backend_id` 是一个整型变量,初始值为 -1。它用于保存后端的标识符,后面会用于检查后端是否成功添加。 然后,通过条件编译语句 `#if defined(NRF_LOG_BACKEND_RTT_ENABLED) && NRF_LOG_BACKEND_RTT_ENABLED` 和 `#if defined(NRF_LOG_BACKEND_UART_ENABLED) && NRF_LOG_BACKEND_UART_ENABLED` 来判断是否启用了 RTT 后端和 UART 后端。 如果启用了 RTT 后端,会调用 `nrf_log_backend_rtt_init()` 函数来进行 RTT 后端的初始化。然后,通过 `nrf_log_backend_add()` 函数将 RTT 后端添加到日志库中,并将其日志级别设置为 `NRF_LOG_SEVERITY_DEBUG`。添加成功后,会对 `backend_id` 进行断言检查,确保添加成功。最后,通过调用 `nrf_log_backend_enable()` 函数来启用 RTT 后端。 如果启用了 UART 后端,会调用 `nrf_log_backend_uart_init()` 函数来进行 UART 后端的初始化。然后,通过 `nrf_log_backend_add()` 函数将 UART 后端添加到日志库中,并将其日志级别设置为 `NRF_LOG_SEVERITY_DEBUG`。添加成功后,会对 `backend_id` 进行断言检查,确保添加成功。最后,通过调用 `nrf_log_backend_enable()` 函数来启用 UART 后端。 通过这段代码,可以根据需要选择性地启用 RTT 或 UART 后端,并将其添加到日志库中,以实现日志的输出功能。请注意,在使用这些后端之前,需要确保已正确初始化相关模块(如 RTT、UART 等)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值