自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 关于单片机CPU如何控制相关引脚

如图所示,芯片的寄存器内有一块叫P2的地址对应着图中P20-P27(8个引脚),而每个引脚对应着一个LED灯(D1-D8),右边接正极(VCC)。在寄存器中每一块都有一根导线与引脚对应,通过cpu改变寄存器内的数据(0或1),通过驱动器来控制对于的引脚。即:P20-P27对应的0111 1111,故除了P20引脚是低电平,其他7个引脚均设置为高电平。(1)对应的头文件REGX52.H属于芯片专属的头文件,在芯片的sdk中可以找到。

2023-11-02 11:26:25 670

原创 嵌入式芯片-NE555

目录1、比较器(运放)2、相反门(非门)3、或非门4、双稳态触发器5、NE555功能框图

2023-09-28 08:56:51 185

原创 嵌入式学习 - 用电控制电

计算机的工作的核心原理:用电去控制电。所有的电子元件都有数据手册,不同型号的电子元件需要翻阅对应的数据手册。

2023-09-20 10:51:08 341

原创 嵌入式基础-常见的电子元件和三大定理

这个定理的主要内容是,一个含有独立电源的线性电阻单口网络N,就端口特性而言,可以等效为一个电压源和电阻串联的单口网络。基尔霍夫电流定律指出:在任意一个时刻,流出或流入一个节点的电流代数和为零,也就是说,对于一个电路中的任意节点,总的流入电流等于总的流出电流。绝对零度:即-273.15摄氏度,它是所有物质分子的平均动能为零时的温度,意味着物质不再具有温度或热能,此时物体的原子核也不会运动,也就不会导致电子的损耗。用于限制电路的大小,R=U/I,其中R表示电阻值,V表示电压,I表示电流。低温超导的适用性不强。

2023-09-18 16:41:02 218

原创 电阻和电容

这种情况会对电路和电器造成损害,因为它会导致电流过大,超出电器的承受范围。在电路中,如果开关没有闭合、导线没有连接好或者电器出现故障,都可能导致电路出现断路。断路会影响电路的正常工作,因为它切断了电流的流动,使得电路中的电器无法正常工作。3、额定功率:额定功率P=I*I*R=I*U,也就是说额定功率代表了该电阻的正常接受的电流,如果电流过大可能会导致电阻烧坏,电阻无法正常使用,从而形成断路或者短路。总的来说,断路和短路的主要区别在于电路中是否有电流通过。而在短路状态下,电流可以通过电路,但不会经过用电器。

2023-09-11 16:26:33 641

原创 嵌入式-电子电路四个基本定律

基尔霍夫电压定律是电路中电压所遵循的基本规律,是分析和计算较为复杂电路的基础,它描述了当一个电子元器件通过回路时,被感应到的电压总和等于提供电源的总电压。内容是:电流通过导体产生的热量跟电流的二次方成正比,跟导体的电阻成正比,跟通电时间成正比。欧姆定律是关于导体两端电压与导体中电流关系的定律。具体表述为:在同一电路中,通过某段导体的电流跟这段导体两端的电压成正比,跟这段导体的电阻成反比。基尔霍夫电流定律也称为节点电流定律,它指出在电路中,任一个节点上,在任一时刻,流入节点的电流之和等于流出节点的电流之和。

2023-09-08 13:43:41 315

原创 嵌入式基础-电路

电压的国际单位制为伏特(V,简称伏),常用的单位还有毫伏(mV)、微伏(μV)、千伏(kV)等。电压是电路中形成电流的原因,是驱动电路中的电荷发生定向运动的原因,而电源的作用是为用电器两端提供电压,电压越高,电流速度越快,电流越大。电流的大小和方向随时间变化的叫交流电,电流的大小和方向不随时间变化的叫直流电。首先,电路中的电压是由电源产生的电势差,使得电子(负电荷)从负极流向正极。导体的电阻通常用字母R表示,其定义式为:R = ΔV/ΔI,其中R代表电阻,ΔV代表电压的变化,ΔI代表电流的变化。

2023-09-05 17:52:02 2742

原创 单片机简介

硬盘 Flash。主板(显卡) 外设。电脑: :单片机。内存(DRAM) SRAM。单片机的优点:体积小、功耗低、集成度高、使用方便、扩展灵活。CISC:复杂指令集。

2023-09-04 14:12:46 481

原创 Tensorflow2-初识

TensorFlow2是一个深度学习框架,可以理解为一个工具,有谷歌的全力支持,具有易用、灵活、可扩展、性能优越、良好的社区资源等优点。

2023-08-03 16:49:11 548

原创 Linux-open、read、write函数

记录:因为很少用文件函数,所以在一次线下面试的过程中,对方让我手写一个读文件的函数,我直接呆住了,我知道open和read函数,但是让我用手写瞬间就呆住了,不知道怎么下手,可能是太紧张的问题,10秒后我放弃了,可是手写函数真的很呆啊,那些参数我记不得哇。表示设置文件访问权限的初始值,比如0644表示-rw-r–r–,也可以用S_IRUSR、S_IWUSR等宏定义按位或起来表示,具体情况可以百度 或者 man 2 open命令。O_APPEND:将新写入的数据放到文件的末尾,不会覆盖前面已有的数据。

2023-07-28 12:38:39 344

原创 GDB调试-基础命令

(2)finsh命令,用于一次性执行完当前函数的剩余部分,然后停止在调用该函数的位置。(3)set命令,例如set args 参数1 参数2 用于设置main函数的参数,想了解set的其他使用可以百度。(1)如果可执行文件发生段错误,可以进入gdb调试直接运行run命令,代码会在段错误发生的位置停止。7.继续运行(continue、next/n、start/s)3.进入GDB调试(gdb 可调试的可执行文件)(4)info b,查询当前调试的全部断点消息。(5)ptype 变量,查询变量数据类型。

2023-07-27 12:09:03 165

原创 makefile项目管理-2个函数和3个变量

删除变量obj的所有文件,其中rm前面的-的作用是,即使发生错误,也不会报错,用作是即使obj里面有一些文件可能已经被删除了,也不会报错,进行执行rm删除命令。关于$<需要补充一点:如果将该变量应用在模式规则中,它可将依赖条件列表中的依赖依次取出,套用模式规则(模式规则下面会解释)。这两个函数的作用,在写makefile文件时,可以不用把所有依赖名都写上,而是采用参数的形式替换掉依赖文件名,可以防止依赖写错写漏掉问题,将参数3($(src))中,包含参数1(%.c)的部分,替换为参数2(%.o)。

2023-07-18 19:59:32 114

原创 makefile项目管理-规则和过程

判断机制:执行make命令时,会判断文件的最后一次更新时间,如果依赖文件的时间比目标文件晚,说明依赖文件发生了更新,那么该命令需要重新执行,反之该命令就会认为已经执行且未发生更新,就不会产生不必要的命令执行。这次代码将gcc编译分成了两个阶段,执行make命令后,在执行第一个命令的时候会发现文件夹中没有hello.o此时就会寻找makefile文件的命令集中是否存在命令可以生成该文件,便会先运行第二个命令,然后再执行第一个命令。(2)makefile文件:里面是多个命令的集合,使用make命令执行该文件。

2023-07-18 11:35:01 260

原创 Linux系统编程-静态库和动态库

在学习静态库和头文件的对应之前,先回顾一下C/C++头文件.h的书写。.h文件一般包括对应.cpp的全部声明(函数、宏等等)但是一个完整的库文件(.h和.cpp)可能会在一个程序的不同文件中重复使用,如果重复使用该库文件的两个以上文件要编译成一个可执行文件,那么.h文件里面的声明就会被重复声明,发生大量的声明冲突。此时使用结合#ifndef、#endif的宏定义就显得很重要。//下面这句话的意思就是:如果没有定义_MYLIB_H_这个宏,那么执行#ifndef 和 #endif之间的语句。

2023-07-17 16:05:50 276

原创 Linux/Unix-gcc编译回顾

指定头文件:-I 语法: gcc -I 头文件所在文件夹路径 源文件 -o 生成文件名。1、gcc编译为可执行程序四步骤:预处理->编译->汇编->链接。如果头文件和源文件中同一个文件夹,则不需要指定头文件。注意:-o 用于修改生产的文件名。

2023-07-17 10:06:55 1786

原创 Linux常用命令回顾一

z:gzip压缩 c:创建文件 v:显示过程 f:指定压缩名(如果用gzip2压缩,则z改成j)安装:apt-get install rpm软件包。卸载:apt-get remave rpm软件包。更新:apt-get update rpm软件包。安装:yum install rpm软件包。查询所有安装的包:apt-get list。卸载:yum remave rpm软件包。更新:yum update rpm软件包。查询所有安装的包:yum list。gzip+文件压缩:只能压缩文件,且一次只能压一个。

2023-07-13 10:09:05 256

原创 Go-基本数据整合

注意点:因为本人在同时学习C++和GO,所以需要使用例子区别时,会优先使用C++区别,而且二则直接还是有许多相识之处的。如果想知道它和Java之间的区别可以自行百度。

2023-07-04 15:48:34 456

原创 C++杂谈-友元和操作符重载

我的理解:通过设置友元函数和友元类来让外部函数来访问私有成员,这样虽然破坏了类的封装型和隐藏性,但是提高了程序的运行效率(减少了某些安全性检查的过程)。(注意:在一个cpp文件写两个类以上且类之间有相互调用时,记得提前声明,或者按编译顺序写,不然可能会报错)友元函数和友元类统称友元,在类中添加相关声明,友元类如下:(友元函数类似)由报错可知,非友元类不能访问私有成员。关于类之间的重载,后面再补充。

2023-07-03 18:01:14 378

原创 Go程序结构- package和import

一个.go文件中,可以存在多个init()函数用于初始化。注意:这些init()函数不能被调用和引用,当程序启动时,会按照init()函数声明的顺序自动执行。关于(2)可以理解为如果你的变量或者函数等标识符如果以大写开头,则视为C++中的public,对外可访问。如上述代码:其中变量str和函数add则属于对外不可见,此时即使导入AddDemo包也无法访问,但是可以访问变量Str和函数Add,因为它们以大写开头。在Go语言中包的作用和其他语言中的库或模块的作用类似,用于支持模块化、封装、编译隔离和重用。

2023-07-03 11:07:05 401

原创 GO-变量和指针

(补充:这个例外是我买的 GO语言程序设计 书籍上所说,但是我在检验的过程中发现无论是struct{}还是[0]int 均还是false,我的goversion为:go1.18.4,我估计相关的实现方式已经修改过了)基本思路是:每一个包级别的变量和每一个当前执行函数的局部变量,可以作为追溯该变量的路径的源头,通过指针和其他方式的引用可以找到变量。指针的值是一个变量的地址,不是所以的值都有地址,但所有的变量都有。因为变量的生命周期是通过它是否可达来确定的,所以局部变量可在包含他的循环的一次迭代之外继续存活。

2023-07-02 14:32:40 233

原创 C++class类的详解

使用 new 创建的对象,在不需要使用的情况下需要我们手动使用 delete 删除释放该对象占用的内存,没有使用 new 创建的对象在不使用的情况下系统会自动回收被占用的内存。如果创建对象需要使用的内存较多,则需要使用 new 来动态分配内存,创建对象只需要消耗的内存不多则可以直接分配内存。类的构造和析构函数如果没有定义的话,编译器会给类定义默认public权限的无参的构造和析构函数。在C++中,类的默认访问权限是private,结构体的默认访问权限是public。当存在无参构造时,a后面的()可以省略。

2023-05-30 15:45:54 6263 1

原创 mysql函数详解-count,round

注意点:要分别根据client_id和driver_id进行左连接,并且同时满足banned为No,不然容易一条行驶记录记录在User表中满足了两次(client和driver各一次)。例:count( if(字段=‘值’,1,null) );如果字段为要求值,则为count(1),否则为count(null)。注意:count(k)是所有k不为null情况下的记录条数,所以无论参数是什么,只要不是null都会记录。count(1) | count(0) | count(*):统计全部记录。

2023-05-19 15:04:09 159

原创 mysql时间差函数(timestampdiff,datediff,timediff)

返回time1-time2的相差值(这里似乎不太严格,我的是mysql8.0版本,InnoDB)返回date1和date2的相差天数(注:该函数是date1-date2,可以为负数)(2)当相差时间高于一个小时,返回值就会按照time1-time2返回正负值。frac_second 毫秒(低版本不支持,用second,再除于1000)(注:这里的返回值都是向下取整的整数,例如6.5个月,只会返回6个月)(1)当相差时间低于一个小时,返回值不存在负值。参数:type返回值参数。quarter 季度。

2023-05-18 11:02:25 1137

原创 mysql报错记录

补充:因为mysql要求不能对同一个表进行查询的同时发生修改(报错一),所以需要通过重复查询生成临时子表,但临时子表必须携带别名(报错二)。报错提示:You can't specify target table '表名' for update in FROM clause。报错提示:Every derived table must have its own alias。原因:不能先select出同一表中的某些值,再update这个表(在同一语句中)原因:在sql语句中建立的子表没有别名。

2023-05-15 15:07:39 130

原创 sql查询-leetcode184 and 185

链接:力扣力扣。

2023-05-14 15:14:21 42

原创 leetcode1054:距离相等的条形码

思路:按照条形码出现次数从大到小排序,优先交差安排次数最多的条形码。例:1 1 2 2 4 4 4 4 5 6 (len=10)3.安排5和6:4,2,4,1,4,1,4,5,2,6,2.再安排2和1:4,2,4,1,4,1,4,,2,,注:交差安排可以理解为,先安排偶数位,再安排奇数位。1.先安排4:4,,4,,4,,4,---

2023-05-14 14:26:50 189

原创 socket传输过程及socket()函数详解

但是在面向消息的连接中,因为强调快速传输,而非按序传输,所以当发生较大的数据时,可能会分成几份进行数据传输,此时接收端必须产生相应的接受次数,但是如果遇到“同一协议族中存在多个数据传输方式相同的协议”时,只使用参数1和参数2无法确定具体使用的协议,所以需要参数3:protocol来最终确定协议。在可靠连接中,无论数据有多大只要不超过接收方的数组容量,就不会出现多次调用read()之类的函数,所以在面向连接的套接字中,(5)不可靠的,以数据高速传输为目的的。(4)可靠的,基于字节的面向连接的。

2023-05-13 17:41:00 476

原创 套接字socket-第一章

答:编写程序使两台计算机互相交换数据。答:由操作系统提供的名为"套接字"(socket)的部件,是网络数据传输用的软件设备。答:句柄可以理解为描述符,文件句柄即为文件的描述符,套接字句柄即为套接字描述符,在Linux系统中为int类型,即用一个整数代表某个文件,在Linux中,套接字也是文件的一种,且描述符从3开始使用,因为0,1,2均已经使用。0的描述对象:标准输入(Standard Input)1的描述对象:标准输出(Standard Output)

2023-05-12 14:21:43 104

原创 移位和格雷编码

移位运算和格雷编码

2023-02-23 20:11:38 143

原创 关于Redis持久化-RDB篇

Redis支持RDB和AOF两种,并在Redis4.0运行进行两则混合的-混合持久化持久化功能能有效避免因进程退造成的数据丢失问题,在下次重启时利用之前持久化的文件即可实现数据恢复。注:Redis默认使用的是RDB进行持久化。

2023-01-03 21:07:35 140

原创 Go语言的四种声明

关于Go的声明主要有四种1.变量(var)2.常量(const)3.类型(type)4.函数(func)

2022-12-26 23:40:54 579

原创 力扣-1775通过最少操作次数使数组的和相等

题目链接:力扣https://leetcode.cn/problems/equal-sum-arrays-with-minimum-number-of-operations/description/ 我的代码:(语言:GO)

2022-12-07 21:44:59 88

原创 GO的安装以及GoLand的配置

go语言的安装和编译器的部分使用

2022-12-07 17:19:40 2365

原创 力扣-每日-优美的排列II

优美的排列

2022-09-08 18:18:45 62

原创 设计模式-七个原则和23个设计模式

设计模式简介

2022-09-07 20:44:44 163 1

原创 力扣-每日一题 重新排列单词间的空格

重新排列单词间的空格

2022-09-07 17:41:42 60

原创 GO语言学习-变量2和常量与iota枚举

go语言学习-day3

2022-07-18 14:48:23 91

原创 GO语言-包和变量的使用

可执行文件必须包含packagemain和入口函数main,main包是Go语言程序的入口包,一个Go语言程序必须有且仅有一个main包,并且,一个main包中也必须有且仅有一个main函数。赋值前必须前声明变量,但是自动推导类型(=)会先声明变量再赋值,所以不需要声明。上述情况发生在一个项目包整体运行的情况下,不允许有两个main入口执行程序。但是如果是一个一个文件运行,存在两个文件有main入口依旧会运行。3)可执行程序必须有且仅有一个main包(重要)...

2022-07-17 13:35:33 368

原创 GO语言初识

1.效率GO语言(或称Goland)是云计算时代的C语言GO语言编写的程序可以媲美C/C++的代码速度,而且更加安全,支持并行进程。C/C++提供了很快的执行速度,而Ruby和Python擅长快速开发,而go则处于两者之间,不仅提供高性能的语言,也能让开发更为快速。注切换盘符例如切到D盘直接输入D然后回车选择盘符的文件夹命令是cd这些你们应该都知道。需要go开发环境和开发软件的可以私聊,这里就不放上来了。go语言的运行命令是gorun文件名。go语言的文件名后缀是.go。......

2022-07-16 14:33:26 597

原创 java-不可变集合

不可变集合list,set,map

2022-06-20 09:49:59 274

空空如也

空空如也

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

TA关注的人

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