欢迎光临散文网 会员登陆 & 注册

arduino的门禁卡

2022-10-09 20:52 作者:GXTon_阿通  | 我要投稿

spi是一种通信方式,

一共有4根数据线:

sck: 时钟线,用于产生时钟.(主机产生时钟,各个从机按照主机时序进行通信)

cs:片选,一个spi总线上可以有多个从机,每个如何知道和哪个从机进行通信,就用到了cs片选.

            一般情况下.低电平有效.高电平屏蔽.

MISO(Master In Slave Out): 主机数据输入,从机数据输出
MOSI(Master Out Slave In): 主机数据输出,从机数据输入


在arduino上的接线:

关于程序官方spi库的源代码在:

比较好用的522库:

spi特点是有四种模式:

  • 模式0(默认值) - 时钟通常为低电平(CPOL = 0),数据在从低电平到高电平(前沿)(CPHA = 0)的转换时采样。

  • 模式1 - 时钟通常为低电平(CPOL = 0),数据在从高电平到低电平(后沿)(CPHA = 1)的转换时采样。

  • 模式2 - 时钟通常为高电平(CPOL = 1),数据在从高电平到低电平(前沿)(CPHA = 0)的转换时采样。

  • 模式3 - 时钟通常为高电平(CPOL = 1),数据在从低电平到高电平(后沿)(CPHA = 1)的转换时采样。

  • SPI.attachInterrupt(handler) - 当从设备从主设备接收数据时调用的函数。

spi的另一个特点是:

       收发同时进行.

arduino的库函数:

 SPI.begin()

初始化SPI通信,调用该函数后,SCK/MOSI/SS引脚将被设置为输出模式,且SCK/MOSI引脚拉低,SS引脚拉高。

SPI.end()

关闭SPI总线通信

SPI.setBitOrder(order)

设置传输顺序。order:传输顺序,LSBFIRST,低位在前;MSBFIRST,高位在前

SPI.setClockDivider(divider)

设置通信时钟,由主机产生,从机不用配置。divider:SPI通信的系统时钟分频得到,可选配置有SPI_CLOCK_DIV2、SPI_CLOCK_DIV4(默认配置)等,最大可达128分频

SPI.setDataMode(mode)

设置数据模式。mode:可配置的模式,可选项有SPI_MODE0、SPI_MODE1、SPI_MODE2、SPI_MODE3

SPI.transfer(val)

传输1Byte的数据,SPI是全双工通信,所以发送1B的数据,也会接收到1B的数据。val:要发送的字节数据。

发送一串数据


arduino的门禁卡的评论 (共 条)

分享到微博请遵守国家法律