spi.c

来自「完整的原创单片机控制彩色液晶源代码(keil工程) 320x240液晶模块底层」· C语言 代码 · 共 29 行

C
29
字号
#include <LPC213x.h>
//#include "mytype.h"	//此文件包含uint等类型定义
//#include "myclock.h"	//此文件包含系统时钟 主要用于设定分频计数器的值
//#include "mygpio.h"	//此文件包含操作GPIO的宏定义

#include "SPI0.h"

#include "SPI.h"
//====================================================================================
void MSPIInit(void)
{  
	PINSEL0 = (PINSEL0 & (~(0xFF << 8))) | (0x55 << 8);	// 设置管脚连接SPI
	S0SPCCR = 8;
	//设置SPI时钟分频
	//必须为大于等于8的偶数
 	S0SPCR  = CPHA1 |	// CPHA = 0, 数据在SCK 的第一个时钟沿采样
			  CPOL1 |	// CPOL = 1, SCK 为低有效
 			  MSTR  |	// MSTR = 1, SPI 处于主模式
 			  MSB   |	// LSBF = 0, SPI 数据传输MSB (位7)在先
 			  SPIE0;	// SPIE = 0, SPI 中断被禁止
}
//====================================================================================
unsigned char MSPISendData(unsigned char data)
{
    S0SPDR = data;	//写待发送数据
    while((S0SPSR & 0x80) == 0);	// 等待SPIF置位,即等待数据发送完毕
    return (S0SPDR);	//返回MISO值 //其实大多是情况只有一个方向数据有意义
}

⌨️ 快捷键说明

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