NRF52832中状态灯程序

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

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

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

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

NRF52832中状态灯程序_第1张图片

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

NRF52832中状态灯程序_第2张图片

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

NRF52832中状态灯程序_第3张图片

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

NRF52832中状态灯程序_第4张图片

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

bsp_led_indication(indicate);

NRF52832中状态灯程序_第5张图片

进入这个函数

NRF52832中状态灯程序_第6张图片

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

NRF52832中状态灯程序_第7张图片

进入后

NRF52832中状态灯程序_第8张图片

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

NRF52832中状态灯程序_第9张图片

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

NRF52832中状态灯程序_第10张图片


你可能感兴趣的:(蓝牙51822,52832)