开发教程8ARM功能手机SPI教程.docx
SPI教程疯壳开发板系列WO1verine-Team2018/10/31目录第一节SP1F1aSh硬件电路2第二节SPI+寄存器42.1 SPI+介绍42.2 寄存器介绍42.2.1 SPI控制寄存器042.2.2 SPI接收/发送寄存器O52.2.3 SPI接收/发送寄存器152.2.4 SP1清除中断寄存器52.2.5 SPI控制寄存器152.3 寄存器配置讲解6第三节SPI实验7 开机测试教程 整板责源介绍 开发环境搭建教程 快速上手教程中峡程 S1M900A通信实验代码及教程 TF11CD屏实唳代码及教程 TP-CaP电容触摸屏实验代码及教程 W25Q128-F1ash实验代码及及教程 OV2640摄像头实验代码及教程 TF-Card接口实验代码及教程 MP3音乐播放实验代码及教程 SRAM实验代码及教程初级教程之主处理器(SJM324X) GPIo实验代码及教程 终端实验代码及教程 定时器实验代码及教程串口实验代玛及教程ADC实验代码及教程I2C实验代码及教程SP1实验代码及教程DMA实验代码及教程FSMC实验代码及教程DCM1实验代码及教程SD1o实验代码及教程USB实验代码及教程初级教程之蓝月以电容器(DA14580)GP1o实验代码及教程中新实验代码及教程定时题实验代码及教程串口实验代码及教程ADC实舱代码及教程I2C实蛤代码及教程SP1实验代码及教程邺阚 STMia源整合 S1MCOM责源整合 Dia1og资源整合OmniViSion资源整合高华教程触凄屏实验打接电话实缝收发短信实验I音乐播放实验I拍照实验手机与手环时间同步实验读取手环步伐卡路里心率满试实验体温监测实验'NFC通信实验C1ataSheet数据手册摄像头应用文档 B1EjB牙低功耗应用文档 GSM/GPRS应用文档 MP3相关文档 充电电路相关文档 触黑薜相关文档 TF卡相关文档官网地址:http:WWW.fengke.dub购买链接:http:ShoPII官方QQ群:193836402第一节SPIF1aSh硬件电路SP1F1ash可用于存储程序以及一些数据,如果需要存储程序则必须连接在规定的引麻,开发板上选用的MCU引脚分别为:POO,P03,P05,P06,如下图所示:第二节SPI+寄存器2.1 SPI+介绍这个接口支持SPI总线的一个子集。这个串行接口在主/从模式可以发送和接收8、16或32位,并且在主模式可以发送9位。SPI+接口有双向的2X16位字的FIF0,功能得到了增强。该接口可以工作在主或从模式;有8、9、16、32位的操作方式;SP1控制器的时钟达至J16MHz,SP1时钟源可以通过编程进行1、2、4、8分频;SP1的时钟线达到8MHz;支持SPI的0、1、2、3四种工作模式;SP1Do的空闲电平可以通过编程设置;可屏蔽的中断发生器;单向读和写模式降位总线负载。2.2 寄存器介绍2.2.1 SPI控制寄存器0Tab1e161:SPI_CTR1_REG(0×50001200)BitModeSymbo1DescriptionResetSPI_EN_CTR10=SPI_ENpindisab1edins1avemodePinSPI_ENisdontcare.1=SPI_ENpinenab1edins1avemode.OxO14R/WSPI_MINT0=Disab1eSPI_INT_BITtoICU1=Enab1eSPI_INT_BITtoICU.NotethattheSPI-INTinterruptissharedwithADJNTinterruptOxO13RSPI_INT_BIT0=RXRegisterorFIFOisempty.1=SP1interruptDatahasbeentransmittedandreceved-MustberesetbySWbywritingtoSPI_C1EAR_INT_REG0x012RSPI_DIReturnstheactua1va1ueofpinSPI_DIN(de1ayedwithtwointerna1SPIdockcyc1es)0x011RSPI_TXH0=TX-FIFOisnotfu11,datacanbewritten.1=TX-F1FOtsfu11,datacannotbewtten0x010CAA,VVVSPI_FORCE_DO0=norma1operation=ForceSP1DOoutput1eve1tova1ueofSP1_DO.OxO9rvvvSPI_RST0=norma1operation1=ResetSPI.SamefunctionasSPI_ONexceptthatinterna1c1ockremainactive0×08:7R/WSPI_WORD00=8bitsmode,on1ySPI_RX_TX_REGOused01=16bitmode,on1ySprxZdCreG0used10=32bitsmode,SPI_RX_TX_REGO&SPI_RX_TX_REG1used11=9bitsmode.On1yva1idinmastermode.0x06SPI_SMNMasterzs1avemode0=Master,1=S1avefSP11on1y)0x05R/WSPI_DOPmSPI_DOoutput1eve1wenSPIisid1eorwenSPI_FORCE_DO=10x04:3CAA,VVSPI_C1KSe1ectSPI_C1Kdockfrequencyinmastermode:00=(XTA1)/(C1K_PER_REG*8)01=(XTA1)7(C1KPER_REG*4)10 =(XTA1)/(C1K_PER_REG*2)11 =(XTA1)/(C1K_PER_REG*14)0x02R/WSPI_PO1Se1ectSPI-C1Kpo1arity0=SPI_C1Kisinitia11y1ow1=SPC1Kisinitia11yhigh.OxOOVWSPI_PHASe1ectSPI-C1KphaseSeefunctiona1timingdiagramsinSPIchapter0x00R/WSPI_ON0=SPIModu1eswitchedoff(powersaving).EverythingisresetexceptSPI_CTR1_REGOandSPI_CTR1_REG1.Whenthisbitisc1earedtheSPIwi11remainactiveinmastermodeunti1theshiftregisterandho1dingregisterWebothempty1=SPIModu1eswitchedonShou1don1ybesetaftera11n-tro1bitshaveteirdesiredva1uesSotwowritesareneeded'0x015位:SP1EN引脚是否有效,O表示无效,”表示有效;14位:SP1中断使能位,U表示无效,B表示有效;13位:U表示接收寄存器或F1FO为空,1表示SP1中断,数据已经被发送或接收,该位必须通过软件写SPI_C1R_INT_REG清零;12位:返回SPI_DI引脚的状扇直;11位:'0'表示发送FIFo满,'表示发送FIFO空;10位:'0'正常模式,T'使SPIDo的值等于SP1DO的值;9位:'0'正常操作,'1'复位SPI;8:7位:SP1数据格式;6位:SP1工作模式,0'为主设备,'1'为从设备;5位:当SPI处于空闲模式或者当SP1FORCE_DO=1时引脚SP1DO的值;4:3位:SP1在主模式下的时钟频率选福;2位:SP1时钟初始电平的高低,'0,为低,'1,为高;1位:SP1时钟的相位选择,具体看SP1的时序图;(SP1的资料)0位:SPI的开关。2.2.2 SPI接收/发送寄存器0Tab1e162:SPI_RX_TX_REGO(0×50001202)BitModeSymbo1DescriptionReset15:0ROSPI_DATA0Write;SPI_TX_REGOoutputregister0(TX-FIFO)ReadSPtFDCREGOinputregister0(RX-FIFO)In8or9bimodebits15to8arenotused,theyntaino1ddata.0x015:0位:SP1发送或接收的数据,写操作是,存储发送的数据,读操作时,为接收到的数据。2.2.3 SPI接收/发送寄存器1Tab1e163:SPI_RX_TX_REG1(0x50001204)BitModeSymbo1DescriptionReset15:0SPI_DATA1WriteSPI_TX_REG1outputregister1(MSB,sofTX-FIFO)Read:SPI_RX_REG1inputregister1(MSB'sofRX-FIFO)In8or9or16bitsmodebitsthisregisterisnotused0x015:0位:SP1发送或接收的数据,写操作是,存储发送的数据,读操作时,为接收到的数据;为32位模式的高16位数据。2.2.4 SP1清除中断寄存器Tab1e164:SPI_C1EAR_INT_REG(0×50001206)BitModeSymbo1DescriptionReset15:0R0Wspi_c1ear_intWritinganyva1uetothisregisterwi11deartheSP1CTR1-REG(SPIJNT-BReadingreturns0.0x015:0位:写任意值到该寄存器清除SP1的中断标志。2.2.5 SPI控制寄存器1Tab1e165:SPI_CTR1_REG1(0x50001208)BitModeSymbo1DescriptionReset-Reserved0X04R/WSPI_9BIT_VA1Determinestheva1ueofthefirstbitin9bitsSPImode0x03RSPI_BUSY0=TheSPIisnotbusywithatransfer.ThismeansthateithernoTX-dataisavai1ab1eorthatthetransfershavebeensuspendedduetoafu11RX-FIFO.TheSPI×-CTR1-REG0SPIJNT-Bcanbeusedt