STC12C5A60S2单片机 读取sst25vf016b 的问题
修改单位的一个板子,把原来的sst89e51rd2单片机环卫stc的。在调试spi的过程中卡住了,stc的这片子有硬件spi,原来以为配置完寄存器就ok了,可是调试中发现,用示波器观察发送sck和mosi都正常有波形,可以使当读取寄存器的时候总是读出来的是oxff,就在程序wait的地方死机了。更换了一个flash还是这样子,我的硬件是单片机的P1.4,1.5,1.6,1.7,连接flsh的片选,si,so,sck。单片机的寄存器配置如下:void SPIInit() using SPI_REGISTER_BANK
{
unsigned char tmp;
tmp = P1;
P1 = tmp | 0xE0; //initial spi interface high_111xxxxx
SPCTL = SPI_SPCR_VALUE; //initial spi register master
SPI_CS = TRUE; //not select
SPDAT = 0x0;
}
接收发送程序如下:
unsigned char SpiMasterIO(unsigned char HW_SPI_out) using SPI_REGISTER_BANK
{
unsigned long tmp = 0;
unsigned char tmp2 = 0;
SPI_CS = FALSE;
SPDAT = HW_SPI_out;
while ((tmp < SPI_TIMEOUT)&&(!(SPSTAT & SPI_INT_FLAG)));
SPSTAT |= 0xc0;
tmp2 = SPDAT;
SPI_CS = TRUE;
return tmp2;
}
请调试过的XD帮忙,谢谢 stc的还是软件模拟spi吧 哦。这个片子自带硬件的, stc的这个片子的硬件spi还是蛮好用的 恩,我就是用的硬件的spi。今天又查了一边程序,感觉没啥问题。因为sst25vf016b这个flash是3.3V供电,单片机是5v的,今天又尝试,把单片机的P1口线设置成漏极开路,然后通过上拉电阻到3.3v连接到flash的,可是Miso和sck引脚发出的波形总是不能够上拉。发出的波形非常低,
页:
[1]