STM32的CAN被称为bxCAN(基本扩展CAN(Basic Extended CAN)),支持CAN协议2.0A和2.0B。STM32基本型只有一个主CAN,互联型有一个主CAN和一个从CAN。
1、关于CAN_RX和CAN_TX
CAN通讯由CNA控制器和CAN收发器的区别,CAN控制器出来的信号本身就是CAN_RX和CAN_TX,信号和电平转换等是由CAN收发器来实现的。可以看一下TJA1050等CAN收发器的原理图就可以看到。
2、STM32的bxCAN分为主/从
●CAN1:是主bxCAN,它负责管理在从bxCAN和512字节的SRAM存储器之间的通信
● CAN2:是从bxCAN,它不能直接访问SRAM存储器
● 这2个bxCAN模块共享512字节的SRAM存储器
注: 在中容量和大容量产品中,USB和CAN共用一个专用的512字节的SRAM存储器用于数据的发送和接收,因此不同同时使用USB和CAN(共享的SRAM被USB和CAN模块互斥地访问)。USB和CAN可以同时用于一个应用中但不能在同一个时间使用
STM32有2个bxCAN外设,即CAN1,CAN2,这两个CAN外设各自都有自己的发送邮箱,接收FIFO0和FIFO1,但是,CAN除了这个之外,还有接收过滤器,而CAN2没有,但是,在实际工作中,这个接收过滤器是只需要一个,并不是两路CAN各自都需要,因此CAN2完全可以共享CAN1的接收过滤器(这个就是CAN1与CAN2共享的512个字节的SRAM了),只不过是在芯片内部通过CAN1的存储器读写控制器间接的访问,从这种CAN1和CAN2的结构上来说,将CAN1看成是主CAN,CAN2看成是从CAN就不足为奇了,除了称呼,在使用和功能上没有任何区别,这些都只是芯片内部bxCAN的设计,对外bxCAN完全是多主模式。
关键字:STM32 bxCAN
引用地址:
关于STM32的bxCAN
推荐阅读最新更新时间:2024-03-16 16:04
stm32程序下载方式总结
程序下载是一切的基础,对于搞单片机的人最开始学的就是程序下载,本人在刚开始学习51单片机的时候就只是知道串口下载,以至于什么usb-转串口的芯片的作用也没有去了解,直到现在学习使用了stm32都快两年了,才第一次深入的考虑这些问题,想总结一下,当然这个都是参考网络上的一些牛人,借鉴一下别人的,然后自己整理了一下,为刚入门单片机的新手们简单解释一下,这些完全是本人的理解,不对之处,还请指正。 先总体说一下,stm32的程序下载方式(这里我主要讲解采用jlink,isp(串口在线编程),而用u-link,st-link应该也是可以的,不过本人没有真实的接触过), 大概有一下三种方式: (1)j-flash下载(需要用到j-link),
[单片机]
Stm32RS232串口通信——中断接收发送数据
main.c配置: /* *说明: *PA0:KEY1;PA1:KEY2; *PA2:LED1;PA3:LED2; *PA9:USART1_TX;PA10:USART1_RX */ #include stm32f10x.h #include stm32f10x_rcc.h #include stm32f10x_gpio.h #include stm32f10x_usart.h #include stm32f10x_exti.h #include system_stm32f10x.h #include misc.h void RCC_Configurati
[单片机]
stm32开发板开发笔记(2)-开发板jlink烧录
开发板上留出了jtag烧录口,引出了TCK测试时钟,TDI测试数据串行输入,TMS测试模式选择,TDO测试数据串行输出, NJTRST 测试系统复位信号 如图所示: nRST是接芯片的复位脚,板上的实物是20针的JTAG接口 20针JTAG接口 1 VTref 目标板参考电压,接电源 2 VCC 接电源 3 nTRST 测试系统复位信号 4、6、8、10、12、14、16、18、20 GND 接地 5 TDI 测试数据串行输入 7 TMS 测试模式选择 9 TCK 测试时钟 11 RTCK 测试时钟返回信号// 这个没有接 13 TDO 测试数据串行输出 15 n
[单片机]
STM32学习笔记 — 之GPIO端口篇
最近刚开始学习STM32,所以从最基本的GPIO开始学起;首先看看STM32的datasheet上对GPIO口的简单介绍: 每个GPI/O 端口有两个32 位配置寄存器(GPIOx_CRL,GPIOx_CRH),两个32位数据寄存器(GPIOx_IDR,GPIOx_ODR),一个32 位置位/复位寄存器(GPIOx_BSRR),一个16 位复位寄存器(GPIOx_BRR)和一个32 位锁定寄存器(GPIOx_LCKR)。 GPIO 端口的每个位可以由软件分别配置成多种模式。每个I/O 端口位可以自由编程,然而I/0 端口寄存器必须按32 位字被访问(不允许半字或字节访问)。GPIOx_BSRR 和GPIOx_BRR 寄存器
[单片机]
STM32的OTA远程升级
上次发过SD卡的Bootloader离线升级后,应大家的要求,这次就讲一下STM32的OTA远程升级。 OTA又叫空中下载技术,是通过移动通信的空中接口实现对移动终端设备数据进行远程管理的技术,还能提供移动化的新业务下载功能。 要实现OTA功能,至少需要两块设备,分别是服务器与客户端。服务器只有一个,客户端可有多个。服务器通过串口与PC机连接,需要下载的镜像文件存放于PC机,命令执行器给服务器发命令及镜像文件。首先命令执行器控制服务器广播当前可用的镜像文件信息,客户端收到信息后进行对比,若有与自身相匹配的镜像,则向服务器请求数据。服务器收到请求后向命令执行器索取固定大小的块,再点对点传送给客户端。镜像传输完毕后,客户端进行
[单片机]
STM32日志之总结篇1--跑马灯实验
//======================================================// **基于学习STM32有一段时间了,特意写下一篇关于一个简单的跑马灯 的例程,梳理思路,也希望我自己的理解能帮到一些学习STM32的初学者 //======================================================// 首先,GPIO的配置种类有8种。分别为模拟输入、浮空输入,上拉输入、下拉输入、开漏输出、推挽输出、复用开漏输出、复用推挽输出。 下面将以实例的方式讲解GPIO的设置及实现过程。 事例1:跑马灯实验 跑马灯实验的功能:LED灯进行有规律闪烁。(下面的LED灯的数
[单片机]
STM32学习笔记(7):USART串口的使用
1.串口的基本概念 在STM32的参考手册中,串口被描述成通用同步异步收发器(USART),它提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。 USART利用分数波特率发生器提供宽范围的波特率选择。它支持同步单向通信和半双工单线通信,也支持LIN(局部互联网),智能卡协议和IrDA(红外数据组织)SIR ENDEC规范,以及调制解调器(CTS/RTS)操作。它还允许多处理器通信。还可以使用DMA方式,实现高速数据通信。 USART通过3个引脚与其他设备连接在一起,任何USART双向通信至少需要2个引脚:接受数据输入(RX)和发送数据输出(TX)。 RX:接受数据串行输入。通过
[单片机]
Jlink的三线制SWD方式连接STM32芯片无法识别的解决方案
网上找到此文章解决了j-flash只能连接后不能烧录的问题,希望遇到相同问题的小伙伴,可以用同样的办法解决: 前段时间,做了一块板子,调试接口只留了三个口SWD、SWCLK、GND,在使用Jlink的SWD方式调试的时候发现无法连接。使用ST-link的时候可以连接,无奈楼主的ST-link的链接方式相当的不可靠,时而能识别时而不能识别:当然我的ST-link是山寨版的。 那么问题来了:为什么通过20针全部连接的方式可以调试,而三针的方式就不行了呢? 古人云知之为知之,不知Google之,Google不让用,那就问度娘好了。 通过查阅网上资料发现,jlink的20针,不光有调试的功能还有供电和检测电压的功能。 下面是jl
[单片机]