自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2026最新单片机毕业设计选题案例分享

模块:STM32F103、DHT11/AM2302、BH1750、485 模块、蜂鸣器 LED、ESP8266(WiFi 上传)、上位机(Qt)。模块:STM32F103、MG996R 舵机(6 轴)、蓝牙 HC-05、电位器、OLED、上位机(Matlab/Qt)。模块:STM32F103、DHT22、PM2.5 传感器、MQ-135、ESP8266、继电器、上位机(阿里云 IoT)。模块:STM32F407、电流电压传感器、振动传感器、RS485 模块、LCD12864、SIM800C 模块。

2025-12-05 14:10:53 239

原创 Day19:串口通信基础

数据帧格式:起始位 (1 位,0) → 数据位 (8/9 位) → 校验位 (0/1 位) → 停止位 (1/2 位,1)USB 转 TTL:连接 PC 与 STM32 (CH340/CP2102 芯片)RS232 电平 (±12V):需 MAX232 等芯片转换。波特率:每秒传输的位数 (常用 9600、115200)TTL 电平 (3.3V/5V):STM32 直接输出。STM32(USART1) <---> USB转TTL。多种校验方式 (奇校验、偶校验、无校验)硬件流控 (RTS/CTS)

2025-12-05 12:33:54 180

原创 Day18:系统滴答定时器 (SysTick)

/ 每100ms翻转LED。// 使能计数器、使能中断、选择HCLK时钟。建议练习:按键中断控制 LED、定时器中断实现精确计时、多中断优先级嵌套实验。时钟源:HCLK/8 (9MHz) 或 HCLK (72MHz)掌握 NVIC 配置和中断服务函数编写是进阶必备。定时时间:(重装载值 + 1)/ 时钟频率。

2025-12-04 12:54:29 125

原创 Day17:中断处理流程与嵌套

主程序 → 中断A(低优先级) → 中断B(高优先级) → 中断B返回 → 中断A返回 → 主程序。硬件自动保存现场 (xPSR、PC、LR、R0-R3、R12)轮询:CPU 不断查询状态标志,占用 CPU 资源。中断:外设就绪后主动通知 CPU,CPU 效率更高。CPU 跳转至中断向量表获取 ISR 地址。中断优先级分配需合理 (关键外设优先)ISR 中避免使用浮点运算和耗时操作。共享资源需加锁保护 (如全局变量)高优先级中断可打断低优先级中断。硬件自动恢复现场,返回原程序。中断嵌套深度受堆栈大小限制。

2025-12-03 10:39:26 356

原创 Day16:中断配置与使用

/ 设置优先级(0-15,数值越小优先级越高)HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_1);// 处理中断并清除标志。// 使能定时器更新中断。使能外设中断 (如定时器更新中断)// 4. 回调函数(可选)// 2. 配置NVIC。// 3. 中断服务函数。

2025-12-02 11:03:14 177

原创 ​ Day15:中断基础与 NVIC

优先级分组设置:NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);外设 / 系统事件触发,暂停当前任务,执行中断服务程序 (ISR),返回继续执行原任务。抢占优先级 (Preemption Priority):高优先级可抢占低优先级中断。子优先级 (Subpriority):同级别中断按顺序执行。中断优先级:高优先级可打断低优先级中断 (嵌套)系统中断: 内核自带 (如复位、Systick)配置中断优先级分组 (抢占优先级和子优先级)管理所有中断的优先级和嵌套。

2025-12-01 19:44:41 146

原创 Day14:PWM 输出(下)

建议练习:LED 呼吸灯、PWM 控制舵机 (50Hz,占空比 5%-10%)、蜂鸣器音乐播放。使用 HAL 库函数:__HAL_TIM_SetCompare()互补 PWM 输出 (带死区控制):用于 H 桥电机驱动。掌握 PWM 配置是后续学习电机控制、音频输出等的基础。PWM 是 STM32 控制外设的重要功能,应用广泛。电机控制 (直流电机转速、步进电机细分)刹车功能:紧急停止输出 (如安全保护)蜂鸣器发声 (不同频率对应不同音调)模拟 DAC 输出 (通过滤波)LED 亮度调节 (呼吸灯)

2025-11-30 18:47:12 134

原创 Day13:PWM 输出(上)

占空比:(CCR/ARR) × 100% (CCR 为比较值)频率:1/(ARR+1) × (PSC+1)/ 时钟频率。// 配置定时器参数(1KHz PWM)

2025-11-29 16:42:36 841

原创 Day12:定时器基本定时功能

配置 NVIC 中断优先级。

2025-11-28 13:32:42 307

原创 Day11:定时器原理与结构

高级定时器 (TIM1/TIM8): 带死区控制的 PWM 输出 (电机控制)时基单元:计数器 (CNT)、预分频器 (PSC)、自动重载寄存器 (ARR)通用定时器 (TIM2-TIM5): 基本定时、PWM、输入捕获。基本定时器 (TIM6/TIM7): 简单定时功能,无输出比较。定时周期 = (ARR+1) × (PSC+1) / 时钟频率。输入捕获:测量外部信号频率 / 脉宽 (如测量超声波距离)PWM 输出:控制电机、LED 亮度 (占空比可调)定时中断:精确时间控制 (如 1ms/100ms)

2025-11-27 20:00:19 190

原创 Day10:GPIO 输入输出控制(下)

建议练习:LED 控制、按键检测、模拟通信协议 (如单线 UART)模拟 IO:通过软件模拟 UARTI2CSPI 等协议。掌握 8 种工作模式是理解 STM32 其他外设的基础。位带操作:对特定内存位进行原子操作 (提高效率)GPIO 是 STM32 最基础、最常用的外设。中断方式检测按键:(更高效,不占用 CPU)按键检测:(PA1 上拉输入,检测下降沿)配置 GPIO 为外部中断模式。

2025-11-26 12:52:06 316

原创 Day9:GPIO 输入输出控制(上)

寄存器直接操作:GPIOx->ODR |= Pin(置高),&= ~Pin(置低),^= Pin(翻转)HAL_GPIO_WritePin(GPIOx, Pin, State):设置指定引脚电平。HAL_GPIO_ReadPin(GPIOx, Pin):读取指定引脚电平 (0/1)

2025-11-25 18:43:50 269

原创 Day8:GPIO 工作模式(下)

电路示例:按键一端接 GPIO,另一端接地,GPIO 配置上拉输入。按键检测:浮空输入时,按键未按下状态不确定,需上拉 下拉。GPIO 配置实例:(PA0 推挽输出,PA1 上拉输入)配置 GPIO 为复用模式 (MODER=10)选择复用功能 (AFR 寄存器)配置PA0为推挽输出。配置PA1为上拉输入。

2025-11-24 22:30:58 123

原创 Day7:GPIO 工作模式(上)

OSPEEDR(输出速度):00 = 低速,01 = 中速,10 = 高速,11 = 超高。PUPDR(上拉 / 下拉):00 = 无,01 = 上拉,10 = 下拉,11 = 保留。MODER(模式寄存器):00 = 输入,01 = 输出,10 = 复用,11 = 模拟。开漏输出:仅能输出低电平,高电平需上拉 (适合 I2C 总线)推挽输出:VCC → 输出高(3.3V),输出低(0V)OTYPER(输出类型):0 = 推挽,1 = 开漏。开漏输出:输出高→高阻态(需外部上拉),输出低→0V。

2025-11-23 17:03:42 246

原创 Day6:开发环境搭建与第一个程序

第三方:Keil MDK (付费)、VSCode+STM32CubeMX+GCC (开源)__HAL_RCC_GPIOA_CLK_ENABLE();// 使能GPIOA时钟。第一个程序:LED 闪烁 (HAL 库)配置 GPIO (输出 / 输入模式)生成代码 (选择 HAL 库)// 1. 初始化GPIO。

2025-11-21 20:59:55 243

原创 Day5:时钟系统与复位

HSI(8MHz) → 分频 → PLL → 72MHz(系统时钟)复位后:所有寄存器恢复默认值,程序从 0x08000000 开始执行。HSE(8MHz) → 分频 → PLL → 72MHz。软件复位:调用NVIC_SystemReset()函数。├── APB1 → 36MHz(低速外设)└── APB2 → 72MHz(高速外设)硬件复位:NRST 引脚拉低 (低电平有效)├── AHB → 72MHz(外设总线)设置分频因子 (M) 和倍频因子 (N)选择时钟源 (HSI/HSE)

2025-11-20 18:11:20 135

原创 Day4:STM32 内部架构详解

RAM:0x20000000-0x20004FFF (20KB),存放变量、堆栈。Flash:0x08000000-0x0800FFFF (64KB),存放程序。系统滴答定时器 (SysTick):提供精确的系统时基 (1ms 中断)AHB (高级高性能总线):连接 CPU 与高速外设 (如 GPIO)PLL:锁相环 (倍频),将时钟提升至 72MHz 系统主频。APB2:连接高速外设 (如 USART1、SPI)三级流水线:取指、译码、执行并行处理,提高效率。HSE:外部晶振 (4-16MHz,精度高)

2025-11-19 15:54:51 173

原创 Day3:C 语言必备知识(下)

void EXTI0_IRQHandler(void){ // 外部中断0服务函数。if(EXTI->PR & 1<<0){ // 检查中断标志。直接操作硬件寄存器 (如GPIOA->ODR = 0x01;中断服务函数 (ISR):特殊函数,由硬件触发而非调用。RAM (可读可写):存储变量、堆栈 (局部变量)函数声明:返回类型 函数名 (参数列表)Flash (只读):存储程序代码、常量。资源受限 (需优化代码大小、执行时间)实时性要求 (中断处理、时序控制)

2025-11-18 11:43:52 300

原创 Day2:C 语言必备知识(上)

(按位与):保留特定位 (如GPIOA->CRL &= 0xFFFFFFF0;^(按位异或):翻转特定位 (如GPIOA->ODR ^= 1<<0;|(按位或):置位特定位 (如GPIOA->ODR |= 1<<0;枚举:定义有名字的常量集合 (如 GPIO 模式、速度)// 通过指针修改a的值。结构体:封装不同类型数据 (如 GPIO 配置参数)int *p = &a;// p指向a的地址。指针是内存地址,变量前加&取地址,指针变量前加*取值。~(按位取反)、<<(左移)、>>(右移)

2025-11-17 11:06:40 362

原创 Day1:单片机基础与电路入门

主流类型:51 系列、STM32 系列 (Cortex-M 内核)、Arduino 等。// PA0推挽输出,50MHz。最小系统三要素:电源(3.3V/5V)、时钟(HSI/HSE)、复位电路。3.搭建基础电路:LED + 限流电阻 + 电源 (正极→电阻→LED→负极)RCC->APB2ENR |= 1<<2;// 使能GPIOA时钟。三极管:电流放大、开关 (控制 LED / 继电器)电阻:限流 (LED 电路必备)// LED闪烁(寄存器方式)

2025-11-16 12:21:31 198

原创 第七天:STM32・项目优化 + 拓展

代码模块化:把传感器、控制、串口分成不同文件(比如 Sensor.c、Control.c),看着不乱。7 天 STM32 入门结束啦~今天教你优化项目,还推荐进阶方向,学完能接着往下冲!多任务:学 FreeRTOS,让单片机同时干好几件事(比如读温湿度 + 联网 + 显示)加 OLED 显示:把温湿度显示在屏幕上,不用一直看电脑(接线简单,代码我也有!加错误处理:DHT11 读失败了重试 3 次,别直接报错,程序更稳定。物联网:加 ESP8266 模块,温湿度数据上云,手机能远程看。

2025-11-13 20:44:25 121

原创 第六天:STM32・综合项目(智能环境监测)

接线:把之前的全接上 ——DHT11(PA1)、按键(PA0)、报警 LED(PB1)、PWM LED(PA6)、串口(PA9/PA10)今天把前 5 天的知识串起来,做一个 “智能环境监测系统”,学会了毕设 / 课程设计都能用!自动模式:温湿度超阈值(湿度 > 80% 或温度 > 30℃),LED 报警 + PWM 亮度最大。测试:自动模式超阈值报警,手动模式发 “BRIGHT+” 亮度就加,超有成就感!按键中断切换模式,自动模式判断阈值,手动模式响应串口指令。手动模式:串口发指令调 LED 亮度。

2025-11-12 20:37:17 170

原创 第五天:STM32・定时器 PWM

今天学 “定时器 PWM”—— 能让 LED 从暗到亮慢慢变,还能控电机转速,用途超广,小白也能学会!用__HAL_TIM_SET_COMPARE 调占空比,从 0 到 1000 慢慢变,LED 就 “呼吸” 了。PWM:就是 “忽亮忽灭” 太快,眼睛看不出来 —— 亮的时间占比越高,LED 越亮(这叫占空比)接线:STM32 的 PA6(TIM3_CH1)接 LED(串 220Ω 电阻),不用改别的。频率:多久闪一次 —— 设 1KHz 就行,太高太低都不好(代码里能算,不用自己算!

2025-11-09 19:25:54 207

原创 第四天:STM32・DHT11 温湿度采集(感知世界!)

接线:STM32 的 PA1 接 DHT11 的数据脚(串 10K 上拉电阻),DHT11 接 3.3V 和 GND。今天带宝子们玩传感器!数据传输:DHT11 会发 40 位数据(湿度 + 温度 + 校验和),高电平长就是 1,短就是 0。起始信号:STM32 拉低数据线 18ms,再拉高 30us,告诉 DHT11 “要数据了”先懂 1 个核心:DHT11 的 “单总线通信”—— 就一根线传数据,时序要准!STM32 第 4 天!测试:串口助手能看到 “湿度:50%,温度:25℃”,比手机天气预报还。

2025-11-08 18:56:58 124

原创 第三天:STM32・中断 + 串口通信

代码:用 HAL_UART_Transmit 发消息,HAL_UART_Receive_IT 收消息,电脑打开串口助手就能聊!代码加中断回调函数 HAL_GPIO_EXTI_Callback,按按键就触发翻转,CPU 能同时跑别的程序。今天学 2 个 “进阶技能”—— 中断和串口,学会了能让你的单片机变聪明,还能跟电脑聊天~按下去会 “主动喊 CPU 处理”,CPU 能抽空干别的(比如跟电脑通信)串口:单片机和电脑的 “聊天线”——TX 发数据、RX 收数据,波特率设 9600 就行(别改!

2025-11-07 20:51:12 167

原创 第二天:STM32・按键控制 LED(告别瞎按!)

代码重点:用 HAL_GPIO_ReadPin 读 PA0 电平,读到低电平就用 HAL_GPIO_TogglePin 翻转 LED。接线:STM32 的 PA0 接按键(串 10K 上拉电阻),按键另一端接 GND;LED 还是昨天的 PB1。消抖:按键按下去会 “抖” 10-20ms,加个 HAL_Delay (20) 就能解决,不然会乱跳!GPIO 输入模式:按键用 “上拉输入”—— 没按的时候引脚是高电平,按下去就变低(防干扰超实用)测试:按一次按键,LED 切换一次状态,再也不用手拔线啦~

2025-11-06 21:16:32 206

原创 第一天:STM32 入门・LED 闪烁实战

接线:STM32 的 PB1 引脚 → 220Ω 电阻 → LED 正极 → LED 负极接 GND(别接 5V!代码关键行:HAL_GPIO_WritePin 控制引脚高低电平,HAL_Delay (500) 就是等 0.5 秒。先搞懂 1 个核心知识点:单片机就是 “微型电脑”—— 能读信号、能控设备,今天咱就用它控制 LED 亮灭~STM32 入门真的不用怕,第一天咱从最基础的 LED 闪烁开始,看完就能上手!下载程序:用 ST-Link 连电脑,烧录后就能看到 LED 每 0.5 秒闪一次。

2025-11-05 17:17:15 194

原创 什么是单片机?1 句话讲懂

什么是单片机?1 句话讲懂

2025-11-04 23:16:37 199

空空如也

空空如也

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

TA关注的人

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