如何使SPI NSS引脚在发送数据时为低电平,发完拉高

2019-08-18 18:51发布

使用的是STM32 SPI1,是否是软件输入模式下使SSOE位置1,然后把PA4配置成通用IO,发送前置0,发送完置1,目前这么做了,但是PA4始终为低电平,大佬求解。(没有正原电子开发板资料)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
南有乔木
1楼-- · 2019-08-18 19:51
xinghongyc 发表于 2017-5-25 17:03
电路板确定了,就是要在NSS上发送数据是为低电平,发完拉高。但是软件模式配置成主机时已经把SSI位置1, ...

从选择(NSS)脚管理
有2种NSS模式:
图211● 软件NSS模式:可以通过设置SPI_CR1寄存器的SSM位来使能这种模式(见)。在这种模式下NSS引脚可以用作它用,而内部NSS信号电平可以通过写SPI_CR1的SSI位来驱动
● 硬件NSS模式,分两种情况:
─ NSS输出被使能:当STM32F10xxx工作为主SPI,并且NSS输出已经通过SPI_CR2寄存器的SSOE位使能,这时NSS引脚被拉低,所有NSS引脚与这个主SPI的NSS引脚相连并配置为硬件NSS的SPI设备,将自动变成从SPI设备。 当一个SPI设备需要发送广播数据,它必须拉低NSS信号,以通知所有其它的设备它是主设备;如果它不能拉低NSS,这意味着总线上有另外一个主设备在通信,这时将产生一个硬件失败错误(Hard Fault)。
─ NSS输出被关闭:允许操作于多主环境。

软件模式下 NSS引脚就不使用了。
硬件模式  可以使用,但是使用条件已经给出了。作用就是用来配置主从设备的啊

至于你想直接操作PA4输出高低电平的意义是啥啊,只是单纯输出高低电平不就是普通IO口功能吗 ?和NSS也没有关系了。
你到底要NSS干嘛嘞
南有乔木
2楼-- · 2019-08-19 00:48
本帖最后由 南有乔木 于 2017-5-25 16:47 编辑

SPI NSS是从设备选择引脚,用来选择主设备与特定从设备通讯的。
比如SPI1上挂了几个从设备,可以用此引脚来选择特定从设备通讯。一般单主单从NSS由软件管理,此引脚是不用的。。。

NSS是PA4复用功能引脚,配置成 Standard IO是使用IO口的普通功能。

具体可参考原子的SPI例程啊,资料在置顶的帖子
xinghongyc
3楼-- · 2019-08-19 02:23
南有乔木 发表于 2017-5-25 16:45
SPI NSS是从设备选择引脚,用来选择主设备与特定从设备通讯的。
比如SPI1上挂了几个从设备,可以用此引脚 ...

电路板确定了,就是要在NSS上发送数据是为低电平,发完拉高。但是软件模式配置成主机时已经把SSI位置1,输出无效,怎么搞
Owen
4楼-- · 2019-08-19 06:49
软件模式NSS就是个普通引脚。你说的NSS脚没法拉高要么是你外部电路把电平拉低了,要么就是你SPI没启动成功,程序没跑到拉高电平的地方
cromarti
5楼-- · 2019-08-19 12:09
 精彩回答 2  元偷偷看……
cromarti
6楼-- · 2019-08-19 12:58
配置成软件模式是为了解放nss,尤其是唯一主机的情况,就不需要额外把nss拉高把自己配置成主机

一周热门 更多>