自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 通用 PWM 原理基础教学

摘要: PWM(脉冲宽度调制)通过改变高电平持续时间来控制平均输出能量,广泛应用于LED调光、电机调速等领域。SG90舵机控制采用周期20ms(50Hz)的PWM信号,通过0.5-2.5ms脉宽对应0-180°转角。STM32实现时,定时器配置ARR=19999(周期)和CCR=500-2500(脉宽),使用TIM3_CH2输出到PB5引脚。关键参数:PSC=71使计数频率1MHz(1us/次),ARR=19999对应20ms周期,CCR值直接决定舵机角度。注意供电稳定(5V)和共地连接,实际应用中建议限制

2026-01-07 23:02:40 1083

原创 gpio输入输出,应用场景

本文总结了STM32 GPIO的7种工作模式及其应用场景。输入模式包括模拟输入(AIN)、浮空输入(IN_FLOATING)、上拉输入(IPU)和下拉输入(IPD),分别适用于ADC/DAC、外部中断、按键检测等场景。输出模式包含推挽输出(Out_PP)和开漏输出(Out_OD),用于LED驱动、总线通信等。复用功能模式(AF_PP/AF_OD)支持USART、SPI、I2C等外设功能。文章最后提供了使用口诀,帮助快速选择合适的工作模式。

2026-01-07 19:24:09 315

原创 超声波模块

摘要:本文详细介绍了HC-SR04超声波测距模块的工作原理及STM32实现方案。模块通过10μs高电平触发,发送40kHz方波并检测回波,通过Echo引脚高电平持续时间计算距离(2-400cm,精度3mm)。硬件连接需4根线(VCC/GND/Trig/Echo)。软件实现包括:1)微秒/毫秒级延时函数;2)TIM2定时器初始化用于精确计时;3)GPIO配置与测距流程控制;4)5次测量取平均提高精度。配套提供了完整的bsp_time.c/h驱动代码,包含中断服务、时间计算和距离换算函数(t/58公式)。主程序

2026-01-07 00:42:42 358

原创 TCP/IP和UDP的定义,区别,应用场景

摘要:TCP/IP与UDP是网络传输的两大核心协议。TCP是面向连接的可靠协议,通过三次握手建立连接,确保数据准确有序传输,适用于网页浏览、文件传输等场景。UDP是无连接的轻量级协议,传输速度快但不保证可靠性,适合视频直播、在线游戏等实时应用。两者主要区别在于连接方式、可靠性和传输速度。现代协议如QUIC结合了TCP的可靠性和UDP的速度优势。选择协议时需权衡可靠性与实时性需求,TCP保证必达但速度慢,UDP快速但不保证到达。(150字)

2026-01-07 00:41:58 1160 1

原创 ESP8266多连接TCP服务器

摘要:ESP8266作为TCP服务器时仅支持单服务但允许多客户端连接。配置流程包括:1)设置WiFi模式;2)连接路由器;3)查询IP地址;4)建立TCP服务器(端口9898)。使用时需注意:服务器具有超时机制,建议客户端每2秒发送数据保持连接;支持多客户端同时连接(不同本地端口);可通过AT指令发送/接收数据或关闭连接。典型应用场景为ESP8266作SoftAP或连接路由器后建立TCP服务器。

2026-01-06 15:24:03 302

原创 定时器中断应用

摘要:STM32的DMA(直接存储器访问)是一种高效数据传输机制,可在不占用CPU资源的情况下完成外设与存储器间的大批量数据传输。文章详细介绍了DMA的优势(节省CPU资源、降低延迟和功耗)、核心概念(数据流、传输方向、地址递增等)以及典型使用步骤。同时指出了常见陷阱(地址对齐、Cache一致性等)并给出了寄存器级配置示例。此外,文章还阐述了定时器中断时间的计算方法,通过具体案例演示了如何配置1ms定时中断,并提供了完整的初始化代码和中断处理流程。

2026-01-06 15:23:20 955

原创 清晰讲解ip地址,Mac地址,端口,路由,子网掩码

网络通信核心要素解析:IP地址(网络定位)、MAC地址(物理标识)和端口(服务区分)共同构建数据传输体系。IP如门牌号实现跨网络寻址,MAC如身份证确保设备唯一性,端口则像房间号定位具体服务。子网掩码划分网络边界,路由器负责跨网转发。这些要素在OSI不同层级协同工作:IP确定目标网络,子网掩码判断网络范围,MAC完成局域网寻址,端口对接最终应用。整个流程如同邮政系统,IP是收件地址,MAC是具体门牌,端口指定收件房间,路由器则担任分拣中心角色。理解这些概念的层级关系和协作机制,是掌握网络通信原理的关键。

2026-01-05 10:51:46 1178

原创 ESP8266UDP透传

本文介绍了ESP8266作为station实现TCP/UDP单连接透传的方法。首先通过AT指令配置WiFi模式、连接路由器并查询IP地址;然后在PC端建立UDP服务器;接着ESP8266连接服务器并开启透传模式进行数据传输;最后详细说明了通过发送"+++"退出透传、关闭连接等操作步骤。整个过程展示了ESP8266在透传模式下的完整通信流程,包括连接建立、数据传输和连接终止等关键环节。

2026-01-05 10:51:21 257

原创 ESP826TCP单连接透传

摘要:本文介绍ESP8266作为TCP客户端实现单连接透传的方法。首先通过AT指令配置WiFi模式、连接路由器并查询IP地址;然后建立与PC端TCP服务器的连接(示例IP:172.24.209.29,端口8080);接着启用透传模式(AT+CIPMODE=1)进行数据传输,通过发送"+++"退出透传(需注意发送方式);最后可关闭透传模式(AT+CIPMODE=0)并断开TCP连接。整个过程演示了ESP8266在station模式下的透传实现,softAP模式同理适用。

2026-01-04 15:50:54 594

原创 ESP8266远端可变UDP传输

本文介绍了ESP8266模块的WiFi配置与UDP通信设置过程。首先将模块设为双模式(AT+CWMODE=3),连接路由器后查询获得STA和AP模式的IP地址(AT+CIFSR)。然后通过AT指令建立UDP连接:设置单连接模式(AT+CIPMUX=0),创建可变远端UDP通信(AT+CIPSTART参数设为2),指定目标机IP和端口。最后通过AT+CIPSEND指令实现数据传输。实验中使用不同端口测试发现,虽然多个端口都能发送数据,但只有指定端口(8080)能接收串口发送的数据,验证了UDP通信的目标端口绑

2026-01-04 15:25:32 1045

原创 ESP8266远端固定UDP传输

摘要:本文介绍了ESP8266模块的WiFi配置及UDP通信设置流程。首先将模块设为双模式(CWMODE=3),连接路由器并获取IP地址(CWJAP、CIFSR)。然后在PC端建立UDP连接,通过AT指令(CIPMUX=1、CIPSTART)创建固定UDP传输通道(连接号4),指定目标IP和端口。最后使用CIPSEND指令实现数据传输,完成PC与ESP8266的UDP通信。整个过程包含WiFi配置、IP查询和UDP连接建立三个主要步骤。

2026-01-03 23:20:29 385

原创 ESP8266TCP客户端

摘要:本文介绍了ESP8266模块与PC通过WiFi建立TCP通信的过程。首先配置ESP8266为双模(AP+STA),连接路由"xiaomi20pro"获取IP(172.24.209.124)。PC端(172.24.209.29)创建8080端口TCP服务器,ESP8266作为客户端成功连接。最后演示了ESP8266发送4字节数据"1234"的指令流程,包括AT命令配置、网络连接及数据传输的关键步骤,实现了设备与PC的双向通信。

2026-01-03 21:48:31 277

原创 ESP826601s烧录固件

ESP8266烧录固件指南:使用USB-TTL模块连接开发板,打开开发工具导入固件库完成烧录。接线后通过安可信串口助手发送AT指令测试,正常返回"OK"即表示烧录成功。该流程适用于ESP-01S等型号模块,需注意正确连接TX/RX引脚。烧录前建议擦除原有固件,确保稳定的电源供应。

2025-12-30 21:39:14 149

原创 手机蓝牙项目:手机控制蓝牙,蓝牙控制单片机,单片机控制外设

本文介绍了蓝牙模块的AT命令配置方法及STM32串口通信实现。主要内容包括:1.蓝牙模块配置:默认波特率9600(AT模式固定38400),通过AT命令设置名称、从模式、连接方式和密码;2.STM32串口实现:初始化USART1(115200)和USART2(9600),实现数据收发和中断处理;3.系统调试:手机通过蓝牙发送指令,经串口2传输至单片机控制外设,同时通过串口1反馈至电脑端。关键点:AT命令需以\r\n结尾,配置后需重启生效;蓝牙模块需设为从模式(ROLE=0)才能被手机连接。

2025-12-27 21:56:35 969

原创 串口发送接收控制LED灯,给32发“1”亮灯,发“0”关灯

设为高电平,默认关闭GPIO_SetBits(GPIOA, GPIO_Pin_1);

2025-12-25 23:50:14 1003

原创 串口中断接收,实现给stm32串口发送数据后,stm32将收到的数据又通过串口发出

NVIC(嵌套向量中断控制器)是ARM Cortex-M内核中的中断管理模块,负责仲裁、优先级排序和派发所有外设中断。其主要功能包括:优先级管理(0-15级)、中断嵌套、向量表跳转等。在STM32中,通过NVIC_InitTypeDef结构体配置中断通道、抢占/子优先级并启用中断。优先级分组(Group0-4)决定抢占位和子优先级的分配方式,影响中断嵌套能力。串口中断配置示例展示了如何初始化USART1中断并实现数据接收处理。开发时需注意:1)工程只需调用一次优先级分组配置;2)合理设置抢占和子优先级;3)

2025-12-25 00:17:33 605

原创 printf重定向,将输入printf的内容通过串口输出(可直接输出字符串)

必须要将MicroLIB勾选上。

2025-12-24 22:31:21 306

原创 重定义串口发送字符和字符串函数

摘要:本文介绍了STM32 USART串口通信的实现代码及关键标志位使用方法。在usart.c文件中实现了串口初始化、字节发送和字符串发送功能,重点解释了USART_FLAG_TXE(发送寄存器空)和USART_FLAG_TC(发送完成)两个标志位的区别:TXE用于连续数据流发送,TC用于确保数据完全发送。同时阐述了do-while循环"先执行后判断"的特性及其应用场景。这些知识点对编写可靠的串口通信程序至关重要。

2025-12-24 21:54:18 669

原创 STM32F103C8T6串口发送代码

STM32F103C8T6串口发送代码芯片TX在GPIOA,PA9芯片RX在GPIOA,PA10发送字符:a收到ASCALL:61

2025-12-16 15:34:55 203

原创 函数或变量 ‘trotz‘ 无法识别。Robotics Toolbox 机器人工具箱安装及使用教程

Robotics Toolbox 机器人工具箱安装及使用教程

2025-08-12 11:10:30 392

原创 LINUX板子开机自启动设置,相当于保存每次的设置

每次开机linux板子,都需要在命令窗口输一句sudo xinput map-to-output 10 DSI-1,下次开机就失效了,又要重新输,如何做到关机保存设置,下次开机后不用再输

2025-01-11 17:39:54 372

原创 点亮LED

main文件中,要用LED.h就得包含 #include "LED.h"3.在LED.c中包含LED.h,编译后自动生成(.h)文件。要包含stm32的库就得添加他的头文件stm32f10x.h。初始化引脚,GPIO_InitTypeDef。1.新建文件夹,新建文本文件并更改后缀。告诉main函数(LED.h)的位置。2.在KIEL中添加LED.C文件。函数声明,并将其复制到(.h)文件。右键他即可转到stm32的头文件。让GPIO输出低电平,去头文件找。

2024-10-20 16:37:16 660

原创 基本GPIO知识

IO的八种工作模式

2024-10-19 20:23:06 1982

原创 STM32烧录程序

安装后,连接板子后,会在设备管理器中,端口显示设备,没安装不会显示。3.使用jlink、stlink烧录工具在线烧录。安装stlink/jlink驱动。勾选了才能生成hex文件。配置魔术棒勾选然后烧录。1.配置Keil->生成hex文件。编译直接就会自动生成hex文件。2.使用flymcu串口烧录。

2024-10-19 11:59:45 1454

原创 STM32F103C8T6环境搭建,工程创建。

STM32F103C8T6环境搭建,工程创建。

2024-10-11 22:35:16 877

空空如也

空空如也

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

TA关注的人

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