打印

Flash存储器的使用

[复制链接]
1673|32
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shimx|  楼主 | 2018-9-19 13:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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);?

相关帖子

沙发
shimx|  楼主 | 2018-9-19 13:27 | 只看该作者

unsigned char SPI_get()       //接收一个数据
{   
            unsigned char in;   
        
            while((IFG1 & URXIFG0)==0);        //等待接收完成
        in=U0RXBUF;
           return in;   
}   

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

使用特权

评论回复
板凳
dengdc| | 2018-9-19 13:30 | 只看该作者
楼主有什么问题?

使用特权

评论回复
地板
shimx|  楼主 | 2018-9-19 13:34 | 只看该作者
执行读操作时只能读出一个数据,再然后程序就卡在 “while((IFG1 & URXIFG0)==0);        //等待接收完成”  这一步不走了。
SST25VF016B WP引脚和Hold引脚怎样连接? 芯片怎样去除写保护?

使用特权

评论回复
5
wuhany| | 2018-9-19 13:41 | 只看该作者

SST25VF016B WP引脚和Hold引脚连接,以及写保护,手册上有介绍啊
http://wenku.baidu.com/view/2f18961a6c175f0e7cd137a5.html

使用特权

评论回复
6
shimx|  楼主 | 2018-9-19 13:44 | 只看该作者

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

使用特权

评论回复
7
zhenykun| | 2018-9-19 13:47 | 只看该作者

帮顶 学习中

使用特权

评论回复
8
shimx|  楼主 | 2018-9-19 13:49 | 只看该作者

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

使用特权

评论回复
9
jlyuan| | 2018-9-19 13:53 | 只看该作者
flash的读写操作的注意读写前的保护机制的。

使用特权

评论回复
10
shimx|  楼主 | 2018-9-19 13:56 | 只看该作者

嗯,我再好好缕一缕吧,有了好消息及时通知大家,结贴喽

使用特权

评论回复
11
aspoke| | 2018-9-22 20:16 | 只看该作者
这个是什么芯片?

使用特权

评论回复
12
232321122| | 2018-9-22 20:19 | 只看该作者
这个有中断吗?

使用特权

评论回复
13
ghuca| | 2018-9-22 20:19 | 只看该作者
这个也判断不出的

使用特权

评论回复
14
soodesyt| | 2018-9-22 20:20 | 只看该作者
写保护不要了。

使用特权

评论回复
15
mnynt121| | 2018-9-22 20:20 | 只看该作者
shimx 发表于 2018-9-19 13:27
unsigned char SPI_get()       //接收一个数据
{   
            unsigned char in;   

这个网上的代码有吗

使用特权

评论回复
16
plsbackup| | 2018-9-22 20:21 | 只看该作者
硬件怎么设计的

使用特权

评论回复
17
kmzuaz| | 2018-9-22 20:21 | 只看该作者
读写速度有关系?

使用特权

评论回复
18
qiufengsd| | 2018-9-22 20:21 | 只看该作者
shimx 发表于 2018-9-19 13:34
执行读操作时只能读出一个数据,再然后程序就卡在 “while((IFG1 & URXIFG0)==0);        //等待接收完成” ...

去除写保护

使用特权

评论回复
19
wengh2016| | 2018-9-22 20:22 | 只看该作者
shimx 发表于 2018-9-19 13:27
unsigned char SPI_get()       //接收一个数据
{   
            unsigned char in;   

看看手册怎么写的

使用特权

评论回复
20
maqianqu| | 2018-9-22 20:22 | 只看该作者
SPI接口吗  

使用特权

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

本版积分规则

857

主题

10661

帖子

5

粉丝