自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yuchunhai321的博客

菜鸟の记录

  • 博客(198)
  • 资源 (11)
  • 收藏
  • 关注

原创 libmodbus 函数对应

modbus_write_bit(); //Fucntion选择为 01 write Coil Status(0x)modbus_write_bits(); //Fucntion选择为 01 write Coils Status(0x)modbus_read_bits(); //Fucntion选择为 01 Read Coil Status(0x)modbus_read_input_bits(); //F.

2022-05-20 15:46:00 102

原创 windows Git 安装后提示错误解决办法

Windows系统安装Git-64-bit后Git Bash不能使用,弹出下面的界面。解决办法: 卸载Git-64-bit版本,安装Git-32-bit版本。若还是不可以,那就只能再百度找找办法了。

2022-04-20 17:25:32 349

原创 c++ operator的应用

operator应用分两种:1.重载运算符;2.实现对象类型转换(网上找的,没懂什么意思)代码:#include <iostream>using namespace std;//重载运算符class Student {private: string m_name; //姓名 int m_age; //年纪 int m_mathScores; //数学成绩 int m_chineseScores; //中文成绩 int m_english

2022-04-20 14:46:09 748

原创 QT 命令行模式编译项目 与 注意事项

Windows操作系统:1.打开QT自带的cmd界面 2. cd 要编译的项目目录3.若存在.pro文件则跳过这一步,不存在则需执行qmake -project4.qmake (提示错误,可能需要再pro文件中添加类似 Qt += core )5.mingw32-make (其他编译器未尝试)6.cd release/7.windeployqt exe文件8.点击exe文件运行Ubuntu操作系统1. 打开终端2. cd 要编译的项目目录...

2022-04-11 10:29:43 554

原创 aclocal-1.16: command not found

libmodbus/build-aux/missing: line 81: aclocal-1.16: command not foundWARNING: 'aclocal-1.16' is missing on your system. You should only need it if you modified 'acinclude.m4' or 'configure.ac' or m4 files included by 'configure.ac'. ...

2022-02-15 10:16:43 2562

原创 Ubuntu C++ Modbus Tcp 伪代码

数据解析可以参考:Ubuntu C++ Modbus Rtu 伪代码_yuchunhai321的博客-CSDN博客modbus 网络通信(伪代码):void init(std::string ip, uint16_t port){ modbus_t *m_sensor_ctx = modbus_new_tcp(ip.c_str(), port); if(m_sensor_ctx == NULL) { printf("sensor modbus connet ip: %s faild",

2021-12-13 16:43:05 2455

原创 Ubuntu C++ Modbus Rtu 伪代码

根据自己实际情况进行修改modbus 串口通信(伪代码)://查表方式实现modbus crcstatic const uint8_t aucCRCHi[] = {0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,0x00, 0xC1, 0x81, 0x40.

2021-12-13 13:36:27 654

原创 C++ 十六进制获取其中的某一位

uint8_t da = 0xf6; for(int i=0;i<8;i++) { printf("%d = %d\n", i, (da>>i) % 2); }效果图:

2021-11-23 09:19:26 669

原创 C++ Modbus RTU 串口通信

Read Write Write Multiple Coil 01 05 15 Registers 03 06 16 串口通信时,写入数据后,modbus会回复数据。所以串口通信时不管读写都要先写入数据,才能读到数据。(好像是这个原理)字符串组成:...

2021-11-22 15:37:16 1557

原创 C++ 十六进制与十进制之间转换

#include <iostream>using namespace std;typedef unsigned short WORD;//十六进制转十进制WORD HEX2DEC(WORD v){ return (v/1000)*0x1000 + ((v%1000)/100)*0x100 + ((v%100)/10)*0x10 + (v%10);}//十进制转十六进制WORD DEC2HEX(WORD v){ WORD val=0; .

2021-11-16 15:59:09 981

原创 树莓派 读取按钮操作

#include <iostream>#include <wiringPi.h>using namespace std;#define BUTTON 6int main(){ cout << "Hello World!" << endl; wiringPiSetup(); pinMode(BUTTON, INPUT);// 设置按钮引脚为输入 pullUpDnControl(BUTTON, PUD_UP); .

2021-10-27 16:48:05 153

原创 ubuntu GPIO口操作

h文件/* NVIDIA Jetson Xavier NX 控制GPIO 在linux系统中以文件io的方式控制GPIO示例,开发板为NVIDIA Jetson Xavier NX,其它公司的开发板也可使用。 此代码功能:GPIO-09接入蜂鸣器,高电平开启,低电平关闭。*/#ifndef NVIDIAGPIO_H#define NVIDIAGPIO_H#include <cstdlib>#include <cstdio>#include.

2021-10-27 16:45:28 847

原创 ubuntu utf8与gbk之间转换

#include <iconv.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>int u2g(char *inbuf,int inlen,char *outbuf.

2021-10-27 16:39:14 172

转载 十大经典排序算法

稳定排序:冒泡排序、插入排序、归并排序非稳定排序:选择排序、希尔排序、堆排序、快速排序1、冒泡排序冒泡排序就是把小的元素往前调或者把大的元素往后调,比较是相邻的两个元素比较,交换也发生在这两个元素之间。(类似于气泡上浮过程)动图如下:步骤:1、比较相邻的元素,如果第一个比第二个大,则交换2、对每对相邻元素重复步骤1操作,筛选出最大元素3、针对所有元素重复步骤1、2(除最后一个元素,已经是最大)示例代码:void bubbleSort(std::vector<i

2021-10-25 11:28:58 119

原创 VS MFC MySQL创建,增改删查

MySQL函数说明:25.2.2. C API函数概述_MySQL 中文文档 window cmd 创建数据库指令:登录:mysql -u root -p 密码创建数据库: create database test;查看创建的数据库:show databases;使用创建的数据库:use test;查看当前使用的数据库:select database();创建数据表:create table students( id int(4) primary ...

2021-10-18 14:08:20 316

转载 Qt-滚动字幕之无间隙滚动

最近要实现一个滚动条字幕,但是搜到的系列文章都是利用定时器QTimer,在固定的时间截取文本并显示,这样滚动的时候其实是断断续续的,因为实际上是一个个字符位移实现的,不过实现方便.所以只有自己实现无间隙滚动条字幕.代码:textscroll.h#ifndef TEXTSCROLL_H#define TEXTSCROLL_H#include <QObject>#include <QWidget>#include <QTimer>#incl..

2021-10-13 20:08:36 110

原创 Qt QChart 动态曲线(二)

鼠标悬停时显示坐标点:代码如下:(重写QChartView类)pro文件:QT += charts重写QChartView_t.h文件#ifndef QCHARTVIEW_T_H#define QCHARTVIEW_T_H#include <QObject>#include <QChartView>#include <QMouseEvent>#include <QtCharts/QChartView>QT_CH

2021-10-09 15:44:30 476 1

原创 Qt QCharts 动态曲线(一)

左侧开始画曲线:示意图:代码:pro文件: QT += chartsh文件:#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include <QChart>#include <QChartView>#include <QSplineSeries>#include <QDateTimeAxis>#include <QValueAxis&gt

2021-10-09 14:01:24 253

原创 Qt 生成pdf文件

运行效果:代码:#include <QPdfWriter>#include <QPainter>#include <QDesktopServices>void Widget::on_pushButton_5_clicked(){ //创建PDF文件 QString file_path = QApplication::applicationDirPath() + "/text.pdf"; QFile pdfFile(f.

2021-09-30 15:01:02 2461 1

原创 QT 数据库QSQLITE使用

1. window安装可视化软件SQLite Expert Professional 5 - 64bit2. 程序pro文件中添加 QT += sqlwidget.h#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include <QtSql/QSqlDatabase>#include <QtSql/QSqlError>#include <QtSql/QtSql>

2021-09-30 11:27:59 188

原创 QT中QSS的使用记录

1.创建资源文件qrc添加qss文件。(下面为我写的资源文件)/* 控件名#别名 */QToolButton#q_nameListToolButton{ border-radius: 1px; image:url(":/icon/png/list.png");}QToolButton#q_quitToolButton{ border-radius: 1px; image:url(":/icon/png/quit.png");}QToolButton

2021-09-28 15:01:31 132

原创 windows10 下 QT 链接MySQL数据库

1.先编译qt中的mysql源码生成库文件安装MySQL,SQLyog辅助可视化工具。MySQL的bin添加到系统环境变量中。开始之前,先将编译器的路径添加到系统环境变量。我的QT所以sql驱动是在下面这个目录中(大家在自己Qt的安装目录找到对应的文件夹就行,下面的路径也是如此),E:\qt\5.13.2\mingw73_64\plugins\sqldriversMySQL的驱动文件是qsqlmysql.dll和qsqlmysqld.dll,带d的是debug版本,和下.

2021-09-23 17:28:06 114

原创 c++ static 初始化,赋值,使用

#include <iostream>using namespace std;class Test{public: static int number; //回调函数 static void callback(int data);};int Test::number = 0;void Test::callback(int data){ number = data; cout<<"number = "<<n.

2021-09-10 10:23:25 378

原创 C++ modbus 通信中Long与Float数据解析

如图所示:Long或者Long Inverse接收到的数据解析:showData = array[0] << 16 | array[1];Float或者Float Inverse接收到的数据解析:float SENSOR::modbus_float(uint16_t value1, uint16_t value2){ float temp; char *Modbus_HoldReg[4]; Modbus_HoldReg[0] = ((char*)...

2021-08-16 08:58:33 1375

转载 C++ 错误:“xxx” does not name a type

遇到错误:这其实是由于头文件的递归引用造成的,也就是在A类头文件中include了B,在B类头文件也include了A造成的!

2021-07-27 09:48:01 815

原创 QT 跨平台 代码框架

从网上找到的,自己简单整理了一下,没有做个实体项目,未写过类似的程序,所以不知道对不对。若谁有经验或者demo,请留言告知,谢谢!!!pro文件QT += core guigreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsCONFIG += c++11# The following define makes your compiler emit warnings if you use# any Qt feature that h

2021-07-21 11:49:30 96 1

原创 ubuntu 桥接网络总是链接失败解决办法

如图显示错误,解决办法:1.查看电脑的网络和Internet的网络连接,看看是不是有多个网卡再同时使用,若是,则关闭多余的网卡只留一个。2. 关闭虚拟机,在编辑->虚拟网络编辑器中,将桥接模式指定到某一个固定的网卡上就可以了,若不知道网卡的名称是什么,则在电脑的网络和Internet的网络连接查看。...

2021-07-01 11:56:53 564 1

原创 VS2017 + Qt5.14.2 配置工程

1.新建Qt项目工程后显示无法打开源文件“QtWidgets/QApplication”的解决方案解决办法:step1在工程中右击项目,点击属性。step2选择VC++目录->包含目录,按图所示步骤操作。step3选择Qt安装目录中的头文件包含目录,一般为Qt版本号/版本号/编译器名/include,如图所示。step4确定保存后就大功告成了!2.无法打开ui文件解决办法:在【解决方案资源管理器】中,右击你的 xxx.ui文件,选择【打开方式】。.

2021-06-29 17:06:07 159

原创 QT QTcpServer listen断开时报错解决办法

错误信息:1.QTcpServer::listen() called when already listening2.The bound address is already in use

2021-06-18 11:42:38 971

原创 VS2017 使用Unicode字符集 CString与char数组转换函数

如题static int CString2Char(CString str, char *ch){ // TODO: 此函数就是字符转换函数的实现代码 int len = WideCharToMultiByte(CP_ACP, 0, str, -1, NULL, 0, NULL, NULL); if (len > 0) WideCharToMultiByte(CP_ACP, 0, str, -1, ch, len, NULL, NULL); ch[len] = '\0'; // 注

2021-06-17 14:06:05 123

原创 c++ noncopyable类的使用,实现类的不可拷贝

noncopyable为实现不可拷贝的类提供了简单清晰的解决方案。使用的事boost库h文件:#ifndef BASE_H#define BASE_H#include <cstdlib>#include <iostream>#include <boost/utility.hpp>using namespace std;class Base : private boost::noncopyable{public: Base(in.

2021-06-17 10:02:28 129

原创 qt QTableView 使用时候的几个注意事项

QHeaderView::Interactive:0用户可设置,也可被程序设置成默认大小QHeaderView::Fixed :2用户不可更改列宽QHeaderView::Stretch :1根据空间,自动改变列宽,用户与程序不能改变列宽QHeaderView::ResizeToContents:3根据内容改变列宽,用户与程序不能改变列宽修改列宽时,又想自动改变列宽又想根据内容改变列宽,则需要在加载model后使用配置参数即可。列如 ui->ta...

2021-06-10 11:08:10 125

原创 qt qmodbus库的简单使用

简单说明:// Modbus有4种操作对象:线圈、离散输入、输入寄存器、保持寄存器// Coils、DiscreteInputs、InputRegisters、HoldingRegisters// 线圈:PLC的输出位,开关量,在MOdbus中可读可写;// 离散输入:PLC的输入位,开关量,在Modbus中只读;// 输入寄存器:PLC中只能从模拟量输入端改变的寄存器,在MODBUS中只读// 保持寄存器:PLC中用于输出模拟量信号的

2021-06-10 10:08:33 1328

原创 Linux音频编程--使用ALSA库播放wav文件

#include <stdio.h>#include <stdlib.h>#include <alsa/asoundlib.h>int main(int argc, char *argv[]){ int ret; int dir=0; char *buffer; int size; snd_pcm_uframes_t frames; snd_pcm_uframes_t periodsize; snd_pcm...

2021-06-08 15:29:58 401

原创 Qt 修改运行程序的图标

1、首先准备个ICO图标。例如:A.ico,网上有很多图标文件。2、用记事本新建个txt里面就写一行: IDI_ICON1 ICON DISCARDABLE "A.ico" 保存,修改后缀为.rc,例如: myapp.rc3、把它和图标A.ico一起复制到你的QT工程项目的目录。4、打开你的QT工程文件.pro(例如 "myapp.pro" ), 在里面最后新添一行 RC_FILE = myapp.rc 保存.

2021-06-04 09:51:17 181

原创 Qt socket->readAll() 接收不全的解决办法

需要在h文件中建立一个更大的缓存区将接收到的数据缓存起来,再进行解析。接受不全的原因应该是数据里有换行符(猜的,知道的请留言告知)h文件:QByteArray m_recvAllData;cpp文件: QByteArray ba = socket->readAll(); if(ba.size() == 0) return ; log_Printf("recv", ba.toHex()); //十六进制打印接收到的数据 m_recvAllData

2021-06-04 09:50:00 1577

原创 c++ 一些函数的使用

1.字符串分割--strtokC/C++:char *strtok(char s[], const char *delim);s 代表需要分割的字符串,delim代表分割的标志,参数都为比选!返回指向分割部分的指针,如果没有分割成功就返回NULL.一个简单的例子:void main(){ char *str = "jscese test strtok"; char *delim = " "; char *pstr = NULL; pstr = strtok(...

2021-05-31 10:55:42 21

转载 redis使用c++ API 的hiredis连接详解

Redis是一个NoSQL数据库,本文将实现一个用c++ API接口连接的例子,来实现对Redis数据库的写入和读出功能,具体将从Redis的安装,Redis的c++接口hiredis安装,代码演示三部分组成。一、Redis的安装和配置由于源中已有Redis的相关组件,这里就不进行源码编译而直接使用apt-get (ubuntu环境)下载和安装1.redis的安装和配置sudo apt-cache search redis //根据结果列表找到需要安装的软件包:redis-s...

2021-05-27 09:38:32 288

原创 Qt 导入现有项目,引用Qt库时,显示红色下划线解决办法

建议:只要配置好Qt Creator后,直接备份该文件夹,即可用于以后再次损坏之后快速地恢复、还原Qt Creator.关于开启、关闭Clang Code Model插件,可点击【帮助 | 关于插件】菜单,之后在弹出的对话框中进行设置即可:...

2021-05-21 14:54:04 469

原创 ubuntu18.04 qt无法输入中文 解决办法

Qt:1.安装fcitx的Qt支持库,终端中输入以下指令sudo apt-get install fcitx-frontend-qt5 2.安装完成后,需要启用Qt对fcitx的支持,将相关库文件复制到Qt编译器的插件库和QtCreator的Qt插件库库文件为 libfcitxplatforminputcontextplugin.so,默认安装在目录/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/ 中#QTIn.

2021-05-19 10:19:34 170

VS socket通信.zip

VS TCP通信,分服务器和客户端,实现一对一通信

2021-06-17

ChassisDataAnalysisTestTool.zip

qt modbus库的简单使用

2021-06-10

Linux C++ mqtt

将mqtt得发送和接收分开,

2021-02-20

qrcode_识别二维码.zip

利用qt制作界面, 用opencv打开摄像头,qzxing识别二维码

2020-09-17

zbar_识别二维码.zip

利用qt制作界面, 用opencv打开摄像头,zbar识别二维码

2020-09-17

openCamera.zip

Linux系统中,QT使用V4L2打开摄像头,并显示图像,图像是由yuv转rgb格式显示的,包换yuv转rgb格式算法

2020-02-13

myGraphics.zip

QGraphicsView 显示图片,并进行放大缩小,在图片上画点并连接,实时显示鼠标的位置坐标

2019-10-10

QGraphicsView_use.zip

QGraphicsView 对图像的缩放,刷新,显示鼠标点击的点,连接鼠标点击的点,一键清除鼠标点击的点和连线

2019-08-30

Ubuntu Webservice应用程序 c语言

c语言实现webserver的客户端和服务端程序,目前客户端已程序运行,但是服务端程序运行有点问题,目前只能收到数据,返回有点问题,待修改

2018-10-09

Ubuntu Webservice应用程序

Ubuntu Webservice应用,文件夹中包含一个wsdl文件,还有服务端和测试端简单的测试代码,实现对wsdl生成的库的应用

2018-09-21

Learning ROS for Robotics Programming

Learning ROS for Robotics Programming 带书签 全英文

2018-09-19

空空如也

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

TA关注的人

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