自定义博客皮肤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学习——ESP8266 01S固件烧录

固件烧录需要用到TTL转USB器件,然后根据要求连接,使用适当的软件进行烧录。

2025-05-23 10:42:45 112

原创 嵌入式STM32学习——ESP8266 01S的基础介绍

ESP8266系列模组由深圳市安信可科技有限公司开发,基于乐鑫ESP8266EX低功耗UART-WiFi芯片,适用于物联网设备的快速原型设计。该模组集成了高性能的Tensilica L106 32位微控制器,支持80MHz和160MHz主频,具备完整的TCP/IP协议栈和IEEE 802.11 b/g/n无线通信协议。其主要特点包括体积小巧、成本低廉、低功耗设计、高性能处理能力、丰富的接口支持以及广泛的网络协议兼容性。ESP8266支持STA、AP和STA+AP三种工作模式,适用于智能家居、智能农业、智能交

2025-05-23 09:44:57 855

原创 嵌入式STM32学习——串口USART 2.3(串口发送数据控制LED灯)

本实验通过STM32微控制器的串口通信实现LED灯的控制。实验代码主要包括串口初始化、LED初始化以及中断处理函数。通过串口发送指令,当接收到字符'1'时,LED灯点亮;接收到字符'0'时,LED灯熄灭。实验结果表明,串口通信能够有效控制LED的状态,验证了代码的正确性和功能性。

2025-05-22 17:39:35 176

原创 嵌入式STM32学习——串口USART 2.2(串口中断接收)

本文介绍了基于STM32的串口接收库函数实现及软件流程设计。首先,系统初始化包括GPIO、串口外设和LED时钟的配置,并初始化串口和LED引脚。接着,通过usart.c文件实现了串口的初始化、发送字节和字符串的功能,并重定义了printf函数以便通过串口输出。在main.c中,调用串口初始化函数并通过printf发送测试信息。此外,还实现了外部中断和串口接收中断的处理函数,串口接收中断中获取接收数据并输出。实验结果表明,串口通信功能正常,能够正确接收和发送数据。

2025-05-22 15:32:02 273

原创 嵌入式STM32学习——串口USART 2.0(printf重定义及串口发送)

摘要:本文介绍了在STM32开发中重定义printf函数以输出到串口的方法。通过重写fputc函数,将标准输出重定向至USART1串口,实现printf数据通过串口发送。具体实现包括USART1初始化配置(波特率115200、8位数据、无校验位)、字节发送函数封装,并在main函数中调用printf测试输出"Hello,shi"字符串。该方案保留了标准库函数的使用习惯,简化了嵌入式系统中的调试信息输出。<|end▁of▁sentence|>

2025-05-21 18:15:35 381

原创 嵌入式STM32学习——串口USART 2.1(串口发送字符串和字符)

因为标准库中没有直接输出字符串的函数,因此便需要我们自己创建一个直接输出字符串的函数。

2025-05-21 13:28:18 151

原创 嵌入式STM32学习——串口USART 2.0(串口发送数据)

本文介绍了如何通过STM32的USART串口实现数据发送功能。首先,定义了USART的结构体,包括波特率、数据位长度、停止位、校验位等参数。接着,详细列出了与USART相关的库函数,如初始化、配置、发送和接收数据等。在软件流程设计中,首先初始化系统时钟和GPIO,然后配置串口引脚和外设。实验代码展示了如何初始化USART并通过USART_SendData函数发送字符'a'。最后,实验结果验证了串口能够成功发送字符,并提供了相关学习资源的链接,如使用printf函数发送数据和串口中断接收数据的方法。

2025-05-19 22:39:02 631

原创 嵌入式STM32学习——串口USART 1.0(理论部分)

通信方式主要分为串行通信和并行通信。串行通信速度较慢但硬件资源占用少,通常只需时钟线和少量数据线;并行通信速度快但需要多根数据线和地址线。通信模式包括全双工、半双工和单工,分别支持双向同时通信、双向交替通信和单向通信。同步通信和异步通信是串行通信的两种形式,异步通信以字符帧为单位传输,而同步通信则通过同步字符和时钟信号保持一致。通信速率由时钟信号决定,同步通信速率与时钟信号同步,异步通信则需双方统一波特率。常见的通信协议选择需考虑性能、成本、稳定性和易用性。串口通信涉及电平特性、传输协议和参数设置,如波特率

2025-05-15 10:12:21 549

原创 嵌入式STM32学习——外部中断震动感应灯

本文展示了一个基于STM32F10x系列微控制器的按键中断练习程序。程序通过配置GPIO端口和外部中断(EXTI)来实现按键触发的中断功能。主要代码包括shake.h、shake.c和main.c三个文件。shake.c中初始化了GPIO端口和外部中断,配置了中断优先级和触发条件。main.c中初始化了LED和按键中断,并在主循环中通过延时函数控制LED状态。当按键触发中断时,中断处理函数EXTI0_IRQHandler会清除中断标志位并改变LED状态。该程序展示了如何通过外部中断实现按键控制LED的基本功

2025-05-14 16:22:31 104

原创 嵌入式STM32学习——外部中断EXTI与NVIC的基础练习⭐

按键控制LED灯的开发流程主要包括以下几个步骤:首先,使能功能复用时钟并配置复用寄存器;其次,配置中断屏蔽寄存器;接着,使用固件库中的外部中断EXTI结构体和相关库函数进行初始化;然后,设计软件流程,包括初始化系统、GPIO、EXTI外设时钟、按键和LED引脚、EXTI外部中断条件以及NVIC嵌套中断控制器及分组;最后,编写外部中断函数,判断按键是否按下以控制LED灯。实现代码包括LED和按键的初始化函数,以及主函数和中断处理函数。整个开发过程需要熟练掌握硬件配置和软件编程,通过不断练习来提高技能。

2025-05-13 21:15:03 879

原创 嵌入式STM32学习——外部中断EXTI与NVIC

中断的基础知识

2025-05-13 17:07:08 225

原创 嵌入式STM32学习——振动传感器控制继电器开关灯

振动传感器震动被STM32接收到,然后STM32再控制继电器闭合,随后与继电器连接的LED便会打开,反之亦然。

2025-05-11 16:47:36 319

原创 嵌入式STM32学习——433M无线遥控灯

433M无线模块采用315M工作频率,通过声表谐振器(SAW)实现高稳频,环境温度在-25~+85度时频飘仅为3ppm。模块引脚包括供电正极(5V)、地(GND)及控制信号输入(DO-D4),用于连接外设控制信号。软件开发流程包括系统初始化、GPIO外设时钟配置及引脚初始化。通过STM32控制器,可实现433M无线遥控灯的控制,包括点灯、关灯及闪烁功能。相关代码示例展示了如何通过GPIO读取输入信号并控制LED状态。

2025-05-11 14:49:14 443

原创 嵌入式STM32学习——振动传感器

振动传感器是一种用于检测振动的设备,具有四个针脚:AO、DO、GND和VCC。AO针脚输出连续的模拟信号,反映物理量的大小;DO针脚输出离散的数字信号,仅有高电平和低电平两种状态。GND针脚用于接地,VCC针脚则提供3.3V至5V的电源。在硬件应用中,通过软件编程使DO针脚输出低电平时,传感器会触发震动。例如,可以通过编程实现当DO针脚输出低电平时,LED灯亮一秒后熄灭一秒,以此作为振动传感器的基本应用练习。

2025-05-11 11:03:26 326

原创 嵌入式STM32学习——继电器

继电器的使用与说明

2025-05-10 17:11:28 1041 2

原创 Linux学习2.0——vi编辑器和gcc编译器的使用

vi是一种方便的代码编辑器,Linux系统一般是自带的、vi和vim的区别:vim是vi的升级版,基础功能两者一致,不过在嵌入式开发板中 只有vi没有vim,但是在Ubuntu上我们可以使用vim编辑器,它的功能更加丰富。这里只讲解vi编辑器基础用法,如果使用vim编辑器需要手动安装vim编辑器。

2024-12-28 12:02:45 785

原创 将数组中的数据反向输出(数组,函数)

【代码】将数组中的数据反向输出(数组,函数)

2024-11-11 21:19:36 409

原创 嵌入式STM32学习——按键的基础知识

初始化按键和LED的引脚。初始化GPIO外设时钟。

2024-10-19 16:03:28 617

原创 嵌入式STM32学习——GPIO控制蜂鸣器

蜂鸣器是一种常用的电子发声元器件,采用直流电压供电。广泛应用于计算机,打印机,报警器,电子玩具,汽车电子设备灯等产品中常见的蜂鸣器可分为有源蜂鸣器和无源蜂鸣器。有源蜂鸣器:内部有震荡源,只要通电即可自动发出固定频率的声音。(频率固定无法控制音色)无源蜂鸣器:内部无震荡源,需要外部脉冲信号驱动发声,声音频率可变。(可改变频率来改变音色)从外观上来看两种蜂鸣器形状相似,有源蜂鸣器底部有黑胶密封。无源蜂鸣器底部可以看到电路板,两种蜂鸣器都标注有正负极。GPIO。

2024-10-17 20:46:04 786

原创 嵌入式STM32学习——GPIO控制之 固件库实现LED点灯(2.0闪烁)

的基础上我们对代码进行微调即可实现。对main.c文件进行更改。

2024-10-16 22:05:40 230

原创 嵌入式STM32学习——GPIO控制之 固件库实现LED点灯

LED灯,是一种能够将电能转化为可见光的半导体期间原理:当给P极施加正向电压时,空穴和自由电子在P-N结复合,辐射出光子而发光。LED灯的正极接到了3.3VLED灯的负极接到了PA1,也就是GPIOA1引脚只需要控制PA1为相对应的低电平,即可点亮对饮的LED灯,输出高电平则熄灭对应的LED灯。初始化系统初始化GPIO外设时钟初始化LED引脚输出电平。

2024-10-15 19:38:56 1095

原创 嵌入式STM32学习——GPIO控制

开漏输出模式下,只有低电平才有驱动能力,高电平无驱动能力,引脚只能输出低电平,可以作为通信协议的驱动方式比如I2C通信的引脚,使用开漏输出模式。当引脚设置为复用功能的时候,可选择推挽复用模式或者复用开漏模式,在设置为复用开漏模式时,需要外接上拉电阻。输出,使得输出电流增大提高了输出引脚的驱动能力,提高了电路的负载能力和开关的动作速度。推挽模式输出下,STM32对IO口具有绝对的控制权,引脚可以输出高低电平。输出模式有四种:推挽输出,开漏输出,复用开漏,复用推挽。上拉输入,下拉输入,浮空输入,模拟输入。

2024-10-14 23:16:43 678

原创 嵌入式STM32学习——了解与烧录

芯片进行了完整的封装,覆盖了对应的外设的所有功能。目前软件对中文的支持不友好,不建议安装网上的一些汉化包之类的。语言基本掌握,课程以小项目形式帮助各位同学更好更快的学习课程知。要入行嵌入式软件开发工程师的同学们完成对单片机的认知和学习。的工程文件路径也尽量不要存在中文,否则可能会出现一些异常。库是近几年官方极力推荐的库,覆盖了全系列的芯片,可以说。标准库,执行效率稍低,但是编写效率高,移植性稍高。的引脚数量,不同的大写字母代表的不同的引脚数,不同设计人员表示的方法有差异,没有统一的标准。

2024-10-13 23:02:13 973

原创 C语言学习1.6——指针篇

C语言中使用指针可以程序简洁,紧凑,高效有效的表达复杂的数据结构动态分配内存得到多余一个的函数返回值在计算机内存中,每一个字节单元,都有一个编号,称为地址:编译或函数调用时为其分配内存单元变量是对程序中数据存储空间的抽象在C语言中,内存单元的地址称为指针,专门用来存放地址的变量,有时对地址,指针和指针变量不区分,统称指针。(地址==指针)指针变量的说明指针的存储类型是指针变量本身存储类型指针说明时指定的数据类型不是指针变量本身的数据类型,而是指针目标的数据类型,简。

2024-10-12 21:22:23 1590

原创 Linux学习笔记1.0——对目录及文件的基础操作

在根目录下只有home可以正常操作,其他目录则需要管理员权限,故须加sudo,然后输入密码,输入的密码不可见,不要以为未输入进去。会占用大量的资源,然而嵌入式本身就是对资源特别敏感的一个领域,所以一般不用图形界面。比如说,访问某个目录,或者访问某个文件或者查找某个文件 等等等等。操作系统往往不带图形界面,直接用命令行来操作。使用命令行进行操作,也会对我们的开发形成很大的便利。问:我们首先需要搞清楚,采用这些命令,我们要做什么?答:我们采用命令,是为了操作文件。但是跑在嵌入式设备中的。常常用于嵌入式设备中。

2024-10-07 20:21:37 416

原创 C语言学习1.5——字符串数组和函数

字符数组是元素的数据类型为字符类型的数组字符数组的初始化逐个字符赋值。

2024-10-06 22:19:15 768

原创 二维数组的逐行输出

给出一个二维数组,我们将按照逐行输出的形式表达输出。运用双层for循环对每行元素单个输出。以行为单位,对每一行进行字符串的输出。

2024-10-06 12:18:31 284

原创 C语言学习1.4——数组

它重复的走访过要排序的数列,一次比较两个元素,如果顺序错误就交换。数组是具有一定顺序关系的若干个变量的集合,组成数组的各个变量称为数组的元素。数组中各元素的数据类型要求相同,用数组名和下标确定,数组可以是一维的,也可。所谓一维数组是指只有一个下标的数组,它在计算机的内存中是连续存储的。列数(前面的为行数,后面的为列数,并且列数不可省略)初始化方式:在定义数组的时候,为数组元素赋初值。只能逐个引用数组元素,不能一次引用整个数组。语言对数组不作越界检查,使用时候要注意。数组元素不赋初值,系统会自动赋以。

2024-10-05 21:32:23 550

原创 C语言学习1.3——控制语句

else if (表达式4)算是帮助了编译器做优化。,若为真,则执行循环体,然后执行步骤三,若为假则执行步骤。也可以是任意类型(包括整形,实型,字符型,指针类型)可以省略,但在循环体中增加循环使变量的值改变的语句。把这些出口集中到一处很方便,特别是函数中有很多重。每个常量表达式的值必须各不相同,否则将出现矛盾。中的表达式可以是整形,字符型表达式或枚举。可以省略,但循环之前应要给循环变量赋值。else if(表达式。语句块,当有若干条语句的时候,必须用。后面的常量表达式的值相等时,就执行。

2024-10-04 21:57:58 1218

原创 输入三个数字并从小到大排列

运用if语句使得这三个数可以按照从小到大的顺序输出。输入三个数字a,b,c。

2024-10-03 21:58:53 243

原创 C语言学生成绩等级划分(ABCD)

【代码】C语言学生成绩等级划分(ABCD)

2024-10-03 21:20:38 1985

原创 C语言学习1.2——输出与输入

输入输出

2024-10-03 17:35:53 884

原创 C语言学习1.1——变量与运算符

变量和运算符的学习

2024-10-02 21:54:31 1755

原创 C语言学习1.0——数据类型、变量、常量和运算符与常量

C基础学习——数据类型、变量、常量、运算符 、变量,各种定义

2024-10-01 21:20:07 943 1

空空如也

空空如也

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

TA关注的人

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