<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 牛人業(yè)話(huà) > STM32再學(xué)習之工程師眼中的SPI

STM32再學(xué)習之工程師眼中的SPI

作者:jobs 時(shí)間:2014-06-23 來(lái)源:電子產(chǎn)品世界 收藏

  從上圖我們可以看出,當CPHA置高時(shí),其數據鎖存在第二個(gè)時(shí)鐘邊沿;CPHA清零時(shí),數據鎖存在第一個(gè)時(shí)鐘邊沿。而CPOL參數置高時(shí),數據鎖存在時(shí)鐘信號的下降沿,時(shí)鐘線(xiàn)空閑狀態(tài)為常高,反之,數據鎖存在時(shí)鐘信號的上升沿,空閑狀態(tài)為常低。

本文引用地址:http://dyxdggzs.com/article/248687.htm

  對于數據的發(fā)送過(guò)程,幀格式也是可以修改的,例如可以選擇MSB方式(最高位先發(fā)送)或是LSB方式(最低位先發(fā)送),還可以選擇插入CRC校驗的方式等,這里對于這些高級的應用,由于本文片幅有限就不再詳細講解了。

  接下來(lái),我們通過(guò)STM32單片機對于外設的初始化過(guò)程再來(lái)看一下的硬件標準。

  void _init(void)

  {

  RCC_APB2PeriphClockCmd(sFLASH_CS_GPIO_CLK | sFLASH_SPI_MOSI_GPIO_CLK | sFLASH_SPI_MISO_GPIO_CLK |

  sFLASH_SPI_SCK_GPIO_CLK, ENABLE);

  /*!< 配置SPI的外設時(shí)鐘,并使能 */

  RCC_APB2PeriphClockCmd(sFLASH_SPI_CLK, ENABLE);

  /*!< 配置SCK引腳 */

  GPIO_InitStructure.GPIO_Pin = sFLASH_SPI_SCK_PIN;

  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //此處根據具體應用而設置,例如可配置為開(kāi)漏輸出

  GPIO_Init(sFLASH_SPI_SCK_GPIO_PORT, &GPIO_InitStructure);

  /*!< 配置MOSI引腳 */

  GPIO_InitStructure.GPIO_Pin = sFLASH_SPI_MOSI_PIN;

  GPIO_Init(sFLASH_SPI_MOSI_GPIO_PORT, &GPIO_InitStructure);

  /*!< 配置MISO引腳 */

  GPIO_InitStructure.GPIO_Pin = sFLASH_SPI_MISO_PIN;

  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;

  GPIO_Init(sFLASH_SPI_MISO_GPIO_PORT, &GPIO_InitStructure);

  /*!< 配置NSS引腳為GPIO輸出 */

  GPIO_InitStructure.GPIO_Pin = sFLASH_CS_PIN;

  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

  GPIO_Init(sFLASH_CS_GPIO_PORT, &GPIO_InitStructure);

  /*!< SPI配置 */

  SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex; //數據線(xiàn)兩線(xiàn),雙向全雙半

  SPI_InitStructure.SPI_Mode = SPI_Mode_Master; //

  SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b; //

  SPI_InitStructure.SPI_CPOL = SPI_CPOL_High; //CPOL置高,時(shí)鐘線(xiàn)在閑時(shí)常高,下降沿鎖存數據

  SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge; //CPHA置高,則第二個(gè)時(shí)鐘沿鎖存數據

  SPI_InitStructure.SPI_NSS = SPI_NSS_Soft; //從引腳為軟件配置方式

  SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_4; //SPI時(shí)鐘頻率為4分頻

  SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB; //MSB最高位優(yōu)先發(fā)送

  SPI_InitStructure.SPI_CRCPolynomial = 7; //CRC檢驗公式選擇第7項

  SPI_Init(sFLASH_SPI, &SPI_InitStructure);

  /*!< 使能SPI */

  SPI_Cmd(sFLASH_SPI, ENABLE);

  }

fpga相關(guān)文章:fpga是什么


數字通信相關(guān)文章:數字通信原理




關(guān)鍵詞: FPGA SPI MCU

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>