spi core driven.c

来自「ADI 公司的DSP ADSP21262 EZ-KIT LITE开发板的全部源代」· C语言 代码 · 共 55 行

C
55
字号
/* SPI Control Registers                                  */
#define SPICTL  (0x1000)
#define SPIFLG  (0x1001)
#define SPIBAUD (0x1005)
#define TXSPI   (0x1003)

/*SPICTL bits                                             */
#define TIMOD1  (0x0001)  /* Use DMA for transfers        */
#define DMISO   (0x0020)  /* Disable MISO pin             */
#define WL32    (0x0100)  /* SPI Word Length = 32         */
#define SPIMS   (0x1000)  /* SPI Master if 1, Slave if 0  */
#define SPIEN   (0x4000)  /* SPI Port Enable              */

/*SPIFLG bits                                             */
#define DS0EN   (0x0001)  /* use FLG0 as SPI device-select*/

/* Default Buffer Length */
#define BUFSIZE 10

/* Transmit Buffer */
int tx_buf[BUFSIZE]=   {0x11111111,
                        0x22222222,
                        0x33333333,
                        0x44444444,
                        0x55555555,
                        0x66666666,
                        0x77777777,
                        0x88888888,
                        0x99999999,
                        0xAAAAAAAA};

/* Main code section */
main(){
int i;

/* Init SPI MASTER TX */
*(volatile int *)SPICTL = 0;
*(volatile int *)SPIFLG = 0;

/* set the SPI baud rate to CCLK/4*64 (781.25KHz @ 200MHz)*/
     *(volatile int *)SPIBAUD = 0x64;

/* Set up DAG registers */
*(volatile int *)SPICTL = DMISO|  /* Disable MISO on transfers */
         WL32|   /* 32-bit words */
         SPIMS|  /* Master mode (internal SPICLK) */
         SPIEN|  /* Enable SPI port */
         TIMOD1; /* Initialize SPI port to begin
                    transmitting when DMA is enabled */

/* Set up loop to transmit data */
for(i=0; i<sizeof(tx_buf); i++)
    *(volatile int *)TXSPI=tx_buf[i];
}

⌨️ 快捷键说明

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