- 博客(23)
- 收藏
- 关注
原创 【STM32学习笔记】NVIC中断优先级管理
什么是中断,我们可以理解为你正在打游戏,这个时候有人在敲门,你放下游戏去开门,开完门后你接着打游戏。那么开门这个事件就代表中断,接着打游戏就代表你完成中断事件接着运行主函数。
2024-07-30 01:31:18
1314
原创 【STM32学习笔记】systick滴答定时器
位0:(使能)ENABLE位。和所有外设一样,在使用之前,都需要将使能位置1,也就是开启Systic定时器,写0则关闭。位1:TICKINT位。它是和中断相关的位,SysTick定时器被捆绑在NVIC中,用于产生SYSTICK异常(异常号:15)。Systick中断的优先级也可以设置。将这一位置1后,VAL寄存器中的值减到0时就会进入中断。如果写0,VAL寄存器中的值减到0时不会进入中断,会重新开始下一轮的计数。位2:CLKSOURE位。它是用来选择时钟源的。
2024-07-29 02:16:28
1073
原创 【STM32学习笔记】系统时钟详解
***///HSI,HSE,CSS,PLL等的使能和就绪标志位//PLL等的时钟源选择,分频系数设定// 清除/使能 时钟就绪中断//APB2线上外设复位寄存器//APB1线上外设复位寄存器//DMA,SDIO等时钟使能//APB2线上外设时钟使能//APB1线上外设时钟使能//备份域控制寄存器//控制状态寄存器需要注意,这些都属于互联型,编写者为了兼容更多机型而采用了条件编译的办法。我们使用的是大容量(),因此有条件编译的语句只看的即可。在库函数中经常涉及这种情况。
2024-07-28 22:06:09
1588
1
原创 【STM32学习笔记】按键控制
在这里我们只用key0和key1,通过原理图我们可以知道,当我们按下的时候为低电平,我们只需检测低电平就可以知道按键是否按下了。
2024-07-27 23:33:33
309
原创 [STM32学习笔记]蜂鸣器的介绍与使用
如图所示,我们可以看到图中用的是一个共阳极的三极管,我们只需要知道当基极为低电平是,PNP导通。当基极为高电平时,NPN导通,所以当BEEP端输出高电平时这个三极管导通。我们可以看到该图中我们接了一个 R33的电阻,究其原因是当单片机上电的一瞬间属于浮空状态,引脚状态是不确定的,所以接一个10k的下拉电阻是保证在浮空状态时给一个稳定的低电平。
2024-07-26 22:07:52
371
原创 【STM32学习笔记】GPIO相关库函数
以下是else函数用于读取指定GPIO引脚的电平状态,返回该引脚是高电平还是低电平。通过这个函数,可以方便地监控GPIO引脚的输入信号状态,用于各种输入检测和控制应用。以下是else函数用于读取指定GPIO引脚的输出电平状态,返回该引脚是高电平还是低电平。通过这个函数,可以方便地监控GPIO引脚的输出信号状态,用于各种输出控制和状态监测应用。以下是函数用于将指定 GPIO 引脚设置为高电平(逻辑1)。
2024-07-01 21:12:29
1943
原创 【STM32学习笔记】GPIO相关配置寄存器
首先根据下图所示,为什么要使用两个寄存器来配置,因为stm32一组引脚有16个引脚,需要4个位来配置一个引脚,所以需要16x4个位,所以需要2个寄存器。其中MODEy[1:0]控制速度,高两位控制输入输出模式。
2024-06-28 23:37:58
1309
原创 【STM32学习笔记】GPIO工作原理
GPIO(General-Purpose input/output):通用输入输出端口的简称。是外设与 微控制器 (等单片机)通。
2024-06-28 01:46:41
501
原创 【STM32学习笔记】施密特触发器原理
我们再在v+和vout上串一个电阻,那么现在当vout=高电平时vi+等于3.3,当vout=低电平时,vi+为1.6。这就是施密特触发器的原理。现在我们将比较器进行改进,如果上下两个电阻相同,那么根据公式,此时v+=2.5v,那么根据上面的公式,i+>2.5时,vout输出高电平,反之输出低电平。想要弄懂施密特触发器原理,就得先了解比较器的原理,如下图当vi->vi+时输出端位低电平,反之位高电平。理论上是按照此时v+=2.5v,那么根据上面的公式,i+>2.5时,vout输出高电平,反之输出低电平。
2024-06-24 00:07:24
560
原创 【51单片机学习】数码管篇
LED数码管:数码管是一种简单、廉价的显示器,是由多个发光二极管封装在一起组成“8”字型的器件。数码管的接法,有共阳和共阴之分。共阴时,拉高电压即可点亮。共阳时,拉低电平点亮。 138译码器控制数码管使能(使用3个单片机输入控制8个数码管显示),每个数字的一个笔画由双向数据缓存器245(单片机输出能力有限,需要该芯片提高输入能力)控制亮灭。因此,首先控制P22~P24来选中数码管,然后选中数码管的笔画,最终呈现数据。NixieTable数组里面的数就是0-9,然后我们用74hc138泽码器来选中相应的led
2024-03-15 11:38:51
462
1
原创 【51单片机学习】单片机及开发板介绍
单片机,英文Micro Controller Unit,简称MCU 内部集成了CPU、RAM、ROM、定时器、中断系统、通讯接口等一系列电脑的常用硬件功能 单片机的任务是信息采集(依靠传感器)、处理(依靠CPU)和硬件设备(例如电机,LED等)的控制 单片机跟计算机相比,单片机算是一个袖珍版计算机,一个芯片就能构成完整的计算机系统。但在性能上,与计算机相差甚远,但单片机成本低、体积小、结构简单,在生活和工业控制领域大有所用 同时,学习使用单片机是了解计算机原理与结构的最佳选择。
2024-02-08 00:06:54
327
原创 【模电学习】三极管
三极管(Transistor)是一种半导体器件,用于放大和控制电流。它有三个区域,分别是发射极(Emitter),基极(Base)和集电极(Collector)。三极管有两种主要类型:NPN和PNP,这取决于三个区域的类型和电流方向。
2024-02-02 16:32:30
4601
原创 【模电学习】半导体二极管
静电在我们的日常生活中可以说是无处不在,不同物质的接触、分离或相互摩擦,即可产生静电。例如在生产过程中的挤压、切割、搬运、搅拌和过滤以及生活中的行走、起立、脱衣服等,都会产生静电。我们的身上和周围就带有很高的静电电压,几千伏甚至几万伏。这些静电也许对人体影响不大,但对于一些ESDS(静电敏感元件),却直接可以使其失去本身应有的正常性能,甚至完全丧失正常功能。这样ESD防护就非常必要了。在我们实际项目中,USB接口一般都会接一个ESD二极管:
2024-01-21 22:58:03
2107
原创 【模电学习】N型半导体和P型半导体以及PN结
在现代电子学中,半导体技术扮演着核心角色。特别是N型和P型半导体,它们是许多电子设备和系统的基石,如晶体管、太阳能电池和各种类型的二极管。理解N型和P型半导体的基本原理对于深入掌握电子学至关重要。
2024-01-20 11:27:25
1579
2
原创 【BootLoader学习笔记】写一个最简单的BootLoader
还有一个比较需要注意的地方,在未使用异常向量的时候我们的地址使用的是,ox08040001这是因为f103只有thumb指令级,没有ARM指令集,而bit0=1代表thumb指令集,bit0代表ARM指令集。无异常向量就是BootLoader直接跳到app的起手位置,这里我们定义的是0x0804001。上电后会运行BootLoader,它会跳转到我们的app程序。这里我们知道这个函数的地址,并且使用函数指针直接跳转到这个地址。app程序分为有异常向量表和无异常向量表,下图是无异常向量。这里就会打印A-Z。
2023-12-19 13:24:13
465
1
原创 【Bootloader学习笔记】Bootloader引入原因
第一种情况,当flash较小时,app在flash上运行,去下载新的app去覆盖自己,这个情况是不行的。第2中情况 当flash小而ARM大的情况,flash上的app上电在flash执行,然后拷贝到arm里面运行,下载新的app到arm里面,然后烧写到flash,这样确实没有问题,但是如果在烧写的时候断电了,那只烧写了一半,那板子就成砖头了,必须回厂才行。这个时候就得引入bootloader。引入BootLoader 当上电时BootLoader会检查发现没有app,或者通过网络发现BootLoader需
2023-12-18 18:37:05
368
原创 指针经典题目详解
大家可以计算一下结果是多少解析:我们可以看到取&a取的是整个数组的地址,&a+1就是跳过整个数组,而a是首元素的地址,首元素的地址+1那就是指向下一个元素的地址。p指向的地址和&a+1相同,所以p-1就是指向第五个元素的地址。那么我们可以得到结果2 5。
2023-07-22 12:47:09
105
2
原创 一分钟教会你原码补码和反码
20的原码:1 0010100。后面的7位红色数为数值位。0010100,此处蓝色的0为符号位,即值为正;后面的7位红色数为数值位。符号位:二进制的最高位,标识正数和负数。数值位:符号位后面几位(所以八进制表示的数值位只有7位)在原码中,符号位不变,数值位按位取反。-66的原码:1 1000010。-66的反码:1 0111101。-16的原码:1 0010000。-16的反码:1 1101111。-66的反码:1 0111101。-16的反码:1 1101111。-16的补码:1 1110000。
2023-07-20 21:28:38
2110
1
原创 一秒钟教会你关键字
ulong 别名被定义为 unsigned long int 类型的别名,Point 别名被定义为匿名结构体的别名。总结:volatile 关键字用来声明一个易变的变量,在多线程或多任务环境中确保对该变量的访问具有内存可见性和顺序性保证。在 C 语言中,volatile 是一个关键字,用于声明一个变量是易变的(volatile variable)。在 C 语言中,typedef 是一个关键字,用于为已有的数据类型创建一个新的类型别名。在 C 语言中,const 也是一个关键字,用于声明一个只读的常量。
2023-07-19 21:30:34
73
1
原创 一秒钟教会你运算符
条件运算符,也被称为三元运算符,是一种在编程语言中常用的简洁的条件表达式。注意:逻辑或运算符也是短路运算符,如果第一个操作数为true,则不会执行第二个操作数的求值。%= 取余等于:a %= b // a = a % b。+= 加等于:a += b // a = a + b。-= 减等于:a -= b // a = a - b。*= 乘等于:a *= b // a = a * b。/= 除等于:a /= b // a = a / b。赋: 赋值: = += -= *= /= .....
2023-07-19 11:17:50
120
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人