自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (2)
  • 收藏
  • 关注

原创 网络知识总结

已知TCP/IP协议分为四层/五层,分别是应用层,传输层,网络层,接入层(数据链路、物理层)。其中物理层做一些简单的电平传输,通过光纤、双绞线、无线电等外部介质进行0、1电平信号的传输。 数据链路层:相互连接的端口之间如何知道是发送给本机的呢,这时候就需要MAC地址作为标记,由于物理层有的介质可靠性不高,所以需要数据链路层进行数据校验,数据链路层会将物理层的长度未知比特流切分成各个段,每一段分别进行CRC校验,将MAC地址等信息加在包头,将CRC校验和加在包尾,这就是数据链路层的帧格式。对比特流

2022-07-06 20:48:19 178 1

原创 STM32F429 之EXTI外部中断

EXTI外部中断EXTI external interrupt event control 外部中断事件控制器1)EXTI就是可以将IO口的电平变化(上升/下降沿)转化成一个中断或者事件2)F429的EXTI由23条线,其中EXTI0-15是配置GPIO的,通过SYSCFG进行EXTI的配置,其余七条是特定的连接3)EXTI框图从输入线进入后会进行边缘检测电路,这时配置上升沿触发选择/下降沿寄存器来确认是上升沿/下降沿有效即配置EXTI_RTSR...

2022-04-03 14:24:17 4164

原创 Modbus数据包分析

(一)10H功能码数据报格式为:从机ID(1) 功能码(1) 起始地址(2) 读取寄存器个数(2) 写入或读取的字节数(2) 数据(---)从机往主机写从机监测7个数据数据分析:01 10 00 00 00 08 10 00 09 01 0A 00 08 00 07 00 01 00 00 00 00 00 0001: 从机ID是1所以这里是0110: 功能码是16,说明为写多寄存器00 00 起始寄存器地址00...

2022-03-03 16:36:37 1207

原创 IO-总结

标准IO函数?ftell ->获取流指针当前的位置freopen ->重定向流指针fopen ->打开流指针fgets ->从流指针中获得字符串(char *buf,int size,FILE*)fputs ->向流指针中写入字符串(char *buf,int size,FILE *)fclose ->关闭流指针fprintf ->printf的流指针升级版,向流指针中输入固定格式的字符串rewink -...

2022-02-26 19:37:40 621

原创 三方库移植

再说一下三方库移植,为什么要移植三方库呢,因为很多时候开发为了节省时间需要调用其他的库函数,但是很多库不像之前的cJSON和sqlite3等这种非常知名的库会提供deb,只提供源码,所以如果要在linux和arm上使用就需要用到三方库移植,三方库的移植步骤: 1.先在官网或者git获取该库的源码压缩包 2.解压并进入目录 3.创建一个空的install文件夹便于安装 4.配置编译选项,一般源码目录下有configure--host:指定编译器 --prefi...

2022-02-26 09:15:25 310

原创 MQTT初识

今天学的是MQTT,结合了之前TCP和JSON的知识,我对MQTT的理解是他是一种轻量级的通信协议,小带宽,适合嵌入式这种窄带传输的应用场景下,它基于TCP,并且他在TCP基础上更加可靠,与TCP不同的是,MQTT引入了几个新的概念,MQTT仍然分客户端和服务器,服务器在MQTT中叫Broker即代理人,做信息传输的桥梁,客户端在MQTT中分为发布者(publish)和订阅者(subscribe),客户端之间是平等关系,两个客户端之间既可以是发布者也可以是订阅者的关系,还有一点不同的是MQTT的消息有主题,

2022-02-25 19:44:49 535

原创 C/C++面试题

C/C++经典面试题 首先Volatile的字面意思是易变的,Volatile关键字一般用于寄存器变量,起到防止编译器优化作用因为寄存器是会经常做存取操作,而对于经常做存取操作的变量来说,编译器一般会对其进行优化,举个例子XBYTE[2]=0x55;XBYTE[2]=0x56;XBYTE[2]=0x57;XBYTE[2]=0x58;编译器优化过后就只有XBYTE[2]=0x58这一条,如果在变量XBYTE前添加Volatile关键字就会防...

2022-02-23 08:46:51 390

原创 QT-10-程序打包

更换程序图标1. 设计一款图标(略),教学可参考:阿里巴巴矢量图标库2. 转换为.ico图标格式,可参考:直接下载ico、png转ico3. 把ico文件拷贝到工作目录4. 在Qt Creator中选中项目名称,鼠标右键,点击“添加新文件”。5. 按照下图方式选择。6. 创建图标配置文件,一定要写扩展名!7. 直接点击完成后,打开icon_configure.rc,在.rc文件中添加一行代码IDI_ICON1 ICON DISCARDABLE "XXX.ico"X

2022-02-22 14:37:45 659

原创 QT-9-TCP网络编程

TCP和UDP在嵌入式中,主要使用网络编程进行传感器数据的获取,以及控制命令的发送,对数据完整性的要求较高,Qt课程中以TCP的使用为主。IP地址和端口号 IP地址 为每台在网络的计算机分配一个网络地址,类似于“门牌号”。功能是让同一个网络的其它网络设备可以找到对应的网络设备。 端口号Port 为每个进程(应用程序)分配一个端口号,用于从一台网络设备上找到对应的软件程序。通信条件1. 在同一个网络下,无论是IP地址还是端口号,都必须保持唯一。2. 在Qt中使用

2022-02-20 19:22:40 1201

原创 QT-8-使用SQL数据库

数据库(掌握)Qt本身并没有数据库,但是Qt支持市面上绝大多数主流的数据库的连接,前提是运行Qt的电脑上也有对应的数据库产品。在嵌入式领域、纯软件客户端领域都在使用SQLite数据库作为程序本地数据存储的方式。原因在于SQLite数据库十分轻巧,因此Qt(Qt5以上)中内置了SQLite数据库,不需要单独安装和配置。Qt支持以下数据库的连接,以下是各个数据库的驱动名称:除了SQLite之外,其它的数据库都需要单独安装和配置驱动程序。并且Qt为这些数据库统一了操作的API,基本上可以做到操

2022-02-18 14:18:59 2337

原创 QT-7-多线程

复现程序未响应QThread类是Qt中的线程类,其中有三个睡眠的函数:分别表示在当前线程下不同单位(毫秒、秒、微秒)的睡眠,睡眠指的是强行占用CPU,但是什么事情都不做,后续的代码都被阻塞,直到睡眠结束。复现程序卡顿未响应的代码如下:dialog.h#ifndef DIALOG_H#define DIALOG_H#include <QDialog>#include <QThread>#include <QMessageBox>

2022-02-17 20:00:05 783

原创 QT-6-文件IO

QFileDialog是QDialog的派生类,专门用于弹出对话框选择打开的文件和目录,或保存的文件。使用静态函数调用。弹出选择要读取(保存)文件的对话框QString QFileDialog::getOpenFileName(QWidget * parent = 0,const QString & caption = QString(),const QString & dir = QString(),const QString & filter = QStr

2022-02-17 11:38:30 434

原创 QT-5-多窗口编程

QMessageBox(掌握)是一个用于通知用户或询问用户一个问题并接收答案的模态对话框,是一个QDialog的派生类,分为四种类型:上面四种是最基础的QMessageBox类型,且Qt官方已经设计好了,我们只需要调用并显示即可。这四个弹窗都使用以下格式的静态函数调用。StandardButton QMessageBox::information(QWidget * parent,const QString & title,const QString & text)

2022-02-17 08:58:24 2122

原创 QMetaObject::connectSlotsByName: No matching signal for问题的解决方法

今天在写自定义窗口的时候遇到的问题。因为前面在designer用了隐式调用槽函数,所以我直接拿隐式调用的函数名cp过来改了一下没想到竟然会报错,查了一下资料发现是因为隐式调用有固定的格式on_xxx,如果你显式调用还是用这个格式就会触发这个error...

2022-02-16 17:34:25 614

原创 Epoll为什么高效?

Epoll的底层实现如上图:(了解)(红黑树,是特殊的二叉树,Epoll怎样能监听很多个呢?首先创建树的根节点,每个根节点都是一个fd以结构体的形式存储(节点里面包含了一些属性,包含callback函数),对于树来说可以随意挂接节点。 链表,当某一个文件描述符产生事件后,会自动调用callback函数,通过回调callback函数来找到链表对应的事件(读时间还是写事件),链表为事件链表。epoll为什么高效?1.select和poll在操作系统和内核层之间需要将监测的文件进行拷贝传输,每..

2022-02-16 09:53:43 629 1

原创 QT-4-常用类和组件

命名规范(熟悉)1. 类名、枚举必须使用大驼峰命名法(帕斯卡命名法),即每个单词的首字母大写,例如ComputerInfo.h;Qt自带的类都是以Q开头的。2. 函数、变量名使用小驼峰命名法(驼峰命名法),即第一个单词全小写,其它单词的首字母大写,例如autoFillBackground、backgroundRole。3. 常量使用全大写,单词之间使用下划线分割。QString类(掌握)QString类是Qt中的字符串类,Qt中不使用char*和std:string。QString类..

2022-02-15 20:07:00 987

原创 QT-3-基本组件2

4. QLineEdit 单行文本编辑框QLineEdit是一个单行的用于录入用户输入文字的文本框,常用属性如下:常用信号如下:代码链接:百度网盘 请输入提取码提取码:hqyj5. 一堆类似的组件 QDial 与其它几个组件的区别是只能看,不能操作。 上述组件都有以下属性 ,且功能相似。常用信号如下:当value值发生变化时发射。代码链接:百度网盘 请输入提取码提取码:hqyj6.

2022-02-15 14:43:43 175

转载 数据结构快排

快排的理解:首先快排的作用是将一串数列排序,比冒泡和选择好的地方在于时间复杂度小->O(nlogn)空间复杂度小,但是缺点是不稳定,如果原数列比较有序,那么该算法的优势就不是很大。基本的原理是先确定一个基准数,同时有两个指针low,high分别指向第一位和最后一位,然后从high开始往第一位走,找到一个比基准数小的数字,将基准数换成该数字,然后用temp记录下来基准数,同时low往最后一位走,找到一个比high大的数,然后替换high,然后high往前走找到一个比lo...

2022-02-14 20:48:55 273

原创 QT-3-基本组件

Designer(掌握)Designer(设计师)程序是Qt中内置的独立程序,可以通过可视化的方式帮助开发者快速设计软件的页面。通常不使用独立的Designer程序,因为在Qt Creator中直接打开.ui文件就可以使用Qt Creator集成的Designer程序。当然,使用集成的Designer程序的前提是项目中要包含界面文件。软件区域功能如下:正在上传…重新上传取消需要注意的是,界面涉及区域中红色的表示实际运行不可见。另外,此区域仅代表预览的效果,实际效果以运行为准。..

2022-02-14 16:55:06 2101

原创 QT-2-信号与槽

信号与槽信号与槽是Qt在C++的基础上新增的特性,类似于Java、C#回调的机制,但是使用起来更加方便,可以很容易做出不同组件之间的函数被动调用,是一种通信的机制。信号是一种函数槽也是一种函数要使用信号函数与槽函数,有两个先决条件: 通信的对象必须是从QObject派生出来的 类中必须要加入O_OBJECT宏 函数原型QObject::connect(const QObject * sender,const char * signal,const QObjec

2022-02-14 08:53:43 684

原创 QT-1-UI入门

QWidget(掌握)所有的UI组件的基类,内部规定了很多组件的基本属性和函数。属性:height 高度,单位像素width 宽度,单位像素x是横坐标,y是纵坐标,单位像素。x轴正方向是右,y轴的正方向是下。原点是左上角。坐标以组件的左上角为准。dialog.h#ifndef DIALOG_H#define DIALOG_H#include <QDialog>// 引入头文件#include <QDebug>#include &l

2022-02-14 08:52:00 319

原创 STM32F0-DAY1

时钟周期:时钟周期就是外接晶振的倒数 周期(S) = 1/频率(HZ)机器周期:完成一个基本操作所需要的时间叫机器周期,根据不同的板子它的机器周期不同指令周期:是指完成一条指令所需要的时间,取址-解析-执行所需要的时间。通常含一个机器周期的指令称为单周期指令,包含两个机器周期的指令称为双周期指令rigester修饰的变量不能取地址volatile 防止编译器优化:有时候编译器会将一个地址当成寄存器的值。为了防止出错需要用volatile来修饰该变量。中断和异常:异常是系...

2022-02-13 14:33:46 1160

原创 TCP/IP常见问题

1.TCP/IP七层的作用是什么?2.三次握手,四次挥手?三次握手:3.为什么三次握手却要有四次挥手? 因为握手连接的过程中在服务器第一次接收客户端发送的连接请求SYN包后,可以同时发送ACK确认包和SYN同步包,而挥手释放的过程中服务器在接收到客户端发送的FIN包后,很可能不会立即关闭socket,而是需要先发送ACK确认包告诉客户端我收到请求了,在服务器报文发送完毕后才能发送FIN结束包,断开连接,这样就多了一次发送。4.挥手时客户端为什么要等待...

2022-02-13 14:26:32 1075

原创 C++智能指针思考

C++,智能指针

2022-02-12 10:51:03 373

原创 LinuxC高级 Day5

LinuxC高级_day4【1】功能性语句read1)read var1 var2 var3把读入行的第一个参数给var1 第2个参数给var2 把剩下的所有单词都给var32)read -n 5 var从终端读取5个字符,输入到5个就自动结束3)read -p “提示语句” var4) read -s var 输入的时候取消回显5)read -t 3 var 3秒内没有动作就跳过了6)read -a 数组名 输入一个数组,数组之间的成员以空格隔开[练习] 提示用户输入密码,密码不

2021-10-27 18:51:10 80

原创 LinuxC高级Day4

LinuxC高级_day4【1】功能性语句read1)read var1 var2 var3把读入行的第一个参数给var1 第2个参数给var2 把剩下的所有单词都给var32)read -n 5 var从终端读取5个字符,输入到5个就自动结束3)read -p “提示语句” var4) read -s var 输入的时候取消回显5)read -t 3 var 3秒内没有动作就跳过了6)read -a 数组名 输入一个数组,数组之间的成员以空格隔开[练习] 提示用户输入密码,密码不

2021-10-26 19:31:41 98

原创 LinuxC高级Day3

2021-10-25 18:55:27 60

原创 LinuxC高级day1

LinuxC高级_day1【0】授课任务Linux命令 复习补充shell脚本 独立的语言 语法规则C高级 学生管理系统(新)makefile【1】什么是嵌入式?以计算机为中心,软硬件可裁剪的专用计算机系统(通用计算机系统windows)对体积功耗都有特定的要求*系统的裁剪操作系统 - 内核windows - NTUbuntu - LinuxmacOS - unixios - unixAndroid - linux【2】linux起源1965 - mult

2021-10-23 14:32:42 731

原创 Linux_C高级day2

LinuxC高级_day2【1】 学生管理系统拆分文件主函数文件 - 整体框架 - 调其他功能函数接口文件 - 很多功能函数头文件 - 结构体声明 函数声明 共同体 枚举 宏定义H文件 student.h#ifndef STUDENT_H //防止头文件重复包含#define STUDENT_H#endif主函数文件#include <stdio.h> // 头文件放在/user/bin#include “student.h” //先到自己的目录去找,找不到去/u

2021-10-22 18:40:29 111

原创 C语言简易计算器项目

C语言简易计算器项目C语言项目练习之简易计算器#include <stdio.h>#include <math.h>int main(int argc, const char *argv[]){ int data1,data2,xunhuan4,mode = 1; char op;start: printf("该计算器有普通计算模式(1)特殊模式(2):\n"); scanf("%d",&mode); if(mode == 1){ printf("|

2021-09-30 11:56:10 493

原创 Quartus ii 波形仿真出现error occured during modelsim simulation

我的代码编译没有问题,一仿真就出现这个错误,而且还不是在文本框里,有没有大佬知到该如何解决?

2020-10-28 21:41:47 4055 15

鲸鲨笔试题-IO/C/C++

鲸鲨笔试题-IO/C/C++

2022-02-15

STM32F051开发环境搭建文档

STM32F051开发环境搭建文档

2022-02-15

空空如也

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

TA关注的人

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