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

北京昊汉中电工控技术有限公司 2026/09/09 20:52:49

问题

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

建设厅网站绵阳网站建设

AI应用架构师指南:超级计算中科研AI智能体的内存优化策略![内存优化:超级计算AI的隐形基石]1. 引入与连接:当智能遇见极限“Error: Out Of

2026/06/30 14:03:38

营销网站建设渭南网站建设

还在为Python测试代码的复杂配置而烦恼吗?想要快速掌握业界最流行的测试框架吗?今天,我将带你用3小时彻底征服pytest——这个让Python测试变得轻松

2026/06/30 10:15:19

岳阳网站建设嘉兴网站建设

快速体验打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容:创建一个简单的React Todo应用,使用Lucide-Re

2026/06/30 13:16:35

顺德网站建设常德网站建设

payload-dumper-win64:Windows平台上提取Android固件的终极指南【免费下载链接】payload-dumper-win64下载仓库本仓库提供了一个名为

2026/06/30 12:14:30

广州企业网站建设网站建设中图片

TensorBoard可视化进阶技巧:提升模型调试效率在深度学习项目中,训练过程往往像一场“黑箱实验”——代码跑通了,但损失不降、准确率上不去、梯度消失……问

2026/06/30 11:52:58

建设银行网站吉安网站建设

超强实战教程:Step-Audio-TTS-3B语音合成模型快速部署指南 🚀【免费下载链接】Step-Audio-TTS-3B项目地址: https://ai.gitco

2026/06/30 14:02:08

建设公司网站网站建设和

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visu

2026/06/30 13:33:36

网站建设中图片淮北网站建设

作为一名长期使用Mac微信的重度用户,我发现原生微信在功能上存在诸多不便。经过亲测,WeChatExtension-ForMac这款微信插件彻底改变了我的使用体验。它不仅解

2026/06/30 10:37:52

旅游网站建设连云港网站建设

评测大模型不再难:EvalScope接入100+数据集自动化打分在大模型研发的日常中,你是否也经历过这样的场景?刚训练完一个Qwen变体,

2026/06/30 11:51:27