- 博客(34)
- 收藏
- 关注
原创 读-改-写操作
读-改-写”(Read-Modify-Write,简称RMW)是一种常见的操作模式,它通常用于需要更新数据的场景。这个模式包含三个基本步骤:1.读(Read):首先读取当前的数据。2.改(Modify):根据需要对数据进行修改。3.写(Write):将修改后的数据写回原来的位置。
2024-07-01 23:09:41
940
原创 WDG看门狗
WDG是看门狗定时器(Watchdog Timer)的缩写,它是一种用于计算机和嵌入式系统中的,用来检测和恢复系统故障。看门狗就像是一个忠诚的宠物狗,它时刻盯着你的程序,确保它们正常运行。如果程序因为设计上的小错误、硬件出了问题,或者受到了外界的干扰,导致程序卡住不动或者乱跑,看门狗就会立刻采取行动,让程序重新启动,防止它长时间处于无响应状态,这样就能保障系统的稳定和安全。简单来说,看门狗就是一个特殊的计时器。它一旦开始计时,就需要程序在规定的时间内给它一个信号,告诉它一切都好。
2024-06-30 22:53:43
764
原创 【LeetCode】数组——二分查找法
34.在排序数组中查找元素的第一个和最后一个位置链接给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。示例 1:输入:nums = [5,7,7,8,8,10], target = 8输出:[3,4]示例 2:输入:nums = [5,7,7,8,8,10], target = 6。
2024-05-27 23:36:45
866
原创 【LeetCode】数组——双指针法
双指针法是一种常用的算法技巧,通常用于处理数组或链表中的问题。它使用两个指针,通常一个从数组的开始位置遍历,另一个从数组的末尾位置开始遍历,根据问题的不同,这两个指针可以同时移动,也可以根据条件移动。
2024-05-19 23:43:59
662
原创 [STM32 - 野火] - - - 固件库学习笔记 - - -十.ADC
ADC决定模拟电压的输入量,就是输入范围(默认0~3.3V,具体的输入范围需要根据对应的芯片来确定)。决定外部输入电压之后,电压从通道GPIO输入。其中通道又分成规则通道与注入通道。规则数据寄存器(ADC_SQR),注入序列寄存器(ADC_JSQR):决定我们要使用多少个通道,还有通道转换顺序。开始转换之前,打开输入转换器的电压(ADON)。选择触发源:软件、定时器或外部GPIO。开始转换,转换时间由ADCCLK相关(最高14M,通常配置成12M)。转换的数据放到数据寄存器。
2024-05-08 23:09:35
1124
原创 [STM32 - 野火] - - - 固件库学习笔记 - - -九.SPI
1.通讯引脚其中,SPI1是APB2上的设备,最高通讯速率为36Mbit/s,SPI2、SPI3是APB1上的设备,最高通讯速率为18Mbit/s。实际应用中,NSS引脚一般使用GPIO引脚(配置为推挽输出模式),通过软件进行控制它的电平输出,从而产生起始信号与结束信号。SPI2与SPI3可以作为I2S通讯,这个主要用于传输音频数据。( I2S通讯与SPI通讯类似。注意:如果使用的是SPI3,会占用烧录引脚,这时要进行烧录的话就要按着复位键进行烧录。
2024-04-28 17:56:27
1013
原创 [STM32 - 野火] - - - 固件库学习笔记 - - -八.IIC
A0 ~ A2:地址输入。像上图中,A0~A2都接到GND,故为000WP:Write Protect,写保护。(此引脚为高电平则无法写入数据)NC:No Connect 空引脚。
2024-02-18 16:57:20
1238
原创 Err:Flash Download failed - “Cortex-M0”
最近在使用KEIL软件烧录程序时,提示Err:Flash Download failed - “Cortex-M0”,记录一下解决方法。本文章以MM32F0020BIT芯片为例。
2024-01-20 16:40:28
10259
2
原创 [STM32 - 野火] - - - 固件库学习笔记 - - -七.常用存储器
存储器(Memory)是计算机系统中用于的硬件设备或部件。它在计算机体系结构中扮演着至关重要的角色,负责存储计算机程序和数据,以便在需要时进行读取和写入操作。存储器可以分为多个层次,每个层次具有不同的特性和功能。一些存储器的基本概念:1.主存储器(主内存): 主存储器是计算机系统中用于临时存储正在执行的程序和数据的地方。它是计算机直接访问的存储介质,但在断电时数据会丢失。主存储器的容量通常以字节为单位。
2023-12-06 23:18:54
398
原创 [STM32 - 野火] - - - 固件库学习笔记 - - -六.DMA直接存储器存取
DMA:Direct Memory Access,直接存储器存取。是一种用于在外围设备和内存之间进行数据传输的机制。通常情况下,中央处理(CPU)负责管理数据的传输,但使用DMA可以让外围设备直接访问系统内存,而无需CPU的干预。两个DMA控制器共有12个通道(DMA1有7个通道,DMA2有5个通道),每个通道专门用来管理来自于一个或多个外设对存储器访问的请求。还有一个仲裁器来协调各个DMA请求的优先权。
2023-11-19 23:22:30
797
原创 [STM32 - 野火] - - - 固件库学习笔记 - - -五.串口通信
串口通信协议可分为物理层与协议层。物理层是硬件部分,规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输。协议层是软件部分,主要规定通讯逻辑,统一收发双方的数据打包、解包标准。串口数据包的基本组成:起始位:由1个逻辑0的数据位表示。结束位:由 0.5 、1、 1.5 或2个逻辑1的数据位表示。有效数据:在起始位后紧接着的就是有效数据,有效数据的长度常被约定为5、6、7、或8位。校验位:检测数据是否出错。
2023-11-08 23:33:08
662
原创 [STM32 - 野火] - - - 固件库学习笔记 - - -四.SysTick——系统定时器
官方详细介绍在 STM32F10xxx Cortex-M3编程手册 - 英文版 4.5 SysTick timer(STK)。
2023-10-08 21:52:13
1049
原创 [STM32 - 野火] - - - 固件库学习笔记 - - -三.EXTI外部中断寄存器
EXTI(External interrupt/event controller):外部 中断/事件 控制器,通常用于微控制器或微处理器上,以便在外部事件发生时触发中断。EXTI的主要目的是允许处理器在需要时执行中断服务程序,以响应外部事件,如按键的按下、松开、传感器状态变化等。外部事件发生(如GPIO口的电平发生变化) -> EXTI产生中断 -> 内核NVIC。
2023-10-04 18:42:01
487
原创 [STM32 - 野火] - - - 固件库学习笔记 - - -二.STM32中断应用总结
NVIC(Nested Vectored Interrupt Controller):嵌套向量中断控制器,属于内核外设,管理着包括内核和片上外设所有外设的中断相关的功能。// 中断使能寄存器// 中断清除寄存器// 中断使能悬起寄存器// 中断清除悬起寄存器// 中断有效位寄存器// 中断优先级寄存器 (8Bit wide)// 软件触发中断寄存器。
2023-10-02 15:39:12
533
原创 [STM32 - 野火] - - - 固件库学习笔记 - - - 一.RCC复位和时钟控制器
RCC:reset clock control 复位和时钟控制器。RCC(时钟部分)主要作用:设置系统时钟 SYSCLK、设置 AHB 分频因子(决定 HCLK 等于多少)、设置 APB2 分频因子(决定 PCLK2 等于多少)、设置 APB1 分频因子(决定 PCLK1 等于多少)、设置各个外设的分频因子;控制 AHB、 APB2 和 APB1 这三条总线时钟的开启、控制每个外设的时钟的开启。
2023-10-02 11:59:46
348
1
原创 【STM32-野火】---学习笔记---七.GPIO输入——按键检测
上图为。通过上图可知,当按键没有被按下的时候,GPIO 引脚的输入状态为低电平 (按键所在的电路不通,引脚接地),当按键按下时, GPIO 引脚的输入状态为高电平 (按键所在的电路导通,引脚接到电源)。只要我们检测引脚的输入电平,即可判断按键是否被按下。
2023-09-17 19:21:41
539
1
原创 【STM32-野火】---学习笔记---六.GPIO输出——使用固件库点亮LED
上图为。通过这张图我们可以知道R、G、B三个灯的阴极是连接到STM32的GPIO引脚的,只要我们控制 GPIO 引脚的电平输出状态,即可控制 LED 灯的亮灭。
2023-09-17 19:04:39
371
1
原创 【STM32-野火】---学习笔记---五.初识 STM32 标准库
固件库应该包含这几类文件:汇编编写的启动文件、时钟配置文件、外设相关的文件、内核相关的文件、头文件的配置文件、专门存放中断服务函数的C文件。6.专门存放中断服务函数的C文件(方便管理中断函数)5.头文件的配置文件(方便管理头文件)1.汇编编写的启动文件。
2023-09-17 18:49:15
143
1
原创 【STM32-野火】---学习笔记---四.构建库函数雏形
原理:先定义声明一个结构体,结构体中有很多成员,它的类型和成员分布的顺序跟外设寄存器的排列方式一样,我们找到这个外设的基地址(如GPIO_BASE),把这个地址强制类型转换成 GPIO_Typedef 这种结构体类型的指针,这个指针经过强制类型转换,它就指向了一大块内存,这一大块内存里面有很多成员,这些成员跟我们的寄存器是对应的。经过这一步操作后,我们就可以使用结构体的方式来操作所有外设的寄存器了。//寄存器的值常常是芯片外设自动更改的,即使 CPU 没有执行程序,也有可能发生变化。
2023-09-10 22:51:10
177
1
原创 【STM32-野火】---学习笔记---三.使用寄存器点亮LED灯
GPIO包含在引脚中。而引脚中不仅有GPIO,还有VCC、GND等引脚。对于STM32来说:《STM32F103xCED 英文数据手册》 -> 《3 Pinouts and pin describeptions》 -> 《Table 5.High-density STM32F103xx pin definitions 》中查找。
2023-09-03 19:34:08
380
原创 【STM32-野火】---学习笔记---二.新建工程模板——寄存器版、使用寄存器点亮LED
三.添加文件:添加 startup_stm32f10x_hd.s文件(启动文件),创建 main.c文件(定义一个SystemInit函数),创建 stm32f10x.h文件,并导入 main.c 中。如果这里没有出现你想要的 CPU 型号,或者一个型号都没有,说明你的KEIL5没有添加device库,KEIL5 不像 KEIL4 那样自带了很多 MCU 的型号, KEIL5 需要自己添加。6.3 Utilities 选项配置:选择目标板,具体选择多大的 FLASH 要根据板子上的芯片型号决定。
2023-08-28 22:00:08
992
原创 【STM32-野火】---学习笔记---一.初识STM32、什么是寄存器
①引脚序号:阿拉伯数字表示LQFP封装,英文字母开头表示BGA封装。引脚序号这里列出了8种封装型号,具体使用哪一种根据实际情况来选择。②引脚名称:指复位状态下的引脚名称。③引脚类型:S(电源引脚)、I(输入引脚)、I/O(输入/输出引脚)。④ I/O结构:FT(兼容5V)、TTa(只支持3.3V,且直接到ADC)、B(BOOT引脚)、RST(复位引脚,内部带弱上拉)。⑤注意事项:对某些IO要注意的事项的特别说明。⑥复用功能:IO的复用功能,通过GPIOx_AFR寄存器来配置选择。
2023-08-27 23:57:38
1486
原创 Zigbee
Zigbee是一种低速率、短距离、低成本无线通信协议,它被设计用于物联网(IoT)设备之间的通信。它采用了低复杂性和低功耗的无线通信技术,能够在几十米范围内进行数据传输,为智能家居、工业自动化和传感器网络等应用提供了可靠的无线连接。
2023-06-15 11:14:27
180
原创 CAN总线
CAN(Controller Area Network,控制器局域网)总线是一种广泛应用于汽车和工业领域的通信协议和物理层总线标准。它允许多个电子控制单元(ECU,Electronic Control Unit,可以看作是一台超小型的计算机)之间进行可靠的数据传输和通信。
2023-06-12 17:03:17
875
1
原创 UART与USART
UART(Universal Asynchronous Receiver/Transmitter,通用异步收发器)是一种通信协议和硬件接口,用于在计算机系统和外部设备之间进行异步数据传输。它是一种简单且常见的串行通信方式,广泛应用于嵌入式系统、单片机和通信设备中。它在全双工模式下工作。USART(Universal Synchronous /Asynchronous Receiver / Transmitter,异步同步通信接口)是一种通信协议和硬件接口,用于在计算机系统和外部设备之间进行串行数据传输。
2023-06-08 13:38:52
4146
原创 TTL、RS232与RS485
参考:https://www.bilibili.com/video/BV1PD4y147ts/?spm_id_from=333.337.search-card.all.click参考:https://zhuanlan.zhihu.com/p/341845459图中照片多来源于参考处。
2023-06-02 18:17:53
3286
1
转载 上位机与下位机
本文大部分内容参照知乎er dotNet工控上位机的https://zhuanlan.zhihu.com/p/269714623
2023-06-02 17:55:49
1874
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人