自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 手写一个简单的的CAN网络管理

本文介绍了CAN网络管理在汽车电子中的重要性,并使用C语言实现了一个简单的CAN网络管理模块。文章首先阐述了本地唤醒和远程唤醒的概念,以及CAN网络管理状态机的六种关键状态。随后详细说明了实现过程中用到的定时器、网络管理报文格式和状态转换条件。通过定义状态类型、定时器结构体和关键变量,作者展示了如何用C语言编写状态机核心逻辑,包括状态切换、定时器管理和报文收发控制。代码实现部分重点呈现了从总线睡眠状态到立即重复报文状态的转换逻辑,为读者理解CAN网络管理的实际运作机制提供了实践参考。

2025-10-25 18:43:21 625

原创 CCP协议详解

ODT列表:因为一个CAN message只有8个字节,PID占一个字节,所以只有七个字节可用,如果一个DAQ列表中需要上传的数据超过7个字节,一个message上传不完,因此就要将一个DAQ列表中的变量继续划分,分成不同的ODT列表;DAQ-DTO:从机是不能直接发送ODT列表的,需要把ODT列表转换成DAQ-DTO才能上传,一个ODT列表对应一个DAQ-DTO,且对应一个PID,从机上传的时候通过PID来唯一识别DAQ-DTO,这样就能对应上传的数据。DTO是数据传输对象,是从设备反馈给主机的消息。

2025-10-01 16:41:10 682

原创 SAE J1939协议学习笔记

在讲解PS段的时候,当PF<240,PDU1格式的PDU时,PS段代表的是目的地址,也就是代表发送的PGN是发送给哪个节点的,但是注意,如果是广播PGN的话,PS段就是0xFF,由此也可以看出0xFF不能是某个节点的ID。PDU 格式(图中的PF段,第16~23位):PF段8 bit,可以表示的范围是0~255,J1939协议又做了划分,PF<240,为PDU1格式,240<=PF<=255的为PUD2格式,PF段的值会影响PS段内容的含义,跟PS段一起介绍。以后继续补充几个PGN的示例,帮助读者理解。

2025-09-27 21:14:43 320

原创 C++继承方式总结

C++继承中的访问权限控制决定了父类成员在子类中的可见性。public继承保持父类的public和protected权限不变;protected继承将父类public和protected成员都变为protected;private继承则全部转为private。无论哪种继承方式,父类的private成员都不可被子类访问。

2025-06-25 21:54:48 174

原创 C++构造函数

C++构造函数分为无参、有参和拷贝构造函数,在对象创建时自动调用。无参构造函数不需要参数,有参构造函数接收特定参数,拷贝构造函数通过同类对象的引用初始化新对象。示例代码展示了三种构造函数的定义和调用场景:无参构造创建,有参构造创建),拷贝构造创建。输出结果验证了不同构造函数在不同情况下的自动调用机制。

2025-06-22 09:51:24 165

原创 C++类的权限访问public/protected/private

C++类访问权限控制示例摘要:C++类中public成员可在类内外访问,而protected和private成员只能通过类内部方法访问。示例代码展示了通过public方法修改受保护成员,直接外部访问会导致编译错误。这体现了C++的封装特性,通过访问控制保护类数据安全。

2025-06-21 20:49:53 188

原创 C++函数重载

C++函数重载允许同一作用域中存在同名函数,通过参数类型、数量或顺序区分。文章通过示例展示了不同参数类型组合的重载函数调用情况。同时指出两个注意事项:1)引用类型不同可作为重载条件;2)默认参数可能导致调用歧义,引发编译错误。当函数同时存在带默认参数和不带默认参数的版本时,调用时需要确保参数传递能明确区分目标函数。

2025-06-19 21:39:41 450

原创 C++引用的理解

引用的方式:从结果可以看到,a,b和函数myFunc1()的参数param的地址是一样的,说明函数调用过程中并没有在栈空间给param分配内存,这就就能节省栈的空间,在函数内部直接使用param就可以改变函数外部a的值;传指针的方式:在函数调用过程中,也是在栈空间分配了一个内存,只是这个分配的内存存放的不是a的值,而是a的指针;传值的方式:在函数调用时,在栈空间分配了一个内存,将a的值做了一个拷贝,放在分配的空间当中;

2025-06-17 22:20:38 156

原创 UDS测试用例总结

汽车电子行业中,UDS是属于行业内通用的标准,比较常见的是UDSonCAN,UDS的协议网上都能找得到,但是关于UDS的测试用例的讲解很少,本文纠结和自己的开发测试经验,简单的介绍下UDSonCAN的常见一些测试用例。

2024-10-27 16:50:12 1288 1

原创 RSA加密算法基本计算

RSA算法基本计算

2024-04-24 22:26:39 752 2

原创 VMWare Ubuntu虚拟机连接SD卡/TF卡不识别

用记事本或者notepad++打开虚拟机的根目录下的.vmx文件,因为我的虚拟机名称是Ubuntu 64位,所以对应的.vmx文件名是:Ubuntu 64位.vmx。usb.restrictions.defaultAllow = “TRUE”,注意大小写,双引号要是英文的。如果能搜到,就看看配置值是TRUE还是FALSE,如果是FALSE就改为TRUE,问题完美解决;打开后搜索如下配置:usb.restrictions.defaultAllow。我的环境:VMWare 17.0。

2023-09-10 15:45:27 2096 3

原创 嵌入式基础知识1--大小端

大端(big endian):低地址存放最高有效字节(MSB),Motorola格式;小端(little endian):低地址存放最低有效字节(LSB),Intel格式;小端(Intel格式)

2023-08-14 10:56:30 187

原创 ARM汇编指令程序设计

本文主要讲解arm汇编编程的基础知识,涉及到的例程都可以在如下链接进行在线调试:https://cpulator.01xz.net/?sys=arm。

2023-08-13 16:57:46 582 1

原创 UDS DTC状态位详解

UDS DTC状态位详解

2023-07-21 20:15:26 1348 1

原创 Ubuntu在桌面建立快捷方式

Ubuntu在桌面建立快捷方式。

2022-11-13 22:31:41 886 1

原创 Makefile中执行shell命令

Makefile中执行shell命令。

2022-11-07 22:42:50 4646 1

原创 Makefile常用函数

makefile 常用函数介绍。

2022-11-06 20:17:53 181

原创 Makefile变量赋值及使用

makefile入门基本语法。

2022-11-06 18:24:58 488

空空如也

空空如也

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

TA关注的人

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