NORDIC的打怪之旅(第二篇)

news/2024/10/31 1:31:27/

  Nordic的52832芯片中有很多可以使用的协议,在其的官方文档中可以查看到(地址 在第一篇SDK的网址是一样的),其中使用最多的为spi,twi等,而twi中又完全兼容I2C协议,今天的目的主要是说明一下spi的配置过程(twi的配置过程在第三篇会提及到)。

  首先介绍一下什么是spi,先上图:

  可以很清楚的看到spi的实现过程。spi使用4根线,sck,mosi,miso,cs,而其中的MOSI的含义是Master Input Slave Output,MISO的含义是Master Output Slave Input ,这样看的好处是能够方便的分清楚是怎么传输数据的。在52832中又有个新的东西叫做EasyDMA,这个是可以自动读写RAM,让CPU可以一次性配置完一整个数据包的传输,然后在整包数据传输完成之后再处理剩下的TASKS了,所以对于低功耗开发而言是很不错的。

  这里我把spi处理过程分成了以下几个方面

  (1)spi的配置;

  spi的配置其实有点意思,在实际的项目中根据你所需要的模块,在sdk_config.h中去配置,有两个方法可以进行相应的配置,第一个是通过找到对应的spi的Macro,即宏,去配置相应的信息;

第二是通过Configuration Wizard来配置,这个方法是我现在选择的,比较方便也比较直接,不容易出现差错。

在所需的模块上进行选择和配置。

  (2)spi的初始化;

  spi的初始化过程也很有意思,也是需要去配置spi的四个引脚值及其他的一些基本信息。其目的在于初始化spi模块并使能其引脚及初始化读写操作,并且外设库SPI初始化函数nrf_drv_spis_init()可以提供一个函数句柄,用做传输完成的回调函数。。

  (3)spi的启动;

  spi的初始化过程中就会去启动spi,我提出来说的目的在于我最开始没有去启动,犯了一个傻瓜式的错误。启动的过程就是调用52832的底层函数nrf_drv_spis_init();没有启动的spi是不能够进行后面的操作的。

  (4)spi的读写;

  spi的读写操作在应用层看来是比较简单的,因为官方的SDK中已经提供给你了底层函数接口,直接配置好调用就行。在读写操作中需要调用的函数是nrf_drv_spis_buffers_set(),spi读写是同步的故直接封装成一个函数。在第一张图中可以看到是需要用到缓冲区的,目的在于更准确的发送和接收数据。

  (5)spi的关闭;

   当你不再发送数据,及你的发送缓冲区和接收缓冲区都没有数据的时候,spi选择关闭,这样做的目的在于降低功耗。spi关闭也会调用底层的接口函数nrf_drv_spis_uninit()。

  最后,spi通过初始化过程时提供了一个回调函数,即spis_event_handler(),这是spi发送完成的回调函数,将会在发送完成中断中调用。到这里基本的spi就完成了,当然如果需要修改默认的spi的参数内容,可以在初始化配置过程中进行。

  高山远水,漫步悠扬。


http://www.ppmy.cn/news/523530.html

相关文章

领域驱动模型VO,BO,PO,DO,DTO概念及其区别

本文来说下领域驱动模型VO,BO,PO,DO,DTO 概念及其区别 文章目录 概述概念以及区别本文小结 概述 随着编程工业化水平的不断加深,各种编程模型层出不穷(比如MVC,MVP等等)&#xff0c…

别了,DjVu!

原帖地址:http://www.comicer.com/stronghorse/water/software/djvu886.htm 别了,DjVu! 作者:马健 邮箱:stronghorsetom.com 主页:http://www.comicer.com/stronghorse 发布:2010.05.21 目录 一…

领域驱动设计系列文章(2)——浅析VO、DTO、DO、PO的概念、区别和用处

本篇文章主要讨论一下我们经常会用到的一些对象:VO、DTO、DO和PO。 由于不同的项目和开发人员有不同的命名习惯,这里我首先对上述的概念进行一个简单描述,名字只是个标识,我们重点关注其概念: 概念: VO&a…

探索GaussDB(DWS)的过程化SQL语言能力

摘要:在当前GaussDB(DWS)的能力中主要支持两种过程化SQL语言,即基于PostgreSQL的PL/pgSQL以及基于Oracle的PL/SQL。本篇文章我们通过匿名块,函数,存储过程向大家介绍一下GaussDB(DWS)对于过程化SQL语言的基本能力。 本文分享自华为…

基于DGUS II 实现高性能GUI

前言 2019年迪文推出了T5L系列芯片,同时还更新了针对它的第二代DGUS软件——因为大多数功能以及设置都与T5平台相通,所以T5L系列所使用的DGUS软件依然是第二代的范畴。 跟T5与K600平台之间差别的情况不同,因为采用了相近的底层逻辑&#xff0…

修普诺斯游戏测评报告

修普诺斯测评报告 目录 1.游戏简介 2.美术表现 2.1.开场cg登陆、加载界面 2.2.音乐音效 2.3.角色模型 2.4.UI 2.5.战斗场景战斗表现 3.游戏内容 3.1.养成系统 3.2.PVE玩法 3.3.PVP玩法 4.核心玩法 5.付费点 5.1.首充破冰后续付费 5.2.成长基金等其他付费点 5.3.限时礼包 …

NYOJ-20 吝啬的国度【深搜】

描述 在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来。现在,Tom在第S号城市,他有张该国地图,他想知道如果自己要去参观第T号城市,必须经过的前一个城市是几号城市(假设你不走重…

克诺斯虚拟化服务器,超强遗传 VA1 克拉诺斯Kronos

原标题:超强遗传 VA1 克拉诺斯Kronos 狼王 VA1 克拉诺斯Kronos von Nrburgring 2013 和 2014年意大利本部展都是VA。 2014年9月 SV本部展获得VA。 2014年引进中国后参加中国CSV本部展(与SV本部展相隔一个月,没有时间在国内适应环境训练等情况下直接参赛)…