1 中斷源json
中斷 | 描述 | 優先級 | 搶佔優先級、響應優先級 | 中斷嵌套 |
TIM2_IT_Update網絡 |
心跳包 | 3 | U2:USART_IT_RXNE | |
TIM3_IT_Update函數 |
刷卡串口3---關聯 | 0 | 0 1 | |
TIM4_IT_Updatespa |
GPRS串口2---關聯 | 1 | ||
TIM5_IT_Update事務 |
ESP32串口1---關聯 | 1 | ||
TIM6_IT_Updatetable |
繼電器開門 | 0 | 0 1 | |
TIM7_IT_Updatedate |
蜂鳴器-網絡重連-發送卡號 | 3 | U2:USART_IT_RXNE | |
U2:USART_IT_RXNE定時器 |
GPRS-AT指令串口 | 1 | ||
U3:USART_IT_RXNE | 刷卡串口程序 |
0 | 0 1 | |
U1:USART_IT_RXN密碼 |
ESP32-AT指令串口 | 1 | ||
EXIT-line2 |
觸摸按鍵 | 0 | 0 2 | 開門-臨時密碼詢問 |
關鍵點:
(1)若在某個中斷服務程序中調用AT指令發送API,則要確保該中斷優先級要低於U2及其關聯定時器的中斷優先級。(這裏的優先級高低不是值的高低,是邏輯上優先級的高低)
(2)開門中斷TIM六、刷卡響應U3的優先級要高,要高於U2。
(3)確保在網絡重連等狀況時,如有本地刷卡,先響應刷卡結果,開了門以後再返回網絡重連任務。
刷卡時序:U3->U3對應定時器-》卡號比較-》任務1:開門TIM6-》任務2:發送刷卡記錄-U2
與網絡通信,上發數據相關的任務可能會出現比較耗時的狀況,不要在關鍵事務中斷函數中指令,應另開個低優先級中斷入口去執行該任務。
調用AT指令的任務有:
(1)解析完json執行網絡重連
(2)刷卡行爲後上發刷卡記錄
(3)定時上發心跳包數據
(4)報警記錄上傳
(5)上傳臨時密碼查詢