DSP28335软件模拟SPI与W25Q16的读写测试

【代码】DSP28335软件模拟SPI与W25Q16的读写测试。
摘要由CSDN通过智能技术生成
#include "SPI_FLASH.h"
#include "stdio.h"

#define BufferSize 			1024


#define  FLASH_WriteAddress     0x00000
#define  FLASH_ReadAddress      FLASH_WriteAddress
#define  FLASH_SectorToErase    FLASH_WriteAddress

void arr_split(Uint32 *p,Uint32 *q);

//发送缓冲区初始化
Uint32 Tx_Buffer[BufferSize] = {0};
Uint32 Rx_Buffer[BufferSize] = {0};

//Uint32 Tx_Buffer1[BufferSize*2] = {0};
//Uint32 Rx_Buffer1[BufferSize*2] = {0};


Uint32 DeviceID=0;
Uint32 FlashID=0;


void main()
{
	InitSysCtrl();

	InitPieCtrl();
	IER = 0x00;
	IFR = 0x00;
	InitPieVectTable();

	Uint16 i=0;

	SPI_Init();


	/* 获取 Flash Device ID */
	DeviceID = FLASH_ReadDeviceID();
	DELAY_US(20);
	FlashID = FLASH_ReadJEDE_ID();

	for(i=0;i<BufferSize;i++)
	{
		Tx_Buffer[i]=1;
		Rx_Buffer[i]=0;
	}

//	arr_split(Tx_Buffer,Tx_Buffer1);

	if(FlashID == SPI_FLASH_ID)
	{
		//扇区擦除
		FLASH_32KErase(FLASH_SectorToErase);

		SPI_FLASH_BufferWrite(Tx_Buffer,FLASH_WriteAddress,BufferSize);

		SPI_FLASH_BufferRead(Rx_Buffer,FLASH_ReadAddress,BufferSize);

//		SPI_FLASH_BufferWrite(Tx_Buffer1,FLASH_WriteAddress,BufferSize*2);
//
//		SPI_FLASH_BufferRead(Rx_Buffer1,FLASH_ReadAddress,BufferSize*2);

	}

	while(1);
}



void arr_split(Uint32 *p,Uint32 *q)
{
	Uint16 i=0,j=0;

	for(i=0;i<BufferSize;i++)
	{
		q[j++] = (p[i]>>8);
		q[j++] = (p[i]&0xFF);
	}
}

#ifndef SPI_FLASH_H_
#define SPI_FLASH_H_


#include "DSP2833x_Device.h"
#include "DSP2833x_Examples.h"
#include <stdio.h>

#define  SPI_FLASH_ID              0xEF4015	 //W25Q16

/*********************************************
 - W25X16的操作指令表,MCU通过向W25X16
  发送以下指令就可以对W25X16进行以下的操作
*********************************************/
#define W25X_WriteEnable            0x06    //Write Enable
#define W25X_WriteDisable           0x04    //Write Disable
#define W25X_ReadStatusReg1         0x05    //读状态寄存器1:S7~S0
#define W25X_ReadStatusReg2         0x35    //读状态寄存器2:S15~S8
#define W25X_WriteStatusReg         0x01    //写读状态寄存器:BYTE1:S7~S0  BYTE2:S15~S8
#define W25X_PageProgram       
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值