自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 51单片机学习笔记之中断(外部中断、定时器中断、中断嵌套)

要学习51单片机中断的朋友,拥有这一篇博文就够了,深入浅出,里面包含了寄存器,外部中断、定时器中断、中断嵌套等的讲解,还有代码实战。快一万字,写得不容易,还请大家点赞支持一下,后续持续更新(一)寄存器1.什么是寄存器2.寄存器怎么用(二)中断1.中断允许寄存器IEEX0ET0EX1ET1ESEA使用方法2.中断优先级寄存器IPPS——串行口中断优先级控制位PT1——定时器/计数器1中断优先级控制位PX1——外部中断1中断优先级控制位PT0——定时器/计数器0中断优先级控制位PX0——外部中断0中断优先级控制

2021-08-04 01:53:02 33096 8

原创 手把手教你用Arduino MEGA 2560+AS608指纹模块+舵机实现指纹锁,超详细,不要错过哦!

#include <Servo.h>Servo myservo; int pos = 0; #include <Adafruit_Fingerprint.h>Adafruit_Fingerprint finger = Adafruit_Fingerprint(&Serial3);void setup() { myservo.attach(9); // attaches the servo on pin 9 to the servo object S

2021-08-01 16:01:42 9056 95

原创 让51单片机八段数码管亮起来(静态显示和动态显示、共阴极和共阳极、位码和段码)

51单片机数码管的显示一、数码管基础部分1.八段数码管的共阴极和共阳极2.八段数码管的位码和段码二、动态显示三级目录三、静态显示一、数码管基础部分1.八段数码管的共阴极和共阳极一个八段数码管由八段二极管组成即a,b,c,d,e,f,g,dop(点),共八段。其中数码管分两种,共阴极和共阳极(共阳极:数码管的阳极全部接在一起,低电平点亮它,如果是共阳极,低电平点亮它。)2.八段数码管的位码和段码一般四位数码管,有四个引脚控制选取哪一位数码管(位选),还有8位段选是公用的,就是当位选为第一位时,段选

2021-07-31 22:04:58 38735 3

原创 51单片机用三种方法实现流水灯(超详细)

51单片机用三种方法实现流水灯一、数组流水灯二、移位函数流水灯三、移位运算符流水灯一、数组流水灯定义一组数组分别对应点亮LED1~7然后利用for循环赋值给p2从而实现流水灯#include <reg52.h>#define uchar unsigned char#define uint unsigned intuchar code table[8] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //数组 // 函数功能:毫秒延时

2021-07-23 16:36:02 47500 14

原创 初识Matter协议

什么是MatterMatter有什么用Matter的核心优势Matter网络的组网方式

2022-11-20 22:37:42 1037 1

原创 枚举与#define 宏的区别

枚举类型的使用方法枚举与#define 宏的区别

2022-07-05 16:37:59 594 2

原创 如何用程序确认当前系统的存储模式?

union 关键字的用法与 struct 的用法非常类似。union 维护足够的空间来置放多个数据成员中的“一种”,而不是为每一个数据成员配置空间,在 union 中所有的数据成员共用一个空间,同一时间只能储存其中一个数据成员,所有的数据成员具有相同的起始地址。一个 union 只配置一个足够大的空间以来容纳最大长度的数据成员,以上例而言,最大长度是 double 型态,所以 StateMachine 的空间大小就是 double 数据类型的大小。p.i 的值应该为多少呢?其值由系统所采用的 存储模式

2022-07-05 15:53:57 322

原创 柔性数组到底如何使用呢?

用途 : 长度为0的数组的主要用途是为了满足需要变长度的结构体用法 : 在一个结构体的最后, 申明一个长度为0的数组, 就可以使得这个结构体是可变长的. 对于编译器来说, 此时长度为0的数组并不占用空间, 因为数组名本身不占空间, 它只是一个偏移量, 数组名这个符号本身代表了一个不可修改的地址常量C99 中,结构中的最后一个元素允许是未知大小的数组,这就叫做柔性数组成员,但结构中的柔性数组成员前面必须至少一个其他成员。柔性数组成员允许结构中包含一个大小可变的数组。...

2022-07-05 10:22:03 273

原创 空结构体多大?

空结构体多大?struct 关键字

2022-07-04 23:52:42 329

原创 extern关键字

1.extern 可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,下面的代码用到的这些变量或函数是外来的,不是本文件定义的,提示编译器遇到此变量和函数时在其他模块中寻找其定义。就好比在本文件中给这些外来的变量或函数带了顶帽子,告诉本文件中所有代码,这些家伙不是土著。C语言规定,如果在定义函数时省略extern,则默认为外部函数。extern 修饰的变量或函数是定义还是声明?答:是声明2.至于 extern“C”的用法,一般认为属于 C++的范畴,这里就先不讨论。extern "C"的主要作

2022-07-04 23:39:44 230

原创 volatile关键字

volatile 关键字和 const 一样是一种类型修饰符,用它修饰的变量表示可以被某些编译器未知的因素更改,比如操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。先看看下面的例子:这时候编译器对代码进行优化,因为在(1)、(2)两条语句中,i 没有被用作左值。这时候编译器认为 i 的值没有发生改变,所以在(1)语句时从内存中取出 i 的值赋给 j 之后,这个值并没有被丢掉,而是在(2)语句时继续用这个值给 k 赋值。编译器

2022-07-04 18:22:27 99

原创 const关键字

const关键字const 修饰的只读变量节省空间,避免不必要的内存分配,同时提高效率修饰一般变量修饰数组修饰指针修饰函数的参数修饰函数的返回值在另一连接文件中引用 const 只读变量:

2022-07-04 17:00:47 138

原创 return 关键字

return 用来终止一个函数并返回其后面跟着的值给函数的调用者。return关键字退出函数运行的同时,给函数返回怎么样的数据?是什么类型的数据?是int类型?char类型?还是void类型?其实,return返回的数据类型是由函数定义决定的,函数定义的时候,有“返回数据类型”这样的属性,它决定了return返回的数据类型。return 可以返回些什么东西呢?看下面例子:str 属于局部变量,位于栈内存中,在 Func 结束的时候被释放,所以返回 str 将导致错误。return 语句不可返回指向“

2022-07-04 15:56:30 170

原创 void关键字

void关键字void 修饰函数返回值和参数void 指针如果函数的参数可以是任意类型指针,那么应声明其参数为 void *。void 不能代表一个真实的变量

2022-07-04 15:38:23 140

原创 case 关键字后面的值有什么要求吗?

case 关键字case 关键字后面的值有什么要求吗?case语句的排列顺序使用 case 语句的其他注意事项

2022-07-04 10:30:31 3051 1

原创 变量与“零值”的比较

变量与“零值”的比较bool 变量与“零值”进行比较整型变量与“零值”比较float 变量与“零值”进行比较指针变量与“零值”进行比较

2022-07-03 23:01:13 256

原创 signed、unsigned关键字

我们知道计算机底层只认识 0、1.任何数据到了底层都会变计算转换成 0、1。那负数怎么存储呢?肯定这个“-”号是无法存入内存的,怎么办?很好办,做个标记。把基本数据类型的最高位腾出来,用来存符号,同时约定如下:最高位如果是 1,表明这个数是负数,其值为除最高位以外的剩余位的值添上这个“-”号;如果最高位是 0,表明这个数是正数,其值为除最高位以外的剩余位的值。...

2022-07-03 17:18:20 131

原创 sizeof关键字

1.sizeof 是关键字不是函数,它是 32 个关键字之一。2.sizeof 在计算变量所占空间大小时,括号可以省略,而计算类型(模子)大小时不能省略。一般情况下,咱也别偷这个懒,乖乖的写上括号。3.sizeof返回的占用空间大小是为这个变量开辟的大小,而不是它用到的空间。所以对结构体用的时候,大多情况下得考虑字节对齐的问题了。4.sizeof返回的数据类型是unsigned int;一个无符号的数和有符号的数运算,大多编译器都是转化成无符号类型运算。5.要注意数组名和指针变量的区别。通常情况下,

2022-07-03 11:14:10 636

原创 什么是数据类型?数据类型有什么用?

数据类型基本数据类型什么是数据类型数据类型有什么用

2022-07-02 13:45:45 865

原创 static关键字

static关键字修饰变量静态全局变量静态局部变量修饰函数static的第三个作用是默认初始化为0static全局变量与普通的全局变量有什么区别 ?static局部变量和普通局部变量有什么区别 ?static函数与普通函数有什么区别?...

2022-07-02 12:35:47 92

原创 register关键字

register关键字前言register关键字的作用register关键字的应用场景register关键字的注意事项

2022-07-02 10:44:46 142

原创 什么是定义?什么是声明?它们有何区别?

什么是定义?什么是声明?它们有何区别?什么是定义?什么是声明?它们有什么区别?

2022-07-01 23:21:15 216 1

原创 基于STM32F103ZET6库函数串口实验

基于STM32F103ZET6库函数串口实验本次实验实现如下功能串口设置的一般步骤可以总结为如下几个步骤与串口基本配置直接相关的几个固件库函数1.串口时钟使能。2.串口复位。3.串口参数初始化。4..数据发送与接收。5.串口状态。6.串口使能。7.开启串口响应中断。8.获取相应中断状态。硬件设计软件设计...

2022-06-29 08:00:00 1061

原创 基于STM32F103ZET6库函数PWM输出实验

基于STM32F103ZET6库函数PWM输出实验PWM 简介硬件设计软件设计

2022-06-28 09:00:00 1089

原创 基于STM32F103ZET6库函数定时器中断实验

基于STM32F103ZET6库函数定时器中断实验STM32F1 通用定时器简介定时器相关的库函数主要集中在固件库文件 stm32f10x_tim.h 和 stm32f10x_tim.c 文件中硬件设计软件设计

2022-06-28 08:00:00 1041

原创 基于STM32F103ZET6库函数独立看门狗(IWDG)实验

基于STM32F103ZET6库函数独立看门狗(IWDG)实验STM32 独立看门狗简介硬件设计软件设计

2022-06-27 17:03:12 595

原创 基于STM32F103ZET6库函数外部中断实验

基于STM32F103ZET6库函数外部中断实验外部中断简介IO 口外部中断的一般步骤软件设计

2022-06-27 15:47:21 630

原创 基于STM32F103ZET6库函数按键输入实验

基于STM32F103ZET6库函数按键输入实验GPIO_ReadInputDataBit函数硬件设计软件设计

2022-06-26 15:46:40 1105

原创 基于STM32F103ZET6库函数蜂鸣器实验

基于STM32F103ZET6库函数蜂鸣器实验蜂鸣器类型有无源驱动方式硬件设计原理图软件设计

2022-06-20 16:07:59 1688

原创 基于STM32F103ZET6库函数跑马灯实验

基于STM32F103ZET6库函数跑马灯实验IO的8种模式GPIO 相关的函数GPIO_Init函数的声明GPIO_Init函数的定义GPIO_Init函数的使用GPIO_ReadInputDataBitGPIO_WriteGPIO_SetBits、 GPIO_ResetBitsIO 操作步骤操作 IO 口输出高低电平的三种方法位带操作库函数操作寄存器操作...

2022-06-20 15:29:09 343

原创 Linux网络编程之select模型

select模型服务器select模型客户端select模型

2022-05-22 21:20:46 192

原创 Linux网络编程之IO模型以及多路复用模型

IO模型以及多路复用模型阻塞I/O模式读阻塞写阻塞非阻塞I/O模式非阻塞模型实现I/O多路复用步骤信号驱动I/O

2022-05-22 21:02:18 101

原创 Linux网络编程之UDP编程API

UDP编程APIrecv()函数send()函数sendto()/recvfrom()函数UDP编程API的服务器UDP编程API的客户端头文件

2022-05-21 16:12:31 285

原创 Linux网络编程之TCP编程API

TCP编程APIsocket()函数bind()函数listen()函数accept()函数connect()函数TCP循环服务器模型TCP多进程并发服务器TCP多线程服务器

2022-05-21 13:47:31 337 1

原创 Linux网络编程之Socket、IP地址、端口号、字节序

Socket、IP地址、端口号、字节序SocketSocket类型IP地址端口号字节序字节序转换函数IP地址的转换函数

2022-05-20 10:02:00 207

原创 Linux网络编程之网络的封包和拆包

网络的封包和拆包TCP/IP协议通信模型网络的封包和拆包

2022-05-19 22:33:48 385

原创 Linux网络编程之网络的分层和各层协议

网络的分层和各层协议网络的分层各层典型的协议网络接口层与物理层网络层传输层应用层

2022-05-19 21:52:52 321

原创 Linux系统编程之线程概念

线程概念什么是线程Linux内核线程实现原理线程共享资源线程非共享资源线程优缺点

2022-05-18 20:49:34 63

原创 Linux系统编程之会话

创建一个会话

2022-05-18 08:37:21 178

原创 Linux系统编程之捕捉SIGCHLD

用捕捉SIGCHLD来结束子进程

2022-05-17 22:28:50 137

Arduino系列之压力传感器的使用以及用OLED显示出来检测到的数据库文件和源码

Arduino系列之压力传感器的使用以及用OLED显示出来检测到的数据库文件和源码

2023-04-12

keil 芯片支持包Keil.STM32G0xx-DFP.1.4.0

keil 芯片支持包Keil.STM32G0xx_DFP.1.4.0

2023-02-25

STM32 ST-LINK Utility v4.6.0

STM32 ST-LINK Utility v4.6.0

2023-01-12

STM32F0、F1、F4固件库

STM32F0、F1、F4固件库

2023-01-03

普中51A2初学者教程 (内含开发工具、原理图、代码、芯片资料)

适合51单片机初学者

2022-01-13

空空如也

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

TA关注的人

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