社区导航

 

搜索
查看: 1070|回复: 1

[资料分享] dspf28335(或2812)的SPI接口对EEPROM操作读写数据程序

[复制链接]

4186

TA的帖子

0

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2018-7-12 18:42 | 显示全部楼层 |阅读模式
/*********************************************************************
        函数名:        void EEPROM_Write_Enable(void)
        目的:                EEPROM的写使能
        输入:                无
        输出:                无
*********************************************************************/
void EEPROM_Write_Enable(void)
{

        //判断SPI发送准备好
        while(Spi_TxReady() == 0);
        //
        GpioDataRegs.GPFDAT.bit.GPIOF3 = 0;//CS拉低
        //发送SPI
        SpiaRegs.SPITXBUF = WREN;//发送使能写指令
        //
        //判断SPI发送准备好
        while(Spi_TxReady() == 0);
        //
        delay_time(60);
        //
        GpioDataRegs.GPFDAT.bit.GPIOF3 = 1;//cs拉高
}

/*********************************************************************
        函数名:        void EEPROM_Write_Disable(void)
        目的:                EEPROM的写关闭
        输入:                无
        输出:                无
*********************************************************************/
void EEPROM_Write_Disable(void)
{
        //判断SPI发送准备好
        while(Spi_TxReady() == 0);
        //
        GpioDataRegs.GPFDAT.bit.GPIOF3 = 0;
        //发送SPI
        SpiaRegs.SPITXBUF = WRDI;//禁止写
        //
        //判断SPI发送准备好
        while(Spi_TxReady() == 0);
        //
        delay_time(100);
        //
        GpioDataRegs.GPFDAT.bit.GPIOF3 = 1;
}

/*********************************************************************
        函数名:        unsigned int EEPROM_Read_Status(void)
        目的:                EEPROM的读状态
        输入:                无
        输出:                无
*********************************************************************/
unsigned int EEPROM_Read_Status(void)
{
        unsigned int i,data;
        //判断SPI发送准备好
        while(Spi_TxReady() == 0);
        //
        GpioDataRegs.GPFDAT.bit.GPIOF3 = 0;
        //发送SPI
        SpiaRegs.SPITXBUF = RDSR;   //读状态寄存器
        //判断SPI发送准备好
         while(Spi_TxReady() == 0);
        //发送SPI
//        SpiaRegs.SPITXBUF = 0xff;  

        //        for(i = 0; i < 100; i++);
        //判断SPI接收准备好
        while(Spi_RxReady() == 0);
        data = SpiaRegs.SPIRXBUF;

        //判断SPI发送准备好
//        while(Spi_TxReady() == 0);
        //
//        GpioDataRegs.GPFDAT.bit.GPIOF3 = 1;
        //
        return data;
}



回复

使用道具 举报

1

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2018-10-13 15:00 | 显示全部楼层
请问剩余的程序还有吗


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 1/7 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-5-30 21:01 , Processed in 0.126757 second(s), 22 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表