自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 嵌入式开发实战:Linux 静态库 (.a)/ 动态库 (.so) 制作 + GCC 编译全流程 + Ubuntu-STM32 内存对比

本文详细介绍了Linux下静态库(.a)和动态库(.so)的创建与使用方法。首先通过创建头文件和实现文件搭建实验环境,然后分别演示了将源文件编译为目标文件(.o)、生成静态库(ar命令)和动态库(gcc -shared)的具体步骤。重点对比了两者的核心差异:静态库在编译时嵌入可执行文件,运行时不依赖;而动态库在运行时加载,必须确保库文件路径可访问。文章还验证了同名库文件的优先级规则,并提供了解决动态库路径问题的实用方案。最后通过Ubuntu和STM32的内存对比,分析了不同环境下库文件的使用效果差异。

2025-12-08 21:13:03 24

原创 从0到1搭建Spring Boot+MyBatis-Plus后端项目:规范与实战

本文介绍了如何从零开始搭建一个基于Spring Boot和MyBatis-Plus的企业级规范后端项目。主要内容包括:环境准备(JDK1.8+、MySQL8.0等)、项目初始化步骤、规范的项目结构设计、核心依赖配置(pom.xml)、配置文件(application.yml)以及数据库表设计。重点讲解了MyBatis-Plus的集成与配置,包括自动代码生成、逻辑删除功能实现等。通过Lombok简化实体类编写,使用分层架构(controller/service/mapper)实现清晰的代码组织,最终将构建一个

2025-11-11 13:42:31 1025 1

原创 Java并发编程中的线程安全优化实践:从理论到落地

Java并发编程线程安全优化实践 本文针对Java后端开发中的并发问题,提出系统化优化方案。首先剖析三大核心痛点:竞态条件、死锁和内存可见性。通过对比synchronized、ReentrantLock、原子类等五种方案的优缺点,给出适用场景建议。重点以秒杀系统为例,演示从基础锁方案到无锁编程的演进: ReentrantLock保证原子性,解决超卖问题 原子类+CAS机制实现无锁优化,性能提升30%+ 最终方案整合线程池(合理配置核心参数)与并发容器,实现高吞吐量 最佳实践包括:优先JDK并发工具、最小化锁

2025-11-11 13:37:00 1179

原创 从 0 到 1!STM32F103C8T6+HAL 库实战 uCOS-III 移植,多任务控灯 + 串口通信全实现

本文介绍了在STM32F103C8T6上使用HAL库移植uC/OS-III实时操作系统的完整流程。uC/OS-III是一款轻量高效的嵌入式RTOS,具有多任务管理、强实时性、低中断延迟等特性。文章首先详细解析了uC/OS-III的核心架构和功能模块,包括任务调度、内存管理和同步通信机制。然后通过CubeMX配置RCC时钟、GPIO和USART1串口,详细演示了工程搭建、源码移植和文件配置过程,包括添加uC-CPU、uC-LIB等关键组件。最后通过多任务控灯和串口通信实例展示了uC/OS-III的实际应用,为

2025-11-03 20:03:48 1357

原创 新手也能学会的 STM32 OLED 开发:I2C 协议、字模生成、滑动动画一步到位

本文介绍了基于STM32和I2C协议的0.96寸OLED开发过程。首先讲解了I2C通信协议基本原理和OLED工作原理,详细说明了硬件接线方式(STM32F103C8T6与OLED屏通过I2C连接)。接着介绍了U8g2图形库的移植方法,包括源码精简和工程配置。最后实现了三种显示效果:基础图形绘制、中英文字符显示(含自定义字模)以及滑动动画效果。通过CubeMX配置I2C接口和定时器,开发者可以轻松在OLED上实现各种显示功能,为嵌入式显示开发提供了完整解决方案。

2025-11-01 22:52:00 1049

原创 STM32 实战:基于 I2C 协议驱动 AHT20 温湿度传感器(工程搭建 + 代码实现 + 硬件接线 + 问题排查)

本文介绍了基于STM32的I2C协议驱动AHT20温湿度传感器的完整实现过程。文章首先阐述了I2C协议的理论知识,包括其物理层特性、协议层特性、速度模式以及软件/硬件I2C的区别。接着详细说明了工程搭建步骤,包括RCC、SYS、USART1、IIC1和TIM1的配置。最后提供了代码实现部分,重点展示了如何通过GPIO模拟I2C协议初始化传感器接口,包括SDA和SCL线的配置方法。该方案采用软件I2C方式,通过PB6、PB7引脚实现数据传输,为理解I2C协议和传感器驱动提供了实践参考。

2025-10-26 00:32:53 1086

原创 从 0 到 1 学 STM32 定时器:CubeMX 配置 + HAL 库代码完善,实现点灯与串口通信双功能

摘要:本文详细介绍了STM32定时器的理论知识与实践应用,包括STM32定时器分类(基本定时器、通用定时器、高级定时器)、计数器模式(上升/下降/上下计数)以及定时时钟计算方法。通过CubeMX配置实现了定时器2和定时器3的设置,结合HAL库完成了LED控制与串口通信功能。实验采用STM32F103C8T6芯片,配置了72MHz时钟、72分频系数和5000计数周期,实现5ms定时中断。文章还包含完整的工程建立步骤,从RCC配置到中断优先级设置,并提供了关键代码片段,如定时器启动函数和串口通信初始化,帮助开发

2025-10-20 23:50:09 956

原创 STM32 串口通信深度实践:文件互传、中断响应、上位机发信、DMA 传输全流程

本文介绍了STM32串口通信的全面实践,主要包括以下内容: 理论基础:讲解了串口通信原理、RS-232标准特性和DMA传输机制,包括DMA的四种传输方式和核心参数设置。 串口文件传输实验:通过SSCOM软件实现两台计算机间的图片文件传输(JPG转DAT),实测传输时间21.956秒与理论值16.996秒的对比分析,验证了电源和地线连接的必要性。 STM32向上位机发送数据:使用STM32CubeMX配置USART1,通过Keil5编程实现周期性发送"hello windows!"消息,同

2025-10-20 22:27:56 1007 1

原创 基于 STM32 的 PWM 呼吸灯实战:原理、代码、硬件连接一站式讲解

本文详细介绍了基于STM32的PWM呼吸灯实现方法。首先讲解了PWM(脉冲宽度调制)的基本原理、优点及应用场景,包括电机控制、LED调光等。接着通过STM32CubeMX配置定时器生成PWM信号,详细说明了工程创建步骤、时钟树设置和定时器参数配置。在代码实现部分,展示了如何设置占空比、开启PWM通道以及编写呼吸灯效果逻辑,使LED亮度从亮到暗再到亮循环变化。该方案具有高效、精确控制的特点,为PWM技术应用提供了完整参考。

2025-10-20 19:44:14 1183

原创 嵌入式开发实战:Linux 静态库 (.a)/ 动态库 (.so) 制作 + GCC 编译全流程 + Ubuntu-STM32 内存对比

本文记录了Linux下静态库与动态库的生成与使用实践过程。通过两个实验,详细展示了从编写hello和calc示例程序到编译为.o文件,再分别生成静态库(.a)和动态库(.so)的完整步骤。实验结果表明,当同名静态库和动态库同时存在时,gcc会优先链接动态库;使用动态库时需注意设置LD_LIBRARY_PATH环境变量或将库文件移至系统目录。这些实践加深了对Linux C程序开发中库文件管理、编译链接过程以及不同库类型应用场景的理解,为嵌入式开发奠定了重要基础。

2025-10-11 23:12:41 342 2

原创 保姆级!STM32 中断控制 LED 流水灯全流程:CubeMX 配置 + HAL 库编程 + 问题解决

本文介绍了基于STM32 HAL库实现中断控制LED流水灯的完整过程。首先通过STM32CubeMX配置GPIO引脚(PA0-PA2为输出,PB5为外部中断源),设置时钟和中断优先级。然后编写中断回调函数,通过检测PB5电平状态控制LED流水灯启停。实验实现了PB5高电平时三颗LED依次点亮(0.1s间隔),低电平时全部熄灭的效果。文章详细记录了CubeMX配置步骤、代码编写要点、电路连接方式及Protues仿真结果,并分享了调试心得和Git代码仓库。该实验验证了HAL库中断机制的可靠性,为STM32中断应

2025-10-10 23:30:26 1168

原创 从环境搭建到仿真验证:手把手教你用 HAL 库做 STM32 LED 流水灯

本文介绍了基于HAL库和中断实现STM32流水灯的全过程。首先详细说明了JDK环境和CubeMX软件的安装步骤,包括版本选择和配置参数。然后重点讲解了CubeMX的配置流程:安装HAL库、创建工程、设置时钟和GPIO引脚,并生成了流水灯控制代码。最后展示了电路连接烧录效果和仿真波形,验证了流水灯每隔1秒轮换闪烁的功能。文章通过图文结合的方式,完整呈现了从环境搭建到功能实现的全过程,为STM32中断控制LED提供了实用参考。

2025-10-10 00:34:55 863

原创 从底层到应用:STM32F103C8T6 LED 流水灯双实现(寄存器 + 固件库)与仿真验证

本文介绍了基于STM32寄存器与固件库的LED流水灯实现方法。首先详细说明了在Keil中搭建工程环境的步骤,包括创建工程、添加启动文件和配置主函数。其次,重点讲解了GPIO端口配置原理,包括时钟使能寄存器(RCC_AP2ENR)、端口配置寄存器(CRL/CRH)和输出数据寄存器(ORD)的地址映射与配置方法。最后提供了完整的代码实现,通过控制GPIOA、GPIOB和GPIOC端口(A7、B9、C15引脚)的高低电平变化,配合延时函数实现LED流水灯效果。代码采用寄存器直接操作方式,详细注释了每个配置步骤的作

2025-09-26 21:33:08 775 1

原创 Ubuntu20.04系统使用gcc和Makefile编译C程序

本文介绍了在Ubuntu系统下使用gcc编译C程序的两种方法:直接编译和Makefile编译。首先详细说明了gcc的安装步骤,并通过"hello world"示例演示了从编写代码到生成可执行文件的完整过程。其次,通过多文件程序(main1.c和sub1.c)展示了gcc的分步编译方法,包括预处理、编译、汇编和链接四个阶段。最后介绍了Makefile的编写规则和使用方法,对比了Linux与Windows平台编程的差异。文章强调了理解底层编译过程的重要性,并提出"手动编译理解原理+

2025-09-21 23:13:57 1372 10

空空如也

空空如也

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

TA关注的人

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