问题如下:
关于2407的spi的问题,请多指教
我用2407的spi口实现对外部的存储器的读写操作,但是发现不成功的原因之一是2407甚至没有输出spiclk信号,没有实现并行的要求,但是spi的控制寄存器就那么几个我反复的实验结果总是不行,请各位大侠给与指导,谢谢!
我的spi的初始化为
void spiinitial() //spi模块的初始化
{
SPICCR = 0X0007; //上升沿输出数据,下降沿输入,每次发送8BIT 数据(和X25650的要求保持一致)
SPICTL = 0X000F; //禁止超时中断OVERRUN INT=0,延时CLOCK PHASE=1, 主机方式MASTER/SLAVE=1,
//使能发送TALK=1,使能中断 SPI INT ENA =1
SPIBRR=0x0063;
// 频率为(200KHZ)
SPICCR = SPICCR|0X0080; //退出复位模式
SPISTS =0X0000; //清除SPI中断状态位
SPIPRI =0X40; //设置SPI中断为低优先级INT5
MCRB=0X001C; //设置为SPI专用引脚SPISIMO,SPISOMI,SPICLK,(SPISTE为一般I/O:IOPC5)
PCDATDIR=0X34FF; //IOPC5为输出方式,
// 且都置为高电平
}
经过上述设置,结果总是不理想,没有从2407中输出spiclk信号,请大家和我一起解决这个问题,谢谢!
解答如下:
查一下系统寄存器吧,在那里面需要把各个子模块的时钟使能的,估计是你没有把相应位置1使能。