相关文章推荐

由于STM32单片机自带CAN控制器,所以STM32和MCP2515 CAN控制器联合使用的场景不多。正好一个特殊的需求使用了MCP2515和STM32,在这里说一下硬件链接需要注意的地方。

主控芯片STM32F103C8T6

CAN模块MCP2515(控制器)+TJA1050(收发器)

程序直接由泥人的例程修改为STM32程序,本身提供的是STC51单片的程序

3.无法通信的问题

购买的是泥人的CAN模块手册说明是5V供电,而STM32工作电压是3.3V。这里存在一个电压不同,STM32手册说明兼容5V。

本想直接给CAN模块供3.3V电压,但是无法工作。查看芯片手册后发现MCP2515的工作电压是2.7V~5.5V而TJA1050工作电压是4.75~5.25,所以由于收发器的工作电压问题,CAN模块采用3.3V供电是肯定无法工作的。

乖乖的接5V给mcp2515模块供电即可。

5.代码位置 https://download.csdn.net/download/maowendi/10233883

本篇文章介绍一下 stm32F103C8T6 的can总线通信实验 需要两块 stm32F103C8T6 板子 can通信主要是用于两块板子之间的通信,简而言之就是用一块板子发指令,另一块板子接收指令并发出动作。之前搜索了好多例程,但是应用于 stm32F103C8T6 的例程很少,所以决定写一篇博客,也算是记录一下自己的学习过程。本人第一次写博客,如有错误,欢迎在评论区指出。话不多说,下面是我的发送端stm... MCP2515 在发送数据时,如果通信速率较低一切都正常。但是当通信速率较高,比如1M时,发送一帧数据后, MCP2515 有时会出现自动重复发送多帧数据的情况。 为解决这现象,请参照官方给的《 MCP2515 勘误手册》第5条,给出了解决CAN速率较高时,出现数据多发重复发送的解决方法: 即,在保证数据发送完成的情况下,加入片选信号可解决问题。 1、 2路CAN接口( MCP2515 的1路, STM32F103C8T6 自带的1路CAN),可以实现两路CAN的通信; 2、供电范围宽(7-28v),采用可插 基于 STM32 的多路CAN总线通信软件程序和硬件设计 STM32 F407自带两路CAN,按照客户要求,需要定制一款5路CAN的电路板,选择三片 MCP2515 另外扩展出三路CAN通信电路,实测五路CAN总线通信稳定可靠。在 调试 的过程中,发现 MCP2515 在高速率通信时会产生CAN数据帧多发重发现象,后来找到 MCP2515 的勘误手册(勘误手册可自行下载),确实存在这个问题。
 
推荐文章