历史上的今天
返回首页

历史上的今天

今天是: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

}

推荐阅读

史海拾趣

Electronic Concepts Inc公司的发展小趣事

作为一家有社会责任感的企业,ECI始终关注环境保护和社会公益。公司积极参与各种环保活动,如节能减排、废物回收等。此外,ECI还设立了公益基金,资助贫困地区的教育事业和医疗事业。这些举措不仅提升了ECI的社会形象,也为公司赢得了更多客户的信任和支持。

超音(CY)公司的发展小趣事

为了进一步提升品牌影响力,超音开始积极拓展国际市场。公司参加了多个国际展会,与国际知名音频设备厂商建立了合作关系。同时,超音还加强了与国际市场的沟通和交流,了解不同地区的消费者需求,针对性地推出符合当地市场需求的产品。这些努力使得超音在国际市场上的知名度不断提升,产品销量也稳步增长。

Cembre SPA公司的发展小趣事

Cembre SPA的创始人,以其对电子行业的深刻理解和远见,于XXXX年创立了这家公司。在初创期,他看到了电气连接和固定技术在工业领域中的巨大潜力,并决定专注于此。公司最初的产品线集中在电缆接头和固定设备上,这些产品以其高质量和易用性迅速获得了市场的认可。

Dongguan Jingyue Electronics Co Ltd公司的发展小趣事

随着公司业务的不断扩大,Dongguan Jingyue Electronics Co Ltd面临着越来越复杂的供应链管理问题。为了降低成本、提高效率,公司决定对供应链进行优化。通过引入先进的供应链管理软件和系统,加强与供应商和物流公司的合作,公司成功实现了供应链的数字化和智能化管理,提高了整体运营效率。

德欣(COV)公司的发展小趣事

面对电子行业的快速发展和市场竞争的加剧,德欣公司始终将技术创新作为发展的核心动力。公司不断加大研发投入,引进先进的生产设备和技术人才,加强与高校和科研机构的合作。通过不断的技术创新和产品升级,德欣公司在保持传统产品优势的同时,也成功拓展了新的业务领域,实现了产业升级和可持续发展。

Arctic Silicon Devices公司的发展小趣事

面对全球电子市场的竞争压力,Arctic Silicon Devices制定了国际化发展战略。公司积极拓展海外市场,通过设立分支机构、与当地企业合作等方式,将产品和技术推向全球。同时,公司还加大了对国际人才的引进力度,提升了自身的研发实力和市场竞争力。这一战略的成功实施,使Arctic Silicon Devices在全球电子行业中占据了重要地位。

问答坊 | AI 解惑

嵌入式系统

纵观现今的嵌入式系统行业  都没什么好的发展机会! 么???…

查看全部问答>

单片机pic18f248不用运放能直接读取电压吗?

0~10V,我要用电压信号做触发,谢谢!!…

查看全部问答>

那位老大有EPSON LQ300的windows ce的驱动或者相关技术资料

那位老大有EPSON LQ300的windows ce.net 的驱动或者相关技术资料。 非常感谢…

查看全部问答>

lcd 驱动问题,cpu(80接口)转rgb接口的方法

爱普生今向我们推荐了一个控制器S1D13775BGA,他们说用他们的IC可以支持WVGA(800*480)的屏;不知有没哪位大侠做过?…

查看全部问答>

都来说说你是如何学习wince 驱动的(请大牛们也来凑凑热闹)

   我想大家也知道,论坛和一些QQ技术交流群很多新手都会问:应该如何学习wince驱动?以前很多时间,也打字打的手痛。也不敢说的太多,怕误人子弟。现在在这里开个帖子,希望老牛们不吝赐教新手,呵呵。大家照着下面的问题回答,或者补充 ...…

查看全部问答>

小弟跪求TORNADO2.0软件,希望好心兄弟帮帮忙!!!

小弟跪求TORNADO2.0软件,希望好心兄弟帮帮忙!!! 告诉哪有下载的.…

查看全部问答>

LED驱动技术交流与经验分享

一、 LED照明驱动方法 1. 网友问:AC-DC转换中,有些是非隔离的,这种电路在安规方面是否有问题?现在大功率产品的结构模式都是金属外壳和铝基电路板,外壳与电路板紧密连接,电气隔离仅在铝基板上实现,请问专家如何看待这个问题? 专家解答:第一 ...…

查看全部问答>

【求助】430能输出20MHz左右的频率吗

看到449的FLL+设置的频率可以到40多MHz, 现在需要输出20MHz左右的时钟给其他设备, 有没有人知道或者是试验过呀…

查看全部问答>

电源设计小贴士 17:缓冲反向转换器

之前,我们介绍了如何对正向转换器输出整流器开启期间两端的电压进行缓冲。现在我们来研究如何对反向转换器的FET关断电压进行缓冲。   $(\'swf_hgc\').innerHTML=AC_FL_RunContent(\'width\', \'550\', \'height\', \'400\', \'allowNetwork ...…

查看全部问答>

【试用心得】外传——《手把手教你移植InfoNES(到HANKER-LM4F232)》更新至20131017

未完待续……更新至2013.10.17 - 20:50 温馨提示,本文中每个部分设计到的工程包括源文件,都可以在本文的最后发现下载链接哟! 应各路童鞋的围观,“写一个 《手把手教你移植XXX》神马的教程哎~” 实在太忙了,也没有什么好题材的移植, ...…

查看全部问答>