2410的SPI程序非得是在LINUX或者WINCE下么?不带系统不行么?我是初学者,还玩不转系统,只是照着书的寄存器设定之类的参考资料写的。但是结果就是SPI的输入输出口子上都没有数据。不明白是不是自己哪里出错,麻烦帮我看看程序好么?
PS:哪里可以找到SPI的TEST程序?能给发一个,或者给个下载地址么?我的邮箱lolly_macro@yahoo.com.cn
------------------
#include "config.h"
void DelayNS(uint32 dly)
{
uint32 i;
for(; dly>0; dly--)
for(i=0; i<50000; i++);
}
int num1;
char rec_data[128];
void spi_init()
{
rSPPRE1=24;
rSPCON1=0x02;
rSPPIN1=0x03;
rGPGCON = rGPGCON & ~0xFCF3 | 0xFCF1;
rGPGDAT = rGPGCON & ~1; //使GPG0输出0
}
int main(void)
{
int j;
spi_init();
num1=0;
for(;num1<128;)
{
while(rSPSTA1&1==0);
rec_data[num1] = rSPRDAT1;
num1++;
}
for(j=0;j<500;j++)
{
rSPTDAT1= 1;
DelayNS(2);
//rSPTDAT1= 0;
//DelayNS(2);
}
#define rSPTDAT1 (*(volatile unsigned *)0x59000030) //SPI1 Tx data
#define rSPRDAT1 (*(volatile unsigned *)0x59000034) //SPI1 Rx data
} |