贰:读写FLASH的方法

2016-06-11  本文已影响141人  恰冯同学年少

将需要存储的不同数据类型的变量作为结构体变量的元素,整体读取和写入,see code.


#include <stdio.h>
#include <malloc.h>

typedef  struct
{
    char i;
    int j;
    float k;
    char a[10];
    int b[10];
    float c[10];
}FLASH;

void Write_buff(unsigned char *des_addr,unsigned char *source_addr,int cnt)
{
    for(;cnt>0;cnt--)
    {
        *des_addr++ = *source_addr++;
    }
}

void Read_buff(unsigned char *des_addr,unsigned char *source_addr,int cnt)
{
    for(;cnt>0;cnt--)
    {
        *des_addr++ = *source_addr++;
    }
}

int main()
{
    char i,j;
    FLASH flash_1,flash_2;
    flash_1.i=10;
    flash_1.j=20;
    flash_1.k=30;
    for(i=0;i<10;i++)
    {
        flash_1.a[i] = 'a'+i;
        flash_1.b[i] = 0x11111100+i;
        flash_1.c[i] = 3.0+(float)i/10.0;
    }

    char *buff = malloc(100);
    Write_buff(buff,&flash_1.i,sizeof(FLASH));
    Read_buff(&flash_2.i,buff,sizeof(FLASH));
    printf("%d %d %f\r\n",flash_2.i,flash_2.j,flash_2.k);

    for(;j<3;j++)
    {
        for(i=0;i<10;i++)
        {
            if(j==0)
                printf("%c ",flash_2.a[i]);
            else if(j==1)
                printf("0x%8x ",flash_2.b[i]);
            else if(j==2)
                printf("%.1f ",flash_2.c[i]);
        }
        printf("\r\n");
    }
}

代码功能

上一篇 下一篇

猜你喜欢

热点阅读