- 博客(56)
- 资源 (3)
- 问答 (3)
- 收藏
- 关注
原创 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
658
原创 基于VsCode和Git的代码版本管理
在项目文件夹右键打开git bash,输入命令git log 查看提交的历史 commit,git log --pretty=oneline将版本信息压缩到一行。找到自己想要回退的版本,记录下commit后边的版本ID值。执行完成,即可得到想要版本的代码了。git checkout ID值。
2024-09-02 15:27:37
635
原创 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
937
原创 液压传动知识
将原动机输出的机械能转化为液压油的压力能,向液压系统提供动力。通常是液压泵液压泵要有一个或多个密闭工作空间密闭空间体积能够周期变化能与密闭空间相协调的配流装置通过齿轮互相啮合将机械能转换为压力能外啮合和内啮合齿轮泵利用叶片将机械能转换为压力能单作用泵和双作用泵,一周吸排次数不同利用柱塞将机械能转换为压力能轴向柱塞泵和径向柱塞泵将液压泵提供的压力能转变为机械能的能量转换装置液压缸指输出直线运动的液压执行元件缸筒、活塞、活塞杆、进出油口、无杆腔、有杆腔活塞缸、柱塞缸、伸缩缸等液压马达指输出。
2024-07-03 17:50:21
2285
原创 CubeIDE高分辨率增大工具栏图标
转载至作者:QiQiangUESTC https://www.bilibili.com/read/cv15841728/ 出处:bilibili。关闭STM32CubeIDE,点击STM32CubeIDE的启动图标 —> 点击“属性” —> 点击“兼容性” —> 更改高DPI设置。在高分辨显示屏中STM32CubeIDE界面上的图标会显得比较小,可以采用如下方法修改图标的大小。
2024-05-30 21:35:16
547
原创 Matlab安装完成后打开后闪退
官方解决办法,英文看着费劲其中Problem #2和Problem #4大概率能解决问题我是使用Problem #4解决的,引发原因是Problem #3加密软件导致,只能先命令行再desktop才能打开软件知乎绵绵给出的方法,和官方解决相同但是中文
2024-04-02 21:40:15
1001
原创 Matlab未装工具箱
电脑空间捉襟见肘,基于2022b,汽车相关行业,不涉及自动驾驶相关没有用到的产品类型,如表所示翻译可以参考yunqianrui的博文5G Toolbox5G相关Aerospace Blockset航天相关Aerospace BlocksetAntenna Toolbox天线相关Audio Toolbox语音相关Bioinformatics Toolbox生物相关Bluetooth Toolbox蓝牙Deep Learning
2024-04-02 09:57:21
513
原创 UDS协议解析与移植与上位机
正响应的意思是执行成功后,服务端返回报文报告执行成功负响应的意思是执行失败后,服务端返回报文报告执行失败负响应返回的报文:最高字节固定为7F,第二字节为被拒绝的SID,后续字节为被拒绝的原因发送报文:27 05回复:7F 27 13正响应返回的报文:最高字节为SID基础上加上0x40,次高字节为子功能ID,后续表示发送的数据发送报文:27 05回复:67 05 01 01 01。
2024-03-20 16:22:48
5205
原创 PyQt笔记
基本UI按钮:qpushbutton文本:qlabel输入框:qlineeditw.resize重新设置大小 w,move移动窗口位置
2024-02-27 22:28:05
808
原创 SAE J1939协议
此外,在每个数据页中提供了240个参数组,仅供PDU1格式使用。组扩展与PDU 格式域的低四位(注意:当PDU 格式域最高四位被置1,说明PS 域是组扩展)规定了每个数据页4096 个参数组。参数组还包含了每个报文的 8 字节 CAN 数据字段中的参数分配、重复率和优先级。如果目标地址为0xFF,则表示为全局地址,此时所有设备都应该监听此报文并在收到报文后做出响应。占8bit,DA是报文的目标地址,除目标地址的设备外,其他设备应该忽略此报文。J1939只使用CAN2.0B中的扩展帧,共29位标识符。
2024-01-24 16:38:55
1152
原创 FreeRTOS总结
*函数重入:**函数可以安全的在多个任务调用,或既可以从中断也可以在任务使用,那么函数就是重入,也称作线程安全。中断结束时,会回到打断处继续执行,但如果中断期间,有了更高优先级任务就绪,就应该执行更高优先级任务,而不是返回原点继续执行。如果A,B任务优先级相同,A先获取了互斥量,等到时间片结束切换B,接着回A,释放互斥量,再等到时间片结束,B才能运行。通过任务通知,任务或ISR可以直接向接收任务发送事件。**互斥量:**特殊的二进制信号量,获取后必须归还,归还后别的任务才能获取,否则可能死锁。
2023-12-31 21:25:09
1049
原创 野火霸道-V2+3.2寸屏+FreeRTOS+LVGL移植
基于野火霸道-V2+3.2寸屏的开发板,下载器为STLINK分为两个版本,FreeRTOS和裸机版本。
2023-12-31 21:10:49
1625
原创 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
2872
3
原创 CCP协议移植与INCA通信流程
强烈建议看看这个视频B站CCP移植视频下载CCP源码Vector官网应该有,是个exe文件,网址我找不到了,不行就在优快云下载阅读内部自带的两个关键文档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
3978
10
原创 VCU模型开发流程
第一部分:单片机C底层代码开发需要一块你准备开发成VCU的单片机核心开发板,进行底层代码开发板验证,VCU常用的模块有PWM,GPIO,CAN,AD,DA,FLASH等,根据自己的需求进行C代码验证在验证的过程中要有意识进行抽象,你中期会将代码抽象成SFunction模块如下,例如GPIO输入就要设置分组、上下拉、引脚号,你在C代码中就要把这部分抽象成变量提前留好接口,需要留出什么需要自己想好第二部分:MATLAB模块的建立首先打开simulink,选择建立一个空白library,然后界面
2022-03-15 11:59:03
4680
5
原创 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
1183
原创 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
8263
1
原创 树莓派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
716
原创 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
122
原创 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
2197
原创 深度学习
第二章神经网络是一种由节点构成的网络,它模仿大脑的神经元结构。这些节点计算输人信号的加权和,并且利用激活函数与加权和来计算并输出结果多数的神经网络是由分层的节点构建的。对于分层的神经网络,信号从输入层进人,然后通过隐藏层,最后从输出层离开。实际上,线性函数不能用作隐藏层的激活函数,这是因为线性函数使得隐藏层变为无效。然而在一些问题中,如回归问题,输出层节点可以采用线性函数根据训练数据去调整权重的方法叫做学习规则。有三种主要的误差计算算法,它们是随机梯度下降(SGD)算法、批量算法、小批量算法。
2021-03-24 17:41:56
384
原创 MDK与芯片的联系
程序执行的时候FLASH空间,code + RO data程序执行时SRAM空间,RW data + ZI data程序存储时占用空间,code + RO data + RW data在目录下打开命令行窗口,按shift+鼠标右键,>可以将信息输入到某个文件生成BIN文件有两种方法,D:\Program Files\Keil_v5\ARM\ARMCC\bin先将这个变量添加到环境变量下,目录根据安装路径修改利用MDK里的user选项卡输入命令后自动生成BIN文件,aft..
2021-02-19 18:32:46
279
原创 simulink时间不同步
现在问题是我用simulink在线调试电机,can信号发出延时太大,返回速度硬生生被逼成了方波在此参考了ke_ang大佬的博客https://blog.youkuaiyun.com/ke_ang/article/details/45747899顺带把下载网址copy过来了https://www.mathworks.com/matlabcentral/fileexchange/29107-real-time-pacer-for-simulinkhttps://www.mathworks.com/matlabc
2021-01-19 11:23:43
961
原创 代码整洁之道
代码整洁之道第二章 变量有意义的命名,int i不好避免误导 如0和o,1和l有意义的区分,看的出来意义,不要与其他重合使用读的出来的名称,不要自造词使用可搜索的名称,一个数或者一个字母搜索起来十分费劲避免使用编码,把类型或作用域编进名称里,徒然增加负担类名和对象应该是名词或名词短语,方法名应当是动词或动词短语别用双关语,例如add可以变成insert或者append使用所涉问题和解决问题领域的名称提供语境,便于理解名称第三章 函数函数第一条规则就是要短小函数应该只做一件事
2020-12-17 22:02:34
170
原创 STM32使用simulink编程
第一部分首先你要下载STM官方的32的simulink包 STM32-MAT网址链接然后解压出来进行安装,安装地址自行拟定,打开安装目录,你会看见startuop.bat文件,双击运行后会自动打开matlab点击设置路径,然后把你安装的那个文件夹添加进去,然后点击保存第一部分完成。第二部分打开你安装的cubemx,选择你的芯片型号,配置你需要的外设,我这里只配置了一个时钟,下载和LED然后配置你工程的名字,选择工程路径,选择你的MDK,然后在Code Generator勾选生成单独的
2020-10-30 17:05:15
5464
12
原创 AD问题
更新PCB出现Unknown PIN在设计-网络表-编辑网络,右键一个网络,清除所有网络、重新在原理图里Update导入PCB后,有的元器件距离遥远框选视野内所有元器件E+S+O,然后在点击工具栏排列工具里的在区域内排列器件...
2020-10-02 20:29:26
881
原创 Matlab基础
第一章Matlab的文件扩展名为.m,也叫M文件Matlab一行写不开使用续航符,行末加“ ”后加“…”,即可在下一行继续输入查看历史命令:在布局里的历史命令,或者命令窗口按↑Matlab命令窗口运行的所有命令都共享一个工作空间,共享所有的变量帮助命令which bode,显示bode的位置lookfor bode,显示所有与bode有关的函数信息想了解某个目录下有多少函数,what(‘目录’)help bode,显示bode函数的用法第二章运算符加法和乘法数组定义X=[
2020-09-21 20:00:39
3151
原创 PCB设计基础概念
π型滤波设计晶体电路设计多采用π型滤波设计注意一下几点布局紧凑,放置在主控同一侧,靠近主控IC布局尽量使电容分支要短,目的是为了减少寄生电容晶振电路采用π型滤波形式,放在晶振前面要远离大功率的元器件等发热期间电磁兼容控制策略传输通道抑制:具体有滤波、屏蔽、搭接、接地、布线空间分离:地点位置控制、自然地形隔离、方位角控制、电场矢量方向控制时间分隔:时间公用准则、雷达脉冲同步、主动时间分隔、被动时间分隔频率管理:频率管制、滤波、频率调制、数字传输、光电转换电气隔离:变压器隔离
2020-09-18 22:12:22
2800
原创 Numpy菜鸟教程小结
创建一个ndarray数组numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)object:数组或嵌套的数列,dtype:数组元素的数据类型,ndmin:指定生成数组的最小维度numpy.asarray(a, dtype = None, order = None)numpy.asarray 类似 numpy.array,但 numpy.asarray参数只有三个,比nu.
2020-08-07 23:12:40
1663
原创 liunx安装dlib库
sudo apt-get install build-essential cmakesudo apt-get install libgtk-3-devsudo apt-get install libboost-all-devstep pip install dlib
2020-07-19 23:17:19
272
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关注的人