📄 spi0.c
字号:
/*******************************************************************************************************
** 北京同方清芝商用机器有限公司
** 研 发 部
**
** http://www.btfts.com
**
**--------------文件信息--------------------------------------------------------------------------------
**文 件 名: SPI0.c
**创 建 人: 李森树
**创 建 日 期: 2007年3月16日
**最后修改日期:
**描 述: LPC2214的SPI0主模式底层驱动程序
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#define IN_SPI0
#include "config.h"
#ifndef SPI_MOD
#define SPI_MOD 0
#endif
/*********************************************************************************************************
** 函数名称: SPI0Init
** 功能描述: 初始化SPI总线为主模式
** 输 入: Fdiv:用于设定总线频率(总线频率=Fpclk/Fdiv)
** 输 出: 无
********************************************************************************************************/
void SPI0Init(uint8 Fdiv)
{
PINSEL0 = (PINSEL0 & (~(0x3f<<8))) | (0x15<<8); // P0.4 P0.5 P0.6管脚为SPI0 其中P0.7配置为GPIO
S0PCCR = Fdiv & 0xfe; // 分频值 要求大于或等于8的偶数值
S0PCR = (0<<3) | // CPHA=0,数据在SCK的第一个时钟沿采样
(0<<4) | // CPOL=0,SCK为高有效
(1<<5) | // MSTR=1,SPI处于主模式
(0<<6) | // LSBF=0,SPI数据传输MSB(位7)在先
(0<<7) ; // SPIE=1,SPI中断被禁止
}
/*********************************************************************************************************
** 函数名称: HostSPI_SendData()
** 功能描述: SPI总线为主模式,主机向总线发送数据,并带回一个数据
** 输 入: data 待发送的数据
** 输 出: 返回值为读取的数据
********************************************************************************************************/
uint8 HostSPI_SendData(uint8 data)
{
S0PDR = data;
while(0 == (S0PSR & 0x80));//等待SPIF置位,即等待数据发送完毕
return(S0PDR);
}
/*********************************************************************************************************
** End Of File
**********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -