论坛首页
任务活动
问答
论坛专题
登录
注册
yutingwei
+ 关注
粉丝
0
|
主题
24
|
回帖
235
加好友
私信
帖子
主题
回复
评论
基于STM32与NOR FLASH的SPI通信
2024-3-31 21:46
ST MCU
29
500
编译运行:
main()函数 uint8_t TxBuf[] = "HelloWorld"; #define BUFSZ (sizeof(TxBuf) / sizeof(uint8_t)) uint8 ...
擦除FLASH 读/写FLASH的函数实现完毕,看擦除FLASH的实现。注意,擦除FLASH只能按扇区擦除,该函数的参 ...
等待写操作完成 写FLASH时一个操作过程,FLASH提供操作命令W25X_ReadStatusReg供给用户判断是否写完成 ...
使能FLASH写 上面往FLASH写数据,在调用SPI_FLASH_RecvSendByte()写之前需要调用SPI_FLASH_WriteEnabl ...
以页为单位的写,会调用以字节为单位的写,即前面的SPI_FLASH_RecvSendByte()函数。 ...
该函数调用到以页为单位写的函数SPI_FLASH_Write_Page(),一页的空间大小为256字节。 //按页写 void SP ...
这个函数是将用户要写的数据进行以扇区为单位写入,一个扇区为4096字节大小,以扇区为单位写,函数为: voi ...
//写扇区 -> 写页 -> 按字节写 uint32_t SectorNum; uint16_t SectorOffset; uint16_t SectorRemainder; ui ...
往FLASH写数据 往FLASH写数据,有3种写范围,写一整个扇区、写一整页、写一个字节,当我们要从某个扇区 ...
选中FLASH芯片后向其发送W25X_ReadData表示主机要读取FLASH的数据,接着发送要读取的目标地址,还是遵循M ...
读取FLASH的数据 void SPI_FLASH_Read(uint8_t *Buf, uint32_t ReadAddr, uint16_t ReadCnt) { uint16_ ...
获取FLASH的运行状态则是向FLASH发送获取状态的指令W25X_ReadStatusReg。跟上一个函数类似,不赘述。利用 ...
读取FLASH的当前运行状态 uint8_t SPI_FLASH_Read_SR(void) { uint8_t ret = 0; FLASH_SPI_CS_LO ...
发送完W25X_JedecDeviceID指令后,调用SPI_FLASH_RecvSendByte()函数用于接收FLASH发来的3字节分3次发送 ...
这些命令被宏定义在bsp_spi_flash.h文件中: #define W25X_WriteEnable 0x06 #define W25X_WriteDi ...
W25X_JedecDeviceID也是一个宏定义,这是由FLASH定义的用来控制FLASH的指令,从W25Q64手册知,支持的指令 ...
FLASH_SPI_CS_LOW()和FLASH_SPI_CS_HIGH()是分别实现选中和不选中FLASH片选的宏,其实质就是控制nSS引脚为 ...
该函数含超时机制,可用于发送/接收一字节数据。至于用于发送还是接收,看用户关注哪一个。 下来是驱 ...
通过SPI的硬件接口发送/接收数据 uint8_t SPI_FLASH_RecvSendByte(uint8_t byte) { uint8_t TimeCnt = ...
1
2
3
4
5
6
7
后一页
2
3
近期访客