自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 联合体(共用体) 和 位域 的使用详细解析

联合体(共用体) 和 位域 的使用详细解析

2024-01-25 18:19:29 1037

原创 esp32-idf eclipse 分区表(partition table / NVS)的读写demo

分区表中的 partition table 和 NVS

2024-01-22 17:09:18 1132

原创 esp32-idf eclipse 定时器的使用demo

定时器的使用demo

2024-01-18 21:19:04 1018

原创 esp32-idf Eclipse Log日志打印demo

Log日志打印

2024-01-16 21:25:19 611

原创 认识定时器

软件延时,定时器,晶振,时钟周期,机器周期

2022-10-10 01:18:00 803 1

原创 C++ 成员变量和成员函数分开存储

在 C++ 中,类内的成员变量和成员函数分开存储只有非静态成员变量才属于类的对象上#include <iostream>#include <cstdio>using namespace std;//成员变量 和 成员函数 分开存储的class Person{ int m_A; //非静态成员变量,属于类的对象上 static int m_B; //静态成员变量 ,不属于类的对象上 void func(){}

2022-02-14 00:18:53 504

原创 C++ 静态成员

静态成员就是在成员变量和成员函数前加上关键字 static ,称为 静态成员静态成员分为:静态成员变量 所有对象共享一份数据 在编译阶段分配内存 类内声明,类外初始化 静态成员函数 所有对象共享同一个函数 静态成员函数只能访问静态成员变量 ...

2022-02-12 01:05:46 556

原创 C++ 类对象作为类成员

class A { }class B { A a;}B 类中有对象 A 作为成员,A 为对象成员那么当创建B对象时,A与B 的构造与析构的先后顺序之别。#include <iostream>#include <cstdio>using namespace std;class Phone{public: Phone(string name) { m_Pname = name; cou...

2022-01-06 20:27:12 1153 1

原创 C++ 初始化列表

作用:C++ 提供了初始化列表语法,用来初始化属性语法:构造函数():属性1(值1),属性2(值2)....{ }1、传统初始化操作#include <iostream>using namespace std;//初始化列表class Person {public: //传统初始化操作 Person(int a,int b,int c) { m_a = a; m_b = b; m_c = c; } int m_a; int m_b

2021-11-24 19:54:38 1780

原创 Visual studio如何快速注释和解注释

注释:选定要注释的区域:ctrl+K,然后再ctrl+C。解注释:选定要注释的区域:ctrl+K,然后再ctrl+U。

2021-11-24 11:22:54 1595

原创 PCB设计-认识原理图库符号和元件模型的绘制

目录1、原理图库符号的认识2、常用电容元件创建实例3、IC类元件的创建-CH340C4、IC类-主控STM32F103RDT65、Symbol创建向导介绍​6、二极管—异形元件库创建7、三极管—异形元件库创建​8、其他元件库模型的绘制9、元件的复制操作10、元件的检查与报告1、原理图库符号的认识2、常用电容元件创建实例3、IC类元件的创建-CH340C4、IC类-主控STM32F103RDT65、Symbol创...

2021-11-22 15:25:26 968

原创 AD21软件系统参数的一些基本配置(初学)

我们新安装 Autium Designer 软件之后,往往要对软件系统做一些基本的参数配置,以方便我们 pcb 设计时的操作。 首先得进入软件系统的基本参数配置页面:然后就是每个参数选项的配置:System(系统):Data Management(数据管理):Schematic(原理图选项):PCB...

2021-11-22 10:47:12 4495

转载 PCB各层的含义

转自:https://blog.csdn.net/zhanglianpin/article/details/44174423(原作者不详)PCB层的定义:阻焊层:solder mask,是指板子上要上绿油的部分;因为它是负片输出,所以实际上有solder mask的部分实际效果并不上绿油,而是镀锡,呈银白色!助焊层:paste mask,是机器贴片时要用的,是对应所有贴片元件的焊盘的,大小与toplayer/bottomlayer层一样,是用来开钢网漏锡用的。要点:两个层都是上...

2021-11-20 15:50:06 1444

原创 Altium_Designer PCB布线不受控制

我这里是单位问题:之前左下角网格Grid设置为 mm,所以我在指定布线规则的时候,系统也是按照 mm 来的解决方法:英文输入的情况下,按快捷键 Q 切换网格单位为 mil 就可以了

2021-11-02 16:25:31 1964

原创 C++ 对象的初始化和清理(构造函数和析构函数)

生活中我们买的电子产品否基本会出厂设置,在某一天我们不用时候也会删除一些自己信息数据保证安全 c++ 中的面向对象来源于生活,每个对象也都会又初始设置以及对象销毁前的清理数据的设置1、构造函数和析构函数对象的初始化和清理也是两个非常重要的安全问题 一个对象或者变量没有初始化状态,对其使用后果是未知 同样的使用完一个对象或变量,没有及时的清理,也会造成一定的安全问题C++利用了构造函数和析构函数解决上述问题,这两个函数将会被编译器自动调用,完成对象的初始化和清理...

2021-10-30 18:48:33 442

原创 Altium_Designer报错为 unknownpin 的常见情况

Altium Designer 在设计PCB的时候出现 unknownpin的常见错误:封装没有找到,原理图没有填写封装名称 管脚号没有,导致网络没有导入进行 管脚号不匹配 管脚号缺失我这里的 footpin not found 是因为导入的封装是错误的。还有一个就是它的管脚号是反的。...

2021-10-29 11:14:17 4241

原创 C++ struct和class的区别

在c++中 struct和class唯一的区别就在于默认的访问权限不同区别:struct 默认权限为公共 class 默认权限为私有#include <iostream>#include <cstdio>using namespace std;class C1{ int m_data; //默认权限:私有 private};struct SS{ int m_num; //默认权限:公共 public};int main(){

2021-10-27 15:52:08 80

原创 C++ 封装

c++面向对象的三大特性:封装、继承、多态c++认为万物皆可为对象,对象上有其属性和行为例如:人可以作为对象,属性有姓名,年龄。行为有吃饭,睡觉 车可以作为对象,属性有轮胎,方向盘,行为有载人,放音乐 具有相同性质的对象,我们可以抽象称为类。人属于人类,车属于车类。封装的意义:将属性和行为作为一个整体,表现生活中的事物 将属性和行为加以权限控制在设计类的时候,属性和行为写在一起,表现事物语法:class 类名{ 访问权限:属性...

2021-10-27 10:04:12 137

原创 C++ 常量引用

作用:常量引用主要用来修饰形参,防止误操作在函数形参列表中,可以加const修饰形参,防止形参改变实参引用和常量引用的区别:引用:int &a = 10; //错误。不合法,引用必须是引一块合法的内存空间int b =10; int &c = b; //合法,引用的的合法数据是栈区或者堆区常量引用:const int &ref = 10; //合法加上const之后,编译器将代码会自动优化修改,int temp = 10;...

2021-10-26 20:50:21 337

原创 C++ 函数重载

函数重载概述作用:函数名可以相同,提高复用性函数重载满足条件同一个作用域下 函数名称相同 函数参数类型不同,或者个数不同,或者顺序不同注意:函数的返回值不可以作为函数重载的条件例子:#include <iostream>using namespace std;void func(double a){ cout << "double a"<< endl;}void func(int a){ cout <&...

2021-10-26 14:48:26 139

原创 C++ new操作符

c++中利用 new操作符在堆中开辟数据堆区开辟的数据,由程序员手动开辟,手动释放,释放利用操作符 delete语法: new 数据类型利用new创建的数据,会返回该数据对应的类型的指针#include <iostream>using namespace std;//1、new的基本语法int * func() { //在堆区创建数据类型 //new 返回是 该数据类型的指针 int *p = new int(10); return p;.

2021-10-19 15:38:58 141

原创 C++ 冒泡排序

数组 {4,2,8,0,5,7,1,3,9}规律:排序总轮数 = 元素个数 - 1每轮对比次数 = 元素个数 - 排序轮数 - 1#include <iostream>using namespace std;int main(){ int i = 0; int j = 0; int tmp; //冒泡排序 int arr[] = {4,7,5,2,3,1,9,6,...

2021-10-19 14:18:05 199

原创 寄存器是什么

1、什么是储存器映射 存储器本身不具备地址信息,它的地址是由芯片厂商或用户分配,给存储器分配地址的过程就称为存储器映射。2、什么是寄存器映射 给有特定功能的内存单元取一个别名,这个别名就是我们经常说的寄存器,这个给已经分配好地址的有特定功能的内存单元取别名的过程就叫寄存器映射。...

2021-10-06 09:02:32 1250

原创 stm32的命名及选型介绍

数据手册-引脚定义:引脚的功能定义解读:

2021-10-05 11:12:17 112

原创 ISP简介(stm32)

1、 ISP (In-System Programming) 在系统可编程,指电路板上的空白器件可以编程写入最终用户代码,而不需要从电路板上取下器件,已经编程的器件也可以用ISP方式擦除或再编程。 2、ISP 通过芯片内部的自举程序(即Bootloader,由芯片厂家烧写好,不得更改)来选定一种串行的外设,对芯片内部的 FLASH 进行编程。 3、最常用的ISP方式就是通过串口下载,最主要的优点就是成本低,缺点时只能用于下载程序,不能硬件仿真。 ...

2021-10-05 10:10:32 4546 1

原创 C ++ goto语句

作用:可以无条件跳转语句语法:goto 标记;解析:如果标记的名称存在,执行到 goto 语句时,会跳转到标识的位置

2021-09-24 09:57:30 115

原创 continue 和 break 的区别

#include <iostream>#include <cstdio>using namespace std;int main(){ int i; for(i=0;i<=100;i++) { //如果是奇数输出,偶数不输出 if(i % 2 == 0){ continue; //可以筛选条件,执行到此就不再向下执行,执行下一次循环 //break; .

2021-09-23 23:40:13 83

转载 c++ 引用

引入 C语言中函数有两种传参的方式: 传值和传址。以传值方式, 在函数调用过程中会生成一份临时变量用形参代替, 最终把实参的值传递给新分配的临时变量即形参。 它的优点是避免了函数调用的副作用, 确无法改变形参的值。 如果要改变实参的值, 只 能通过指针传递。void swap (int left, int right){int temp = left;left = right;right = temp;}void swap (int *_pleft , int * _pRi...

2021-09-18 19:13:32 71

原创 C++ 三目运算符

语法:表达式1?表达式2:表达式3如果表达式1的值为真,执行表达式2,并返回表达式2的结果如果表达式1的值为假,执行表达式3,并返回表达式3的结果#include <iostream>using namespace std;int main(){ int a = 10; int b = 20; int c; c = a > b ? a : b; cout << "c =..

2021-09-16 23:52:34 881

原创 C++ 用代码查看字符的ASCII值

字符在计算机内存中的存放并不是字符,而是转换成一串二进制的数字。#include <iostream>#include <cstdio>using namespace std;int main(){ char ch1 = 'a'; char ch2 = 'A'; cout << int(ch1) << endl; //将字符强转成整形数,也就是我们能看懂的十进制数 cout <&lt

2021-09-14 15:08:05 5471

原创 C++ 定义常量的两种方式

常量的作用: 用于记录程序中不可更改的数据C++定义常量的方式有两种: 1、#define 宏常量 通常在文件上方定义 2、const 修饰的变量 通常在变量定义前加关键字 const#include <iostream>using namespace std;//1、宏常量#define Day 7int main(){ //Day ...

2021-09-09 01:16:43 4447

原创 C++ 基本语法和程序结构

C++ 程序可以定义为对象的集合,这些对象通过调用彼此的方法进行交互。现在让我们简要地看一下什么是类、对象,方法、即时变量。对象 -对象具有状态和行为。例如:一只狗的状态 - 颜色、名称、品种,行为 - 摇动、叫唤、吃。对象是类的实例。 类 -类可以定义为描述对象行为/状态的模板/蓝图。 方法 -从基本上说,一个方法表示一种行为。一个类可以包含多个方法。可以在方法中写入逻辑、操作数据以及执行所有的动作。 即时变量 -每个对象都有其独特的即时变量。对象的状态是由这些即时变量的值创建的。...

2021-09-07 13:08:36 131

转载 C语言:static关键字

在 C 语言中,static 关键字不仅可以用来修饰变量,还可以用来修饰函数。在使用 static 关键字修饰变量时,我们称此变量为静态变量。静态变量的存储方式与全局变量一样,都是静态存储方式。但这里需要特别说明的是,静态变量属于静态存储方式,属于静态存储方式的变量却不一定就是静态变量。例如,全局变量虽然属于静态存储方式,但并不是静态变量,它必须由 static 加以定义后才能成为静态全局变量。1、隐藏与隔离的作用上面已经阐述过,全局变量虽然属于静态...

2021-09-07 12:59:42 325

转载 char *p和 char p[]的区别

#include <stdio.h>#include <string.h>void go(char *str,int len){ strcpy(str,"yujinchi");}int main(){ char str[] = "yuJinChi love tangLiNa"; //char p[]是一个数组,已经分配内存,是将"abc123ABC" 复制到该内存里面,这个内存是可读写的 //char *str.

2021-08-23 20:09:43 2606

原创 基于简单字符设备驱动框架编写代码驱动io_2

上层测试代码:#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <stdio.h>int main(){ int fd; int cmd; int data; fd = open("/dev/pin4",O_RDWR); if(fd < 0){ .

2021-08-16 18:09:01 152

原创 基于简单字符设备驱动框架编写驱动代码驱动引脚

驱动两大利器:电路图:作用:通过电路图找到寄存器 和芯片手册 芯片手册第六章: 寄存器名字 GPFSEL0 GPIO Function Select 0 功能选择 输出/输入 (GPIO Function Select Registers) 32位 14-12 001 = GPIO Pin4 is an output...

2021-08-15 20:46:29 84

转载 总线地址,物理地址,虚拟地址

地址: 1.地址总线 地址总线 (Address Bus;又称:位址总线) 属于一种电脑总线 (一部份),是由CPU 或有DMA 能力的单元,用来沟通这些单元想要存取(读取/写入)电脑内存元件/地方的实体位址。(学术理解) cpu能够访问内存的范围(通俗理解) 现象:装了32位的win7系统,明明内存条8G,可是系统只识别了3.8G,装了64位,才能识别8G 32位能表示/访问 4,294,967,296 bit (2的...

2021-08-14 23:25:48 759

转载 图示linux系统架构- shell 的认识

我以下图为基础,说明Linux的架构(architecture)。(该图参考《Advanced Programming in Unix Environment》)最内层是硬件,最外层是用户常用的应用,比如说firefox浏览器,evolution查看邮件,一个计算流体模型等等。硬件是物质基础,而应用提供服务。但在两者之间,还要经过一番周折。还记得Linux启动。Linux首先启动内核 (kernel),内核是一段计算机程序,这个程序直接管理管理硬件,包括CPU、内...

2021-08-14 22:38:38 445

转载 linux文件系统认识

文件系统 1. 什么是文件系统? 常规认知: 根目录 文件系统是操作系统用于明确存储设备组织文件的方法。 以上说的方法:就是文件管理系统(程序),简称文件系统 2. 文件系统(文件管理系统的方法)的种类有哪些? FAT VFAT NTFS EXT1/2/3/4 HFS .... 树莓派查看文件系统的命令: df -T vfat : boot(bootloader, kerne...

2021-08-14 17:08:50 97

原创 linux-树莓派修改开机启动

如何做到一个程序在开机的时候就启动-----修改开机启动例子:ktv点歌机打开之后是看不到linux系统的,只能看到点歌的界面法一:(一般不这样做)vi bootmisc.sh.conf (修改开机启动配置文件)在开机启动文件的后面,加上你开机启动的命令,或者程序但是一般不这样做,一般是模仿他多做一份配置。法二:(通常使用这个方法)在 etc 目录下修改vi rc.local...

2021-08-14 16:42:19 344

空空如也

空空如也

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

TA关注的人

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