SPI-SPI主机硬件片选功能使用说明
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 );
SPI-SPI主机硬件片选功能使用说明的更多相关文章
- [SPI]SPI协议详解
转自:https://my.oschina.net/freeblues/blog/67400 1.SPI协议简介 1.1.SPI协议概括 SPI,是英语Serial Peripheral interf ...
- Arduino SPI + SPI Flash芯片W25Q80BV
W25Q80BV是台湾华邦电子(Winbond)生产的8M-bit串行flash芯片.主要特性有: 工作电压:2.5 ~ 3.6 V 功耗:读写(active)时4mA,低功耗(power-down) ...
- DUBBO功能使用说明
DUBBO功能使用说明 1 DUBBO概述 DUBBO是阿里巴巴公司的一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案. 相比于其他服务框架,DUBBO有如 ...
- 审核流(2)流程设计-SNF.WorkFlow功能使用说明--SNF快速开发平台3.1
流程设计 图形化的流程设计,更方便.直观 1.打开“流程设计“程序,如上.点击”新建“如下: 2.红色部分为必填项,审批对象是选择要审批的程序菜单,单据名称是在审核流流转时用于提示的单据名称,还要选择 ...
- element框架中表格的筛选功能使用说明(转载)
一.element框架中表格的筛选功能使用说明 转载:https://blog.csdn.net/liangxhblog/article/details/80513030 在element ui 框架 ...
- ubuntu18.04 lts重装VMware Tools实现主机文件共享等功能
ubuntu18.04 lts重装VMware Tools实现主机文件共享等功能 在VMWare 14.x上安装ubunuu18.04 lts后发现,可以实现全屏显示,但是没有与主机共享文件的功能,然 ...
- 小程序升级实时音视频录制及播放能力,开放 Wi-Fi、NFC(HCE) 等硬件连接功能
“ 小程序升级实时音视频录制及播放能力,开放 Wi-Fi.NFC(HCE) 等硬件连接功能.同时提供按需加载.自定义组件和更多访问层级等新特性,增强了第三方平台的能力,以满足日趋丰富的业务需求.” 0 ...
- 驰骋工作流引擎ccflow-流转自定义功能使用说明
流转自定义功能使用说明 关键字: 驰骋工作流程快速开发平台 工作流程管理系统 工作流引擎 asp.net工作流引擎 java工作流引擎. 节点跳转 节点流转自定义 应用背景: 有一些流程在运行过程中是 ...
- 京东云携手Mellanox,设计最先进SDN硬件加速功能并开源
京东云携手Mellanox,设计最先进SDN硬件加速功能并开源 最新技术播报 京东云开发者社区 导语新一代 SDN.NFV 和云原生计算技术正在推动应用实例的极限,这些实例可以在虚拟化和容器化的服务 ...
- Dubbo SPI机制之三Adaptive自适应功能
JDK标准中SPI机制的一个问题就是其一次性实例化扩展点所有实现,如果有扩展实现初始化很耗时,但如果没用上也加载,会很浪费资源:扩展点加载失败,其他扩展点都用不了了.Dubbo是如何解决该问题动态的选 ...
随机推荐
- Crypto入门 (十一)easychallenge
前言: 这题跟python有关,可见看懂python代码还是很有必要得,需要有一些python基础才好 easychallenge: 题目: 下载后来发现是一个.pyc为后缀得文件,查找资料可知,该文 ...
- Java学习笔记(二)环境
卸载JDK 1.删除java的安装目录 2.删除JAVA_HOME 3.删除path下关于java的目录 4.java -version 配置环境变量 1.我的电脑-->右键-->属性 ...
- 实验二 K-近邻算法及应用
博客班级 https://edu.cnblogs.com/campus/ahgc/machinelearning 作业要求 https://edu.cnblogs.com/campus/ahgc/ma ...
- Ubuntu解决无法远程连接
检查SSH是否安装 ssh localhost 如果没有安装,通过APT的命令安装 sudo apt install openssh-server 无法连接Ubuntu中的root用户 其他用户可以连 ...
- SQL SERVER 2014 双机热备操作流程-数据库双向同步 (第二篇:订阅)
1.登录从服务器数据库,从数据库左侧菜单栏找到->复制->本地订阅->右击新建订阅->选择查找SQL Server 发布服务器,数据库服务器名称要是主服务器计算机名称,输入登录 ...
- MySQLdb安装
yum seach MySQL-Python sudo yum install MySQL-python.x86_64 import MySQLdb
- mysql5.7主从搭建过程
1.下载程序包 mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz ,解压至/opt/app/mysql2.配置/etc/my.cnf[mysql]socket=/o ...
- 例题1:shell脚本
题目总结: 1.搜索子域名的shell脚本 2.嗅探并抓去网页快照shell脚本 3.漏洞利用程序下载脚本 题目一:依次输入以下代码即可: 1.wget www.megacorpone.com 2. ...
- VMwareWorkstation-安装虚拟机
安装vmware 首先就是下载VMware客户端了,Vmware是收费的,过好大多数都有破解版,或者激活码 这里我是用的是VMware16,下载在网上搜一下就有,例如 下载解压后里面有一个后缀为exe ...
- SpringBoot笔记--自动配置(高级内容)(下集)
案例需求 实现步骤: 具体的实现 1.引入Jedis依赖 2.提供Jedis的Bean 找到SpringBoot的执行文件,按住Ctrl键,进入SpringBootApplication注解,再进入E ...