您好,欢迎进入皇冠游戏中心官网有限公司官网!

咨询热线:

400-888-8888

SPI续篇:注意事项与实现

发布时间:2024-06-02人气:
本文摘要:SPI总线有四种工作方式(SPI0,SPI1,SPI2,SPI3),其中用于的尤为普遍的是SPI0和SPI3方式。

皇冠游戏中心官网

SPI总线有四种工作方式(SPI0,SPI1,SPI2,SPI3),其中用于的尤为普遍的是SPI0和SPI3方式。时钟极性CPOL是用来配备SCLK的电平出于哪种状态时是空闲态或者有效地态,时钟振幅CPHA是用来配备数据取样是在第几个边沿:CPOL=0,回应当SCLK=0时正处于空闲态,所以有效地状态就是SCLK正处于高电平时CPOL=1,回应当SCLK=1时正处于空闲态,所以有效地状态就是SCLK正处于低电平时CPHA=0,回应数据取样是在第1个边沿,数据发送到在第2个边沿CPHA=1,回应数据取样是在第2个边沿,数据发送到在第1个边沿如上图,乃SPI四种模式的时序图: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讲解完了。首先确认了单片机A(MasterMCU1)居多模式,单片机B(SlaveMCU1)为从模式。

各自也配备好了SLCK,MOSI,MISO和SCK的io插槽。自由选择了配置文件的SPI0模式。原理图如下:按图相连好后,展开了“试音”阶段。

单片机A发送到1—10的数字给了单片机B;单片机B接到后,用流水灯作为对此。①:数据发送到程序(主机仅有发送到)#defineucharunsignedchar#defineuintunsignedint#defineulongunsignedlong//---------------------------#include#include//---------------------------sbitSPICLK=P1^0;//时钟信号sbitMOSI=P1^1;//主器件数据输入,从器件数据输出sbitMISO=P1^2;//主器件数据输出,从器件数据输入sbitSS=P1^3;//从器件使能信号voidDat_Transmit(uchardat)//发送数据程序{uchari,datbuf;//主机数据储存寄存器datbuf=dat;SS=1;while(SS){;}for(i=0;i<8;i++)//{while(SPICLK){;}if(datbuf&0x80)MISO=1;elseMISO=0;datbuf=(datbuf<<1);while(~SPICLK){;}}}voidmain(void){uchari;while(1){for(i=0;i<10;i++){Dat_Transmit(i);}}}②:数据接管程序(从机仅有接管)#defineucharunsignedchar#defineuintunsignedint#defineulongunsignedlong//---------------------------#include#include//---------------------------sbitSPICLK=P1^0;//时钟信号sbitMOSI=P1^1;//主器件数据输入,从器件数据输出sbitMISO=P1^2;//主器件数据输出,从器件数据输入sbitSS=P1^3;//从器件使能信号//---------------------------voidNop(void){;}voidDelay(uchart){while(t--){;}}ucharData_Receive(void)//数据接管程序{uchari,dat=0,temp;bitbt;SPICLK=1;MISO=1;SS=0;//顺位器件Nop();Nop();for(i=0;i<8;i++){SPICLK=1;Nop();Nop();Nop();SPICLK=0;Nop();Nop();bt=MISO;if(bt)temp=0x01;elsetemp=0x00;dat=(dat<<1);dat=(dat|temp);}SS=1;SPICLK=1;returndat;}voidmain(void){ucharexdat;uchari=0;ucharcodetable[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};P2=0;while(1){exdat=Data_Receive();P0=table[exdat];for(i=0;i<200;i++)Delay(200);}}SPI总线留意点:1、Master配备SPI模块时钟的时候一定要考虑到从设备的操作者时序拒绝,因为Master这边的时钟极性和振幅都是以Slave为基准的。

因此在时钟极性的配备上一定要确认Slave是在SCK的上升沿还是下降沿输入数据,是在SCK的下降沿还是上升沿接收数据。2、当Slave时钟频率大于Master时钟频率时,如果Master的SCK的速率太快,不会经常出现Slave接管到的数据不准确,而SPI模块又没接收者机制证实Slave否接管到数据从而造成通信传输数据错误。

3、SPI总线系统是一种实时串行外设模块,它可以使MCU与各种外围设备以串行方式展开通信以互相交换信息。除了MCU,还有FLASHRAM、网络控制器、LCD表明驱动器和A/D转换器等外围设置。4、上面的代码所用指令是STC89C51单片机所用如只用其它芯片请求自行变更。

以上所有信息仅有作为自学交流用于,不作为任何自学和商业标准。若您对文中任何信息有异议,青睐随时明确提出,谢谢!关于云创软闻云创软闻是国内最不具特色的电子工程师社区,融合了行业资讯、社群对话、培训自学、活动交流、设计与生产分包等服务,以开放式硬件创意技术交流和培训服务为核心,相连了多达30万工程师和产业链上下游企业,探讨电子行业的科技创新,单体最有一点注目的产业链资源,致力于为百万工程师和创意创业型企业打造出一站式公共设计与生产服务平台。


本文关键词:皇冠游戏中心官网,SPI,续篇,注意事项,与,实现,SPI,总线,有,四种

本文来源:皇冠游戏中心官网-www.sriingenieria.com


400-888-8888