doming 发表于 2011-7-24 08:08:15

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帮忙,谢谢

tangwei039 发表于 2011-7-24 09:25:02

stc的还是软件模拟spi吧

doming 发表于 2011-7-24 09:37:07

哦。这个片子自带硬件的,

peaker_hear 发表于 2011-7-24 20:08:41

stc的这个片子的硬件spi还是蛮好用的

doming 发表于 2011-7-25 20:07:24

恩,我就是用的硬件的spi。今天又查了一边程序,感觉没啥问题。因为sst25vf016b这个flash是3.3V供电,单片机是5v的,今天又尝试,把单片机的P1口线设置成漏极开路,然后通过上拉电阻到3.3v连接到flash的,可是Miso和sck引脚发出的波形总是不能够上拉。发出的波形非常低,
页: [1]
查看完整版本: STC12C5A60S2单片机 读取sst25vf016b 的问题