- 博客(14)
- 资源 (1)
- 收藏
- 关注
原创 reinterpret_cast与static_cast的用法与区别
static_cast用于进行编译时的类型转换,它提供了一些基本的类型转换,如整数之间、指针之间的转换,以及类层次结构中的上行和下行转换。在一些情况下,static_cast还能够进行自定义的类型转换,比如调用构造函数或转换操作符。reinterpret_cast用于在不同类型之间进行二进制数据的重新解释,而不进行类型检查。它主要用于一些底层的、与硬件相关的转换,比如指针类型之间的转换。,除非你非常清楚它的使用场景和潜在风险。当涉及到类型转换时,有几个 C++ 中的转换操作符可以使用,包括。
2024-03-25 10:38:32 326
原创 高速串口的数据接收(二)
1、数据接收与解析:创建一个单独的线程或者使用Qt的事件循环机制处理串口接收到的数据。在数据接收的回调函数中,解析每一帧数据,确保处理速度足够快以便实时处理数据。将串口通信和数据处理放在一个独立的线程中进行,使用信号与槽来与界面进行通信。2、实时输出每 帧数据:当解析到完整的一帧数据时,发送信号通知主线程或者相应的界面组件进行处理和显示,可以使用Qt的信号与槽机制来实现这一点。4、异常处理:考虑到串口通信可能出现异常(如通信中断、数据错误等),需要添加适当的异常处理机制,以确保系统的稳定性和可靠性。
2024-03-22 16:31:11 260 1
原创 QMetaObject::invokeMethod的用法
QMetaObject::invokeMethod”是Qt中的一个功能强大的函数,允许你以反射的方式在运作时调用对象的方法。这在需要跨线程执行方法或在不直接访问对象方法的情况下非常有用。它是基于Qt元对象系统的,可以用来调用任何被"Q_OBJECT"宏修饰的类的成员方法。这个调用会将“doWork”方法的执行安排到“worker”所在的线程的事件循环中。示例二:带参数的方法调用。
2023-12-27 17:11:11 2218 1
原创 高速串口的数据接收
上述processData函数可能会出现被调用传入数据时由于processData函数中的while还没执行完成导致数据未及时接收,即如果处理数据(比如校验和处理)的时间过长,可能会导致在处理期间到达的新数据没有被及时读取,从而可能导致数据缓冲区溢出或数据丢失。1、设用信号和槽-Qt框架的信号和槽机制是专门为了事件驱动的编程设计的,在“QSerialPort”中,有一个“readyRead()”信号,每当有新的数据可读时会发射这个信号,这比轮询方式更加高效,也更符合Qt的设计哲学。2、使用单独的处理线程。
2023-11-20 15:53:39 435 1
原创 异构计算架构的基本知识
了解异构计算架构一、并行计算通俗地讲就是将一个大的问题分解成多个小问题,然后在不同的计算资源上并行处理这些小问题。并行计算通常涉及到两个不同的计算技术领域:计算机架构和并行程序设计。1、计算机架构关注的是在结构级别上支持并行性,并行程序设计关注的是充分使用计算机架构的计算能力来并发地解决问题。对于计算机体系结构,大学里都会学到冯诺依曼体系结构。这里就主要介绍一下哈弗体系结构,它主要由3个部分组成:内存,中央处理器和输入输出接口。如下图所示:内存:指令内存和数据内存中央处理器:控制单元和算术逻
2020-12-10 11:15:06 4751 1
原创 CUDA编程时遇到无法解析外部符号threadIdx或blockIdx问题的解决办法
在CUDA编程时遇到出现无法解析外部符号threadIdx或blockIdx或gridIdx问题的解决办法在CUDA编程之前要确保工程项目的配置属性一致性如图一所示。然后点击项目—>属性确保配置属性无误。VC++ 目录可执行文件目录:…\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin包含目录:…\NVIDIA GPU Computing To...
2019-12-22 20:51:54 3667 11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人