本文主要记录使用树莓派4B,通过外接MCP2515模块来实现CAN通信,使用基于Can-utils实现CAN消息的收发。

准备工作:

  • 树莓派
  • MCP2515模块
  • 杜邦线若干
  • 知乎上一篇较为详细的参考,但是在里面遇到了坑,后面再展开讲

接下来就是硬件部分,接线完成:

买的MCP2515模块附带的原理图:

树莓派与MCP2515模块的接线:

树莓派的引脚图,引自pinout.xyz:

线接好后按着参考一步一步走,先敲命令,在/boot/config.txt末行加入:

pi@raspberrypi:~ $ sudo nano /boot/config.txt
dtparam=spi=on
dtoverlay=mcp2515-can0,oscillator=16000000,interrupt=25
dtoverlay=spi1-1cs

然后保存配置重启:

sudo reboot ls /sys/bus/spi/devices/spi0.0/netdmesg | grep -i '\(can\|spi\)'

得到结果:

表示MCP2515已经加载成功。

接下来,设置环回模式,设置回环 波特率 250K ,用于测试can通路,在没有其它硬件连接测试的情况下,自发自收:

sudo ip link set can0 type can bitrate 500000 loopback on# 开启can0
sudo ip link set can0 up

但是收发不了数据,启动还会把系统卡死。反复重试,反复卡死。。。

开始调试:

  1. 排除接线接错
  2. 换了一个全新的模块,发现结果还是一样
  3. 通过上面的操作,大概率是配置有问题

于是开始查配置的参数说明,发现这篇里面说的很详细,并指出原来配置中存在的问题,讲的很详细,我就不重复了:

  • 打开spi总线,树莓派与MCP2515之前通过spi通信,然后再转成can协议在spi0.0上配置
  • MCP2515 CAN控制器,CAN控制器的晶振频率是16MHz,INT脚接到了gpio25
  • 原来配置是spi1-1cs,但我们用的是spi0,应该要改为dtoverlay=spi0-1cs,cs0_pin=8

于是我改好配置后,结果还是收发不了数据,启动还会把系统卡死。反复重试,反复卡死。。。

查看树莓派的引脚,如果不行,参考这篇:

后面又看到一篇,较之前相比配置做了一些改动,给出我的配置:

dtparam=spi=on
dtoverlay=mcp2515-can0,oscillator=8000000,interrupt=25,spimaxfrequency=10000000
dtoverlay=spi-bcm2835-overlay

再次sudo reboot,设置环回模式并开启can0,输入sudo ip -s -d link show can0查看can0通讯状态:

这次竟能启动成功,还没有把系统搞崩,于是测试收发can消息

安装 SocketCAN工具 Can-utils :

sudo apt-get install can-utils

使用cansend发送单条CAN消息:

cansend can0 123#AABBCCDDEEFF

开一个新终端,接收消息:

candump can0

结果:

使用cangen发送随机CAN消息:

cangen can0

发送:

接收:

终于打通啦!

树莓派4B-基于MCP2515的CAN通信过程记录篇相关推荐

  1. 树莓派4b安装windows iot_树莓派4B基于python3安装opencv4全教程

    昨天有同学私信说编译几个小时安装太麻烦,有没有简单点的方法,现在提供两种安装方法 我的环境 树莓派4B python = 3.7.3 操作系统,2020-3 官方最新镜像 1.换国内源(详细步骤看我以 ...

  2. 树莓派4B基于OpenWrt安装安朗蝴蝶实现校园上网自由

    主要适用于校园网自动认证,充当WiFi路由器以及充当软路由, 准备材料 1.     树莓派 2.     网线 3.     内存卡 安装所需的所有文件在最底部 一:固件下载 下载地址:https: ...

  3. 树莓派有can通信吗_树莓派4使用MCP2515模块CAN通信

    在开始之前,硬件方面你需要一块树莓派4,MCP2515模块和一个CAN分析仪. 我这里的MCP2515模块的晶振为8M的 树莓派4内核为: pi@raspberrypi:~ $ uname -a Li ...

  4. 秋色园网站转移过程记录篇

    前言: 昨夜断网了,早上把长宽的工作人员叫到家里来检测才发现,原来到期了,要续费交钱了. 昨夜断网时,无聊中就看了下某网友的给的DLL里的关于数据层多数据库的实现,看到一个槽点,本来想写写. 今天发现 ...

  5. 用树莓派4b构建深度学习应用(十四)素描线稿篇

    前言 上一篇我们完成了一对戴口罩和脱面罩的互补应用,这一篇来看一下最近抖音上看到一个批量提取线稿的视频,掌握其核心原理,我们用 OpenCV 就很容易实现一个更快速的方案. Photoshop 提取线 ...

  6. HTTPS加密及通信过程

    Http & Https Http: 超文本传输协议,位于应用层,常用于web浏览器和服务器之间的通信. Https: 位于安全层上的HTTP,在Http下面提供了一层传输级的密码安全层(SS ...

  7. 树莓派4B学习笔记——IO通信篇(UART)

    文章目录 UART简介 树莓派使用UART与串口屏通信 串口屏简介 硬件连接 配置串口接口 树莓派打开UART接口 树莓派安装串口调试助手 编程实现 wiringSerial.h Serial简介 C ...

  8. 基于树莓派4B的智能无人巡逻小车设计

    计算机工程实训报告 题目 智能警用无人巡逻小车 视频演示地址:树莓派暑期工程实训-模拟警用无人巡逻小车_哔哩哔哩_bilibili 一.实验内容与要求 1.1 实验内容 本实验使用 Yahboom 生 ...

  9. 入坑树莓派(2)——树莓派4B与手机蓝牙通信

    入坑树莓派(2)--树莓派4B与手机蓝牙通信 1.引言 2.步骤 2.1.蓝牙配对 2.2.蓝牙连接准备 2.3.蓝牙连接 3.参考网址 1.引言 在入坑树莓派(1)中已经搞掂了可视化问题.现在继续开 ...

最新文章

  1. redis之 centos 6.7 下安装 redis-3.2.5
  2. Centos7 搭建 k8s 环境教程,一次性成功
  3. 超声波传感器特性测量:发送与接收传感器之间的差异
  4. STM32 USB转串口驱动安装不成功出现黄色感叹号解决方法!
  5. 解决 springboot 启动报错 -- Cannot determine embedded database driver class for database type NONE
  6. dismiss ios pop效果_iOS实现自定义炫酷的弹出视图(popView)
  7. Murano Weekly Meeting 2016.07.05
  8. 2017OKR年终回顾与2018OKR初步规划
  9. 下载spring源码
  10. DNS、NS、DDNS
  11. echarts 的柱状图 填充色为透明
  12. 百度地图迁徙大数据_百度地图迁徙大数据:复工后北上广深城内出行年后首次大幅增长...
  13. 标题 青蛙跳杯子java_蓝桥杯 青蛙跳杯子
  14. 大规模服务设计部署经验
  15. 作用域和作用域链的理解
  16. 一个简单的jxl文件上传功能
  17. 小飞鱼平台介绍——小飞鱼开发者服务平台业务介绍
  18. python中字符串输出乱码怎么解决_python字符乱码的解决小结
  19. Android之CardView
  20. Splitter Control for Dialog

热门文章

  1. 八年级英语下册计算机教学总结,八年级信息技术教学工作总结
  2. Linux Ubuntu 22.04实现打开、最小化时呈现魔灯效果
  3. DIY剪刀石头布机器人(一)
  4. 精灵图、favicon图标
  5. 解析MYSQL BINLOG二进制格式(10)--问题解答
  6. 【以太网交换安全】--- 交换机流量控制/DHCP Snooping/IP Source Guard
  7. Oracle EBS User Guide - URL
  8. mysql求分位数_分位函数(四分位数)概念与pandas中的quantile函数
  9. 【Docker】镜像安全扫描工具clair与clairctl
  10. 为chromium增加底部工具栏