- 博客(7)
- 收藏
- 关注
原创 定时器与PWM
在main.c的// 占空比(0~999)// 占空比变化方向(1=递增,0=递减)// PWM更新函数(需在定时器中断或主循环中调用)pwm_duty++;// 此处应添加硬件PWM寄存器更新代码定时器中断是 STM32 实现精准定时、多任务并发的高效方式,通过 “标志位” 可避免任务阻塞;PWM 的核心是 “占空比”,通过修改比较值可实现输出电平的占空比渐变,从而实现呼吸灯等效果;
2025-11-09 22:21:36
681
原创 STM32CubeMx下的串口通信实验
一、串口协议与硬件基础认知1,串口协议与 RS-232 标准串口协议是串行通信协议,数据一位一位按顺序传输;RS-232 是串行通信的物理层标准,定义了电气特性(如逻辑电平、传输速率等RS232 电平与 TTL 电平的区别TTL 电平:逻辑 “1” 为 3.3V/5V,逻辑 “0” 为 0VRS232 电平:逻辑 “1” 为 - 15~-3V,逻辑 “0” 为 + 3~+15V;两者逻辑电平相反,需电平转换模块(如 CH340)实现通信。USB/TTL 转 232 模块(CH340 为例)工作原理。
2025-11-09 20:55:18
916
原创 关于HAL库的——IIC(I2C)协议采集温湿度与OLED显示
I2C(Inter-Integrated Circuit)是一种由飞利浦公司开发的串行通信总线,用于短距离设备之间的低速数据传输(通常速率为 100kbps、400kbps,高速模式可达 3.4Mbps)。其核心特点是仅需两条信号线(SDA 串行数据线、SCL 串行时钟线)实现多设备通信,支持一主多从或多主多从架构,广泛应用于传感器、存储器、显示屏等外设与微控制器的连接。
2025-10-29 23:25:04
1887
原创 基于HAL库和中断的LED流水灯
需要调整流水灯速度时,可以修改HAL_Delay的参数值。需要增加更多LED时,可以扩展switch-case的case数量和led_state的模数。(捕捉高低电平变化),使能上拉或下拉(根据硬件接线,若杜邦线模拟开关接 GND 和 VCC,可设为上拉)。掌握了HAL库GPIO操作:初始化、置位/复位、翻转引脚等基础函数。理解了流水灯原理:通过循环和延时控制LED依次亮灭。闪烁异常:确保只操作目标LED,避免误操作其他引脚。LED不亮:检查引脚配置、硬件连接和高低电平匹配。中找到中断处理函数(如。
2025-10-13 21:38:41
806
原创 GCC背后的故事&C程序常量变量的地址分配
本次实验围绕 C 程序编译、库文件使用及变量地址分配展开,通过 Ubuntu 和 STM32 平台的实操,深化了对编译原理和内存管理的理解。在可执行程序编译与组装方面,掌握了直接编译、静态库和动态库的生成及链接方法,对比了不同方式下可执行文件的大小差异;在变量地址分配验证中,发现 Ubuntu 基于操作系统动态管理内存,变量地址不固定,而 STM32 直接映射物理存储器,地址固定,二者均遵循栈向下、堆向上的通用内存分配逻辑。
2025-10-11 23:46:19
591
原创 嵌入式开发环境与软件编程基础
在Ubuntu中用C语言编写“hello world”程序,通过 gcc 编译运行,掌握基础C程序开发流程。编写多文件C程序( main1.c 调用 sub1.c 的 x2x 函数),分别在Ubuntu( gcc 命令行)和Windows(如MinGW/VS)编译运行,理解跨文件函数调用与跨系统编译差异。在Ubuntu中通过编写 Makefile 自动化编译多文件C程序,掌握工程化编译管理工具的使用。以下是根据要求生成的Makefile代码,用于编译链接。以下代码实现了一个简单的。
2025-09-27 23:11:06
538
原创 寄存器&标准库完成LED流水灯
本次实验围绕STM32 LED流水灯,对比了寄存器方式与标准外设库方式的开发特点:寄存器方式(实验1):直接操作GPIO寄存器(如MODER、ODR)实现LED轮流闪烁,代码需手动处理位运算与地址,虽开发效率低,但能深入理解硬件底层逻辑。标准外设库方式(实验2):通过库函数封装简化GPIO配置,只需初始化结构体、调用API即可完成功能,开发效率高且可移植性强,适合工程化开发。
2025-09-26 23:46:06
816
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅