自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 基于 Spring Boot 与 RabbitMQ 的分布式消息通信机制设计与实现

本文介绍了rabbit MQ的几种工作模式,并分析了消息可靠性投递的几种保障方法,介绍了当消费端抛出异常,如何手动拒绝消息,并配置死信接收导致消费者业务异常的消息

2025-11-10 11:30:39 1189

原创 基于 STM32CubeMX 的 FreeRTOS 中断任务通信机制设计——利用二值信号量与任务通知实现按键检测

本文基于STM32与FreeRTOS系统,研究了中断与任务通信机制,重点对比了二值信号量和任务通知两种按键检测同步方式的性能差异。实验通过配置四个外部中断按键,分别使用任务通知(KEY0/1)和二值信号量(KEY2/3)实现LED任务的状态控制,并设计Monitor和LCD任务进行系统状态监控和可视化显示。结果表明:任务通知机制在CPU占用(未触发时完全挂起)和响应速度方面优于二值信号量,特别适合单任务事件触发场景;而二值信号量更适用于多任务同步。

2025-10-28 19:20:04 1034

原创 基于 STM32CubeMX 实现按键改变 FreeRTOS 多任务的状态(升级版)

摘要:本文介绍了FreeRTOS系统下任务调度的优化方案。针对原有设计中按键轮询效率低、任务状态重复获取、LCD刷新闪烁等问题,提出了四项改进:1)采用任务通知机制实现按键事件驱动;2)通过队列共享任务状态数据避免重复调用;3)引入显存缓存机制优化LCD显示;4)使用DMA传输提升数据写入效率。实验基于STM32F103平台,通过FSMC扩展外部SRAM存储显存缓存,实现了系统性能的全面提升

2025-10-28 15:59:29 924

原创 macbook使用STM32CubeIDE无需下载插件开启代码自动补全功能

本文介绍了在STM32CubeIDE中开启代码自动补全功能的方法。首先在Settings中找到C/C++ Editor的Content Assist设置,勾选Parsing-based Proposals选项。接着设置快捷键,在Keys设置中搜索并绑定Tab键到C/C++ Content Assist功能。最后通过输入HAL_GPIO_并按下Tab键来测试自动补全功能是否生效。这些设置能显著提升STM32开发的编码效率。

2025-10-26 00:52:42 349

原创 基于 STM32CubeMX 实现按键改变 FreeRTOS 多任务的状态( STM32F103ZET6)

本文基于STM32CubeMX和FreeRTOS实现了多任务管理系统,包含LED闪烁、按键控制、LCD显示和串口监控五个任务。通过外部按键(KEY0-KEY2、KEY_UP)动态控制任务状态:KEY0/1挂起/恢复LED0任务,KEY2/KEY_UP删除/重建LED1任务。重点讲诉了外部中断按键的实现和原理

2025-10-17 20:27:52 777

原创 基于 STM32CubeMX 实现 FreeRTOS 可视化移植的多任务 LED 控制实践(基于 STM32F103ZET6)

本实验基于STM32F103ZET6开发板,通过STM32CubeMX工具实现FreeRTOS可视化移植,完成多任务LED控制。实验重点包括:1)使用TIM3定时器配置运行时间统计;2)通过串口DMA输出任务状态(vTaskList)和CPU占用率(vTaskGetRunTimeStats);3)建立监控任务周期打印系统信息。

2025-10-15 19:19:07 946

原创 STM32CubeMX + HAL 库:定时器输入捕获的应用,PWM波的占空比(频率/周期)测量

本实验通过 STM32 定时器对 PWM 信号的周期、频率和占空比进行测量,演示了 从模式、双通道捕获 和 单通道捕获 三种方法。实验比较了三种方法在测量精度与实时性方面的差异。结果表明:使用硬件自动清零计数器 CNT 的 从模式精度最高;通过中断清零 CNT 的 双通道方法次之;而 单通道方法由于需要在中断中切换捕获极性,占用 CPU 时间较多,测量精度最低。实验验证了硬件复位和中断处理对 PWM 测量精度的影响,为嵌入式系统中高精度信号测量提供了参考。

2025-10-11 21:58:54 997

原创 基于 ST-Link 和 MDK-Keil 的 STM32 程序下载实验

本文介绍了在MDK-Keil环境下使用ST-Link进行STM32程序下载与调试的方法。首先对比了ST-Link与其他调试工具的特点及适用场景,重点说明了ST-Link的硬件连接方式,文章还详细讲解了在STM32CubeMX中配置DEBUG接口为SerialWire模式的方法,并提供了ST-Link驱动下载安装步骤以及MDK keil的调试和下载程序自动复位设置。

2025-09-19 18:42:15 1160

原创 STM32CubeMX + HAL 库:用FSMC接口驱动TFT LCD屏幕显示

本实验通过STM32的FSMC接口驱动2.8寸TFTLCD屏幕(ILI9341驱动芯片),实现了屏幕初始化、清屏和 标准 ASCII 字符集显示功能。实验详细介绍了TFTLCD的工作原理、FSMC配置方法以及与OLED的对比特性,重点阐述了FSMC在驱动LCD时的特殊应用——使用地址线区分命令/数据寄存器而非直接寻址。实验代码实现了字符显示、字符串输出等功能,验证了驱动程序的正确性。通过本实验掌握FSMC接口驱动TFTLCD屏幕基础,为后续开发图形界面应用奠定基础。

2025-09-17 10:06:30 943

原创 STM32CubeMX + HAL 库:基于 I²C 通信的 BMP280气压海拔测量

摘要:本实验基于STM32硬件I²C接口实现了BMP280高精度气压/温度传感器的数据采集与处理。通过HAL库完成了传感器初始化、校准参数读取、温度/气压补偿计算及海拔高度换算等关键功能。实验结果表明,系统能够准确输出温度(℃)、气压(KPa)和海拔高度(m)数据。对比测试显示,BMP280温度测量值略高于ATH20传感器。该方案为环境监测、无人机高度控制等应用提供了可靠的技术实现,具有精确度高(气压误差±0.12hPa)、支持多种采样模式(16X过采样)等特点。

2025-09-03 11:38:50 1086

原创 STM32CubeMX + HAL 库:基于 I²C 通信的 AHT20 高精度温湿度测量实验

本文介绍了基于STM32CubeMX和HAL库通过I²C接口驱动AHT20温湿度传感器的实验。与存储型 EEPROM(如 AT24C32)不同,AHT20 属于命令型设备,因此文章详细介绍了二者使用 STM32 HAL 库时的函数调用方式的区别。并提供HAL驱动文件,和验证代码,对高精度温湿度传感器的应用进行了实践说明,为学习和工作提供了参考。

2025-08-29 21:53:36 726

原创 STM32CubeMX + HAL 库:基于通用定时器输出比较功能实现 PWM 的无源蜂鸣器歌曲演奏实验

本实验通过 STM32 微控制器的通用定时器输出比较功能,生成 PWM 波形 驱动无源蜂鸣器,实现乐音输出与歌曲演奏。实验展示了 PWM 信号的频率与占空比调节原理,以及如何将音乐音符映射为对应 PWM 频率进行播放。通过实验,读者能够掌握 定时器输出比较模式 的基本原理与使用方法,理解 PWM 信号与音频频率的对应关系,并掌握占空比与频率对音调和音量的控制技巧。在实践中,能够完成无源蜂鸣器驱动,并扩展至 音乐播放、报警提示等应用,为嵌入式系统的声音输出与外设驱动提供技术基础

2025-08-28 19:21:44 1133

原创 STM32CubeMX + HAL 库:用硬件IIC接口实现DS3231 实时时钟读取与设置实验

本实验基于STM32微控制器的硬件I²C接口,实现对DS3231高精度实时时钟芯片的通信与功能验证。实验内容包括时间/日期读写、闹钟配置与中断处理,详细介绍了DS3231的寄存器结构、BCD编码格式及中断输出特性。通过CubeMX配置I²C外设,并提供了完整的驱动代码实现时间设置、温度读取等功能。实验结果表明,系统能准确完成时间数据交换和温度监测。文章还对比了不同RTC芯片的性能参数,指出DS3231具有±2ppm的高精度和温度补偿优势。后续将扩展闹钟中断、蜂鸣器驱动等综合应用,并探讨更高精度的温度采集方案

2025-08-22 10:18:36 857

原创 STM32CubeMX + HAL 库:用FSMC接口与IS62WV51216芯片实现stm32外部SRAM扩展

【摘要】本实验基于STM32CubeMX和HAL库,实现了STM32通过FSMC接口驱动IS62WV51216并行SRAM。FSMC将外部SRAM映射到0x68000000地址空间,实验通过__attribute__((at()))将变量固定在外部SRAM地址,验证了不同存储类型的变量分配机制。实验还演示了指针访问外部SRAM的方法,并分析了FSMC的26位地址线寻址原理及16位数据宽度的地址映射机制,为嵌入式系统扩展外部存储提供了实践参考。

2025-08-13 18:21:57 1245 3

原创 STM32CubeMX + HAL 库:用硬件IIC接口实现AT24C02 EEPROM芯片的读写操作

本实验基于STM32硬件I²C接口实现了AT24C02 EEPROM的读写操作,包括单字节、多字节和跨页写入功能。实验详细介绍了I²C协议原理、AT24C02芯片特性及与Flash存储器的区别,提供了完整的驱动代码和STM32CubeMX配置方法。实验结果为嵌入式系统中的小容量数据存储应用(如配置参数保存)提供了实用方案,同时指出该驱动不适用于地址空间更大的AT24C32等型号。

2025-08-11 19:29:51 1031 1

原创 STM32CubeMX + HAL 库:用硬件SPI接口实现W25Q64 SPI Flash芯片的读写操作

本实验基于STM32微控制器通过SPI接口实现对W25Q64 NOR Flash存储芯片的读写操作。实验详细介绍了SPI协议的工作原理(4种工作模式)和W25Q64芯片特性(8MB容量、4KB扇区结构及指令集)。通过STM32CubeMX配置硬件SPI2接口,并实现驱动函数包括ID读取、扇区擦除、页编程和数据读取等功能。主程序演示了芯片ID识别、随机扇区擦除、多页数据写入和读取验证等完整流程。

2025-08-06 18:14:30 1669

原创 STM32CubeMX + HAL 库:用PCF8574芯片实现 IIC 总线协议驱动 LCD1602 显示

本文介绍了基于STM32微控制器通过I²C总线驱动LCD1602显示模块的实现方案。传统并行接口方式需占用12个I/O引脚,而采用PCF8574扩展芯片可将接口简化为2线I²C通信(SCL/SDA),大幅节省引脚资源并提高系统稳定性。文章详细说明了硬件连接方案、STM32CubeMX配置步骤(包括I²C设置)、Keil工程构建方法,并提供了完整的驱动代码实现,包括初始化、指令/数据写入、光标控制、字符串显示等功能。

2025-07-30 19:15:37 1185

原创 STM32CubeMX + HAL库:基于DHT11温湿度监测实现

本实验基于STM32微控制器实现了DHT11温湿度传感器的数据采集。通过单总线协议与DHT11通信,配置GPIO引脚和USART串口输出,每2秒采集并打印环境温湿度数据。实验详细介绍了硬件连接(DATA接PE0引脚,需4.7kΩ上拉电阻)、STM32CubeMX配置(时钟树、GPIO、USART等)以及Keil/VSCode开发环境搭建。驱动代码实现了DHT11的初始化、数据读取和校验功能,主程序通过printf输出采集结果。

2025-07-27 03:42:54 1736

原创 STM32CubeMX + HAL库:基于ADC内部通道信号源的芯片温度监测实现

本文介绍了基于STM32CubeMX+KeilMDK+VSCode的协同开发模式,采用HAL库实现ADC温度监测和多通道数据采集。通过图形化配置完成外设初始化,利用DMA双缓冲机制实现无阻塞数据传输,最终通过UART输出温度与电压数据。文章详细阐述了从时钟配置、ADC参数设置到代码实现的完整流程,重点解决了温度测量异常等常见问题,为STM32开发提供了实用参考方案。该方案特别适合作为HAL库应用、多外设协同开发的入门案例。

2025-07-26 02:35:30 1192

原创 Spring Boot + Spring Integration整合MQTT打造双向通信客户端

本文分两个章节讲解MQTT相关的知识,第一部份主要讲解MQTT的原理和相关配置,第二个章节主要讲和Spring boot的integration相结合代码的具体实现,如果想快速实现功能,可直接跳过第一章节查看第二章讲。

2025-03-20 19:01:41 3558 4

原创 Spring Security+JWT+Redis实现项目级前后端分离认证授权

本文介绍了一种前后端分离架构下,基于Spring security框架进行用户认证授权的方法,其中包括登录、登出、认证、授权、密码加密、jwt等知识点

2025-02-22 19:20:07 1864 5

原创 基于spring boot的日志框架最佳实践

本文介绍了基于spring boot进行日志打印的方法及相关都配置,并给出了一个最佳实践配置,后续工程开发中,只需要进行复用即可,配置相对模版化,需要自定义改动的地方很少,并增加了日志目录检测和创建功能

2025-02-10 12:02:50 1063

原创 全能型免费内网穿透工具,全面支持macOS、Windows、Linux及Docker系统

这款全能型免费内网穿透工具是一款功能强大且易于使用的软件,它旨在帮助用户轻松实现内网资源的远程访问。无论是处于家庭网络、公司内网还是其他受限环境中的设备,只需通过这款工具,用户就可以随时随地通过互联网进行连接和访问。

2025-02-05 15:14:28 720

原创 在 Mac M2 上安装 PyTorch 并启用 MPS 加速的详细教程与性能对比

本文介绍了在Mac mini M2上安装torch并使用mps进行加速的整个过程,并通过实例对mps和CPU进行了加速对比

2024-12-21 14:35:57 9390 6

原创 mybatis逆向工程插件MyBatisX使用介绍

本文介绍了mybatisX插件的使用方法,通过数据库的表自动生成mybatis相关代码文件

2024-12-20 20:23:38 1227

原创 mybatis分页插件的使用

本文介绍了mybatis中分页插件的使用方法,并给出了实战演示

2024-12-20 19:54:48 513

原创 springMVC核心组件的调用流程理解

3. HandlerAdapter : SpringMVC提供,我们需要进行IoC配置使其加入IoC容器方可生效,它可以处理请求参数和处理响应数据数据,每次DispatcherServlet都是通过handlerAdapter间接调用handler,他是handler和DispatcherServlet之间的适配器!4. Handler : handler又称处理器,他是Controller类内部的方法简称,是由我们自己定义,用来接收参数,向后调用业务,最终返回响应结果!

2024-11-28 18:36:39 303

原创 Spring Boot 实战:分别基于 MyBatis 与 JdbcTemplate 的数据库操作方法实现与差异分析

本文介绍了MyBatis 与 JdbcTemplate 的数据库操作方法实现步骤,并针对两者不同处进行了对比和区别

2024-11-27 19:59:57 614

原创 Spring Boot 实战:基于 Validation 注解实现分层数据校验与校验异常拦截器统一返回处理

本文介绍了在spring boot框架下,使用validation数据校验注解,针对不同请求链接的前端传参数据,进行分层视图对象的校验,并通过配置全局异常处理器捕获传参校验失败异常,自动返回校验出错的异常数据。

2024-11-25 21:11:16 1366

原创 过滤器、拦截器以及AOP的使用和区别

本文介绍了拦截器、过滤器以及切面编程三种工具的编程实现方法,以及各自的特点和区别

2024-11-20 20:27:59 1812

原创 java反射:获取Class实例、创建运行时类对象、调用指定结构

本文主要介绍了反射中,四种获取Class实例的方式,以及通过运行时类创建对象的两种方法,并介绍了通过运行时类调用对象的属性、方法以及运行时类的构造器

2024-11-18 18:35:01 708

原创 在spring boot工程中使用Filter时,@WebFilter 注解不生效的问题分析和解决方案

如果要使用@WebFilter进行过滤路径的配置,则需要在启动类中添加@ServletComponentScan注解启用Servlet容器扫描@WebFilter注解,并删除Filter类中的@Component注解,防止spring实例化的Filter与Servlet容器实例化的Filter冲突。

2024-11-15 19:14:53 2538

原创 跨域问题的产生和解决

本文介绍了跨域的产生,以及浏览器对跨域的拦截机制,基于跨域问题介绍了两种比较常见的解决方案和优缺点对比。

2024-11-14 18:38:59 2032

原创 当使用key-value方式进行参数传递时,若key对应的是一个对象或数组结构,如何利用API Post工具进行模拟操作。

属性是对象的话,就使用 “类名.属性名” 作为入参key值,属性是数组的话,就重复使用属性进行赋值。

2024-11-12 18:02:57 473

原创 在spring boot项目中使用Spring Security的BCryptPasswordEncoder类进行相同密码不同密文的加密和验证

在spring boot项目中使用BCryptPasswordEncoder类对明文密码进行加密,使用此方法对密码加密,即是传入相同的明文密码,每次加密得到的密文结果都不一样。

2024-10-08 19:23:21 795

原创 macOs系统基于anaconda的pycharm研发环境搭建

本文介绍了MacOs系统下,安装anaconda和pycharm,并基于anaconda安装python解释器创建虚拟环境,使用pycharm关联虚拟环境进行python工程代码开发

2024-09-09 14:25:33 1079

原创 在Spring中,相同类型不同ID的bean,与相同ID多次获取bean的区别和联系

在Spring中,关于获取同一类型但不同ID的bean,以及相同ID多次获取bean的情况,两者之间的区别。通过理论讲解配合代码实验进行了分析。

2024-09-05 11:12:10 1345

原创 静态工厂模式(简单工厂模式)与动态工厂模式(工厂方法模式)

本文介绍了静态工厂模式和动态工厂模式的优缺点及原理,最后通过代码实现进一步说明了两种模式的原理

2024-08-31 18:16:35 824

原创 静态代理模式(接口的应用)与动态代理模式(反射的应用)

本文通过讲解静态代理和动态代理的原理和应用,并通过举例编写了两种代理模式的代码实现,让读者更深层次的理解静态代理和动态代理

2024-07-18 19:09:04 1106

原创 JDK8升级到JDK17,报错Error:java:错误:不支持的发行版本5

我原来用到是JDK8,后来重新安装了JDK17后,就报错java:错误:不支持的发行版本5

2024-07-18 11:39:45 1239

学习笔记:尚硅谷Spring6基础篇

spring6课件资料,是尚硅谷spring6讲解课件,资料并非我原创,是来自于尚硅谷公开资料,我仅仅是转换了一下格式,方便阅读和打印。也不会拿此资料用于商业牟取利益,同样免费分享给大家,如果侵权,请联系我删除。

2024-07-01

空空如也

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

TA关注的人

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