单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 417|回复: 0
收起左侧

STM32外部SRAM实验源码

[复制链接]
tong001 发表于 2018-5-2 19:49 | 显示全部楼层 |阅读模式
就一个外部SRAM实验调试的实验程序我平时都用来当作例程加入到其他的程序中,当然想要实现自己的功能需要自己去实际的调试。。

0.jpg
单片机源码:
  1. #include "sys.h"
  2. #include "delay.h"       
  3. #include "key.h"                  
  4. #include "lcd.h"
  5. #include "sram.h"

  6. u32 testsram[250000] __attribute__((at(0X68000000)));//测试用数组
  7. //外部内存测试(最大支持1M字节内存测试)            
  8. void fsmc_sram_test(u16 x,u16 y)
  9. {  
  10.         u32 i=0;            
  11.         u8 temp=0;          
  12.         u8 sval=0;        //在地址0读到的数据                                            
  13.           LCD_ShowString(x,y,239,y+16,16,"Ex Memory Test:   0KB");
  14.         //每隔4K字节,写入一个数据,总共写入256个数据,刚好是1M字节
  15.         for(i=0;i<1024*1024;i+=4096)
  16.         {
  17.                 FSMC_SRAM_WriteBuffer(&temp,i,1);
  18.                 temp++;
  19.         }
  20.         //依次读出之前写入的数据,进行校验                  
  21.         for(i=0;i<1024*1024;i+=4096)
  22.         {
  23.                   FSMC_SRAM_ReadBuffer(&temp,i,1);
  24.                 if(i==0)sval=temp;
  25.                 else if(temp<=sval)break;//后面读出的数据一定要比第一次读到的数据大.                             
  26.                 LCD_ShowxNum(x+15*8,y,(u16)(temp-sval+1)*4,4,16,0);//显示内存容量  
  27.         }                                         
  28. }                  
  29. int main(void)
  30. {               
  31.         u8 key;                     
  32.         u32 ts=0;
  33.         Stm32_Clock_Init(9);        //系统时钟设置
  34.         delay_init(72);                            //延时初始化
  35.         LCD_Init();                                   //初始化LCD
  36.         KEY_Init();                                //按键初始化  
  37.         FSMC_SRAM_Init();                //初始化外部SRAM  
  38.         POINT_COLOR=RED;                //设置字体为红色
  39.         LCD_ShowString(60,50,200,16,16,"XYD 2014.01.16");       
  40.         LCD_ShowString(60,70,200,16,16,"SRAM TEST");       
  41.         LCD_ShowString(60,110,200,16,16,"KEY1:Test Sram");
  42.         LCD_ShowString(60,130,200,16,16,"WK_UP:TEST Data");
  43.         POINT_COLOR=BLUE;//设置字体为蓝色  
  44.         for(ts=0;ts<250000;ts++)testsram[ts]=ts;//预存测试数据         
  45.           while(1)
  46.         {       
  47.                 key=KEY_Scan(0);//不支持连按       
  48.                 if(key==KEY_DOWN)fsmc_sram_test(60,170);//测试SRAM容量
  49.                 else if(key==KEY_UP)//打印预存测试数据
  50.                 {
  51.                         for(ts=0;ts<250000;ts++)LCD_ShowxNum(60,190,testsram[ts],6,16,0);//显示测试数据         
  52.                 }
  53.         }          
  54. }


复制代码

所有资料51hei提供下载:
外部SRAM实验.zip (154.94 KB, 下载次数: 3)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|单片机论坛 |51黑电子论坛5群 联系QQ:125739409;技术交流QQ群174280738

Powered by 单片机教程网

快速回复 返回顶部 返回列表