//************************************************************ // Copyright (c) 深圳市赛元微电子有限公司 // 文件名称 : IAP // 作者 : // 模块功能 : IAP固件函数库使用示范:IAP往指定地址写值,再读该地址的值,若相等则翻转IO P20,不等则P20无波形 // 局部函数列表: // 最后更正日期: 2018/9/8 // 版本 : V1.0 //************************************************************* #include "sc92f8003_iap.h" #include "sc92f8003_gpio.h" #include "sc92f8003_option.h" void main(void) { uint8_t i; uint16_t j; GPIO_Init(GPIO2,GPIO_PIN_0,GPIO_MODE_OUT_PP); //将P20设置为强推挽模式 IAP_SetHoldTime(IAP_HOLDTIME_1500US); //HoldTime时间为1MS OPTION_IAP_SetOperateRange(IAP_OPERATERANGE_ONLY_EEPROM); //只允许EEPROM进行IAP操作 while(1) { for(i=0;i<10;i++) { IAP_ProgramByte(i, 0xaa, IAP_MEMTYPE_EEPROM, 0xf0); //往EEPROM区i地址写值0xaa,操作时限0xf0 if(IAP_ReadByte(i, IAP_MEMTYPE_EEPROM) == 0xaa) //读EEPROM区i地址的值 { if(GPIO_ReadPin(GPIO2,GPIO_PIN_0)) //相等翻转IO { GPIO_WriteLow(GPIO2,GPIO_PIN_0); } else { GPIO_WriteHigh(GPIO2,GPIO_PIN_0); } } else { GPIO_Init(GPIO2,GPIO_PIN_0,GPIO_MODE_IN_HI); //不等则将P20设置为高阻输入模式 } for(j=0;j<50000;j++); } } }