SPI通信协议(SPI总线)学习

合集下载

单片机中的SPI总线通信协议与应用

单片机中的SPI总线通信协议与应用

单片机中的SPI总线通信协议与应用SPI(Serial Peripheral Interface)是一种基于同步通信方式的总线协议,常用于将单片机与外部设备进行数据交互。

本文将介绍SPI总线通信协议的原理和应用。

一、SPI总线通信协议的原理SPI总线通信协议由主设备(Master)和从设备(Slave)组成,主设备控制通信的发起和传输,而从设备被动接收和回应。

SPI总线通信协议通过四根线(SCLK、MOSI、MISO、SS)实现数据传输和通信控制。

1. SCLK(Serial Clock)线是用来同步主设备和从设备的时钟信号。

主设备通过拉高和拉低SCLK线来控制数据传输的时钟频率以及数据的采样和发送时机。

2. MOSI(Master Out Slave In)线是主设备发送数据给从设备的数据线。

主设备通过拉高和拉低MOSI线来将数据传输给从设备。

3. MISO(Master In Slave Out)线是从设备发送数据给主设备的数据线。

从设备通过拉高和拉低MISO线来将数据传输给主设备。

4. SS(Slave Select)线用于选择从设备。

主设备可以通过拉低相应的SS线来选择与之通信的从设备,从而实现多从设备的控制和数据交互。

SPI总线通信协议的数据传输是全双工的,即主设备和从设备可以同时发送和接收数据。

主设备通过SCLK线控制数据传输的时钟频率,而MOSI和MISO线相互独立地进行数据传输。

二、SPI总线通信协议的应用SPI总线通信协议广泛应用于各种领域,如数字信号处理、嵌入式系统、通信设备等。

下面将介绍几个常见的应用场景。

1. 存储器扩展许多单片机具有内置的存储器,在容量有限的情况下,可以通过SPI总线连接外部存储器来扩展储存空间。

主设备通过SPI总线的读写操作,将数据存储到外部存储器或者从外部存储器中读取数据。

2. 传感器接口许多传感器都支持SPI总线通信接口,例如加速度传感器、温度传感器等。

SPI通信协议(SPI总线)学习

SPI通信协议(SPI总线)学习

SPI通信协议(SPI总线)学习各位读友大家好!你有你的木棉,我有我的文章,为了你的木棉,应读我的文章!若为比翼双飞鸟,定是人间有情人!若读此篇优秀文,必成天上比翼鸟!SPI通信协议(SPI总线)学习1、什么是SPI?SPI是串行外设接口(Serial Peripheral Interface)的缩写。

是Motorola 公司推出的一种同步串行接口技术,是一种高速的,全双工,同步的通信总线。

2、SPI优点支持全双工通信通信简单数据传输速率块3、缺点没有指定的流控制,没有应答机制确认是否接收到数据,所以跟IIC总线协议比较在数据可靠性上有一定的缺陷。

4、特点1):高速、同步、全双工、非差分、总线式2):主从机通信模式5、协议通信时序详解1):SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。

也是所有基于SPI的设备共有的,它们是SDI(数据输入)、SDO(数据输出)、SCLK(时钟)、CS(片选)。

(1)SDO/MOSI –主设备数据输出,从设备数据输入;(2)SDI/MISO –主设备数据输入,从设备数据输出;(3)SCLK –时钟信号,由主设备产生;(4)CS/SS –从设备使能信号,由主设备控制。

当有多个从设备的时候,因为每个从设备上都有一个片选引脚接入到主设备机中,当我们的主设备和某个从设备通信时将需要将从设备对应的片选引脚电平拉低或者是拉高。

2):需要说明的是,我们SPI通信有4种不同的模式,不同的从设备可能在出厂是就是配置为某种模式,这是不能改变的;但我们的通信双方必须是工作在同一模式下,所以我们可以对我们的主设备的SPI模式进行配置,通过CPOL(时钟极性)和CPHA(时钟相位)来控制我们主设备的通信模式,具体如下:Mode0:CPOL=0,CPHA=0Mode1:CPOL=0,CPHA=1Mode2:CPOL=1,CPHA=0Mode3:CPOL=1,CPHA=1时钟极性CPOL 是用来配置SCLK的电平出于哪种状态时是空闲态或者有效态,时钟相位CPHA是用来配置数据采样是在第几个边沿:CPOL=0,表示当SCLK=0时处于空闲态,所以有效状态就是SCLK处于高电平时CPOL=1,表示当SCLK=1时处于空闲态,所以有效状态就是SCLK处于低电平时CPHA=0,表示数据采样是在第1个边沿,数据发送在第2个边沿CPHA=1,表示数据采样是在第2个边沿,数据发送在第1个边沿例如:CPOL=0,CPHA=0:此时空闲态时,SCLK处于低电平,数据采样是在第1个边沿,也就是SCLK由低电平到高电平的跳变,所以数据采样是在上升沿,数据发送是在下降沿。

SPI总线协议介绍

SPI总线协议介绍

SPI总线协议介绍 ⼀、概述 SPI = Serial Peripheral Interface,是串⾏外围接⼝设备,是⼀种⾼速,全双⼯,同步的通信总线。

常规只占⽤四根线,节约了芯⽚管脚,PCB的布局省空间。

优点: ⽀持全双⼯,push-pull的驱动性能相⽐open-drain信号完整性更好。

⽀持⾼速(100MHz以上)。

协议⽀持字节长不限于8bits,可根据应⽤特点灵活选择消息字长 硬件连接简单。

缺点: 相⽐I2C多两根线。

没有寻址机制,只能靠⽚选选择不同设备。

没有从设备接收ACK,主设备对于发送成功与否不得⽽知。

典型应⽤只⽀持单主控 相⽐RS232 RS485和CAN总线,SPI传输距离短 ⼆、硬件结构 SPI总线定义两个及以上设备间的数据通信,提供时钟的设备为主设备Master,接收时钟的设备为从设备Slave; 信号定义如下: SCK :Serial Clock 串⾏时钟 MOSI:Master Ouput,Slave Input 主发从收信号 MISO:Master Input,Slave Input主收从发信号 SS/CS:Slave Select⽚选信号 电路连接如下: 单个主设备和单个从设备: 单个主设备和多个从设备: 三、寄存器类型 摩托罗拉定义的SPI寄存器包括: SPI Control Register 1 控制寄存器1 SPI Control Register 2 控制寄存器2 SPI Baud Rate Register 波特率寄存器 SPI Status Register(SPISR) 状态寄存器(只读其余均可读可写) SPI Data Register(SPIDR)数据寄存器 通过往寄存器中写⼊不同的值,设置SPI模块的不同属性 四、SPI传输模式 SPI通信有四种模式,简单地讲就是设置SCLK时钟信号线的那种信号为有效信号 通过设置控制寄存器SPICR1中的CPOL和CPHA位,将SPI可以分成四种传输模式 时钟极性CPOL,即Clock Polarity,决定时钟空闲时状态电平。

spi总线协议

spi总线协议

spi总线协议SPI总线是一种常用的串行通信协议,全称为Serial Peripheral Interface,即串行外围设备接口。

它由Motorola公司在20世纪80年代初提出,并在之后的几十年里得到了广泛应用。

SPI 总线协议利用硬件时序进行通信,因此传输速度较高,被广泛应用于各种嵌入式系统和通信设备中。

SPI总线协议采用一主多从的方式进行通信,其中主设备通过SCLK时钟信号控制数据传输的时序,并通过SS片选信号选择从设备进行通信。

在SPI总线中,每个从设备都有一个对应的片选信号,主设备需要选择某个从设备才能与其进行通信。

数据在传输过程中,通过MOSI主发送、从接收数据,以及MISO主接收、从发送数据,实现双向的数据传输。

SPI总线协议具有以下几个主要特点:1.简单的硬件连接:SPI总线只需要四根线连接,包括SCLK 时钟线、MOSI主发送数据线、MISO主接收数据线和SS从片选信号线。

这种简单的硬件连接使得SPI总线在成本和布线上具有一定的优势。

2.高速的数据传输:SPI总线是同步传输协议,通过时钟信号来控制数据的传输速度。

在SPI总线中,时钟信号的频率可以根据实际需要进行调整,从而实现较高的传输速度。

相比其他串行通信协议,如I2C和UART,SPI总线通常能够提供更高的数据传输速率。

3.可靠的数据传输:由于SPI总线是基于硬件时序的通信协议,所以在数据传输的过程中具有较高的可靠性。

数据传输的时序由主设备控制,从而减少了数据传输过程中产生错误的可能性。

4.灵活的工作模式:SPI总线协议支持多种工作模式,包括全双工、半双工和单工三种。

在全双工模式下,主设备和从设备可以同时进行发送和接收操作;在半双工模式下,主设备和从设备交替进行发送和接收操作;而在单工模式下,只能进行发送或接收操作。

SPI总线协议在各种嵌入式应用中被广泛应用,如存储器、显示屏控制器、传感器等。

同时,SPI总线还可以通过级联的方式连接多个从设备,从而扩展系统的功能。

(完整)spi总线协议详细说明

(完整)spi总线协议详细说明

SPI总线原理与应用篇《电子制作》2008年9月站长原创,如需引用请注明出处大家好,通过以前的学习,我们已经对51单片机综合学习系统的使用方法及学习方式有所了解与熟悉,学会了使用IIC总线的基本知识,体会到了综合学习系统的易用性与易学性,这一期我们将一起学习SPI总线的基本原理与应用实例。

先看一下我们将要使用的51单片机综合学习系统能完成哪些实验与产品开发工作:分别有流水灯,数码管显示,液晶显示,按键开关,蜂鸣器奏乐,继电器控制,IIC总线,SPI 总线,PS/2实验,AD模数转换,光耦实验,串口通信,红外线遥控,无线遥控,温度传感,步进电机控制等等。

主体系统如图1所示,其配套书本教程《单片机快速入门》如图2所示。

图1 51单片机综合学习系统主机部分图片图2 51单片机综合学习系统配套书本教程——《单片机快速入门》上图是我们将要使用的51单片机综合学习系统硬件平台,如图1所示,本期实验我们用到了综合系统主机、板载的AT93C46芯片,综合系统其它功能模块原理与使用详见前几期《电子制作》杂志及后期连载教程介绍。

SPI总线简介SPI总线基本概念SPI ( Serial Peripheral Interface ———串行外设接口) 总线是Motorola公司推出的一种同步串行接口技术。

SPI总线系统是一种同步串行外设接口,允许MCU 与各种外围设备以串行方式进行通信、数据交换。

外围设备包括FLASHRAM、A/ D 转换器、网络控制器、MCU 等。

SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。

其工作模式有两种:主模式和从模式。

SPI是一种允许一个主设备启动一个从设备的同步通讯的协议,从而完成数据的交换。

也就是SPI是一种规定好的通讯方式。

这种通信方式的优点是占用端口较少,一般4根就够基本通讯了(不算电源线)。

spi总线协议

spi总线协议

spi总线协议SPI总线协议。

SPI(Serial Peripheral Interface)是一种用于在数字集成电路之间进行通信的同步串行通信协议。

它通常用于连接微控制器和外围设备,例如存储器芯片、传感器、显示器和无线模块等。

SPI总线协议具有简单、高效、灵活等特点,因此在许多嵌入式系统中得到广泛应用。

本文将对SPI总线协议的基本原理、通信方式、时序特性以及应用进行介绍。

SPI总线协议基本原理。

SPI总线由四根信号线组成,分别为时钟信号(SCLK)、主设备输出(MOSI)、主设备输入(MISO)和片选信号(SS)。

在SPI总线中,通信的主设备通过SCLK信号产生时钟脉冲,控制数据的传输。

MOSI信号用于主设备向从设备发送数据,MISO信号用于从设备向主设备发送数据。

片选信号用于选择从设备,使得主设备可以与多个从设备进行通信。

SPI总线协议通信方式。

SPI总线协议采用全双工通信方式,即主设备和从设备可以同时发送和接收数据。

通信开始时,主设备通过片选信号选择从设备,并在时钟信号的控制下,通过MOSI信号向从设备发送数据,同时从设备通过MISO信号向主设备发送数据。

通信结束后,主设备通过片选信号取消对从设备的选择,从而完成一次数据传输。

SPI总线协议时序特性。

在SPI总线协议中,数据的传输是在时钟信号的控制下进行的。

通常情况下,数据的传输是在时钟的上升沿或下降沿进行的,具体取决于SPI设备的工作模式。

此外,SPI总线协议还可以通过调整时钟信号的极性和相位来适应不同的外设要求,从而实现更灵活的通信方式。

SPI总线协议应用。

SPI总线协议在各种嵌入式系统中得到广泛应用,例如单片机、嵌入式系统、传感器网络等。

在单片机中,SPI总线协议通常用于连接外部存储器、显示器、通信模块等外围设备。

在嵌入式系统中,SPI总线协议可以用于连接各种外设,实现系统的功能扩展和升级。

在传感器网络中,SPI总线协议可以用于连接各种传感器节点,实现数据的采集和传输。

SPI通信协议详解(四)

SPI通信协议详解(四)

SPI通信协议详解(四)1.SPI协议简介板卡内不同芯⽚间通讯最常⽤的三种串⾏协议:UART、I2C、SPI,之前写过串⼝协议及其FPGA实现,今天我们来介绍SPI协议,SPI是Serial Perripheral Interface的简称,是由Motorola公司推出的⼀种⾼速、全双⼯的总线协议。

与IIC类似,SPI也是采⽤主从⽅式⼯作,主机通常为FPGA、MCU或DSP等可编程控制器,从机通常为EPROM、Flash,AD/DA,⾳视频处理芯⽚等设备。

⼀般由SCLK、CS、MOSI,MISO四根线组成,有的地⽅可能是:SCK、SS、SDI、SDO等名称,都是⼀样的含义,当有多个从机存在时,通过CS来选择要控制的从机设备。

和标准SPI类似的协议,还有TI的SSP协议,区别主要在⽚选信号的时序上。

2.4线还是3线?当我们谈到SPI时,默认情况下都是指标准的4线制Motorola SPI协议,即SCLK,MOSI,MISO和CS共4根数据线,标准4线制的好处是可以实现数据的全双⼯传输。

当只有⼀个主机和⼀个从机设备时,只需要⼀个CS,多个从机需要多个CS,各数据线的介绍:SCLK,时钟信号,时钟频率即SPI速率,和SPI模式有关MOSI,主机输出,从机输⼊MISO,主机输⼊,从机输出CS,从机设备选择,低电平有效3线制SPI,根据不同的应⽤场景,主要有以下2种类型:只有3根线:SCLK,CS和DI或DO,适⽤于单⼯通讯,主机只发送或接收数据。

只有3根线:SCLK,SDIO和CS,这⾥的SDIO作为双向端⼝,适⽤于半双⼯通讯,⽐如ADI的多款ADC芯⽚都⽀持双向传输。

在使⽤FPGA操作双向端⼝时,作为输⼊时要设置为⾼阻态z。

还有标准SPI协议的升级版,Dual SPI、Quad SPI和QPI等,这些协议不在本⼩节3线/4线制讨论的范围内,⽂章后⾯会提到。

3.4种⼯作模式既然是进⾏数据传输,双⽅就要明确从机在什么时刻去采样主机发出的数据,主机在什么时刻去读取从机发来的数据。

SPI总线协议介绍

SPI总线协议介绍

SPI总线协议介绍1.SPI总线协议介绍串行外围设备(接口)(Serial Peripheral Interface,SPI)是一种高速、全双工、同步(通信)总线,常用于(单片机)和E2PROM、FLASH、(实时时钟)、(数字信号)(处理器)等器件之间的通信,它主要是主从方式通信,通常只有一个主机和多个从机。

标准SPI协议有4根线,SCLK(必须存在),其他三条线(MOSI、MISO、CS)都可以根据实际情况进行删减。

SCLK:(时钟)(信号),由主机产生( 必须存在)MOSI:主机给从机发送指令或数据的通道MISO:主机读取从机的状态或数据的通道CS:从机片选使能信号在同一时刻,主机只能跟一个从机进行通信。

当总线上存在多个从机时,需要进行片选将从机的CS接口电平拉高或拉低。

2.SPI总线寻址模式SPI协议和(I2C)协议一样,数据是从高位到低位依次发送,SPI协议中SCLK在空闲时可以是高电平也可以是低电平。

下面以空闲时,SCLK为高电平举例。

当SCLK出现下降沿即从高电平跳到低电平时,进行数据输出;当SCLK出现上升沿即从低电平跳到高电平时,进行数据采样。

SPI总线寻址模式和I2C协议相比,SPI协议没有开始位、停止位、应答位,规则上简单很多。

SPI协议中SCLK在空闲时可以是高电平也可以是低电平,这其实反映了时钟的极性。

上图中,CPOL=1,CPHA=1 。

CPOL时钟极性:CPOL=0,SCLK空闲时状态为低电平CPOL=1,SCLK空闲时状态为高电平时钟的相位:它决定了什么时候进行数据输出,什么时候进行数据采样。

CPHA时钟相位:CPHA=0,每个周期的第一个跳变沿进行数据采样CPHA=1,每个周期的第一个跳变沿进行数据输出。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SPI通信协议(SPI总线)学习1、什么是SPI?SPI是串行外设接口(Serial Peripheral Interface)的缩写。

是Motorola 公司推出的一种同步串行接口技术,是一种高速的,全双工,同步的通信总线。

2、SPI优点支持全双工通信通信简单数据传输速率块3、缺点没有指定的流控制,没有应答机制确认是否接收到数据,所以跟IIC总线协议比较在数据可靠性上有一定的缺陷。

4、特点1):高速、同步、全双工、非差分、总线式2):主从机通信模式5、协议通信时序详解1):SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。

也是所有基于SPI的设备共有的,它们是SDI(数据输入)、SDO(数据输出)、SCLK(时钟)、CS(片选)。

(1)SDO/MOSI – 主设备数据输出,从设备数据输入;(2)SDI/MISO – 主设备数据输入,从设备数据输出;(3)SCLK – 时钟信号,由主设备产生;(4)CS/SS – 从设备使能信号,由主设备控制。

当有多个从设备的时候,因为每个从设备上都有一个片选引脚接入到主设备机中,当我们的主设备和某个从设备通信时将需要将从设备对应的片选引脚电平拉低或者是拉高。

2):需要说明的是,我们SPI通信有4种不同的模式,不同的从设备可能在出厂是就是配置为某种模式,这是不能改变的;但我们的通信双方必须是工作在同一模式下,所以我们可以对我们的主设备的SPI模式进行配置,通过CPOL(时钟极性)和CPHA(时钟相位)来控制我们主设备的通信模式,具体如下:Mode0:CPOL=0,CPHA=0Mode1:CPOL=0,CPHA=1Mode2:CPOL=1,CPHA=0Mode3:CPOL=1,CPHA=1时钟极性CPOL是用来配置SCLK的电平出于哪种状态时是空闲态或者有效态,时钟相位CPHA 是用来配置数据采样是在第几个边沿:CPOL=0,表示当SCLK=0时处于空闲态,所以有效状态就是SCLK处于高电平时CPOL=1,表示当SCLK=1时处于空闲态,所以有效状态就是SCLK处于低电平时CPHA=0,表示数据采样是在第1个边沿,数据发送在第2个边沿CPHA=1,表示数据采样是在第2个边沿,数据发送在第1个边沿例如:CPOL=0,CPHA=0:此时空闲态时,SCLK处于低电平,数据采样是在第1个边沿,也就是SCLK由低电平到高电平的跳变,所以数据采样是在上升沿,数据发送是在下降沿。

CPOL=0,CPHA=1:此时空闲态时,SCLK处于低电平,数据发送是在第1个边沿,也就是SCLK由低电平到高电平的跳变,所以数据采样是在下降沿,数据发送是在上升沿。

CPOL=1,CPHA=0:此时空闲态时,SCLK处于高电平,数据采集是在第1个边沿,也就是SCLK由高电平到低电平的跳变,所以数据采集是在下降沿,数据发送是在上升沿。

CPOL=1,CPHA=1:此时空闲态时,SCLK处于高电平,数据发送是在第1个边沿,也就是SCLK由高电平到低电平的跳变,所以数据采集是在上升沿,数据发送是在下降沿。

需要注意的是:我们的主设备能够控制时钟,因为我们的SPI通信并不像UART或者IIC通信那样有专门的通信周期,有专门的通信起始信号,有专门的通信结束信号;所以我们的SPI协议能够通过控制时钟信号线,当没有数据交流的时候我们的时钟线要么是保持高电平要么是保持低电平。

6、内部工作机制SSPSR 是SPI 设备内部的移位寄存器(Shift Register). 它的主要作用是根据SPI时钟信号状态, 往SSPBUF 里移入或者移出数据, 每次移动的数据大小由Bus-Width 以及Channel-Width 所决定.最后,再附上用IO口来模拟的四种SPI模式程序,仅作参考理解用,还要根据实际情况改写,如下://表示相关引脚高低电平,要根据实际引脚修改。

SSEL_D(0) SSEL_D(1) //片选SCK_D(0) SCK_D(1) //时钟信号MOSI_D(0) MOSI_D(1) //SDOMISO_I(0) MISO_I(1) //SDI#define _CPOL 1 //时钟极性#define _CPHA 0 //时钟相位//延时子程序void delay(){unsigned char m,n;for(n=0;n<5;n++);for(m=0;m<100;m++);}/**********************************************模式零写数据***********************************************/ #if _CPOL==0&&_CPHA==0 //MODE 0 0 void SPI_Send_Dat(unsigned char dat){unsigned char n;for(n=0;n<8;n++){SCK_D(0);if(dat&0x80)MOSI_D(1);else MOSI_D(0);dat<<=1;SCK_D(1);}SCK_D(0);}/*********************************************模式零读数据*********************************************/ unsigned char SPI_Receiver_Dat(void){unsigned char n ,dat,bit_t;for(n=0;n<8;n++){SCK_D(0);dat<<=1;if(MISO_I())dat|=0x01;else dat&=0xfe;SCK_D(1);}SCK_D(0);return dat;}#endif/*********************************************模式一写数据*********************************************/ #if _CPOL==0&&_CPHA==1 //MODE 0 1 void SPI_Send_Dat(unsigned char dat){unsigned char n;SCK_D(0);for(n=0;n<8;n++){SCK_D(1);if(dat&0x80)MOSI_D(1);else MOSI_D(0);dat<<=1;SCK_D(0);}}/*********************************************模式一读数据*********************************************/ unsigned char SPI_Receiver_Dat(void){unsigned char n ,dat,bit_t;for(n=0;n<8;n++){SCK_D(1);dat<<=1;if(MISO_I())dat|=0x01;else dat&=0xfe;SCK_D(0);}SCK_D(0);return dat;}#endif/**********************************************模式二写数据***********************************************/ #if _CPOL==1&&_CPHA==0 //MODE 1 0 void SPI_Send_Dat(unsigned char dat){unsigned char n;for(n=0;n<8;n++){SCK_D(1);if(dat&0x80)MOSI_D(1);else MOSI_D(0);dat<<=1;SCK_D(0);}SCK_D(1);}/*********************************************模式二读数据*********************************************/ unsigned char SPI_Receiver_Dat(void){unsigned char n ,dat,bit_t;for(n=0;n<8;n++){SCK_D(1);dat<<=1;if(MISO_I())dat|=0x01;else dat&=0xfe;SCK_D(0);}SCK_D(1);return dat;}#endif/**********************************************模式三写数据***********************************************/ #if _CPOL==1&&_CPHA==1 //MODE 1 1 void SPI_Send_Dat(unsigned char dat){unsigned char n;SCK_D(1);for(n=0;n<8;n++){SCK_D(0);if(dat&0x80)MOSI_D(1);else MOSI_D(0);dat<<=1;SCK_D(1);}/************************************模式三读数据************************************/ unsigned char SPI_Receiver_Dat(void){unsigned char n ,dat,bit_t;SCK_D(0);for(n=0;n<8;n++){ SCK_D(0);dat<<=1;if(MISO_I())dat|=0x01;else dat&=0xfe;SCK_D(1);}SCK_D(1);return dat;}#endifvoid main(){SPI_Init();DDRB = 0XFF;//#if _CPOL//SCK_D(0);//#endifwhile(1){//SSEL_D(0);//SPI_Send_Dat(0x01);//SPI_Send_Dat(0x31);//SSEL_D(1);SSEL_D(0);SPI_Send_Dat(0x81);PORTB =SPI_Receiver_Dat();SSEL_D(1);//delay();}。

相关文档
最新文档