- 1、本文档共21页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SST25VF016B的FLASH根据野火及网络资料修改的基于IAR的SPI通信
实验目的:将数据写入外部FLASH 中,然后再读出来
FLASH :SST25VF016B
FLASH硬件接口:(其中野火的CE 口为PA4 ,此处我的为PE6 )
操作指令:
主要代码:
Main.c
#include stdio.h
#include usart1.h
#include spi_flash.h
#define sFLASH_ID 0xBF2541 //SST25VF016B
#define FLASH_WriteAddress 0x00000
#define FLASH_ReadAddress FLASH_WriteAddress
#define FLASH_SectorToErase FLASH_WriteAddress
#define countof(a) (sizeof(a) / sizeof(*(a)))
#define BufferSize (countof(Tx_Buffer)-1)
__IO uint32_t DeviceID = 0;
__IO uint32_t FlashID = 0;
/* 发送缓冲区初始化*/
uint8_t Tx_Buffer[] = abcdefg;
uint8_t Rx_Buffer[BufferSize];
main(void)
{
#if 1
/* 配置串口1为:115200 8-N-1 */
//USART1_Config();
//SST25VF016B 初始化
SPI_FLASH_Init();
/* Get SPI Flash Device ID */
DeviceID = SPI_FLASH_ReadDeviceID();
delay_us( 200 );
/* Get SPI Flash ID */
FlashID = SPI_FLASH_ReadID();
//printf(\r\n FlashID is 0x%x, Manufacturer Device ID is 0x%x\r\n,FlashID,DeviceID);
/* Check the SPI Flash ID */
if (FlashID == sFLASH_ID)
{
/* Erase SPI FLASH Sector to write on */
SPI_FLASH_SectorErase(FLASH_SectorToErase);
/* 将发送缓冲区的数据写到flash 中*/
SPI_FLASH_BufferWrite(Tx_Buffer, FLASH_WriteAddress, BufferSize);
/* 将刚刚写入的数据读出来放到接收缓冲区中*/
SPI_FLASH_BufferRead(Rx_Buffer, FLASH_ReadAddress, BufferSize);
}// if (FlashID == sFLASH_ID)
else
{
//printf(\r\n 获取不到SST25VF016B ID!\n\r);
}
#endif
}
Spi_flash.c
/******************************************************************************
****
* 文件名 :spi_flash.c
* 描述 :spi 底层应用函数库
* 实验平台:STM32
* 硬件连接
*
* 库版本 :ST3.5.0
* 参考 :野火
* 作者 :Linx
*******************************************************************************
***/
#include spi_flash.h
/* Private typedef */
//使用的由256改为4096 ,说是4k 的原因,没有深入研究
#define SPI_FLASH_PageSize 4096
#define SPI_FLASH_PerWritePageSize 4096
//#define SPI_FLASH_PageSize
文档评论(0)