单片机STM32的学习
文章平均质量分 63
Darken03
电子信息工程专业 不断学习
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
STM32最小系统拓展板------原理图剖析
本文详细介绍了16种电子电路模块的工作原理,涵盖电源管理、传感器接口、通信接口、显示驱动等关键功能。主要内容包括:3.3V稳压电源的线性降压和滤波过程;SWD调试接口的通信机制;DS18B20和DHT11温湿度传感器的单总线协议;蜂鸣器驱动电路的三极管开关控制;I²C接口的OLED显示和EEPROM存储;USART转USB/RS485的协议转换;WS2812全彩LED的单线级联控制;以及旋转编码器的正交信号检测等。各电路均详细描述了信号流程、关键元件作用和保护机制,为嵌入式系统设计提供了全面的硬件实现参考。原创 2026-03-03 17:19:58 · 784 阅读 · 0 评论 -
基于STM32---PWM动态输出(电机\呼吸灯同理)
摘要:本文介绍了基于STM32的PWM动态控制实现方法,通过STM32CubeMX配置TIM2的PWM输出通道(PA15引脚)和USART1串口。硬件连接将PA15接LED正极,GND接负极。代码实现了呼吸灯效果,通过__HAL_TIM_SET_COMPARE动态调整占空比,并利用匿名助手协议(9字节数据包)将PWM数据通过串口发送,用于波形监测。关键点包括PWM启动(HAL_TIM_PWM_Start)、占空比渐变算法和串口数据校验(sumcheck/addcheck)。系统支持通过逻辑分析仪或匿名助手观原创 2025-12-29 17:43:35 · 401 阅读 · 0 评论 -
基于STM32---编码器测速(利用GPIO模拟脉冲信号)
本文介绍了使用STM32模拟编码器信号并实现速度计算的方案。通过配置TIM3为编码器模式,TIM4定时翻转GPIO模拟A/B相脉冲信号,TIM2定时计算转速。关键步骤包括:1)CubeMX配置时钟、定时器和GPIO;2)编写中断回调函数处理编码器计数和方向判断;3)重定向printf实现串口输出调试信息。测试时需将模拟信号引脚(PB0/PB1)连接到编码器输入引脚(PA6/PA7)。该方法可在无实体编码器的情况下验证编码器接口功能,适用于嵌入式系统开发调试。原创 2025-12-28 16:01:50 · 1539 阅读 · 0 评论 -
使用匿名助手接受数据
本文介绍了匿名助手和VSPD虚拟串口工具的安装配置流程。首先提供了匿名助手的Windows版下载链接及VC运行库补丁安装说明,详细说明了VSPD的下载、安装及破解步骤(需替换两个关键文件)。随后指导如何通过虚拟串口连接COM1和COM2端口,在匿名助手中配置串口参数并与XCOM工具建立通信,最终实现串口数据的收发和波形绘制功能。整个教程涵盖了从软件安装到实际应用的完整过程。原创 2025-12-24 23:01:21 · 642 阅读 · 0 评论 -
基于TIM定时中断的----输出比较
本文介绍了PWM(脉冲宽度调制)技术及其应用。PWM通过调节固定周期内高电平的持续时间(占空比)来控制输出等效电压,在LED亮度调节中利用人眼视觉暂留效应实现平滑亮度变化。文章详细阐述了PWM的工作原理、参数计算以及在单片机中的实现方式,包括输出比较模式、8种工作模式等硬件配置。同时介绍了PWM在舵机和直流电机驱动中的具体应用,提供了模块化编程方法,包括LED呼吸灯、舵机控制和电机驱动的代码实现方案,强调了电路设计中的限流保护等注意事项。原创 2025-12-12 11:05:12 · 1198 阅读 · 0 评论 -
基于TIM定时中断的----内外时钟源选择
本文介绍了STM32中TIM定时器的基本原理和应用。主要内容包括:1. TIM定时器的工作原理,涉及预分频器、16位计数器、自动重装寄存器等核心组件;2. 定时器的三种类型(基本、通用、高级)及其功能差异;3. 定时中断的结构和实现方法;4. 时钟源选择与时序控制。重点阐述了定时器在输入捕获、输出比较、编码器接口等方面的应用,以及如何通过代码实现定时中断功能。文章为理解STM32定时器提供了系统性指导。原创 2025-12-10 12:49:42 · 524 阅读 · 0 评论 -
基于单片机STM32的---EXTI外部中断(代码部分)
本文介绍了利用对射式红外传感器实现计次功能的实现方法。首先通过STM32的PB14口接收传感器信号,在中断函数中进行计数,并通过OLED显示结果。详细说明了硬件配置流程:包括RCC时钟使能、GPIO输入模式设置、AFIO端口映射、EXTI中断线配置以及NVIC优先级设置等步骤。重点阐述了EXTI和NVIC的相关功能函数使用方法,并提供了代码编写思路。最后通过调试验证了中断触发的三种模式(上升沿、下降沿、双边沿)的工作效果,同时介绍了旋转编码器的封装实现方法,实现了左右旋转时的加减计数功能。原创 2025-12-07 13:39:50 · 430 阅读 · 0 评论 -
基于单片机STM32的---EXTI外部中断(理论部分)
本文摘要:文章主要介绍了中断系统和外部中断的相关知识。首先阐述了中断系统的定义、执行流程和STM32的中断机制,重点讲解了NVIC(嵌套中断向量控制器)的结构和优先级分组功能。其次详细说明了EXTI外部中断模块,包括其基本结构、复用IO口设计和内部逻辑框图。最后简要提及旋转编码器的概念和硬件电路。全文系统性地介绍了嵌入式系统中中断处理的关键技术要点。原创 2025-12-06 19:34:39 · 257 阅读 · 0 评论 -
基于单片机STM32的---断点调试操作
STM32断点调试是嵌入式开发中定位Bug的关键手段。调试通过硬件调试器与IDE软件配合实现,支持暂停CPU执行、查看寄存器/内存状态及单步执行等操作。调试方法包括:1) 普通断点(点击代码行左侧设置);2) 条件断点(满足特定条件时暂停);3) 计数断点(执行指定次数后暂停);4) 临时断点(执行一次后自动消失)。启动调试后,IDE进入调试视图,可查看函数调用栈、变量值、寄存器状态及内存数据等。该流程适用于STM32全系列芯片开发。原创 2025-12-05 23:01:11 · 680 阅读 · 0 评论 -
基于单片机STM32中的OLED显示屏
本文介绍了OLED屏幕的基本概念、调试方法及使用流程。内容涵盖OLED硬件电路设计、驱动函数模块,以及如何与最小系统板连接。重点讲解了OLED模块的添加步骤和多种显示功能应用,包括字符、字符串、数字、有符号数、十六进制数、二进制数的显示方法,以及清屏操作。文章为开发者提供了OLED屏幕从硬件连接到软件调用的完整指导。原创 2025-12-03 19:16:16 · 539 阅读 · 0 评论 -
基于 STM32 ——GPIO输入
本文介绍了按键和传感器模块的应用开发方法。主要内容包括:1)按键消抖处理,通过延时过滤5-10ms的机械抖动;2)LED和按键模块的代码封装方法,创建.c和.h文件实现模块化编程;3)GPIO输入输出函数的应用,如GPIO_ReadInputData等;4)光敏传感器控制蜂鸣器的实现,根据光线变化输出高低电平;5)GPIO初始化流程总结,包括时钟使能、结构体配置和引脚模式设置。文章提供了嵌入式开发中常用外设模块的编程思路和实现方法。原创 2025-12-02 11:14:48 · 663 阅读 · 0 评论 -
基于C语言在STM32单片机的一些用法
本文介绍了C语言的核心数据类型及用法:1)基本数据类型与宏定义的区别在于语法位置、分号使用和适用范围;2)结构体用于组合不同类型数据,区别于只能存储同类型数据的数组;3)枚举类型可作为宏定义的集合。重点解析了结构体的两种引用方式,强调其数据打包功能。全文系统梳理了C语言数据类型体系,包括宏定义、typedef、结构体和枚举等关键概念及其应用场景,为C语言数据类型学习提供了清晰的框架。原创 2025-11-30 13:40:26 · 536 阅读 · 0 评论 -
基于STM32实现LED闪烁&LED流水灯&蜂鸣器
本文介绍了LED和蜂鸣器的基本使用方法。首先说明了LED的正负极识别方法及面包板搭建电路的基本操作,详细描述了如何通过最小系统板连接LED实现闪烁效果,包括硬件连接步骤和GPIO控制代码编写流程。其次讲解了流水灯的实现方法,建议通过修改十六进制数值实现不同点灯效果。最后简要提及蜂鸣器的连接方式,指出PB12可作为控制IO口。全文重点阐述了LED从单灯控制到复杂效果的完整实现过程,为初学者提供了基础电子元件使用的实用指南。原创 2025-11-30 13:36:12 · 768 阅读 · 0 评论 -
基于 STM32 ——GPIO输出
摘要:本文详细介绍了STM32的GPIO结构与工作原理。主要内容包括:GPIO的基本概念(数字电平、模拟输入模式)、硬件结构(寄存器与驱动器)、位结构(输入/输出部分、上拉/下拉模式、TTL触发器)、八种工作模式(浮空/上拉/下拉等)以及相关寄存器配置。重点解析了STM32特有的位带机制,该机制通过地址映射实现高效位操作,避免了传统"读-改-写"方式的弊端。文章还分析了开漏模式的应用场景及GPIO寄存器组的详细功能划分。原创 2025-11-29 14:47:37 · 852 阅读 · 0 评论 -
基于库函数来实现点灯操作
摘要:本文介绍了使用STM32库函数配置GPIO的基本流程。首先通过RCC_APB2外设时钟控制使能GPIOC时钟,利用GPIO_Init结构体配置PC13引脚为50MHz输出模式。然后使用GPIO_SetBits和GPIO_ResetBits函数分别控制引脚高低电平,实现LED的亮灭控制。库函数封装了底层寄存器操作,简化了开发过程,且不会影响寄存器其他位的状态。通过注释调试可验证LED控制效果。原创 2025-11-29 14:07:39 · 619 阅读 · 0 评论 -
基于STM32一新建工程的详细步骤
摘要:本文介绍了使用Keil5建立STM32工程的步骤:1)创建英文路径文件夹;2)选择C8T6器件;3)复制固件库文件到工程目录;4)添加72MHz系统时钟配置;5)添加内核寄存器文件;6)设置头文件路径;7)创建User组并添加库函数文件;8)从固件库复制必要文件到User目录;9)添加宏定义USE_STDPERIPH_DRIVER。完整配置了STM32标准外设驱动库的开发环境。原创 2025-11-28 11:26:37 · 751 阅读 · 0 评论 -
单片机STM32学习笔记(四)
摘要:本文探讨了单片机通过代码实现对外部设备的控制与通信。主要内容包括:通过修改内存空间实现信息输出,利用中断感知外部状态变化,以及使用控制逻辑进行决策。重点分析了无法直接操作外部设备内存时的处理流程:通过通信协议(如Modbus、I2C、SPI、CAN等总线)分步骤访问外设地址。文章还区分了同步和异步通信方式在单片机应用中的差异。原创 2025-11-26 11:30:10 · 289 阅读 · 0 评论 -
对单片机STM32的初步认识
本文介绍了STM32微控制器的基本知识,包括四大产品系列(高性能、主流、超低功耗和无线),重点讲解了主流系列STM32F103C8T6。内容涵盖外设功能、引脚定义、最小系统电路设计以及STM32F1系列的型号分类。同时还详细说明了新建工程的步骤和两种LED点灯的实现方法,为初学者提供了STM32开发的入门指南。原创 2025-11-19 11:49:12 · 487 阅读 · 0 评论 -
进一步了解单片机
摘要:本文介绍了单片机编程的基本概念和应用方法,包括通过指针、宏定义和HAL库编写程序来控制外设。重点分析了ICode(指令总线)和DCode(数据总线)在Cortex-M3架构中的功能差异,详细阐述了中断函数的特性、触发机制、典型用途及编程要点。文章还探讨了GPIO中断的配置方法,以及系统结构图的理解。这些内容为嵌入式系统开发提供了基础理论支持和技术指导。(149字)原创 2025-11-19 11:22:00 · 658 阅读 · 0 评论 -
单片机STM32学习笔记(三)
本文摘要:文章从代码解读入手,首先解析了TMXPoint结构体的内存占用情况(8字节,含两个4字节int),并阐述了内存与CPU的交互机制。其次介绍了寄存器的使用,重点说明ODR寄存器的操作流程及风险。最后探讨了枚举变量,包括其定义(用户自定义的有限命名常量集合)、特点和优势。全文涵盖底层编程的关键概念,涉及内存管理、寄存器操作和数据类型设计。原创 2025-11-14 11:36:34 · 382 阅读 · 0 评论 -
单片机STM32学习笔记(二)
摘要:本文介绍了STM32开发中的关键知识点,包括GPIO接口、APB1与APB2总线区别、程序结构体等。重点解析了volatile关键字的作用:防止编译器优化,确保硬件寄存器访问可靠性。列举了4个典型应用场景和3个使用规则。最后简要提及函数指针概念。内容涵盖STM32底层开发中的重要概念和实践要点,适合嵌入式开发者参考。原创 2025-11-12 11:44:43 · 441 阅读 · 0 评论 -
基于单片机STM32F103C8T6的仿真点灯操作
本文介绍了基于STM32的点灯实验操作流程。首先通过STM32CubeMX软件进行初始化配置,选择并操作指定内存区域(0x40010800及偏移地址)。然后使用Proteus软件进行电路仿真,包括元件连接和电阻参数设置。在Keil5开发环境中,分别实现了三个LED同时点亮(通过配置0X0070参数)和单独点亮中间LED的两种控制方式,完成代码编译并烧录至STM32芯片。实验过程中需注意电阻阻值选择,避免因电压过高导致LED不亮。原创 2025-11-06 23:30:21 · 271 阅读 · 0 评论 -
零基础-----单片机入门学习笔记(STM32F103C8T6)(一)
B+C = 11+12 = 23 = 两个10和三个1 = 几个16和几个1 = 1个16和7个1 = 17h。为了完成一个具体的功能,我要操作哪一块内存(阅读文档)?C语言如何既有变量,有能操作指定的内存空间-----指针。10进制,0 1 2 3 4 5 6 7 8 9。但是C语言中,既有变量,又能直接操作内存。12 = 一个10 加 两个1。把两块内存,合成一个,一次赋值。如何编写c语言代码操作内存?原创 2025-11-05 23:49:08 · 329 阅读 · 0 评论
分享