f28035 关于SPI 通信 程序目 读取外部18位数据 ,应为SPI 最长支持 16 位,所有本人想用 FIFO 同时送2个9位的数据出去。程序如下
初始化程序
{
s->***.bit.SPISWRESET = 0; // Put SPI in reset state
s->***.bit.*** = 0x8; // 9-bit character
s->***.bit.SPILBK = 0; // loopback off
s->***.bit.CLKPOLARITY = 1; // Rising edge without delay
s->***.bit.SPIINTENA = 0; // disable SPI interrupt
s->***.bit.TALK = 1; // enable transmission
s->***.bit.MASTER_SLAVE = 1; // master
s->***.bit.CLK_PHASE = 0; // Rising edge without delay
s->***.bit.OVERRUNINTENA = 0; // disable reciever overrun interrupt
s->SPIBRR = 20; // *** = LSPCLK / 4 (max ***)
s->SPIPRI.bit.SOFT=1; //停止前完成当前的接收 、发送操作
s->SPIPRI.bit.FREE=0;
s->SPIFFTX.bit.TXFFST=2; //发送FIFO具有2个字
s->SPIFFRX.bit.RXFFST=2; //接收FIFO具有2个字
s->***.bit.SPISWRESET=1; // Enable SPI
}
下面是输出的读入程序
{
s->SPITXBUF = 1; //send out the data
s->SPITXBUF = 1; //send out the data
while(s->SPISTS.bit.INT_FLAG == 0); //wait for the packet to complete
stat_reg1 = s->SPIRXBUF; //dummy read to clear the INT_FLAG bit
stat_reg2 = s->SPIRXBUF;
}