|
就一個(gè)外部SRAM實(shí)驗(yàn)調(diào)試的實(shí)驗(yàn)程序我平時(shí)都用來(lái)當(dāng)作例程加入到其他的程序中,當(dāng)然想要實(shí)現(xiàn)自己的功能需要自己去實(shí)際的調(diào)試。。
0.jpg (37.06 KB, 下載次數(shù): 49)
下載附件
2018-5-3 01:51 上傳
單片機(jī)源碼:
- #include "sys.h"
- #include "delay.h"
- #include "key.h"
- #include "lcd.h"
- #include "sram.h"
- u32 testsram[250000] __attribute__((at(0X68000000)));//測(cè)試用數(shù)組
- //外部?jī)?nèi)存測(cè)試(最大支持1M字節(jié)內(nèi)存測(cè)試)
- void fsmc_sram_test(u16 x,u16 y)
- {
- u32 i=0;
- u8 temp=0;
- u8 sval=0; //在地址0讀到的數(shù)據(jù)
- LCD_ShowString(x,y,239,y+16,16,"Ex Memory Test: 0KB");
- //每隔4K字節(jié),寫(xiě)入一個(gè)數(shù)據(jù),總共寫(xiě)入256個(gè)數(shù)據(jù),剛好是1M字節(jié)
- for(i=0;i<1024*1024;i+=4096)
- {
- FSMC_SRAM_WriteBuffer(&temp,i,1);
- temp++;
- }
- //依次讀出之前寫(xiě)入的數(shù)據(jù),進(jìn)行校驗(yàn)
- for(i=0;i<1024*1024;i+=4096)
- {
- FSMC_SRAM_ReadBuffer(&temp,i,1);
- if(i==0)sval=temp;
- else if(temp<=sval)break;//后面讀出的數(shù)據(jù)一定要比第一次讀到的數(shù)據(jù)大.
- LCD_ShowxNum(x+15*8,y,(u16)(temp-sval+1)*4,4,16,0);//顯示內(nèi)存容量
- }
- }
- int main(void)
- {
- u8 key;
- u32 ts=0;
- Stm32_Clock_Init(9); //系統(tǒng)時(shí)鐘設(shè)置
- delay_init(72); //延時(shí)初始化
- LCD_Init(); //初始化LCD
- KEY_Init(); //按鍵初始化
- FSMC_SRAM_Init(); //初始化外部SRAM
- POINT_COLOR=RED; //設(shè)置字體為紅色
- 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;//設(shè)置字體為藍(lán)色
- for(ts=0;ts<250000;ts++)testsram[ts]=ts;//預(yù)存測(cè)試數(shù)據(jù)
- while(1)
- {
- key=KEY_Scan(0);//不支持連按
- if(key==KEY_DOWN)fsmc_sram_test(60,170);//測(cè)試SRAM容量
- else if(key==KEY_UP)//打印預(yù)存測(cè)試數(shù)據(jù)
- {
- for(ts=0;ts<250000;ts++)LCD_ShowxNum(60,190,testsram[ts],6,16,0);//顯示測(cè)試數(shù)據(jù)
- }
- }
- }
復(fù)制代碼
所有資料51hei提供下載:
外部SRAM實(shí)驗(yàn).zip
(154.94 KB, 下載次數(shù): 15)
2018-5-2 19:49 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|