此函数把SPI的读写功能集成在一块,传递的val既是向SPI写的数据,也是从SPI读取的数据,只需要在执行读或写之前把MCU的I/O脚设置成相应的输出或输入即可。(因为在大部分应用中,是把SPI的DI

源代码在线查看: 一个高效的模拟spi的读写函数.txt

软件大小: 2 K
上传用户: zaindyclg
关键词: SPI MCU val 数据
下载地址: 免注册下载 普通下载 VIP

相关代码

				一个高效的模拟SPI的读写函数。  
				  
				  unsigned char RW_SPI(unsigned char val){
				 unsigned char BitCounter;
				 for (BitCounter=8;BitCounter!=0;BitCounter--){ 
				  CLK=0;
				  //write 
				  DI=0;
				  if(val&0x80)                                
				   DI=1;
				  val				  CLK=1;
				  //read 
				  if(DO)
				   val =1;                                       
				
				 }
				 CLK=0;
				 return val;
				}
				
				此函数把SPI的读写功能集成在一块,传递的val既是向SPI写的数据,也是从SPI读取的数据,只需要在执行读或写之前把MCU的I/O脚设置成相应的输出或输入即可。(因为在大部分应用中,是把SPI的DI和DO相连并用MCU的一个IO口来读写)。
				
				调用示例:
				
				#define NULL 0
				
				SETIO=OUTPUT;
				CS=0;
				 RW_SPI(0xab);
				 CS=1;
				
				//向SPI写0xab数据。
				
				  
				
				CS=0;
				 SETIO=INPUT;
				
				 Byte=RW_SPI(NULL);                  //这里传递的NULL是没有任何意义的,可以是任何数据,只是为了保证函数
				
				                                                               //的格式.
				CS=1;
				
				//读取SPI数据。
				
				  
				此函数对于许多低档片子来模拟SPI非常有用,代码量小,功能齐全。稍微修改,可以模拟SPI的其它模式。
				
				 
				
							

相关资源