日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]SPI是一種高速的,全雙工,同步的通信總線,原理和使用簡單,占用引腳資源少,是一種常用的通信方式。STM32通常有2~3個(gè)SPI接口根據(jù)STM32手冊(cè)的使用方法:1. Enable peripheral clock2. Enable SCK, MOSI, MISO and N

SPI是一種高速的,全雙工,同步的通信總線,原理和使用簡單,占用引腳資源少,是一種常用的通信方式。

STM32通常有2~3個(gè)SPI接口

根據(jù)STM32手冊(cè)的使用方法:

1. Enable peripheral clock

2. Enable SCK, MOSI, MISO and NSS GPIO clocks

3. Peripherals alternate function:

? Connect the pin to the desired peripherals' Alternate Function (AF)

? Call GPIO_Init() function.

4. Program the Polarity, Phase, First Data, Baud Rate Prescaler, Slave Management,Peripheral Mode and CRC Polynomial values using the SPI_Init() function in SPI mode.

5. Configure the FIFO threshold using SPI_RxFIFOThresholdConfig() to select at which hreshold the RXNE event is generated.

6. Enable the NVIC and the corresponding interrupt using the function SPI_I2S_ITConfig() if you need to use interrupt mode.

7. When using the DMA mode

? Configure the DMA using DMA_Init() function.

? Active the needed channel Request using SPI_I2S_DMACmd() function.

8. Enable the SPI using the SPI_Cmd() function .

9. Enable the DMA using the DMA_Cmd() function when using DMA mode.

10. To use the CRC Hardware calculation feature refer to the Peripheral CRC hardware Calculation subsection.

基于STM32F3discovery開發(fā)板,STM32F303VC

使用SPI1,從機(jī)連接的是L3GD20陀螺儀,引腳連接:

SPI1_MOSI——PA7

SPI1_SCK——PA5

SPI1_MISO——PA6

NSS——PE3

代碼:

void SPI_GPIO_Config(void)

{

//將SPI1_MOSI—PA7,SPI1_SCK—PA5,SPI1_MISO—PA6引腳配置為對(duì)應(yīng)復(fù)用功能

//NSS—PE3為從機(jī)片選引腳,配置為推挽輸出

}

void SPI_Config(void)

{

SPI_InitTypeDef SPI_InitStructure;

SPI_InitStructure.SPI_Direction =SPI_Direction_2Lines_FullDuplex;

SPI_InitStructure.SPI_Mode = SPI_Mode_Master;

SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;

SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low; //結(jié)合從機(jī)選擇

SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge; //結(jié)合從機(jī)選擇

SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;

SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_8;

SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;

SPI_InitStructure.SPI_CRCPolynomial = 7;

SPI_I2S_DeInit(SPI1);

SPI_Init(SPI1, &SPI_InitStructure);

SPI_RxFIFOThresholdConfig(SPI1, SPI_RxFIFOThreshold_QF);

SPI_Cmd(SPI1,ENABLE);

}

然后就可以用SPI接口進(jìn)行收發(fā)數(shù)據(jù),具體收發(fā)方式要根據(jù)從機(jī)設(shè)備決定

需要的時(shí)候可以配置中斷,DMA等功能

發(fā)送或接收數(shù)據(jù)前,先將相應(yīng)從機(jī)的片選信號(hào)置零

SPI是兩個(gè)設(shè)備移位寄存器的數(shù)據(jù)交換,接收數(shù)據(jù)前先向從機(jī)發(fā)送虛擬字節(jié),收到的數(shù)據(jù)就是所要讀取的數(shù)據(jù)


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉