一起学nRF51xx 15 - spis

2023-11-13

前言

SPIS是一个从SPI,它与EasyDMA一起支持与外部的主SPI超低功耗串行通信。EasyDMA使得SPIS交互无需CPU的介入。在提高数据传输效率的同时还减轻了CPU的负担。

SPIS即是SPI从模式,但它比stm32中直接将spi设置为从模式不同的是它硬件绑定了DMA功能。本节我们将用STM32开发板通过spi接口发送数据给NRF51822并把接收到的数据通过串口打印出来,程序中用到的引脚: 1) CS--P0.12 2)SCK--P0.13 3)MISO--P0.14 4)MOSI--P0.15。

示例详解

基于硬件平台:nrf51822ek_tm开发板。

 

本示例所用的最小系统板原理图:

 

    1. 工程创建:
      1. 打开KEIL,新建一个空工程:Project->NewuVisionProject

工程名为nrfxx-spis确认后按下图选择芯片为nrf51822_xxAA->ok

在弹出的对话框中勾选CMSIS中的CORE;Device中的Startup(后面有nrf51Series字样的);在nrf_device中勾选nrf_gpio, nrf_uart, nrf_spis, nrf_delay,nrf_err并在nrf_Libraries中勾选app_error,nrf_assert模块。

 

 

 

OK之后工程自动生成如下代码:

新建一个空白文档,保存为main.c,并加入工程中:

配置工程,选择使用MicroLIB库,可以减小程序体积:

加入NRF51定义,并选择化等级3,可以减小程序体积,但仿真运行时可能会出现与代码顺序不一致现象:

 

调试工具选择J-LINK,并将接口设置为SW口勾选下载程序后自动复位及运行:

 

 

    1. 工程代码
      1. OK之后在man.c中加入如下代码:

 

 

      SPI主机用一个STM32开发板模拟,对应的程序源码在工程文件夹中的stm32_spim文件文件夹中,连接好STM32开发板和nrf51开发板:

分别下载对应的程序,可以看到NRF51822开发板上的串口助手中打印了以下输出内容:

通过逻辑分析仪也可以发现STM开发板成功发出了相应的数据

关于nrf51xx及flash的更详细介绍可以参看《nRF51822_RM_v3.0.1.pdf》或https://infocenter.nordicsemi.com/index.jsp。

 

OK,本期实验完成!下期见!同时如果大家有什么疑问或是有想了解的其它内容,也欢迎大家留言!!最后喜欢这个公众号的同学们记得加关注了,会有不定期技术干货推出!!

文中源码资料下载,在公众号里给十三发消息:

下载|一起学nRF51xx 15

 

关注十三公众号

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一起学nRF51xx 15 - spis 的相关文章

  • es的配置文件(elasticsearch.yml)

    config目录下有2个配置文件 es的配置文件 elasticsearch yml 和日志配置文件 logging yml cluster name elasticsearch 配置es的集群名称 默认是elasticsearch es会
  • arduino IDE搭建ESP8266开发环境和简单使用

    arduino IDE搭建ESP8266开发环境和简单使用 文章目录 arduino IDE搭建ESP8266开发环境和简单使用 安装 下载IDE 在Arduino IDE上安装esp8266库 下载安装esp8266库 使用 选择开发板
  • Java进阶3 - 易错知识点整理(待更新)

    Java进阶3 易错知识点整理 待更新 该章节是Java进阶2 易错知识点整理的续篇 在前一章节中介绍了 ORM框架 中间件相关的面试题 而在该章节中主要记录关于项目部署中间件 监控与性能优化等常见面试题 文章目录 Java进阶3 易错知识
  • 使用mybatis-plus的insert方法遇到的坑(添加时id值不存在异常)

    在使用mybatis plus的insert方法的时候 报错 java sql SQLException Field id doesn t have a default value 后来了解到使用mybatis plus的insert方法
  • 05-2_Qt 5.9 C++开发指南_Model/View结构实例(QFileSystemModel、QStringListModel、QStandardItemModel;编程实例)

    接上篇 本篇主要介绍Model View框架下的模型类 QFileSystemModel QStringListModel QStandardItemModel的使用方法和编程实例 文章目录 1 QFileSystemModel 1 1 Q
  • 「拓数派(OpenPie)2022 发布会实录 」PieCloudDB Database 优化器

    10 月 24 日程序员节 拓数派 Openpie 发布了云原生数据库 PieCloudDB PieCloudDB 以云计算架构为设计基础 实现云上存算分离 打造了 元数据 计算 存储 分离三层架构 在计算层 PieCloudDB 设计了高
  • Microsoft Store 微软商店无法加载在页面解决

    导致此原因主要是因为你的电脑开启过vpn 开启了系统代理 导致微软商店无法加载 解决方法 1 第一步 开始 设置 2 第二步 网络和internet 3 第三步 点击代理 关闭手动代理服务器这一项 然后再打开微软商店 就可以了
  • Dvwa页面标红问题的逐步攻破(二)

    提示 第二个问题花了很长时间 试了很多种办法 都没成功 但是经过后续的操作我发现第二个问题并没有太大的影响 那就说一下在此过程中遇到的问题及解决吧 解决PHP module gd MIssing Only an issue if you w
  • HTML超链接标签

    一 超链接标签 a 的语法 a href 链接路径 target self 链接文本或图像 a 1 a 标签中href属性值是链接的路径 当href 时表示一个空连接 2 a 标签中target属性值表示的是链接在哪个窗口打开 它的常用值是
  • rlwrap

    rlwrap for Command Line History and Editing in SQL Plus and RMAN on Linux linux下安装后 用着确实方便 AIX下能用吗 more http www oracle
  • 【语义分割】13、SegNeXt

    文章目录 一 背景 二 方法 2 1 Convolutional Encoder 2 2 Decoder 三 效果 论文 SegNeXt Rethinking Convolutional Attention Design for Seman
  • 详解多线程中的互斥量;mutex头文件,lock与unlock ,lock_guard,unique_lock

    互斥量 假如你有一张水卡 要放在卡槽才能出水 现在你和小明都要热水 于是你接一下热水 用自己的水卡 他又接一下热水 巧了 两人都接到泡面的热水 互斥量是在Mutex的头文件中 并发的优点 可以极的减少时间 并且能够多个进程的运行东西 并发的
  • pca处理后建模 sklearn_汽油辛烷值建模

    题目来源 2020年研究生数学建模竞赛B题 小编第一次做研究生的竞赛题目 我的整体感受 首当其冲的是 关于题的描述很多 每一个题的页数都有好几页 说下关于B题 汽油辛烷值建模 的思考 就B题的难易程度来说 这个题太容易了 不论从数据量 还是
  • 26.kotlin的get和set方法

    1 kotlin类中的get和set方法 fun main args Array
  • 数据结构--二叉树进阶

    因为我们之前在学习数据结构的时候使用的是C语言 但是并不是所有的数据结构都适合使用C语言学习 如今我们了解了C 的基础语法 具备了学习这些稍微难一点的数据结构的前提 所以我们再次回顾数据结构 使用C 这一更加先进的武器 来解决更加复杂的问题
  • 线程池的几种常见的创建的方式

    每次启动一个线程都要创建一个新的浪费资源的 还有时候线程过多的时候回造成服务器崩溃 所以有了线程池的诞生 线程池是用来管理线程的 下面是常用的几种创建线程的方式 一 创建大小不固定的线程池 这是一个线程类 public class Thre

随机推荐

  • 2020-11-26【路灯】动态规划

    2020 11 26 路灯 动态规划 题目描述 一条长l的笔直的街道上有n个路灯 若这条街的起点为0 终点为l 第i个路灯坐标为ai 每盏灯可以覆盖到的最远距离为d 为了照明需求 所有灯的灯光必须覆盖整条街 但是为了省电 要使这个d最小 请
  • SpringCloud Ribbon客服端负载均衡

    Ribbon与Nginx区别 服务器端负载均衡Nginx nginx是客户端所有请求统一交给nginx 由nginx进行实现负载均衡请求转发 属于服务器端负载均衡 既请求有nginx服务器端进行转发 客户端负载均衡Ribbon Ribbon
  • 文件的读写基本操作

    一 文件是计算机中数据持久化存储的表现形式 读写文件标准操作格式1 1 打开文件 file1 open 文件名 读写模式 2 操作文件 3 关闭文件 file1 close 文件操作完毕后必须关闭 否则长期保持对文件的连接状态 造成内存溢出
  • 龙书笔记(13)

    chap 13 地形绘制基础 主要是创建一个 地形类 Terrain 1 高度图 其实是一个数组 每个元素都指定了地形方格中某一顶点的高度值 每个元素只分配了1个字节的存储空间 当加载到程序时 重新分配 浮点型 或 整型 数据来存储这些高度
  • CentOS7开机时的菜单选项及时间的修改

    转载记录 以防丢失 一 在CentOS更新后 并不会自动删除旧内核 所以在启动选项中会有多个内核选项 可以手动使用以下命令删除多余的内核 正常下 第一个选项正常启动 第二个选项急救模式启动 系统出项问题不能正常启动时使用并修复系统 1 查看
  • 记录一下树莓派打内核补丁cjktty的天坑

    首先cjktty的下载地址在此 大家根据自己的linux内核去选择 https github com zhmars cjktty patches 下载好了补丁文件之后 需要下载完整的linux内核 是的完整的 https github co
  • ahut 月赛1

    心得 一点一点理解 对于一段要学习的代码 跟着写下来 理解一点写一点 对于一道题目 用记事本 看题目 看一句题目 用自己的话概括一句 写在记事本上 并将自己的 想法一并写下来 这样做下来 心会很平静 你会发现 理解一段代码并不费力 解决一道
  • Cookie、cookie与session区别

    Cookie Cookie 有时也用其复数形式 Cookies 类型为 小型文本文件 是某些网站为了辨别用户身份 进行Session跟踪而储存在用户本地终端上的数据 通常经过加密 由用户客户端计算机暂时或永久保存的信息 Cookie有什么用
  • 一个字节造成的巨大性能差异——SQL Server存储结构

    今天同事问了我一个SQL的问题 关于SQL Server内部存储结构的 我觉得挺有意思 所以写下这篇博客讨论并归纳了一下 问题是这样的 首先我们创建两张表 一张表的列长度是4039字节 另一张表的长度是4040字节 他们就只有一个字节的差距
  • 阿里巴巴 cola设计架构

    https github com alibaba COLA
  • leetcode 21 合并两个有序链表 (c++和python)

    目录 题目描述 解题思路 C 代码 python代码 题目描述 将两个有序链表合并为一个新的有序链表并返回 新链表是通过拼接给定的两个链表的所有节点组成的 示例 输入 1 gt 2 gt 4 1 gt 3 gt 4 输出 1 gt 1 gt
  • golang的chan(管道)

    golang的chan翻译成中文就是管道 顾名思义 就是管道的一端用来读 另一端用来写 这与write和read函数的性质是非常相似的 比如说管道中没数据 就会发生读阻塞 管道中数据是满的 就会发生写阻塞 又类似生产者和消费者 也就是必须有
  • 大学生python实验心得体会_大学生实训心得体会3篇

    转眼间为期两个星期的实训就结束了 但是安利公司的物流配送 黄埔港 益邦物流公司 南沙港以及学校里面的航海模拟实验中心 轮机实训实验楼这些实训过程仍历历在目 以下是小编整理的大学生实训心得体会 欢迎阅读 大学生实训心得体会1 通过实训中心老师
  • 微信小程序-flex布局:垂直、水平方向-自动填充满剩余空间

    在微信小程序项目中经常需要将水平或垂直方向分成两大部分 一部分内容宽度或高度固定 剩余的一部分需填充满剩余空间 那么 该怎么快速解决这类布局 效果图如下 垂直方向 水平方向 我个人比较喜欢使用flex布局 面对此类布局 最先想到的也是fle
  • 【HDLBits 刷题 12】Circuits(8)Finite State Manchines 27-34

    目录 写在前面 Finite State Manchines 2014 q3c m2014 q6b m2014 q6c m2014 q6 2012 q2fsm 2012 q2b 2013 q2afsm 2013 q2bfsm 写在前面 HD
  • 类和对象笔记(1.类和对象的关系,类基本架构)

    梳理C 基础 纯干货或许会很干燥 gt gt gt gt gt 分界线 类 指对象的类型 类代表了一批对象的共性和特征 抽象的 不占用内存 对象 类的具体实例 具体的 占用储存空间 类是对象的抽象 对象是类的具体实例 可以同结构体进行比较学
  • eclipse常用插件之FindBugs

    1 简介 FindBugs 是由马里兰大学提供的一款开源 Java静态代码分析工具 FindBugs通过检查类文件或 JAR文件 将字节码与一组缺陷模式进行对比从而发现代码缺陷 完成静态代码分析 FindBugs既提供可视化 UI 界面 同
  • 打印金字塔代码

    Description 输入n值 打印下列形状的金字塔 其中n代表金字塔的层数 Input 输入只有一个正整数n Output 打印金字塔图形 其中每个数字之间有一个空格 include
  • JsonMap对象的获取与前台浏览器报错Uncaught TypeError: Cannot read property '0' of undefined

    JsonMap对象的获取与前台浏览器报错Uncaught TypeError Cannot read property 0 of undefined 后台问题在浏览器报错 很多时候在我们遇到浏览器报错的时候都会去前端js里去找错 但有时候确
  • 一起学nRF51xx 15 - spis

    前言 SPIS是一个从SPI 它与EasyDMA一起支持与外部的主SPI超低功耗串行通信 EasyDMA使得SPIS交互无需CPU的介入 在提高数据传输效率的同时还减轻了CPU的负担 SPIS即是SPI从模式 但它比stm32中直接将spi