自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 git常用命令总结

将暂存区文件提交到本地库。

2023-09-28 21:02:14 222 1

原创 A2l文件解析

A2L 文件包括:设备参数信息、接口数据信息和 ECU 参数信息。: 描述了 ECU 的基本信息和 ECU 数据单元的一些公共属性;: 描述了标定系统与 ECU 通信时所需配置的接口信息;:描述了内部数据单元的详细内容。

2023-09-14 21:28:21 2088

原创 AUTOSAR-存储基础知识

简称 MemIf,主要作用就是将读写的信息解耦,分别分派给 EEPROM 或 FLASH。

2023-09-14 19:32:59 524

原创 DBC文件解析

(3)MessageId/NodeName 表示进行注解的对象,若前面的对象类型是信号或者报文,则这里的值应为报文的ID(10进制数表示);若前面的对象类型为节点,则这里的值应为节点的名字;(6)Min|Max表示该信号的最小值和最大值,即指定了该信号值的范围;(2)MessageId为定义的报文ID,是以10进制数表示的;(4) ValueType :表示该信号的数值类型:+表示无符号数,-表示有符号数;(2)Object表示进行注解的对象类型,可以是节点“BU_”、报文“BO_”、消息”SG_”;

2023-09-12 16:25:42 1449 2

原创 AUTOSAR-UDS诊断

从图中可以看出,诊断服务属于 AutoSAR 服务层,诊断数据流通过CAN驱动CANIF 层 CANTP PDUR DCM 给到 DCM 模块,DCM 模块处理诊断数据,并执行对应的具体诊断服务。Diagnostic Communication Manager,诊断通信管理。实现具体的诊断协议,比如 UDS、 OBD。这里具体定义了各种不同的诊断服务,比如读取 ECU 故障码、写入 DID 数据等。

2023-09-12 10:48:47 2061

原创 AUTOSAR CAN-Tp协议

CAN诊断由发送端的请求与接收端的响应构成,诊断即为发送端与接收端数据往来。有的诊断一条消息完成,有的诊断需要多条消C息完成,毕竟在诊断中,一条 CAN 消息只包含 8 个字节长度。对于一条 CAN 诊断消息的分段发送问题,即为网络层需要讨论的内容。CanTp 层传输的报文分为 SF(单帧)、 FF(首帧)、 CF(连续帧)、 FC(流控帧) 4 类。

2023-09-08 08:40:52 1562

原创 AUTOSAR-BSW层概述

ECU上面除了主芯片MCU,还有很多外围设备,比如外置Flash,外置电源管理芯片等等。是对MCU 芯片的抽象和封装,由于Autosar Cp 是基于MCU 的软件架构,所以该层主要是实现MCU 外设驱动,比如I/O驱动、Flash 驱动、Can 驱动、看门狗驱动、定时器驱动等等。这里可以看到 BSW 主要提供了:看门狗服务 ,存储服务,通信和诊断服务,OS服务,I/O 功能,BswM 和 EcuM 等模式管理功能。看门狗服务:提供看门狗功能,检测 MCU,当 MCU 挂死的时候可以进行复位重启。

2023-09-05 09:17:45 2898

原创 STM32定时器参数详解

是用于配置定时器(Timer)的基本参数的结构体类型。在使用定时器时,我们需要对其进行初始化和配置,以确定定时器的工作模式、时钟源、分频系数、计数周期等参数。它的作用是调整定时器的计数速度TIM_Period。

2023-06-28 17:28:38 2353

原创 STM32FreeRTOS操作系统移植

链接:https://pan.baidu.com/s/1_87VQAWXUl4jTqSCZ0MFjw?9.新建SYSTEM文件夹,将从网上模板中的文件添加进来,这一步主要是添加sys.c文件。8.将FreeRTOSConfig.h粘贴进FreeRTOS/include路径下。6. 在FreeRTOS_PORRTTABLE目标下添加以下两个文件。2.把源码source里面的文件全部粘贴进FreeRTOS文件夹中。5.在FreeRTOS_CODE目录下添加以下文件。1.在工程中新建FreeRTOS文件夹。

2023-06-13 11:30:54 490

原创 Linux/树莓派把网络代理设置到本机

3.查看网络代理设置是否生效,可以通过浏览器访问一个需要科学上网的网站来验证。如果网站可以正常访问,说明代理设置成功。手动设置网络代理,其中xxx.xxx.xxx.xxx为代理服务器的IP地址,port为代理服务器的端口号。再次输入netstat这个命令,便可以看到所有所动链接了,其中有冒号的信息就是所有端口的信息。2.在树莓派上查看网络代理,如果输出了一些类似于。1.在Windows上查看本机的IP地址和端口号。的信息,说明你的网络代理已经设置好了。

2023-06-08 14:17:14 1695 1

原创 树莓派安装python3.9以及pip换源

安装编译Python需要用到的环境下载Python源码解压压缩包,并进入该目录配置编译(调用四核来编译,这一步很漫长,大概30分钟左右)make -j4安装查看当前软链接指向的python版本删除原来的软连接在/usr/bin/目录创建软连接 python,定向/usr/local/bin/python3.9检查python版本是否是3.9。

2023-06-07 16:41:03 4933 4

原创 树莓派安装homeassistant

安装Docker的依赖项。添加Docker的GPG密钥。添加Docker的软件源。更新软件包列表。安装Docker。docker -v。

2023-06-04 20:07:44 1592

原创 C语言截取字符串

4.使用strtok函数,从指定字符后截取数据。代码功能:从字符串开头,截取指定长度的字符。代码功能:从字符串末尾,截取指定长度的字符。代码功能:查找字符串中是否包含字符"s"代码功能:截取字符"d"后的所有数据。1.从左边截取指定长度的字符串。2.从右边截取指定长度的字符串。3.利用strstr查找字符串。

2023-03-25 16:14:49 14571 1

原创 STM32串口中断接收到的16进制数据如何判断

这款摄像头通过串口发送的是16进制数据,按下前进发送0x01,后退发送0x02......以此类推。因为之前通过串口中断实现过上位机发送指定字符从而控制LED亮灭的实验,因此我通过接收指定字符的方法来判断接收到的16进制数据。最近用到了一款WIFI摄像头,这款摄像头可以通过手机app控制,从而使串口发送指定的数据,这样会以来就可以通过这款摄像头在手机app上控制小车的前后左右,还可以实现无线图传的功能。实验后发现串口中断通过字符串点灯的方法对于接收并判断16进制数据同样有效。

2023-03-11 14:53:41 1497

原创 交叉编译的概念及交叉编译工具的安装

交叉编译是指将一种编程语言编写的程序编译成另一种编程语言的程序,通常是在不同的操作系统或硬件环境中使用的。这种编译过程会产生一个或多个二进制文件,它们可以在另一个操作系统或硬件环境中运行。简而言之就是在一个平台上生成另一个平台的可执行代码。

2023-02-14 10:32:30 1776 1

原创 香橙派Orangepi Zero2控制舵机转动

向黄色信号线“灌入”PWM信号。PWM波的频率不能太高,50hz,即周期=1/频率=1/50=0.02s,20ms左右数据: 不同的PWM波形对应不同的旋转角度,以20ms为周期,50hz为频率的PWM波。所以定时器需要定时20ms,关心的单位是0.5ms, 20ms = 0.5ms * 40。功能:分别输入1,2,3,4,5,对应控制舵机转动0,45,90,135,180度。

2023-02-06 16:46:25 1096

原创 Linux时间函数与定时器简介

(1)相关函数(2)函数作用:gettimeofday()会把目前的时间用tv结构体返回,当地时区的信息则放到tz所指的结构中,第二个参数是一个时区结构,已经过时了,所以tz参数通常应该指定为NULL。(3)代码示例:计算程序在当前环境中数数10万次耗时多少。

2023-02-06 15:49:13 814

原创 香橙派 Orangepi Zero2配置网络SSH登录

1.命令扫描周围的WIFI热点。用ifconfig获取IP地址。4.输入密码后就OK了。

2023-02-03 16:30:11 1011

原创 树莓派摄像头使用方法

打开之后,重启树莓派sudo reboot。

2023-01-19 11:22:30 7053

原创 基于翔云人工智能平台的人脸识别开发

翔云人工智能平台提供了许多识别类的项目,不用开发者去研发各种识别算法,只需要接收服务器返回的数据即可,大大减少开发难度。登录翔云,注册登录后购买人脸识别产品。查看人脸识别的API文档,它提供了接口地址和请求方式,还有请求的参数。要注意的是img1和img2图片的格式是base64流,base64流简单来说就是将图片二进制数据通过Base64编码成字符串类型数据。参数中的secret和key在个人信息主页中可以查看到。

2023-01-15 17:04:46 237

原创 安装openssl使libcurl支持https的访问

首先如果你的操作系统没有事先安装过openssl,需要先下载安装openssl。编译成功,记得编译时要链接头文件和动态库。

2023-01-15 10:17:19 226

原创 libcurl库及curl API的简介

libcurl是一个跨平台的网络协议库,支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议。libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传, HTTP基本表单上传,代理,cookies,和用户认证。libcurl的官网libcurl库下载调用curl_global_init()初始化libcurl调用curl_easy_init()函数得到 easy interface型指针。

2023-01-13 19:44:02 866

原创 http协议的简单总结

http协议是建立在TCP/IP协议之上应用层协议,默认端口为80,8080http协议的的特点是无状态,无连接(短连接)

2023-01-12 10:24:46 359

原创 Socket,TCP,HTTP之间的区别与联系

它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。应用层通过传输层进行数据通信时,TCP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个 TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了套接字(Socket)接口。

2023-01-11 15:18:26 460

原创 TCP协议的三次握手与四次挥手(附带常见面试题)

服务端每收到一次客户端请求后都会重新复位这个计时器,通常设置为两小时,若两小时还没有收到客户端的任何数据,服务器就会发送一个探测报文,以后每隔75秒发送一次,若连续发送10个探测报文后仍然没有反应,服务端就会认为客户端出了问题,接着就会关闭连接。服务端接收到FIN报文后,可能不会立马关闭,所以要先回复客户端一个ACK报文,告诉客户端:“你发的FIN报文我收到了”,只有等服务端所有的数据都发送完了,才可以回复FIN报文,因此不能一起发送,需要四次挥手。TCP的应用场景如传输文件,发送邮件,浏览网页等。

2023-01-09 16:44:31 1436

原创 树莓派mjpg-streamer实现监控功能

树莓派实现监控功能,调用mjpg-streamer库来实现。mjpg-streamer是一个开源的摄像头媒体流,通过本地获取摄像头的数据,通过http通讯发送,可以通过浏览器访问树莓派的IP地址和端口号就能看到视频流。

2023-01-08 16:31:22 1089 2

原创 树莓派换源教程

我们通常更新的是Raspbian源(raspbian这个源是由独立开发者维护的,与树莓派基金会并无直接联系。2.Stretch版的的源如下,选择一个粘贴即可(注意要把之前的源注释掉)。1.查看树莓派的版本:lsb_release -a。通常位于/etc/apt/sources.list。的版本,我们要根据不同的版本更新对应的源。Stretch和Jessie两个不同。Jessie的源如下。

2023-01-08 15:56:52 2160

原创 Labview+STM32无线温湿度采集

该项目采用泽耀科技的无线串口作为下位机,Labview+无线串口作为上位机读取下位机发来的数据并处理。泽耀科技的产品是我在开发过程中经常用到的,他们不仅产品做的非常不错,而且资料齐全售后也非常给力,后期有技术支持,大大减少开发难度。这个项目中就用到了泽耀科技提供的STM32的驱动代码,不仅有STM32的例程,还有STM8,51,arduino的都有,主流单片机的例程几乎全覆盖,非常友好!!!

2022-11-18 19:58:53 5018 3

原创 用labview写的串口助手打不开单片机的串口

问题:用labview写的串口助手打开单片机的串口一段时间后发现一直处于打开串口失败状态。换一个USB端口即可打开成功,但再过一段时间后又打开失败。但是用串口助手XCOM调试的时候,两边一直都可以通信。解决:在labview串口接收缓冲区溢出,程序未经过visa关闭,导致串口无法打开。visa成功关闭后,即可清除接收缓冲区溢出。

2022-10-26 10:16:05 2057

原创 基于LabView开发的串口助手

我们首先来实现串口助手的最基本的功能,打开与关闭。具体步骤如下:首先创建一个while结构,然后在里面创建两个布尔类型的确定按钮作为我们的打开串口按钮,和关闭串口按钮。在while结构中添加事件结构,并且将事件设置成如下。我们在打开串口事件中配置串口端口输入控件,波特率输入,禁止终止符。接着再继续配置清空缓冲区,避免接收数据错误。下面这里是实现点击开串口按钮之后,如果打卡成功该按钮变为灰色,并且指示灯亮起。

2022-10-11 22:10:28 9174 7

原创 学习笔记——LabView串口通信基础实验

1.VISA读取实验实验现象:使用labview发送指定字符串,在串口助手中查看到发送的字符串。准备工作:安装labview2021,visa21工具包,虚拟串口软件。

2022-10-08 20:57:44 9802

原创 学习笔记——工厂模式

​工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。​...

2022-08-31 11:22:01 191

原创 C语言——链表

链表是一种数据存放的思想,它与数组相比的优点是再删除或者增加某一个数据的时候非常灵活,数据的地址空间都是连续的,因此不太好改动。链表使用的本质就是让前一个结构体中存放下一个结构体的地址,这样多个结构体就联系在了一起。...

2022-08-28 12:17:07 809

原创 基于51单片机的多功能智能语音循迹避障小车

一.功能介绍及硬件准备这是一款基于51单片机开发的智能小车,通过这篇文章我会记录下来开发这款小车的全部过程,并且将该项目开源,想要的小伙伴可以在我主页的资源中进行下载。这款小车集成了循迹,避障,跟随,语音切换模式选择,并且将可以将车速显示到OLED屏幕上,也可以通过手机app蓝牙操控小车。(注:全文的代码采取分文件编程的写法)硬件准备小车底盘一个(两驱),5号4节电池盒一个,51单片机最小系统一个,超声波模块一个,SG90舵机一个,红外避障模块传感器两个,红外光电反射传感器两个,L9110S电机

2022-08-10 17:01:14 25396 16

原创 树莓派驱动代码的编译和测试

1.打开Linux内核源码树目录,进入linux-rpi-4.14.y/drivers/char,把驱动代码复制进来。2.进入Makefile ,并且修改 3.回到内核进行模块编译驱动,会生成一个.ko文件。 4.把这个.ko文件上传到树莓派(这里也可以使用FileZilla上传)5.编译测试代码 6.加载内核驱动 7.给驱动增加一个所有人可查看的权限 8.调用上层的测试程序 9.这个时候我们在上层是看不到任何信息的,因为我们用的是printk打印信息,printk将数据打印在了内核态。因...

2022-07-25 11:00:20 506

原创 Linux文件系统

1. 什么是文件系统?文件如何存储在存储设备上的方法我们称为文件系统。常规认知: 根目录文件系统是操作系统用于明确存储设备组织文件的方法。以上说的方法:就是文件管理系统(程序),简称文件系统2.文件系统(文件管理系统的方法)的种类有哪些?有FAT VFAT NTFS EXT1/2/3/4 HFS ....树莓派查看文件系统的命令:df -Tvfat : boot(bootloader, kernel)ext4 :根目录tmpfs : 内存文件系统3. 什么...

2022-07-22 16:30:37 669

原创 Linux内核镜像拷贝至树莓派并启动新内核

1.从GitHub上下载树莓派Linux内核,通过Vmware共享文件上传到Ubuntu中,用unzip解压。2.内核配置:3.编译j4:指定用多少电脑资源进行编译zImage:zImage生成内核镜像modules:modules要生成驱动模块dtbs:dtbs生成配置文件...

2022-07-19 17:15:20 679

原创 Vmware解决无法识别USB的问题

1.找到Vmware安装包,右键点击以管理员身份运行。2.点击修复3.等待修复完成4.重启电脑,问题解决。

2022-07-18 21:13:15 3443 3

原创 Ubuntu18-04安装教程

1.点击创建新的虚拟机;选择自定义。(安装Ubuntu18-0需要更高版的的VMvare,版本太低会安装失败)2.点击下一步

2022-07-09 20:38:32 1021

原创 基于wiringPi库的树莓派外设开发

一.wiringPi库基本概述在使用wiringPi库时,需要包含头文件 #include。凡是写wiringPi的程序,都包含这个头文件。使用wiringPi时,必须在执行任何操作前初始化树莓派,否则程序不能正常工作。

2022-07-06 16:46:53 405

空空如也

空空如也

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

TA关注的人

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