⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 spi.txt

📁 F2812_spi读写 提供了一个f2812_SPI的函数
💻 TXT
字号:
发信人: ivyzengmin (Ivy), 信区: DSPTech
标  题: Re: 哪位用过f2812的spi口,能否给个例子?
发信站: BBS 水木清华站 (Thu Jul 22 13:36:05 2004), 站内

  一个实时时钟操作。

#include "DSP281x_Device.h"

extern struct RTC_TIME RtcTime;

void spi_xmit(int a)
{
    SpiaRegs.SPITXBUF =a;
} 
   
void InitSpi(void)                                        
{
    unsigned int i;
    
    SpiaRegs.SPICCR.bit.SPISWRESET = 0;
    SpiaRegs.SPIFFTX.all=0xE040;
    SpiaRegs.SPIFFRX.all=0x204F;
    SpiaRegs.SPIFFCT.all=0x0;    
     SpiaRegs.SPICCR.bit.CLKPOLARITY = 0;        // rising edge
    SpiaRegs.SPICCR.bit.SPICHAR = 7;            // 8 char bits  
                        
    SpiaRegs.SPICTL.all =0x0006; 
    SpiaRegs.SPIBRR = 5;
         SpiaRegs.SPICCR.bit.SPISWRESET = 1;
    for(i= 0;i<10;i++){};
    
    return;
}  

unsigned int RtcByte(unsigned int addr,unsigned int data)
{
                                                //字节操作,读/写靠addr的D7位区分
    unsigned int i;

    CSRTC=1;
         spi_xmit(addr<<8);
         while(SpiaRegs.SPIFFRX.bit.RXFFST !=1) { }; 
         i = SpiaRegs.SPIRXBUF;
         spi_xmit(data<<8); 
         while(SpiaRegs.SPIFFRX.bit.RXFFST !=1) { }; 
         i = SpiaRegs.SPIRXBUF;    
         data = i&0xFF; 
    CSRTC=0;

         return data;
}

void InitRtc(void)
{
    //2030/12/31/23/59/00
    RtcByte(0x8F,0x00);//WP=0
    RtcByte(0x80,0x00);//sec
    RtcByte(0x81,0x59);//min
    RtcByte(0x82,0x61);//hour
    RtcByte(0x83,0x03);//day
    RtcByte(0x84,0x31);//date
    RtcByte(0x85,0x12);//month
    RtcByte(0x86,0x30);//year            
    RtcByte(0x8F,0x40);//WP=1    
}

//===========================================================================
// No more.
//===========================================================================

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -