基于FreeRTOS的STM32四軸飛行器: 三.電源控制
- 一.IP5305T芯片手冊
- 二.電源控制任務
一.IP5305T芯片手冊
注意該芯片低功耗特性,為防止進入待機,每隔一段時間發送一個電平。
官方提供的芯片外圍電路設計圖:
電氣特性:
當負載電流持續小于45mA,最小值24s,典型值32s,最大值40s,會自動關機。
如果已經關機或者防止關機,要給予一個短按,給30ms低電平就認為短按了,手冊有誤差經過實驗至少80ms才實現短按。
按鍵方式:
不需要時將按鍵懸空,連續短按兩次可以關閉芯片緊急關機。
二.電源控制任務
Inf_IP5305T.c:
先實現短按功能,通過拉低拉高電平實現,static使該函數只能在Inf_IP5305T.c中被調用:
實現芯片開機功能,直接調用短按函數:
實現芯片關機功能,在1S內連續兩次短按:
App_Task.c:
配置電源管理任務形參:
創建電源控制任務:
編寫電源任務函數:
通過xTaskGetTickCount()獲取當前的時間記錄時間點,進入while循環后先判斷阻塞等待通知(類似信號量獲取)ulTaskNotifyTake(pdTRUE, POWER_EXEC_CYCLE),如果在10S內收到通知就執行強制關機,未收到通知就短按持續激活電源芯片。