历史上的今天
今天是:2024年08月23日(星期五)
2021年08月23日 | LPC1788的spi使用
2021-08-23 来源:eefocus
#ifndef __SPI_H_
#define __SPI_H_
#include "common.h"
#include "delay.h"
// cs p1.21
//sck p1.20
//miso p1.23
//mosi p1.24
#define SPI_CLOCK 12000000
void spi0_select_cs(void);
void spi0_disSelect_cs(void);
u8 spi0_rw_data(u8 writeByte);
void spi0_set_speed(u8 speed);
void spi0_init(u8 divide);
#endif
#include "spi.h"
void spi0_select_cs(void)
{
P1low(21) = 1;
}
void spi0_disSelect_cs(void)
{
P1high(21) = 1;
}
u8 spi0_rw_data(u8 writeByte)
{
u8 retry = 200;
u8 readByte;
while(!(LPC_SSP0->SR&0x01))//等待发送完成
{
retry--;
DelayUs(1);
if(retry == 0)return 1;
}
LPC_SSP0->DR = (u16)writeByte;
retry = 200;
while(!(LPC_SSP0->SR&0x04))
{
retry--;
DelayUs(1);
if(retry == 0)return 1;
}
readByte = (u8)LPC_SSP0->DR;
return readByte;
}
void spi0_set_speed(u8 divide)
{
LPC_SSP0->CR1 &= ~(1<<1);//停止spi
LPC_SSP0->CR0 |= ((SPI_CLOCK/(divide-1))<<8);
LPC_SSP0->CR1 |= (1<<1);//启动spi
}
void spi0_init(u8 divide)
{
//打开SPI时钟和io口时钟
LPC_SC->PCONP |= (1<<15)|(1<<21);//打开时钟
//配置cs
LPC_IOCON->P1_21 = 0x00;//选择gpio功能,禁止迟滞 不反向 正常推挽
LPC_IOCON->P1_21 |= (2<<3);//上拉
P1dir(21) = 1;//输出
P1high(1) = 1;//为高
LPC_IOCON->P1_20 = 0x00;//选择禁止迟滞 不反向 正常推挽
LPC_IOCON->P1_20 |= (2<<3)|(5<<0);//上拉 ssp clk
LPC_IOCON->P1_23 = 0x00;//选择禁止迟滞 不反向 正常推挽
LPC_IOCON->P1_23 |= (2<<3)|(5<<0);//上拉 ssp miso
LPC_IOCON->P1_24 = 0x00;//选择禁止迟滞 不反向 正常推挽
LPC_IOCON->P1_24 |= (2<<3)|(5<<0);//上拉 ssp mosi
//spi接口初始化
LPC_SSP0->CR0 = 0x0000;
LPC_SSP0->CR1 = 0x00000000;//正常操作,主机模式
LPC_SSP0->CR0 |= (7<<0)|(1<<6)|(1<<7)|((SPI_CLOCK/(divide-1))<<8);//8位数据 cpol cpoa
LPC_SSP0->CPSR = ApbClock/SPI_CLOCK;
LPC_SSP0->IMSC = 0x00000000;//禁止中断
LPC_SSP0->CR1 |= (1<<1);//启动spi
}
史海拾趣
|
爱普生今向我们推荐了一个控制器S1D13775BGA,他们说用他们的IC可以支持WVGA(800*480)的屏;不知有没哪位大侠做过?… 查看全部问答> |
|
都来说说你是如何学习wince 驱动的(请大牛们也来凑凑热闹) 我想大家也知道,论坛和一些QQ技术交流群很多新手都会问:应该如何学习wince驱动?以前很多时间,也打字打的手痛。也不敢说的太多,怕误人子弟。现在在这里开个帖子,希望老牛们不吝赐教新手,呵呵。大家照着下面的问题回答,或者补充 ...… 查看全部问答> |
|
一、 LED照明驱动方法 1. 网友问:AC-DC转换中,有些是非隔离的,这种电路在安规方面是否有问题?现在大功率产品的结构模式都是金属外壳和铝基电路板,外壳与电路板紧密连接,电气隔离仅在铝基板上实现,请问专家如何看待这个问题? 专家解答:第一 ...… 查看全部问答> |
|
之前,我们介绍了如何对正向转换器输出整流器开启期间两端的电压进行缓冲。现在我们来研究如何对反向转换器的FET关断电压进行缓冲。 $(\'swf_hgc\').innerHTML=AC_FL_RunContent(\'width\', \'550\', \'height\', \'400\', \'allowNetwork ...… 查看全部问答> |
|
【试用心得】外传——《手把手教你移植InfoNES(到HANKER-LM4F232)》更新至20131017 未完待续……更新至2013.10.17 - 20:50 温馨提示,本文中每个部分设计到的工程包括源文件,都可以在本文的最后发现下载链接哟! 应各路童鞋的围观,“写一个 《手把手教你移植XXX》神马的教程哎~” 实在太忙了,也没有什么好题材的移植, ...… 查看全部问答> |




