因为MC9S12G128 有内部flash和eeprom所以不需要用到 sci来通信。
并且MC9S12G128的flash与eeprom是共同管理的所以存取方式相同,只是地址范围不同。如下表所示
flash module的初始化
void eeprom_Init(){
while(FSTAT_CCIF==0); //等待正在处理的FLASH操作完成
FCLKDIV=0x17; //外部晶振为24M.FLASH时钟不超过1M
while(FCLKDIV_FDIVLD==0); //等待时钟设置成功
}其中FCLKDIV的设置是根据busclock来进行选择的,我用的是24M,其他对照下表
flash module的写入
其中Buffer[4]是一个缓存数据数组。
void eeprom_write(){
while(FSTAT_CCIF==0); //等待正在处理的FLASH操作完成
if(FSTAT_ACCERR) //判断并清除标志位
FSTAT_ACCERR=1;
if(FSTAT_FPVIOL) //判断并清除标志位
FSTAT_FPVIOL=1;
FCCOBIX_CCOBIX=0x00;