自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 I2C代码部分

本文介绍了STM32硬件I2C的配置与MPU6050传感器通信的实现方法。主要内容包括:1)硬件I2C初始化步骤,重点说明GPIO必须配置为复用开漏输出模式;2)关键参数设置,如50KHz时钟速率、应答使能等;3)提供MPU6050读写寄存器函数示例,包含起始条件生成、地址发送、数据收发等标准I2C流程;4)注意事项,如硬件引脚固定映射、事件等待超时处理、数据拼接方法等。该实现可直接用于MPU6050的数据采集,通过I2C协议完成传感器寄存器配置和原始数据读取。

2026-04-14 15:40:23 442

原创 I2C理论知识

I2C总线是一种常用的串行通信协议,采用两根通信线(SCL时钟线和SDA数据线)实现同步半双工通信。其硬件设计采用开漏输出模式配合上拉电阻,具有防止电源短路、避免频繁切换引脚模式等优点。I2C支持多设备挂载,通过起始/终止条件、字节发送/接收、应答机制等基本时序单元实现通信。STM32内置硬件I2C模块,支持自动生成时钟、处理起始终止条件、数据收发等功能,减轻CPU负担。协议包含指定地址读写、当前地址读等多种通信模式,适用于标准速度(100kHz)和快速(400kHz)应用场景。I2C的线与特性使其支持多主

2026-04-14 15:39:22 384

原创 USART代码部分

本文介绍了STM32 USART串口通信的基本配置和使用方法。主要内容包括:1) 常用库函数列表,如时钟配置、GPIO初始化、USART设置等;2) 详细的串口初始化流程,包括GPIO引脚配置(PA9为复用推挽输出,PA10为上拉输入)、通信参数设置(波特率9600、8位数据、无校验等)和中断配置;3) 常用串口功能函数实现,包括发送单字节、数组、字符串、数字和格式化输出;4) 中断服务函数框架,用于处理接收数据。这些内容为STM32串口通信开发提供了完整的参考实现。

2026-04-13 10:35:12 327

原创 USART理论知识

本文介绍了USART(通用同步/异步收发器)的基本原理和应用。主要内容包括:1. 通信接口类型(双工方式、时钟同步方式、电平标准);2. 串口通信的物理连接特性(引脚定义、电平转换);3. 串口数据帧结构(波特率、起始位、数据位等参数);4. STM32的USART硬件特性(波特率发生器、校验位配置、DMA支持等);5. USART内部结构和工作原理(TDR/RDR寄存器、硬件流控制、数据采样方法);6. 数据包传输协议设计(包头包尾、状态机解析、环形缓冲区应用)。文章通过示意图详细说明了USART的数据传

2026-04-13 10:33:40 510

原创 DMA代码部分

本文介绍了STM32 DMA模块的基本配置和使用方法。主要内容包括:1) 常用库函数如时钟控制、初始化、状态标志操作等;2) DMA初始化流程,配置时钟、地址、数据宽度和传输参数,初始化后保持失能状态;3) 两个关键函数:MyDMA_Init用于初始化参数,MyDMA_Transfer用于启动单次数据传输;4) 数据传输过程详解,包括计数器设置、使能控制和状态检测。该实现支持存储器到存储器的字节数据传输,采用正常模式,中等优先级,通过DMA1通道1完成。初始化后可通过重复调用Transfer函数实现多次数据

2026-04-06 10:59:29 441

原创 DMA理论知识

本文介绍了STM32微控制器的DMA(直接存储器存取)技术。DMA可以在不占用CPU资源的情况下实现外设与存储器之间的高速数据传输。STM32F103C8T6提供12个独立通道(DMA1有7个通道,DMA2有5个通道),每个通道支持软件和特定硬件触发。DMA通过仲裁器调度各通道请求,可配置地址自增、自动重装等参数,支持存储器到存储器转运(但不能写入只读的Flash)。硬件触发方式需参考手册,ADC转换完成时会自动触发DMA请求。DMA转运完成后如需继续工作,必须重新配置或开启自动重装功能。

2026-04-06 10:07:50 507

原创 ADC代码部分

本文介绍了STM32 ADC模块的使用方法,包括常用库函数、初始化配置和读取方式。主要内容涵盖ADC时钟配置(6分频至12MHz)、GPIO模拟输入设置、规则组通道配置、核心参数初始化(独立模式、右对齐、软件触发)以及校准流程。提供了单通道和多通道ADC的初始化示例代码,并详细说明了AD_GetValue函数的实现原理(软件触发→等待转换→读取结果)。在多通道模式下,通过动态配置规则组序列实现灵活切换通道。

2026-04-05 13:39:07 474

原创 ADC理论知识

ADC(模拟数字转换器)是连接模拟与数字电路的关键模块,STM32内置12位逐次逼近型ADC,转换时间1us,输入范围0-3.3V(对应数字值0-4095)。其特点包括:18个输入通道(16外+2内)、规则组(16通道)与注入组(4通道)双转换单元、模拟看门狗监测功能。转换模式支持单次/连续转换与扫描模式,配合DMA可避免数据覆盖。转换时间由采样时间(可调)和固定12.5个时钟周期的编码时间组成。使用前需进行校准以消除内部电容误差,建议每次上电后执行校准。

2026-04-05 12:22:18 275

原创 TIM编码器接口代码部分

本文介绍了STM32定时器编码器接口的配置方法,主要包括常用库函数、初始化步骤和关键函数用法。编码器接口通过TIMx定时器实现,需配置GPIO为上拉输入模式,设置时基单元参数和输入捕获参数,并使用TIM_EncoderInterfaceConfig函数配置编码器模式。推荐使用TIM_EncoderMode_TI12双边沿计数模式以获得4倍频精度。初始化完成后,可通过TIM_GetCounter/TIM_SetCounter获取或设置计数器值,实现编码器信号的精确采集和位置检测。

2026-04-04 18:46:41 438

原创 TIM编码器接口理论知识

STM32定时器的编码器接口可接收正交编码器信号,自动控制计数器增减以检测位置、方向和速度。每个高级/通用定时器都有1个编码器接口,复用输入捕获通道1和2。正交编码器输出两相90°相位差信号,通过边沿检测和方向逻辑判断旋转方向,具有抗干扰能力。接口包含极性选择器(可反相一路信号)、边沿检测器和方向控制逻辑,能准确解码编码器运动状态。该设计简单可靠,是电机控制等位置检测应用的理想选择。

2026-04-04 16:59:44 128

原创 TIM输入捕获代码部分

本文介绍了STM32 TIM输入捕获功能的配置方法。主要内容包括:1)常用库函数如TIM_ICInit、TIM_SelectInputTrigger等;2)初始化步骤详解,涵盖时钟使能、GPIO配置、时基单元设置、输入捕获通道初始化等;3)关键配置选项说明,包括通道选择、捕获极性、输入映射等参数;4)触发源和从模式的选择方法;5)最后介绍了如何通过TIM_GetCapture1函数读取捕获值并计算信号频率。该配置可实现精确的输入信号捕获和频率测量功能。

2026-04-01 20:24:09 562

原创 TIM输入捕获理论知识

摘要:TIM输入捕获(IC)功能通过捕获指定电平跳变时的CNT值到CCR寄存器,可测量PWM波形的频率、占空比等参数。支持PWMI模式同时测量频率和占空比,配合主从触发实现自动测量。测频法适合高频信号,测周法适合低频信号。输入捕获通道通过主从触发源自动清零CNT,基本结构中TI1FP1为上升沿触发。PWMI模式利用另一通道获取高电平频率计算占空比。

2026-03-25 15:29:45 121

原创 TIM输出比较代码部分(PWM)

本文总结了STM32定时器TIM输出比较模式(PWM)的理论知识和实现方法。主要内容包括:1) 常用库函数列表,如时钟配置、时基初始化、PWM通道设置等;2) PWM初始化流程示例,详细说明了时钟源配置、时基单元设置、输出比较参数等关键步骤;3) 重要参数说明,包括分频系数、计数模式、重装载值、PWM模式选择等;4) 占空比调节函数TIM_SetComparex的用法。文章提供了完整的PWM初始化代码框架,适用于STM32系列微控制器的PWM功能开发。

2026-03-25 00:33:39 443

原创 TIM输出比较理论知识(PWM)

摘要:TIM定时器的输出比较功能(OC)通过比较CNT与CCR寄存器值来控制输出电平,可生成PWM波形。PWM通过调节占空比在惯性系统中等效模拟参量,适用于电机控速等场景。其频率、占空比(CCR/(ARR+1))和分辨率是关键参数。高级定时器还支持死区生成和互补输出功能。PWM结构由自动重装值(ARR)、比较值(CCR)和计数器(CNT)共同决定波形特性,提供8种输出模式选择。

2026-03-23 17:11:01 292

原创 TIM定时中断代码部分

本文介绍了STM32定时器(TIM)中断的编程实现方法。主要内容包括:1)常用库函数如TIM_TimeBaseInit、TIM_ITConfig等;2)初始化步骤,包含定时器配置(计数模式、分频系数、重装载值)和NVIC中断设置;3)关键参数说明,如分频范围0-65535、计数模式选择、中断频率计算方法等;4)TIM_ITConfig函数的具体用法和可选中断源类型。通过配置1MHz时钟和1000次计数可实现1ms定时中断,为嵌入式系统提供精确的定时功能。

2026-03-22 13:03:56 387

原创 TIM定时中断理论知识

摘要:TIM定时器是STM32中用于定时中断的重要模块,分为基本、通用和高级三种类型。其核心时基单元包含16位计数器、预分频器和自动重装寄存器,通过分频和计数实现精准定时。基本定时器结构简单,通用定时器支持多种计数模式和外接时钟,高级定时器功能更复杂。定时器中断结构包含时钟源选择、时基单元配置和中断输出控制,其中预分频缓冲器和计数器预装功能确保参数修改的同步性。定时器广泛应用于各类需要精确时间控制的场合。

2026-03-21 14:39:04 141

原创 EXTI代码部分

本文介绍了STM32中EXTI(外部中断)的配置与使用方法。主要内容包括:1) EXTI引脚映射规则,每个EXTI线只能对应一个特定编号的引脚;2) 常用库函数如GPIO_EXTILineConfig、EXTI_Init等;3) 初始化流程,包括时钟使能、引脚选择、中断模式设置(中断/事件模式)和触发方式配置(上升沿/下降沿/双沿);4) 中断服务函数编写要点,需检查中断标志并清除中断标志位。文中提供了完整的代码示例,涵盖了从初始化到中断处理的完整配置过程。

2026-03-20 20:36:44 161

原创 EXTI理论知识

中断系统与EXTI摘要 本文介绍了中断系统的基本概念,包括中断优先级、嵌套机制和NVIC管理。详细说明了EXTI外部中断的工作原理,包括触发方式(上升沿/下降沿/双边沿/软件触发)和结构特点。特别指出EXTI用于监测GPIO电平信号,但不同字母相同数字的引脚不能同时触发。AFIO功能包括引脚重映射和中断引脚选择。EXTI适用于处理瞬态信号,如旋转编码器和红外接收器等场景。文中还包含NVIC优先级分组和EXTI结构示意图,帮助理解中断处理流程。

2026-03-19 14:18:18 165

原创 GPIO代码部分

本文介绍了STM32 GPIO编程的关键内容,包括常用库函数、初始化方法和典型应用。详细列出了GPIO_Init、GPIO_SetBits等11个常用函数的使用说明,阐述了GPIO初始化流程和参数配置,特别是工作模式(8种)和速度(3档)的选择要点。文章还具体说明了GPIO_WriteBit和GPIO_Write函数的用法,并给出了LED(推挽输出)和按键(上拉输入)两种典型外设的配置方案,其中特别提到按键防抖可采用定时器扫描实现。全文提供了完整的代码示例和参数说明,可作为GPIO开发的实用参考。

2026-03-18 17:19:02 479

原创 GPIO理论知识

GPIO(通用输入输出端口)是嵌入式系统中的基础接口,0表示低电平(0V),1表示高电平(3.3V)。其结构包含输入/输出寄存器,仅低16位有效。GPIO支持推挽输出(完全控制电平)和开漏输出(高阻态,适用于通讯协议或外接上拉电阻实现5V输出)。输出速度通常设为最大50MHz,仅在低功耗或稳定性要求高时才需调整。GPIO灵活性强,广泛应用于各种嵌入式场景。

2026-03-17 23:35:01 191 1

空空如也

空空如也

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

TA关注的人

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