- 博客(51)
- 资源 (1)
- 问答 (5)
- 收藏
- 关注
原创 伽马配置页面接口文档
伽马配置页面接口文档1 url 192.168.1.101/WebServer.cgi2 获取 Get WebServer.cgi1、request get运行信息页面: 192.168.1.101/WebServer.cgi/?runinfo网络参数设置页面: 192.168.1.101/WebServer.cgi/?netset隐藏参数设置页面: 192.168.1.101/W...
2020-03-06 10:28:44
513
原创 c++ 分隔字符串
This is a statement"使用 C++ 将这个字符串分割成四个子字符串: “This”, “is”, “a”, “statement”?超级简略版#include <iostream>using std::cout;#include <iterator>using std::istream_iterator; using std::ostream_...
2019-12-04 11:01:02
383
原创 TCP/IP协议简介
TCP/IP是一个协议簇,是由许多协议组成的。TCP/IP协议是四层模型。从上往下分别为:1、应用层2、传输层3、网络层4、数据链路层一、应用层应用层决定了向用户提供应用服务时通信的活动。TCP/IP协议族内预存了各类通用的应用服务例如有:HTTP、DNS、FTP其中HTTP为超文本传输协议,一般的网页都用这种协议DNS为Domain Name System,域名系统FTP为F...
2019-10-11 14:26:53
817
原创 c语言结构体在嵌入式自定义通信协议中的一些体会
结构体可以把多种数据类型整合在一起,这样在操作数据的时候只需要定义一个结构体变量就可以了,而不必另外再定义很多的变量。开发嵌入式软件的时候,在两个设备的通信,通常会自定义一个内部的通信协议,按照这个通信通信协议来收发数据,解析数据。例如:可以看到这个数据帧有9个字段,这样的一个数据帧如果能用一个结构体来描述,那么对于应用程序编程来说,会是非常的便利和清晰。但是用结构体来描述这一个数据帧,有...
2019-09-28 10:17:37
3154
原创 linux串口编程入门
一、串口的物理协议串口的物理层协议规定了串口的电气特性,有RS232,RS485,RS422协议。RS-232与RS-485的区别在于:1、传输方式不同。 RS-232采取不平衡传输方式,即所谓单端通讯。而RS485则采用平衡传输,即差分传输方式。2、传输距离不同。RS-232适合本地设备之间的通信,传输距离一般不超过20m。而RS-485的传输距离为几十米到上千米。3、RS-232 只...
2019-09-20 17:37:28
610
原创 webServer服务端编程CGIC学习笔记(一)
一、什么是CGICGI:Common Gateway Interface。CGI代表Common Gateway Interface(通用网关界面),它使在网络服务器下运行外部应用程序。在配置boa服务器时,有一个boa.conf文件,这个文件的最后一个参数是指定cgi程序(也称cgi脚本)的存放路径.它是运行在Web服务器上的一个程序,并由来自于浏览者的输人触发。CGI是在HTTP服务器下运...
2019-09-05 15:14:57
422
原创 将WebServer Boa移植到ARM上
一、在Boa的官网上下载Boa网址:www.boa.ort二、拷贝到虚拟机的共享目录下、解压 tar zxf boa-0.94.13.tar.gz三、进入src文件夹,进行对代码的修改1.打开compat.h将 define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff修改为:#define TIMEZONE_OFFSET(foo) foo...
2019-08-23 15:53:31
576
原创 ubuntu16.04侧边栏的设置
zhang@zhang-virtual-machine:~$ gsettings set com.canonical.Unity.Launcher launcher-position Bottom #底部(苹果风格)zhang@zhang-virtual-machine:~$ gsettings set com.canonical.Unity.Launcher launcher-positi...
2019-08-07 17:58:15
1168
原创 UCOS和freeRTOS的区别总结
1、uCOS-III中所有的内核对象(如任务控制块、消息队列、信号量等)都是静态创建的,需要用户提供。FreeRTOS中的内核对象支持动态和静态两种创建方法。(PS: 其实系统提不提供动态创建功能并不那么重要,因为在静态创建的方法的基础上加入内存管理机制,就能自已封装实现动态创建函数)2、uCOS-III中的任务状态较多,因为它存在“基本状态+挂起状态”这类状态,FreeRTOS中挂起态是个单...
2019-07-16 15:52:36
18853
5
原创 STM32 FALSH闪存编程原理
一、STM32编程方式1、在线编程(icp in-cricuit programing)通过JTAP/SWD协议或者系统加载程序(BOOTLOADER)下载用户应用程序到微控制器中2、在程序中编程(IAP,in application programming)通过任何一种通信接口(如IO口,USB,CAN,UART,I2C,SPI)等下载程序或者应用数据到存储器中,也就是说,STM32允许...
2019-07-15 14:53:56
1020
原创 STemWin学习之路(四)——存储设备
一、存储设备的作用存储设备可在各种情况下使用,主要用于防止在绘制重叠项目时出现显示器闪烁。其基本思想很简单。不使用存储设备时,绘制操作直接写入显示器。屏幕在执行绘制操作时随时更新,从而在进行各种更新时使屏幕闪烁。例如,如果要在背景中绘制一个位图,在前景中绘制一些透明文本,应首先绘制位图,然后绘制文本。效果将是文本出现闪烁。但是,如果在此过程中使用存储设备,则所有绘制操作都在存储器中执行。...
2019-07-11 11:32:51
1006
原创 STemWin学习之路(三)——位图显示
STemWin的位图显示分为两部分1、位图转换器的使用——把图片装换为.c文件2、位图显示的API一、位图转换工具在ST官网上下载STemWin的源码中解压,找到STM32Cube_FW_F1_V1.0.0\Middlewares\ST\STemWin\Software目录,在此目录下有BmpCvtST.exe软件,这就是位图转换器打开位图转换器->打开图片->image-...
2019-07-11 11:09:37
1019
原创 STemWin学习之路(二)——文本数值显示、2D绘图
一、文本显示要在LCD上显示问题,只需要调用GUI_DispString即可。例如GUI_DispString("hello world");GUI_SetTextMode(int TextMode)函数是用来按照指定的参数设置文本的模式1.正常文本:GUI_TEXTMODE_NORMAL /0 显示正常的文本,即按照背景色和前景色来显示2.翻转文本:GUI_TEXTMODE_RE,可...
2019-07-10 11:21:48
993
原创 STemWin学习之路(一)
一、什么是STemwinSTemwin:是ST公司对emwin稍作修改,只能在ST的MCU上使用,并且是免费的,但是不开源,以lib的形式提供,在使用前一定要使用STM32的CRC时钟。ST官网:www.st.comemWin:是德国segger公司推出的图形界面库GUIemwin官网:www.segger.comucgui:是emwin的前身二、裸机移植STemwin到STM32F1系...
2019-07-09 15:54:00
3091
原创 uboot移植添加单板支持
一、下载uboot2017.01的源码二、解压,进入源码根目录三、复制配置文件cp configs/mx6qarm2_defconfig FET_mx6q_defconfig四、修改 FET_mx6q_defconfigvi FET_mx6q_defconfigCONFIG_ARM=yCONFIG_ARCH_MX6=y //mx6CONFIG_TARGET_FET_MX6Q=y...
2019-04-16 12:14:48
395
原创 QPushButton的default和autoDefault 属性
QPushButton类有两个属性:default和autodefault属性。(1) default属性表示当在对话框中时有“Enter”键按下时执行此按键的click()事件。它的默认值是false;(2)autoDefault属性设置为true时会影响按键的外观(略微突出显大),它的默认值是true。default和autoDefault区分当在Dialog中使用时default和a...
2018-11-28 10:50:35
2974
原创 OpenCv 学习笔记(一)
一、cv::Mat image 创建一个宽和高都是0的图像,可以通过调用cv::Mat的size()方法来获取该图像的尺寸,默认为0*0。二、对一个图像文件的读取 cv::Mat pic; //mat类是用于保存图像以及其他矩阵数据的数据结构,默认下,它的尺寸为了0 qDebug()&lt;&lt;pic.size().height&lt;&lt;","&lt;&a
2018-11-21 17:27:01
551
原创 linux下Qt+OpenCv环境的搭建
一、安装linux Qt参考博文:https://blog.youkuaiyun.com/yaowangII/article/details/78529581二、在linux下安装OpenCv参考博文:https://blog.youkuaiyun.com/yaowangII/article/details/84300281三、在完成第一、二步后,linux下已经成功安装上了Qt 和OpenCV了,接在来就需要在...
2018-11-20 15:12:06
2907
1
原创 ubuntu 下安装 OpenCV
一、下载opencv源码包 下载连接https://opencv.org/releases.html,在linux下,选择source格式的下载,我用的是3.4.1版本的。二、把源码包,放进Ubuntu中,解压三、在解压目录中新建文件夹build。四、准备opencv的依赖包$sudo apt-get update$ sudo apt-get install build-esse...
2018-11-20 14:06:21
1929
原创 linux 下Qt 如何修改系统时间
Qt 提供日期时间的类有 QDate QTime 和QDateTime,这三个类。一、获取系统时间可以通过三个静态函数来获取1.QDate::currentDate() 来获取当前系统的日期2.QDate::currentTime()来获取当前系统的时间3.QDateTime::currentTime()来获取当前系统的日期和时间。二、设置系统时间在linux 上可以使用date...
2018-10-25 17:30:30
6808
2
原创 linux c程序实现获取U盘的名字(卷标/盘符)
一、U盘的卷标在linux系统下,显示的U盘的卷标如下图所示:在linux系统下,显示的U盘的盘符如下图所示:获取U盘的卷标是通过命令blkid -s LABEL来实现,执行完shell命令,在标准输出中就显示/dev/sda1: LABEL=ESD-USB其中 /dev/sda1 是指U盘的设备节点,LABEL=ESD-USB 是指U盘的卷标名,就是U盘的名字吧,可以通过自己的重命...
2018-10-12 14:48:20
6665
原创 linux下system函数详解
一、system函数的简单介绍头文件 #include <stdlib.h>函数定义 int system(const char * string); 函数说明system()会调用fork()产生子进程,由子进程来调用/bin/sh-c string来执行参数string字符串所代表的命令。此命令执行完后随即返回原调用的进程。在调用system()期间SIGCH...
2018-10-10 14:54:33
12239
原创 关于Qt QListWidget 清空所有项出现的问题
有时候我们QListWidet的时候刚开始加载了很多个item,但是可能到后面要清楚所有的item,重新加载。例如:我在项目中实现了多国语言,在切换了语言之后,需要将界面重新加载的,这就需要重新加载QListWidget的每一项了。但是在清楚QListWidget的时候,无论调用什么方式总是会出现段错误。//方法一:ui-&gt;listWidget-&gt;clear();// ...
2018-07-05 16:33:21
5677
2
转载 关于 The c++ programming language 其中的一条忠告
10.4.10 临时对象 临时对象最经常是作为算术表达式的结果出现的。例如,在求值想×*y+z过程中的某一点,部分结果x*y必须存在于某个地方。除了与性能有关的问题之外,临时对象很少成为程序员关心的问题。但这种情况确实也有可能出现。 除非一个临时对象被约束在某一个引用,或者被用于做命名对象的初始化,否则它将总在建立它的那个完整表达式结束时销毁。所谓完整表达式就是那种不是其他表达...
2018-06-22 10:08:43
2628
原创 c基本程序题
一、写出strcpy函数#include <stdio.h>#include <string.h>#include <stdlib.h>#include <assert.h>char * myStrcpy(char *desStr,const char *srcStr){ assert(desStr !=NULL &&am...
2018-04-23 10:52:16
264
原创 嵌入式linux C面试题集锦
1、语句for(;1;)有什么问题?他是什么意思?无限循环,和while(1)相同2、do.....while 和 while....do的区别前者循环一遍再判断,后者判断以后再循环3、TCP 和UDP的区别TCP:是面向连接的流传输控制协议,具有高可靠性,确保传输数据的正确性,有验证重发机制,不会出现丢失或乱序UPD:是无连接的数据报服务,不对数据报进行检查与修改...
2018-04-08 14:52:30
9001
原创 linux下串口编程
一、串口基本知识1、什么是串口通信串口通信(Serial Communication),是指外设和计算机间,通过数据信号线、地线等,按位进行传输数据的一种通讯方式。 串口是一种接口标准,它规定了接口的电气标准,没有规定接口插件电缆以及使用的协议。串口是计算机上一种非常通用设备通信的协议。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼...
2018-04-03 17:22:18
3073
2
原创 Qt5发生的变化(Qt5编程入门笔记)
1、Qt5中,所有图形界面程序需要的QApplication以及重要的基类QWidget已经不再Qt Gui模块中而是被重新组和到了一个新的 模块Qt Widgets中2、Qt5移除了Qt OpenGL模块,将OpenGL相关的类移动到了Qt Gui模块中,意味着OpenGL成为了每个应用程序的必选项。3、Qt5吧全部的Qt接口迁移到Qt平台抽象层(Qt Platform Abstraciton ...
2018-03-19 14:37:13
1364
原创 Qt创建Qt Designer自定义控件
前言Qt Designer控件就是能够在ui界面中使用的控件,例如QPushButton,QLabel等控件。而自定义Qt Designer控件就是自己写一个控件,这个控件能够出现在Qt Designer控件列表中(也可以不在Qt Designer控件列表中出现,主要取决于生成的库文件,是否拷贝进Qt的相关目录下,下文会详细介绍),例如最出名的Qwt控件,就是一个自定义的控件,这个控件非常强大...
2018-03-01 11:19:49
7348
1
原创 Qt 创建应用程序插件
前言本文Qt中创建应用程序的插件主要有两方面: 一、创建插件 二、在应用程序中使用插件一、创建插件先用文字描述一下创建插件的主要步骤 ①、首先新建一个插件的接口类,这个类只包含纯虚函数,这个纯虚函数是用于给接口类实现具体功能的。并在接口类中使用Q_DECLARE_INTERFACE()宏在Qt的元对象系统中注册该接口。 ②、新建一个插件类,这个插件类一定要继承QObject...
2018-02-28 15:09:35
618
原创 算法时间复杂度的表示法方法
在数学上定义: 存在常数 c,使得当 N >= c 时 T(N) 我们假设计算机运行一行基础代码需要执行一次运算。int aFunc(void) { printf("Hello, World!\n"); // 需要执行 1 次 return 0; // 需要执行 1 次}那么上面这个方法需要执行 2 次运算int aFunc(int n
2018-02-01 16:55:24
1180
原创 Qt编码的总结
在Qt4编程中,很多人往往在main文件中加上这三句话用来解决中文乱码的问题。QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8")); QTextCodec::setCodecF
2018-02-01 15:09:40
642
原创 Qt中QString转char*以及编码的问题
如果我们有这样到一个需求:从一个文件中读取字符串,然后对这个字符串进行进一步到处理而需要用到char*类型时。就需要了解Qt到编码,以及如何从QString 转化为char *类型。以读取ini文件为例。1.编码转换 读取ini文件需要用到QSetting类,读取方法如下:http://blog.youkuaiyun.com/yaowangii/article/details/78733022 此时我们读取
2018-02-01 14:09:02
2483
原创 Qt在ARM或者linux上多屏显示
利用Qt实现双屏显示,前提是设备中有两个屏幕。这样在linux中Qt实现双屏显示就很简单了。只需要把窗口利用move函数移动到另一个屏幕的像素点就可以了。例如:一屏分辨率为:1280 * 800 ,二屏分辨率为:800 * 480。(1)如果你定义了一个 1600 * 800的窗口,比一屏多出来400个像素点就会自动在二屏中显示,不用任何处理(前提是你到设备双屏能够正常运行)(2)如果想在
2018-02-01 10:51:13
3828
2
原创 linux下使用命令模式去编译Qt程序
一、新建Qt程序在linux下的目录新建一个Qt的cpp文件,如下vim hello.cpp#include <QApplication>#include <QLabel>#include <QtDebug>int main(int argc,char* argv[]){ QApplication a(argc,argv); QLabel label("hello");
2017-12-12 09:54:24
3574
原创 Qt工程名称和文件名称的修改
一、修改工程的名称1、关闭当前工程 2、build -> clean project 3、进入.pro工程文件,进行以下修改TARGET = XXXXX (你所需要修改新的工程名称)二、修改文件名1、修改文件名很容易,直接点击右键->重命名就可以了。 但是Qt默认是全小写文件名的,如果想把小写的文件名改成大写,如驼峰式的文件名称,如果直接点右键->重命名会发现修改不了,文件名还是全小写的。需要
2017-12-07 11:54:34
10525
原创 Qt如何用QSettings读写ini配置文件
一、ini文件的格式ini文件的格式如下,主要是由节、键、值来组成。[section1] age=23 nam=lcmsex=man[section2]age=75name=lucimersex=man………………[sectionN] // 节名键 = 值 ………………键 = 值二、ini配置文件的写入ini文件的读取和写入都是利用到QSettings 类。/
2017-12-07 09:37:38
30440
16
原创 Qt实现多国语言动态切换
概要Qt中实现多语言的动态切换主要分为以下步骤: 一、生成ts文件 二、生成qm文件 三、利用QTransltor来加载语言包 四、实现多语言切换简单例子一、生成ts文件1、在生成ts文件之前,要保证你的工程当中需要实现语言切换的字符串用函数tr包含,例如ui->textLabel->setText(tr("English version"));因为只有添加了tr()函数,生成ts文件的时候
2017-12-05 11:31:52
1702
1
原创 Qt中利用Qwt画动态正弦曲线,并可动态调整振幅和周期
前言:这里主要是做出了一个动态的正弦曲线,并可以调整正弦曲线的振幅和周期。网上有很多画动态正弦曲线的,有一些是通过绘制一整个正弦图像,然后每一次显示都是刷新一整个正弦曲线来达到动态的效果,但是有时候需要的效果可能不是这样。这里的正弦曲线主要是通过在数据容器中每次追加一个曲线点来达到动态的效果。当当前的坐标轴已经画满了曲线,那么就更新当前的坐标系,将当前坐标轴往前移动一个单位( x 轴 坐标 +1),
2017-12-01 10:14:51
6565
RK3568 MIPI转LVDS TC358775
2023-12-18
Qt 使用QSQLite 数据库提升插入速度
2023-01-15
请教一下关于两个设备通信协议的问题?
2020-05-25
freeModbus 和 libModub 能进行通信吗?
2019-11-19
Qt 画波形图的问题。这事有点蹊跷,大佬们进来看看。
2017-11-12
在Qt中编译带Qwt的ARM程序时总是提示 cannot find -lqwt
2017-11-11
C语言怎么输出正弦曲线的坐标点
2017-11-11
TA创建的收藏夹 TA关注的收藏夹
TA关注的人