自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 STM32+阿里云+传感器小项目

这个项目主要是将各类传感器的上报的数据通过WIFI模块上报值阿里云服务器,然后用其配套的云智能APP在手机上显示出来,便且可以控制I/O的开关。对于传感器上报的数据设置了阈值报警和自动处理操作,还可以语音控制相关的I/O的开关。所以用到了很多定时器、ADC、中断的操作。主函数main.c #include "stm32f10x.h" #include "main.h" #include "delay.h" #include "usart1.h" #

2022-02-22 22:07:55 2739 2

原创 STM32F10x双机CAN通信

我们以一块STM32F103C8T6和一块STM32F103ZET6为例,C8T6做主,ZET6做从。主:3个按键:控制3个变量,使用到中断;OLED显示屏:7线的,显示3个变量的值;一块CAN通信模块JTA1050。从:蜂鸣器和2个LED灯的状态变化表示接收主设备信息;一块CAN通信模块JTA1050。主设备代码(因为篇幅有限,就展示主要代码)can.h文件#ifndef __CAN_H#define __CAN_H #include "sys.h"

2022-02-21 22:12:48 1886 2

原创 Qt事件处理机制---画图事件为例

信号和槽就是依赖于Qt的事件处理机制,通常事件是由窗口系统或者Qt自身产生的,用以响应所发生的各类事情,比如用户按下并释放了键盘或者鼠标、窗口因缩放而需要重绘、定时器到期而应有所动作。如下图可以看到事件比信号更原始,一个下压式按钮首先感受到的是鼠标事件,在进行必要的处理以产生按钮下沉继而弹起的视觉效果之后,才会发射clicked()信号。鼠标事件、键盘事件、画图事件、定时器事件等等。Qt已经写好了鼠标、键盘、画图、定时器等事件,这些事件的对象类型都是继承QEvent抽象类,在C++中:抽象类

2022-02-17 20:59:50 1077

原创 Qt简易登入程序练习

UI界面不能再简单的界面了,不用多说了代码#include "login.h"#include "ui_login.h"#include "QMessageBox"#include "QDebug"login::login(QWidget *parent) : QDialog(parent), ui(new Ui::login){ ui->setupUi(this); //信号与槽的绑定 connect(ui->choice

2022-02-16 21:15:06 510

原创 Qt简易计算器

一、项目实现UI界面制作:3个line Edit控件,前面2个为左右操作数,可以输入数字,右边那个显示计算结果,只读不能写;操作符是一个combo Box控件,双击可以添加下滑选项的内容,这里只做了加减乘除;等号是一个pushbutton按键,点击就会计算数值,前提是前面2个框都输入了数字,才可以点击。代码介绍:#include "calculate.h"#include "ui_calculate.h"#include "QDoubleValidator"//数字验.

2022-02-13 20:53:01 1889

原创 C++中的纯虚函数

1、虚函数和纯虚函数之前学过虚函数,语法:virtual 返回值类型 函数名(参数列表),然后这个类也就变成的虚基类,然后子类重写父类的虚函数。纯虚函数,语法:virtual 返回值类型 函数名(参数列表)=0,当类中有了纯虚函数,这个类也称为抽象类。抽象类特点:无法实例化对象,子类必须重写抽象类中的纯虚函数,否则也属于抽象类。class Base{public: virtual void Examp() = 0;//纯虚函数 ~Base() { cout << "

2022-02-10 21:04:30 16421 3

原创 C++中的静态和动态多态

之前学过继承,子类继承父类的属性,多态就是基于继承而来的,我们在如果只用继承,那么子类继承父类的各种属性在编译环节,就已经被确认了,导致代码不灵活。如果继承下来的某个子类不支持某种问题的解决,那么父类就需要重新编写代码,这样这个子类ok了,其他子类却有可能出现问题。多态的好处:灵活,提高代码的可复用性。1、多态的分类1、静态多态:函数重载和运算符重载属于静态多态,复用函数名(编译期多态);2、动态多态:派生类和虚函数实现运行时多态(运行期多态)。函数重载就不必多说了,就是函数名的复用

2022-02-08 20:35:50 2090

原创 C++中的继承------公有、保护和私有

C++中有3种基本的继承----公有、私有和保护。1、公有继承我们大学里面都有公共课和专业课,那么我们可以把公共课作为父类,专业课作为子类,来举个例子。我们要打印多位同学的课程,如果每位同学的公共课都差不多,那我们就不用再重复打印每个人的公共课,而是直接继承公共课这个类,拿到他的各种成员(public下)用作自己的,然后在编写一下自己的课程,就ok了,代码如下:#include<iostream>using namespace std;//父类class baseSubje

2022-02-06 20:16:21 3237

原创 C++中的常函数与常对象

1、常函数首先上代码:class Person{public: void showPerson() const {m_Age = 20; cout << "年龄:" << m_Age << endl; } int m_Age=18; string m_Name;};int main(){ Person p1; p1.showPerson();}出现报错...

2022-02-06 11:15:19 828

原创 C++构造函数和析构函数

对象的初始化和清理是两个非常重要的安全问题,一个对象或者变量没有初始状态,对其使用后果是未知,同样的使用完一个对象或变量,没有及时清理,也会造成—定的安全问题。C++利用了构造函数和析构函数解决上述问题,这两个函数将会被编译器自动调用,完成对象初始化和清理工作。构造函数:主腰作用在于创建对象时为对象的成员属性赋值,构造函数由编译器自动调用,无须手动调用。析构函数:主要作用在于对象销毁前系统自动调用,执行一些清理工作。对象的初始化和清理工作是编译器强制要我们做的事情,因此如果我们不提供构.

2022-02-01 18:15:30 805

原创 C++函数重载

函数重载是C++里的一个比较重要的点,其实也不难函数存在即可使用同一个函数名,实现不同功能的函数实现,提高函数名的复用性。条件: 函数名相同; 参数满足类型不同、个数不同、顺序不同;下面是一些函数重载的例子:void hello(int a)//函数1{ cout<<"This is hello(int a)"<<endl;}1、----参数数量不同void hello(int a,int b)//函数2{ cout&l..

2022-01-31 15:14:23 288

原创 C++中函数默认参数

顾名思义,函数默认参数就是函数本身的参数是有一个值的,如果不需要指定,即使用默认参数值。int add1(int a,int b,int c)//不带默认参数的函数体{ return a+b+c;}int add2int a,int b =10,int c =20)//带默认参数的函数体{ return a+b+c;}可以在上图看到,函数add2在定义的时候就把参数赋值了。默认参数怎么使用?int add(int a ,int =10,int c =20)

2022-01-31 11:23:29 939

原创 C++初学-引用(取别名)

一起C++学习

2022-01-27 22:35:21 1447

空空如也

空空如也

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

TA关注的人

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