stm32 某个io引脚不能拉高_解决STM32 SPI 半残废 NSS无法拉高

本文介绍了如何解决STM32 SPI NSS引脚无法自动拉高的问题,通过GPIO中断来模拟NSS功能。详细步骤包括初始化SPI IO口、配置SPI为从机模式、设置GPIO中断及中断服务函数,实现SPI从机的正确使能和禁用,避免SPI从机间的相互干扰。
摘要由CSDN通过智能技术生成

众所周知,STM32  SPI是个半残废,NSS无法自动拉高,所以使用SPI 从机会一直使能,当主机是一对多的时候,就会出现SPI从机互相干扰的问题。

我利用GPIO中断,代替NSS引脚,使用过程如下代码所示

1.初始化SPI  的IO口,其中NSS引脚先不管。

void GPIO_SPI12_Config(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

//----- 第1步:打开SPI部件的时钟 --------------------------------------------------------------------------------------------

RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE);

//----- 第2步:打开SPI相关的引脚为复用推挽输出 -----------------------------------------------------------------------------

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;

GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;

GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_Level_3;

/* SPI SCK pin configuration */

GPIO_InitStructure.GPIO_Pin = SPI12_SCK_P

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值