自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(116)
  • 资源 (10)
  • 收藏
  • 关注

原创 Modbus串口通信

ASCII:将数据转换成1 6进制ASCII码再发送。Modbus是通信协议 RS485电气接口规范。Modbus软件 RS485硬件。比如高速公路与汽车的关系,TCP/IP与网线的关系。RTU:直接发送原始报文当然也是进制。Modbus-与RS485有何区别?Modbus ASCII与RTU?发送报文的方式不一样。

2024-03-21 19:22:12 205

原创 详解 QT 多线程 TCP 文件接收实例

以上是一个简单的示例,实现了 TCP 数据接收、发送和处理的三个进程,以及一个哨兵线程用于监控各个进程是否出现堵塞。你需要根据实际情况对代码进行适当修改和完善。要求:在QT程序中写一个多线程的软件,使用共享内存实现TCP数据接收,发送与处理,三个不同进程间的相互通信,并使用哨兵线程监控各个进程是否出现堵塞。Qt学习之路-进程间通信共享内存:https://blog.51cto.com/u_15329836/5091882。

2024-03-06 10:27:12 562

原创 Linux内核编译的不同类型错误

error: dereferencing pointer to incomplete type ‘struct observer_ops_node’ node1 = kmalloc(sizeof(*node1), GFP_KERNEL);

2024-02-29 13:36:47 109

原创 Linux嵌入式开发+驱动开发-中断

在自己设计的芯片“CPU响应中断”程序的第四个步骤可以转向“中断向量控制器”,中断向量控制器中存储中断元服务地址即处理中断处理程序的地址,而不用使用0X18地址的 IRQ入口。

2024-02-05 13:51:45 2166

原创 驱动内核开发报错记录

首先make后加载内核:insmod traffic_light.ko;添加设备:sudo mknod /dev/traffic_light c 240 0。解决办法:把设备节点权限改成777。

2024-01-24 11:27:49 379

原创 QT报错记录

解决:使用release版本编译,因为release编译版本默认禁用QML调试器。

2024-01-10 19:11:43 506

原创 日常开发记录

x86与arm架构区别:x84复杂指令集;

2024-01-05 15:55:46 393

原创 嵌入式开发学习之旅

百度百科的词条中,这样解释Bootloader:“Bootloader是嵌入式系统在加电后执行的第一段代码,在它完成CPU和相关硬件的初始化之后,再将操作系统映像或固化的嵌入式应用程序装载到内存中然后跳转到操作系统所在的空间,启动操作系统运行”。字符设备是能够像字节流(比如文件)一样访问的设备,由字符设备驱动从程序来实现这种特性,通过/dev下的字符设备文件来访问。块设备也是通过/dev目录下的文件系统节点来访问,块设备和字符设备区别仅仅在于内核内部管理数据的方式,也就是内核和驱动程序的接口不同。

2023-12-27 09:52:00 352

原创 报错解决记录

模块"TeeChart5.ocx"已加载,但对DllRegisterServer的调用失败,错。误代码为0x80004005.有关此问题的详细信息,请将该错误代码用作搜索字词进行在线搜索。解决:在winodwsxp系统下重新复制代码,运行软件。环境:VS2017 + TeeChart5。

2023-12-27 09:51:53 403

原创 实用学习网站和资料

github:https://github.com/GitHubDaily/GitHubDaily

2023-12-26 15:30:09 76

原创 MFC结合Access写一个登入注册功能

首先布局好界面:

2023-12-25 11:29:44 48

原创 VS2005环境下编译C++报错

WinGenerateKey.obj : error LNK2011: 未链接预编译对象;:连接器->输入,添加:..\WinGenerateKey\Debug\stdafx.obj。

2023-12-25 09:08:39 195

原创 MFC查找错误的方法

在visual studio2005上Debug总是会出现各种问题,比如指针错误,乱码等,无法正确查看变量的值,这时候可以使用AfxMessageBox()方法对数据进行弹窗输出,但AfxMessageBox()函数只支持CString数据输出,我们就需要将int,string等类型的数据转为CString类型。在MFC(Microsoft Foundation Classes)中,AfxMessageBox函数用于显示一个消息框。如果想在消息框中输出int型数据,可以使用CString来转换,然后显示。

2023-12-21 13:16:02 495

原创 LinuxCNC的使用

这时候系统桌面就多了两个文件,点击运行软件。点击“开始”,选择“创建新的配置”查看并口使用命令:lscpi -v。关键是需要设置并口地址。最后点击“完成”即可。设置好机床名称和单位。

2023-12-18 15:59:13 483

原创 LinuxCNC系统安装

如果需要下载其他比较全版本,可以点击“其他下载链接”,选择DVD的安装,因为是国外的网站,最好不要选择网络安装。首先我们需要准备一个U盘来安装系统,然后进入。下载后,我们需要一个U盘制作工具,可以选择。操作系统处,点击“下载Debian”。选择最后这个版本进行下载。

2023-12-16 13:21:59 471

原创 基地址与偏移地址

转为二进制基地址为 0001 0100 0000,偏移地址为:0101 0000(int转二进制)可以知道基地址为 140,偏移地址为:80。就是将btVal值写入0x190地址端口。

2023-12-13 14:42:58 105

原创 C++函数指针

然后在area.c文件中需要进行变量初始化操作(将pDataManage 设置为NULL),并且对进行SetDataManage进行函数实现,设置要函数指针的具体值。然后可以在其他任意地方如(InitAxis.c)对函数进行调用(需要引入对应的头文件),并将AxisDataManage函数地址作为入参。首先area.h文件中进行定义。我们来分析一个函数指针的案例。

2023-12-13 10:30:48 38

原创 使用Sourcetrail解析C项目

它就是 Sourcetrail,一个免费开源、跨平台的可视化源码探索项目。阅读源码的工具很多,今天给大家推荐一款别具一格的源码阅读神器。

2023-12-11 14:12:15 260

原创 Ubuntu环境下使用GDB调试C语言项目

补充其他包:sudo apt-get install build-essential kernel-package libncurses5-dev libssl-dev。安装libncurses5-dev命令:apt-get install libncurses5-dev。报错:make: *** 没有规则可制作目标“menuconfig”。在内核配置中,确保启用了调试信息。记下内核版本号,例如 4.15.0-213-generic。首先,查看当前系统安装的内核版本。

2023-12-08 12:41:58 391

原创 MakeFile文件分析

总体来说,该 Makefile 用于构建一个名为 short 的内核模块。构建时,可以根据 DEBUG 变量的设置选择是否包含调试信息。这部分是一个条件判断,检查是否是从内核构建系统调用的。如果是,设置内核模块的对象文件和目标文件;否则,设置构建内核模块的目标。包含 .depend 文件,这是通过 depend 规则生成的文件,用于管理源文件之间的依赖关系。,可以选择启用或禁用调试。生成依赖关系文件,以确保源文件的修改会触发重新编译。中的调试选项和一个包含额外头文件路径的选项。是用于设置调试选项的变量。

2023-12-08 11:09:56 53

原创 Axure动态面板控制

点击“交互”->鼠标点击->进入交互编辑器,选择对应的动态面板和state就可以了。然后分别在state1,state2,state3编辑导航对应的内容。然后双击动态面板添加状态state1,state2,state3。接下来就是添加交互事件,将不同导航对应不同的state.首先创建一个项目,拖拽几个矩形喝一个动态面板。

2023-12-07 14:31:10 277

原创 QT5.4.1无法打开文件

问题描述:起初是在QT代码中运行打开文件代码: QString gFilename = QFileDialog::getOpenFileName(this,"open File",path,"*", nullptr,QFileDialog::DontUseNativeDialog);接下来安装charts组件,在Qt安装包下执行 ./MaintenanceTool 命令,更新组件还是报错:要继续此操作,至少需要一个有效且已启用的储存库。方式:设置好存储库。

2023-12-06 14:45:35 372

原创 嵌入式数据库Sqlite

本文主要是介绍如何再Ubuntu下使用sqlite数据库,并且嵌入式QT环境下使用C++语言来构建一个sqlite数据库,使用sqlite browser进行数据库的可视化。下面的 C 代码段显示了如何连接到一个现有的数据库。如果数据库不存在,那么它就会被创建,最后将返回一个数据库对象。在ubuntu系统中的安装需要先下载一个安装包,2、安装Sqlite可视化软件。4、在C++中使用sqlite。1、安装sqlite。

2023-11-15 08:41:34 514

原创 微机原理与接口技术

■8088是工作在最小还是最大模式由MN/MX引线的状态决定。■最大模式为多处理器模式,部分控制信号由外部总线控制器。■最小模式为单处理器模式,所有控制信号由微处理器产生。—— 工作于最大模式(当引线上是低电平时)■用于包含协处理器的情况下。8088/8086 CPU的两种工作模式。——工作于最小模式(当引线上是高电平时)完成一次访问内存或接口所需要的主要信号。8088最小模式下的主要引脚信号。8088的主要引线及内部结构。最小模式下的总线连接示意图。最大模式下的总线连接示意图。两种工作模式的选择方式。

2023-09-27 16:40:11 128

原创 操作系统的运行机制是怎样的?

原语是在内核中运行的,假设由一个进程调度的模块,该模块可能需要执行很多的步骤(保存原来的进程镜像、进行进程切换、切换到另外一个进程...)来完成一个进程的调度,每个步骤都会涉及到大量的指令操作,计算机在运行的时候都是在执行指令,这时候我们会发现,完成某些动作的过程,并且这些指令与指令的执行过程都是差不多的,甚至是一致的,这时我们就想着将这些指令进行一个封装与合并,打包成一个程序段,就叫做一个原语。一个程序正直执行,当执行到指令3需要“调用系统服务:读文件”,这时候CPU就会中断,然后产生一个陷入指令。

2023-09-26 10:29:04 184

原创 微机原理与接口技术

总线上能同时传送二进制信息的位数称为总线宽度。若20根,则寻址220 =1024KB=1MB (210 =1024B=1KB)◆数据总线: 双向总线,在CPU、存储器和I/0接口之间传送数据。◆控制总线: 双向总线,用来传送控制信号,时钟信号和状态信息等。地址总线:单向总线,用来传送CPU发出的地址信息,以确。◆微型计算机中,CPU重复操作是:取指、译码和执行。总线按传送信息分类:地址总线、数据总线和控制总线。定存储器中信息存放的地址或I/0接口地址。读取第1条指令的工作过程示意图。

2023-09-26 07:56:58 120

原创 Linux系统-fork函数

总之,fork 函数是Linux系统中用于创建新进程的重要系统调用,它允许程序创建并发执行的多个任务,是多进程编程的基础之一。通过 fork,一个进程可以创建出与自己几乎完全相同的子进程,然后在不同的进程中执行不同的代码。它的作用是创建当前进程的一个副本,也就是一个全新的子进程,该子进程几乎与父进程完全相同。函数不接受任何参数,它返回两次,一次在父进程中返回子进程的PID(子进程的ID),一次在子进程中返回0。在这个示例中,父进程创建了一个子进程,父子进程分别打印不同的消息。

2023-09-14 10:10:06 147

原创 Linux内核及可加载内核模块编程

如图为Linux系统中,各个子系统相关的工具集,在这里可以通过strace命令查看个应用程序所调用的系统调用,strace被称为神器,它是Linux环境下的一款程序调试工具,它可以统计每一个系统调用所执行的时间、被调用的次数和出错的次数,例如“strace -c 可执行文件名”,它把执行的时间以微妙为单位的每个系统调用平均耗时、调用次数、错误次数以及系统调用名称显示在表格中。系统调用要涉及到CPU状态的转换,首先从用户态陷入到内核态,在内核执行系统调用服务例程,处理结束后,返回用户态;

2023-09-13 18:04:25 192

原创 Linux内核驱动遇到的问题

总之,用户空间和内核空间是操作系统设计中的两个关键概念,它们分别承担了不同的角色和职责,以确保系统的安全性、稳定性和性能。这种分离使得操作系统可以提供一种受控的环境,允许用户应用程序在受限的条件下运行,并且通过系统调用与操作系统进行通信,以实现各种操作。当用户空间的应用程序需要操作系统的服务或访问硬件资源时,它会发起适当的系统调用,将控制权传递给内核空间的相关代码执行所需的操作。其中行号为任一正整数,可选的文件名为任意有效文件标识符,行号为源程序中当前行号,文件名为源文件的名字。否则使用语句段2参与编译。

2023-09-13 10:01:46 71

原创 嵌入式Linux系统-GCC编译过程

在预处理阶段,输入的是C语言的源文件,通常为*.c。在连接阶段将输入的机器代码文件*.s汇集成--个可执行的二进制代码文件。在编译阶段输入的是中间文件*. i,编译后生成汇编语言文件*. s。在编译过程中,GCC 首先检查代码是否符合规范、是否有语法错误等,在检查无误后,把代码翻译成汇编语言。编译、江编是三个不同的阶段,但GCC的实际操作,上,它可以把这三个步骤合并为一个步骤来执行。在汇编阶段将输入的汇编文件*. s转换成机器语言*.o。制的机器代码,即生成后缀为.o的目标文件。GCC程序的编译过程。

2023-09-06 09:22:38 92

原创 Linux设备驱动程序

可在运行时添加到内核中的代码被称为“模块”。可执行程序),我们可以使用insmod程序将模块连接到正在运行的内核,也可以使用。图1-1标识了负责特定任务的几个不同的模块类。我们根据模块提供的功能将其划分为。图1-1中的模块涵盖了几个最重要的模块类,但远远不是完全的模块类,因。类),包括但不限于设备驱动程序。每个模块由目标代码组成(没有连接成一个完整的。并运行时,我们可以向内核添加功能( 当然也可以移除功能)。为在Linux中越来越多的功能正在被模块化。Linux有一个很好的特性:内核提供的特性。

2023-09-05 13:09:23 216

原创 Ubuntu下的QT开发

若要在ubuntu下启动QT有两种方案,一种是在菜单栏搜索qt双QT Create;另一种则是使用命令:/opt/Qt5.12.9/Tools/QtCreator/bin/qtcreator.sh。

2023-08-29 19:37:11 878

原创 装备一台ubuntu

问题:linux在执行ifconfig时出现 Command ‘ifconfig‘ not found ,but can be installed with: 这种情况解决方案(1、安装好linux后想查一下ip地址,一查出现了这种情况。2、执行了这个命令,出现这样的错误。

2023-08-29 16:01:19 831

原创 C++MFC 串口通信 上位机

RS485的通信方式是半双工的,只能由作为主节点的工控PC机依次轮询网络.上的各智能控制单元子节点。在Win32下,可以使用两种编程方式实现串口通信,其一是使用ActiveX控件,这种方法程序单,但欠灵活。这时就封装好了一个串口类,一旦串口开始工作的时候,需要一个线程,用这个线程来进行收发数据;线程运行时通过ReadFile()函数从串口中读出数据,如果有数据需要将数据放到接受框中显示出来。下面创建一个线程,一个串口对应一个线程对象,创建C++类,类名为:CThread。点击“项目”->“添加类”

2023-08-16 23:32:27 1959 4

原创 MFC编程基础

●微软基础类库( Microsoft Foundation Classes, MFC )是Microsoft公司提供的关于Win32 API的C++类库集,它定义了一个标准的应用程序框架。●MFC应用结构类对大多数应用提供了通用功能,用于构造一个应用的框架,用户可以在框架中添加应用特定的功能。(1)文件I/O类 (2) DAO类 (3) ODBC类。(1) CWnd类 (2)框架窗口类 (3)对话框类。

2023-08-15 09:31:17 368

原创 windows程序基础

●对于CALLBACK,表示函数调用方式,_stdcall 与_ cdecl是两种不同的函数调用约定,区别在函数参数入栈的顺序,由调用函数还是被调用函数将参数弹出栈,以及产生函数修饰名的方法。当用户按下一个键、移动鼠标或单击鼠标按钮时,计算机通知Windows系统已经发生了一一个事件,以及事件的种类、发生的时间、发生的位置(如坐标值)。●当Windows捕获一 条事件后 ,它会编写一条消息,将相关信息放入一个数据结构MSG中,然后将包含此数据结构的消息发给需要消息的程序。(1)输入消息:键盘和鼠标的输入。

2023-08-14 08:26:24 472

原创 5 STL-常用算法

/遍历算法遍历容器元素。● 是所有STL头文件中最大的一 个,范围涉及到比较、 交换、查找、遍历操作、 复制、修改等等。●算法主要是由头文件 I | 组成。●transform //搬运容器到另一个容器中。总结: for_ each在实际开发中是最常用遍历算法,需要熟练掌握。●for_ each //遍历容器。// _func函数或者函数对象。// beg开始迭代器。●掌握常用的遍历算法。

2023-08-07 11:33:54 115

原创 数控机床编程与操作

半闭环控制数控机床:驱动电动机采用伺服电动机,角位移检测装置和反馈回路,检测装置与丝杠或电动机主轴同轴安装。发展趋势:柔性生产线(FML)、柔性制造单元(FMC)、柔性制造系统(FMS)|特种加工类:数控电火花线切割机床、数控激光加工机床、数控高压水射流切割机床。优点:提高生产效率、降低运行成本、减少占地面积、节约能源、绿色环保。车铣复合加工机床、车磨复合加工机床、铣磨复合加工机床。(1)控制刀具相对于工件从一点到另一点的精确定位运动。常见点位直线控制机床:数控冲床、数控钻床、数控点焊机。

2023-07-18 11:38:09 2091

原创 EA代码逆向工程

在项目创建成功后开始创建 Model 用于工作视图,点击最上方区域右下角栅格式的图标 -> 点击 Add Model->在编辑区选择 UML 并选择相应模型(这演示我选择的是l类图 Class Diagram -> Starter Class Diagram) -> 点击 Create Selected Pattern(s)导入C++项目:搜索栏里输入code,找到files->import soource directory。打开EA,点击左上角的图标新建项目。点击ok后,选择“是”

2023-06-25 14:32:11 1058

原创 STL初识

了解STL中容器、算法、迭代器概念之后,我们利用代码感受STL的魅力STL中最常用的容器为Vector,可以理解为数组,下面我们将学习如何向这个容器中插入数据、 并遍历这个容器。有限的步骤,解决逻辑或数学上的问题,这- -门学科我们叫做算法(Algorithms)非质变算法:是指运算过程中不会更改区间内的元素内容,例如查找、计数、遍历、寻找极值等等。例如拷贝,替换,删除等等。常用的数据结构:数组,链表,树,栈,队列,集合,映射表等。常用的容器中迭代器种类为双向迭代器,和随机访问迭代器。

2023-06-21 13:34:35 308

python3.7报错:typing-extensions.py文件按丢失

python3.7中报错:No module named ‘typing_extensions‘ 丢失文件资源

2023-04-24

Hadoop网盘系统+springboot

Hadoop网盘系统通过互联网为企业和个人提供信息的储存、读取、下载、删除等服务,具有安全稳定、海量存储的特点。根据用户群定位,

2022-06-20

core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml

自定义配置文件: core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml四个配置文件存放在$HADOOP_HOME/etc/hadoop这个路径上,用户可以根据项目需求重新进行修改配置。

2022-03-29

KNN算法实战.zip

KNN算法实战.zip

2022-01-16

KNN算法实战.zip

KNN算法实战.zip

2022-01-16

手机和电脑扬声器麦克风联用.zip

手机充当电脑的麦克风和扬声器

2021-04-26

SpringMVC-02.doc

此文档从springmvc的ModelAndView开始讲解,包含SpringMVC数据交互、控制器注解介绍,RestFul风格案例、SpringMVC实现文件上传、拦截器和综合案例

2021-03-01

Spring框架所有jar包

当你在学习spring框架时,遇到零零散散的jar包时,资源拿去吧!资源里包含了SpringMVC+Spring+Mybatis三层框架运用到的各种jar包,你可根据需求选用。

2020-09-25

DisignPattern.zip

23中设计模式案例分析、StartUML安装包,UML中的类与类图之间关系、开闭原则、单例模式、原型模式、抽象工厂、适配器模式、观察者模式等等...

2020-06-10

Spring+SpringMVC+Mybatis.zip

用jsp页面编写的Spring+SpringMVC+Mybatis的所有需要用到的jar包,以及jstl等web端所需资源。

2020-03-31

第3章 使用CSS技术美化网页_基础案例-题目及答案.doc

本章适用于初次接触前端的学者,主要对CSS基础案例进行讲解,对CSS的各种选择器进行实例操作,常见的CSS属性也有集体表现,对初学者是个很好的编码教程。

2020-03-09

空空如也

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

TA关注的人

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