📄🦌🙌🐟🏖️
ZETAI
ZETAI技术博客
随机文章
按住 Shift 横向滚动
07-定时器

07-定时器

TIM简介 TIM(Timer)定时器 定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断 16位计数器、预分频器、自动重装寄存器的时基单元,在72MHz计数时钟下可以实现最大59.65s的定时(STM32中,定时器的基准时钟一般是主频72MHz,如果对72MHz计72个数,那就是1MH

什么时候使用AFIO

什么时候使用AFIO

一、背景   在写外部中断及其配置的笔记时候,发现无论是开发攻略还是官方手册里都提到了这么一句话:   虽然在学习GPIO的时候,看到了AFIO表示的是复用功能IO的意思,但对于它的理解完全是字面上的理解。这导致了在看到开启AFIO时钟的时候,我还一脸懵逼,这是在干啥呢?还好,在网络上查找后,我对A

6.对射式红外传感器和旋转编码器

6.对射式红外传感器和旋转编码器

旋转编码器简介 旋转编码器:用来测量位置、速度或旋转方向的装置,当其旋转轴旋转时,其输出端可以输出与旋转速度和方向对应的方波信号,读取方波信号的频率和相位信息即可得知旋转轴的速度和方向 类型:机械触点式/霍尔传感器式/光 栅式 1.下面的是一种最简单的编码器样式,这里使用的也是对射式红外传感器来测速

5.EXTI外部中断

5.EXTI外部中断

本文以STM32为例介绍中断系统,重点阐述外部中断(EXTI)的工作原理与应用。中断指主程序运行时,因外部事件触发而暂停当前任务,转去执行中断服务程序,之后返回断点继续执行。STM32通过NVIC统一管理中断,支持中断优先级分组(抢占优先级与响应优先级),实现中断嵌套。EXTI监测GPIO电平变化(上升沿、下降沿等),向NVIC申请中断,其基本结构包含AFIO引脚选择、边沿检测及控制电路。EXTI适用于处理突发外部信号(如编码器脉冲)。文章还解析了中断执行流程、NVIC与EXTI的寄存器配置及参考手册查阅方法。

4.LED和蜂鸣器的示例程序

4.LED和蜂鸣器的示例程序

本文介绍了基于STM32的三种基础外设控制示例。第一部分实现LED闪烁,通过PA0引脚交替输出高低电平并延时,使LED灯周期性地亮灭。第二部分展示LED流水灯,通过GPIO_Write函数向GPIOA的所有引脚依次写入特定的电平序列,实现多个LED依次点亮的效果。第三部分介绍了蜂鸣器控制,通过PB12引脚周期性地输出高低电平,驱动蜂鸣器发声与停止。所有示例均包含GPIO时钟使能、端口模式与速度配置及主循环中的控制逻辑。

3.GPIO输入

3.GPIO输入

GPIO是STM32的通用输入输出口,可配置为8种工作模式。其引脚电平为0V~3.3V(低/高电平对应0/1),部分引脚可容忍5V输入。输出模式下,可通过寄存器控制引脚输出高低电平,用以驱动LED、控制蜂鸣器或模拟通信协议时序。输入模式下可读取引脚电平,用于检测按键、模块信号或进行ADC电压采集。 GPIO内部结构包括寄存器、驱动器及保护电路。每个GPIO模块包含16个引脚,通过32位寄存器(仅低16位有效)进行控制。输入部分包含保护二极管、可配置的上/下拉电阻及施密特触发器(用于波形整形),并支持模拟输入与复用功能输入。输出部分可通过数据寄存器或片上外设控制,采用推挽(高低电平均有驱动能力)或开漏(仅低电平有驱动能力)模式,由一对MOS管实现。 具体模式包括:浮空/上拉/下拉输入、模拟输入、推挽/开漏输出、复用推挽/开漏输出。模拟输入会关闭数字输入功能,专用于ADC;其他模式均保持输入有效。驱动LED或蜂鸣器时,常采用低电平驱动的电路设计,并需串联限流电阻。对于功率较大的设备,可借助三极管开关电路进行驱动。

2.新建工程

2.新建工程

STM32主要有寄存器、标准库和HAL库三种开发方式。基于库函数方式是通过调用封装函数间接配置寄存器,比直接操作寄存器更便捷,且不会影响其他位。文章详细讲解了库函数工程建立步骤:准备固件库文件(启动文件、内核描述文件、外设寄存器描述文件),在Keil中新建工程并添加Start、Library、User分组,将对应文件加入,配置头文件路径,在C/C++ Define中定义USE_STDPERIPH_DRIVER以启用库函数。点灯操作分三步:使能GPIOC时钟、配置端口模式(推挽输出、50MHz)、设置高低电平。库函数提供RCC_APB2PeriphClockCmd、GPIO_Init、GPIO_SetBits等函数简化配置。最终工程结构包括启动文件、寄存器描述文件、库函数文件和用户文件,学会此流程可快速搭建STM32开发环境。

1.STM32简介、系统介绍、软件安装

1.STM32简介、系统介绍、软件安装

STM32系统结构包含指令、数据、系统三条总线,AHB与APB通过桥接连接,APB2(72MHz)性能高于APB1(36MHz),分别挂载重要和一般外设。DMA可独立于CPU搬运数据。STM32F103C8T6引脚分为电源、最小系统(复位、晶振)、IO口(部分容忍5V)及复用/重定义功能。启动配置由BOOT引脚选择从FLASH、系统存储器(串口下载)或SRAM启动。最小系统电路需供电(VDD 3.3V加滤波电容)、8MHz主晶振(经PLL倍频至72MHz)、RC低电平复位电路,并引出SWD调试接口。可选RTC晶振(32.768KHz)和备用电池。掌握这些是STM32硬件设计的基础。

© 2026 ZETAI