一种简易CAN数据分析器的实现(一)【工程创建+CAN波特率计算工具】

程序实现详见《一种简易CAN数据分析器的实现(二)【程序实现】》

微信公众号关注:掌芯元器,免费为大家提供嵌入式相关的技术咨询!!!

目录

一、功能需求及实现

   1、功能设计及实现

   2、软硬件需求

        (1)软件需求

        (2)硬件模块需求

   3、硬件框图

二、通过STM32CubeMX创建工程

   1、点击STM32CubeMX图标打开软件;

   2、点击新建工程;

   3、选择MCU型号,创建相关的工程;

   4、选择程序烧录方式;

   5、开启外部高速时钟;

   6、配置时钟树;

   7、配置CAN外设参数;

   8、CAN外设引脚更换;

   9、CAN外设中断使能;

   10、USART1外设使能及参数配置;

   11、USART1外设中断使能;

   12、中断优先级配置;

   13、GPIO运行指示灯配置;

   13、工程配置;

三、STM32_CANBaudRate工具的使用

   1、工具下载

   2、界面介绍

一、功能需求及实现

   1、功能设计及实现

        本次例程制作的简要CAN数据分析仪,主要帮助大家,在条件有限的开发环境中,自己通过常见的简单应用电路,即可实现CAN数据的监控和发送。主要功能为:通过电脑上的串口调试助手,监控CAN数据和发送CAN数据。本例程只是实现简单的CAN 标准数据帧的发送和监控,例程功能比较单一,实现也是非常简单,因此根据大家反响,决定后期是否开源全功能的CAN数据分析仪的小项目。

   2、软硬件需求

        (1)软件需求

                ①、STM32CubeMX 和 Keil 软件的使用;

                ②、C语言基础知识;

                ③、HAL库的基础掌握;

        (2)硬件模块需求

                ①、单片机最小系统(以STM32F103CBT6为例);

                ②、CAN收发模块;

                ③、USB转串口模块;

   3、硬件框图

二、通过STM32CubeMX创建工程

   1、点击STM32CubeMX图标打开软件;

   2、点击新建工程;

   3、选择MCU型号,创建相关的工程;

   4、选择程序烧录方式;

   5、开启外部高速时钟;

   6、配置时钟树;

   7、配置CAN外设参数;

        (1)CAN通信速率设置为:500Kbit/s;(这里要与你要监测的总线波特率匹配,当然波特率的设置完全可以拿出来,通过电脑直接设置,用来匹配不同的波特率匹配需求,本例程为简要例程,未带波特率实时匹配功能)

        (2)CAN波特率参数配置,具体界面介绍及使用详见第2小节;

        (3)发送邮箱优先级的使能:通过参考手册我们知道,CAN外设具有三个发送邮箱,我们使用邮箱对外发送数据的时候,当使能发送邮箱优先级的时候,数据的发送顺序会按照我们程序中邮箱的顺序发送;如果不使能,则按照默认的012顺序发送。

   8、CAN外设引脚更换;

        在外设栏使能CAN外设之后,软件自动使能默认引脚,但是与硬件原理图引脚不匹配,需要更换引脚为PB8\PB9。

        操作步骤:直接点击图形界面的PB8/PB9引脚,选择CAN功能即可自动切换。

   9、CAN外设中断使能;

   10、USART1外设使能及参数配置;

   11、USART1外设中断使能;

   12、中断优先级配置;

   13、GPIO运行指示灯配置;

        具体GPIO的配置不具体介绍了,详见下图配置后的图形化界面显示情况。

   13、工程配置;

        外设相关的参数已经配置完成,最后进行工程配置即可。

三、STM32_CANBaudRate工具的使用

   1、工具下载

        下载链接为:https://download.csdn.net/download/zxyq_2024/89737969

   2、界面介绍

        ①:CAN外设挂载总线的时钟频率。

        从数据手册的总线框图中可以看到,CAN外设挂载在APB1总线上,回到刚才我们CubeMX配置的时钟树,APB1时钟频率为36Mhz;

        ②:CAN总线波特率。

        ③:采样点设置,与总线协议中的位时序有关,具体自己查看一下CAN协议,这里不再详解。

        采样点的设置可以参考⑥中的介绍:

  • 当CAN 通信波特率大于等于 800 kbit/s 时,采样点推荐位置是在位时间段的 75%;
  • 当CAN 通信波特率大于 500 kbit/s,小于 800 kbit/s 时,采样点推荐位置是在位时间段的 80%;
  • 当CAN 通信波特率小于等于 500 kbit/s 时,采样点推荐位置是在位时间段的87.5%;

        ④:生成计算。

        ⑤:选择一个填到参数中即可,对应关系见下图。

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

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

相关文章

GitLab CI Runner安装

参考文章:[花了两天,搞了Gitlab-Runner CI/CD实现自动化部署,可比Jenkins香太多啦!!!!_gitlab的cicd取代jenkens-CSDN博客] Gitlab的CI需要安装CI专用的GitLab Runner,否则跑不起来…

优秀的安防视频监控平台应该具备怎样的视频编解码能力?

随着安防技术的飞速发展,监控平台作为保障公共安全、维护社会秩序的重要工具,其性能与效率日益成为行业关注的焦点。其中,监控平台的视频编码能力在视频监控系统中扮演着至关重要的角色,视频编码技术作为监控系统的核心组成部分&a…

基于JAVA+SpringBoot+Vue的中药实验管理系统

基于JAVASpringBootVue的中药实验管理系统 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末附源码下载链接🍅 哈…

探究文本完全对齐技术:从理论到代码

文本完全对齐算法解析与实现 引言 在编辑文档、设计书籍版面或网页时,通常需要将文本进行格式化对齐,以提升视觉吸引力和易读性。 一种广泛采用的对齐技术是所谓的“完全对齐”,这意味着文本的每一行的起始和结束位置都要对齐整齐。 虽然许多…

湖仓一体-Paimon篇-简介

什么是Paimon? 2021年末,Flink官方提出打造一个全新的存储 Flink Table Store,一个 Flink 完全内置的存储。 为了让 Flink Table Store 能够有更大的发展,Flink PMC经过讨论决定将其捐赠Apache进行独立孵化。 2023 年 3 月 12 日…

《信息系统安全》课程实验指导

第1关:实验一:古典密码算法---代换技术 任务描述 本关任务:了解古典密码体制技术中的代换技术,并编程实现代换密码的加解密功能。 注意所有明文字符为26个小写字母,也就是说字母表为26个小写字母。 相关知识 为了完…

声音之旅:2024四大必备音乐剪辑软件盘点!

音乐剪辑,作为一种艺术形式,让每个人都能够成为自己音乐故事的导演。今天,我们将探索几款优秀的音乐剪辑工具,它们分别是福昕音频剪辑、Audio Trimmer、Ocenaudio和闪电音频剪辑。 福昕音频剪辑 直达链接:www.pdf365…

Vue路由:Vue router

目录 路由的基本概念 1. 路由 2. 单页应用SPA 3.前端路由的实现方式 3.1Hash模式 3.2History模式 Vue router 4 1.概述 2.安装使用 3.基础用法 3.1路由匹配规则声明 3.2动态路由匹配 3.3路由命名 3.4路由重定向 3.5路由嵌套 3.6命名视图 3.6声明式导航&编程…

【数模】ARIMA时间序列预测模型(python代码)

期待今晚的莎莎和大头😎! 🏆🏆🏆 愿巴黎登顶💜 正文开始 主要是跟着实战:时间序列模型(五):时间序列案例_实现销售额预测 💜本人是我们组的编程手,本博客只…

Origin2024中绘制多因子分组柱状图,直观展示不同组别内的数据变化!

当我们需要对比多组平行数据时,采用Origin多因子分组柱状图,不仅可以直接的对比多组数据,同时还能够直观展示各个指标因子的数据变化及趋势 操作步骤: 1、先打开Origin2024软件,然后在Book1中输入如下示例数据&#…

移动训练馆:青少年体能提升的全新选择—轻空间

青少年的体能发展与综合素质提升正成为家长和学校的关注重点。随着学校和社会对体育锻炼要求的提升,如何为青少年提供便捷、高效的训练环境,成为各方关注的焦点。在这一背景下,移动训练馆应运而生,以其便捷建造、灵活移动、无需报…

基于vue框架的城市网约车管理系统v34td(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能:用户,司机,订单评价,完成订单,司机接单,打车订单 开题报告内容 基于Vue框架的城市网约车管理系统开题报告 一、研究背景与意义 1.1 研究背景 随着城市化进程的加速和互联网技术的飞速发展,网约车服务作为一种新兴的出行方…

从基础到进阶:利用EasyCVR安防视频汇聚平台实现高效视频监控系统的五步走

随着科技的飞速发展,视频监控技术在社会安全、企业管理、智慧城市构建等领域扮演着越来越重要的角色。一个高效智能的视频监控管理系统不仅能够提升监控效率,还能在预防犯罪、事故预警、数据分析等方面发挥巨大作用。 一、需求分析 在设计视频监控管理…

vue项目 - uniapp分享配置 - 不同环境下的分享按钮梳理

效果 详情 uniapp 分享 app环境 手册 https://uniapp.dcloud.net.cn/api/plugins/share.html * wx 微信好友 [uni.share图文线上图文字 || 纯图本地base64图] * pyq 朋友圈 [uni.share图文线上图文字, || 纯图本地base64图] * qq QQ [uni.share图文线上图…

element-ui打包之后图标不显示,woff、ttf加载404

1、bug 起因 昨天在 vue 项目中编写 element-ui 的树形结构的表格,发现项目中无法生效,定位问题之后发现项目使用的 element-ui 的版本是 2.4.11 。看了官方最新版本是 2.15.14,然后得知 2.4.11 版本是不支持表格树形结构的。于是决定升级 el…

NLTK:一个强大的自然语言处理处理Python库

我是东哥,一名热爱技术的自媒体创作者。今天,我将为大家介绍一个非常有趣且强大的Python库——NLTK。无论你是刚刚接触Python的小白,还是对自然语言处理(NLP)有些许了解的朋友,NLTK都是一个值得学习的工具。…

考研资讯平台

你好呀,我是计算机学姐码农小野!如果有相关需求,可以私信联系我。 开发语言:Java 数据库:MySQL 技术:SpringBoot框架 工具:IDEA/Eclipse、Navicat、Maven 系统展示 首页 学生前台 管理员后…

ARM32开发——DMA

🎬 秋野酱:《个人主页》 🔥 个人专栏:《Java专栏》《Python专栏》 ⛺️心若有所向往,何惧道阻且长 文章目录 基础概念CPURAM外设 ARM32程序存储 执行过程取数据 执行操作流程总结 基础概念 CPU CPU(Central Processing Unit&am…

基于SpringBoot的物流管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 基于JavaSpringBootVueMySQL的物流管理系统【附源码文档】、…

【Python】成功解决ValueError: could not convert string to float: ‘ignoring input’

【Python】成功解决ValueError: could not convert string to float: ‘ignoring input’ 🌈 欢迎莅临我的个人主页👈这里是我深耕Python编程、机器学习和自然语言处理(NLP)领域,并乐于分享知识与经验的小天地&#xf…