关于nrf52832配置低频时钟来源

本文介绍了nrf52832芯片在配置BLE协议栈时如何选择低频时钟来源,包括片内32.768KHz RC振荡器和片外32.768KHz晶振的优缺点。通过修改nrf_sdh_enable_request()函数中的clock_lf_cfg结构体,以及调整sdk_config.h文件中的相关宏,可以设定时钟源,确保芯片正常工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

配置BLE蓝牙协议栈的低频时钟来源

在BLE协议栈初始化的过程中,我们必须为其配置低频的时钟。而低频时钟来源有2种:

(1)片内32.768KHz的RC振荡源
(2)片外32.768KHz的晶振

他们各有优势,使用片内RC振荡比外加晶振要节省空间,但却比外部晶振精度稍差。
在实际的应用中,我们根据自己开发需求以及PCB设计的大小,可能会舍弃外部低频晶振,所以我们需要修改配置,从而让芯片正常工作。

低频时钟的配置是在nrf_sdh_enable_request()函数中配置,我们进入函数内部可以看到一个关于时钟配置的结构体clock_lf_cfg:

    nrf_clock_lf_cfg_t const clock_lf_cfg =
    {
   
   
        .source       = NRF_SDH_CLOCK_LF_SRC,						
        .rc_ctiv      = NRF_SDH_CLOCK_LF_RC_CTIV,				
        .rc_temp_ctiv 
### NRF52832时钟配置与应用实例 #### 使用RTC和LFCLK实现低功耗实时时钟功能 为了在NRF52832上实现双时钟机制,可以利用内部的低频振荡器(LFCLK)来驱动实时计数器(RTC),从而达到精确时间测量的目的。当启用RTC模块时,会自动启动LFCLK作为其时基信号源[^1]。 ```c void nrf_rtc_clock_init(void){ ret_code_t err_code; // 初始化软设备并开启LFCLK err_code = sd_softdevice_enable(&softdevice_handler, NULL); APP_ERROR_CHECK(err_code); // 开启RTC外设 nrf_drv_rtc_config_t rtc_cfg = NRFX_RTC_DEFAULT_CONFIG; err_code = nrf_drv_rtc_init(&m_rtc_instance,&rtc_cfg,NULL); APP_ERROR_CHECK(err_code); } ``` #### 结合APP_TIMER库创建高精度延时操作 除了硬件级别的RTC之外,还可以借助于`app_timer`软件定时器来进行更复杂的定时任务管理。通过这种方式可以在不影响主程序流程的情况下执行周期性的回调函数调用[^3]。 ```c // 定义全局变量用于存储定时器ID static app_timer_id_t m_led_toggle_timer_id; // 创建一个每秒触发一次的应用层定时器 void create_app_timer(){ uint32_t err_code = app_timer_create(&m_led_toggle_timer_id, APP_TIMER_MODE_REPEATED, led_toggle_timeout_handler); APP_ERROR_CHECK(err_code); } // 启动已定义好的应用程序级定时器 uint32_t start_app_timer(uint32_t timeout_in_ms){ return app_timer_start(m_led_toggle_timer_id, APP_TIMER_TICKS(timeout_in_ms),NULL); } ``` #### 综合运用两种时钟资源优化系统性能 在一个实际项目中可能会遇到既需要长时间稳定运行又要有快速响应能力的需求场景。此时就可以考虑同时采用RTC配合LFCLK以及基于`app_timer`构建起来的任务调度框架共同作用,在保持较低能耗水平的同时满足不同业务逻辑对于时间的要求][^[^23]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值