📄 spi.c
字号:
/*****************************************************************************************************
* 华南理工大学
* 机械工程学院 焊接研究所
* South China University of Technology
* (c) Copyright 2006, Leon Lee
* All Rights Reserved
*
* 项目名称: ARM_STUD_CONTROLLER.UV2
*
* 文件名称: SPI.c
*
* 作 者: Happy Xu
*
* 描 述: 基于PHILIPS LPC2136/38控制的逆变电源控制器焊接过程控制程序
*
* 备 注:
*
* 版 本:
* 版本号 | 日 期 | 签 名 | 描述
* ------------+----------+----------+----------------------------------------------
* V1.0 |2007/11/28| Happy Xu | 原始版本
* ------------+----------+----------+----------------------------------------------
*
*****************************************************************************************************/
#include "Arm-stud_Controller.h"
/***************************************************************************************************
** 函数名称: SSEL_OP
** 功能描述: SPI片选信号
** 输入参数: 无
**
** 输出参数: 无
**
** 全局变量: 无
** 调用模块:
**--------------------------------------------------------------------------------------------------
** 作 者: Happy Xu
** 日 期: 2007/11/28
***************************************************************************************************/
void SSEL0_OP(BOOLEAN op)
{
if (op == LOW) P0Reg.IOCLR.all = 1<<19;
else P0Reg.IOSET.all = 1<<19;
}
/***************************************************************************************************
** 函数名称: SPI_Init
** 功能描述: SPI口初始化,主模式,查询方式.
** 输入参数: 无
**
** 输出参数: 无
**
** 全局变量: 无
** 调用模块:
** 函数说明:数据在SCK的第一个时钟沿采样,SCK位低有效,Master模式,SPI数据传输MSB在先,SPI中断禁止
**--------------------------------------------------------------------------------------------------
** 作 者: Happy Xu
** 日 期: 2007/11/28
***************************************************************************************************/
void MSPI0_Init(void)
{
SpiReg.SPCCR = 0x52; // Maximum SCK FREQ:F_VPB/82
SpiReg.SPCR.all = (0<<3) | (0<<4) | (1<<5) | (0<<6) | (0<<7);
}
/***************************************************************************************************
** 函数名称: SendData
** 功能描述: 发送一字节数据
** 输入参数: data:一字节数据
**
** 输出参数: 无
**
** 全局变量: 无
** 调用模块:
**--------------------------------------------------------------------------------------------------
** 作 者: Happy Xu
** 日 期: 2007/11/28
***************************************************************************************************/
U8 SendByte(U8 data)
{
SpiReg.SPDR = data;
while(SpiReg.SPSR.bit.SPIF == 0);
return(SpiReg.SPDR);
}
/***************************************************************************************************
** 函数名称: RcvData
** 功能描述: 接收一字节数据
** 输入参数: 无
**
** 输出参数: 接收到的一字节数据
**
** 全局变量: 无
** 调用模块:
** 函数描述:如果读M25P16,介意使用FAST READ,因为发送一个dummy byte,可以接受到一个字节数据
**--------------------------------------------------------------------------------------------------
** 作 者: Happy Xu
** 日 期: 2007/11/28
***************************************************************************************************/
U8 RcvByte(void)
{
U8 data = 0xff;
SpiReg.SPDR = data;
while(SpiReg.SPSR.bit.SPIF == 0);
return(SpiReg.SPDR);
}
/****** End of File (SPI.c) ******/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -