SPI通訊筆記

2021-10-10 08:38:25 字數 2403 閱讀 4478

spi,serial peripheral inte***ce,序列外設介面。

1、匯流排構成:

2、通訊特點:同步、序列、全雙工

一般情況下,mcu與某個功能模組之間用spi通訊時,mcu作為主機。

片選引腳cs,存在於從機上,當 cs引腳上檢測到低電平(相對於從機),此時從機

會參與接下來的spi通訊,若cs引腳上檢測到高電平,則不參與通訊。

spi通訊速度可達幾mhz或幾十mhz (x mbits/s)

3、連線示意圖:

使用spi通訊時,基於極性(時鐘線空閒時電平)、相位(從時鐘線第1或2個邊沿開始採集資料)不同,存在4種工作模式。工作模式由主機決定,但要和參與通訊的從機匹配。

一般支援spi通訊模組,至少支援兩種spi工作模式:模式0+模式3 或 模式1+模式2。

5、資料幀格式

spi通訊中不規定一幀資料的構成。(但是在stm32的片上外設spi結構中,規定一幀資料為8/16位資料位)

可以一次僅傳送一位資料

主機傳送一位資料後,就會在接下來的乙個邊沿時接收到一位資料

spi通訊中,從機只能在主機傳送一位資料後,調整miso線,回送一位資料。(同步位交換)

從機不能主動傳送資料。

主機通過dr(資料暫存器)每次通過mosi傳送1位資料,就會從miso接收1位

資料到dr上。

在 spi通訊中。

若主機需要傳送乙個位元組資料:

往dr寫入資料,傳送。

從dr讀取資料(忽略)

若主機需要接收從機傳送的乙個位元組資料

往dr 寫入資料(忽略),傳送

從dr讀取資料

引腳復用配置(spix_mosi,spix_miso,spix_sck)

啟用spi

spi配置

全雙工配置

主從模式配置

通訊速度/資料幀格式/時序模式0~3 (考慮與之通訊的模組的特性)

spi使能

spix傳輸一次資料(傳送/接收)

等待上次傳送完畢;

往dr中寫入本次待傳送的資料;

等待可以接收資料(也說明傳送完資料);

從dr中讀取本次接收的資料;

void spi_calculatecrc (spi_typedef *spix, functionalstate newstate)

使能或禁止對傳輸資料的crc校驗

void spi_cmd (spi_typedef *spix, functionalstate newstate)

使能或禁止spi

uint16_t spi_getcrc (spi_typedef *spix, uint8_t spi_crc)

返回傳送/接收時crc暫存器的值

void spi_i2s_clearflag (spi_typedef *spix, uint16_t spi_i2s_flag)

清除crc錯誤校驗位

void spi_i2s_clearitpendingbit (spi_typedef *spix, uint8_t spi_i2s_it)

清除中斷標誌位(crc錯誤校驗位)

flagstatus spi_i2s_getflagstatus (spi_typedef *spix, uint16_t spi_i2s_flag)

獲取spix的標誌位

itstatus spi_i2s_getitstatus (spi_typedef *spix, uint8_t spi_i2s_it)

獲取spix的中斷標誌位

void spi_i2s_itconfig (spi_typedef *spix, uint8_t spi_i2s_it, functionalstate newstate)

使能或禁止中斷配置

uint16_t spi_i2s_receivedata (spi_typedef *spix)

返回最近從spix上接收的資料

void spi_i2s_senddata (spi_typedef *spix, uint16_t data)

通過spix傳輸資料

void spi_init (spi_typedef *spix, spi_inittypedef *spi_initstruct)

基於spi_initstruct初始化spix外設

void spi_transmitcrc (spi_typedef *spix)

傳送spix的crc校驗值

串列埠通訊筆記

串列埠通訊主要用到下面幾個函式 createfile 開啟通訊埠 closehandle 關閉通訊埠 getcommstate 取得埠的引數 setcommstate 設定埠引數 writefile 埠傳送資料 readfile 埠讀取資料 clearcommerror 清除埠錯誤,並取得資訊 pu...

Socket通訊筆記

當socket通訊的3次握手和四次揮手的問題了解了之後,下一步來到實際的程式開發階段了。首先,乙個簡單的應和答。當client第一次發出資訊之前大致有以下過程 如下 client public static void main string args server public static voi...

C Socket SSL通訊筆記

一 x.509證書 1.製作證書 先進入到vs2005的命令列狀態,即 開始 程式 microsoft visual studio 2005 visual studio tools visual studio 2005 命令提示 鍵入 makecert r pe n cn myserver ss m...