历史上的今天
今天是:2025年02月13日(星期四)
2019年02月13日 | STM32与Flash AT45DB321D之间读写数据
2019-02-13 来源:eefocus
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公司,后面就查手册吧。由振南的程序读和写都封装好了,不用考虑时序,测试可用。

史海拾趣
|
可以正常进入休眠,也可以退出休眠。 但是在唤醒的过程中,执行到一半系统挂掉了。 大部分时候,是在: zzzzzzzz APP_PowerUp. [HSMMC1] Power Up the HSMMC Host Controller [HSMMC1] Card is Inserted! 这端死机的。 经过测试,sd卡驱 ...… 查看全部问答> |
|
void DS1302InputByte(unsigned char d) //实时时钟写入一字节(内部函数) { unsigned char i; ACC = d; for(i=8; i>0; i--) { & ...… 查看全部问答> |
|
我的板子的静态电流很大在LPM3模式下有120UA左右,我现在把板子上所有的外围器件都卸掉了,就剩下单片机(MSP430F5438), 程序是:所有IO配置成输出拉低,我想应该没问题,电流120UA左右,囧。。。是不是还有什么东西会影响电流。。 void ...… 查看全部问答> |
|
本人学生,学习单片机有2.3月了,有下面俩问题: 1、单片机应用广不广泛 2、出去后能不能在工作中应用 本人学习51的,用的是MedWinV3.0来编程的,期望大家回答下我的问题… 查看全部问答> |
|
在学校参加本科生实践活动,想在ARM板上写一个简单的AD驱动,结果在QT图像界面显示,对于整个流程不是很熟悉,求前辈以前做过的项目代码,熟悉一下~ 感谢对新人的栽培~~~… 查看全部问答> |
|
最近在做红外管触摸屏的时候碰到了一个这样的问题,同样的电路,用别人写好的程序,读取出来的每一个通道的值都比较稳定; 但是,我自己的程序,读取到的值,总是会出现间歇性的抖动,怀疑是电源电压不稳定,就想到用内部1.2V参照电压来修正读取的 ...… 查看全部问答> |
|
用MSP430launchpad做四通道航模遥控器可行性讨论 拿到MSP430LAUNCHPAD时间很久了,一直在吃灰…… 计划做一个航模遥控器 (只遥控,不涉及PPM编码什么) 用P1.0 1.1 1.2 1.3做四路AD采样 四通道! P1.4 2.6 2.7驱动液晶显示 12864 P1.5 1.6 1.7做SPI口,与24L01。 接收机用TIMEA 模拟PWM信号 ...… 查看全部问答> |




