独显 发表于 2020-9-26 14:59:11

初学新人,想请教一下关于nrf51822定时器中断的问题

最近想用nrf51822完成动态广播,尝试在main函数里面建立一个定时器,然后在中断服务里每隔50ms更新一次广播数据。但是发现程序并没有达到预期的效果,现在还不知道是定时器创建失败还是中断部分有问题,还请大佬们赐教,程序由官方SDK12.3 s130协议栈 ble_peripheral\ble_app_uart\10028改动而成,主函数定时器相关代码大致如下:app_timer_id_t my_timer;

APP_TIMER_INIT(APP_TIMER_PRESCALER, APP_TIMER_OP_QUEUE_SIZE, false);
app_timer_create(&my_timer,APP_TIMER_MODE_REPEATED,my_timer_handler);
app_timer_start(my_timer, APP_TIMER_TICKS(2000,APP_TIMER_PRESCALER), NULL);

//中断服务函数部分
void my_timer_handler(void *p_contex)
{
        advdata_Update();
}有的说法是定时器数量宏MAX_TIMER的问题,但我找了这个协议栈里面并没有用到这个



独显 发表于 2020-9-26 15:42:43

解决了,问题出在不能用网上其他方法声明定义的那个my_timer,要用宏APP_TIMER_DEF(my_timer);才可以,谢谢大佬的视频
页: [1]
查看完整版本: 初学新人,想请教一下关于nrf51822定时器中断的问题