1.說在前面:最近嘗試操作VS1053音頻模塊 使用的數(shù)據(jù)傳輸方法使用SPI協(xié)議,打算學(xué)一下SPI的配置方式
2.SPI
2-1:SPI(Secial Periperal interface),作為四線的通信接口,有著MISO MOSI SCLK和CS
MISO:主進從出
MOSI:主出從進
SCLK: 時間信號
CS:片選信號
2-2:CPHA和CPOL
CPHA為時鐘相位,可以配置為1/0,控制數(shù)據(jù)的采樣方式,設(shè)置為0的時候,控制在時鐘周期的第一個跳變沿進行數(shù)據(jù)采集,設(shè)置為1的時候在第二個跳變沿進行采集
CPOL為時鐘極性,可以配置為1/0,控制空閑狀態(tài)的時鐘極性,設(shè)置為0的時候空閑狀態(tài)為低電平,設(shè)置為1空閑狀態(tài)為高電平
時序圖:
3.配置思路
3-1:設(shè)置SPI1的時鐘和復(fù)用引腳時鐘(spi_clock APB2ENR的12位)
在設(shè)置設(shè)置PA5 6 7(SCK MISO MOSI)為復(fù)用模式
3-2:設(shè)置工作模式(說實話 庫函數(shù)設(shè)置采用結(jié)構(gòu)體方式看起來很清晰,寄存器直接對SPI->CR1進行設(shè)置)
設(shè)置主/從機模式 數(shù)據(jù)的位數(shù)和時間記性和相位以及SPI時鐘的時鐘頻率
oid SPI1_Init(void)
{
RCC->APB2ENR|=1<<2; //PORTA時鐘使能
RCC->APB2ENR|=1<<12; //SPI1時鐘使能
//這里只針對SPI口初始化
GPIOA->CRL&=0X000FFFFF;
GPIOA->CRL|=0XBBB00000;//PA5.6.7復(fù)用
GPIOA->ODR|=0X7<<5; //PA5.6.7上拉
SPI1->CR1|=0<<10;//全雙工模式
SPI1->CR1|=1<<9; //軟件nss管理
SPI1->CR1|=1<<8;
SPI1->CR1|=1<<2; //SPI主機
SPI1->CR1|=0<<11;//8bit數(shù)據(jù)格式
SPI1->CR1|=1<<1; //空閑模式下SCK為1 CPOL=1 空閑信號下的時鐘極性
SPI1->CR1|=1<<0; //數(shù)據(jù)采樣從第二個時間邊沿開始,CPHA=1 時間相位(數(shù)據(jù)在第幾個邊沿(第幾個周期結(jié)束的地方)被鎖存)
SPI1->CR1|=7<<3; //Fsck=Fcpu/256
SPI1->CR1|=0<<7; //MSBfirst
SPI1->CR1|=1<<6; //SPI設(shè)備使能
SPI1_ReadWriteByte(0xff);//啟動傳輸(主要作用:維持MOSI為高)
}
3-3:SPI的速度設(shè)置以及使能(對SPI->CR1配置)
使能位:SPI1->CR1|=1<<6;
//SPI1 速度設(shè)置函數(shù)
//SpeedSet:0~7
//SPI速度=fAPB2/2^(SpeedSet+1)
//APB2時鐘一般為72Mhz
void SPI1_SetSpeed(u8 SpeedSet)
{
SpeedSet&=0X07; //限制范圍
SPI1->CR1&=0XFFC7;
SPI1->CR1|=SpeedSet<<3; //設(shè)置SPI1速度
SPI1->CR1|=1<<6; //SPI設(shè)備使能
}
3-4:發(fā)送數(shù)據(jù)配置(檢查發(fā)送區(qū)的數(shù)據(jù)是否進行發(fā)送(發(fā)送區(qū)是否為空)SPI1->SR的最低位是否為0)
u8 SPI1_ReadWriteByte(u8 TxData)
{
u16 retry=0;
while((SPI1->SR&1<<1)==0)//等待發(fā)送區(qū)空
{
retry++;
if(retry>0XFFFE)return 0;
}
SPI1->DR=TxData; //發(fā)送一個byte
retry=0;
while((SPI1->SR&1<<0)==0) //等待接收完一個byte
{
retry++;
if(retry>0XFFFE)return 0;
}
return SPI1->DR; //返回收到的數(shù)據(jù)
}
3-5:spi的作用范圍為EEPROM FLASH RTC AD等 是一種高速全雙工,同步的通信總線
上一篇:Stm32 iic初始化介紹
下一篇:Stm32 基于藍牙的串口通信 詳細(xì)篇
推薦閱讀
史海拾趣
人才是企業(yè)發(fā)展的根本。DDK公司深知人才的重要性,因此一直致力于人才培養(yǎng)和引進。公司建立了完善的人才培養(yǎng)機制,通過內(nèi)部培訓(xùn)、外部引進等多種方式,不斷吸引和培養(yǎng)了一批批優(yōu)秀的電子工程師、研發(fā)人員和管理人才。這些人才為公司的發(fā)展提供了強大的智力支持和人才保障。
進入21世紀(jì)后,中國市場的快速發(fā)展吸引了Futaba Electric的注意。為了更好地服務(wù)于中國市場,公司于2002年在北京成立了雙葉電子科技開發(fā)(北京)有限公司。這家子公司專營Futaba Electric的全線產(chǎn)品,包括VFD真空熒光顯示管、RC無線遙控設(shè)備等。通過深耕中國市場,F(xiàn)utaba Electric不僅擴大了產(chǎn)品銷量,還進一步提升了品牌知名度和影響力。
近年來,BRIGHT公司積極投身于太陽能領(lǐng)域的發(fā)展。他們推出了一種創(chuàng)新的商業(yè)模式,即幫助用戶免費安裝太陽能面板,并隨后收取服務(wù)費。這一模式類似于有線電視的收費方式,有效降低了用戶安裝太陽能系統(tǒng)的門檻。通過與私人投資者的合作,BRIGHT公司成功承擔(dān)了安裝成本,并致力于向全球提供優(yōu)質(zhì)的屋頂太陽能解決方案。這一突破性的舉措使得BRIGHT公司在太陽能領(lǐng)域取得了顯著的成績。
Chen Yang Technologies最初是一家專注于半導(dǎo)體芯片研發(fā)的小型公司。在某個關(guān)鍵時期,公司成功研發(fā)出了一種低功耗、高性能的芯片技術(shù),這一技術(shù)突破立即引起了市場的廣泛關(guān)注。憑借這一技術(shù),Chen Yang Technologies迅速擴大了其產(chǎn)品線,并開始向全球范圍內(nèi)的電子設(shè)備制造商供應(yīng)芯片。隨著市場份額的逐步增長,公司逐漸在電子行業(yè)中建立了自己的地位。
在EQCOLOGIC公司的發(fā)展歷程中,曾經(jīng)面臨過激烈的市場競爭。當(dāng)時,市場上已經(jīng)存在多種類似的電子材料,而EQCOLOGIC的產(chǎn)品雖然性能優(yōu)越,但價格相對較高。為了打開市場,EQCOLOGIC決定調(diào)整策略,與一些大型電子制造商建立合作關(guān)系,共同開發(fā)基于其材料的高端電子產(chǎn)品。通過不斷的努力和創(chuàng)新,EQCOLOGIC的產(chǎn)品逐漸得到了市場的認(rèn)可,公司也逐步實現(xiàn)了市場突破。
CCS是開放的軟件平臺,它可以支持不同的硬件接口,因此不同的硬件接口必須通過標(biāo)準(zhǔn)的Driver同CCS連接。 Driver安裝的常見問題? 請認(rèn)真閱讀“安裝手冊”和Driver盤中的Readme。 1)對于SEED-XDS,安裝Readme中的步驟,將I/O口設(shè)為240/280/320/34 ...… 查看全部問答∨ |
ISE調(diào)用modelsim進行仿真的實用的設(shè)置 安裝的是ISE10.1和ModelSim6.2b,先安裝的ISE,然后安裝的ModelSim。之前用了好幾種方法都連接不上,最后用了以下的方法使得ISE能夠正常調(diào)用Modelsim了,步驟如下:3 S5 Z+ t0 E) n& I$ M3 H* n首先將modelsim.ini文件只讀模式去掉,存檔前面打?qū)?...… 查看全部問答∨ |
大家過來試用下這個串口調(diào)試軟件——SuperCom 號稱是世界上最酷的 設(shè)計者:X 郵箱:lin_yu_cheng@126.com (注:用戶有任何建議或使用問題歡迎聯(lián)系作者) 軟件簡介: SuperCom是廣州信先行電子科技有限公司(www.xxxmcu.com)自主開發(fā)的免費開放軟件,專門設(shè)計貢獻給廣大電子開發(fā)者,堪稱為世界上最酷的串口調(diào) ...… 查看全部問答∨ |
|
請問各路高手們,有沒有什么電路芯片,比如比較器什么的,可以使圖1 的信號變成圖2的信號(每個脈沖的信號周期都是一樣的)。還有一個就是產(chǎn)生了正弦波正半周的信號,把正半周的信號翻轉(zhuǎn)為負(fù)半周信號,變成一個完整的正弦波信號 請電路高手指點 ...… 查看全部問答∨ |
rt, 版主在這個帖子中是不是說TIM2的CH4不能做PWM輸入, http://bbs.eeworld.com.cn/icview-109870-1-1.html 那能做輸出嗎?我想設(shè)置成TIM2的CH4作PWM輸出,連接一個蜂鳴器,可行嗎?… 查看全部問答∨ |
剛剛碰到這樣的問題,請教大家啦 P3OUT=0XFE; P3DIR|=0Xff;//set pin as output P3SEL |= 0xf0;//P3.4、3.5 uart0, 3.6、3.7 uart1 端口初始化如上,如果之后有 P3OUT &=~ BIT0; 或者 P3OUT |= BIT0; 的語句就會不能進串口的中斷,如果 ...… 查看全部問答∨ |
【轉(zhuǎn)帖】XILINX FPGA用LabVIEW開發(fā) 這個和我先前用LabVIEW開發(fā)TI的LM3S8962的步驟和方法基本都是一樣的。 一:板子會從天上掉下來嗎? 一個好消息就是,xilinx Spartan-3e 這塊官板子可以免費申請!!我在網(wǎng)上查到了,這是申請地址http://www.eepw.com.cn/ev ...… 查看全部問答∨ |
怎樣讀寫stm32的內(nèi)部flash啊 我看了keil編譯器的設(shè)置 0x8000000————0x8040000 這里是代碼的存儲空間吧? 如果要將數(shù)據(jù)寫到別的地方怎么做啊 比如我要將一個數(shù)組 uint8_t ubuntu[5]={1,2,3,4,5};寫道 flash的 0x90000 ...… 查看全部問答∨ |
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦
- 英飛凌微控制器:以全新實惠套件和強大開發(fā)環(huán)境為開發(fā)者提供支持
- iTOP-i.MX6開發(fā)板設(shè)備數(shù)驅(qū)動Menuconfig的用法
- 迅為IMX6ULL開發(fā)板Qt for Android搭建開發(fā)環(huán)境
- 迅為i.MX8M mini開發(fā)板Windots QT系統(tǒng)開發(fā)環(huán)境搭建
- 迅為IMX8MM開發(fā)板Yocto系統(tǒng)使用Gstarwmra(一)
- 迅為IMX8M mini開發(fā)板Linix系統(tǒng)修改默認(rèn)屏幕
- iTOP-4412開發(fā)板支持4G以上文件系統(tǒng)擴展
- 迅為IMX8MM開發(fā)板Yocto系統(tǒng)設(shè)置開機自啟動
- 迅為IMX6Q開發(fā)板 Buildroot文件系統(tǒng)mqtt測試
- 高通攜手中國“汽車朋友圈”亮相2025上海車展: 加速駕駛輔助普惠,推動艙駕創(chuàng)新升級
- 工業(yè)市場正在快速回暖,德州儀器如何重塑電力電子市場?
- 特斯拉:美國交付的Model Y/3電池包已實現(xiàn)100%美國生產(chǎn)
- 地平線與博世深化合作,攜手為多家車企提供輔助駕駛產(chǎn)品
- 強化中國市場戰(zhàn)略布局,德州儀器正靈活應(yīng)對全球關(guān)稅挑戰(zhàn)
- Molex莫仕通過本地合作和創(chuàng)新加強支持中國汽車行業(yè)
- 貿(mào)澤開售Texas Instruments適用于高分辨率AR HUD的 全新DLP4620S-Q1 0.46"汽車數(shù)字微鏡器件
- ROHM推出高功率密度的新型SiC模塊,將實現(xiàn)車載充電器小型化!
- 用上車規(guī)級UFS 4.0,讓出行變得高效且可靠
- 車載測試技術(shù)解析:聚焦高帶寬、多通道同步采集與協(xié)議分析
- 免費申請|兆易創(chuàng)新GD32L233嘗鮮體驗,開啟節(jié)能“芯”時代!
- 你吐槽 我送書
- EEWorld十五周年,感恩同行!盤點那些難忘的小確幸~
- 免費測評——拓普微智能顯示模塊
- 【已結(jié)束】TI 有獎直播|使用低成本 MSPM0 MCU 快速開發(fā)
- 【傳感器,開玩啦】第一關(guān):免費申請評測運動和環(huán)境傳感器開發(fā)板
- 免費申請TI 樣片, 曬訂單贏好禮!
- 有獎報名|TI MSPM0 在【電力輸送和工廠自動化與控制系統(tǒng)】、【家用電器和電機控制】中的典型應(yīng)用
- 有獎活動|NI 助您設(shè)計更靠譜的數(shù)據(jù)采集系統(tǒng)