D:\git\xwatch\examples\peripheral\timer\pca10056\blank\arm5_no_packs
nrf52832有5个定时器,
分别为timer0~time4,
使用蓝牙时timer0会被占用。
原文:https://blog.csdn.net/yadanzhang/article/details/102934881
所以测试代码不能写NRF_DRV_TIMER_INSTANCE(0)
修改如下 可以work!
NRF_DRV_TIMER_INSTANCE(1)
补充:
新手解决问题 https://www.cnblogs.com/hjj801006/p/12690197.html
#ifndef TIMER_ENABLED
#define TIMER_ENABLED 1
#ifndef TIMER0_ENABLED
#define TIMER0_ENABLED 1
++++++++++ 可以不要下面的
#ifndef NRFX_TIMER_ENABLED
#define NRFX_TIMER_ENABLED 1
#ifndef NRFX_TIMER0_ENABLED
#define NRFX_TIMER0_ENABLED 1
++++++++++
才可以
注意他的编程技巧 宏的拼接!
#define NRF_DRV_TIMER_INSTANCE NRFX_TIMER_INSTANCE
#define NRFX_TIMER_INSTANCE(id) \
{ \
.p_reg = NRFX_CONCAT_2(NRF_TIMER, id), \
.instance_id = NRFX_CONCAT_3(NRFX_TIMER, id, _INST_IDX), \
.cc_channel_count = NRF_TIMER_CC_CHANNEL_COUNT(id), \
}
#define NRF_TIMER_CC_CHANNEL_COUNT(id) NRFX_CONCAT_3(TIMER, id, _CC_NUM)
也就是需要如下3个
NRF_TIMER0
NRF_TIMER0_INST_IDX
TIMER0_CC_NUM
此时的问题是 我的测试代码在周期几次以后 一旦调用
nrf_drv_timer_disable(&TIMER_LED);
就会死机
问题找到!!!!我测试代码写的const nrf_drv_timer_t TIMER_LED = NRF_DRV_TIMER_INSTANCE(1); //sdkconfig 已经打开1定时器
是放在init函数内部的那就是局部变量 我不能再别的的函数去操作它!
所以放在最外面就可以OK!
而time0我可以撤回的 不要了 那是之前没有del的垃圾
进一步看定时器参数吧