⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 io.c

📁 基于ARM的电梯控制程序
💻 C
字号:
/****************************************************************************
文件名:IO.c
功  能:IO口驱动文件
****************************************************************************/
#include "config.h"
/****************************************************************************
* 名称:IOInit()
* 功能:初始化SPI0及IO口,设置为主机。
* 入口参数:无
* 出口参数:无
****************************************************************************/
void IOInit(void)
{  
	PINSEL0 |= 0x00005500;			// 设置SPI0管脚连接
	IO1DIR |=(ST|PS);				// 设置ST与PS引脚为输出
	S0SPCCR = 0x52;					// 设置SPI0时钟分频
	S0SPCR = 0x30;		    		// 设置SPI0接口模式,MSTR=1,CPOL=1,CPHA=0,LSBF=0
}

/****************************************************************************
* 名称:SendoutputData()
* 功能:向SPI总线发送数据
* 入口参数:data        待发送的16位数据
* 出口参数:no
****************************************************************************/
void  SendoutputData(uint16 data)
{  
   //uint16 result;					// 临时变量
   IO1CLR = ST;			    		// 锁存595数据
   
   S0SPDR = (data>>8);				// 发送高8位
   while( 0==(S0SPSR&0x80) );		// 等待SPIF置位,即等待数据发送完毕
  
   
   S0SPDR = (data&0xff);				// 发送低8位
   while( 0==(S0SPSR&0x80) );		// 等待SPIF置位,即等待数据发送完毕
   
   IO1SET = ST;						// 595数据输出
   
   
}
/****************************************************************************
* 名称: RcvinputData()
* 功能:向SPI总线发送数据,并接收从机发回的数据。
* 入口参数:data        I/O输出值
* 出口参数:返回值为接收到的16位数据
****************************************************************************/
uint16  RcvinputData(uint16 data)
{  
   uint16 result;					// 临时变量
  IO1CLR = ST;						// 595数据输出
   
   IO1SET = PS;			    		// 将4021的数据锁入锁存器
   
   IO1CLR = PS;
   
   S0SPDR = (data>>8);				// 发送高8位
   while( 0==(S0SPSR&0x80) );		// 等待SPIF置位,即等待数据发送完毕
   //DelayNS(10);
   result=S0SPDR;					// 得到输入的高8位数据
   result=(result<<8);				// 移入高8位
   
   S0SPDR = (data&0xff);				// 发送低8位
   while( 0==(S0SPSR&0x80) );		// 等待SPIF置位,即等待数据发送完毕
   //DelayNS(10);
   result|=S0SPDR;					// 放入低8位
   
  IO1SET = ST;						// 595数据输出
   
   return(result);  				// 返回输入的16位数据
}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -