- 博客(66)
- 资源 (3)
- 问答 (3)
- 收藏
- 关注
原创 UDS协议解析与移植与上位机
正响应的意思是执行成功后,服务端返回报文报告执行成功负响应的意思是执行失败后,服务端返回报文报告执行失败负响应返回的报文:最高字节固定为7F,第二字节为被拒绝的SID,后续字节为被拒绝的原因发送报文:27 05回复:7F 27 13正响应返回的报文:最高字节为SID基础上加上0x40,次高字节为子功能ID,后续表示发送的数据发送报文:27 05回复:67 05 01 01 01。
2024-03-20 16:22:48
7777
原创 CCP协议移植与INCA通信流程
强烈建议看看这个视频B站CCP移植视频下载CCP源码Vector官网应该有,是个exe文件,网址我找不到了,不行就在CSDN下载阅读内部自带的两个关键文档AN-IMC-1-001_Integration_of the_Vector_CCP_Driver_with_a_free_CAN_Driver.pdf 介绍了完整的移植过程CCP21.pdf 介绍了2.1版本的CCP协议CCP源码移植首先将CCP三个文件移植到你的工程里,ccp.c/.h,ccppar.h其次
2022-03-15 17:43:18
4755
12
原创 VCU模型开发流程
第一部分:单片机C底层代码开发需要一块你准备开发成VCU的单片机核心开发板,进行底层代码开发板验证,VCU常用的模块有PWM,GPIO,CAN,AD,DA,FLASH等,根据自己的需求进行C代码验证在验证的过程中要有意识进行抽象,你中期会将代码抽象成SFunction模块如下,例如GPIO输入就要设置分组、上下拉、引脚号,你在C代码中就要把这部分抽象成变量提前留好接口,需要留出什么需要自己想好第二部分:MATLAB模块的建立首先打开simulink,选择建立一个空白library,然后界面
2022-03-15 11:59:03
5105
6
原创 imc DEVICES raw数组转Matlab mat数据
本文介绍了一个将IMC采集的.raw格式数据转换为MATLAB.mat文件的Python脚本。脚本通过imctermite库读取.raw文件,提取时间向量和各通道数据,进行数据一致性检查后,将时间作为第一列与其他通道数据合并为矩阵。处理过程中自动清理通道名称使其符合MATLAB变量命名规范,最终保存为包含数据矩阵、通道名称和源文件信息的.mat文件。该工具解决了直接从IMC采集数据拟合传递函数时变量过多、拟合效果不佳的问题,为后续仿真提供了规范化的数据格式。
2026-01-13 11:46:39
254
1
原创 VsCode快捷键备忘
Alt + Shift,然后拖动鼠标选择区块,不拖动点击两个地点是添加光标。Ctrl + Shift + \,跳转到匹配的括号,工程没有格式化有用。Ctrl + F2,选择所有匹配项,替换还可以。F7,移动到下一个更改,用于git。,匹配工程变量一键重命名。F3,当前文件查找下一个。F4,转到下一个引用。
2025-09-17 10:36:43
299
原创 开关和比例电磁阀差异分析
目标是使电磁力在整个工作行程内与输入电流尽可能保持线性关系,并且理想情况下,对于给定的电流,使力相对独立于衔铁的位置(即,如 8 所述的“平坦”或水平的力-位移曲线)。开关电磁阀中的复位弹簧通常是线性的,提供一致的反作用力,在通电时电磁力可以轻松克服,并在断电时足以使衔铁复位。这不仅包括电气控制信号的完整性和特性(例如,PWM质量、抖动设置),还包括阀门的机械健康状况(例如,弹簧疲劳、是否存在过度摩擦、阀体内部污染,如 9 中先前技术比例阀存在的问题)以及任何反馈控制算法的调优。
2025-08-28 21:58:19
810
1
原创 低通滤波器参数选择
所以,公式中的fs其实就是采样与运算周期,你如果20ms运算一次,则fs就是50hz。其中,fc截止频率一般可以根据经验值,如果fc = 10 Hz,时间常数为:16ms。对计算出的转速值进行使用低通滤波,如10ms取一次传感器频率值,即可求出当前RPM。即滤波后的转速信号将比实际转速滞后约16毫秒,这对于发动机控制是可接受的。最后,将滤波后的数值进行均值滤波。
2025-08-06 09:30:27
549
原创 LTspice软件使用
在设置运行时间处右键,勾选steady即可计算效率,View中的Efficiency Report,报告器件的功率等。想准确测量X和Y值,右键信号名,出现Attached Cursor选择最后一个,会出现测量游标。按下Alt后,点击器件会出现器件的瞬时功率,按住ctrl点击瞬时功率名称出现平均功率。常用的两个缩放,放大镜里双箭头是自适应所有波形,方框里双箭头是让自适应图像中的Y轴。测量两点电压,选择一个点后,按住左键拖到另一个点,即可测量两点压差。进行仿真后,检测电压在线上选择是表笔,电流在器件选择是圈。
2025-07-16 11:06:46
705
2
原创 MPU6050移植DMP读出三轴角度
a : b)a : b)a : b)Soft_DMP_I2C_Write和Soft_DMP_I2C_Read可以参照如下代码修改uint8_t0x00uint8_t0x01if (result!if (result!= 0)
2024-09-12 15:51:40
888
原创 基于VsCode和Git的代码版本管理
在项目文件夹右键打开git bash,输入命令git log 查看提交的历史 commit,git log --pretty=oneline将版本信息压缩到一行。找到自己想要回退的版本,记录下commit后边的版本ID值。执行完成,即可得到想要版本的代码了。git checkout ID值。
2024-09-02 15:27:37
1197
1
原创 FlashDB移植
分析代码后发现是各种函数都给在sfud.c实现了,例如开写保护发送0x06,在sfud.c中set_write_enabled实现,0x06命令对应宏定义SFUD_CMD_WRITE_ENABLE,如果命令与一般命令不同,可以通过自己定义宏定义进行覆盖。主要修改两个函数:spi_write_read和sfud_spi_port_init,在init函数绑定一些函数和初始化外设, SPI 读写驱动(必选)、重试次数(必选)、重试接口(可选)及 SPI 锁(可选)的配置。src文件夹:代码源文件。
2024-08-30 17:26:17
1137
原创 液压传动知识
将原动机输出的机械能转化为液压油的压力能,向液压系统提供动力。通常是液压泵液压泵要有一个或多个密闭工作空间密闭空间体积能够周期变化能与密闭空间相协调的配流装置通过齿轮互相啮合将机械能转换为压力能外啮合和内啮合齿轮泵利用叶片将机械能转换为压力能单作用泵和双作用泵,一周吸排次数不同利用柱塞将机械能转换为压力能轴向柱塞泵和径向柱塞泵将液压泵提供的压力能转变为机械能的能量转换装置液压缸指输出直线运动的液压执行元件缸筒、活塞、活塞杆、进出油口、无杆腔、有杆腔活塞缸、柱塞缸、伸缩缸等液压马达指输出。
2024-07-03 17:50:21
3956
原创 CubeIDE高分辨率增大工具栏图标
转载至作者:QiQiangUESTC https://www.bilibili.com/read/cv15841728/ 出处:bilibili。关闭STM32CubeIDE,点击STM32CubeIDE的启动图标 —> 点击“属性” —> 点击“兼容性” —> 更改高DPI设置。在高分辨显示屏中STM32CubeIDE界面上的图标会显得比较小,可以采用如下方法修改图标的大小。
2024-05-30 21:35:16
1572
2
原创 Matlab安装完成后打开后闪退
官方解决办法,英文看着费劲其中Problem #2和Problem #4大概率能解决问题我是使用Problem #4解决的,引发原因是Problem #3加密软件导致,只能先命令行再desktop才能打开软件知乎绵绵给出的方法,和官方解决相同但是中文
2024-04-02 21:40:15
1624
原创 Matlab未装工具箱
电脑空间捉襟见肘,基于2022b,汽车相关行业,不涉及自动驾驶相关没有用到的产品类型,如表所示翻译可以参考yunqianrui的博文5G Toolbox5G相关Aerospace Blockset航天相关Aerospace BlocksetAntenna Toolbox天线相关Audio Toolbox语音相关Bioinformatics Toolbox生物相关Bluetooth Toolbox蓝牙Deep Learning
2024-04-02 09:57:21
671
原创 PyQt笔记
基本UI按钮:qpushbutton文本:qlabel输入框:qlineeditw.resize重新设置大小 w,move移动窗口位置
2024-02-27 22:28:05
882
原创 SAE J1939协议
此外,在每个数据页中提供了240个参数组,仅供PDU1格式使用。组扩展与PDU 格式域的低四位(注意:当PDU 格式域最高四位被置1,说明PS 域是组扩展)规定了每个数据页4096 个参数组。参数组还包含了每个报文的 8 字节 CAN 数据字段中的参数分配、重复率和优先级。如果目标地址为0xFF,则表示为全局地址,此时所有设备都应该监听此报文并在收到报文后做出响应。占8bit,DA是报文的目标地址,除目标地址的设备外,其他设备应该忽略此报文。J1939只使用CAN2.0B中的扩展帧,共29位标识符。
2024-01-24 16:38:55
1933
原创 FreeRTOS总结
*函数重入:**函数可以安全的在多个任务调用,或既可以从中断也可以在任务使用,那么函数就是重入,也称作线程安全。中断结束时,会回到打断处继续执行,但如果中断期间,有了更高优先级任务就绪,就应该执行更高优先级任务,而不是返回原点继续执行。如果A,B任务优先级相同,A先获取了互斥量,等到时间片结束切换B,接着回A,释放互斥量,再等到时间片结束,B才能运行。通过任务通知,任务或ISR可以直接向接收任务发送事件。**互斥量:**特殊的二进制信号量,获取后必须归还,归还后别的任务才能获取,否则可能死锁。
2023-12-31 21:25:09
1248
原创 野火霸道-V2+3.2寸屏+FreeRTOS+LVGL移植
基于野火霸道-V2+3.2寸屏的开发板,下载器为STLINK分为两个版本,FreeRTOS和裸机版本。
2023-12-31 21:10:49
2004
原创 PCB如何批量复制布局
具体步骤选择要复用的源模块,快捷键D(设计)-M(ROOM)-T(从选中的器件创建矩形ROOM),创建ROOM,将ROOM拉大,把所有要复用的元素 同样的方法将待复用的模块也创建ROOM。从窗口右下角Panels中打开PCB List,选中源模块所有元器件。选中后PCB List显示如下,将上面参数修改为可编辑。通过点击Designator那一列将元件按照一定的顺序排序,然后将Channel Offset的参数选中复制再选中待复用的模块内的元件,按照第3步的顺序排序,粘贴刚刚复制的Chann
2023-04-16 21:51:14
144
原创 Keil生成Bin文件出现Bin文件夹
原因我碰到原因就是SCT加载文件的问题,我定义了不少段,所以导致bin文件变成了文件夹一般的Bin生成方法:在USER里面Run#1加上$K\ARM\ARMCC\bin\fromelf.exe --bin -o "$L@L.bin" "#L",生成错误出现文件夹,如果没有自定义SCT文件就可使用这种方法解决方法Keil里面的fromelf帮助,可以去看看bincombined_base与你自己的起始地址有关,$K\ARM\ARMCC\bin\fromelf.exe --bincombine
2022-05-10 17:49:21
3532
3
原创 CCP移植相关
CCP文件夹CANDRV文件夹can_ccp文件是CAN与CCP协议的接口文件以及介绍文档SAMPLES文件夹主要是两个移植完成后的模板DOC文件夹文件夹里面是各种介绍文件Integration_of_the_Vector_CCP_Driver_with_a_free_CAN_Driver文件主要是CCP如何与CAN驱动集成CCP Driver文件是对他的源码进行介绍MAP文件其中关键的是变量名称、变量长度、变量地址该文件一般存放在32工程下的Listings文件夹要通
2021-12-28 10:30:39
1361
原创 CCP协议
CCP协议2021-11-12标定流程将标定数据保存在Flash中。在程序初始化过程中,标定数据映射至RAM当中,程序从RAM中调取数据。标定过程开始时,在上位机中建立Flash存储区镜像,并保存至HEX文件。标定过程中,通过DNLOAD,DNLOAD_6等命令修改RAM中数据,实现在线标定,更新上位机Hex。标定结束后,将更新后的数据,一次性写入Flash。重启控制器,将新的标定数据映射值RAM中。数据CCP协议是在应用层也就是使用CAN的数据帧来传递命令,分为CRO(主设备向从设
2021-12-27 14:59:02
8830
2
原创 树莓派Ubuntu20.04安装ros系统
第一位大佬的博文第二位大佬的博文首先设置软件源,这里可以是官方源也可以是镜像,由于我官方源就成功了,所以没用镜像源sudo sh -c ‘echo “deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main” > /etc/apt/sources.list.d/ros-latest.list’设置密钥sudo apt-key adv --keyserver ‘hkp://keyserver.ubuntu.com.
2021-10-14 15:53:48
790
原创 matplotlib画图
画出第一个基本图像 import matplotlib.pyplot as plt import numpy as np x = np.linspace(-1, 1, 50) y = x*2+1 plt.plot(x, y) plt.show()用两个窗口画出两个图像 import matplotlib.pyplot as plt import numpy as np x = np.linspace(-1, 1, 50) y1 = x*2+1 y2 = x**2
2021-04-27 22:36:18
163
原创 arm64下liunx的python安装
anaconda安装参考该篇博客大体就是下载为arm liunx开发的anaconda包后进行bash命令安装正常安装参考该篇博客大体就是官网下载压缩包解压,configure,安装必要库,安装查看 ls -l /usr/bin | grep python,现有python命令链接的什么解释器移除sudo rm /usr/bin/python,移除当前链接建立新链接:sudo ln -s /usr/local/python3.7/bin/python3.7 /usr/bin/
2021-04-15 11:07:48
2544
stateMachine状态机框架
2024-09-28
ZLG python二次开发demo
2024-03-06
STM8-Template.zip
2020-02-15
四层板如何单点接地?(标签-平面|关键词-地网)
2023-12-14
怎么快速画FPGA原理图?
2022-08-30
python转义字符替换问题?
2020-06-16
STM8L051定时器中断无法进入?
2020-01-31
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅