0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)于SPI傳輸過(guò)程 stm32 SPI配置

MCU開發(fā)加油站 ? 來(lái)源:未知 ? 作者:胡薇 ? 2018-04-20 11:01 ? 次閱讀

SPI (Serial Peripheral interface),顧名思義就是串行外圍設(shè)備接口。SPI是一種高速的,全雙工,同步的通信總線,并且在芯片的管腳上只占用四根線,節(jié)約了芯片的管腳,同時(shí)為PCB的布局上節(jié)省空間,提供方便,主要應(yīng)用在 EEPROM,F(xiàn)LASH,實(shí)時(shí)時(shí)鐘,AD轉(zhuǎn)換器,還有數(shù)字信號(hào)處理器和數(shù)字信號(hào)解碼器之間。

SPI內(nèi)部簡(jiǎn)明結(jié)構(gòu)圖

關(guān)于SPI傳輸過(guò)程(下面由靈魂畫家作圖)

SPI包含四根線:

1、SS(Slave Select):片選信號(hào)線,當(dāng)有多個(gè)SPI設(shè)備與MCU相連時(shí),每個(gè)設(shè)備的這個(gè)片選信號(hào)線是與MCU單獨(dú)的引腳相連的,而其他SCK,MOSI,MISO線則為多個(gè)設(shè)備并聯(lián)到相同的SPI總線上,當(dāng)SS信號(hào)線為低電平時(shí),片選有效,開始SPI通信

2、SCK(Serial Clock):時(shí)鐘信號(hào)線,由主通信設(shè)備產(chǎn)生,不同的設(shè)備支持的時(shí)鐘頻率不一樣。

3、MOSI(Master Output,Slave Input):主設(shè)備輸出、從設(shè)備輸入引腳

4、MISO(Master Input,Slave Output):主設(shè)備輸入、從設(shè)備輸出引腳

關(guān)于SPI模式

根據(jù)SPI時(shí)鐘極性(CPOL)和時(shí)鐘相位(CPHA)配置的不同可分為4種模式

時(shí)鐘極性是指SPI通信設(shè)備處于空閑狀態(tài)時(shí)(或SPI通信開始時(shí),即SS為低電平時(shí)),SCK的電平信號(hào)CPOL=0時(shí),SCK空閑狀態(tài)為低電平,CPOL=1時(shí)則相反。

時(shí)鐘相位是指數(shù)據(jù)采樣的時(shí)刻,當(dāng)CPHA=0時(shí),MOSI或MISO數(shù)據(jù)線會(huì)在時(shí)鐘線第一個(gè)邊沿開始采樣(奇數(shù)邊沿)

當(dāng)CPHA=1時(shí),MOSI或MISO數(shù)據(jù)線會(huì)在時(shí)鐘線第二個(gè)邊沿開始采樣(偶數(shù)邊沿)

步驟分析:SS片選信號(hào)線拉低-->根據(jù)CPOL和CPHA進(jìn)行數(shù)據(jù)采樣

stm32 SPI接口框圖

stm32 SPI配置過(guò)程

1、配置相關(guān)引腳的復(fù)用功能,使能SPIx時(shí)鐘

void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);

2、初始化SPIx,設(shè)置SPIx工作模式

void SPI_Init(SPI_TypeDef* SPIx, SPI_InitTypeDef* SPI_InitStruct);

3、使能SPIx

void SPI_Cmd(SPI_TypeDef* SPIx, FunctionalState NewState);

4、SPI傳輸數(shù)據(jù)

void SPI_I2S_SendData(SPI_TypeDef* SPIx, uint16_t Data);

uint16_t SPI_I2S_ReceiveData(SPI_TypeDef* SPIx);

5、查看SPI傳輸狀態(tài)

FlagStatus SPI_I2S_GetFlagStatus(SPI_TypeDef* SPIx, uint16_t SPI_I2S_FLAG);

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • pcb
    pcb
    +關(guān)注

    關(guān)注

    4294

    文章

    22776

    瀏覽量

    393220
  • SPI
    SPI
    +關(guān)注

    關(guān)注

    17

    文章

    1669

    瀏覽量

    90729
  • AD轉(zhuǎn)換器
    +關(guān)注

    關(guān)注

    4

    文章

    249

    瀏覽量

    41289

原文標(biāo)題:stm32之SPI通信協(xié)議

文章出處:【微信號(hào):mcugeek,微信公眾號(hào):MCU開發(fā)加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    請(qǐng)問stm32 SPI DMA傳輸過(guò)程該如何操作?

    程序要使用spi dma,由于以前沒有用到過(guò),有些疑惑,主要使用的是spi2,我主要是想用其接收一幀數(shù)據(jù),主要的配置如下:RCC_AHBPeriphClockCmd
    發(fā)表于 09-05 09:30

    對(duì)SPI通信模式的配置過(guò)程分析

    SPI通信分析許久不更,想你們了。SPI 模式的配置SPI通信配置STM官方的芯片手冊(cè)中對(duì)于SPI
    發(fā)表于 02-17 07:57

    SPI方式FPGA配置SPI flash編程

    SPI方式FPGA配置SPI flash編程
    發(fā)表于 05-16 18:01 ?164次下載
    <b class='flag-5'>SPI</b>方式FPGA<b class='flag-5'>配置</b>和<b class='flag-5'>SPI</b> flash編程

    關(guān)于STM32SPI通信

    STM32SPI通信調(diào)試經(jīng)驗(yàn)
    發(fā)表于 02-07 15:53 ?21次下載

    STM32F0xx_SPI讀寫(Flash) 配置詳細(xì)過(guò)程

    STM32F0xx_SPI讀寫(Flash)配置詳細(xì)過(guò)程
    的頭像 發(fā)表于 04-07 11:40 ?5064次閱讀
    <b class='flag-5'>STM32F0xx_SPI</b>讀寫(Flash) <b class='flag-5'>配置</b>詳細(xì)<b class='flag-5'>過(guò)程</b>

    STM32SPI接口、cubeMX軟件配置SPI接口和分析SPI相關(guān)代碼

    本文主要介紹STM32SPI接口、cubeMX軟件配置SPI接口和分析SPI相關(guān)代碼。 STM32
    的頭像 發(fā)表于 09-24 14:09 ?1.6w次閱讀
    <b class='flag-5'>STM32</b>的<b class='flag-5'>SPI</b>接口、cubeMX軟件<b class='flag-5'>配置</b><b class='flag-5'>SPI</b>接口和分析<b class='flag-5'>SPI</b>相關(guān)代碼

    STM32F103和STM32F030 SPI-miso配置不同點(diǎn)

    在調(diào)試STM32F103和STM32F030的SPI時(shí),發(fā)現(xiàn)兩者的MISO配置不同,STM32F103: /**
    發(fā)表于 12-02 16:06 ?17次下載
    <b class='flag-5'>STM32</b>F103和<b class='flag-5'>STM32</b>F030 <b class='flag-5'>SPI</b>-miso<b class='flag-5'>配置</b>不同點(diǎn)

    STM32F1x HAL庫(kù)學(xué)習(xí)筆記(12)硬件 SPI配置

    STM32CubeMx 配置 硬件 SPI 主機(jī)文章目錄一、硬件 SPI 的使用二、SPI配置
    發(fā)表于 12-06 11:36 ?13次下載
    <b class='flag-5'>STM32</b>F1x HAL庫(kù)學(xué)習(xí)筆記(12)硬件 <b class='flag-5'>SPI</b> 的<b class='flag-5'>配置</b>

    SPI的基本知識(shí)(偏向STM32中的SPI

    SPI的基本知識(shí)1. 雜談2.什么是SPI?3. SPI的通信協(xié)議4. STM32SPI配置
    發(fā)表于 12-07 11:51 ?11次下載
    <b class='flag-5'>SPI</b>的基本知識(shí)(偏向<b class='flag-5'>STM32</b>中的<b class='flag-5'>SPI</b>)

    SPI通信分析

    SPI通信分析許久不更,想你們了。SPI 模式的配置SPI通信配置STM官方的芯片手冊(cè)中對(duì)于SPI
    發(fā)表于 12-22 19:12 ?2次下載
    <b class='flag-5'>SPI</b>通信分析

    STM32 SPI配置及深入解析

    SPI分析平時(shí)會(huì)使用硬件SPI,但是只用于應(yīng)用沒有具體深入了解SPI的執(zhí)行流程,此處我采用抓取波形的方式對(duì)SPI進(jìn)行了一下深入了解。STM32
    發(fā)表于 12-22 19:16 ?4次下載
    <b class='flag-5'>STM32</b> <b class='flag-5'>SPI</b><b class='flag-5'>配置</b>及深入解析

    STM32L4使用SPI驅(qū)動(dòng)TFTLCD

    STM32L4使用SPI驅(qū)動(dòng)TFTLCD在上新建工程的基礎(chǔ)上添加使用SPI功能(新建工程見STM32使用LL庫(kù)建立工程)一、CubeMX的配置
    發(fā)表于 12-22 19:20 ?11次下載
    <b class='flag-5'>STM32</b>L4使用<b class='flag-5'>SPI</b>驅(qū)動(dòng)TFTLCD

    關(guān)于STM32SPI外設(shè)時(shí)鐘分頻對(duì)應(yīng)的SCK速率

    STM32F103為例,經(jīng)過(guò)system_stm32f10x.c文件中的SystemInit()函數(shù)之后,這里是指的默認(rèn)時(shí)鐘配置如下圖所示:STM32F103的系統(tǒng)框架圖如下所示:可
    發(fā)表于 12-22 19:23 ?9次下載
    <b class='flag-5'>關(guān)于</b><b class='flag-5'>STM32</b>的<b class='flag-5'>SPI</b>外設(shè)時(shí)鐘分頻對(duì)應(yīng)的SCK速率

    STM32學(xué)習(xí)筆記--SPI

    目錄:一、SPI簡(jiǎn)介1.SPI信號(hào)線2.SPI模式3.工作時(shí)序二、STM32SPI1.SPI特性2.S
    發(fā)表于 12-22 19:24 ?11次下載
    <b class='flag-5'>STM32</b>學(xué)習(xí)筆記--<b class='flag-5'>SPI</b>

    STM32CubeMX-HAL庫(kù)的SPI接口使用

    本文主要介紹STM32SPI接口、cubeMX軟件配置SPI接口和分析SPI相關(guān)代碼。
    發(fā)表于 02-08 15:27 ?10次下載
    <b class='flag-5'>STM32</b>CubeMX-HAL庫(kù)的<b class='flag-5'>SPI</b>接口使用