网站建设制作网站建设知识

杭州多诚消防技术有限公司 2026/09/09 18:39:38

问题

选中代码,如果发送失败加延时会导致最外围的while(1)时序变化,外围的while是每100ms循环一次的,有什么好的解决办法

AI回答

你的担忧很合理:在 for 循环里加 osDelay(100) 进行重试,如果 send 失败,实际会导致整个 while(1) 的周期变长(比如本来 100ms,失败重试后可能变成 200ms+),影响主循环的时序和实时性。

解决思路如下:

异步重试/任务分离
不要在主循环里阻塞等待重试。可以把“待重试的数据包”放到一个专门的重试队列或标志里,主循环每次轮询时都检查并优先处理重试队列。这样主循环不会被单次 send 失败拖慢。

定时器/延迟标志
记录需要重试的数据包和下次重试的时间戳,每次 while(1) 时判断是否到达重试时间,到达则重试,否则跳过。这样不会阻塞主循环。

单独线程/任务
如果系统支持,可以把发送和重试逻辑放到单独的线程或任务里,主循环只负责分发数据,发送线程负责重试和延时。

非阻塞重试(推荐)
只做一次 send,失败后记录重试标志和时间,下次 while(1) 到时再尝试重发,不用 osDelay 阻塞。这样主循环时序不会受影响。

相关代码

// 多包独立非阻塞重试机制 static uint32_t retry_tick[20] = {0}; if(msg.vehicle_debug_period == 0) { uint32_t now_tick = osKernelGetTickCount(); // 先处理所有到达重试时间的包 for(int i=0; i<20; i++) { if(vds_ptr->data_len[i] >
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

网站建设总结吉林省建设厅网站

第一章:GraphQL 的 PHP 接口文档GraphQL 是一种用于 API 的查询语言,允许客户端精确请求所需数据。在 PHP 环境中,通过使用如 Web

2026/06/30 10:46:22

乐清网站建设徐州网站建设

BDSup2Sub完整指南:轻松掌握蓝光字幕转换的终极教程【免费下载链接】BDSup2SubBlu-Ray/DVD subtitle editor项目地址: https://gitcod

2026/06/30 12:17:31

网站建设服务晋江网站建设

Canvas动画库:告别代码,在Xcode中轻松实现精美动画【免费下载链接】CanvasAnimate in Xcode without code项目地址: https:/

2026/06/30 10:19:20

手机网站建设网站正在建设中

Kafka-King:5大核心功能让Kafka管理从未如此简单【免费下载链接】Kafka-KingA modern and practical kafka GUI client项目地址:

2026/06/30 12:19:30

广州网站建设睢宁网站建设

终极完整版FF14 XIVLauncher快速启动器使用宝典【免费下载链接】FFXIVQuickLauncherCustom launcher for FFXIV项目地址: https://gitco

2026/06/30 11:38:56

电器网站建设深圳 网站建设

快速体验打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容:创建一个基于NGINX的视频流媒体服务器配置,支持RTMP和H

2026/06/30 12:46:33

中国建设银行网站asp网站建设

AWS Amplify应用性能监控终极指南:从零搭建分布式追踪系统【免费下载链接】amplify-jsA declarative JavaScript library for appli

2026/06/30 10:57:52

网站建设报价网站建设模板

时序数据库新选择:InfluxDB 3.0零基础入门实战指南【免费下载链接】influxdbScalable datastore for metrics, events, and rea

2026/06/30 13:45:07

昆明网站建设北京高端网站建设

LeagueAkari乱斗模式智能抢英雄:告别随机分配的终极解决方案【免费下载链接】LeagueAkari✨兴趣使然的,功能全面的英雄联盟工具集。支持战绩查询、自动秒选等功

2026/06/30 11:58:28

龙岗网站建设深圳网站建设论坛

PyTorch-CUDA-v2.9镜像支持PyTorch Lightning吗?在深度学习工程实践中,一个常见而关键的问题是:我能不能在一个预装了 PyTor

2026/06/30 12:01:29