【Stm32】【Lin通信协议】Lin通信点亮灯实验

news2024/11/25 9:42:43

Lin通信点亮灯实验

通过STM32的串口发送数据,然后通过串口转换模块将数据转换成LIN(Local Interconnect Network)协议,最终控制点亮灯。需要工程和入门资料的可以私信我,看到了马上回。
入门书本推荐: 在这里插入图片描述

在这里插入图片描述

一、Lin协议 帧结构

在这里插入图片描述
在这里插入图片描述

二、代码讲解

这个结构写成代码如下:

  1. 同步间隔段(Break Field)是至少(注1)持续 13 位(以主机节点的位速率为准)的显性(低电平)电平,直接用hal库自带的HAL_LIN_SendBreak函数就行啦;
  2. 同步段(Sync Byte Field)LIN 同步以下降沿为判断标志,采用字节 0x55(转换为二进制为 01010101b);
  3. 受保护的ID,是用函数计算出来的 把从厂家那得到的设备ID,我这里是0X03,传入函数,计算得出受保护的ID;
    在这里插入图片描述
    在这里插入图片描述
  4. 数据段,从厂家那得到的点灯报文0x01,0x10,0xFF,0xFF,0x10,0x05,0x05,0x05(每种设备的不同);
  5. 校验和段,传入参数计算得到;
    在这里插入图片描述
    在这里插入图片描述

三、while函数

通过STM32的串口发送数据,然后通过串口转换模块将数据转换成LIN(Local Interconnect Network)协议,最终控制点亮灯。

在这里插入图片描述

四、注意点

1、Lin通信需要设置正确的波特率;

我是这么做的,在确保串口可以发送,Lin信息口有信号的(通信打通了)前提下,使用逻辑分析仪(示波器也行),测出了它接收的波特率,然后设置对应串口波特率。

利用逻辑分析仪测波特率

波特率就是每秒能发送多少个位,计算器算一下 1÷53 差不多是 0.1887,而 1s = 10^6us,乘一下18870差不多,波特率就设为19200(有误差嘛)。然后我灯就点亮了。
在这里插入图片描述

测一下前面的显性电平的数量

在这里插入图片描述
四舍五入,没错,是13个。
在这里插入图片描述

2、间隔段的发送前要设置 显性电平数量;

HAL_LIN_Init() 中的13 就是设置13个显性电平,我测过,没有这句,它只会产生10个,不符合要求,灯点不亮。这句是配合下面那个sendbreak 一起用的。

每天进步一点点 如果我的试错经历有帮到你,可否赏点买辣条的钱hhh(大爷 行行好 看着给点叭 意思意思 ^ .^)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1024130.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

spring boot 3 + spring cloud sleuth 无法注入Tracer问题

1.背景: 由于升级springboot版本到3.1.0后,导致原先的plumelog的traceId获取方式失败。 Autowiredprivate Tracer tracer; 项目启动报错,无法找到tracer bean实例。 2.解决: 前往spring cloud sleuth官网,发现此项…

Python入门自学进阶-Web框架——41、初步了解Celery 分布式队列、识堡垒机、自动发布、配置管理系统

Celery是一个基于Python开发的分布式异步消息任务队列,可以轻松的实现任务的异步处理 实例场景: 对100台机器执行一条批量命令,可能会花很长时间 ,但不想让你的程序等着结果返回,而是给你返回 一个任务ID,经过一段时间只需要拿着…

adb操作及常用命令

问题:no devices/emulators found:adb devices 没有连接的设备 解决方案: 大概率是因为usb调试功能没有打开,可以查看手机设备是否开启usb调试功能 Android若未开启,可通过设置-关于手机,连续点击版本号7…

以矩阵的形式,对点或线段或多边形绕固定点旋转方法

一、仅旋转 ,其中x,y旋转前横纵坐标,x’,y’为旋转后横纵坐标。θ旋转角度,单位为弧度。 等价于:x’ xcosθysinθ,y’-xsinθycosθ 注:此矩阵仅为旋转矩阵,不包含平移和缩放。 二、旋转平…

【IDEA】解决使用Terminal窗口按ESC键无法退出Vi的问题

背景 我们经常在IDEA中使用Terminal终端操作命令行,一般来说没问题,但使用与vi有关的命令时,需要按ESC键退出编辑,但在IDEA中会跳到编辑窗口,造成这个问题的原因是与IDEA的快捷键有关。 打开Setting设置 在左上角搜…

Spring Boot2.7生成用于登录的图片验证码

先在 pom.xml 注入依赖 <dependency><groupId>com.github.penggle</groupId><artifactId>kaptcha</artifactId><version>2.3.2</version> </dependency>然后 需要在配置文件中声明一下DefaultKaptcha 的 bean对象 然后 我们…

[NPUCTF2020]ReadlezPHP 反序列化简单反序列

题目还是挺简单的 看代码 访问一下 一看就是反序列化 看看执行主要是 echo $b($a) 那就是$b是命令 $a是参数 这里还要fuzz一下 因为system不能执行 所以我们可以使用其他命令执行 函数 例如 assert 我们看看如何构造 public $a;public $b;public function __construct(){…

Android12之强弱智能指针sp/wp循环引用死锁问题(一百六十六)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药. 更多原创,欢迎关注:Android…

使用香橙派学习 Linux的守护进程

Q&#xff1a;什么是守护进程 A&#xff1a;Linux Daemon&#xff08;守护进程&#xff09;是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行 某种任务或等待处理某些发生的事件。它不需要用户输入就能运行而且提供某种服务&#xff0c;不是对整个系统就是对某个…

MacOS如何降级旧版本?macOS降级,从 Ventura 13.0至Monterey 12

MacOS系统卡怎么办❓降级安装详细教程来了&#x1f495;&#xff0c;超详细的MacOS系统降级教程 如何使用Time Machine Backup&#xff08;时间机器备份&#xff09;降级macOS 如果您有备份&#xff0c;则此方法适合您。否则&#xff0c;您可以尝试下面提到的其他方法。 1.将…

Mybatis深度解析:从起源到现代应用的全景视角

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

web自动化测试 —— cypress测试框架

一、cypress简介 基于 JavaScript 的前端测试工具可以对浏览器中运行的任何内容进行快速、简单、可靠的测试对每一步操作都支持回看覆盖了测试金字塔模型的所有测试类型【界面测试&#xff0c;集成测试&#xff0c;单元测试】底层协议不采用 WebDriver > Cypress官网&#…

Apache shenyu,Java 微服务网关的首选

微服务网关的产生背景 当我们系统复杂度越来越高&#xff0c;团队协作效率越来越低时&#xff0c;我们通常会想到通过"拆分"来应对&#xff0c;这是典型的"化繁为简&#xff0c;分而治之"的思想。在落地过程中&#xff0c;我们通常会引入"SOA"或…

uqrcode+uni-app 微信小程序生成二维码

使用微信小程序需要弹出动态二维码的需求&#xff0c;从插件市场选了一个下载次数较多的组件引入到项目中uqrcode&#xff0c;使用步骤如下&#xff1a; 1、从插件市场下载 插件地址&#xff1a;https://ext.dcloud.net.cn/plugin?id1287&#xff0c;若你是跟我一样是用uni-…

用PHP异步协程控制python爬虫脚本,实现多协程分布式爬取

背景 公司需要爬取指定网站的产品数据。但是个人对python的多进程和协程不是特别熟悉。所以&#xff0c;想通过php异步协程&#xff0c;发起爬取url请求控制python爬虫脚本&#xff0c;达到分布式爬取的效果。 准备 1.准备一个mongodb数据库用于存放爬取数据2.引入flask包&a…

Cesium 生成点位坐标

文章目录 需求分析1. 点击坐标点实现2. 输入坐标实现 需求 用 Cesium 生成点位坐标&#xff0c;并明显标识 分析 以下是我的两种实现方式 第一种是坐标点击实现 第二种是输入坐标实现 1. 点击坐标点实现 //点位坐标getLocation() {this.hoverIndex 0;let that this;this.view…

【FAQ】安防视频监控平台EasyNVR无法控制云台,该如何解决?

TSINGSEE青犀视频安防监控平台EasyNVR可支持设备通过RTSP/Onvif协议接入&#xff0c;并能对接入的视频流进行处理与多端分发&#xff0c;包括RTSP、RTMP、HTTP-FLV、WS-FLV、HLS、WebRTC等多种格式。在智慧安防等视频监控场景中&#xff0c;EasyNVR可提供视频实时监控直播、云端…

网络代理工具软件Proxyman mac中文版功能特点

Proxyman mac是一款网络代理工具软件&#xff0c;适用于Mac和iOS平台。它可以帮助开发人员、测试人员和网络管理员监控和调试网络流量。 Proxyman mac软件功能和特点 流量捕获和监控&#xff1a;Proxyman可以捕获并显示设备上的所有网络流量&#xff0c;包括HTTP、HTTps和WebSo…

Android之MediaCodec::PostAndAwaitResponse消息原理(四十三)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药. 更多原创,欢迎关注:Android…

vscode自动添加文件和函数注释

自动添加注释 Doxygen Documentation Generator配置配置选项介绍配置文件头注释配置函数头注释 Doxygen Documentation Generator 此插件是vscode自动注释添加的插件&#xff0c;首先需要在vscode中查找并安装插件。如下图所示&#xff0c;插件在未安装的情况下会显示蓝色的In…