20 Star 111 Fork 52

ECBM工作室 / STC8-BOOTLOADER-TINY

 / 详情

IAP_CONTR = 0x81; //这一条应该与MCU的时钟频率有关的。

待办的
创建于  
2021-09-09 14:07

您好,在这里,这一条应该与CPU时钟频率有关的。我想,应该可以通过宏定义解决。

void eeprom_erase(u16 addr){
	IAP_CONTR = 0x81;		//使能IAP
	IAP_CMD   = 3;			//设置IAP擦除命令
	IAP_ADDRL = addr;		//设置IAP低地址
	IAP_ADDRH = addr >> 8;	//设置IAP高地址
	IAP_TRIG  = 0x5a;		//写触发命令(0x5a)
	IAP_TRIG  = 0xa5;		//写触发命令(0xa5)
	_nop_();				//稍稍等待一下
	eeprom_off();			//关闭IAP功能
}

IAP_CONTR = 0x81; //这一条应该与MCU的时钟频率有关的。

评论 (1)

Lee8871 创建了任务
展开全部操作日志

#define F_CPU 24000000
#ifndef F_CPU
#error "必须定义时钟频率F_CPU,因为写入FLASH的配置会用到。"
#endif
#if (F_CPU>=32000000ul)
#define IAP_START_CMD = 0x80
#elif (F_CPU>24000000ul)
#define IAP_START_CMD = 0x81
#elif (F_CPU>20000000ul)
#define IAP_START_CMD = 0x82
#elif (F_CPU>12000000ul)
#define IAP_START_CMD = 0x83
#elif (F_CPU>6000000ul)
#define IAP_START_CMD = 0x84
#elif (F_CPU>3000000ul)
#define IAP_START_CMD = 0x85
#elif (F_CPU>2000000ul)
#define IAP_START_CMD = 0x86
#elif (F_CPU>1000000ul)
#define IAP_START_CMD = 0x87
#endif

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(1)
7729881 lee8871 1639338602
C
1
https://gitee.com/ecbm/stc8-bootloader-tiny.git
git@gitee.com:ecbm/stc8-bootloader-tiny.git
ecbm
stc8-bootloader-tiny
STC8-BOOTLOADER-TINY

搜索帮助