LPC1768的SPI通讯

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);

}

 

转载于:https://www.cnblogs.com/dengxiaojun/p/4338682.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/431956.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python 项目实战视频_腾讯视频 Python 爬虫项目实战

做了一些小项目&#xff0c;用的技术和技巧会比较散比较杂&#xff0c;写一个小品文记录一下&#xff0c;帮助熟悉。需求&#xff1a;经常在腾讯视频上看电影&#xff0c;在影片库里有一个"豆瓣好评"板块。我一般会在这个条目下面挑电影。但是电影很多&#xff0c;又…

Java中文乱码问题(转)

解决JSP中文乱码问题 大家在JSP的开发过程中&#xff0c;经常出现中文乱码的问题&#xff0c;可能一至困扰着大家&#xff0c;现把JSP开发中遇到的中文乱码的问题及解决办法写出来供大家参考。首先了解一下Java中文问题的由来&#xff1a; Java的内核和class文件是基于unicode的…

文本显示变量_几千个IO状态显示.十几分钟搞定实例

工程上常会在一个或者数个界面中对所有IO点监控&#xff0c;很多小伙伴用一一映射的传统方法来实现&#xff0c;在超小型项目中实用性较强&#xff0c;在稍微大一点的项目中实现起来效率低还经常出错。本文旨在分享有价值的实际经验&#xff0c;供小伙伴们参考。在实现监控前要…

贷款购房 房贷 每月还款额是如何计算出来的? 每月还款额计算步骤/方法

http://jingyan.baidu.com/m/article/0eb457e55f23fc03f1a905e5.html购房和贷款是每个普通百姓都关心的事情。贷款购房最基本的问题当然是琢磨贷款、还贷以及还贷年限与自己每月的那点“杯水车薪”收入之间的关系&#xff0c;怎样让它们门当户对起来&#xff0c;如何对着一张载…

wordl流程图怎么写字_DLG的制作流程图

1)影像自适应预处理及几何成像模型参数计算 对原始影像进行增强处理。 根据卫星影像的各种资料构建其几何成像模型。2)像控点及加密点量测 像控点的像方量测。将外业提供的控制点进行量测&#xff0c;点位的量测精度应尽量达到子像素级。 在卫星影像重叠和覆盖范围内量测一定数…

TabBarController创建及使用方法简介

TabBarController创建及使用方法简介 大致讲解一下TabBarController的创建过程&#xff1a; 首先&#xff0c;我们需要一些视图&#xff0c;如创建UIControllerView类型的view1&#xff0c;view2&#xff0c;view3. 然后&#xff0c;我们需要创建 一个UITabBarController类型的…

python操作sqlite3 导入csv文件_[转载]SQLite 3导入导出成txt或csv操作

平时使用官方提供的sqlite3.exe工具来操作 sqlite的数据库,可以在网上下到。进入管理&#xff1a;sqlite3.exe d:\\test.db //假设数据是 d:\\test.db>.databases //显示所有数据库 和 mysql的 showdatabases;>.tables //显示当前数据库的表格 和 mysql 的show tables…

android人脸识别的背景图_Android 图片人脸识别剪切

场景在开发中我们经常需要对图片以人脸为中心进行剪切并显示&#xff0c;这时就需要下面这个工具了。实现效果实现效果项目参考及引用项目使用将下载的jar 和 .so 文件加入到项目中。API 说明在项目中使用如下API即可&#xff1a;CImageView这是一个继承ImageView的图片控件&am…

华为gre隧道全部跑静态路由

最终实现&#xff1a; 1、pc1能用nat上网ping能pc3 2、pc1能通过gre访问pc2 3、全部用静态路由做&#xff0c;没有用ospf&#xff0c;如果要用ospf&#xff0c;那么两边除了路由器上跑ospf&#xff0c;核心交换机也得用ospf r2配置&#xff1a; acl number 3000 rule 5 deny…

数组与串,串的实现,KMP,BF算法

数组是一种常用的数据结构&#xff0c;高级语言头提供了支持数组的基本操作&#xff0c;而且数组也是构成其他数据结构的重要组成。 数组是N个相同元素的构成的占用一块地址连续的内存单元的有限序列。 数组的任一个元素都可以用在数组的位置来表示。 数组与线性表区别&#xf…

libsvm python_LibSVM for Python 使用

经历手写SVM的惨烈教训(还是太年轻)之后&#xff0c;我决定使用工具箱/第三方库PythonLibSVM是开源的SVM实现&#xff0c;支持C&#xff0c; C&#xff0c; Java&#xff0c;Python &#xff0c; R 和 Matlab 等, 这里选择使用Python版本。安装LibSVM将LibSVM仓库的所有内容放入…

结对开发——求最大值

一、题目&#xff1a; 返回一个整数数组中最大子数组的和。 要求&#xff1a; 1.输入一个整形数组&#xff0c;数组里有正数也有负数。 2.数组中连续的一个或多个整数组成一个子数组&#xff0c;每个子数组都有一个和。 3.求所有子数组的和的最大值。要求时间复杂度为O(n)。 二…

浏览器获取设备信息_一条命令获取 IE 浏览器保存网站的账号和密码信息

渗透攻击红队一个专注于红队攻击的公众号大家好&#xff0c;这里是 渗透攻击红队 的第 41 篇文章&#xff0c;本公众号会记录一些我学习红队攻击的复现笔记(由浅到深)&#xff0c;不出意外每天一更Powershell内网渗透一直以来都是一个热门话题&#xff0c;试想在一个大型的内网…

__bridge,__bridge_retained,__bridge_transfer

最近遇到类型转换需要添加__bridge等开始不是很理解&#xff0c;后面查询资料才知道在CFObject 与 NSObject 之间转换时&#xff0c;ARC是不能管理Core Foundation object的生命周期。 在CFObject 与 NSObject 之间转换时&#xff0c;需要用到__bridge,__bridge_retained,__bri…

thinkphp5 判断数据是否存在_ThinkPHP 5.1 中间件中判断要访问的操作是否存在

ThinkPHP 5.1 中间件中判断要访问的操作是否存在ifu25 • 2021 年 01 月 15 日按惯例还是吐槽 ThinkPHP 官方社区极度不友好&#xff0c;提问基本得不到答案&#xff0c;更很少有官方人员回复。ThinPHP 5.1 中间件判断 action 是否存在中间件public function handle($request, …

NodeJS 学习记录

一、环境 1. 操作系统&#xff1a;win7, 32位 2. nodejs版本&#xff1a;v0.12.0 3. npm版本&#xff1a;2.5.1 二、问题 1. npm安装镜像源问题 国外镜像源很慢&#xff0c;国内出名且公开的有淘宝&#xff0c;也有内部未公开的&#xff0c;比如我所在的公司 示例&#xff1a; …

(转) 一步一步学习ASP.NET 5 (四)- ASP.NET MVC 6四大特性

转发&#xff1a;微软MVP 卢建晖 的文章&#xff0c;希望对大家有帮助。原文&#xff1a;http://blog.csdn.net/kinfey/article/details/44459625 编者语 &#xff1a; 昨晚写好的文章居然csdn不审核&#xff0c;这个也难怪人&#xff0c;但自己比较忙没办法。分享继续&#xf…

mysql sql执行过程_MySQL探秘(二):SQL语句执行过程详解

昔日庖丁解牛&#xff0c;未见全牛&#xff0c;所赖者是其对牛内部骨架结构的了解&#xff0c;对于MySQL亦是如此&#xff0c;只有更加全面地了解SQL语句执行的每个过程&#xff0c;才能更好的进行SQL的设计和优化。 当希望MySQL能够以更高的性能运行查询时&#xff0c;最好的办…

Java——容器(泛型)

【泛型】 起因&#xff1a;JDK1.4之前类型不明确<1>装入集合的类型都被当做Object对待&#xff0c;从而失去自己的实际类型。<2>从集合中取出时往往需要转型&#xff0c;效率低&#xff0c;且很容易出错。解决办法&#xff1a;<1>在定义集合的时候同时定义集…

quartz mysql 初始化_quartz scheduler 从数据库初始化

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航&#xff0c;为用户…