STM32与Flash AT45DB321D之间读写数据

Flash这种芯片调试,首先必须要读出他的ID来,才能进行读写操作。

AT45DB321D 8192pages(512/528Bytes/Pages)大约4M左右,与单片机之间SPI通信。

大体流程就是先配置好spi,读出芯片ID,往flash里面写一个数据然后再把它读出来,可以通过串口把写入的数据打印出来。写入的过程就是先将数据写入到缓冲器(1或2),在从缓冲器写到指定页的指定地址(具体页地址和字节地址看芯片手册),读的过程也是一样,时序图都在芯片手册有。在这只放一段读ID的程序,详细代码参考的由振南修改的SPI_FLASH,放在我的Github里面。~~~Github~~~

#define Dummy_Byte    0xa5
uint8_t SPI_FLASH_ReadID(void)
{
  SPI_CS_LOW();
  SPI_WriteByte(0x9F);
  ID[0] = SPI_WriteByte(Dummy_Byte);
  ID[1]  = SPI_WriteByte(Dummy_Byte);
  ID[2]  = SPI_WriteByte(Dummy_Byte);
  ID[3]  = SPI_WriteByte(Dummy_Byte);
  SPI_CS_HIGH();
  if(ID[0]==0x1f&&ID[1]==0x27&&ID[2]==0x01&&ID[3]==0x00)
      return 0;
	else
	    return 1;
}

读出来ID后,ID每个字节都代表特定意思,记得第一个应该是代表atmel公司,后面就查手册吧。由振南的程序读和写都封装好了,不用考虑时序,测试可用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值