首页 > 其他分享 >SPI-SPI主机硬件片选功能使用说明

SPI-SPI主机硬件片选功能使用说明

时间:2023-04-21 15:26:42浏览次数:41  
标签:Pin 主机 SPI InitStructure Mode GPIO 片选

SPI主机硬件片选功能使用说明

SPI协议最早的标准,是由摩托罗拉公司制定。在协议使用的过程中,根据实际需求可能会进行一些扩展和修改。

在一份由飞思卡尔半导体发布的SPI V4.01版本规范中,对片选引脚做了如下的描述:The SS/ output feature automatically drives the SS/ pin low during transmission to select external devices and drives it high during idle to deselect external devices.

原文中仅对SPI主机,在操作片选引脚上做出了明确的规定,并未对使用SPI接口的从机做出相应的说明。实际测试发现,在需要片选信号参与数据收发时要注意,片选信号线处于空闲时应保持高电平,且在需要进行数据传输时,应能够被SPI主机片选引脚拉低。

SPI主机在使用硬件片选时,除了需要在结构体中配置为硬件模式,还应将片选引脚配置为复用推挽模式,并调用SPI_SSOutputCmd函数,开启对应SPI的硬件片选输出功能。

下面是以SPI1为例,使用硬件控制片选引脚的程序清单,其中PA4为片选引脚。

1. void SPI_FullDuplex_Init(void)

2. {

3. GPIO_InitTypeDef GPIO_InitStructure = {0};

4. SPI_InitTypeDef SPI_InitStructure = {0};

5.  

6. RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA | RCC_APB2Periph_SPI1, ENABLE );

7.  

8. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;

9. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;

10. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

11. GPIO_Init( GPIOA, &GPIO_InitStructure );

12.  

13. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;

14. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;

15. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

16. GPIO_Init( GPIOA, &GPIO_InitStructure );

17.  

18. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;

19. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;

20. GPIO_Init( GPIOA, &GPIO_InitStructure );

21.  

22. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;

23. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;

24. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

25. GPIO_Init( GPIOA, &GPIO_InitStructure );

26.  

27. SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;

28. SPI_InitStructure.SPI_Mode = SPI_Mode_Master;

29. SPI_InitStructure.SPI_DataSize = SPI_DataSize_16b;

30. SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;

31. SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;

32. SPI_InitStructure.SPI_NSS = SPI_NSS_Hard;

33. SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_64;

34. SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_LSB;

35. SPI_InitStructure.SPI_CRCPolynomial = 7;

36. SPI_Init( SPI1, &SPI_InitStructure );

37.  

38. SPI_SSOutputCmd( SPI1, ENABLE );

39.  

40. SPI_Cmd( SPI1, ENABLE );

 

标签:Pin,主机,SPI,InitStructure,Mode,GPIO,片选
From: https://www.cnblogs.com/wchmcu/p/17340422.html

相关文章

  • 如何在ubuntu下更改主机名/更改ubuntu电脑名(转)
     如何在ubuntu下更改主机名/更改ubuntu电脑名(转) 如何在ubuntu下更改主机名?如何更改ubuntu的电脑名呢?如果我们安装ubuntu时随便输入了一个主机名,安装完成后感觉不好又想修改,怎么办?经过一番研究得到了修改的方法,其实很简单,只要打开/etc/hostname和/etc/network文件修改里面的老......
  • vmware虚拟机与宿主机时间同步
    最近经常用vmware虚拟机进行调试程序,发现时间不同步很不方便,所以单独处理了一下。检查vmware菜单栏-虚拟机-设置,弹出框中点“选型”,选中VMware Tools,在右侧发现“将客户机时间与主机同步”已经选中,但是虚拟机系统时间并没有同步。 搜了搜,找到一个帖子解决了这个问题。解决......
  • Java 的 SPI 机制
    什么是SPI机制?SPI机制(ServiceProviderInterface)是Java的一种服务发现机制,为了方便应用扩展。那什么是服务发现机制?简单来说,就是你定义了一个接口,但是不提供实现,接口实现由其他系统应用实现。你只需要提供一种可以找到其他系统提供的接口实现类的能力或者说机制.SPI机制在Java......
  • 不输入密码ssh直接登录阿里云Linux主机
    评:不输入密码ssh直接登录阿里云Linux主机服务器环境:阿里云云服务器,Linux版本-CentOS客户端环境:MacOSXTerminal在Terminal中用ssh命令登录服务器每次都要输入密码,虽然可以复制/粘贴密码,但登录后一段时间不操作,服务器会自动断开连接,连接时又要复制/粘贴密码,还是有些不方......
  • Day 25 25.1 Scrapy框架之全站爬虫(CrawlSpider)
    Scrapy框架之全站爬虫(CrawlSpider)在之前Scrapy的基本使用当中,spider如果要重新发送请求的话,就需要自己解析页面,然后发送请求。而CrawlSpider则可以通过设置url条件自动发送请求。LinkExtractorsCrawlSpider是Spider的一个派生类。CrawlSpider与spider不同......
  • 功能强大的JavaScript引擎--SpiderMonkey
    JavaScript在浏览器中的应用几乎是尽人皆知的。实际上,JavaScript技术也可以使用在非浏览器应用程序当中,从而让应用程序具有自动的脚本功能。本文介绍了一种功能非常强大的JavaScript引擎SpiderMonkey。这个引擎是Mozilla浏览器的JavaScript引擎。该引擎接口定......
  • web页面播放spine动画及播放相关使用及总结spine-player.js
    1.官方git,里面有些例子可以参考。https://github.com/EsotericSoftware/spine-runtimes.git2.官方播放器:http://zh.esotericsoftware.com/spine-player目前测试4.0以上的js支持动画模型透明3.最基本的资源初始化html代码里面:<divid="player-container"style="width:640......
  • 关于ansible-对linux主机的连接性及sudo权限检测
    对于Linux系统的配置检测,需要从如下两个点进行检测1、对于登录连接测试,即ssh登录认证2、sudo权限的检测,这里抽查一个命令进行简单的检测创建.yaml文件,内容如下#description:Conectionandsudopermissiontestforlinuxserver#author:QQ:5201351----hosts:"{{hos......
  • 三:I/O设备与主机的联系
    i/o设备编址方式统一编址用取数存数指令不统一编址有专门的i/o指令设备选址用设备选择电路传送方式并行:同时多位数据串行:适合远程传输联络方式立即响应:LED接受响应异步工作采用应答信号并行:CPU<->I/O接口<->i/o设备(送信号)i/o与主机的连接方式辐射式连接(每一台......
  • 设置Windows主机的浏览器为wls2的默认浏览器
    这里以Chrome为例。1.准备工作wsl是可以使用Windows主机上安装的exe程序,出于安全考虑,默认情况下改功能是无法使用。要使用的话,终端需要以管理员权限启动。我这里以WindowsTerminal为例,介绍如何默认使用管理员权限打开终端,具体操作如下图所示:2.操作wsl使用Windows主机的......