标题: STM32外部SRAM实验源码 [打印本页]

作者: tong001    时间: 2018-5-2 19:49
标题: STM32外部SRAM实验源码
就一个外部SRAM实验调试的实验程序我平时都用来当作例程加入到其他的程序中,当然想要实现自己的功能需要自己去实际的调试。。


单片机源码:
  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, 下载次数: 15)







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1