LPC1788的spi使用

最新更新时间:2022-01-14来源: eefocus关键字:LPC1788  spi使用 手机看文章 扫描二维码
随时随地手机看文章

#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

}

关键字:LPC1788  spi使用 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic545578.html

上一篇:LPC1768里的SPI驱动示例——基于SST25VF016B
下一篇:LPC2124--GPIO按键控制LED灯的闪烁

推荐阅读

STC15系列单片机SPI使用教程(二)
硬件SPI(中断方式)以STC15W408AS单片机为例一、硬件接线STC15系列单片机SPI使用注意事项(一)二、程序编写1、和SPI中断相关的寄存器① IE寄存器② IE2寄存器③ IP2寄存器2、自定义寄存器,数据类型重定义sfr P_SW1 = 0xA2; //外设功能切换寄存器1sfr SPSTAT = 0xCD; //SPI状态寄存器sfr SPCTL = 0xCE; //SPI控制寄存器sfr SPDAT = 0xCF; //SPI数据寄存器sfr IE2 = 0xAF; //中断控制寄存器2#ifndef uchar #define uchar unsigned char#endif#ifndef uint #
发表于 2022-08-03
STC15系列单片机<font color='red'>SPI</font><font color='red'>使用</font>教程(二)
STC15系列单片机SPI使用教程(三)
软件模拟SPI以STC15W408AS单片机为例一、硬件接线STC15系列单片机SPI使用教程(一)二、程序编写1、相关宏定义和引脚定义//数据类型重定义#ifndef uchar #define uchar unsigned char#endif#ifndef uint #define uint unsigned int#endif//IO端口定义sbit MISO = P2^2; //主机读从设备(主入从出)sbit MOSI = P2^3; //主机写从设备(主出从入)sbit SCK = P2^1; //时钟信号sbit CE = P2^5;sbit CS = P2^4; //片选信号(控制芯片是否被选中)sbit IRQ
发表于 2022-08-03
STC15系列单片机SPI使用教程(一)
一、硬件接线1、普通SPI设备接线如NRF24L01,可以直接连接IO2、FLASH设备接线如GD25Q80BSIG,需要加上拉电阻二、程序编写1、和SPI相关的寄存器① SPCTL寄存器② SPSTAT寄存器③ SPDAT寄存器④ AUXR1/P_SW1寄存器2、寄存器,数据类型重定义sfr P_SW1 = 0xA2; //外设功能切换寄存器1sfr SPSTAT = 0xCD; //SPI状态寄存器sfr SPCTL = 0xCE; //SPI控制寄存器sfr SPDAT = 0xCF; //SPI数据寄存器#ifndef uchar #define uchar unsigned char#endif#ifndef uint #
发表于 2022-08-02
STC15系列单片机<font color='red'>SPI</font><font color='red'>使用</font>教程(一)
STM32F7使用SPI发送完成和接收中断
虽然在平常的使用中,spi使用轮询等待发送完成或者接收完成就行了。但是在对时间有严格要求的设计中,假设我们需要发送完成后立马做xx事情,此时如果有低优先级的信号需要处理,我们的轮询方式就得不到及时的响应;或者说比如需要定时从spi设备中采集数据,定时器中断来了我们就要马上调用接收函数,接收完成马上进行其他计算,同样此时应该保证数据的优先级。此时就需要用到发送完成和接收中断了。前面我们已经实现了SPI轮询的发送和接收,在前面的基础上进行修改。接缓冲区满中断新增发送和接收的回调函数,并在初始化的时候配置,使能SPI接收中断:SPI_HandleTypeDef SPI3_Handler; //SPI2句柄void rx_isr(SPI_H
发表于 2022-07-08
STM32F7<font color='red'>使用</font><font color='red'>SPI</font>发送完成和接收中断
第48章 STM32F429的内部Flash和SPI Flash都使用MDK下载
48.1 初学者重要提示 SPI Flash的相关知识点可以看第31章和32章。 操作本章配套例子前务必先将SPI Flash的下载算法放到MDK安装目录。 本章节配套例子实现了将12点阵,16点阵,24点阵和32点阵中文全字库下载到外置SPI Flash。 注意不可以STM32F4的内部Flash和外部SPI Flash同时下载,依次下载即可,详情看此本章48.5和48.6小节即可。48.2 内部Flash和SPI Flash都使用MDK下载的优势通过这种方式,可以方便的更新SPI Flash中的数据,特别是全字库,图库,主题等资源文件的下载。48.3 下载算法存放位置编译例子:V6-025_SPI Flash的MDK下载算法制作
发表于 2022-03-31
第48章 STM32F429的内部Flash和<font color='red'>SPI</font> Flash都<font color='red'>使用</font>MDK下载
STM32的SPI的原理与使用(W25Q128附代码)
一、SPI介绍SPI 是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。正是简单易用的特性,如NRF24L01、VS1053、SD卡等皆集成了这种通信协议二、SPI接口框图三、SPI优缺点SPI接口是在CPU和外围低速器件之间进行同步串行数据传输,在主器件的移位脉冲下,数据按位传输,低位在前,
发表于 2022-03-02
STM32的<font color='red'>SPI</font>的原理与<font color='red'>使用</font>(W25Q128附代码)

推荐帖子

请教EG8010比较器正反馈
买了块EG8010驱动板,,过流保护不正常,过流炸管,短路也炸管,采样电阻0.01,抄下比较器部分,,有个二极管加电容正反馈,请教各位大哥这个反馈是怎么工作的,仿真的时候只有第一次翻转有延时 请教EG8010比较器正反馈
皓禹HY 开关电源学习小组
深圳捷扬微电子发布中国首款通过FiRa联盟认证的UWB芯片
【2022年6月30日,深圳、香港】深圳捷扬微电子有限公司(“捷扬微”、“GiantSemi”)发布超宽带(UWB)系统级芯片(SoC),型号为GT1000。该芯片于2022年6月成功通过了FiRa联盟的认证并获得认证证书。FiRa联盟认证包括了物理层一致性测试、媒体存取控制层一致性测试和互联互通测试,捷扬微成为中国首家、全球首批通过FiRa联盟认证的芯片公司。GT1000已经于2022年5月开始量产,将于2022年9月开始批量出货。
科技眼 模拟电子
请问89S51的输入电流有范围要求吗?
我用LM2576做了个5V的直流电源,它的输出电流是3A,我不知道输入到单片机中是不是电流太大了,有没有方法将电流降下来呢?请问89S51的输入电流有范围要求吗?
rainword 嵌入式系统
射频芯片和基带芯片有何关系?它是如何工作的?
传统来说,一部可支持打电话、发短信、网络服务、APP应用的手机,一般包含五个部分部分:射频部分、基带部分、电源管理、外设、软件。 射频部分:一般是信息发送和接收的部分; 基带部分:一般是信息处理的部分; 电源管理:一般是节电的部分,由于手机是能源有限的设备,所以电源管理十分重要; 外设:一般包括LCD,键盘,机壳等; 软件:一般包括系统、驱动、中间件、应用。 在手机终端中,最重要的核心就是射频芯片和基带芯片。射频芯片负责射频收发、频率合成、功率放大;基带芯片负责信号处理和协议
qwqwqw2088 RF/无线
工程师必备——频谱分析仪
R&S®FSH4/8/13/20是罗德与施瓦茨公司全新推出面向未来应用的手持式频谱分析仪。它集频谱分析、天馈线分析、全功 能矢量网络分析、矢量电压表、功率计主机、宽带通信解调等多 种测试功能于一身,拥有媲美中高档台式频谱仪的指标。R&S®FSH4和R&S®FSH8完美演绎了小体积和高性能的奇迹,是 业界最优秀的手持式射频测试仪表。 主要特点•频率范围:9kHz到3.6GHz,8GHz,13.6GHz,20GHz 
y952403193 RF/无线
【ST新闻稿】扩充STM32L系列产品范围
意法半导体(ST)扩大并量产面向Energy-Lite应用的STM32L超低功耗ARMCortex?-M3微控制器系列 STM32L微控制器即将用于“康体佳(Continua)”医疗应用 中国,2011年3月3日——作为全球领先的服务于各种应用领域的半导体制造商、世界一流的微控制器厂商,意法半导体(STMicroelectronics,简称ST;纽约证券交易所代码STM)宣布扩大STM32L系列32位微控制器的产品范围,新增的微控制器存储容量分别为256KB和384KB,整个系
huangmin0728 stm32/stm8
小广播
实战 培训 开发板 精华推荐

何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved