stm32 spi nss硬件模式配置参考程序
 2020.11.27    |      嵌入式学习    |     AilsonJack    |     暂无评论    |     488 views
By: Ailson Jack
Date: 2020-11-27
个人博客: http://www.only2fire.com/
<p>硬件平台:<span style="color: rgb(0, 112, 192);">STM32F429</span><br/>为了更加清楚的了解stm32 spi nss硬件模式的配置,这里以stm32f429为例,下面的程序就是spi nss硬件模式的配置参考程序,程序中使用了stm32f429标准库中的一些接口函数,该程序是经过测试可用的。</p><pre class="brush:cpp;toolbar:false PrismJs">/** &nbsp;*&nbsp;@brief&nbsp;stm32f429&nbsp;spi5&nbsp;初始化 &nbsp;* &nbsp;*&nbsp;@author&nbsp;Ailson&nbsp;Jack&nbsp;(www.only2fire.com) &nbsp;*&nbsp;@date&nbsp;2020-09-01 &nbsp;* &nbsp;*&nbsp;@note&nbsp;spi5&nbsp;引脚: &nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PF6&nbsp;-&nbsp;NSS &nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PF7&nbsp;-&nbsp;SCK &nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PF8&nbsp;-&nbsp;MISO &nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PF9&nbsp;-&nbsp;MOSI &nbsp;* &nbsp;*&nbsp;在spi主模式下,nss硬件模式设置为输出模式时,使能spi模块,外部nss引脚会输出低电平; &nbsp;*&nbsp;禁止spi模块,外部nss引脚会输出高电平. &nbsp;*/ void&nbsp;stm32f429_spi5_init(void) { &nbsp;&nbsp;&nbsp;&nbsp;SPI_InitTypeDef&nbsp;&nbsp;SPI_InitStructure; &nbsp;&nbsp;&nbsp;&nbsp;GPIO_InitTypeDef&nbsp;GPIO_InitStructure; &nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;使能&nbsp;SPI5&nbsp;GPIO&nbsp;时钟&nbsp;*/ &nbsp;&nbsp;&nbsp;&nbsp;RCC_AHB1PeriphClockCmd&nbsp;(RCC_AHB1Periph_GPIOF,&nbsp;ENABLE); &nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;使能&nbsp;SPI5&nbsp;时钟&nbsp;*/ &nbsp;&nbsp;&nbsp;&nbsp;FLASH_SPI_CLK_INIT(RCC_APB2Periph_SPI5,&nbsp;ENABLE); &nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;设置引脚复用&nbsp;*/ &nbsp;&nbsp;&nbsp;&nbsp;GPIO_PinAFConfig(GPIOF,&nbsp;GPIO_PinSource6,&nbsp;GPIO_AF_SPI5);&nbsp;/*&nbsp;NSS&nbsp;*/ &nbsp;&nbsp;&nbsp;&nbsp;GPIO_PinAFConfig(GPIOF,&nbsp;GPIO_PinSource7,&nbsp;GPIO_AF_SPI5);&nbsp;/*&nbsp;SCK&nbsp;*/ &nbsp;&nbsp;&nbsp;&nbsp;GPIO_PinAFConfig(GPIOF,&nbsp;GPIO_PinSource8,&nbsp;GPIO_AF_SPI5);&nbsp;/*&nbsp;MISO&nbsp;*/ &nbsp;&nbsp;&nbsp;&nbsp;GPIO_PinAFConfig(GPIOF,&nbsp;GPIO_PinSource9,&nbsp;GPIO_AF_SPI5);&nbsp;/*&nbsp;MOSI&nbsp;*/ &nbsp;&nbsp;&nbsp;&nbsp;GPIO_InitStructure.GPIO_Speed&nbsp;=&nbsp;GPIO_Speed_50MHz; &nbsp;&nbsp;&nbsp;&nbsp;GPIO_InitStructure.GPIO_Mode&nbsp;=&nbsp;GPIO_Mode_AF; &nbsp;&nbsp;&nbsp;&nbsp;GPIO_InitStructure.GPIO_OType&nbsp;=&nbsp;GPIO_OType_PP; &nbsp;&nbsp;&nbsp;&nbsp;GPIO_InitStructure.GPIO_PuPd&nbsp;=&nbsp;GPIO_PuPd_NOPULL; &nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;配置&nbsp;NSS&nbsp;引脚&nbsp;*/ &nbsp;&nbsp;&nbsp;&nbsp;GPIO_InitStructure.GPIO_Pin&nbsp;=&nbsp;GPIO_Pin_6; &nbsp;&nbsp;&nbsp;&nbsp;GPIO_Init(GPIOF,&nbsp;&amp;GPIO_InitStructure); &nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;配置&nbsp;SCK&nbsp;引脚&nbsp;*/ &nbsp;&nbsp;&nbsp;&nbsp;GPIO_InitStructure.GPIO_Pin&nbsp;=&nbsp;GPIO_Pin_7; &nbsp;&nbsp;&nbsp;&nbsp;GPIO_Init(GPIOF,&nbsp;&amp;GPIO_InitStructure); &nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;配置&nbsp;MISO&nbsp;引脚&nbsp;*/ &nbsp;&nbsp;&nbsp;&nbsp;GPIO_InitStructure.GPIO_Pin&nbsp;=&nbsp;GPIO_Pin_8; &nbsp;&nbsp;&nbsp;&nbsp;GPIO_Init(GPIOF,&nbsp;&amp;GPIO_InitStructure); &nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;配置&nbsp;MOSI&nbsp;引脚&nbsp;*/ &nbsp;&nbsp;&nbsp;&nbsp;GPIO_InitStructure.GPIO_Pin&nbsp;=&nbsp;GPIO_Pin_9; &nbsp;&nbsp;&nbsp;&nbsp;GPIO_Init(GPIOF,&nbsp;&amp;GPIO_InitStructure); &nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;在禁止&nbsp;spi&nbsp;时,才可以对&nbsp;spi&nbsp;进行配置&nbsp;*/ &nbsp;&nbsp;&nbsp;&nbsp;SPI_Cmd(SPI5,&nbsp;DISABLE); &nbsp;&nbsp;&nbsp;&nbsp;SPI_InitStructure.SPI_Direction&nbsp;=&nbsp;SPI_Direction_2Lines_FullDuplex; &nbsp;&nbsp;&nbsp;&nbsp;SPI_InitStructure.SPI_Mode&nbsp;=&nbsp;SPI_Mode_Master; &nbsp;&nbsp;&nbsp;&nbsp;SPI_InitStructure.SPI_DataSize&nbsp;=&nbsp;SPI_DataSize_8b; &nbsp;&nbsp;&nbsp;&nbsp;SPI_InitStructure.SPI_CPOL&nbsp;=&nbsp;SPI_CPOL_Low; &nbsp;&nbsp;&nbsp;&nbsp;SPI_InitStructure.SPI_CPHA&nbsp;=&nbsp;SPI_CPHA_1Edge; &nbsp;&nbsp;&nbsp;&nbsp;SPI_InitStructure.SPI_NSS&nbsp;=&nbsp;SPI_NSS_Hard;&nbsp;/*&nbsp;nss&nbsp;硬件模式&nbsp;*/ &nbsp;&nbsp;&nbsp;&nbsp;SPI_InitStructure.SPI_BaudRatePrescaler&nbsp;=&nbsp;SPI_BaudRatePrescaler_2; &nbsp;&nbsp;&nbsp;&nbsp;SPI_InitStructure.SPI_FirstBit&nbsp;=&nbsp;SPI_FirstBit_MSB; &nbsp;&nbsp;&nbsp;&nbsp;SPI_InitStructure.SPI_CRCPolynomial&nbsp;=&nbsp;7; &nbsp;&nbsp;&nbsp;&nbsp;SPI_Init(SPI5,&nbsp;&amp;SPI_InitStructure); &nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;SPI&nbsp;nss&nbsp;输出模式使能&nbsp;*/ &nbsp;&nbsp;&nbsp;&nbsp;SPI_SSOutputCmd(SPI5,&nbsp;ENABLE); &nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;使能&nbsp;spi&nbsp;-&nbsp;nss&nbsp;引脚输出低电平&nbsp;*/ &nbsp;&nbsp;&nbsp;&nbsp;SPI_Cmd(SPI5,&nbsp;ENABLE); }</pre>
欢迎关注博主的公众号呀,精彩内容随时掌握:
热情邀请仔细浏览下博客中的广告,万一有对自己有用或感兴趣的呢。◕ᴗ◕。。
如果这篇文章对你有帮助,记得点赞和关注博主就行了^_^,当然了能够赞赏博主,那就非常感谢啦!
注: 转载请注明出处,谢谢!^_^
转载请注明来源: 本文链接:  By: AilsonJack
stm32 spi nss硬件模式配置参考程序  |  说好一起走
暂无评论,要不要来个沙发
发表评论

 
Copyright © 2015~2023  说好一起走   保留所有权利   |  百度统计  蜀ICP备15004292号