打印

MSP430F155和SST25VF016B Flash存储器的使用

[复制链接]
1365|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
一二三四五|  楼主 | 2013-10-23 19:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

void SPI_init()          
{           
        P5DIR  |=BIT3;  //P5.3 CE
        
        P5DIR  |=BIT2;
        P5OUT  |=BIT2;//WP引脚
        //P5OUT  &=~BIT2;//WP引脚
        
        //P5DIR  |=BIT0;  //P5.0 Hold
        //P5OUT  |=BIT0;
        //P5OUT  &=~BIT0;
        
        P3SEL  |=BIT1+BIT2+BIT3;  //SIMO SOMI UCLK                   
          U0CTL  =CHAR+SYNC+MM+SWRST;  //8位SPI,SPI模式,主机模式,保持在复位状态;   零;   
          U0TCTL =SSEL1+STC;     //时钟源为SMCLK,3线模式;   
          U0BR0  =0x002;   
          U0BR1  =0x000;                //波特率设定   
          U0MCTL =0x000;                //调整寄存器没有调整;
        ME1    =USPIE0;               //打开SPI使能  
          U0CTL &=~SWRST;             //关复位  
      
        //WRSR(0x00);                 //Flash去保护
}   
void SPI_send(unsigned char byte)   //发送一个数据
{                   
              while((IFG1 & UTXIFG0) == 0); //等待发送数据缓存是否准备好接收新数据      
        TXBUF0=byte;            //发送一个字节;
}
unsigned char SPI_get()       //接收一个数据
{   
            unsigned char in;   
        
            while((IFG1 & URXIFG0)==0);        //等待接收完成
        in=U0RXBUF;
           return in;   
}   
执行读操作时只能读出一个数据,再然后程序就卡在 while((IFG1 & URXIFG0)==0);        //等待接收完成  这一步不走了。
SST25VF016B WP引脚和Hold引脚怎样连接? 芯片怎样去除写保护?

void WRSR(unsigned char byte)           //往状态寄存器里写一个字节 系统启动首先写WRSR(0x00)去除写保护
{   
            CE0;         
        SPI_send(0x06);
        CE1;
        CE0;  
            SPI_send(0x01);        //发送写状态寄存器   
            SPI_send(byte);        
            CE1;            
}   
去除写保护  WRSR(0x00);?

相关帖子

沙发
一二三四五|  楼主 | 2013-10-23 19:08 | 只看该作者
unsigned char SPI_get()       //接收一个数据
{   
            unsigned char in;   
        
            while((IFG1 & URXIFG0)==0);        //等待接收完成
        in=U0RXBUF;
           return in;   
}   

这一步in=U0RXBUF;是in=RXBUF0;

使用特权

评论回复
板凳
dirtwillfly| | 2013-10-23 19:30 | 只看该作者
楼主有什么问题?

使用特权

评论回复
地板
一二三四五|  楼主 | 2013-10-23 19:36 | 只看该作者
dirtwillfly 发表于 2013-10-23 19:30
楼主有什么问题?

1,、执行读操作时只能读出一个数据,再然后程序就卡在 “while((IFG1 & URXIFG0)==0);        //等待接收完成”  这一步不走了。
SST25VF016B WP引脚和Hold引脚怎样连接? 芯片怎样去除写保护?

使用特权

评论回复
5
dirtwillfly| | 2013-10-24 11:04 | 只看该作者
SST25VF016B WP引脚和Hold引脚连接,以及写保护,手册上有介绍啊
http://wenku.baidu.com/view/2f18961a6c175f0e7cd137a5.html

使用特权

评论回复
6
一二三四五|  楼主 | 2013-10-24 18:33 | 只看该作者
dirtwillfly 发表于 2013-10-24 11:04
SST25VF016B WP引脚和Hold引脚连接,以及写保护,手册上有介绍啊
http://wenku.baidu.com/view/2f18961a6c1 ...

我看这个手册啦!
wp应该接高电平,hold怎么接,不懂啊。

使用特权

评论回复
7
meishizhaoshi| | 2013-10-25 19:41 | 只看该作者
帮顶 学习中

使用特权

评论回复
8
一二三四五|  楼主 | 2013-10-26 10:45 | 只看该作者
一二三四五 发表于 2013-10-24 18:33
我看这个手册啦!
wp应该接高电平,hold怎么接,不懂啊。

这个我知道了,wp,hold都接高电平,一般来说用不到hold引脚

使用特权

评论回复
9
dirtwillfly| | 2013-10-26 11:32 | 只看该作者
一二三四五 发表于 2013-10-26 10:45
这个我知道了,wp,hold都接高电平,一般来说用不到hold引脚

问题解决了?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

20

帖子

0

粉丝