日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

stm8s开发(七) SPI的使用:SPI主机通信!

發(fā)布時(shí)間:2025/3/21 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 stm8s开发(七) SPI的使用:SPI主机通信! 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
前幾篇介紹過UART串口,地址:http://blog.csdn.net/devintt/article/details/52512457
這次講解一下另一個(gè)常用的串口:SPI通信

科普SPI:是一種高速的,全雙工,同步的通信總線,并且在芯片的管腳上只占用四根線,分別是:SCK(時(shí)鐘)、MOSI(主機(jī)發(fā)送數(shù)據(jù))、MISO(主機(jī)接收數(shù)據(jù))、NSS(片選),其中NSS的片選信號(hào),大部分情況下我們使用的是軟件NSS,即為使用一個(gè)GPIO進(jìn)行軟件控制片選。值得注意的是,其中SPI有4中模式:分別是空閑時(shí)SCLK的電平高\(yùn)低、MISO采樣時(shí)第1\2個(gè)變化沿。


stm8s的SPI結(jié)構(gòu)如下圖,


如果用形象的比喻的話:SCK像一個(gè)發(fā)條齒輪,只有當(dāng)發(fā)條齒輪轉(zhuǎn)動(dòng)的時(shí)候(SCK輸出8個(gè)時(shí)鐘),MOSI才能將1Byte的數(shù)據(jù)發(fā)送出去,同時(shí),MISO將1Byte的數(shù)據(jù)接收回來。

使用SPI無非就一個(gè)初始化,一個(gè)數(shù)據(jù)發(fā)送/接收,兩大功能。

初始化分初始化為主機(jī)、從機(jī),不過一般和外部芯片通信單片機(jī)都是作為主機(jī)

  • //******************************************************************
  • //函數(shù)名: SPI_Master_Conf
  • //功能: 硬件SPI主設(shè)備初始化
  • //輸入?yún)?shù):無
  • //返回值: 無
  • //******************************************************************
  • void SPI_Master_Conf(void)
  • {
  • CLK_PCKENR1 |= 0x02; //打開SPI時(shí)鐘
  • /*PC6、PC5設(shè)置為輸出,最大10MHz*/
  • PC_DDR |= 0x60;
  • PC_CR1 |= 0x60;
  • PC_CR2 |= 0x60;
  • SPI_CR1 = 0x04;
  • SPI_CR2 = 0x03;
  • SPI_CR1|= 0x40;
  • /*
  • SPI_CR1_SPE = 0; //禁止SPI
  • SPI_CR1_LSBFIRST = 0; //先發(fā)送MSB
  • SPI_CR1_BR = 0; //波特率設(shè)為 fbus 16MHz
  • SPI_CR1_MSTR = 1; //主模式
  • SPI_CR1_CPOL = 1; //空閑狀態(tài)時(shí)SCK為高電平
  • SPI_CR1_CPHA = 1; //數(shù)據(jù)從第二個(gè)時(shí)鐘邊沿開始采樣
  • SPI_CR2_BDM = 0; //雙線單向模式
  • SPI_CR2_SSM = 1; //使能軟件從設(shè)備管理
  • SPI_CR2_SSI = 1; //內(nèi)部從設(shè)備選擇為主模式
  • SPI_CR1_SPE = 1; //使能SPI
  • */
  • }
  • //******************************************************************
  • //函數(shù)名: SPI_Slave_Conf
  • //功能: 硬件SPI從設(shè)備初始化
  • //輸入?yún)?shù):無
  • //返回值: 無
  • //******************************************************************
  • void SPI_Slave_Conf(void)
  • {
  • // SPI_CR1_LSBFIRST = 0; //先發(fā)送MSB
  • // SPI_CR1_SPE = 0; //禁止SPI
  • SPI_CR1_BR = 3; //波特率設(shè)為 fbus/16 1MHz
  • SPI_CR1_MSTR = 0; //從模式
  • SPI_CR1_CPOL = 1; //空閑狀態(tài)時(shí)SCK為高電平
  • SPI_CR1_CPHA = 1; //數(shù)據(jù)從第二個(gè)時(shí)鐘邊沿開始采樣
  • // SPI_CR2_BDM = 0; //雙線單向模式
  • SPI_CR2_SSM = 1; //使能軟件從設(shè)備管理
  • SPI_CR2_SSI = 1; //內(nèi)部從設(shè)備選擇為從模式
  • SPI_ICR_RXIE = 1; //開啟接收中斷
  • SPI_CR1_SPE = 1; //使能SPI
  • }

  • 發(fā)送方式一般有兩種:阻塞輪訓(xùn) 和 中斷 ??注意:發(fā)送的同時(shí)也在接收

  • //******************************************************************
  • //函數(shù)名: SPI_WriteByte
  • //功能: 硬件SPI讀寫一個(gè)字節(jié)數(shù)據(jù)
  • //輸入?yún)?shù):byte:數(shù)據(jù)
  • //返回值: 無
  • //******************************************************************
  • u8 SPI_WriteByte(u8 byte)
  • {
  • while(SPI_SR_TXE==0);
  • SPI_DR = byte;
  • while(SPI_SR_RXNE==0);
  • return SPI_DR;
  • }
  • #pragma vector=SPI_RXNE_vector
  • __interrupt void SPI_RXNE_IRQHandler(void)
  • {
  • RxBuf[cnt++]=SPI_DR;
  • }
  • 這里的?#pragma vector=SPI_RXNE_vector 是IAR工程的中斷函數(shù)入口地址。?SPI_DR為接收到的數(shù)據(jù)(其實(shí)就是寄存器的值)

    這里給出的代碼使用的是SPI的其中一個(gè)MODE,實(shí)際使用的話還需要結(jié)合外部芯片的SPI的MODE是哪個(gè),通過修改配置 SPI控制器 SPI_CR1 (這個(gè)寄存器主要是修改SPI通信配置的)。

    最后需要驗(yàn)證SPI初始化、通信成功了沒,你只需要將MOSI和MISO(也就是PC5和PC6)短接在一起,發(fā)什么,接什么,也就是:u8 temp =?SPI_WriteByte(0x5A); ?如果通信成功的話,temp就是0x5A了。

    總結(jié)

    以上是生活随笔為你收集整理的stm8s开发(七) SPI的使用:SPI主机通信!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 中文字幕在线播放一区二区 | 中文字幕人妻伦伦 | 韩国福利一区 | 瑟瑟在线观看 | 午夜影院免费体验区 | 亚洲福利视频一区二区三区 | jizz日本在线播放 | 2019日韩中文字幕mv | 操三八男人的天堂 | 久久久久久国产精品三级玉女聊斋 | 久久福利小视频 | 精品国产一区二区三 | 中文字幕在线播放视频 | 久久久久久久久久久影院 | 国产这里只有精品 | 亚洲一区二区三区四区在线 | aaaaa毛片| 黄色一级一片免费播放 | 亚洲欧洲免费视频 | 在线免费看黄网站 | 免费av观看网站 | 射在线 | 国精产品一品二品国精品69xx | 亚洲精品白浆高清久久久久久 | 91中文| 中文字幕五码 | 黄色在线视频播放 | 人妻精品无码一区二区 | 亚洲激情av在线 | 国产亚洲色婷婷久久99精品 | 亚洲一区二区三区中文字幕 | 亚洲国产视频在线观看 | 日本欧美在线 | 手机看片在线观看 | 欧美性猛交aaaa片黑人 | 超碰v | av基地网| 国产成人福利 | 四虎少妇做爰免费视频网站四 | 黑料av在线 | 一本大道伊人av久久综合 | 丁香婷婷综合网 | 热久久免费视频 | 国内自拍99 | 91视频专区 | 91直接进入 | 99爱视频 | 骚色综合| 麻豆国产精品一区 | 尹人香蕉| 97一级片| 国产精品亚洲一区二区无码 | 精品在线免费播放 | 国产最新精品视频 | 欧美九九视频 | 中文字幕一区二区三区视频 | 狠狠操操 | 视频国产精品 | 少妇的被肉日常np | 久久精品国产一区二区 | 少妇精品在线 | 三上悠亚亚洲一区 | 毛片美女| a级小视频 | 国产日本精品视频 | 好妞色妞国产在线视频 | 国产真人毛片 | 国产欧洲亚洲 | jizz日韩| 丁香花高清视频完整电影 | 快播久久 | 国产精品三级在线观看 | 久久久久无码国产精品一区李宗瑞 | 成人自拍偷拍 | 日本涩涩网 | 夜夜爽av| 亚洲 欧美 日韩 在线 | 快播日韩 | 国产精品免费一区二区三区 | 波多野结衣视频免费 | 97国产一区 | 欧美 日韩 国产一区 | 欧美日韩视频无码一区二区三 | 日本一区二区高清不卡 | 国产精品久久久久久久久久久免费看 | 免费毛片看| av手机在线看 | 青春草av| www.国产麻豆 | 亚洲高潮无码久久 | 亚洲αv | 极品销魂美女一区二区三区 | 性欧美视频在线观看 | 国产精品久久久久影院老司 | www.黄色在线观看 | 99re热在线视频 | 久久久久久久久久成人 | 日韩精品成人免费观看视频 | 超碰999|