<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

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

          本文引用地址:http://www.ex-cimer.com/article/248687.htm

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

            接下來,我們通過STM32單片機(jī)對于外設(shè)的初始化過程再來看一下的硬件標(biāo)準(zhǔn)。

            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; //此處根據(jù)具體應(yīng)用而設(shè)置,例如可配置為開漏輸出

            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; //數(shù)據(jù)線兩線,雙向全雙半

            SPI_InitStructure.SPI_Mode = SPI_Mode_Master; //

            SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b; //

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

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

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

            SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_4; //SPI時鐘頻率為4分頻

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

            SPI_InitStructure.SPI_CRCPolynomial = 7; //CRC檢驗(yàn)公式選擇第7項(xiàng)

            SPI_Init(sFLASH_SPI, &SPI_InitStructure);

            /*!< 使能SPI */

            SPI_Cmd(sFLASH_SPI, ENABLE);

            }

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


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




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

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();