STM32——CAN通信

这篇具有很好参考价值的文章主要介绍了STM32——CAN通信。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、CAN通信概述

STM32F103有两个CAN,都分别有自己的发送接收邮箱。

发送邮箱共有3个来发送报文,发送调度器根据优先级决定哪个邮箱的报文先被发送。

共有2个接收FIFO,每个FIFO都可以存放3个完整的报文。它们完全由硬件来管理。

STM32——CAN通信

STM32——CAN通信

CAN通信通过CAN_H、CAN_L两根线实现通信,电平特性分为显性电平与隐性电平,如图所示,显性电平对应逻辑值0,隐性电平对应逻辑值1。显性电平具有优先权,只要有1个单元输出显性电平,总线上即为显性电平,所有单元都为隐性电平时,才为隐性电平。

注:两个以上的单元同时开始发送消息时,根据标识符(Identifier 以下称为 ID)决定优先级。ID 并不是表示发送的目的地址,而是表示访问总线的消息的优先级。两个以上的单元同时开始发送消息时,对各消息ID 的每个位进行逐个仲裁比较。仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的单元则立刻停止发送而进行接收工作。

1.1 标识符过滤

最多可有28个过滤器组(互联型),精英板STM32F103ZET6只有14个(增强型)。

每个过滤器组x由2个32位寄存器,CAN_FxR1和CAN_FxR2组成。过滤器可配置为,屏蔽位模式标识符列表模式

STM32每个过滤器组的位宽都可以独立配置,以满足应用程序的不同需求。每个过滤器组可提供:

1个32位过滤器,包括:STDID[10:0]、EXTID[17:0]、IDE和RTR位。如下图所示:STID分为了2段,EXID分为了3段,其中标识符屏蔽模式CAN_FxR1为ID,CAN_FxR2为MASK;标识符列表两者都为ID。

STM32——CAN通信

2个16位过滤器,包括:STDID[10:0]、IDE、RTR和EXTID[17:15]位,如下图所示:

STM32——CAN通信

数据帧和遥控帧有标准格式和扩展格式两种,标准格式有11 个位的标识符(ID),扩展格式有29 个位的ID。

1.1.1 屏蔽位模式

标识符寄存器和屏蔽寄存器一起,指定报文标识符的任何一位,应该按照“必须匹配”或“不用关心”处理。

如下图所示,工作在标识符屏蔽模式中,CAN_FxR2屏蔽中位“1”表示“必须匹配”,此时接收消息的ID中“必须匹配”的所有位必须与CAN_FxR1中的该些位相同(一一匹配),消息才能被接收。

注:如果一个过滤器组配置成2个16位过滤器的标识符屏蔽模式,过滤结果为或的关系,只要通过其中一个过滤器即消息被接收。

1.1.2 标识符列表模式

屏蔽寄存器也被当作标识符寄存器用。接收报文标识符的每一位都必须跟过滤器标识符相同。

如下图所示,工作在标识符列表模式中,可配置为2个32位过滤器或4个16位过滤器,过滤结果为或,消息ID与CAN_FxRx的位一一对比,只要通过任意一个即可接收。

STM32——CAN通信文章来源地址https://www.toymoban.com/news/detail-474960.html

到了这里,关于STM32——CAN通信的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32开发(六)STM32F103 通信 —— RS485 Modbus通信编程详解

    👈《上一篇》  🏡《主目录》  👉《下一篇》 了解 RS485 Modbus协议技术 。本实验是基于STM32F103开发 实现 通过RS-485实现modbus协议。 准备好了吗?开始我的show time。 1、硬件开发准备 主控:STM32F103ZET6 RS485收发器:SP3485P 2、软件开发准备 软件开发使用虚拟机 + VScode + STM32Cub

    2024年02月03日
    浏览(51)
  • 【STM32】F103(64K/128K Flash)外设概述

    本文介绍的是STM32F103 中等容量产品(STM32F103x 8 xx和STM32F103x B xx)的硬件数据,即64KB或128KB Flash,20KB SRAM。 ST官网资料:https://www.st.com/zh/microcontrollers-microprocessors/stm32f103.html ST官方的中等容量产品Datasheet:https://www.st.com/resource/en/datasheet/stm32f103c8.pdf 之前的文章:https://blog.csdn

    2024年02月11日
    浏览(42)
  • CAN总线详解及STM32的CAN通信编程指南

    对于CAN通信而言,本人之前也未接触了解过,由于实习的技术要求,因此也花费了一段时间对CAN通信进行学习,并且实现了基于STM32的CAN环回静默模式通信,因此写一遍比较详细的文章对该内容进行总结。本文的参考资料有STM32的中文参考手册、协议手册等。话不多说开始吧!

    2024年02月11日
    浏览(44)
  • stm32f103与openmv串口通信

    串口通信是指通过串行通信接口进行数据传输的一种通信方式。在串口通信中,数据被分成一个个的字节,按照一定的顺序依次发送和接收。串口通信通常使用UART(通用异步收发传输)协议进行数据传输。 串口通信在嵌入式系统中应用非常广泛,其主要用途包括: 调试和监

    2024年02月13日
    浏览(49)
  • STM32F103C8T6实现CAN通讯与直流编码电机转速闭环控制

    本次实验目的是通过CAN发送目标转速与转向信息,接收方在接到CAN数据流后开始对直流编码电机进行转速闭环控制。我会尽量说清每个函数,注释每一句代码,希望能对大家有所帮助。 CAN通讯基于STM32自带CAN通讯模块,配合库函数使用十分方便。关于CAN通讯可以参考站内大佬

    2023年04月08日
    浏览(41)
  • 【嵌入式学习-STM32F103-USART串口通信】

    4-1 基本流程 4-2 整体代码 4-2-1 main.c 4-2-2 Serial.c 4-2-3 Serial.h 5-1 查询 5-2 中断 5-3 整体代码 5-3-1 main.c 5-3-2 Serial.c 5-3-3 Serial.h 6-1 使用状态机接收数据包的思路 6-2 串口收发HEX数据包 6-2-1 main.c 6-2-2 Serial.c 6-2-3 Serial.h 6-3串口收发文本数据包 6-3-1 main.c 6-3-2 Serial.c 6-3-3 Serial.h 全双工:打

    2024年02月15日
    浏览(61)
  • STM32进阶学习(6)-通信协议之CAN详解

    CAN通信的背景可以追溯到上世纪80年代初,当时汽车制造商面临着一个共同的挑战: 如何有效地传输和共享大量的传感器数据和控制信息 。 传统的电缆布线方式非常复杂且容易出错,而且无法满足日益增长的数据传输需求。 为了解决这个问题,德国的汽车制造商奔驰(Mer

    2024年02月03日
    浏览(38)
  • STM32的CAN通信的收发库函数解读

    STM32的CAN通信的收发函数: CAN发送消息结构体定义:        当需要使用CAN发送报文时,先定义一个上面发送类型的结构体,然后把报文的内容按成员赋值到该结构体中,最后调用库函数CAN_Transmit把这些内容写入到发送邮箱即可把报文发送出去。  CAN接收消息结构体定义:

    2024年02月07日
    浏览(39)
  • 学习记录之openmv和STM32F103的通信

    分上下位机,下位机向上位机发送数据。(上位机控制,下位机收集数据) 可能用到的函数: UART :通用异步 收/发器 USART :通用同步/异步 收/发器 USART_ init() 串口初始化:波特率、数据字长,奇偶校验,硬件流控及收发使能 USART_ Cmd 使能串口                             

    2024年02月14日
    浏览(42)
  • STM32F103C8T6串口通信

      首先来看一下需要操作的函数,以及配置的步骤: 图1                                                  图2   Code: usart.c #include \\\"usart.h\\\" void ustart_Init(void ) { GPIO_InitTypeDef GPIO_Init_Ustar ; // 定义输出端口TX的结构体对象 USART_InitTypeDef USTART_Init; // 定义串口初始化结构体对象

    2024年02月16日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包