1 中断源
中断描述优先级 抢占优先级、响应优先级中断嵌套
TIM2_IT_Update
心跳包 3 U2:USART_IT_RXNETIM3_IT_Update
刷卡串口3---关联 00 1TIM4_IT_Update
GPRS串口2---关联 1TIM5_IT_Update
ESP32串口1---关联 1TIM6_IT_Update
继电器开门 00 1TIM7_IT_Update
蜂鸣器-网络重连-发送卡号 3 U2:USART_IT_RXNEU2:USART_IT_RXNE
GPRS-AT指令串口 1 U3:USART_IT_RXNE刷卡串口
00 1U1:USART_IT_RXN
ESP32-AT指令串口 1EXIT-line2
触摸按键00 2开门-临时密码询问关键点:
(1)若在某个中断服务程序中调用AT指令发送API,则要确保该中断优先级要低于U2及其关联定时器的中断优先级。(这里的优先级高低不是值的高低,是逻辑上优先级的高低)
(2)开门中断TIM6、刷卡响应U3的优先级要高,要高于U2。
(3)确保在网络重连等情况时,若有本地刷卡,先响应刷卡结果,开了门之后再返回网络重连任务。
刷卡时序:U3->U3对应定时器-》卡号比较-》任务1:开门TIM6-》任务2:发送刷卡记录-U2
与网络通讯,上发数据相关的任务可能会出现比较耗时的情况,不要在关键事务中断函数中指令,应另开个低优先级中断入口去执行该任务。
调用AT指令的任务有:
(1)解析完json执行网络重连
(2)刷卡行为后上发刷卡记录
(3)定时上发心跳包数据
(4)报警记录上传
(5)上传临时密码查询
转载于:https://www.cnblogs.com/fyp7077/p/8530131.html
