网关1代码流程

本文详细阐述了网关1的通信过程,包括串口3接收网关2数据,定时器中断逻辑,数据解析,查询命令执行,节点响应处理,以及最终通过485通信线将节点数据转发给网关2的完整流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       由代码可知,定时器2的中断时间为1s,定时器3的中断时间为0.1s,定时器4的中断时间为2s,中断优先级大小为:定时器2>定时器3>定时器4

1. 网关2先给网关1下发命令,网关1的串口3来接收网关2下发的数据。所以串口3首先发生中断void USART3_IRQHandler(),将串口3接收到的数据存到数组RS485_RX_BUF[RS485_RX_CNT],同时将这一帧数据打印出来,接收完一帧数据后,将check_over置1


2. 0.1s后定时器3发生中断,初始状态下状态机GW_ok_station为Free,定时器3中断10次后,耗时1s,此时定时器2也进来中断,由中断优先级可知,定时器3先暂停中断,让定时器2先发生中断,所以跳转到void TIM2_IRQHandler(void)

3. 由上可知,GW_ok_station仍为Free,check_over为1,所以进入 receiveuart2()函数,解析网关2发来的数据,初始状态下Resolve_Order为 Heade

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值