飞思卡尔单片机读flash

2019-03-26 08:00发布

飞思卡尔单片机怎么读flash 我仿真的时候,读出全是FF 也不知道读对不

读的过程 dat = *Addr  Addr是十六位的,dat是8位的

中间需要不需要加修饰符来表明指针是指向flash区的,高手们给指导一下吧,我就不用再摸索了 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
7条回答
Li_Lei
2019-03-26 22:38
/********************************************flash.h**********************************/
#define PASS  0
#define FAIL  1
#define FLASHCMD_ERASE   0x40
#define FLASHCMD_PROG    0x20
#define FLASHCMD_CBEF    0x80

#define EEPROM_VERIFICATION_CODE      0x5C5C
#define EEPROM_FACTORY_VERIFICATION   0xAA55
#define EEPROM_START_ADDRESS          0x1400
#define EEPROM_END_ADDRESS            0x1800
#define EEPROM_PAGE_SIZE              8

struct System_Config {
uint16 Verification_Code;                   //检验码1
uint16 Factory_Setting_Verification_Code;   //出厂设置校验码
uint16 notused1;
uint16 notused2;
/***********************can总线设置*******************************/
uint16 Default_ID;                //默认11位标准ID值,扩展帧此数值在高11位即28~18
uint16 notused4;
uint16 notused5;
uint16 notused6;
uint16 notused7;
uint16 notused8;
uint16 notused9;
uint16 notused10;
//滤波器
uint16 Can_Identifier_Acceptance01;      //滤波值
uint16 Can_Identifier_Mask01;            //掩位
uint16 Can_Identifier_Acceptance23;      
uint16 Can_Identifier_Mask23;            
uint16 Can_Identifier_Acceptance45;      
uint16 Can_Identifier_Mask45;
uint16 Can_Identifier_Acceptance67;      
uint16 Can_Identifier_Mask67;
};
/****************************通道参数设置,每个通道8字节****************************/
struct S_Channel_Setting {        //顺序影响写入。。。
uint16 Ch_Alarm_Min;              //通道1报警下限
uint16 Ch_Alarm_Max;              //通道1报警上限
uint16 Ch_Warning_Min;            //通道1提示下限
uint16 Ch_Warning_Max;            //通道1提示上限
};
//位于eeprom的通道设置起始地址
#define EEPROM_CHANNELSETTING_STARTADDRESS        (EEPROM_END_ADDRESS-32*16)
#define WARNING_VAL32(ch)     (((uint32)(Channel_Setting_Array[ch].Ch_Warning_Min)<<16)+(uint32)(Channel_Setting_Array[ch].Ch_Warning_Max))
#define ALARM_VAL32(ch)       (((uint32)(Channel_Setting_Array[ch].Ch_Alarm_Min)<<16)+(uint32)(Channel_Setting_Array[ch].Ch_Alarm_Max))
extern struct System_Config * System_Config_Current;  //系统当前设置
extern struct S_Channel_Setting * Channel_Setting_Array;
extern uint8 EEPRom_Init(void);
extern uint8 Save_System_Config_Default(void);
extern uint8 Save_System_Parameter(unsigned char offset,unsigned int val);
extern uint8 Save_Channel_Setting(unsigned char chx,unsigned long val);

一周热门 更多>