1)sip管理模式分为:硬件管理和软件管理;主要由NSS 、SSI、SSM决定;

  NSS是芯片上一个实实在在的引脚,SSI和SSM是SPI_CR1控制器里的的位。

  值得注意的是:NSS分外部引脚和内部引脚的。外部NSS引脚当然就是与GPIO 共用的引脚,芯片上可以肉眼看到这个引脚;内部NSS引脚就是STM32芯片里集成的SPI模块引脚,我们肉眼是看不见的它的,换句话说,真正与SPI通信控制器连接的是内部NSS引脚,外部NSS引脚不能直接连到芯片内部的SPI模块,而是先连接内部NSS引脚,通过内部NSS引脚作用SPI模块。

  

2)基本概述:

  位SSM在SPI_CR1控制器里默认为0;

  SSM可以控制内部NSS引脚与SSI(一个寄存器,软件模式)相连,还是与NSS外部引脚(真正的STM32引脚,硬件模式)相连。真正作用的是内部NSS引脚(内部NSS引脚才真正连接到SPI通信控制器上)

  当SSM=0,说明使用硬件管理模式,此时NSS有效,内部NSS引脚与外部NSS引脚相连,忽视SSI位,对SPI_CR1的 SSI位 的写操作无效;

  当SSM=1,说明使用软件管理模式,此时SSI位有效,内部NSS引脚与SSI相连,忽视外部NSS引脚,我们可以把外部NSS引脚当做普通IO口;

3)配置:

SPI从模式的配置(MSTR=0)
1.硬件模式:SSM=0,当外部NSS为低电平时,内部NSS也为低电平,此时可以传送数据。

      外部NSS引脚必须作为输入模式,此引脚就成为了该器件的片选引脚:

        外部NSS引脚设置为复用功能+无上下拉,外部NSS引脚需要手动连接一个低电平,此时可以传送数据,低电平必须维持到SPI关闭为此,相当片选该从器件;

      外部NSS引脚设置为复用功能+无上下拉,外部NSS引脚手动连接一个高电平,内部NSS引脚被外部高电平拉高,此时不可以转送数据,因为相当取消从器件的片选;
2.软件模式:SSM=1,并SSI=0.STM32芯片让内部NSS引脚为低电平,此时可以传送数据。

      外部NSS引脚被释放,可做普通IO作为其他用途使用。

SPI主模式的配置(MSTR=1)

1.硬件模式:SSM=0  
   A:输入模式:SSOE=0,在外部NSS引脚为高电平,即内部NSS引脚也为高电平时,才能进行数据传输。 如果要使能从设备,还需要一个GPIO引脚。

    在此情况下,外部NSS要是被接低电平,则会进入主模式故障,MSTR会清零,由主模式进入从模式。

    外部NSS引脚需要配置为复用+无上下拉,且外部NSS引脚必须接入一个高电平,它才能维持主模式状态。
   B:输出模式:SSOE=1, 外部NSS引脚会被芯片自动输出低电平,使能从设备,进行数据传输。 不需要额外的GPIO引脚就能控制从设备。

    外部NSS引脚需要配置为复用功能,再把此引脚连接从器件的CS引脚,因为此情况下,外部NSS引脚就相当于片选引脚了。

2.软件模式:SSM=1,SSI=1,将内部NSS引脚设置为高电平。这样随时可以传输数据。当然多数情况还需要一个GPIO引脚输出低电平,来使能从设备,让从设备可以接收数据。

3.需要注意的是,SSOE位必须在主模式下配置才有效。它的作用是在硬件管理的主模式下是否开启外部NSS引脚的输入、输出模式。这是芯片手册上说的。

综上所述,NSS引脚就是片选CS引脚是很不负责任的说法。

本人也是参考下面此文章,此作者前半部分讲的非常好,但不能全信此作者讲,特别是他所写的后半部分,有些个人认为还是有些缺陷:

https://blog.csdn.net/andylauren/article/details/52259703

SPI_CR2  :

SPI_CR1:

STM32之spi管理模式的更多相关文章

  1. STM32的SPI口的DMA读写[原创www.cnblogs.com/helesheng]

    SPI是我最常用的接口之一,连接管脚仅为4根:在常见的芯片间通信方式中,速度远优于UART.I2C等其他接口.STM32的SPI口的同步时钟最快可到PCLK的二分之一,单个字节或字的通信时间都在us以 ...

  2. oled stm32的spi

    其实各种协议是很重要的,这篇文章就当做我对spi协议的一个整理吧. 必要的spi简介: https://www.cnblogs.com/zengsf/p/7221207.html?utm_source ...

  3. Azure 新的管理模式 —— Resource Manager

    var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...

  4. Greenplum+Hadoop学习笔记-14-定义数据库对象之创建与管理模式

    6.3.创建与管理模式 概述:DB内组织对象的一种逻辑结构.一个DB内能够有多个模式.在未指定模式时默认放置在public中.能够通过"\dn"方式查看数据库中现有模式: test ...

  5. Vuex(一)——vuejs的状态管理模式

    一.Vuex是什么? Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式. 它采用集中式存储 管理 应用的所有组件 的 状态,并以 相应的规则 保证 状态以一种 可预测的方式 发生变化. ...

  6. 理解vuex的状态管理模式架构

    理解vuex的状态管理模式架构 一: 什么是vuex?官方解释如下:vuex是一个专为vue.js应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证以一种可预测的 ...

  7. 【转】STM32三种启动模式

    @2018-12-16 [小记] STM32 启动区域 STM32三种启动模式 借助上述文章理解官方文档<一种从用户代码调用系统存储器中 Bootloader 的方法 >

  8. 五、vue状态管理模式vuex

    一.vuex介绍 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 即data中属性同时有一 ...

  9. STM32 F4 SPI Accelerometer

    STM32 F4 SPI Accelerometer

随机推荐

  1. mysql使用replace和on duplicate key update区别

    实际业务使用中,有时候会遇到插入数据库,但是如果某个属性(比如:主键)存在,就做更新.通常有两种方式:1.replace into  2.on duplicate key update 但是在使用过程 ...

  2. 给定一个二叉搜索树(BST),找到树中第 K 小的节点

    问题:给定一个二叉搜索树(BST),找到树中第 K 小的节点. 出题人:阿里巴巴出题专家:文景/阿里云 CDN 资深技术专家. 考察点: 1. 基础数据结构的理解和编码能力 2.  递归使用 参考答案 ...

  3. 利用ssh 删除远程服务器文件

    ssh 登录,利用命令 rm 登录ssh ssh name@10.202.9.11 rm 命令删除文件 rm file rm -rf 删除文件夹 rm -rf fold 删除当前文件夹内容,保留当前文 ...

  4. css中的浮动与定位

    传送门:https://www.cnblogs.com/junwuyao/p/7435257.html

  5. mapreduce入门程序之---wordcount

    mapreduce是hadoop生态中非常重要的一部分,顾名思义,主要分为两部分,map和reduce,他们各司其职,map的主要功能是用来对待处理的文档进行处理,主要是对数据进行按行读取,分割,然后 ...

  6. Qt 操作QDomDocument对象修改节点

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/liulihuo_gyh/article/d ...

  7. layui select 下拉框 级联 动态赋值 与获取选中值

    //下拉框必须在 class="layui-form" 里 不然监听事件没有作用 <div class="layui-form" > <div ...

  8. Remix 搭建与简单使用,并支持外部访问

    Remix 搭建与简单使用,并支持外部访问 转 https://blog.csdn.net/linshenyuan1213/article/details/83444911 remix是基于浏览器的在 ...

  9. Qt编写气体安全管理系统12-设备双击

    一.前言 在编写这个项目的过程中,有个得到客户夸赞的小功能就是,设备按钮双击,在离线的时候是双击重连设备,在线的时候是双击弹出具体详情界面,回控设备,参数设置等.在modbus设备通信过程中,设定了超 ...

  10. matlab学习笔记4--MAT文件的保存和读取

    一起来学matlab-matlab学习笔记4 数据导入和导出_1 MAT文件的保存和读取 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matlab 程序设计与综合应用&g ...