引用:
https://blog.csdn.net/a369000753/article/details/52817326
https://devzone.nordicsemi.com/f/nordic-q-a/35205/setting-xl1-xl2-as-gpio-does-not-work/135742#135742
环境:Keil 5.26.2, SDK15.2.0, SoftDevice6.1.0
使用Reset引脚作为P0.21:
把CONFIG_GPIO_AS_PINRESET宏去掉
把CONFIG_GPIO_AS_PINRESET宏去掉使用XL1/XL2做为P0.0/P0.1:
这个比较麻烦,这两个引脚本来是作为LF时钟输入,外接一颗32.768kHz晶振,在一些极致设计中,这个晶振可以省掉,从而把引脚空出来做别的用途。
在需要用到BLE的时候,LF时钟是必须的,但是32.768kHz晶振不是必须的。外接32.768kHz晶振可以达到最佳的省电效果,不接的话有两种方式产生LF时钟:
1.使用内部RC电路产生时钟,误差比较大但是省电,芯片会用HF时钟自动校准
2.一直打开HF时钟(Synth),非常耗电不推荐
需要改下面几个地方:
首先是sdk_config.h中,将SoftDevice时钟来源从XTAL改为RC:
然后搜索sdk_config.h,把下面两个宏定义改为0:
NRFX_CLOCK_CONFIG_LF_SRC
CLOCK_CONFIG_LF_SRC
原文中还说要调用一下nrf_drv_clock_init(),试过了不加也可以。
网友评论