自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 STM32F103C8T6移植uC/OS-III超完整过程(基于HAL库)

欢迎来到RTOS多任务环境!”(这里使用的串口调试助手是野火),串口调试助手的串口参数与 STM32 的 USART1 配置一致(波特率115200、数据位8位、停止位1位、校验位无)。这三个任务是实际的 “业务执行者”,每个任务独立运行在无限循环中,通过OSTimeDlyHMSM()实现延时,期间 CPU 会自动切换到其他任务,体现 RTOS 的多任务并发特性。两个task分别以1s和3s周期对LED等进行点亮-熄灭的控制,红灯亮0.5秒,熄灭0.5s,绿灯亮1.5s,熄灭1.5s。

2025-10-30 23:22:06 791

原创 基于hal库的OLED显示(OLED例程、文字、图片显示)

本文介绍了I2C协议的基本原理和时序、0.96寸OLED屏的工作原理及汉字显示方法,并详细说明了开源GUI库U8g2在STM32上的移植步骤。主要内容包括:1. I2C协议通过SDA和SCL两根线实现主从设备通信,采用起始信号、地址传输、数据传输和停止信号等关键时序;2. OLED屏通过I2C接口驱动SSD1306芯片,采用像素点阵方式显示汉字;3. U8g2库移植过程包括精简驱动文件、CubeMX配置I2C接口、添加库文件到Keil工程等步骤;4. 提供了完整的测试代码实现OLED显示功能,包括学号姓名显

2025-10-30 21:04:35 960

原创 利用IIC总线通信协议使用AHT20温湿度模块采集温湿度

利用微控制器(MCU)内部集成的硬件 I2C 外设(专用硬件模块)来实现 I2C 通信。

2025-10-26 19:05:13 639

原创 要实现 TIM3 和 TIM4 输出 PWM 驱动双 LED 呼吸灯

使用TIM3和TIM4,分别输出一个PWM波形,PWM的占空比随时间变化,去驱动你外接的一个LED以及最小开发板上已焊接的LED(固定接在 PC13 GPIO端口),实现2个 LED呼吸灯的效果。

2025-10-18 23:11:57 829

原创 利用定时器实现两个周期性任务(串口通信和点灯)

设置一个5秒的定时器,每隔5秒从串口发送“hello windows!”;同时设置一个2秒的定时器,让LED等周期性地闪烁,实现一个多任务并发运行的功能。

2025-10-18 18:40:17 947

原创 串口通信实践:利用轮询方式、中断方式和串口DMA方式让STM32系统给上位机发送数据

利用stm32CubeMX,配合Keil,使用HAL库方式,设置USART1 波特率为115200,1位停止位,无校验位,让STM32系统给上位机(win10)连续发送“hello windows!”,显示在串口调试组手。

2025-10-17 23:41:55 878

原创 串口通信原理以及串传输文件实践

接口形式:传统为 DB9/Db25 针型接口,现在多通过 USB 转串口模块实现,无需物理针脚。信号电平:采用负逻辑电平,+3V~+15V 代表逻辑 “0”,-3V~-15V 代表逻辑 “1”。传输距离:无中继时,波特率 9600bps 下最大传输距离约 15 米,波特率越高,距离越短。引脚功能:核心仅需 3 根线 ——TX(发送)、RX(接收)、GND(地),其他引脚(如 RTS、CTS)用于流控,非必需。

2025-10-16 20:47:59 629

原创 基于STM32HAL库的流水灯和中断控制流水灯(Cube MX+Keil5+proteus)

函数里的核心逻辑,原理是:记录第一次电平变化的时间,等待一段 “消抖时间”(通常 20-50ms)后,再次读取电平,若电平稳定则执行逻辑。为 1 时,按照 PA1→PB1→PA5 的顺序依次点亮 LED,每个 LED 点亮 100ms 后切换到下一个,形成流水灯效果。会被反复修改为 1→0→1→0→0,最终可能导致 LED 在 “熄灭 - 流水” 之间反复切换,直到抖动结束才稳定。主函数流程是初始化系统→配置时钟→初始化 GPIO→初始化 LED 状态→进入主循环,在主循环中,当。GPIO 中断回调函数。

2025-10-04 22:59:58 829

原创 基于Ubuntu和STM32的项目编程(变量、常量、堆和栈)与验证

全局常量变量类型生命周期作用域存储位置初始化特性全局常量程序全程整个程序只读数据段必须初始化,不可修改全局变量程序全程整个程序数据段/BSS段未初始化则默认 0局部变量作用域内函数/代码快内部栈内存未初始化则为随机值静态全局变量程序全程仅当前文件数据段/BSS段未初始化则默认 0静态局部变量程序全程仅函数内部数据段/BSS段仅初始化一次,默认 0内存类型管理方式作用域存储位置初始化特性栈编译器自动较大高局部变量、函数参数堆。

2025-10-01 23:55:48 920

原创 基于gcc学习静态库和动态库

a.lib。

2025-10-01 22:21:02 812

原创 [STM32F103C8T6]基于寄存器&标准外设库的LED流水灯

端口位设置 / 复位寄存器(GPIOx_BSRR)是 STM32 微控制器中用于原子操作(无干扰)设置或清除 GPIO 输出引脚状态的寄存器,每个 GPIO 端口(A-E)都配备了独立的 BSRR 寄存器,用于安全、高效地控制引脚电平。APB2 外设时钟使能寄存器(RCC_APB2ENR)是 STM32 微控制器中负责一个重要寄存器,属于复位和时钟控制(RCC)模块,用于控制 APB2 总线上连接的外设时钟的开启与关闭。STM32 单片机的外设时钟默认是关闭的,使用前必须先使能对应外设的时钟。

2025-09-25 20:01:53 690

原创 在Ubantu系统下使用gcc和Makefile编译c程序

在下载Ubuntu环境配置过程中,国内源确实大幅提高了软件下载速度,解决了 Ubuntu 默认源在国内访问慢的问题,在进行代码编写和编译运行过程中,多文件编译时一定需要确保函数声明正确,否则会出现链接错误,Windows 和 Linux 下的编译流程相似,但他们的可执行文件格式不同(.exe vs 无扩展名),也意识到Makefile在多文件项目的优势,只需要重新编译修改过的文件就可以,提高代码书写和修改效率。

2025-09-20 23:29:58 1218 1

空空如也

空空如也

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

TA关注的人

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