📄 main.c
字号:
/*
Retrieve some informations from the flash memory
AB
FC
*/
#include <s1sdk.h>
#define BUFFLEN 35
unsigned char Buff1[BUFFLEN];
unsigned char Buff2[BUFFLEN];
unsigned char Buff3[BUFFLEN];
unsigned char Buff4[BUFFLEN];
unsigned char Buff5[BUFFLEN];
unsigned char Vendor_ID[] = "Vendor ID: 0x00";
unsigned char Device_ID[] = "Device ID: 0x00";
unsigned char Page_Size[] = "Page size: 0x00";
unsigned char Flash_Size[] = "Flash size: 0x0000 Mb";
extern unsigned char FLASH_ManufacturerID;
extern unsigned char FLASH_DeviceID;
extern unsigned char FLASH_PageSize;
unsigned char getHex(unsigned char byte) {
byte &= 0x0F;
if(byte > 9) return(byte + 55);
return(byte + 48);
}
void sprintByte(unsigned char *string, unsigned char byte) {
string[0] = getHex(byte >> 4);
string[1] = getHex(byte);
}
void sprintWord(unsigned char *string, unsigned int word) {
sprintByte(string, (word >> 8) & 0xFF);
sprintByte(string + 2, word & 0xFF);
}
void buffcopy(unsigned char *to, unsigned char *from) {
unsigned int count;
for(count = 0; count < BUFFLEN; count++) {
to[count] = from[count];
}
to[(BUFFLEN - 1)] = 0;
}
int printstring(unsigned char *string) {
buffcopy(Buff1, Buff2);
buffcopy(Buff2, Buff3);
buffcopy(Buff3, Buff4);
buffcopy(Buff4, Buff5);
buffcopy(Buff5, string);
LCD_ClearScreen();
LCD_WriteText(0, 0, FONT_FIVE_DOT, Buff1);
LCD_WriteText(0, 6, FONT_FIVE_DOT, Buff2);
LCD_WriteText(0, 12, FONT_FIVE_DOT, Buff3);
LCD_WriteText(0, 18, FONT_FIVE_DOT, Buff4);
LCD_WriteText(0, 24, FONT_FIVE_DOT, Buff5);
LCD_UpdateScreen();
}
void s1memcpy(unsigned char *to, unsigned char *from , unsigned int length) {
unsigned int count;
for(count = 0; count < length; count++) {
to[count] = from[count];
}
}
int main() {
unsigned int uiFlash_Size;
MCU_Initialise(MCU_CLK_DIV_NONE);
WATCHDOG_Enable(WD_5_6s);
LCD_Initialise(16);
Buff1[0] = 0;
Buff2[0] = 0;
Buff3[0] = 0;
Buff4[0] = 0;
Buff5[0] = 0;
FLASH_Initialise();
printstring("Flash memory infos:");
sprintByte(Vendor_ID + 13, FLASH_ManufacturerID);
printstring(Vendor_ID);
sprintByte(Device_ID + 13, FLASH_DeviceID);
printstring(Device_ID);
sprintByte(Page_Size + 13, FLASH_PageSize);
printstring(Page_Size);
switch (FLASH_DeviceID) {
case FLASH_TYPE_32Mbyte:
uiFlash_Size = 32;
break;
case FLASH_TYPE_64Mbyte:
uiFlash_Size = 64;
break;
case FLASH_TYPE_128Mbyte:
case FLASH_TYPE_128Mbyte2:
uiFlash_Size = 128;
break;
case FLASH_TYPE_256Mbyte:
case FLASH_TYPE_256Mbyte2:
uiFlash_Size = 256;
break;
case FLASH_TYPE_512Mbyte:
uiFlash_Size = 512;
break;
case FLASH_TYPE_1024Mbyte:
uiFlash_Size = 1024;
break;
case FLASH_TYPE_2048Mbyte:
uiFlash_Size = 2048;
break;
default:
uiFlash_Size = 0;
break;
}
if(uiFlash_Size) {
sprintWord(Flash_Size + 14, uiFlash_Size);
printstring(Flash_Size);
}
while(1) {
WATCHDOG_Reset();
}
return(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -