s t m 3 2 s p i 硬 件 模 式

28 篇文章 0 订阅

刚才用逻辑分析仪做了测试

时序如下
https://i-blog.csdnimg.cn/blog_migrate/db5302cb71043b8ab0c1072cf8e08e0a.gif

   反复试验,发现SPI_NSS引脚的自动硬件控制与想象的不同,无论是否外加上拉,只要一使能SPI,SPI_Cmd(SPI1, ENABLE); SPI_NSS引脚就一直处于低电平,直到SPI_Cmd(SPI1, DISABLE);这个需要用程序来控制。  而用过其他芯片则是发送完成自动会拉高,这点是要注意的

我说的就是做主机的时候

SPI_SSOutputCmd(SPIx,ENABLE) 在soft模式时这句话有必要吗?我的理解是当hard模式,需要multimaster的时候,才应该要开启这个output功能,这点从我的截图上可以看出。
我觉得,这里只要把SPI_InitStructure.SPI_NSS = SPI_NSS_Soft 写上,然后把对应的IO管脚设置成输出,再用
GPIO_ResetBits去拉低选择slave,通信结束后再用GPIO_SetBits去拉高告诉slave通信结束就可以了,和SPI_SSOutputCmd(SPIx,ENABLE)没有关系。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值