OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5345|回复: 1

stm32读出SST25VF016芯片数据全是乱码

[复制链接]

2

主题

5

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2015-1-31
在线时间
0 小时
发表于 2015-2-2 10:49:51 | 显示全部楼层 |阅读模式
5金钱
能够读出芯片的ID,但是读数据的时候,读出来却是一堆乱码,并不是我以前写入的数据,也不是0XFF,换任何空间读出来都一样,请教大神,我该从哪入手找原因呢?
//读函数,照操原子哥的
void SPI_Flash_Read(u8 *pBuffer,u32 ReadAddr,u16 NumByteToRead)
{
u16 i;  
SPI_FLASH_CS=0;                                  //片选
SPIx_ReadWriteByte(SST25_ReadData);              //发送读命令
//发送24位地址
SPIx_ReadWriteByte((u8)(ReadAddr)>>16);
SPIx_ReadWriteByte((u8)(ReadAddr)>>8);
SPIx_ReadWriteByte((u8)ReadAddr);
SPIx_ReadWriteByte(0xFF);   
for(i=0;i<NumByteToRead;i++)
{
pBuffer=SPIx_ReadWriteByte(0XFF);            //连续读
 
}
SPI_FLASH_CS=1;                                  //取消片选
}
以下为主函数
const u8 TEXT_Buffer[]={"Mini STM32"};      
#define SIZE sizeof(TEXT_Buffer)  
int main(void)
{
#ifdef DEBUG
     debug();
    #endif  
u16 key; 
u8 datatemp[SIZE];
Init_Function();
POINT_COLOR=RED;                                //
key=SPI_Flash_ReadID();
while(SPI_Flash_ReadID()!=FLASH_ID)             //读芯片的ID,我读出的ID是正确的。
  {
LCD_ShowString(60,130,"SST25VF Check Failed!");
delay_ms(500);   
}
LCD_ShowString(60,110,"SST25VF Ready!");
LCD_ShowString(60,130,"KEY1:Write    KEY2:Read");
POINT_COLOR=BLUE;
while(1)
{
key=Key_Scan();  
if(key==1)//按键1按下,写?FLASH
{
LCD_Fill(0,170,239,319,WHITE);
LCD_ShowString(60,170,"Start Write SST25V");
SPI_Flash_Write((u8*)TEXT_Buffer,1000,SIZE); //
LCD_ShowString(60,170,"SST25V Write Finished");
}
if(key==2) //按健2按下,FLASH
{        SPI_Flash_Erase_Chip();//因为读不出正确,我就把整个芯片全擦除了一遍,看读出的数是多少,结果读出的还是乱码,不是0XFF;
LCD_ShowString(60,150,"Start Read SST25V");
SPI_Flash_Read(datatemp,1000,5); //
LCD_ShowString(60,170,"The Data Is:                                ");
LCD_ShowString(157,170,datatemp);
       delay_ms(500);        

}      
}

 
}
我始终读出的都是乱码,不知道怎么回事,请教一下大神,帮我看看哪弄错了,是不是写入的英文,读出来需要怎么弄才能显示?或者告诉我一下,我该怎么入手?

天下大事,必作于细,天下难事,必作于易。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-2-3 00:42:02 | 显示全部楼层
先试试看能否擦除,擦除成功后,尝试写一个数据试试。看看能否实现这两步。
偷懒就直接百度找其他人代码参考。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-26 04:33

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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