自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C语言解析JSON字符串指南(含结构体、结构体数组+使用cJSON)

如何将JSON解析成值、结构体、结构体数组等

2025-03-31 11:21:10 1506

原创 Keil中关闭宏定义提示方法

keil中的写代码宏定义提示哪里关

2025-04-03 17:58:02 222

原创 C语言实现的Bootloader

以下是一个简单的bootloader实现,用于从备份地址(0x08040000)将应用程序复制到运行区(0x08004000),页大小为4KB。这个实现适用于STM32系列微控制器,使用了标准外设库。

2025-04-03 15:20:37 121

原创 bootloader+APP中,有些APP引脚无法正常使用?

主控芯片GD32F415,多次测试给PB13引脚给高电平,均为成功。经过分析得知,是PB13引脚在。

2025-04-02 14:52:40 317

原创 Bootloader与APP看门狗使用策略

看门狗持续运行且无法关闭。APP初始化或主循环执行时间超过看门狗超时周期。

2025-04-02 11:32:04 333

原创 标准库头文件分类介绍

C语言标准库提供了一系列头文件,每个头文件包含特定功能的声明和定义。

2025-04-02 11:22:13 593

原创 C语言实现十进制转十六进制程序(数值改变,如25->0x25)

数值改变,如25直接转为0x25

2025-04-01 18:11:17 270

原创 编译器无法识别标识符错误排查-记录贴

打开头文件,确认。

2025-03-31 16:04:08 320

原创 使用cJSON解析JSON字符串成一个结构体,C语言代码示例

使用cJSON解析JSON字符串成一个结构体

2025-03-31 11:28:32 180

原创 cJSON类型及type值详解

cJSON的核心结构体就是一个cJSON

2025-03-31 11:24:39 309

原创 C/C++中的条件编译指令#if

if是 C/C++ 中的预处理指令,用于条件编译。它允许根据预定义的条件来决定是否编译某段代码。#if通常与#define#ifdef#ifndef#else和#endif等指令一起使用。

2025-03-24 14:18:58 288

原创 ASCII字符编码表简介

通过 C 语言,可以轻松实现字符与 ASCII 值之间的转换,以及基于 ASCII 值的字符操作(如大小写转换、字符类型判断等)。掌握 ASCII 值的应用是理解字符处理的基础。

2025-03-20 09:50:27 951

原创 字符转整型原理及代码解析(x - ‘0‘ 的作用)

字符转换为对应的整数值

2025-03-20 09:32:26 129

原创 串口调试助手DTR与RTS功能解析

DTR和RTS是串行通信中的关键信号,分别用于设备状态控制和数据流管理。

2025-03-18 09:32:45 262

原创 C语言结构体字符串对比更新示例

使用结构体来存储和比较字符串数据,并在数据发生变化时进行更新和打印。

2025-03-15 11:55:23 153

原创 二值信号量反复释放特性解析

二值信号量可以反复释放,但状态不会超过1。这种特性使其在同步和资源管理中非常有用。

2025-03-14 17:28:10 226

原创 C语言结构体闪存数据对齐方法

使用alignof和sizeof检查对齐和大小。使用_Alignas或显式指定对齐。使用调整对齐(需谨慎)。检查指针地址确认对齐。这些方法确保结构体在闪存中的存取是对齐的,避免未对齐访问的问题。

2025-03-14 17:00:20 238

原创 单片机FreeRTOS系统中,CPU计算的延时函数

CPU 计算延时函数适用于短时间的忙等待延时,但会浪费 CPU 资源。在 FreeRTOS 中,建议优先使用或实现延时。如果需要精确的短时间延时,可以使用空循环实现,但要注意防止编译器优化。

2025-03-12 16:45:54 835

原创 单片机字符串换行符使用说明

在单片机中,处理字符串时,通常需要根据具体的通信协议或显示设备的要求来确定换行符的使用方式。是常见的换行符表示方式,但具体使用哪种换行符取决于你使用的协议或设备的要求。例如,如果你通过串口发送这个字符串到某个设备,设备可能需要。是换行(Line Feed)。是回车(Carriage Return),是 Windows 系统中的标准换行符。在单片机中,字符串的换行通常使用。后面换行,那么你可以将其改为。例如,如果你有一个字符串。

2025-03-12 16:38:35 236

原创 FreeRTOS系统中如何保障一段程序完整执行完

互斥锁:防止高优先级任务抢占。关闭中断:防止中断打断。关闭调度器:防止任务切换。提高任务优先级:防止其他任务抢占。任务通知:同步任务执行。队列:同步任务执行。事件组:同步多个任务。软件定时器:在指定时间执行代码。任务挂起和恢复:挂起其他任务。临界区:防止任务切换和中断打断。根据具体需求选择合适的方法,确保关键代码段完整执行。

2025-03-11 15:46:18 424

原创 taskENTER_CRITICAL(); 的作用

是 FreeRTOS 中的一个宏,用于进入临界区。临界区是一段代码,在这段代码执行期间,任务不会被其他任务或中断打断。具体来说,:调用该宏后,系统会禁用所有中断(或部分中断,取决于具体实现),以确保当前任务不会被中断打断。:在临界区内,任务可以安全地访问共享资源(如全局变量、硬件寄存器等),而不用担心被其他任务或中断干扰。:在临界区内,FreeRTOS 的任务调度器也会被暂时禁用,防止任务切换。

2025-03-11 15:39:19 406

原创 FreeRTOS信号量计数中断安全版本

FreeRTOS 没有直接提供的中断安全版本,但可以通过临界区保护或自定义函数来实现类似功能。

2025-03-10 14:55:33 166

原创 校验和-计算函数 CalChecksum代码及分析

该函数通过累加数据块中所有字节的值,并取最低 8 位作为校验和,实现了一个简单的校验和计算。适用于对数据完整性要求不高的场景。

2025-03-10 11:00:44 400

原创 大端模式与小端模式

大端模式:高位字节在前,低位字节在后。小端模式:低位字节在前,高位字节在后。

2025-03-10 09:52:26 395

原创 FDEV_SETUP_STREAM 的作用

是 AVR Libc(用于 AVR 单片机的 C 标准库)中的一个宏,用于创建一个自定义的文件流(FILE类型),并将其与用户定义的输入/输出函数关联。通过这种方式,可以将标准库函数(如printfscanf等)重定向到自定义的硬件设备(如串口)。

2025-03-07 17:58:57 360

原创 单片机如何用C语言重写vfprintf

通过自定义。

2025-03-07 17:47:28 382

原创 fprintf与printf的区别及使用场景

使用printf时,输出直接显示在屏幕上。使用fprintf时,可以指定输出到文件或其他流(如stdout或stderr例如,将fprintf的输出定向到标准输出时,效果与printf相同:\n");这行代码与\n");效果一致。

2025-03-07 16:25:20 278

原创 把uint32_t每个字节存到4个uint8_t变量中

在C语言中,你可以通过位操作将一个uint32_t类型的变量拆分成四个uint8_t类型的变量。

2025-03-05 09:42:11 354

原创 TTLV格式

TTLV格式通过Tag、Type、Length和Value四个部分,提供了一种灵活且可扩展的数据编码方式,适用于多种场景。

2025-03-05 09:30:30 161

原创 C语言空函数的使用与用途

“空函数”或“占位函数”

2025-03-04 15:02:51 366

原创 enum的使用

enum是C语言中一种非常有用的数据类型,通过使用枚举,你可以避免在代码中直接使用硬编码的整数值,从而提高代码的可维护性。

2025-03-04 09:27:02 679

原创 C语言中switch语句的使用

在C语言中,switch语句用于根据变量的值执行不同的代码块。它通常用于代替if-else。

2025-03-04 09:21:50 246

原创 C语言数组复制方法

在C语言中,复制一个数组的值到另一个数组可以通过多种方式实现。最常见的方法是使用循环逐个复制数组元素,或者使用标准库函数memcpy。

2025-03-03 17:11:11 284

原创 C语言只读关键字const使用详解

const关键字用于声明只读变量或指针。const可以应用于变量、指针、函数参数等,以提高代码的安全性和可读性。使用const可以帮助编译器进行优化,并防止意外的修改。

2025-02-28 15:42:27 165

原创 问题记录:xQueueSend队列总是为空

uxQueueMessagesWaiting和uxQueueSpacesAvailable均为0,队列写入失败

2025-02-27 11:25:16 291

原创 FreeRTOS中xQueueSend写入数据失败原因分析

xQueueSend失败原因分析

2025-02-27 10:45:02 534

原创 FreeRTOS中configUSE_QUEUE_SETS是用来配置什么的

FreeRTOS 中,队列集合是一种高级特性,允许任务同时等待多个队列或信号量,并在其中任何一个队列或信号量有数据时唤醒任务。

2025-02-27 10:34:57 297

原创 陀螺仪+加速度计,姿态解算代码,已采用坐标系变换

【代码】陀螺仪+加速度计,姿态解算代码,已采用坐标系变换。

2025-02-25 16:10:41 443

原创 陀螺仪姿态解算中,用到的数学函数代码

【代码】陀螺仪姿态解算中,用到的数学函数代码。

2025-02-25 16:03:52 181

原创 二阶巴特沃斯滤波器原型及代码

二阶巴特沃斯滤波器设计的关键在于选择合适的截止频率和元件值,以实现所需的滤波特性。/** 函数名:butterworth_lpf* 描述 :二阶巴特沃斯滤波器原型* 输入 :now_input输入数据, buffer中间数据缓存,parameter滤波参数* 返回 :滤波之后的数据*//* x(n) 保存 *//* y(n) 保存 */

2025-02-25 16:00:07 179

空空如也

空空如也

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

TA关注的人

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