📄 spi.c
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -