找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2350|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

STM32外部SRAM實(shí)驗(yàn)源碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
就一個(gè)外部SRAM實(shí)驗(yàn)調(diào)試的實(shí)驗(yàn)程序我平時(shí)都用來(lái)當(dāng)作例程加入到其他的程序中,當(dāng)然想要實(shí)現(xiàn)自己的功能需要自己去實(shí)際的調(diào)試。。


單片機(jī)源碼:
  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)));//測(cè)試用數(shù)組
  7. //外部?jī)?nèi)存測(cè)試(最大支持1M字節(jié)內(nèi)存測(cè)試)            
  8. void fsmc_sram_test(u16 x,u16 y)
  9. {  
  10.         u32 i=0;            
  11.         u8 temp=0;          
  12.         u8 sval=0;        //在地址0讀到的數(shù)據(jù)                                            
  13.           LCD_ShowString(x,y,239,y+16,16,"Ex Memory Test:   0KB");
  14.         //每隔4K字節(jié),寫(xiě)入一個(gè)數(shù)據(jù),總共寫(xiě)入256個(gè)數(shù)據(jù),剛好是1M字節(jié)
  15.         for(i=0;i<1024*1024;i+=4096)
  16.         {
  17.                 FSMC_SRAM_WriteBuffer(&temp,i,1);
  18.                 temp++;
  19.         }
  20.         //依次讀出之前寫(xiě)入的數(shù)據(jù),進(jìn)行校驗(yàn)                  
  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;//后面讀出的數(shù)據(jù)一定要比第一次讀到的數(shù)據(jù)大.                             
  26.                 LCD_ShowxNum(x+15*8,y,(u16)(temp-sval+1)*4,4,16,0);//顯示內(nèi)存容量  
  27.         }                                         
  28. }                  
  29. int main(void)
  30. {               
  31.         u8 key;                     
  32.         u32 ts=0;
  33.         Stm32_Clock_Init(9);        //系統(tǒng)時(shí)鐘設(shè)置
  34.         delay_init(72);                            //延時(shí)初始化
  35.         LCD_Init();                                   //初始化LCD
  36.         KEY_Init();                                //按鍵初始化  
  37.         FSMC_SRAM_Init();                //初始化外部SRAM  
  38.         POINT_COLOR=RED;                //設(shè)置字體為紅色
  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;//設(shè)置字體為藍(lán)色  
  44.         for(ts=0;ts<250000;ts++)testsram[ts]=ts;//預(yù)存測(cè)試數(shù)據(jù)         
  45.           while(1)
  46.         {       
  47.                 key=KEY_Scan(0);//不支持連按       
  48.                 if(key==KEY_DOWN)fsmc_sram_test(60,170);//測(cè)試SRAM容量
  49.                 else if(key==KEY_UP)//打印預(yù)存測(cè)試數(shù)據(jù)
  50.                 {
  51.                         for(ts=0;ts<250000;ts++)LCD_ShowxNum(60,190,testsram[ts],6,16,0);//顯示測(cè)試數(shù)據(jù)         
  52.                 }
  53.         }          
  54. }


復(fù)制代碼

所有資料51hei提供下載:
外部SRAM實(shí)驗(yàn).zip (154.94 KB, 下載次數(shù): 15)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表