标题:
STM32外部SRAM实验源码
[打印本页]
作者:
tong001
时间:
2018-5-2 19:49
标题:
STM32外部SRAM实验源码
就一个外部SRAM实验调试的实验程序我平时都用来当作例程加入到其他的程序中,当然想要实现自己的功能需要自己去实际的调试。。
0.jpg
(37.06 KB, 下载次数: 49)
下载附件
2018-5-3 01:51 上传
单片机源码:
#include "sys.h"
#include "delay.h"
#include "key.h"
#include "lcd.h"
#include "sram.h"
u32 testsram[250000] __attribute__((at(0X68000000)));//测试用数组
//外部内存测试(最大支持1M字节内存测试)
void fsmc_sram_test(u16 x,u16 y)
{
u32 i=0;
u8 temp=0;
u8 sval=0; //在地址0读到的数据
LCD_ShowString(x,y,239,y+16,16,"Ex Memory Test: 0KB");
//每隔4K字节,写入一个数据,总共写入256个数据,刚好是1M字节
for(i=0;i<1024*1024;i+=4096)
{
FSMC_SRAM_WriteBuffer(&temp,i,1);
temp++;
}
//依次读出之前写入的数据,进行校验
for(i=0;i<1024*1024;i+=4096)
{
FSMC_SRAM_ReadBuffer(&temp,i,1);
if(i==0)sval=temp;
else if(temp<=sval)break;//后面读出的数据一定要比第一次读到的数据大.
LCD_ShowxNum(x+15*8,y,(u16)(temp-sval+1)*4,4,16,0);//显示内存容量
}
}
int main(void)
{
u8 key;
u32 ts=0;
Stm32_Clock_Init(9); //系统时钟设置
delay_init(72); //延时初始化
LCD_Init(); //初始化LCD
KEY_Init(); //按键初始化
FSMC_SRAM_Init(); //初始化外部SRAM
POINT_COLOR=RED; //设置字体为红色
LCD_ShowString(60,50,200,16,16,"XYD 2014.01.16");
LCD_ShowString(60,70,200,16,16,"SRAM TEST");
LCD_ShowString(60,110,200,16,16,"KEY1:Test Sram");
LCD_ShowString(60,130,200,16,16,"WK_UP:TEST Data");
POINT_COLOR=BLUE;//设置字体为蓝色
for(ts=0;ts<250000;ts++)testsram[ts]=ts;//预存测试数据
while(1)
{
key=KEY_Scan(0);//不支持连按
if(key==KEY_DOWN)fsmc_sram_test(60,170);//测试SRAM容量
else if(key==KEY_UP)//打印预存测试数据
{
for(ts=0;ts<250000;ts++)LCD_ShowxNum(60,190,testsram[ts],6,16,0);//显示测试数据
}
}
}
复制代码
所有资料51hei提供下载:
外部SRAM实验.zip
(154.94 KB, 下载次数: 15)
2018-5-2 19:49 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1