对ble_uart的例子,分析状态灯指示程序

控制状态的函数是bsp_indication_set(bsp_indication_t indicate);

状态主要在两个地方,一个是广播,一个是连接,所以,状态灯的函数在这两个回调函数中。

广播的回调函数在初始化advertising_init();的时候注册了

NRF52832中状态灯程序

进入这个回调函数可以看到调用了bsp_indication_set(bsp_indication_t indicate);

NRF52832中状态灯程序

连接的回调函数在派发函数中

NRF52832中状态灯程序

进入这个函数,不同的上抛事件调用了bsp_indication_set(bsp_indication_t indicate);

NRF52832中状态灯程序

接下来具体看这个函数bsp_indication_set(bsp_indication_t indicate);是怎么控制LED灯的。进入这个函数,其中调用了

bsp_led_indication(indicate);

NRF52832中状态灯程序

进入这个函数

NRF52832中状态灯程序

这是广播的状态指示,2秒钟亮200ms,红色部分是控制LED灯的亮灭,蓝色是对定时器的时间设置,一个设定2s,一个设定200ms,最后启动一个定时器,按照next_delay时间进入中断。进入中断后再次调用bsp_led_indication(indicate);循环执行。定时器是在初始化的时候创建的。

NRF52832中状态灯程序

进入后

NRF52832中状态灯程序

再进入可以看到创建了m_leds_timer_id定时器

NRF52832中状态灯程序

蓝色部分为回调函数,进入可以看到调用了状态函数bsp_led_indication(indicate);

NRF52832中状态灯程序


相关文章:

  • 2022-12-23
  • 2022-01-01
  • 2021-12-26
  • 2022-03-07
  • 2022-12-23
  • 2022-01-05
  • 2021-11-12
猜你喜欢
  • 2022-12-23
  • 2021-12-09
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-15
  • 2022-12-23
相关资源
相似解决方案