我买的是微雪的树莓派用的SPI转CAN。现在用在jetson nano上。我看了一下俩模块的芯片用的都是一样的,引脚也都对得上,所以我就打算拿这个模块给nano做can通信。

具备CAN功能,使用SPI接口CAN控制器MCP2515,搭配收发器SN65HVD230。 Microchip 的 MCP2515是一款CAN协议控制器,完全支持 CAN V2.0B 技术规范。该器件能发送和接收标准和扩展数据帧以及远程帧。 MCP2515自带的两个验收屏蔽寄存器和六个验收滤波寄存器可以过滤掉不想要的报文。 CAN 控制器的输出引脚 Tx 接到 SN65HVD230 的数据
输入端 D,可将此 CAN 节点发送的数据传送到 CAN 网络中;而 CAN 控制器的接收引脚 Rx 和 SN65HVD230 的数据输出端R 相连,用于接收数据。
我购买的针对树莓派用的can扩展板

总之开始安装

专门为了nano做的can通信转接板

minicom可以通过串口控制外部的硬件设备.适于在linux通过超级终端对嵌入式设备行管理.同样也可以使用minicom对外置Modem进行控制.
linux超级终端minicom的使用方法
minicom 是一款串口终端调试工具


使用/etc/modules-load.d/来配置系统启动时加载哪些模块
Linux模块加载流程及如何让系统开机自动加载模块


按照网页教程步骤,可以看到我们的nano的spi1引脚和我的can模块上的spi引脚对应

【艹 设置完重启失败,现在显示屏一直黑屏,只能重新烧录镜像。重新烧录重新操作之后教程没问题了,但我这边模块引脚和波特率对不上】

安装好之后有这么几个问题

  1. 我买的是微雪的树莓派的SPI转can,那个模块把中断输出引脚设置在了nano的20号引脚的位置,我应该把模块引脚设置改成26号引脚。不过看nano的SPI转can的模块也是乱设置中断引脚的位置。可能这个改不改无所谓。
  2. 波特率对不上
  3. 解压来的代码文件只可读
# 商家写的nano的cantest.py  测试例程将会在接收到信息时发送1-8
#!/usr/bin/env python
# -*- coding: utf-8 -*-import MCP2515
import timeprint("--------------------------------------------------------")
# try:
# This setup is referred to CAN SPI click mounted on flip n click device slot A
can = MCP2515.MCP2515()
print("init...")
can.Init()
print("send data...")
data = [1, 2, 3, 4, 5, 6, 7, 8]
can.Send(data, len(data))readbuf = []
# while(1):
while(1):readbuf = can.Receive()print(readbuf)time.sleep(0.5)print("--------------------------------------------------------")
# except Exception as e:# print(e)

关于文件权限的问题,我在鸟哥那边学过

sudo chmod 777 -R 文件夹名/
这句就把所有权限都开放了

0(0+0+0)-没有权限。
1(0+0+1)-仅执行权限。
2(0+2+0)-仅写入权限。
3(0+2+1)-写入和执行权限。
4(4+0+0)-只读权限。
5(4+0+1)-读取和执行权限。
6(4+2+0)-读写权限。
7(4+2+1)-读取、写入和执行权限。

通常我们以 Vim 编辑 Shell 文件批处理文件后,文件权限通常是 rw-rw-r–(644),那么,如果要将该文件变成可执行文件,并且不让其他人修改此文件,则只需将此文件的权限该为 rwxr-xr-x(755)即可。

chmod 755 设置用户的权限为:
1.文件所有者可读可写可执行
2.与文件所有者同属一个用户组的其他用户可读可执行
3.其它用户组可读可执行

can的波特率

MCP2515波特率配置
因为我这个模块是12M晶振,而程序里是默认8M晶振,所以要按照手册重新计算通信阶段的各个占比,参考上面那个博客就可以了。

计算过程比较复杂,还是需要一点经验的。说实话,要是有那功夫去理解我上面的计算过程,还不如直接看博客自己推导。

需要了解的还有500Kbps是对应的2us的Tbit。由1/2us得到。同理可知250Kbps是需要4us,125Kbps为8us


【当然了,我没挨个去测试】

改好这两处就能通信了【要先连好硬件哈】

在代码目录下 执行

python cantest.py

就能接收信息了

所以引脚的事确实没关系,我现在用的是29号引脚作为中断输出


运行时的sudo和import和pip的爱恨纠葛

过了许久,我又来用这个,结果执行python cantest.py 显示

no module named ‘spidev’

我重新去检查了以前的各项设置以及挂载的spi都没问题。
然后我就
sudo python cantest.py
笑死,成功了。
但sudo python3 cantest.py 会失败

后来用pip3把以前的那俩东西又安装一遍
sudo pip3 install pyserial
sudo pip3 install spidev==3.1
这样再执行
sudo python3 cantest.py
就也可以成功了。
但sudo仍然不能缺,很怪,明明已经给了权限777了

我们所使用的系统命令如ls/pwd/reboot,实际上是被加入了文件夹后然后将这个文件夹目录加入环境变量,这种之后便成为了我们日常所使用的“命令”。环境变量也有着不同的级别,有的环境变量是针对于系统的环境变量,而有的环境变量是针对于用户的。
只需使用 echo $PATH 命令便可以显示当前环境的环境变量
实际上,sudo命令使用时将PATH环境变量进行了重置,目的显然是要限制用户运行 sudo 命令的范围
linux下 su & su - & sudo命令对环境变量造成的影响 &设置环境变量

  1. 下载源码,用python编译
  2. 看pip装到哪了,加到环境变量 Python: 通过 pip 安装第三方包后依然不能 import

笑死,上面引用里的方法都不能用
就是pip安装的那句命令不要加sudo就好了

琢磨信息发送


商家设置成这样 只做了一个send函数。想发扩展帧估计只能自己写。

附图

nano的对应的引脚接口

这个是啥也不设置的时候默认就有的引脚功能

nano的另一个更详细的表,是可以设置开启的对应引脚。

这个是nano的设置界面

【这里或许就是设备树使能了吧】

微雪的nano专用的SPI转CAN模块

微雪的树莓派专用的SPI转CAN模块


扩展阅读

英伟达Jeston nano<3>使用Python实现三种方式串口通信
Jetson Nano 配置40引脚扩展接头
linux 编辑文件时提示swp文件已经存在

MCP2515的英文手册

树莓派CAN通讯教程 - MCP2515

nano的CAN通信相关推荐

  1. 基于Jetson Nano与STM32通信的颜色识别与伺服驱动器控制

    基于Jetson Nano与STM32通信的颜色识别与伺服驱动器控制 jetrson nano部分 颜色识别 串口通信 数据传输 完整代码 stm32 部分 数据解读 电机控制 主函数 电机加减速 硬 ...

  2. Jetson Nano串口通信----Nano与PC通信

    Jetson Nano串口通信(一) 一.Nano与PC通信 1.Nano端: 要使用Nano上的串口,用Python控制,先安装Python3版本的py-serial库 sudo apt-get i ...

  3. Jetson nano和STM32通信

    Jetson nano系列之串口使用 Jetson nano与STM32通信 Jetson nano系列之串口使用 前言 一.Jetson nano串口配置 二.通信过程 1.使用数据包的形式发送数据 ...

  4. 英伟达Jeston nano<3>使用Python实现三种方式串口通信

    英伟达Jeston nano<3>使用Python实现三种方式串口通信 前言 通信配置过程 基本信息 配置过程 方案一:Python-40pinEXpansion Header 方案二:P ...

  5. 实现Ubuntu与Nvida Nano远程连接

    linux嵌入式学习笔记一 实现Ubuntu与Nvida Nano远程连接 文章目录 linux嵌入式学习笔记一 实现Ubuntu与Nvida Nano远程连接 前言 一.安装SSH 二.设置IP地址 ...

  6. Windows下使用Python实现串口通信

    Windows下使用Python实现串口通信 基本信息 配置过程 配置思路 详细配置过程 安装USB装TTL驱动 配置serial库 获取设备端口号 配置串口通信 配置说明 测试过程 其他学习记录 参 ...

  7. 用LU_ASR语音控制板和Arduinonano做一个桌面老婆(1)

    学习一样东西,最好的方式是实践,学Arduino最好的方式就是打造一个自己的作品,这个"桌面老婆"是我边学边做的小玩具,在此记录下,请各位大佬指点. 前段时间在淘宝逛时看到这块语音 ...

  8. 一步步制作Arduino智能小车

    ​ Arduino nano的制作智能小车 1.引脚配置 首先是板子的图片 ​ Nano 技术参数 控制器 ATmega328P Flash 32KB Sram 2KB EEPROM 1KB Sram ...

  9. 【jetson nano】ubuntu- python-ssh远程控制jetson nano与单片机串口通信

    笔记本和jetson都是18.04 用笔记本连jetson再用python写ssh连接nano,nano上插了板子可进行通信 para.py import paramiko#创建一个ssh的客户端,用 ...

最新文章

  1. pandas使用groupby函数和cumsum函数计算每个分组内的数值累加值、并生成新的dataframe数据列( cumulative sum of each group in dataframe
  2. jquery实现app开发闹钟功能_APP商城开发的优势与功能
  3. 图解使用Win8Api进行Metro风格的程序开发十一----联系人选择
  4. C++ 中的集合与字典
  5. 200 ssl服务器证书无效_服务器证书无效网站显示异常怎么办?
  6. 调试的时候step into,step out,step over有什么区别?各有什么作用?分别在什么情况下使用?
  7. 在K8S上的Web服务该怎么做域名解析呢?
  8. 云炬WEB开发笔记2-7 代理神器CharlesFiddler
  9. HandlerThread:带消息循环(Looper)的线程
  10. hook什么意思_这是什么骚代码!
  11. Linux 禁用msi模式,通过禁用MSI模式解决Win10磁盘占用100%的方法
  12. CENTOS7.8忘记ROOT密码,重置密码步骤
  13. 拓端tecdat|R语言对用电负荷时间序列数据进行K-medoids聚类建模和GAM回归
  14. [新功能]文章预览功能
  15. VoLTE Precondition资源预留
  16. CSS文字加粗,字体,颜色渐变,消失总结
  17. PDCA理念融入软件测试
  18. python 语音识别 中文_python中文语音识别
  19. 5大巨头入场瓜分3万亿市场!加密世界vs.互联网史诗战争将打响!
  20. 二代身份证读卡插件安装包(完整亲测可用).zip

热门文章

  1. 历史上十大商业败笔 DOS卖给微软上榜
  2. 【打卡】求直角坐标系内两点间距离
  3. 不用找,你想要的中国风ppt模板素材都在这里
  4. Python学习之numpy生成矩阵基础用法
  5. linux下运行omnet,Linux下OMNet++安装步骤[原创]
  6. 了解云服务器与普通IDC服务器的分析
  7. 中南大学计算机网课网址,中南大学计算机网课复习要点.doc
  8. 薄膜表面检测仪帮助企业节省人力保障产品质量
  9. SqlServer日期格式
  10. 浅谈漏洞修复的方法论