- 博客(14)
- 收藏
- 关注
原创 手把手教你用STM32标准库实现PWM呼吸灯【附完整代码】
本文围绕 STM32 定时器 PWM 功能展开,从原理到实践完成了呼吸灯的实现,既覆盖了硬件电路的核心逻辑,也明确了软件配置的关键步骤;在此基础上,进一步拓展 PWM 技术的应用场景与优化方向,帮助读者从“会用”升级到“活用”。
2025-09-20 09:00:00
1274
原创 深入浅出STM32标准库定时器(TIM)应用指南:从闪烁LED到精准捕获
STM32 定时器标准库的通用配置流程可归纳为:1. 时钟使能:使能 TIMx 时钟 + (可选)GPIO 时钟;2. 时基初始化:配置 TIM_TimeBaseInitTypeDef 结构体,写入 PSC、ARR、计数模式等;3. 定时器使能:调用 TIM_Cmd 激活定时器;4. (可选)中断配置:使能定时器中断 + 配置 NVIC + 编写中断服务函数。
2025-09-19 16:38:17
2115
原创 Python Socket编程实战:实现客户端与服务器双向数据通信
Socket可通过“打电话”的生活场景通俗理解:- IP地址相当于对方的“电话号码”,用于在互联网中定位目标设备;- 端口号相当于设备上的“分机号”,用于区分设备内不同的网络应用(如80端口对应HTTP服务、22端口对应SSH服务);- Socket则是手中的“电话机”,整合了“电话号码+分机号”的通信能力,是应用程序与网络协议族交互的接口,通过它才能发起或接收网络连接。
2025-09-12 21:05:44
1211
原创 STM32标准库USART串口通信详解:从原理到实践
本文详细介绍了STM32 USART异步通信的开发方法,主要内容包括:1. USART基础理论:数据帧结构、波特率等关键参数;2. 硬件连接方法:STM32与PC/USB-TTL模块及STM32间的交叉连接规则;3. 标准库配置流程:时钟使能、GPIO初始化、USART参数设置和中断配置四步核心步骤;4. 数据收发实现:轮询方式发送和中断方式接收;5. 实例演示:通过"回声实验"验证功能;6. 常见问题排查:数据乱码、中断失效等问题的解决方案。文章还展望了DMA传输、HAL库等进阶方向,
2025-09-09 16:33:45
1386
原创 Python 中进程与线程的创建和使用
进程和线程是操作系统中的核心概念。进程是资源分配的基本单位,拥有独立内存空间,创建和切换开销较大;线程是调度的基本单位,共享进程资源,开销较小。并发通过任务切换实现"同时"执行,并行则需多核真正同时运行。Python中可通过multiprocessing模块创建进程,threading模块创建线程,守护进程会随主进程结束而终止。多进程间内存隔离,变量修改互不影响,而多线程共享内存需注意同步问题。实际开发常结合多进程和多线程以平衡性能与稳定性。
2025-09-08 20:09:47
738
原创 Python 文件操作/下载图片,音频,视频到本地
本文介绍了Python中文件操作和网络下载的基本方法。文件操作部分讲解了三种模式:'w'写入(会覆盖)、'a'追加(保留原内容)和'r'读取,推荐使用with语句自动管理文件资源。网络下载部分演示了用requests库下载网络图片的完整流程,包括异常处理和二进制写入。文中指出同样的方法适用于下载音频、视频等任何二进制文件,只需将获取的response.content以'wb'模式写入对应格式的文件即可。两种操作都强调了资源正确释放的重要性。
2025-09-07 20:19:18
422
原创 关于Python print 的缓冲区有趣小知识
本文通过三组print实验展示了Python的输出缓冲机制:1)默认缓冲会在sleep后才输出;2)flush=True参数会强制立即输出;3)换行符会自动触发缓冲刷新。这解释了Python为提高IO效率采用的缓冲策略,以及如何通过flush参数或换行符控制输出时机。
2025-09-07 19:18:56
238
1
原创 Python 中,实现单例模式的类,两种最常用的实现
单例模式的优点主要有:1.节省资源,避免重复创建实例的开销;2.确保全局唯一性和状态一致性,防止多实例导致的数据冲突;3.提供统一访问入口,简化调用逻辑。常见的实现方式包括重写__new__方法和使用装饰器,前者通过控制实例化过程确保唯一性,后者利用字典存储实例实现单例效果。这些方法都能保证多次调用返回同一实例,适用于数据库连接、配置管理等需要全局唯一实例的场景。
2025-09-06 20:56:13
242
原创 Python装饰器
本文介绍了Python中的三个核心概念:装饰器、闭包和类。装饰器是一种动态增强函数功能的工具,通过@语法实现,常见用途包括日志记录和权限验证。闭包是嵌套函数结构,能够记住外部函数变量,常用于状态保存和函数定制。类作为对象的模板,通过定义属性和方法来创建实例,实现代码复用和统一管理。三者分别体现了Python的动态增强、状态保持和面向对象特性,是Python编程的重要基础。
2025-09-06 20:36:41
2499
原创 回文数(超详细)
回文数是正序和逆序读取完全相同的整数。其核心特征是逆序后数值不变,包括1位数(0-9)、两位数(11-99)及多位数(121、1221等)。判断方法可通过字符串对比或数学运算实现。Python代码示例展示了两种判定方式,并提供了打印区间回文数的简单方法。特殊类型如回文素数(11、101)和对称回文数(12321)也值得关注。回文数在数学和编程中具有简洁对称的特性。
2025-09-05 19:24:09
2072
原创 STM32独立看门狗(IWDG)
摘要:看门狗(Watchdog)是用于监测单片机运行状态的模块,当程序异常时能自动复位系统。独立看门狗(IWDG)通过专用低速时钟工作,适用于对时间精度要求不高的场景。其工作原理是通过递减计数器实现监控,需定期"喂狗"(写入0xAAAA)以避免复位。若不喂狗,计数器归零将触发系统复位。关键寄存器包括键值寄存器、预分频寄存器和重装载寄存器等,超时时间可通过公式计算。实际应用中需初始化IWDG并定期喂狗,测试表明不喂狗会导致系统复位,正常喂狗则保持稳定运行。
2025-09-04 21:16:04
311
原创 STM32外部中断(EXTI)标准库代码该怎么写?
摘要: 外部中断是微处理器通过外部硬件信号(如按键、传感器)主动请求处理事件的机制,类似"工作中接电话"的场景,可提升效率、保障实时性并简化多设备管理。本文以STM32为例,实现按键K1控制LED亮灭:1)初始化LED(PC6-PC8)和按键PA0引脚;2)配置EXTI0中断线,绑定PA0下降沿触发;3)编写中断服务函数,检测按键按下后翻转LED状态并清除中断标志。关键步骤包括GPIO模式设置、中断优先级配置及NVIC初始化,最终通过中断机制实现硬件快速响应。
2025-09-04 14:51:09
505
原创 《一文带你搞懂STM32的SysTick系统定时器》
SysTick是Cortex-M内核内置的24位递减定时器,具有硬件集成、自动重装和跨芯片兼容性三大特点。通过4个关键寄存器(CTRL、LOAD、VAL、CALIB)实现定时功能,支持查询和中断两种工作模式:查询法通过轮询COUNTFLAG标志实现精确延时;中断法则利用周期性中断处理延时计数,释放CPU资源。其24位计数器在72MHz时钟下最大可定时约0.23秒,结合软件计数可扩展至更长延时。作为内核级外设,SysTick代码可跨厂商芯片移植,广泛应用于RTOS调度和精确延时场景。
2025-09-03 19:00:29
1485
1
原创 STM32标准库GPIO初始化
本文介绍了GPIO(通用输入/输出)的基本概念和8种工作模式(4种输入、4种输出),重点解析了GPIO的内部结构和工作原理。通过LED灯控制实例,详细说明了如何初始化GPIO引脚(推挽输出模式、50MHz速度),并演示了通过控制PC6/PC7/PC8引脚电平(高电平熄灭、低电平点亮)来实现LED开关的代码实现过程。文章以通俗易懂的"搭积木"方式,逐步讲解了GPIO配置的每个步骤,包括时钟使能、结构体配置和电平设置等关键操作。
2025-09-02 20:18:35
2680
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅