AT25DF161无法驱动

2020-01-26 12:52发布

各位大侠,我在一个产品上用了两片AT25DF161打算将LCD显示数据写入其中,但是按照官方提供的时序图无法写入,也读不出!这是什么情况?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
guohua
1楼-- · 2020-01-26 15:56
void spiWrite(uchar Wbyte)
{
    uchar i;
        for(i=0;i<8;i++)
          {
            SPI_sck=0;
            if((Wbyte<<i)&0x80){SPI_si=1;}
                else{SPI_si=0;}
                SPI_sck=1;

                }
}

uchar spiRead(void)
{
    uchar i,rbyte=0;
        for(i=0;i<8;i++)
           {
               SPI_sck=0;
                 rbyte<<=1;
                 rbyte|=SPI_so;

                 SPI_sck=1;
                 }
        return rbyte;
}


#define                FREQ_LOW
#ifdef                FREQ_LOW
        #define                RD_ARRAY                0x03
#else
        #define                RD_ARRAY                0x0B
#endif



#define                BLOCK4_ERASE                0x20                //块擦除(4 KB )
#define                BLOCK32_ERASE                0x52                //块擦除(32 KB)
#define                BLOCK64_ERASE                0xD8                //块擦除(64 KB)
#define                ERASE_BLOCK_TIME        851100      //        400ms
#define                WR_PAGE_TIME            100000      //        1.2ms
#define                WR_BYTE_TIME                250
#define                CHIP_ERASE                        0x60            //整片擦除
#define                BPG_PROG                        0x02                //字节、页编程(1至256字节)
#define                SEQ_PROG                        0xAD                //0XAF
#define                WR_EN                                0x06                //写使能
#define                WR_DIS                                0x04                //写关闭
#define                PRO_SEC                                0x36                //保护区域
#define                UPR_SEC                                0x39                //解除保护区域
#define                RD_SPR                                0x3C                //读扇区保护寄存器
#define                RD_SR                                0x05                //读状态寄存器
#define                WR_SR                                0x01                //写状态寄存器1
#define                RD_MDI                                0x9F                //读制造商及设备标识
#define                DEEP_PWR                        0xB9                //省电模式
#define                RT_DEEP_PWR                        0xB9                //解除省电模式
Hamyou
2楼-- · 2020-01-26 21:02
很显然,时序有问题,严格按照数据手册上的来写,在搜一下网上的例子,应该没什么问题
guohua
3楼-- · 2020-01-26 21:27
网上也找了很多SPI程序,但是都不行能否赐教!
lkl10800139
4楼-- · 2020-01-26 22:59
我也准备弄这个,网上貌似没有什么资料。只能看类似的啦
lkl10800139
5楼-- · 2020-01-26 23:31
 精彩回答 2  元偷偷看……
and001
6楼-- · 2020-01-27 01:43
guohua 发表于 2012-6-26 01:28
网上也找了很多SPI程序,但是都不行能否赐教!

你是用到哪上面的呀?好像空间比较大呀?

一周热门 更多>