|
![](static/image/common/ico_lz.png)
楼主 |
发表于 2012-2-21 18:10:04
|
显示全部楼层
#include "DSP28_Device.h"
void InitSpi(void)
{
SpiaRegs.SPICCR.all = 0x0F;//配置控制寄存器,进入初始状态,在上升沿输出,自测禁止,16位数据(AMC1203为16位)
SpiaRegs.SPICTL.all = 0x0;//操作控制寄存器设置,正常的SPI时钟方式,从动模式,禁止SPI发送,禁止中断
/*波特率的设置,在此设置为从机模式,波特率设置无效,但是要求主机即AMC1203的波特率不能大于从机即2812的SPI波特率=70/4=17.5M*/
//SpiaRegs.SPIBRR = 0x0;//波特率 = LSPCLK/4 = 75/4 = 17.5M
SpiaRegs.SPICCR.all = 0x8F; //退出初始状态
}
SPI配置好后,是不是就是下面这样就能读取数据了啊?
unsigned int Spi_RxReady(void)
{
int data;
GpioDataRegs.GPFDAT.bit.GPIOF3=0;//SPI使能
SpiaRegs.SPIRXBUF=0x0300;//发送读指令
while(SpiaRegs.SPISTS.bit.INT_FLAG !=1){}
data=SpiaRegs.SPIRXBUF;//接收数据
GpioDataRegs.GPFDAT.bit.GPIOF3=1;//禁止SPI
return data; //返回数据
} |
|