- 博客(16)
- 收藏
- 关注
原创 【SPI】STM32实现 SPI 通信
SPI(Serial Peripheral Interface,串行外设接口)是一种高速的、全双工、主从结构的串行通信协议。在嵌入式系统中,常用于连接 Flash、显示屏、传感器、SD 卡等外设。STM32F103C8T6 提供了三个 SPI 外设(SPI1、SPI2、SPI3),本篇以 SPI1 为例,讲解如何通过 STM32 标准外设库实现 SPI 主机通信功能。SPI 通信原理简介GPIO 和 SPI 外设初始化SPI 数据发送与接收函数实现典型应用示例(读取外设 ID)
2025-06-17 15:23:04
167
原创 【I2C】STM32实现 I2C(IIC)通信
I2C(Inter-Integrated Circuit,集成电路间通信)是一种常用的串行总线协议,用于主从通信,具有两根通信线:SCL(时钟线)和 SDA(数据线),具有结构简单、节省资源、支持多设备等优点。STM32F103C8T6 芯片内部集成了两个 I2C 外设(I2C1 和 I2C2),本篇以 I2C1 为例,介绍如何用标准库实现主机模式下的 I2C 通信,并与常见的 I2C 外设(如 EEPROM、传感器等)进行数据交互。名称STM32 引脚功能描述SDAPB7数据线(双向)
2025-06-17 15:20:05
203
原创 【ADC】STM32实现 ADC 功能
在嵌入式开发中,ADC(模数转换器)是非常重要的一个外设,广泛应用于电压采样、温度检测、电池电量监控等领域。STM32F103C8T6 内部集成了多达 10 个 12 位 ADC 输入通道,能够快速、精准地对模拟信号进行采样。本文将以采集一个简单电压信号为例,介绍 STM32F103C8T6 使用标准库实现 ADC 功能的全过程。12 位分辨率(采样范围 0~4095)采样时间可调(Tsample)支持单次转换、连续转换、扫描转换支持模拟看门狗、中断、DMA 等高级功能。
2025-06-17 15:15:51
206
原创 【USART】STM32实现USART 串口通信功能
串口通信(USART/UART)是最常见的 MCU 与外部设备(如 PC、传感器、模块)通信方式之一,STM32F103C8T6 内置多个串口资源(USART1、USART2、USART3),可用于调试输出、设备通讯等应用。本篇博客将使用USART1USART 基本原理GPIO + 串口配置使用标准库完成串口初始化与发送利用串口调试助手观察效果STM32F103C8T6 的 USART1 通信功能GPIO 和串口初始化配置使用标准库实现串口发送/接收借助串口调试助手观察通信效果。
2025-06-17 15:12:30
518
原创 【EXTI】STM32实现 EXTI 外部中断
按键检测外部信号响应外设事件输入(如红外信号、霍尔传感器等)本篇将围绕 STM32F103C8T6,使用按键输入触发中断控制 LED 灯翻转,完成 EXTI 的配置与验证。EXTI 的本质是将GPIO 口输入信号连接到中断控制器(NVIC),从而实现软件响应硬件事件。使用 PA0 按键输入触发中断;中断响应控制 LED 翻转;熟悉中断流程、NVIC 与 GPIO-EXTI 的映射关系;掌握 EXTI 是构建响应式系统的重要基础,后续可拓展至红外、旋转编码器、超声波等应用。
2025-06-17 15:08:09
594
原创 【PWM】STM32的PWM脉宽调制功能实现
电机调速LED 灯亮度调节蜂鸣器声音控制舵机角度控制STM32F103C8T6 的通用定时器(如 TIM2、TIM3、TIM4)和高级定时器(TIM1)都支持硬件 PWM 输出。周期(Period):一个完整高+低电平所需时间占空比(Duty Cycle):高电平持续时间占整个周期的比例(0%~100%)STM32F103C8T6 PWM 基本原理与作用使用 TIM3 + PA6 实现 PWM 输出通过设置预分频与自动重载控制频率通过设置比较值控制占空比。
2025-06-16 10:31:39
382
原创 【RCC】STM32系统时钟配置功能
STM32F103C8T6 作为经典的 Cortex-M3 单片机,其时钟系统灵活强大。合理配置系统时钟是实现高效运行、控制外设精度的前提。本篇博客将从 STM32 时钟系统架构说起,结合实战代码配置系统时钟为 72MHz,并对比默认启动时的 8MHz。打开72000000确保启动函数调用成功。STM32F103C8T6 时钟系统原理讲解使用外部晶振 + PLL 配置为 72MHz 系统时钟标准库配置方法与注意事项软件验证方式与常见问题分析。
2025-06-16 10:28:04
680
原创 【TIMER】STM32定时器功能实现
精确延时定时中断PWM 生成编码器接口输入捕获、输出比较本篇博客将以最基础的“定时中断”为例,介绍 STM32 定时器的基本原理及软件实现,最后实现一个定时闪烁 LED 的案例。定时器类型位宽功能描述TIM1高级定时器16位支持 PWM、死区、互补输出等TIM2通用定时器32位基本定时/计数功能TIM3/4通用定时器16位常用于 PWM、定时器中断本篇选择 TIM2(32位)作为示例,优点是能支持更长时间的定时范围。
2025-06-16 10:24:28
871
原创 【红外传感器】STM32控制红外传感器功能实现
红外传感器在机器人、智能小车、自动门等项目中扮演重要角色。它能通过红外线检测前方是否有障碍物(是否反射),属于数字量传感器。本文将基于 STM32F103C8T6,讲解如何读取红外避障模块的输出信号,实现简单的“检测障碍→点亮LED”功能。发射管(红外LED)接收管(光敏三极管)比较器(如 LM393)数字输出(DO)信号引脚红外避障传感器模块接入 STM32F103C8T6GPIO 输入读取模块的数字信号结合 LED 提供视觉反馈完整的软件初始化与主循环控制逻辑控制小车避障。
2025-06-16 10:11:15
423
原创 【KEY】STM32使用 GPIO 实现按键 (KEY) 输入检测
按键 (KEY) 输入是嵌入式系统中最常用的输入方式之一,用于人机交互、控制命令、状态切换等功能。STM32F103C8T6 提供丰富的 GPIO 引脚,我们可以通过 GPIO 的输入功能检测按键状态,从而响应用户操作。本篇将以 STM32F103C8T6 为平台,从 GPIO 的输入功能讲起,手把手实现一个按键控制 LED 的简单功能。模式描述浮空输入(GPIO_Mode_IN_FLOATING)无内部上下拉,需外部处理电平上拉输入(GPIO_Mode_IPU)内部连接上拉电阻。
2025-06-16 10:07:51
287
原创 【LED】STM32使用GPIO控制LED灯
STM32F103C8T6 是 STM32 的经典型号,属于 STM32F1 系列,广泛应用于教学、DIY、工业控制等场景。它的 GPIO(通用输入输出)外设是最基础也最常用的模块之一。本篇博客将从 GPIO 的功能和结构出发,详细讲解如何使用 STM32F103C8T6 控制一个 LED 的点亮和闪烁。通用输入/输出外部中断输入复用功能(如 USART、I2C、SPI 等)上拉/下拉控制开漏/推挽输出选择最大50MHz输出速度选择GPIO 的基本功能和输出配置。
2025-06-14 16:59:24
392
原创 【ADS1115】STM32使用软件I2C或硬件I2C读取ADS1115数据
在嵌入式系统中,精确模拟信号采集是常见需求。ADS1115是一款高精度16位ADC,具备低功耗和内置PGA等优点,常用于电压、电流、温度等信号采集。本文将结合STM32,通过软件I2C和硬件I2C两种方式,实现ADS1115数据的读取,并给出详细解析与驱动代码,适合工程实战参考。芯片型号:ADS1115制造商引脚名称VDD电源输入GND地SCLI2C时钟线SDAI2C数据线ADDR地址选择ALERT/RDY比较器输出或数据准备指示硬件I2C推荐场景。
2025-06-14 16:32:18
960
原创 【MOS管】
MOS管,全称金属 - 氧化物 - 半导体场效应晶体管(Metal - Oxide - Semiconductor Field - Effect Transistor),属于场效应管中的绝缘栅型,有时也被称为绝缘栅场效应管。在一般电子电路里,MOS管常被用于放大电路或者开关电路。它就像电子世界的‘开关’,控制着电流的通断,是集成电路(IC)和微处理器的核心组成部分。
2025-06-14 16:08:31
580
原创 【三极管】
在单片机系统中,三极管常被用于驱动一些负载,如LED灯、蜂鸣器等。以STM32单片机控制LED灯为例,当需要控制LED灯的亮灭时,可以通过三极管来实现。while (1)// 点亮LEDi++);// 延时// 熄灭LEDi++);// 延时在上述代码中,通过控制PA0引脚的电平,进而控制三极管的导通和截止,实现LED灯的亮灭。
2025-06-14 15:58:50
803
原创 【二极管】
二极管是一种用半导体材料(如硅、硒、锗等)制成的电子器件,它有两个电极,分别是正极(阳极)和负极(阴极)。二极管最核心的特性就是单向导电性,简单来说,当给二极管的两极加上正向电压时,它就会导通,允许电流通过;而加上反向电压时,它则会截止,阻止电流流动,这种导通和截止的状态就相当于开关的接通与断开。二极管的这种单向导电特性,使其在电路中能够发挥多种重要功能,比如整流、开关、限幅、续流、检波、变容、显示、稳压、触发等。
2025-06-14 15:42:39
890
原创 linux C应用编程
2)实现一个文件拷贝功能,给定一个源文件,读取源文件中所有的数据,将其写入到另一个目标文件中,效果:./app “src_file” “target_file”。文件描述符:文件句柄,非负整数,与对应文件绑定。4)返回值:返回写入的字节数 — 返回成功。4)返回值:返回读取的字节数 — 返回成功。1)fd:文件描述符—指定目标文件。1)fd:文件描述符—指定目标文件。1)fd:文件描述符—指定目标文件。2)返回值:返回 0 — 返回成功。1)fd:文件描述符—指定目标文件。
2024-09-08 21:29:04
902
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人