国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

STM32使用SPI協(xié)議主從通信

這篇具有很好參考價值的文章主要介紹了STM32使用SPI協(xié)議主從通信。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

前言

一、理論部分? ???

SPI簡介??

SPI特征

SPI物理層

SPI協(xié)議層

SPI配置過程

SPI數(shù)據(jù)發(fā)送與接收過程

二、代碼部分

主機代碼

從機代碼


前言

這是一篇學(xué)習(xí)筆記,記錄自己學(xué)習(xí)SPI通信。方便之后運用的時候回顧。參考《STM32中文參考手冊》

一、理論部分? ???

SPI簡介??

?????????SPI 協(xié)議是由摩托羅拉公司提出的通訊協(xié)議(Serial Peripheral Interface),即串行外圍設(shè) ?
備接口,是一種高速全雙工的通信總線。它被廣泛地使用在 ADC 、 LCD 等設(shè)備與 MCU 間,
要求通訊速率較高的場合。? ?

SPI特征

3 線全雙工同步傳輸
● 帶或不帶第三根雙向數(shù)據(jù)線的雙線單工同步傳輸
8 16 位傳輸幀格式選擇
● 主或從操作
● 支持多主模式
8 個主模式波特率預(yù)分頻系數(shù) ( 最大為 f PCLK /2)
● 從模式頻率 ( 最大為 f PCLK /2)
● 主模式和從模式的快速通信
● 主模式和從模式下均可以由軟件或硬件進行 NSS 管理:主 / 從操作模式的動態(tài)改變
● 可編程的時鐘極性和相位
● 可編程的數(shù)據(jù)順序, MSB 在前或 LSB 在前
● 可觸發(fā)中斷的專用發(fā)送和接收標(biāo)志
SPI 總線忙狀態(tài)標(biāo)志
● 支持可靠通信的硬件 CRC
????????─ 在發(fā)送模式下, CRC 值可以被作為最后一個字節(jié)發(fā)送
????????─ 在全雙工模式中對接收到的最后一個字節(jié)自動進行 CRC 校驗
● 可觸發(fā)中斷的主模式故障、過載以及 CRC 錯誤標(biāo)志
● 支持 DMA 功能的 1 字節(jié)發(fā)送和接收緩沖器:產(chǎn)生發(fā)送和接受請求

SPI物理層

?SPI通信設(shè)備連接圖

stm32 spi從機,stm32,單片機,物聯(lián)網(wǎng)

SPI框圖

stm32 spi從機,stm32,單片機,物聯(lián)網(wǎng)

通常 SPI 通過 4 個引腳與外部器件相連:
MISO :主設(shè)備輸入 / 從設(shè)備輸出引腳。該引腳在從模式下發(fā)送數(shù)據(jù),在主模式下接收數(shù)據(jù)。
MOSI :主設(shè)備輸出 / 從設(shè)備輸入引腳。該引腳在主模式下發(fā)送數(shù)據(jù),在從模式下接收數(shù)據(jù)。
SCK :串口時鐘,作為主設(shè)備的輸出,從設(shè)備的輸入
NSS :從設(shè)備選擇。這是一個可選的引腳,用來選擇主 / 從設(shè)備。它的功能是用來作為“片
選引腳”,讓主設(shè)備可以單獨地與特定從設(shè)備通訊,避免數(shù)據(jù)線上的沖突。從設(shè)備的 NSS
引腳可以由主設(shè)備的一個標(biāo)準(zhǔn) I/O 引腳來驅(qū)動。一旦被使能 (SSOE ) NSS 引腳也可以作為
輸出引腳,并在 SPI 處于主模式時拉低;此時,所有的 SPI 設(shè)備,如果它們的 NSS 引腳連接
到主設(shè)備的 NSS 引腳,則會檢測到低電平,如果它們被設(shè)置為 NSS 硬件模式,就會自動進
入從設(shè)備狀態(tài)。當(dāng)配置為主設(shè)備、 NSS 配置為輸入引腳 (MSTR=1 , SSOE=0) 時,如果 NSS
被拉低,則這個 SPI 設(shè)備進入主模式失敗狀態(tài):即 MSTR 位被自動清除,此設(shè)備進入從模式

SPI協(xié)議層

數(shù)據(jù)時鐘時序圖
stm32 spi從機,stm32,單片機,物聯(lián)網(wǎng)

SPI配置過程

?SPI主模式配置

1. 通過SPI_CR1寄存器的BR[2:0]位定義串行時鐘波特率。
2. 選擇CPOL
CPHA位,定義數(shù)據(jù)傳輸和串行時鐘間的相位關(guān)系。
3. 設(shè)置
DFF位來定義8位或16位數(shù)據(jù)幀格式。
4. 配置
SPI_CR1寄存器的LSBFIRST位定義幀格式。
5. 如果需要
NSS引腳工作在輸入模式,硬件模式下,在整個數(shù)據(jù)幀傳輸期間應(yīng)把NSS腳連接到高電平;在軟件模式下,需設(shè)置SPI_CR1寄存器的SSM位和SSI位。如果NSS引腳工作在輸出模式,則只需設(shè)置SSOE位。
6. 必須設(shè)置
MSTR位和SPE(只當(dāng)NSS腳被連到高電平,這些位才能保持置位)。 在這個配置中,MOSI引腳是數(shù)據(jù)輸出,而MISO引腳是數(shù)據(jù)輸入。

SPI從模式配置

1. 設(shè)置 DFF 位以定義數(shù)據(jù)幀格式為 8 位或 16 位。
2. 選擇 CPOL CPHA 位來定義數(shù)據(jù)傳輸和串行時鐘之間的相位關(guān)系。 為保證正確 的數(shù)據(jù)傳輸,從設(shè)備和主設(shè)備的CPOL CPHA 位必須配置成相同的方式。
3. 幀格式 (SPI_CR1 寄存器中的 LSBFIRST 位定義的 ”MSB 在前 還是 ”LSB 在前 ”) 必須與主設(shè)備相同。
4. 硬件模式下 ( 參考從選擇 (NSS) 腳管理部分 ) ,在完整的數(shù)據(jù)幀 (8 位或 16 ) 傳輸過程中,NSS引腳必須為低電平。在 NSS 軟件模式下,設(shè)置 SPI_CR1 寄存器中的 SSM 位并清除 SSI 位。
5. 清除 MSTR 位、設(shè)置 SPE (SPI_CR1 寄存器 ) ,使相應(yīng)引腳工作于 SPI 模式下。 在這個配置中,MOSI 引腳是數(shù)據(jù)輸入, MISO 引腳是數(shù)據(jù)輸出。

SPI數(shù)據(jù)發(fā)送與接收過程

主模式通訊過程

stm32 spi從機,stm32,單片機,物聯(lián)網(wǎng)

從模式通訊過程

stm32 spi從機,stm32,單片機,物聯(lián)網(wǎng)

?

?

接收與發(fā)送緩沖器
在接收時,接收到的數(shù)據(jù)被存放在一個內(nèi)部的接收緩沖器中;在發(fā)送時,在被發(fā)送之前,數(shù)據(jù)
將首先被存放在一個內(nèi)部的發(fā)送緩沖器中。 對SPI_DR 寄存器的讀操作,將返回接收緩沖器的內(nèi)容;寫入 SPI_DR 寄存器的數(shù)據(jù)將被寫入發(fā) 送緩沖器中。
主模式下開始傳輸
● 全雙工模式
當(dāng)寫入數(shù)據(jù)到 SPI_DR 寄存器 ( 發(fā)送緩沖器 ) 后,傳輸開始;
在傳送第一位數(shù)據(jù)的同時,數(shù)據(jù)被并行地從發(fā)送緩沖器傳送到 8 位的移位寄存器中,
然后按順序被串行地移位送到 MOSI 引腳上;
與此同時,在 MISO 引腳上接收到的數(shù)據(jù),按順序被串行地移位進入 8 位的移位寄存器
中,然后被并行地傳送到 SPI_DR 寄存器 ( 接收緩沖器 ) 中。
從模式下開始傳輸
● 全雙工模式
當(dāng)從設(shè)備接收到時鐘信號并且第一個數(shù)據(jù)位出現(xiàn)在它的 MOSI 時,數(shù)據(jù)傳輸開始,隨
后的數(shù)據(jù)位依次移動進入移位寄存器;
與此同時,在傳輸?shù)谝粋€數(shù)據(jù)位時,發(fā)送緩沖器中的數(shù)據(jù)被并行地傳送到 8 位的移位
寄存器,隨后被串行地發(fā)送到 MISO 引腳上。軟件必須保證在 SPI 主設(shè)備開始數(shù)據(jù)傳
輸之前在發(fā)送寄存器中寫入要發(fā)送的數(shù)據(jù)。
主或從模式下 全雙工發(fā)送和接收過程模式
軟件必須遵循下述過程,發(fā)送和接收數(shù)據(jù)
1. 設(shè)置 SPE 位為 ’1’ ,使能 SPI 模塊;
2. SPI_DR 寄存器中寫入第一個要發(fā)送的數(shù)據(jù),這個操作會清除 TXE 標(biāo)志;
3. 等待 TXE=1 ,然后寫入第二個要發(fā)送的數(shù)據(jù)。等待 RXNE=1 ,然后讀出 SPI_DR 寄存器并獲得第一個接收到的數(shù)據(jù),讀SPI_DR 的同時清除了 RXNE 位。重復(fù)這些操作,發(fā)送后續(xù)的數(shù)據(jù)同時接n-1 個數(shù)據(jù);
4. 等待 RXNE=1 ,然后接收最后一個數(shù)據(jù);
5. 等待 TXE=1 ,在 BSY=0 之后關(guān)閉 SPI 模塊。
也可以在響應(yīng) RXNE TXE 標(biāo)志的上升沿產(chǎn)生的中斷的處理程序中實現(xiàn)這個過程。

二、代碼部分

? ? 我的想法是在串口助手上發(fā)送給主機什么,主機就發(fā)什么給從機。之后從機把接收的數(shù)據(jù)再返回給主機,最終再串口助手上打印出來。驗證SPI的全雙工通訊。主機和從機都采用中斷的方式發(fā)送和接收。

主機代碼

SPI配置代碼

void SPI2_Init(void)
{
	GPIO_InitTypeDef  GPIO_InitStructure;
	SPI_InitTypeDef  SPI_InitStructure;
	
	/* SPI的IO口和SPI外設(shè)打開時鐘 */
    RCC_APB2PeriphClockCmd(	RCC_APB2Periph_GPIOB, ENABLE );
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE);
	
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;        //PB12推挽輸出
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  //
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOB, &GPIO_InitStructure);
	
	/* SPI的IO口設(shè)置 */
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //PB13/14/15復(fù)用推挽輸出 
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOB, &GPIO_InitStructure);

	GPIO_SetBits(GPIOB,GPIO_Pin_12);
	
	SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;  //設(shè)置SPI單向或者雙向的數(shù)據(jù)模式:SPI設(shè)置為雙線雙向全雙工
	SPI_InitStructure.SPI_Mode = SPI_Mode_Master;		//設(shè)置SPI工作模式:設(shè)置為主SPI
	SPI_InitStructure.SPI_DataSize = SPI_DataSize_16b;		//設(shè)置SPI的數(shù)據(jù)大小:SPI發(fā)送接收8位幀結(jié)構(gòu)
	SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;		//串行同步時鐘的空閑狀態(tài)為高電平
	SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;	//串行同步時鐘的第二個跳變沿(上升或下降)數(shù)據(jù)被采樣
	SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;		//NSS信號由硬件(NSS管腳)還是軟件(使用SSI位)管理:內(nèi)部NSS信號有SSI位控制
	SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_256;		//定義波特率預(yù)分頻的值: 
	SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;	//指定數(shù)據(jù)傳輸從MSB位還是LSB位開始:數(shù)據(jù)傳輸從MSB位開始
	SPI_InitStructure.SPI_CRCPolynomial = 7;	//CRC值計算的多項式
	SPI_Init(SPI2, &SPI_InitStructure);  //根據(jù)SPI_InitStruct中指定的參數(shù)初始化外設(shè)SPIx寄存器
	SPI_Cmd(SPI2, ENABLE); //使能SPI外設(shè)
	
	
}

串口中斷部分文章來源地址http://www.zghlxwxcb.cn/news/detail-647319.html

void USART1_IRQHandler(void)                	//串口1中斷服務(wù)程序
{
	u16 r,i;
	if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)  //接收中斷
	{
		GPIO_ResetBits(GPIOB,GPIO_Pin_12);
		r =USART_ReceiveData(USART1);//(USART1->DR);	//讀取接收到的數(shù)據(jù)
		while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_TXE) == RESET);//等待發(fā)送區(qū)空 
		SPI_I2S_SendData(SPI2, r);
		while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE) == RESET); //等待接收完一個byte	
		i = SPI_I2S_ReceiveData(SPI2);	
		
		GPIO_SetBits(GPIOB,GPIO_Pin_12);
		USART_senddate(USART1,i) ;
	} 
} 	  

從機代碼

void SPI2_Init(void)
{
	GPIO_InitTypeDef  GPIO_InitStructure;
	SPI_InitTypeDef  SPI_InitStructure;
	NVIC_InitTypeDef NVIC_InitStructure;
	
	/* SPI的IO口和SPI外設(shè)打開時鐘 */
    RCC_APB2PeriphClockCmd(	RCC_APB2Periph_GPIOB, ENABLE );
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE);
	
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;        //PB12推挽輸出
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //下拉輸入
	GPIO_Init(GPIOB, &GPIO_InitStructure);
	
	/* SPI的IO口設(shè)置 */
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //PB13/14/15復(fù)用推挽輸出 
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOB, &GPIO_InitStructure);

	SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;  //設(shè)置SPI單向或者雙向的數(shù)據(jù)模式:SPI設(shè)置為雙線雙向全雙工
	SPI_InitStructure.SPI_Mode = SPI_Mode_Slave;		//設(shè)置SPI工作模式:設(shè)置為主SPI
	SPI_InitStructure.SPI_DataSize = SPI_DataSize_16b;		//設(shè)置SPI的數(shù)據(jù)大小:SPI發(fā)送接收8位幀結(jié)構(gòu)
	SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;		//串行同步時鐘的空閑狀態(tài)為高電平
	SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;	//串行同步時鐘的第二個跳變沿(上升或下降)數(shù)據(jù)被采樣
	SPI_InitStructure.SPI_NSS = SPI_NSS_Hard;		//NSS信號由硬件(NSS管腳)還是軟件(使用SSI位)管理:內(nèi)部NSS信號有SSI位控制
	SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_256;		//定義波特率預(yù)分頻的值:波特率預(yù)分頻值為256
	SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;	//指定數(shù)據(jù)傳輸從MSB位還是LSB位開始:數(shù)據(jù)傳輸從MSB位開始
	SPI_InitStructure.SPI_CRCPolynomial = 7;	//CRC值計算的多項式
	SPI_Init(SPI2, &SPI_InitStructure);  //根據(jù)SPI_InitStruct中指定的參數(shù)初始化外設(shè)SPIx寄存器
	
	SPI_Cmd(SPI2, ENABLE); //使能SPI外設(shè)
	
	
	SPI_I2S_ITConfig(SPI2,SPI_I2S_IT_RXNE,ENABLE);//開啟相關(guān)中斷
	//Usart1 NVIC 配置
	NVIC_InitStructure.NVIC_IRQChannel = SPI2_IRQn;//SPI2中斷通道
	NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;//搶占優(yōu)先級0
	NVIC_InitStructure.NVIC_IRQChannelSubPriority =2;		//子優(yōu)先級2
	NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;			//IRQ通道使能
	NVIC_Init(&NVIC_InitStructure);	//根據(jù)指定的參數(shù)初始化VIC寄存器、	
	
}
u16 i;
void SPI2_IRQHandler(void) 
{ 
	//接收數(shù)據(jù) 
	if(SPI_I2S_GetITStatus(SPI2,SPI_I2S_IT_RXNE) != RESET)
	{
		i = SPI_I2S_ReceiveData(SPI2);
		while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_TXE) == RESET);
		SPI_I2S_SendData(SPI2,i);		
		USART_senddate(USART1, i);	
	}
   
} 

到了這里,關(guān)于STM32使用SPI協(xié)議主從通信的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【STM32學(xué)習(xí)】——SPI通信協(xié)議&SPI時序&W25Q64存儲芯片&軟件SPI讀寫

    【STM32學(xué)習(xí)】——SPI通信協(xié)議&SPI時序&W25Q64存儲芯片&軟件SPI讀寫

    目錄 前言 一、SPI通信協(xié)議 1.概述? 2.硬件電路 ?3.移位示意圖 二、SPI時序 1.時序基本單元 2.完整時序波形 三、W25Q64存儲芯片 1.芯片簡介 ?2.硬件電路引腳定義 ?3.芯片框圖 4.Flash操作注意事項 四、軟件SPI讀寫W25Q64 五、SPI通信外設(shè) 總結(jié) 聲明:學(xué)習(xí)筆記來自江科大自化協(xié)B站教

    2024年02月09日
    瀏覽(20)
  • STM32 SPI通信協(xié)議1——協(xié)議基本原理及管腳定義

    STM32 SPI通信協(xié)議1——協(xié)議基本原理及管腳定義

    ????????SPI全稱為 Serial Peripheral interface ,譯為 串行外圍設(shè)備接口 。SPI主要應(yīng)用在EEPROM,F(xiàn)LASH,實時時鐘,AD轉(zhuǎn)換器,還有數(shù)字信號處理器和數(shù)字信號編碼器之間。 ? ? ? ? SPI是一種高速,全雙工,同步的通信總線,并且在芯片的管腳上只占用四根線,節(jié)約了芯片的管腳,

    2024年01月25日
    瀏覽(26)
  • stm32HAL庫 G4 SPI 從機DMA可變長度接受數(shù)據(jù)亂碼問題

    stm32HAL庫 G4 SPI 從機DMA可變長度接受數(shù)據(jù)亂碼問題

    使用一個引腳當(dāng)作SPI CS, 邊沿觸發(fā); 在電平位0時候接受SPI數(shù)據(jù)20個字節(jié) 如果實際主機只發(fā)了小于20字節(jié)時候, 下一個幀就會錯亂; 去老外找了之后,需要復(fù)位SPi RCC時鐘才能復(fù)位掉SPI 下面的不行 正確的做法

    2024年02月10日
    瀏覽(16)
  • STM-32:SPI通信協(xié)議/W25Q64簡介—軟件SPI讀寫W25Q64

    STM-32:SPI通信協(xié)議/W25Q64簡介—軟件SPI讀寫W25Q64

    SPI是串行外設(shè)接口(Serial Peripheral Interface)的縮寫,是美國摩托羅拉公司(Motorola)最先推出的一種同步串行傳輸規(guī)范,也是一種單片機外設(shè)芯片串行擴展接口,是一種高速、全雙工、同步通信總線,所以可以在同一時間發(fā)送和接收數(shù)據(jù),SPI沒有定義速度限制,通常能達到甚

    2024年02月16日
    瀏覽(18)
  • 【快速上手STM32】SPI通信協(xié)議&&1.8寸TFT-LCD(ST7735S)

    【快速上手STM32】SPI通信協(xié)議&&1.8寸TFT-LCD(ST7735S)

    SPI,英文全稱Serial Peripheral Interface,即串行外圍設(shè)備接口,是一種高速、全雙工、同步的串行通信總線。 我們之前說過I2C,那么我們就拿I2C和SPI做個對比。 SPI和I2C對比,優(yōu)勢在于SPI的傳輸速率比I2C快得多,劣勢在于SPI需要用的通信線比較多。 I2C只需要兩根線,而SPI至少需要

    2024年04月27日
    瀏覽(27)
  • STM32使用軟件SPI協(xié)議操作TFT18彩屏

    STM32使用軟件SPI協(xié)議操作TFT18彩屏

    時間記錄:2024/2/20 (1)SPI設(shè)備通過4根線進行通信,CS片選線,選擇從設(shè)備,SCK時鐘線,由主設(shè)備產(chǎn)生時鐘,主機MOSI線連從機MISO線,由主機向從機發(fā)送信息,主機MISO線連接從機MOSI線,由從機向主機發(fā)送信息 (2)SPI分為4種通信方式 模式0:CPOL=0,CPHA=0,空閑時SCK時鐘線為低

    2024年02月21日
    瀏覽(23)
  • 樹莓派(主)與STM32(從)使用SPI通信(持續(xù)更新中)

    樹莓派(主)與STM32(從)使用SPI通信(持續(xù)更新中)

    使用樹莓派向 STM32 發(fā)送數(shù)據(jù),STM32 收到數(shù)據(jù)后通過串口的方式將數(shù)據(jù)打印到電腦上,同時返回給樹莓派數(shù)據(jù)。樹莓派接收到數(shù)據(jù)后打印在控制臺上。 SPI 的配置為 樹莓派主機 STM32 從機 全雙工 8 bit 傳輸 工作模式 0 :CPOL|CPHA = 00 MSB 優(yōu)先 禁止 CRC 校驗 SPI(Serial Peripheral Interfac

    2024年02月14日
    瀏覽(73)
  • STM32——SPI通信

    STM32——SPI通信

    SPI(Serial Peripheral Interface)是由Motorola公司開發(fā)的一種通用數(shù)據(jù)總線 四根通信線: SCK(Serial Clock)【CLK或SCL或CK】、 MOSI(Master Output Slave Input)【DO(Data Output)】、 MISO(Master Input Slave Output)【DI(Data Input)】、 SS(Slave Select)【CS或NSS】 同步,全雙工 支持總線掛載多設(shè)備

    2024年02月11日
    瀏覽(22)
  • stm32----SPI協(xié)議

    stm32----SPI協(xié)議

    SPI(Serial Peripheral Interface,串行外圍設(shè)備接口),是Motorola公司提出的一種同步串行接口技術(shù),是一種高速、 全雙工 、同步通信總線,在芯片中只占用四根管腳用來控制及數(shù)據(jù)傳輸,節(jié)約了芯片pin的數(shù)目,同時為PCB在布局上節(jié)省了空間。正是由于這種簡單易用的特性,現(xiàn)在越

    2024年02月11日
    瀏覽(17)
  • STM32使用SPI通信時的一些常見問題及解決方法(主,從)

    ? ? ? ? 最近在做一個多MCU的項目時,MCU之間的數(shù)據(jù)傳輸使用了SPI通信,在做從機時遇到了一些 “疑難雜癥”,研究了半天,總算是把故障排除了,就又總結(jié)了一下SPI常遇到的幾種問題寫出來整理一下。 目錄 一、SPI簡介: ?二、常見問題: 三、疑難雜癥: Q1:使用的HAL庫,

    2024年02月21日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包