天宁宁 发表于 2025-4-10 14:14:30

8H8K64U EEPROM读写参考V6.95E 范例程序 哪个芯片

这个读写函数似乎不行

/*----关闭IAP----------------------------*/
            void IapIdle()
            {
            IAP_CONTR = 0;                              //关闭IAP功能
            IAP_CMD = 0;                              //清除命令寄存器
            IAP_TRIG = 0;                               //清除触发寄存器
            IAP_ADDRH = 0x80;                           //将地址设置到非IAP区域
            IAP_ADDRL = 0;
            }
/*-从ISP/IAP/EEPROM区域读取一字节-*/
            char IapRead(int addr)
            {
                           char dat;
               IAP_CONTR = 0x80;                           //使能IAP
               IAP_TPS = 12;                               //设置等待参数12MHz
               IAP_CMD = 1;                              //设置IAP读命令
               IAP_ADDRL = addr;                           //设置IAP低地址
               IAP_ADDRH = addr >> 8;                      //设置IAP高地址
               IAP_TRIG = 0x5a;                            //写触发命令(0x5a)
               IAP_TRIG = 0xa5;                            //写触发命令(0xa5)
               _nop_();
               dat = IAP_DATA;                           //读IAP数据
               IapIdle();                                  //关闭IAP功能
               return dat;
               }
/*-写一字节数据到ISP/IAP/EEPROM区域-*/
            void IapProgram(int addr, char dat)
            {
                           IAP_CONTR = 0x80;                           //使能IAP
               IAP_TPS = 12;                               //设置等待参数12MHz
//IAP_TPS = 12;                               //设置等待参数12MHz
               IAP_CMD = 2;                              //设置IAP写命令
               IAP_ADDRL = addr;                           //设置IAP低地址
               IAP_ADDRH = addr >> 8;                      //设置IAP高地址
               IAP_DATA = dat;                           //写IAP数据
               IAP_TRIG = 0x5a;                            //写触发命令(0x5a)
               IAP_TRIG = 0xa5;                            //写触发命令(0xa5)
               _nop_();
               IapIdle();                                  //关闭IAP功能
            }
/*---扇区擦除---------------*/
            void IapErase(int addr)
            {
                           IAP_CONTR = 0x80;                           //使能IAP
               IAP_TPS = 12;                               //设置等待参数12MHz
               IAP_CMD = 3;                              //设置IAP擦除命令
               IAP_ADDRL = addr;                           //设置IAP低地址
               IAP_ADDRH = addr >> 8;                      //设置IAP高地址
               IAP_TRIG = 0x5a;                            //写触发命令(0x5a)
               IAP_TRIG = 0xa5;                            //写触发命令(0xa5)
               _nop_();                                    //
               IapIdle();                                  //关闭IAP功能
            }

AI芯 发表于 2025-4-10 14:17:59



https://www.stcaimcu.com/data/download/Tools/AIapp-ISP-v6.95L.zip
页: [1]
查看完整版本: 8H8K64U EEPROM读写参考V6.95E 范例程序 哪个芯片