自定义博客皮肤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)
  • 收藏
  • 关注

原创 1.FreeRTOS任务管理

​ 需要配置FreeRTOSconfig.h 中 配置需要的功能。

2025-08-12 22:01:58 235

原创 CanFestival与FitCANBus对接:从DLL链接问题到CANopen功能实现

本文介绍了CanFestival与FitCANBus的集成方案。CanFestival是一个轻量级开源CANopen协议栈,而FitCANBus是底层CAN通信驱动库。文章重点解决了CanFestival-3的DLL链接问题,包括"SetAlarm"等函数的外部符号解析错误,并详细说明了函数声明和项目配置的正确方法。随后详细阐述了CanFestival与FitCANBus的对接过程,包括驱动加载、端口操作、消息发送和波特率设置等关键功能的实现代码。最后提供了完整的初始化流程,展示了如何在

2025-07-28 22:45:00 383

原创 从零开始实现一个工业级“多段线性标定表”:原理、代码、优化与拓展

大道至简,知易行难”。多段线性标定看似简单,真正落地时,排序、越界、外推、实时性、掉电存储,每一步都是坑。希望这篇文章能帮你打造一套可维护、可扩展、可移植的工业级方案。欢迎评论区交流,一起把传感器“调教”得更准!

2025-07-18 08:00:00 544

原创 从 CAN 2.0B 到 SAE J1939——理论、帧格式对比以及 C 语言实战解析

本文深入解析J1939协议与CAN 2.0B的关系,重点说明如何将29位CAN ID转换为J1939的PGN/SPN格式。文章指出J1939是基于CAN 2.0B的应用层协议,详细拆解了29位ID的各个字段含义,并给出了PGN的计算公式。核心部分提供了可直接移植的C语言实现代码,包含数据结构定义、编解码函数及使用示例,适用于STM32等MCU平台。最后总结了常见调试技巧,强调PGN过滤的重要性。通过150行代码即可实现裸机与Linux SocketCAN的无缝移植。

2025-07-18 00:20:17 1045

原创 关于CANdle API连续发94帧后“静默失败”的血泪总结

摘要: 使用Candle.NET底层API连续发送CAN报文时,若未及时读取接收缓冲区,发送将在94帧后静默失败(无错误提示)。这是由于固件接收FIFO满导致发送暂停,但上层API未检查该状态。解决方案是边发边读,每发送10-20帧后清空接收缓冲区(即使丢弃数据)。关键认知:candle_frame_read是维持发送的必要操作,而非可选功能。该机制与固件接收FIFO深度相关,具体帧数可能因设备略有差异。

2025-07-16 23:10:34 470

原创 C++学习笔记(4)函数

代码中存在对于功能模块重复使用的情况 如果按照基本的cv方式 会导致代码出现以下问题代码冗余!代码维护性极差代码阅读性极差!有参数有返回值函数{重点无参数有返回值函数有参数无返回值函数无参数无返回值函数。

2024-03-11 18:51:11 565 1

原创 C++函数封装练习题(2)

注意]考虑后续的斐波那契数据情况。

2024-03-09 11:13:54 655 1

原创 C++学习笔记(3)运算符和循环

主要处理代码只能怪需要条件执行的程序,简单来说满足条件执行,不满足不执行!主要有 if 分支 , Switch 擦色分支结构代码中一定会存在部分功能重复使用,大量使用。如果按照基本的CV打发完成对应的代码, 会导致代码出现以下问题代码冗余代码维护性极差代码的阅读性极差初步解决方案可以使用循环解决、

2024-03-07 20:59:50 1183 2

原创 C++基本运算习题(1)

编写一个程序,要求用户输入一个分数,然后根据分数输出对应的等级 (如90-100为A,80-89为B,以此类推)。编写一个程序,要求用户输入一个字符,然后判断该字符是大写字母、小写字母,还是其他字符。编写一个程序,要求用户输入一个年份和月份,然后输出该月份有多少天 (考虑闰年)。编写一个程序,要求用户输入一个字母,然后判断该字母是元音字母还是辅音字母。编写一个程序,要求用户输入一个月份,然后判断该月份对应的季节并输出。cout << “30天” << endl;cout << “31天” << endl;

2024-03-06 11:55:44 1093 1

原创 C++学习笔记(2)变量与运算符

C/C++ 变量定义格式数据类型 变量名 = 初始化类型;数据类型:决定当前变量存储的数据类型是哪一个 ,并且有且智能存储对应的数据类型,严格遵守数据类型一致化原则, 在选择数据类型是,选择合理的数据类型变量名:操作使用当前变量的名称, 符合古法使用变量名 基本原则{见名知意思 约定俗成}

2024-03-05 09:01:11 1093

原创 vim和c++基础学习(1)

VIM 是linux操作系统中非常优秀的编辑器!!!支持各种插件vim有三种模式 编辑模式 插入模式 命令模式vim的常用指令和快捷键。

2024-03-04 08:55:27 1143 1

原创 Linux基本命令学习笔记(1)

​ Linux 之父是芬兰计算机程序员 Linus Torvalds。他在1991年创建了 Linux 内核,并成为了 Linux 操作系统的主要架构师和开发者。Linus Torvalds 的贡献使得 Linux 成为了世界上最流行的开源操作系统之一。​ Ubuntu 是基于 Linux 开源操作系统, 对于嵌入式设备非常友好,后续开发环境都基于 Ubuntu 实现。学习任务linux系统操作码命令Linux系统的目录结构后续Linux内核编译。

2024-03-02 09:01:45 960 2

空空如也

空空如也

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

TA关注的人

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