自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(77)
  • 资源 (1)
  • 收藏
  • 关注

原创 C语言----指针完全攻略

详情请看这篇文章链接http://c.biancheng.net/c/pointer/

2021-11-16 10:49:54 611

原创 Qt Quick中QML和C++混合编程详解2——注册一个QML中可用的类

二、注册一个QML中可用的类(如何将C++类型注册为QML类型以及如何在QML中使用这个类型)要达到这种目的,大概可以分四步:实现 C++ 类注册 QML 类型在 QML 中导入类型在 QML 创建由 C++ 导出的类型的实例并使用1、注册QML类型qmlRegisterSingletonType() 用来注册一个单例类型,qmlRegisterType() 注册一个非单例的类型,qmlRegisterTypeNotAvailable() 注册一个类型用来占位,qmlRegisterUn

2021-09-17 17:16:00 997

原创 Qt Quick中QML和C++混合编程详解1——将C++类或对象导出到QML中(在qml中即可访问该类的实例的属性或者方法)

一、在QML中使用C++类和对象(实现可供QML访问的类)(QML其实是对Javascript的扩展,融合了Qt Object系统,QML引擎由Qt C++实现,但是QML对象的运行环境,和C++对象的上下文环境是不同的,下面有两种方法来实现在QML环境下使用C++对象的方式)1、在C++中实现一个类,注册到QML环境中,QML环境中使用该类型创建对象2、在 C++ 中构造一个对象,将这个对象设置为 QML 的上下文属性,在 QML 环境中直接使用改属性二、注册一个QML中可用的类型(将C++类型注

2021-09-17 17:08:18 522

原创 ARM Cortex-M3

cortex-m3的体系结构:cortex-m3:微处理器的内核1.CM3微处理器内核的结构一整块处理器的结构:CM3 + 调试模块(睡眠模式,低功耗运行状态) =合起来为cpu内部总线外设 存储器时钟和复位 I/Ocm3内核:跟踪调试的接口控制的逻辑部件 thumb解码器 thumb-2解码器运算器—— 32位的ALU:乘法器和除法器NVIC接口:数据传输的接口,提供中断信息的控制器端口总线接口:CM3微处理器的特点:功耗低,价格低(具有的门数),调试的成本

2021-03-10 09:16:39 2758 1

原创 RT-Thread嵌入式操作系统

RT-thread:国产的嵌入式操作系统,与其他RTOS操作系统的主要区别:不仅仅是一个rtos内核,而是包含网络,文件系统,gui界面等组件的中间件平台,具有极强的扩展性。支持的编译工具:IAR gcc keil1.开发环境准备2.代码目录介绍3.系统初次运行4.系统启动过程解析开发环境准备基于rt thread3.1.0版内核,硬件平台是stm32软件仿真:mdk 5.14版本以上MDK下载以及安装:安装软件安装stm32f103芯片数据库...

2021-03-08 10:25:32 269

原创 CAD电子线路

1.pcb是什么?印刷电路板具有导电 绝缘 支撑三个方面以单片机板子为例,各种元器件被焊接在板子上任务是将电子电路产品的pcb版图设计出来,然后制作成印制电路板,最后焊接并调试得到实际的电子产品。2....

2021-03-04 09:26:07 599 1

原创 开源操作系统的课程设计(RT-thread)

小型操作系统rt thread的官网学习 、 vscode短周期 长周期1.应用(操作系统本身) 4周参考资料:原子哥 官网 B站基于rt thread的网络通信软件(登录 注册 聊天 文件)基于rt thread天气预报系统基于rt thread文件传输2.移植(硬件+ 系统功能) 就业 12周社区作品基于rt thread的无线温度监控系统(stmf103)基于rt thread的智能投食机(stm32)自选题目本学期两个课程设计:模拟面试...

2021-03-03 14:17:50 366

原创 嵌入式学习路线

1.嵌入式C语言(编程语言 C)2.嵌入式Linux开发工具(gcc gdb make shell)3.嵌入式Linux C开发 (操作系统的应用编程C/S)4.嵌入式C++和QT(扩展:python,qt控件,开源操作系统:ucosii rt-thread)5.嵌入式硬件开发(MCU 、MPU) stm32 : MCU-M3 M4(硬件基础,会使用就行)6.嵌入式操作系统内核(了解内核的结构)7.嵌入式操作系统的移植(uboot kernel fs文件系统)8

2021-03-03 13:49:58 118

原创 ARM第一课

stm32是基于arm架构的mcu系列mcu中央处理器单元arm板子:由arm公司生产的板子arm技术:用arm处理的技术arm是对一类微处理器的通称Cortex-m内核:芯片的集成电路由atmel公司SAM D20 :快闪微控制器(flash)优点:低功耗(电池寿命延长)、对于架构的睡眠模式的支持(对于电池功耗的降低)arm公司名stm电脑名f3 f4系列相当于 i3 i5 i7armv7:指令集,目前最先进的指令集之一,相当于i10系列基于thumb-2:指令压缩技术

2021-03-03 09:01:00 123

原创 qt布局管理系统-------QBoxLayout(基本布局管理器)

1、水平布局:QHBoxLayout垂直布局:QVBoxLayout2、实现登录注册页面//设置窗口大小 this->setFixedSize(400,300); this->titleLabel = new QLabel; this->titleLabel->setText(QStringLiteral("登录")); //对齐方式setAlignment this->titleLabel->setAlignment(Qt.

2020-10-14 19:29:07 443

原创 qt应用程序主窗口

Qmainwindow窗口可以包含菜单栏、工具栏、状态栏、标题栏等,是最常见的窗口形式,可以作为GUI程序的主窗口1、设置菜单:setMenuBar方法头文件:QMenuBar2、设置工具栏:addToolBar方法头文件:QToolBar3、设置可停靠部件:addDockWidget//QMainWindow的中心区域可以被任意种类的窗口部件所占用//QDockWidget类提供了一个小部件,该小部件可以停靠在QMainWindow内部或作为桌面上的顶级窗口浮动4、设置中间部件:set

2020-10-14 19:07:30 274

原创 C++升级知识点总结1

1、for功能增强//功能一for(int i =0;i<3;i++){cout << i << endl;}//功能二int array[3] = {1,5,6};for(int temp : array ) //foreach用法直接数组内容依次传给temp{cout << temp << endl;}2、auto关键字(1)C++中auto:类型推导 。(2)C语言中auto修饰的变量称之为自动变量(生命周期)。in

2020-05-27 15:35:22 231

原创 线程知识点总结

1、线程是任务调度和执行的基本单位。2、进程实现多任务缺点:(1)进程间切换的计算机资源开销很大,切换效率非常低。(2)进程间数据共享的开销也很大(系统资源消耗快)。优点:3、线程和进程的关系(1)定义:线程是进程的一个执行单元(一个进程中可有多个线程),是进程内的调度实体。是比进程更小的独立运行的基本单位。线程也被称为轻量级进程。(2)空间:同一进程的线程共享本进程的地址空间,而进程之间则是独立的地址空间。(3)直接关系:进程退出,进程中所有线程全部退出;(4)一个进程崩溃后,不会对其

2020-05-27 15:32:35 223

原创 C++智能指针

1、智能指针的原理程序通常通过堆来存储动态分配的对象(程序运行时的对象),当动态对象不在使用时,需要对他们进行销毁。动态内存的管理是通过new delete来实现的。new运算符:在动态内存中为对象分配一块空间并返回一个指向对象的指针int *p=new(2);//*p初始化为2int *p1=new[100]; //申请100个单位的内存空间delete运算符:指向一个动态对象的指针,摧毁对象并释放与其相关联的内存。在delete之后,指针变成了悬空指针(指向一块曾经保存数据对象但现在已经无效

2020-05-18 22:19:02 98

原创 C++引用

前言:引用可以看作是数据的一个别名,通过这个别名和原来的名字都能够找到这份数据。引用比指针更加方便和易用,但是其实引用只是对指针进行了简单的封装,他的底层依然是通过指针来实现的。一、为什么使用引用?参数的传递本质上是一次赋值的过程,赋值就是对内存进行拷贝。对于char、int等基本类型的数据,他们占用的内存仅仅是几个字节,对他们进行拷贝非常快,而数组、结构体、对象是一系列数据的集合,对他们频繁的内存拷贝可能会消耗很多时间,拖慢执行效率。引用的使用格式:和指针很类似,type &name=da

2020-05-18 21:42:35 125

原创 C++多态(类型转化dynamic_cast、查看类型typeid)

dynamic_cast

2020-05-09 14:56:18 137

原创 C++多态知识点(虚函数、纯虚函数)

前言:派生类可以继承基类的成员函数,都是无法重载基类的成员函数!当派生类中存在和基类相同的成员函数时,基类的成员函数就会被覆盖!当派生类存在与基类相同的成员函数,我们称之为函数重定义,也就是在派生类中重新定义基类中具有相同名称的成员函数。1、多态的使用根据类型兼容性原则,基类指针可以直接指向派生类对象,看下面的例子:#include<iostream>using names...

2020-05-06 23:15:14 356

原创 C++继承——多继承(二义性)

前言:一个派生类只有一个基类,叫做单继承一个派生类可以有两个或多个基类,叫做多继承1、多继承class D:public A,public B,public C{public: //类D中新增的成员};2、多继承中构造函数和析构函数在多继承形式下的构造函数和单继承形式基本相同,就是在派生类的构造函数的初始化列表中调用多个基类的构造函数class D:public A,publi...

2020-05-06 22:19:56 1945 1

原创 Linux网络编程TCP知识点总结(循环、并发服务器)

。。。

2020-05-04 21:43:27 445

原创 多任务——进程间通信(管道、消息队列、共享内存、信号量)

进程调度操作系统的核心任务就是任务(进程)管理==一、进程调度器1、进程分类2、Linux调度策略3、Linux进程优先级二、进程状态基于三态:就绪态、执行态、等待态1、Linux进程状态2、Linux进程状态切换3、Linux进程状态查看三、进程同步1、临界资源:操作系统中将一次只允许一个进程访问的资源称为临界资源,需要互斥访问2、信息量实现互斥访问...

2020-05-04 17:39:29 930

原创 C++运算符重载

一、概念1、运算符重载:同一个运算符可以有不同的功能运算符重载其实就是定义一个函数,在函数体内实现想要的功能,当用到该运算符时,编译器会自动调用这个函数。也就是说,运算符重载是通过函数实现的,它本质上是函数重载。2、运算符重载的使用:运算符重载的格式:operator是关键字,专门用于定义重载运算符的函数。返回值类型 operator 运算符名称(形参列表){}1)全局范围的运...

2020-05-04 17:36:09 1012

原创 C++继承知识点(1)

1、继承:不是复制粘贴,不做任何修改或者操作源码就能实现代码的复用2、代码复用的方法:组合(has a) 继承(is a)3、组合:占用更多的内存优点:?需要另外一个类里面的属性或者方法,在类中定义对象4、继承:基类和派生类A是B的父类,B是A的子类覆盖:派生类拥有与基类相同的属性或者方法时,派生类会被覆盖继承不是共享有独立的空间,对自己的空间进行操作派生类的实例化大小:...

2020-05-04 11:07:23 195

原创 Linux——C网络编程

一、C/S架构:C/S:client/server是建立在局域网的基础上, 客户端和服务器B/S:browser/server是建立在广域网的基础上,客户端浏览器和服务器二、TCP和UDP的C/S实现: 循环服务器和并发服务器循环服务器:同一时间只能处理一个客户端并发服务器:同一时间可以处理多台客户端(多进程、多线程)循环服务器TCPserver:1、socket函数2、bi...

2020-05-04 10:45:09 223

原创 UDP——循环服务器

头文件#include<stdio.h>#include<string.h>#include<stdlib.h>#include<sys/types.h>#include<sys/socket.h>#include<arpa/inet.h>#include<netinet/in.h>#includ...

2020-04-28 13:55:50 317

原创 C++ 封装(类和对象、构造函数的几种类型——拷贝、类型转换、移动构造函数)

一、封装——可以达到,对外提供接口,屏蔽数据,对内开放数据C语言中的封装:当单一变量无法完成描述需求的时候,结构体类型解决了这一问题。C++的封装:class封装的本质,在于将数据和行为,绑定在一起通过对象来完成操作。二、类和对象1、类的声明2、权限修饰符:public、private(set/get)、protected3、面向对象编程实例:栈的实现4、析构函数析构函数是类的一...

2020-04-28 13:03:40 380

转载 库依赖错误导致main.c:(.text+0x7): undefined reference问题

   最近在Linux下编程发现一个诡异的现象,就是在链接一个静态库的时候总是报错,类似下面这样的错误:(.text+0x13): undefined reference to `func'     关于undefined reference这样的问题,大家其实经常会遇到,在此,我以详细地...

2020-04-09 22:40:52 20736

原创 C++类型转换详解

1、C语言的隐式转换和显式转换 double a=1.234; int b=(int)a;//强制转换2、C++的类型转换运算符static_cast(expr):相关类型转换,例如整型、实型子类转父类void *与其他类型转换//static_cast<T>(expr)//相关类型转换double b=1.23;int a=static_cast<i...

2020-03-26 19:24:02 466

原创 守护进程

守护进程一、什么是守护进程?也称为精灵进程,守护进程是一个在后台运行并且不受任何终端控制的进程。二、相关命令ps命令:用来列出系统中当前运行的进程,如果想要动态显示进程信息,可以使用top命令ps -ef显示所有进程的完整信息-e:显示所有进程-f:显示完整格式的进程信息-o:用户自定义格式grep命令:Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式...

2020-03-25 15:24:13 151

原创 多任务——进程(创建、退出、等待)

多任务多任务主要包括:进程、进程间通信、线程这三大内容一、什么是单任务?一个任务执行结束之后,另一个任务才开始执行。二、什么是多任务?1)正确理解:系统可以响应多个任务。一个任务执行过程中,可以暂停执行,然后cpu执行其他任务。2)错误理解:同时执行多个程序。接下来,解释一下为什么这个说法是错误的。对于单个cpu平台来说,也就是单核平台来说,一个核同一时刻只能执行一条语句,但是单核也...

2020-03-24 20:57:53 274

原创 C++ 基础——string、vector、类型转换

stringvector类型转换一、C语言的隐式转换和显示转换显示转换——就是强制转换,在被转换的表达式前加(类型)隐式转换——就是不需要加强制转换,系统会自动做这个操作二、C++的类型转换运算符==1、static_cast<T>(expr)似于C语言的强制转换,保证代码的安全性和正确性可用于以下几种情况1)相关类型转换:例如整型、实型double b=1.23...

2020-03-22 22:16:12 3006

原创 任务、程序、进程、线程的概念和联系

程序程序只是一组指令的有序集合任务1、概念?是最抽象的,是一个一般性的术语,指由软件完成的一个活动。一个任务既可以是一个进程,也可以是一个线程。简而言之,它指的是一系列共同达到某一目的的操作。例如,读取数据并将数据放入内存中。这个任务可以作为一个进程来实现,也可以作为一个线程(或作为一个中断任务)来实现。2、什么是单任务?一个程序执行完之后,才可以执行下一个任务3、什么是多任务?系...

2020-03-19 18:14:47 992

原创 C++对函数、结构体的增强——inline内联函数、函数重载、struct升级

一、自定义函数VS宏函数1、自定义函数: 通过函数名找到函数存放的位置,给形参分配空间,传参,执行函数体内的语句,函数返回,释放空间。2、宏函数:宏替换,省去了形参以及函数体内需要分配的空间,还省去了函数调用传参,函数返回等过程,节省时间,提高运行效率。#define add(a,b) a+b //省去了形参以及函数体里需要分配的空间; //省去了函数调用,传参、函数返回、释放等过程...

2020-03-13 18:56:24 2045

原创 嵌入式网络编程Linux_C(概述、IO编程)

linux_C网络编程概述嵌入式网络编程==嵌入式Linux_C系统编程(文件、进程、进程间通信、多线程、网络、大并发网络服务器、数据库、shell编程)1、嵌入式C开发 VS 嵌入式Linux_C:使用Linux操作系统提供的功能2、Linux操作系统的组成:用户和内核空间——为何将Linux操作系统划分为用户和内核?保护内核不轻易被用户访问。——用户如何访问内核空间?系统调用、...

2020-03-12 20:34:21 554

原创 C++对C的加强(2)——引用和动态内存分配

C++对C的加强——引用1、什么是引用?绑定一个变量,不能再绑定其他的变量;其次定义一个引用一定要给它初始化(绑定一个变量)2、引用的作用:给变量起别名,操作这个引用实际上就是操作这个变量。1)引用作函数形参==指针作函数形参#include<iostream>using namespace std;void swap(int &a,int &b){...

2020-03-08 22:24:09 207

原创 C语言——链表详解(创建、初始化、插入、更新节点值、删除、输出链表)

链表详解链表是一种常见的数据结构,结构体指针在这里得到了充分利用。也就是用结构体来实现链表。链表可以动态的进行存储分配,可以在节点中定义多种数据类型,可以随意的增添、删除、插入节点。链表有一个头指针,用head表示,存放的为一个地址。链表的节点分为头结点和一般节点,头结点没有数据域。链表中每个节点一般都分为两部分,一个数据域,一个指针域。1、创建链表typedef struct stud...

2020-03-01 20:18:30 3235 3

原创 C语言——指针详解(指针、指针与数组、指针与结构、指针与函数)

一、什么是指针C语言中,变量存放于内存中,数据对象是指一个指定数据类型的数值或字符串,它们都有一个自己的地址,指针就是保存这个地址的变量。二、为什么要使用指针使用指针往往可以生成更高效、更紧凑的代码。1)指针的使用使得不同区域的代码可以轻易的共享内存数据,这样可以使程序更为快速高效;2)C语言中一些复杂的数据结构往往需要使用指针来构建,如链表、二叉树等;3)C语言是传值调用,而有些操作...

2020-02-29 20:18:18 1409 2

原创 C语言——函数(声明、定义、调用)

C语言中函数的使用1、函数的声明函数有两种类型:1)有返回值:前面用 int float double char来定义的,如int even(int n),前面的int就是返回值类型,注意最后要加分号。#include<stdio.h>int even(int n);2)没有返回值,就用void写在最前面,如void even(int n),注意最后要加分号。...

2020-02-29 16:30:44 2758

原创 C++对C的加强(1)——命名空间、输入输出、实用性加强(for、foreach、auto、extern、bool等)

一、命名空间1、命名空间的作用?防止变量名、函数名、类名发生命名冲突。2、如何定义命名空间?namespace + 空间名 + { }3、如何使用命名空间?命名空间名 + :: + 变量名或函数名!!(注意:命名空间可以嵌套使用)4、std :标准命名空间 using namespace std举例:输出语句就可以直接用:cout << " "...

2020-02-29 16:00:23 510

原创 嵌入式面向对象程序开发(Linux C++开发)概述

一、学习内容C++(c with class)==95% (数据类型、基本控制语句、函数、关键字、位运算、指针、数组))1、C到C++的升级(语法升级)2、C++面向对象的三大特点(封装、继承、多态)3、C++的内存管理4、C++异常处理5、C++文件处理6、C++模板7、C++ STL库(C++98 、C++11、C++14、C++17 、C++20)二、方向(服务器、GUI...

2020-02-26 11:36:02 655

转载 Linux Shell超详细系列教程

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声...

2019-12-01 18:23:27 167

基于IAP15F2K61S2的电子钟设计.zip

基于IAP15F2K61S2的电子钟设计.zip

2021-08-25

空空如也

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

TA关注的人

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