GD32 CAN波特率计算问题

2023-11-17

一、问题描述

以下是GD32F205 CAN0的配置代码,将CAN0的波特率设置为125kbps。其中影响波特率的几个关键参数为resync_jump_width、time_segment_1、time_segment_2和prescaler,下面就详细探讨下几个参数的关系。

can_parameter_struct        can_parameter;

can_parameter.time_triggered = DISABLE;
can_parameter.auto_bus_off_recovery = DISABLE;
can_parameter.auto_wake_up = DISABLE;
can_parameter.no_auto_retrans = DISABLE;
can_parameter.rec_fifo_overwrite = DISABLE;
can_parameter.trans_fifo_order = DISABLE;
can_parameter.working_mode = CAN_LOOPBACK_MODE;
/* configure baudrate to 125kbps */
can_parameter.resync_jump_width = CAN_BT_SJW_1TQ;
can_parameter.time_segment_1 = CAN_BT_BS1_5TQ;
can_parameter.time_segment_2 = CAN_BT_BS2_4TQ;
can_parameter.prescaler = 48;
can_init(CAN0, &can_parameter);

二、官方描述

GD32官方的描述入下,

简言之

 Baudrate=\frac{PCLK}{PSC*(SJW+BS1+BS2)}

因此

PSC=\frac{PCLK}{Baudrate*(SJW+BS1+BS2)}

由于PSC要为整数,所以在确定的波特率下,要选择合适的SJW、BS1和BS2。SWJ的取值范围为1~4,BS1的取值范围为1~16,BS2的取值范围为1~8。关于SWJ、BS1和BS2这三个参数的描述入下,建议详细阅读。

  

 三、例子

以下举几个例子

/*******************************************
 * PCLK时钟为60MHz,配置波特率为125kbps
 * 60000/((1+5+4)*48) = 125
 *******************************************/
can_parameter.resync_jump_width = CAN_BT_SJW_1TQ;
can_parameter.time_segment_1 = CAN_BT_BS1_5TQ;
can_parameter.time_segment_2 = CAN_BT_BS2_4TQ;
can_parameter.prescaler = 48;
can_init(CAN0, &can_parameter);

/*******************************************
 * PCLK时钟为60MHz,配置波特率为250kbps
 * 60000/((1+5+4)*24) = 250
 *******************************************/
can_parameter.resync_jump_width = CAN_BT_SJW_1TQ;
can_parameter.time_segment_1 = CAN_BT_BS1_5TQ;
can_parameter.time_segment_2 = CAN_BT_BS2_4TQ;
can_parameter.prescaler = 24;
can_init(CAN0, &can_parameter);

/*******************************************
 * PCLK时钟为60MHz,配置波特率为500kbps
 * 60000/((1+6+5)*10) = 500
 *******************************************/
can_parameter.resync_jump_width = CAN_BT_SJW_1TQ;
can_parameter.time_segment_1 = CAN_BT_BS1_6TQ;
can_parameter.time_segment_2 = CAN_BT_BS2_5TQ;
can_parameter.prescaler = 10;
can_init(CAN0, &can_parameter);

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GD32 CAN波特率计算问题 的相关文章

随机推荐

  • QT信号与槽机制解析

    信号 Signal 与槽 Slot 是Qt编程的基础 有了信号与槽的编程机制 在Qt中处理界面各个组件的交互操作时变得更加直观和简单 GUI程序设计的主要内容就是对界面上各组件的信号的响应 只需要知道什么情况下发射哪些信号 合理地去响应和处
  • 持续增加时间价值30条

    今天分享阅读 时间价值 第一章时的笔记 持续增加时间价值30条 1 当你认为时间在帮助自己的时候 就觉得他是自己的朋友 当你有了要做的事情 当你在确定的方向上往前走 那么时间是在累积我们的成果 就是在帮我们的忙 2 在大的时间面前不要做太小
  • [深入研究4G/5G/6G专题-45]: 5G Link Adaption链路自适应-1-总体架构

    目录 第1章 链路自适应技术概述 1 1 概述 1 2 链路自适应技术的类型 1 3 基本概念
  • 电信行业BOSS系统

    BOSS系统 是Business Operation Support System的简称 即业务运营支撑系统 通常所说的BOSS系统分为四个部分 计费及结算系统 营业与账务系统 客户服务系统和决策支持系统 BOSS系统从业务层面来看就是一个
  • 什么是 JSONP?

    前言 首先我们得先了解JSONP是怎么产生的 最开始跨域请求数据没有现在方便 Ajax直接请求普通文件存在跨域无权限访问的问题 然后聪明的程序员想出了一套非官方的解决办法 程序员发现凡是带有 src 这个属性的标签都拥有跨域的能力 比如 l
  • 自媒体创作审核不通过怎么办?教你一个小技巧,提高效率

    自媒体人是不是会遇到平台审核内容不通过的时候 遇到这个问题你是怎么解决的呢 是不是修改内容提交还是不通过 今天 教你一个小技巧 快速解决内容审核不通过的问题 提高发稿效率 很多自媒体新手不知道稿件还能不能进行质量检测 所以 有时候写的自媒体
  • [深入研究4G/5G/6G专题-24]: 5G NR开机流程4.2 - 随机接入应答消息MSG2的调度过程与上行同步、时间提前量TA通过PDSCH信道下发

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 目录 前言 前置条件 第1章 随机接入知识准备
  • UNIAPP中文字上下左右居中

    效果 index vue
  • Flutter drawer侧滑栏实现

    侧滑栏对于大部分App来说都是经常用到的 接下来我们来一步步的实现flutter的侧滑栏效果 这里需要使用flutter提供的 Drawer和DrawerHeader控件 DrawerHeader通常用作侧滑栏的头部控件 比如用户头像等 D
  • Vulnhub之Me-and-My-Girlfriend

    Vulnhub是一个很好的靶机平台 想看官网点这里 今天学习Me and My Girlfriend 点击这里下载哦 这个比较简单 入门学习 VMware和VirtualBox都可以导入 成功后如图 这里修改连接为NAT模式 然后就开始玩耍
  • Mybatis使用datetimepicker日期和时间插件查询时间范围

    使用说明 collectStartDate和setStartDate类型为Date 对应的创建时间在mysql中为varchar类型 一 下载和引入datetimepicker样式和js 二 页面代码 li li
  • ORA-12514: TNS:listener does not currently know of service requested in connect descriptor 已解决

    今天用Navicat Premium 连接 Oracle时报错了 报错信息 ORA 12514 TNS listener does not currently know of service requested in connect des
  • linux压缩文件夹命令 tar_每天一个Linux系统命令|tar

    名称 tar命令是Linux系统下最常用的打包命令 它不但可以对文件或者文件夹打包 还可以打包的时候同时压缩文件 用法描述 tar 选项 目标文件 源文件 压缩 tar 选项 压缩文件 解压 选项描述 如下是该命令的一些选项 按照使用频率进
  • 从零开始开发自己的类keras深度学习框架7:简易版word2vec

    认真学习 佛系更博 前面几章基本介绍了全连接神经网络和卷积神经网络的原理已经开发过程 本章开始将写一些自然语言处理相关的知识 当然 自然处理领域的知识点比图像处理的要复杂 抽象 可能要花更多时间来研究 首先 我们来了解一下word2vec
  • 基于协同过滤推荐+余弦相似度算法实现新闻推荐系统

    针对海量的新闻资讯数据 如何快速的根据用户的检索需要 完成符合用户阅读需求的新闻资讯推荐 本篇文章主要采用余弦相似度及基于用户协同过滤算法实现新闻推荐 通过余弦相似度算法完成针对不同新闻数据之间的相似性计算 实现分类标签 通过协同过滤算法发
  • CLIP视觉编码器

    VisionTransformer conv1 Conv2d 3 768 kernel size 16 16 stride 16 16 bias False ln pre LayerNorm 768 eps 1e 05 elementwis
  • 使用docker在基础镜像上集成tomcat

    当我们对基础镜像版本和tomcat版本有要求时 可以尝试自己集成所需的镜像 不必每次都去拉取其他人提供的镜像 然后在此基础镜像上部署自己的应用 目标版本 基础镜像版本 ubuntu 16 04 JDK版本 jdk1 8 0 191 tomc
  • gitlab-建代码仓库

    一 生成 添加SSH公钥 你可以按如下命令来生成 sshkey ssh keygen t ed25519 C xxxxx xxxxx com 这里的 xxxxx xxxxx com 只是生成的 sshkey 的名称 并不约束或要求具体命名为
  • dwr反转ajax功能,dwr实现Reverse Ajax推送技术的三种方式

    DWR2 x的推技术也叫DWR Reverse Ajax 逆向Ajax 主要是在BS架构中 从服务器端向多个浏览器主动推数据的一种技术 在DWR所开的线程中使用Reverse Ajax时 经过WebContextFactory get 获取
  • GD32 CAN波特率计算问题

    一 问题描述 以下是GD32F205 CAN0的配置代码 将CAN0的波特率设置为125kbps 其中影响波特率的几个关键参数为resync jump width time segment 1 time segment 2和prescale