SPI是一种全双工串行接口,可处理多个连接到指定总线上的主机和从机。在数据传输过程中总线上只能有一个主机和一个从机通信。在数据传输中,主机总是会向从机发送一帧8到16个位的数据,而从机也总会向主机发送一帧字节数据

使用代码如下

void SpiInit(SPI_SPEED speed)

{

u8 div=25000000/speed;

LPC_SC->PCONP |= (1 << 8);//打开SPI时钟

LPC_SC->PCONP |= (1<<15);//打开GPIO时钟

//sck

LPC_PINCON->PINSEL0 &= ~(0x03u<<30);

LPC_PINCON->PINSEL0 |= (0x03u<<30);

//csn

LPC_PINCON->PINSEL1 &= ~(0x03<<0);

//  LPC_PINCON->PINMODE1 &= ~(0x03<<0);

//  LPC_PINCON->PINMODE_OD0 &= ~(0x01<<16);

P0dir(16) = 1;

//miso

LPC_PINCON->PINSEL1 &= ~(0x03<<2);

LPC_PINCON->PINSEL1 |= (0x03<<2);

//mosi

LPC_PINCON->PINSEL1 &= ~(0x03<<4);

LPC_PINCON->PINSEL1 |= (0x03<<4);

SPI_CS_HIGH;

//spi接口初始化 每次8位数据 sck上升沿采样 sck高有效 主模式 禁止中断 msb高位在前

LPC_SPI->SPCR = (0<<BIT_ENABLE_POSITION)|(0<<CPHA_POSITION)|(1<<CPOL_POSITION)|(1<<MSTR_POSITION)\

|(0<LSBF_POSITION)|(0<<SPIE_POSITION)|(0x08<<BITS_POSITION);

if(div<8)div=8;

LPC_SPI->SPCCR=div;

}

u8 SpiRW(u8 writeData)

{

LPC_SPI->SPDR=writeData;

while((LPC_SPI->SPSR & 0x80)!=0x80);

writeData=(LPC_SPI->SPDR)&0xff;

return writeData;

}

void SpiSetSpeed(SPI_SPEED speed)

{

u8 div=25000000/speed;

if(div<8)div=8;

LPC_SPI->SPCCR=div;

}

void SpiSetSpeedHigh(void)

{

SpiSetSpeed(SPI_SPEED5);

}

void SpiSetSpeedLow(void)

{

SpiSetSpeed(SPI_SPEED1);

}

LPC1768的SPI通讯的更多相关文章

  1. LPC1768的iic通讯

    LPC1768有三路IIC,其中IIC0支持高速模式和plus模式,另外两路是普通IIC,使用IIC的过程如下 首先依然是打开IIC时钟,同时打开GPIO时钟 然后配置引脚为IIC功能 另外,因为ii ...

  2. [Andorid] 通过JNI实现kernel与app进行spi通讯

    CPU:RK3399 系统:Android 7.1 人脸识别的要求越来越高,因此主板增加了 SE 加密芯片,加密芯片通过 spi 接口与 CPU 通讯. 对于 kernel 层的代码,Linux 原始 ...

  3. Linux学习 :SPI通讯协议

    SPI接口的全称是"Serial Peripheral Interface",意为串行外围接口,是Motorola首先在其MC68HCXX系列处理器上定义的.SPI接口主要应用在E ...

  4. LPC1768的IIS通讯

    IIS是飞利浦公司定义的一种用于音频传输的数字总线,LPC1768支持该总线, I2S接口为一条3线串行总线,含有1根数据线.1根时钟线和1根字选择信号线.基本的I2S连接具有一个主机(其总是为主机) ...

  5. SPI通讯协议

    一.SPI概述 SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口.SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线, ...

  6. SPI通讯(Serial Peripheral interface)

    1. SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线:SCLK,MISO,MOSI,CS 2. SPI结构简图: 可以看出,SPI主从设备两端都有一个位移寄存器,数据在位 ...

  7. MFRCC522 SPI无法通讯【worldsing笔记】

    用单片机于MRFC522与单片接时,加上485通讯后出现很诡异的像: 只要485芯片上有收到外部发送的信号时RC522就死掉,经过仿真卡在了SPI的收发部分(等待回复) u8 MFRC522Write ...

  8. STM32学习笔记——SPI串行通讯(向原子哥学习)

    一.SPI  简介 SPI是 Serial Peripheral interface 的缩写,就是串行外围设备接口.SPI 接口主要应用在  EEPROM, FLASH,实时时钟,AD 转换器,还有数 ...

  9. 详解SPI中的极性CPOL和相位CPHA

    SPI由于接口相对简单(只需要4根线),用途算是比较广泛,主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间.即一个SPI的Master通过SPI与一个 ...

随机推荐

  1. Spring Autowired错误???

    @SpringBootApplicationpublic class TestMqApplication extends SpringBootServletInitializer { @Suppres ...

  2. BZOJ 3551 Peaks加强版

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3551 题意:给出一个图,n个点,m条边.边有权值点也有权值.若干询问,(v,x,k),问从 ...

  3. hdu----(1528)Card Game Cheater(最大匹配/贪心)

    Card Game Cheater Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...

  4. tomcat部署javaweb项目的三种方式

    一.将项目文件夹或war包直接拷贝到tomcat的webapps下 二.在Tomcat\conf\Catalina\localhost下建立xml文件 修改内容如下<Context path=& ...

  5. iOS7——图像资源Images Assets

    iOS7初体验(3)——图像资源Images Assets 分类: iOS开发2013-06-18 16:02 17583人阅读 评论(2) 收藏 举报 ios7Images xcassets图像资源 ...

  6. Kotlin 的优缺点

    从Android 7.0开始,谷歌使用的API从Oracle JDK切换到了open JDK,这对于谷歌来说是一个艰难的决定.对于开发者来说,却倍感兴奋,这意味着长期的官司问题也许就此结束,Andro ...

  7. Windows 自动启动 bat

    创建文件,然后把这个文件放到window开机自动执行的目录中,之后的每次开机都会重新启动这个脚本 cd /d %~dp0 %1 start "" mshta vbscript:cr ...

  8. 从AST编译解析谈到写babel插件

    之前一直在掘金上看到一些关于面试写babel插件的文章,最近也在学,以下就是学习后的总结. 关键词:AST编译解析, babel AST编译解析 AST[维基百科]:在计算机科学中,抽象语法树(Abs ...

  9. Beanutils.copyProperties( )的使用与优化

    1.使用原因 因为现在都是前后端分离所以我们在响应APP端或者前端的时候会维护一套VO,那么DTO到VO的转换便是一堆get... set...这样的代码,比如好几个地方用到的话还要去复制粘贴来转换. ...

  10. AngularJS AOP 实例

    AngularJS有种机制叫做拦截器(interceptor),它是$http扩展点,类似ASP.NET MVC的过滤器filter机制,对每个$http请求的发送和接收过程进行过滤. $httpPr ...