自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 DMA传输

DMA(Direct Memory Access,直接内存访问)是计算机系统中一种高效的数据传输方式。它允许外设(如硬盘、网络设备、FPGA等)直接与内存交换数据,而无需通过CPU的干预,从而极大提高了数据传输的效率,减少了CPU的负担。

2025-02-13 15:27:47 315

原创 各种“字”的解释——全面了解MIL-STD-1553协议核心字段

在 MIL-STD-1553 协议 中,命令字、控制字、状态字、矢量字、自检字是通信过程中的重要组成部分。它们承担着不同的职责,共同构成了数据传输、状态反馈和控制机制的核心。本文将详细介绍这些“字”的定义、作用和应用场景。

2025-01-27 16:49:57 2312

原创 QT C++ 虚函数的使用案例:创造发布-订阅模式来实现类与类之间通讯

发布-订阅模式(Publish-Subscribe Pattern)是一种用于实现模块解耦通信的常见设计模式。本文以一个轻量级的消息总线(MessageBus)为例,详细阐述了基于 Qt 框架的消息系统设计与实现。消息总线作为中介,管理消息发布者与接收者的通信。接收者通过注册特定消息类型订阅消息,而发布者通过总线发送消息,实现了多对多的解耦通信。系统设计采用单例模式保证全局唯一的消息总线实例,并通过虚函数提供多态机制,让不同接收者根据需求自定义消息处理逻辑。消息总线支持线程间通信,确保跨线程安全。本文还

2025-01-24 10:54:12 1801

原创 QT C++ 中的虚函数作用介绍

看此文章可以了解到,虚函数的存在意义,以及作用

2025-01-23 17:02:37 843

原创 一个环形缓冲区的使用

为了应对这些问题,我实现了一个简单而高效的环形缓冲区,通过合理地控制读写指针,有效地解决了数据流存储和读取的需求,同时避免了内存浪费和性能问题。接下来,我将结合代码示例,详细介绍环形缓冲区的原理与实现。是一种非常高效的数据结构。它以其循环存储的特性,解决了传统线性队列在固定空间内的浪费问题。在软件开发中,尤其是在嵌入式系统、实时数据处理以及通信协议的实现中,环形缓冲区是一个逻辑上首尾相连的数据存储结构,其核心在于通过。的管理,实现高效的数据读写操作。下面我们具体说明两者的作用。假设缓冲区的总大小为。

2025-01-22 15:12:45 1857

原创 高效数据转换:从 8 位到 32 位的优化实践

在嵌入式系统、通信协议或其他涉及字节序列处理的场景中,我们经常需要将 8 位数据()转换为 32 位数据(这项操作不仅需要高效地完成字节拼接,还要妥善处理不足 4 字节的情况。本文以一个具体函数为例,详细介绍如何实现高效的数据转换,并总结设计的关键点和优化方法。在数据转换场景中,高效、稳定的算法是必不可少的。本次实现的函数不仅满足了实际需求,还具有良好的通用性和可维护性。希望这篇文章能为有类似需求的开发者提供参考。如果你在数据转换过程中有其他问题,欢迎在评论区讨论!

2025-01-22 11:22:22 650

原创 关于QByteArray 取数据效率低下的问题解决

在实际开发中,我们经常需要处理数据包并提取其中的部分内容进行操作。最开始,我使用了QByteArray来存储整个数据包并通过一个临时变量来提取指定大小的数据。将所有数据存储在中。每次提取N字节的数据到中。提取后从data中移除已提取的部分。然而,在实际测试中,我发现每次提取操作耗时竟然达到了50 毫秒!显然,这样的性能无法满足需求。使用QByteArray操作数据时,对于小数据量或偶尔操作是可行的,但对于高频次、大数据量的操作,其性能瓶颈不可忽视。

2025-01-22 10:22:53 491

原创 QT 使用Win原始UDP

在使用QT 封装好的UDP时候,总感觉不好用,今天我封装了一个win UDP。

2024-10-24 15:22:47 344

原创 QT UDP 收数据引发的问题

经过调试和日志分析,我发现在操作UI时,UDP的接收出现问题。可能的原因是由于UDP通信和UI操作都在主线程中执行,导致UI操作阻塞了UDP数据的接收,尤其是在发送完成后的短暂等待时间内更容易发生这种情况。为了解决这个问题,我将UDP的发送和接收操作放到了单独的线程中。在该项目中,上位机需要向下位机发送一个32K大小的数据包,数据包发送后,下位机会在接收到数据后向上位机回复一个标识符。上位机在发送完32K的数据包后,等待5毫秒,如果没有接收到下位机的回复,则判定为超时。

2024-10-24 14:58:14 391

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除