在无数次询问以及查询后,终于把FLASH的问题搞清楚了,原来无论单片机的FLASH分页与否,程序都是写在FLASH上的,所以,当我调用PPAGE寄存器的时候,改变了FLASH的页面,也就是说存储在FLASH上的程序就读不到了,因此,这个时候出于保护,PPAGE寄存器是无法被改变的,所以,我把读写PPAGE的程序放到RAM中去,于是问题解决,这里附上,读写PPAGE寄存器的程序,以作笔记。
#pragma CODE_SEG FLASH_RAM//FLASH_RAM 是RAM上的段,自己定义的,详见PRM文件
void Flash_Page(INT16U w_data, INT8U page, INT16U address) //输入量是写入数据,页码,地址
{
INT8U defaultpage;
defaultpage = PPAGE;//保存原PPAGE值
PPAGE = page;
*(INT16U *) address = w_data;
PPAGE = defaultpage;
}
#pragma CODE_SEG DEFAULT//