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

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.hqwc.cn/news/115229.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Quartz 建表语句SQL文件

SQL文件在jar里面,github下载 https://github.com/quartz-scheduler/quartz/releases/tag/v2.3.2 解压,sql文件路径:quartz-core\src\main\resources\org\quartz\impl\jdbcjobstore tables_mysql_innodb.sql # # In your Quartz propertie…

Python150题day09

③多条件分支 使用input函数接收用户的输入数据,如果用户输入python,则输出90,如果用户输入java.输出95,如果用户输入php,输出85,其他输入,程序输出0 解答: if...elif...else val…

七天学会C语言-第三天(循环语句)

1. 用 while 语句循环做数学运算&#xff1a; 使用while语句&#xff0c;您可以创建一个循环&#xff0c;它会重复执行一段代码&#xff0c;直到指定的条件不再满足。 例 1&#xff1a; 求 246100。 #include <stdio.h>int main() {int n 1, sum 0, a 2;while (n &…

xp 系统 安装 python 2.7 ide pip

1 下载python http://www.python.org/ftp/python/ python-2.7.2.msi 安装完需要设置环境变量 2 下载 setuptools setuptools-0.6c11.win32-py2.7.exe https://pypi.tuna.tsinghua.edu.cn/simple/setuptools/ 3 下载 pip &#xff0c;python 2.7 最高支持 pip 20.3.4 https:…

外包干了2个月,技术退步明显.......

先说一下自己的情况&#xff0c;大专生&#xff0c;18年通过校招进入武汉某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

基于SpringBoot+Vue的MOBA类游戏攻略分享平台

1 简介 MOBA类游戏攻略分享平台&#xff0c;为用户随时随地查看游戏攻略信息提供了便捷的方法&#xff0c;更重要的是大大的简化了管理员管理MOBA类游戏攻略信息的方式方法&#xff0c;更提供了其他想要了解MOBA类游戏攻略信息及运作情况以及挑选方便快捷的可靠渠道。相比于传…

Redis应用(8)——Redis的项目应用:结合SpringBoot如何在Redis里面存对象 RedisUtil工具类的封装 遇到的问题

前言 Redis作为一款优秀的开源、高效的内存数据库&#xff0c;在各种项目中都能见到其身影&#xff0c;熟练使用Redis是程序员必备的技能之一。本系列博客结合应用场景&#xff0c;阐述Redis从安装到使用的&#xff0c;从入门到进阶的相关内容。 本篇博客介绍在Spring项目中&…

华为云云耀云服务器L实例评测|2核2G跑mysql性能测试

前言 上一次我们介绍了华为云云耀云服务器L实例的基本信息&#xff0c;从购买到特色都做了简要介绍。但是 很多人看到这个配置又产生了迟疑&#xff0c;主要是因为云耀现在提供的全系是2核&#xff0c;性能吃得消吗&#xff1f;今天我们就来做一个性能测试 环境准备 因为我们…

2023-9-22 没有上司的舞会

题目链接&#xff1a;没有上司的舞会 #include <cstring> #include <iostream> #include <algorithm>using namespace std;const int N 6010;int n; int happy[N]; int h[N], e[N], ne[N], idx; bool has_father[N];// 两个状态&#xff0c;选该节点或不选该…

如何学好CTF

如何学好CTF CTF&#xff08;Capture The Flag&#xff09;是一种网络安全竞赛&#xff0c;需要参赛者解决各种加密、漏洞利用和数字取证等挑战。想要学好CTF&#xff0c;以下是一些建议&#xff1a; 1.学习基础知识&#xff1a;CTF竞赛需要掌握的基础知识包括操作系统、网络…

数据可视化 -- ECharts 入门

文章目录 引言1. ECharts的基本使用1.1 ECharts的快速上手1.2 相关配置讲解 2. ECharts常用图表2.1 图表1 柱状图2.1.1 柱状图的实现步骤2.1.2 柱状图的常见效果2.1.3 柱状图特点2.1.4 通用配置 2.2 图表2 折线图2.2.1 折线图的实现步骤2.2.2 折线图的常见效果2.2.3 折线图的特…

指标收集与分析:打造可观测性平台的关键技术【文末送书】

文章目录 写在前面兼容全域信号量所谓全域信号量有哪些&#xff1f;统一采集和上传工具统一的存储后台自由探索和综合使用数据好书推荐 写作末尾 写在前面 随着可观测性理念的深入人心&#xff0c;可观测性平台已经开始进入了落地阶段&#xff0c;它的先进性已经毋庸置疑&…