?? spi core driven.c
字號:
/* 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 + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -