STM32硬件SPI使用与nSS的理解

本文介绍了在STM32中使用硬件SPI时遇到的问题及解决方法,重点解析了nSS信号的作用和管理模式,强调了在全双工模式下读写同步的重要性,提供了一种理解SPI通信和nSS管理的思路。
摘要由CSDN通过智能技术生成

最近在调试硬件SPI,之前使用软件模拟方式,为了提高速度,选择该方式进行替换。

花了一些时间了解寄存器跟库函数直接调用,结果要么读取不出数据(陷入等待TXE,RXNE死循环)或读取数据为0xffff,0x0101(nSS拉低之后没有跳变,或者Send/Write分开写,没有形成环形FIFO Shift,根据全双工协议,读写应该同时进行)。后来才在网上查找资料,并认真阅读STM32的RM,整理如下:

1、整体的框架如图

2、nSS详解

    In slave mode, the NSS works as a standard “chip select” input and lets the slave communicate with the master. In master mode, NSS can be used either as output or input.As an input it can prevent multimaster bus collision, and as an output it can drive a slave
select signal of a single slave.

  • 6
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
回答: 在STM32SPI中,硬件NSS是指通过外部引脚控制片选信号的方式。当SPI配置为主机模式时,可以将NSS引脚设置为输出模式,通过SPI_CR2寄存器的SSOE位来控制。当SSOE为1时,NSS引脚会输出低电平,也就是拉低,从而实现片选功能,将其他SPI设备的NSS引脚与它相连,就可以成功进行片选。而当SPI配置为从机模式时,NSS引脚则可以设置为输入模式,通过SPI_CR1寄存器的SSM位和SSI位来控制。SSM位为1是为了使能软件管理,而SSI位为1是为了使NSS内部电平为高电平。在硬件模式下,保持主机模式时,内部输入的NSS电平必须为高,才能保持MSTR和SPE位为1,即保持主设备状态。\[2\]\[3\] #### 引用[.reference_title] - *1* *2* [STM32 SPI 软件NSS硬件NSS解读](https://blog.csdn.net/m0_46272475/article/details/121152512)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [关于STM32SPI硬件NSS配置](https://blog.csdn.net/Potatotatotato/article/details/123316929)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值