这可能是全网最好的树莓派spidev使用教程了

这可能是全网最好的树莓派spidev使用教程了

起因

最近做了个树莓派相关的项目,需要用的spidev这个库。但怎么都调不出来数据,spidev的库描述的十分简洁。前前后后花了四个晚上调试,依旧是毫无进展,四处查找资料。嗯……不得不说,现在的博客都大同小异,无非就是把spidev这一页的资料拉过来再描述一遍,还有好一点的,也都是非常通用的一个例子。

函数简介

  1. open(bus, device)
    连接到指定的spi设备,可打开的设备 /dev/spidev<bus>.<device>
    在树莓派上使能spi之后,会在/dev目录下看到/dev/spi0.0和/dev/spi0.1
    如下图
    在这里插入图片描述

  2. readbytes(n)
    从SPI设备中读取n个字节

  3. writebytes(list of values)
    向SPI设备中写入数据

  4. writebytes2(list of values)
    功能和writebytes是相似的,如果values过长,超过/sys/module/spidev/parameters/bufsiz定义的字节,原始的values则会被分割为多块,并且分多次发送。并且这里的values也能接受byte array,不一定要要转化为list也可使用。在进行图像传输的时候这里会方便很多。

  5. xfer(list of values[, speed_hz, delay_usec, bits_per_word])
    执行一次spi传输,并且在此期间,两个block的clk之间cs管脚会被释放并且重新激活。中间的delay以us为单位。
    这是什么意思呢,用逻辑分析仪抓一下就知道了,这里执行了两次传输,中间cs被释放拉高。当金星传输的时候,cs再次被拉低。
    在这里插入图片描述

  6. xfer2(list of values[, speed_hz, delay_usec, bits_per_word])
    执行一次SPI传输,但是片选始终被拉低在两次传输之间。
    在这里插入图片描述
    在这里插入图片描述

  7. xfer3(list of values[, speed_hz, delay_usec, bits_per_word])
    功能和xfer2相似,但是在list的长度大于/sys/module/spidev/parameters/bufsiz时会被分割成许多块,然后多次发送。

  8. close()
    断开和spi设备的连接

spi属性

  • bits_per_word
  • cshigh
  • loop
  • no_cs
  • lsb_first
  • max_speed_hz
  • mode
    spi的四种工作模式
    Mode 0 CPOL=0, CPHA=0 —>对应到这里 0b00
    Mode 1 CPOL=0, CPHA=1 —>对应到这里 0b01
    Mode 2 CPOL=1, CPHA=0 —>对应到这里 0b10
    Mode 3 CPOL=1, CPHA=1 —>对应到这里 0b11
  • threewire
    三线的SPI
  • 7
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于全网最详细的VSCode教程,以下是一个简短的描述: 全网最详细的VSCode教程应该包含以下内容:基本介绍、安装和设置、编辑器布局、常用快捷键、实用插件和扩展、调试功能、版本控制、代码片段等。 在基本介绍部分,应该详细介绍VSCode是什么,它的优点和特点,如何下载和安装等。 安装和设置部分应该涵盖不同操作系统上的安装步骤和注意事项。同时,还应该介绍不同配置选项,如主题、字体、缩进设置等。 编辑器布局部分应该解释各个面板和视图的作用,如侧边栏、编辑窗口、终端等。详细说明如何调整布局以优化工作流程。 常用快捷键部分应该列举常用的快捷键和相关操作,如快速打开文件、搜索、查看定义等。应该对不同功能区分操作系统进行说明。 实用插件和扩展部分应该介绍一些常见和有用的插件,如代码片段、代码格式化、调试器等。应该详细解释如何安装和使用这些插件。 调试功能部分应该详细介绍如何配置和使用调试器,包括设置断点、查看变量的值等。 版本控制部分应该介绍如何使用内置的版本控制工具,如Git,如何提交、推送和拉取代码等。 最后,代码片段部分应该教授如何创建和使用代码片段,以提高编码效率。 以上仅是对全网最详细的VSCode教程的一些简要描述。当然,真正最详细的教程可能比这个更加全面和详细,具体内容可能还包括更多高级功能和技巧。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值