SPI是一種高速的,全雙工,同步的通信總線,原理和使用簡單,占用引腳資源少,是一種常用的通信方式。
STM32通常有2~3個SPI接口
根據(jù)STM32手冊的使用方法:
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引腳配置為對應(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è)備決定
需要的時候可以配置中斷,DMA等功能
發(fā)送或接收數(shù)據(jù)前,先將相應(yīng)從機(jī)的片選信號置零
SPI是兩個設(shè)備移位寄存器的數(shù)據(jù)交換,接收數(shù)據(jù)前先向從機(jī)發(fā)送虛擬字節(jié),收到的數(shù)據(jù)就是所要讀取的數(shù)據(jù)
上一篇:STM32單片機(jī)的EXIT中斷解析
下一篇:如何用STM32配置一個EXTIx中斷線的I/O口
- 熱門資源推薦
- 熱門放大器推薦
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦
- 人形機(jī)器人馬拉松背后的思考,兆易創(chuàng)新如何賦能機(jī)器人產(chǎn)業(yè)
- 一種基于STM32的智能柜控制器設(shè)計
- 小型傾轉(zhuǎn)旋翼機(jī)的無刷直流電機(jī)驅(qū)動器設(shè)計
- 超高速攝影機(jī)電控系統(tǒng)設(shè)計
- 基于GPS自動授時的無線智能控制器的設(shè)計
- 基于PTR2000的無線氣象信息采集系統(tǒng)設(shè)計
- Microchip推出MEC175xB系列器件,為嵌入式控制器引入硬件 抗量子攻擊能力
- 無人飛行器機(jī)載穩(wěn)定云臺控制系統(tǒng)的設(shè)計
- 匠芯創(chuàng)推出面向具身智能高性能實(shí)時處理器M7000
- LT6656BIS6-3、3V 電壓基準(zhǔn)作為微功率穩(wěn)壓器的典型應(yīng)用
- 實(shí)施血糖儀和血壓監(jiān)測儀醫(yī)療設(shè)備
- 用于電池充電器的 6V AC 到 DC 單路輸出電源
- ADZS-BF518F-EZBRD、ADSP-BF518F EZ-Board 評估板基于 ADSP-BF51xF Blackfin 數(shù)字信號處理器 (DSP)
- 游戲(LOL)專用鍵盤 帶閃現(xiàn)計時
- 用于開/關(guān)控制應(yīng)用的 AM2G-4812SH30Z 12V 2 瓦 DC-DC 轉(zhuǎn)換器的典型應(yīng)用
- AD6643-250EBZ,用于評估 AD6643 模數(shù)轉(zhuǎn)換器的評估板
- 2.9寸/1.54寸桌面墨水屏擺件
- 液晶電視電源用DC轉(zhuǎn)DC單路輸出電源
- 典型應(yīng)用使用 TC7116A 模數(shù)轉(zhuǎn)換器獲得 2V 滿量程的推薦組件值
- AI時代的孩子,如何成為未來的開創(chuàng)者?
- 通用汽車轉(zhuǎn)向LFP電池,LG新能源和三星SDI擬在美建廠
- 蓋世汽車研究院:政策助推疊加技術(shù)迭代 全固態(tài)電池蓄勢待發(fā)
- 小鵬汽車董事長預(yù)測:2027年激光雷達(dá)非智能駕駛必備
- 解碼大眾汽車中國戰(zhàn)略 - 決戰(zhàn)智能化電氣化的三板斧
- 2025從具身智能大腦展望人形機(jī)器人發(fā)展
- “荊楚”人形機(jī)器人即將量產(chǎn),智能時代的新篇章!
- 小鵬純視覺方案:技術(shù)突圍與市場下沉的雙重博弈
- 為什么無人出租車能“零”事故,而智能駕駛輔助卻事故頻發(fā)?
- 重磅!一顆要顛覆全球智駕的芯片點(diǎn)亮了!
- Synaptics Clear ID光學(xué)屏幕指紋傳感器支持全新小米8
- 這幾家去年融資過億的機(jī)器人相關(guān)企業(yè) 現(xiàn)在如何?
- 云計算人工智能有力推動精準(zhǔn)醫(yī)療發(fā)展,數(shù)據(jù)驅(qū)動智慧醫(yī)療
- 藍(lán)牙技術(shù)聯(lián)盟發(fā)布2018《藍(lán)牙市場最新資訊》
- 福祿克眾多新產(chǎn)品齊聚上海光伏展
- 前進(jìn)5納米 臺積電最新技術(shù)藍(lán)圖全覽
- 聯(lián)想再做戰(zhàn)略調(diào)整:手機(jī)與PC業(yè)務(wù)合并,多位高管調(diào)整
- 連5年維持獲利 力晶:2020年擬重新掛牌上市
- 受惠缺貨和漲價效益 環(huán)球晶Q1營收實(shí)現(xiàn)九連漲
- 力晶擬分割規(guī)劃重新上市