自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 基于RTOS

在 AHT20 数据采集实现中,先研读数据手册掌握其 I2C 地址、命令帧(初始化、测量)及数据解析规则,再基于 STM32F103 的硬件 I2C 外设,完成初始化、测量命令发送、数据读取与解析流程,并结合串口输出功能,将温湿度数据每隔 2 秒上传至上位机。软件 I2C 是指不依赖微控制器内部专用 I2C 硬件模块,而是通过通用输入输出引脚(GPIO),由软件代码模拟 I2C 通信协议的时序(包括起始信号、停止信号、数据位、应答信号等)来实现数据传输的方式。

2025-10-28 19:15:08 874

原创 定时器与PWM

若不采用定时器实现这两个周期性任务,可通过轮询 + 软件计时的方式模拟:在主循环中不断读取系统滴答时钟(如SysTick)的计数值,分别记录串口任务和 LED 任务的上次执行时间,当当前时间与上次执行时间的差值达到 5 秒或 2 秒时,执行对应任务。PWM(脉冲宽度调制)的核心原理是通过调整高电平在一个周期内的占空比,来模拟不同的 “有效电平时间”,从而实现对 LED 亮度的连续调节(呼吸灯即占空比随时间从 0% 渐变到 100% 再渐变到 0% 的循环过程)。(6)、配置定时器2、3。

2025-10-20 22:29:14 893

原创 基于串口通信、串口传输文件、STM32中断、DMA通信原理和编程方法

文件传输实验中,通过两台电脑借助串口模块连接,利用串口助手传输大文件,验证了波特率、文件大小与传输时间的关系,理论上传输时间近似为文件大小(字节数)除以波特率(每秒传输位数)再乘以 10(每字节含起始、停止位等),实际传输因硬件延迟等因素,时间略长于理论值。一、串口传输文件的实验。HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart):串口接收完成回调函数,当串口接收中断完成(即接收到指定长度的数据)时,会调用该函数,在该函数中可以编写对接收数据的处理逻辑。

2025-10-19 16:39:07 719

原创 GCC背后的故事&C程序常量变量的地址分配

一、学习并掌握可执行程序的编译、组装过程1、用gcc生成静态库和动态库.pdf”和“静态库.a与.so库文件的生成与使用.pdf1.1、创建库函数文件 1:add.c(实现加法功能)在终端输入#nano add.c输入以下代码保存并退出 nano:按下 Ctrl + O,然后按 Enter 确认文件名,最后按 Ctrl + X 退出。1.2、创建库函数文件 2:sub.c(实现减法)在终端输入#nano sub.c输入以下代码。

2025-10-11 21:48:30 1734

原创 基于HAL库和中断的LED流水灯

通过中断可精准控制流水灯切换时机,避免主程序轮询浪费资源,实现高效、定时的流水效果。首先,使用 STM32CubeMX 配合 Keil,通过 HAL 库完成了 LED 流水灯周期闪烁,并实现了开关中断控制功能 —— 高电平时流水灯工作,低电平时停止,同时观察到杜邦线模拟开关的抖动现象,理解了中断多次响应的原因。文件上传本地仓库成功,随后点击“Commit”,填写“Message”,然后点击“Commit”,传输成功后,点击“Push”,完成后点击OK,会跳出来一个框框填用户名和密码,一定要填写正确。

2025-10-09 22:52:43 535

原创 基于keil标准库和寄存器的STM32F103C8T6的流水灯实验

先使能 GPIOA、GPIOB、GPIOC 的时钟,再分别配置 GPIOA 的 0 号引脚、GPIOB 的 0 号引脚、GPIOC 的 13 号引脚为通用推挽输出模式,速度为 50MHz,为后续控制这些引脚(如驱动 LED 等外设)做好准备。使能 GPIOA、GPIOB、GPIOC 的时钟,再定义 GPIO 初始化结构体,分别配置这三个端口的引脚(PA0、PB0、PC13)为推挽输出模式,速度 50MHz,完成 GPIO 初始化,为后续控制 LED 等外设做准备。

2025-09-26 20:20:27 673

原创 在ubuntu中使用gcc和Makefile编译c语言程序

Ubuntu 系统:有一定计算机基础,对命令行操作不陌生,或者未来打算从事 Linux 服务器端开发、云计算等方向的新手,可以在掌握了一定的 C 语言基础语法后,尝试在 Ubuntu 系统下学习使用 GCC 等工具进行编译,提前适应 Linux 开发环境。Windows 系统:如果是完全没有编程基础,对计算机操作也不太熟悉的新手,建议先从 Windows 系统下的 IDE 入手,如 Dev - C++,它轻量级且容易使用,可以帮助新手快速建立编程的基本概念,体验编写、运行程序的乐趣。

2025-09-21 19:00:28 1680

原创 在ubuntu中使用gcc和Makefile编译c语言程序

Ubuntu 系统:有一定计算机基础,对命令行操作不陌生,或者未来打算从事 Linux 服务器端开发、云计算等方向的新手,可以在掌握了一定的 C 语言基础语法后,尝试在 Ubuntu 系统下学习使用 GCC 等工具进行编译,提前适应 Linux 开发环境。Windows 系统:如果是完全没有编程基础,对计算机操作也不太熟悉的新手,建议先从 Windows 系统下的 IDE 入手,如 Dev - C++,它轻量级且容易使用,可以帮助新手快速建立编程的基本概念,体验编写、运行程序的乐趣。

2025-09-21 18:29:28 1358

空空如也

空空如也

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

TA关注的人

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