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是如何解决该问题动态的选 ...
随机推荐
- Java压缩音频视频工具类
/** * TODO * * @author Administrator * @version 1.0 * @date 2021/11/5 16:55 */ public class vedio { ...
- NRF52832的FDS程序,参考非蓝牙例程修改而来(需要增加DFU的基础上只要增加如下程序即可解决)
/* Dummy configuration data. */ static configuration_t m_dummy_cfg = { .config1_on = false, .config2 ...
- [Cisco][GNS3]Install IOU device in GNS3
1. 下載並安裝GNS3 下載位置 https://gns3.com/software 安裝 gns3-all-in-one 部屬GNS3 VM至virtualbox 下載並安裝VIX API htt ...
- ORACLE 去重
-----------------------------------------------------------------------------模拟数据------------------- ...
- 第3章---数据探索(python数据挖掘)
1.缺失值分析及箱型图 数据:catering_sale.xls(餐饮日销额数) 缺失值使用函数:describe()函数,能算出数据集的八个统计量 import pandas as pd cater ...
- vs2022和wsl2开发和调试c++代码(转载)
看见一个不错的帖子(知乎) https://zhuanlan.zhihu.com/p/390757559 里面最主要就是要保证wsl里面安装的东西够了,第二就是vs2022已经安装了linux的相关模 ...
- Go_day06
Go基础语法 错误和异常 什么是错误error 错误是指可鞥出现问题的地方出现了问题,这种情况在预料之中 func main() { //打开一个文件 file, err := os.Open(&qu ...
- opengauss集群安装报错
DB_VERSION:opengauss 3.0.3 1.[GAUSS-51632] [GAUSS-51632] : Failed to do gs_sshexkey.Error: Please en ...
- Spring--事务案例的实现
案例实现(主要是想用Spring实现一下MyBatis的相关内容) JDBCConfig.java MyBatisConfig.java SpringConfig.java accountDao.ja ...
- 后疫情时代,RTE“沉浸式”体验还能这么玩?丨RTE 2022 编程挑战赛赛后专访
前言 9 月 17 日,由声网.环信与 RTE 开发者社区联合主办的"RTE 2022 编程挑战赛"圆满落幕.从 300+ 支参赛队伍中冲出重围的 27 支决赛队伍,在元宇宙中用精 ...