当前位置: 代码迷 >> 单片机 >> flash简单有关问题
  详细解决方案

flash简单有关问题

热度:201   发布时间:2016-04-28 14:50:17.0
flash简单问题求助
flash模拟 eeprom,用的正点原子例程。

UINT16 Address = 0x01;
UINT8  buf[ 6 ];
UINT8  datatemp[SIZE];    

//写入flash
sprintf( (char*)buf, "%03d", Address ); 
STMFLASH_Write(FLASH_SAVE_ADDR,(u16*)buf,SIZE);   

//读取flash
STMFLASH_Read(FLASH_SAVE_ADDR,(u16*)datatemp,SIZE);
LCD_ShowString( 10 + 8 * 5, 214, 200, 16, 16, datatemp ); 

写入和读取没有问题,想问下,Address是个变量,存入flash中后,读取出来是数组的形式,以字符串形式显示出来,如果有另一个变量要与datatemp(也就是存入的Address)比较是否相同,该怎么写。不能直接与Address比较,要与从flash读出来的值比较, 初学flash,求教各位大虾。谢谢!
------解决思路----------------------
Address是个变量,存入flash中后,读取出来是数组的形式,以字符串形式显示出来,如果有另一个变量要与datatemp(也就是存入的Address)比较是否相同,
--------------------
字符串比较可以使用strcmp函数


原型:extern int strcmp(const char *s1,const char * s2);
所在头文件:string.h
功能:比较字符串s1和s2。
一般形式:strcmp(字符串1,字符串2)
说明:
当s1<s2时,返回为负数
当s1=s2时,返回值= 0
当s1>s2时,返回正数
即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。如:
"A"<"B" "a">"A" "computer">"compare"
特别注意:strcmp(const char *s1,const char * s2)这里面只能比较字符串,不能比较数字等其他形式的参数。
  相关解决方案