GD32里SPI的SWNSS是软件NSS控制吗?

[复制链接]
2010|5
 楼主| hjz21 发表于 2023-11-5 20:57 | 显示全部楼层 |阅读模式
大家好,
GD32F150,SPI设置成MASTER模式,我用SWNSS比特不能控制NSS脚的电平?

我在配置SPI是设置:
spi_init_struct.nss                  = SPI_NSS_SOFT;  //设置为软件模式 ,即SWNSSEN
spi_init(SPI1, &spi_init_struct);       
spi_nss_output_enable(SPI1);       //允许驱动NSS
spi_enable(SPI1);
然后调用
spi_nss_internal_high(SPI1); //SWNSS设置
spi_nss_internal_low(SPI1); //SWNSS设置
发现NSS脚不变化。

当ENABLE的时候NSS脚拉低,DISABLE的时候,NSS拉高。
似乎和SWNSS比特位的设置没有关系。

我的问题是:SWNSS不是软件模式设置NSS脚电平的么?
zeshoufx 发表于 2023-11-7 11:40 | 显示全部楼层
NSS引脚配置部分程序没看到,,,需要配置为推挽输出,,而不是复用推挽输出
两只袜子 发表于 2023-11-8 10:21 | 显示全部楼层
配置检查,如时钟极性、时钟相位等。错误的配置可能会影响NSS脚的行为。
jcky001 发表于 2023-11-8 10:21 | 显示全部楼层
请确保NSS引脚在硬件层面上是可以配置为推挽输出的。如果NSS引脚被固定为输入,那么无论你在软件中如何尝试,都无法改变其电平状态。
elephant00 发表于 2023-11-8 10:22 | 显示全部楼层
在调用spi_nss_internal_high(SPI1)和spi_nss_internal_low(SPI1)之前是否已经正确初始化了SPI接口。这些函数应该在spi_init(SPI1, &spi_init_struct);之后被调用。
cr315 发表于 2023-11-8 12:00 | 显示全部楼层
在某些情况下,可能存在一定的延迟。尝试加入适当的延迟(例如使用for循环进行一定次数的延时)来看看是否可以解决问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

35

主题

160

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部