久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2898|回復: 0
收起左側(cè)

STM32的SPI介紹和配置

[復制鏈接]
ID:105323 發(fā)表于 2016-2-12 21:10 | 顯示全部樓層 |閱讀模式
通常SPI通過4個引腳與外部器件相連:

● MISO:主設備輸入/從設備輸出引腳。該引腳在從模式下發(fā)送數(shù)據(jù),在主模式下接收數(shù)據(jù)。

● MOSI:主設備輸出/從設備輸入引腳。該引腳在主模式下發(fā)送數(shù)據(jù),在從模式下接收數(shù)據(jù)。

● SCK:串口時鐘,作為主設備的輸出,從設備的輸入

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

下圖最能說明SPI的工作原理,非常簡單:

下面是STM32的SPI1模塊的簡單配置
void SPI_configuration()
{
SPI_InitTypeDef SPI_InitStructure;
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1|GPIO_Pin_6|RCC_APB2Periph_GPIOA,ENABLE);//使能SP1I和GPIOA時鐘
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5|GPIO_Pin_7;//MOSISCK復用
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;//復用推挽輸出
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStructure);;
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2;//SPI_CS
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;//推挽輸出
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStructure);

SPI_InitStructure.SPI_Direction=SPI_Direction_2Lines_FullDuplex;//設置SPI單向或者雙向的數(shù)據(jù)模式:SPI設置為雙線雙向全雙工
SPI_InitStructure.SPI_Mode=SPI_Mode_Master;//設置SPI工作模式:設置為主SPI
SPI_InitStructure.SPI_DataSize=SPI_DataSize_8b;//設置SPI的數(shù)據(jù)大小:SPI發(fā)送接收8位幀結(jié)構
SPI_InitStructure.SPI_CPOL=SPI_CPOL_High;//選擇了串行時鐘的穩(wěn)態(tài):時鐘懸空高
SPI_InitStructure.SPI_CPHA=SPI_CPHA_2Edge;//數(shù)據(jù)捕獲于第二個時鐘沿
SPI_InitStructure.SPI_NSS=SPI_NSS_Soft;//SPI_NSS_Soft;//NSS信號由硬件(NSS管腳)還是軟件(使用SSI位)管理:內(nèi)部NSS信號有SSI位控制
SPI_InitStructure.SPI_BaudRatePrescaler=SPI_BaudRatePrescaler_2; //定義波特率預分頻的值:波特率預分頻值為256
SPI_InitStructure.SPI_FirstBit=SPI_FirstBit_MSB;//指定數(shù)據(jù)傳輸從MSB位還是LSB位開始:數(shù)據(jù)傳輸從MSB位開始
//SPI_InitStructure.SPI_CRCPolynomial=7;//CRC值計算的多項式
SPI_Init(SPI1,&SPI_InitStructure);//根據(jù)SPI_InitStruct中指定的參數(shù)初始化外設SPIx寄存器
SPI_Cmd(SPI1,ENABLE);//使能SPI外設  
}


回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 美女91网站 | 国产精品女同 | 亚洲影音 | 黄色一级小说 | 日韩精品一区二区在线 | 亚洲www啪成人一区二区麻豆 | www久久久| 一区二区三区不卡视频 | 久久精品播放 | 欧美一级色 | 日日爽夜夜爽 | 91精品久久久久久久久久 | 国产中文字幕在线 | 欧美日韩在线一区 | 一区二区三区免费 | 亚洲欧美日本在线 | 国产精品一区二区三区免费 | 午夜黄色大片 | 午夜影院免费 | 一区在线观看视频 | 日韩伊人 | 国产精品久久网 | 亚洲在线视频观看 | 欧美理论在线观看 | 久久精品视频网站 | 亚洲一区在线免费观看 | 日本免费毛片 | 深夜视频在线观看 | 涩涩视频免费看 | 91爱爱网站 | 热久久久久 | 日韩精品国产一区 | 久久久久久久久久国产精品 | 在线观看av网站 | 亚洲成人免费 | 一二区视频 | 欧美精品久久久久久 | 一区二区欧美日韩 | 亚洲第一免费视频 | 日韩国产在线播放 | 伊人久久久 |