自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 STM32基础--通讯的基本概念

按数据传送的方式,通讯可分为串行通讯与并行通讯,串行通讯是指设备之间通过少量数据信号线 (一般是 8 根以下),地线以及控制信号线,按数据位形式一位一位地传输数据的通讯方式。而并行通讯一般是指使用 8、16、32 及 64 根或更多的数据线进行传输的通讯方式,并行通讯就像多个车道的公路,可以同时传输多个数据位的数据,而串行通讯,而串行通讯就像单个车道的公路,同一时刻只能传输一个数据位的数据。

2024-03-16 15:16:30 894

原创 STM32基础--SysTick系统定时器

SysTick—系统定时器有 4 个寄存器,简要介绍如下。在使用 SysTick 产生定时的时候,只需要配置前三个寄存器,最后一个校准寄存器不需要使用。SysTick寄存器汇总寄存器名称寄存器描述CTRLSysTick控制及状态寄存器LOADSysTick重装载数值寄存器VALSysTick当前数值寄存器CALIBSysTick校准数值寄存器SysTick控制及状态寄存器位段名称类型复位值描述16COUNTFLAGR/W0。

2024-03-16 15:00:56 972

原创 STM32基础--中断应用

在讲如何配置中断优先级之前,我们需要先了解下 NVIC。NVIC 是嵌套向量中断控制器,控制着整个芯片中断相关的功能,它跟内核紧密耦合,是内核里面的一个外设。但是各个芯片厂商在设计芯片的时候会对 Cortex-M3 内核里面的 NVIC 进行裁剪,把不需要的部分去掉,所以说 STM32的 NVIC 是 Cortex-M 3 的 NVIC 的一个子集。在固件库中,NVIC 的结构体定义可谓是颇有远虑,给每个寄存器都预留了很多位,恐怕为的是日后扩展功能。

2024-03-15 12:05:04 1003

原创 STM32基础--RCC—使用 HSE/HSI 配置时钟

RCC :reset clock control 复位和时钟控制器。本章我们主要讲解时钟部分,特别是要着重理解时钟树,理解了时钟树,STM32 的一切时钟的来龙去脉都会了如指掌。

2024-03-10 11:07:45 882

原创 STM32基础--启动文件详解

ALIGNALIGN:对指令或者数据存放的地址进行对齐,后面会跟一个立即数。缺省表示 4 字节对齐。ELSEBX LRALIGNENDIF首先判断是否定义了 __MICROLIB ,如果定义了这个宏则赋予标号 __initial_sp(栈顶地址)、__heap_base(堆起始地址)、__heap_limit(堆结束地址)全局属性,可供外部文件调用。有关这个宏我们在 KEIL 里面配置,具体见图使用微库。然后堆栈的初始化就由 C 库函数 _main 来完成。

2024-03-10 09:35:50 1418

原创 STM32基础--位带操作

位操作就是可以单独的对一个比特位读和写,这个在 51 单片机中非常常见。51 单片机中通过关键字 sbit 来实现位定义,STM32 没有这样的关键字,而是通过访问位带别名区来实现。在 STM32 中,有两个地方实现了位带,一个是 SRAM 区的最低 1MB 空间,另一个是外设区最低 1MB 空间。

2024-03-09 18:14:30 917

原创 STM32基础--GPIO输入(按键检测)

同样,在编写按键驱动时,也要考虑更改硬件环境的情况。我们把按键检测引脚相关的宏定义到“bsp_key.h”文件中。//引脚定义以上代码根据按键的硬件连接,把检测按键输入的 GPIO 端口、GPIO 引脚号以及 GPIO 端口时钟封装起来了。

2024-03-09 18:12:55 1144

原创 STM32基础--构建自己的固件库

STM32 标准库可以从官网获得,也可以直接从本书的配套资料得到。本书讲解的例程全部采用3.5.0 库文件。以下内容请大家打开 STM32 标准库文件配合阅读。解压库文件后进入其目录:软件库各文件夹的内容说明见图 ST 标准库。目录:STM32F10x_StdPeriph_Lib_V3.5.0• Libraries:文件夹下是驱动库的源代码及启动文件,这个非常重要,我们要使用的固件库就在这个文件夹里面。。

2024-03-08 22:12:44 1150

原创 STM32基础--自己构建库函数

我们在操作寄存器的时候,操作的是都寄存器的绝对地址,如果每个外设寄存器都这样操作,那将非常麻烦。我们考虑到外设寄存器的地址都是基于外设基地址的偏移地址,都是在外设基地址上逐个连续递增的,每个寄存器占 32 个字节,这种方式跟结构体里面的成员类似。所以我们可以定义一种外设结构体,结构体的地址等于外设的基地址,结构体的成员等于寄存器,成员的排列顺序跟寄存器的顺序一样。这样我们操作寄存器的时候就不用每次都找到绝对地址,只要知道外设的基地址就可以操作外设的全部寄存器,即操作结构体的成员即可。

2024-03-08 10:29:31 804

原创 STM32基础--使用寄存器点亮流水灯

GPIO 是通用输入输出端口的简称,简单来说就是 STM32 可控制的引脚,STM32 芯片的 GPIO 引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。STM32 芯片的 GPIO被分成很多组,每组有 16 个引脚,如型号为 STM32F103ZET6 型号的芯片有 GPIOA、GPIOB、GPIOC 至 GPIOG 共 7 组 GPIO,芯片一共 144 个引脚,其中 GPIO 就占了一大部分,所有的 GPIO引脚都有基本的输入输出功能。

2024-03-06 18:50:31 1038

原创 STM32基础--什么是寄存器

我使用的芯片是 144pin 的 STM32F103ZET6,具体见图 STM32F103ZET6 实物图。这个就是我们接下来要学习的 STM32,它将带领我们进入嵌入式的殿堂。芯片正面是丝印,ARM 应该是表示该芯片使用的是 ARM 的内核,STM32F103ZET6 是芯片型号,后面的字应该是跟生产批次相关,最上面的是 ST 的 LOGO。芯片四周是引脚,左下角的小圆点表示 1 脚,然后从 1 脚起按照逆时针的顺序排列(所有芯片的引脚顺序都是逆时针排列的)。

2024-03-05 10:11:18 946 1

原创 STM32基础--初识 STM32

对于STM32,从字面意思上来理解,ST是意法半导体,M是Microelectronics的缩写,其中32表示的是32位,那么整合起来理解就是:STM32就是指的ST公司开发的32位微控制器。在如今的32位控制器中,STM32可以说是最闪耀光彩夺目的新星,所以也造就了STM32被现在的大多数工程师以及市场所青睐,对它是宠爱有加啊!

2024-03-05 10:07:08 3005

原创 MySQL基础(未完待续...)

MySQL:开源免费的中小型数据库,后来Sun公司收购了MySQL,而Oracle又收购了Sun公司。目前Oracle推出了收费版本的MySQL,也提供了免费的社区版本。

2024-03-03 10:34:58 856

原创 Linux运维-Web服务器的配置与管理(Apache+tomcat)(没成功,最后有失败经验)

公司业务经过长期发展,有了很大突破,已经实现盈利,现公司要求加强技术架构应用功能和安全性以及开始向企业应用、移动APP等领域延伸,此时原来开发web服务的php语言已经不适应新的场景,需要上java技术架构,现要求你根据公司需要,实现基于java平台的web应用服务选型、搭建、实现和应用。

2024-02-27 19:54:17 1094

原创 Linux应用-ElasticSearch安装

属于最常见的需求,开源的(以下简称 es)是目前全文搜索引擎的首选。它可以快速地储存、搜索和分析海量数据。维基百科、Stack Overflow、Github 都采用它。Elasticsearch简称es,在企业内同样是一款应用非常广泛的搜索引擎服务。很多服务中的搜索功能,都是基于es来实现的。

2024-02-24 11:29:09 990

原创 Linux运维-Web服务器的配置与管理(PHP)

某企业在CentOS上搭建Web服务系统,以PHP作为网页开发环境,以MySQL为后台数据库。

2024-02-24 11:26:51 1311 2

原创 Linux应用- Redis安装

redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库。redis的特点就是:快,可以基于内存存储数据并提供超低延迟、超快的检索速度一般用于在系统中提供快速缓存的能力。

2024-02-22 15:41:44 333 1

原创 Linux运维- FTP服务器

(1)什么是FTP?FTP :文件传输协议。该协议定义了一个在远程计算机系统和本地计算机系统之间传输文件的标准。FTP运行在OSI模型的应用层,并利用TCP在不同的主机之间提供可靠的数据传输。TCP是一种面向连接的、可靠的传输协议。在实际传输中,FTP靠TCP来保证数据传输的正确性,并在发生错误的情况下,对错误进行相应的修正。FTP支持断点续传。(2)FTP服务器FTP服务是Internet上最早应用于主机之间进行数据传输的基本服务之一。

2024-02-22 15:37:20 947 1

原创 Linux应用- RabbitMQ安装

RabbitMQ一款知名的开源消息队列系统,为企业提供消息的发布、订阅、点对点传输等消息服务。RabbitMQ在企业开发中十分常见,为大家演示快速搭建RabbitMQ环境。

2024-02-21 09:30:52 1227 1

原创 Linux运维-DNS服务器

DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。

2024-02-21 09:23:39 987 1

原创 Linux应用-Nginx安装

Nginx(engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。同Tomcat一样,Nginx可以托管用户编写的WEB应用程序成为可访问的网页服务,同时也可以作为流量代理服务器,控制流量的中转。Nginx在WEB开发领域,基本上也是必备组件之一了。

2024-02-20 09:01:41 789 1

原创 Linux运维-DHCP服务器

(1)什么是DHCP?DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作。主要是用来给网络客户机分配动态IP地址、子网掩码、网关地址、DNS服务器地址。(2)DHCP的主要功能主要有两个功能:①给内部网络或网络服务供应商自动分配IP地址。②给用户或者内部网络管理员作为对所有计算机作中央管理的手段。(3)DHCP的优点1)DHCP避免了由于需要手动在每个计算机上输入值而引起的配置错误。

2024-02-20 08:55:42 903 1

原创 Linux应用—MySQL安装

MySQL数据库管理系统(后续简称MySQL),是一款知名的数据库系统,其特点是:轻量、简单、功能丰富。MySQL数据库可谓是软件行业的明星产品,无论是后端开发、大数据、AI、运维、测试等各类岗位,基本上都会和MySQL打交道。让我们从MySQL开始,进行实战的Linux软件安装部署。由于MySQL5.x和8.x各自有许多使用者,所以这两个版本我们都演示安装一遍。

2024-02-19 09:28:42 2344 1

转载 Linux的小问题之CentOS IP自动消失解决办法

原因:是centOs图形管理中的NetworkManager接管了网络配置。注意大小写,这个很坑的!1、执行以下命令可以恢复。2、一键重启网络可恢复。

2024-02-18 00:01:42 334 1

原创 Linux应用(学习之前应该学完前一篇的Linux基础,如只需要学习某一软件的安装也可直接查看)(持续更新中...)

各种软件的安装方法

2024-02-14 10:30:17 873 1

原创 Linux基础

Linux的基础命令和操作,具体软件安装请移步下一篇文章

2024-02-06 14:21:13 1006 1

转载 数据结构基本概念

基本绪论,转自https://blog.csdn.net/qq_44867340/article/details/119455799数据结构的基本概念数据结构的三要素算法的基本概念算法的时间复杂度算法的空间复杂度数据结构的基本概念1.数据:数据是信息的载体,是描述客观事物属性的数、字符以及所有能输入到计算机中并被程序识别和处理的符号的集合。2.数据元素:数据元素是数据的基本单位,通常作为一个整体进行考虑和处理。一个数据元素可由若干数据项组成,数据项是构成数据元素的不可分割的最小单位。例如,学生记录就是

2022-02-23 22:24:43 323

原创 数据结构绪论

仅限学习前言一、创作初衷二、数据结构是什么总结前言笔者是来自一所普通二本大学的大学生,如果在这一板块的文章中有什么错误,希望各位可以不吝赐教。或者有什么好的建议也希望各位可以私信我或者留言,当然了,希望各位轻踩,毕竟本人也是一个小菜鸡,不算什么大佬,可能很多东西都属于在大佬面前班门弄斧,也可能有很多啼笑皆非的错误,希望各位读者可以批评指出,作者一定认真采纳,各位好的意见。也快毕业了,总想在大学留下点有意义的纪念。因为笔者的实力原本不算很高,所以很多时候可能断更去山上修炼什么的,希望各位多谅解。hhhh

2022-01-16 23:39:48 194

原创 C语言小知识--结构体中的灵活数组问题

文章目录前言一、这篇文章说的是什么二、使用步骤1.引入库2.读入数据总结前言众所周知,C语言有各种各样神奇的小知识,今天我又和学长学到了c语言的小知识c99的标准“将数组作为结构体的成员进行声明时元素个数可以不定义(只需要写[])”一、这篇文章说的是什么首先相信第一次看的朋友都是二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn

2021-11-20 22:00:00 2978

原创 KMP算法--模式匹配算法(所有代码和思想基于c语言)

目录快查前言一、本文所用名词注解(有一定基础可跳过)二、串的模式匹配算法1.朴素模式匹配算法(就是暴力算)有基础也可以跳过三、改进的模式匹配算法--KMP算法(正文)1、字符串的前缀、后缀和部分匹配值2、KMP算法的原理是什么?四、KMP算法的进一步优化总结本文仅限于学习!!!前言字符串简称串,计算机上非数值处理的对象基本都是字符串数据。例如:我们常见的信息检索系统(搜索引擎)、文本编辑程序(Word)、问答系统。提示:以下是本篇文章正文内容,下面案例可供参考一、本文所用名词注解(有一定基础.

2021-11-13 23:47:03 1125 3

原创 一个关于指针和二重指针的问题

目录问题背景我的问题C语言代码实现问题背景没错这个又菜又爱玩的笔者又踩坑了,毫无疑问又让学长捞出来了。今天的问题在于链表这里,里面有c++的引用也有c的指针,虽然这两种语言的问题不太应该放在一起写,但是我问题是由c++衍生出c语言的基础问题(希望各位读者写程序的时候将c和c++分开分析问题,不然问题就会很麻烦)。在关于链表的学习中,使用递归算法,删除一个不含头结点的的单链表L所有含有x的节点。我的问题解题代码//递归删除元素xvoid Del_xByRecursion(LinkList &am

2021-09-23 20:07:45 97 1

原创 typedef的陷阱

目录typedef关键字定义typedef关键字陷阱typedef陷阱纠正typedef关键字定义C 语言提供了 typedef 关键字,您可以使用它来为类型取一个新的名字。typedef关键字陷阱对于typedef关键字和结构结合使用基本上都是下图这样定义,对于这样仅仅是声明一个变量使用来说就没有任何陷阱typedef struct Lcode { int data; int next;}Locde;同样对于声明一个结构体指针也没有任何陷阱,如下图:typedef struct Lc

2021-09-19 16:57:55 118

原创 STM32407 RCC系统时钟启动文件

学习目标:RCC时钟配置学习内容:.C文件void User_SetSysClock(void){ __IO uint32_t StartUpCounter = 0, HSEStatus = 0; /* 复位RCC的所有寄存器 /RCC_DeInit();/ 使能HSE /RCC->CR |= ((uint32_t)RCC_CR_HSEON);/ 等待HSE启动稳定,如果超时则退出 */do{HSEStatus = RCC->CR & RCC_CR_HSERD

2020-11-20 18:54:26 322

原创 STM32 RCC时钟树

学习目标:STM32的RCC时钟树学习内容:HSE时钟、HSI时钟、锁相环时钟(PLLCLK)(由HSI或者HSE提供)、系统时钟(SYSCLK)(来源HSI,HSE,PLLCLK)、HCLK时钟、PCLK1时钟、PCLK2时钟、RTC时钟、MCO时钟、学习时间:提示:这里可以添加计划学习的时间例如:1、 周一至周五晚上 7 点—晚上9点2、 周六上午 9 点-上午 11 点3、 周日下午 3 点-下午 6 点学习产出:提示:这里统计学习计划的总量例如:1、 技术笔记 2 遍

2020-11-19 21:01:47 287

STM32F103ZET6的固件库例程

STM32F103ZET6的固件库例程

2024-03-09

空空如也

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

TA关注的人

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