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

贵州坤冠酒业有限责任公司 2026/09/09 18:52:29

问题

选中代码,如果发送失败加延时会导致最外围的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] >
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

诸城网站建设衡阳网站建设

2026必备10个降AIGC工具,本科生必看!AI降重工具:论文写作的“隐形助手”随着人工智能技术的飞速发展,AIGC(AI生成内

2026/06/30 11:30:26

网站建设规划黄浦网站建设

解决Google SafetyNet认证失败:Universal SafetyNet Fix使用指南【免费下载链接】safetynet-fixGoogle SafetyNet attes

2026/06/30 11:30:26

专业网站建设泰州网站建设

模型微调是针对base模型的一种局部调整,让模型可以按照你想要的输出内容方式输出内容。从我们日常应用的角度来讲,模型微调其实主要起到两个用处(个人理解

2026/06/30 10:15:49

南京网站建设泰州网站建设

在 VMware 中使用 Linux 虚拟机操作系统的全面指南1. Linux 概述Linux 是 x86 架构上最受欢迎的类 Unix 操作系统。它最初是 Linus Torvalds 开发的小型内

2026/06/30 10:24:50

网站建设计划书网站建设工作

第一章:智谱Open-AutoGLM沉思windows调用在本地Windows系统中调用智谱AI推出的Open-AutoGLM模型,是实现轻量化大模型推理的重要路径。该模型

2026/06/30 13:35:06

潍坊网站建设塘沽网站建设

JetBrains Maple Mono编程字体:5分钟快速配置完全指南【免费下载链接】Fusion-JetBrainsMapleMonoJetBrains Maple Mono: Th

2026/06/30 10:38:21

布吉网站建设网站建设软件

《黄瓜大战甲虫游戏设计全解析》1. 游戏角色设计黄瓜人(Cucumber Man)角色创建:黄瓜人是游戏主角,由专业3D建模和动画软件Maya以及Photoshop创建。操作控制:玩家通过键盘和鼠标组

2026/06/30 11:15:54

行业网站建设吉林网站建设

StepVideo-T2V:300亿参数AI视频生成新体验【免费下载链接】stepvideo-t2v项目地址: https://ai.gitcode.com/StepFun/stepvi

2026/06/30 10:29:51

桂林网站建设甘肃网站建设

Nock自定义中间件深度解析:构建高级Mock测试架构【免费下载链接】nock项目地址: https://gitcode.com/gh_mirrors/noc/nock在复杂的微服务架构

2026/06/30 14:12:39