![shequ.stmicroelectronics.cn](./template/st_v1/static/img/logo2.png)
用下面的代码在仿真器跟踪状态下读写正常,芯片独立运行时不能写入。请高手指点一下。谢谢 //CPU: STM8L101F3P6 主时钟设为2M #define EEPROM_ADDR 0x9800 //--------------------------------------------------------------------- u8 Init_EEPROM(void) { u16 tc=0; do { if(tc<0xffff) tc++; else return 1; FLASH->DUKR=0xae; FLASH->DUKR=0x56; FLASH->CR2=0x00; }while((FLASH->IAPSR & 0x08)==0); return 0; } //----------------------------------------------------------------------- u8 EEPROM_Read(u16 Addr,u8 *RxBuffer,u8 Length) { u8 *EEP; EEP=(u8 *)(EEPROM_ADDR+Addr); if(Init_EEPROM()) return 1; while(Length--){ *RxBuffer++=*EEP++; } FLASH->IAPSR &= (uint8_t)FLASH_MemType_Data;//0xf7 lock return 0; } //----------------------------------------------------------------------- u8 EEPROM_Write(u16 Addr,u8 *RxBuffer,u8 Lenth) { u16 T=0; u8 *EEP; EEP=(u8 *)(EEPROM_ADDR+Addr); if(Init_EEPROM()) return 1; while(Lenth--){ *EEP++=*RxBuffer++; T=0; while((!(FLASH->IAPSR&0x04))&(T<0xFFFF)) T++; if(T==0xFFFF)return 1; } FLASH->IAPSR &= (uint8_t)FLASH_MemType_Data; // 0xf7 lock return 0; } //----------------------------------------------------------------------- |
STM8AF系列可以通过Flash Loader Demonstrator用lin总线刷写程序吗
STM8S003F3U6 请求各位大佬支援,但是遇到如下问题。。。这样就一定是这颗芯片的问题吗?
STVD如何生成库文件
STM8 flash 库函数 startaddress = startaddress + ((uint32_t)BlockNum * FLASH_BLOCK_S
stm 8 flash 在RAM运行代码的问题,是不是库函数有问题 Library call (?sll32_l0_l0_a) from within a
STM 有能替代MCHC912B32CFUE8 / NXP的型号吗?
STM8S的CAN总线使用
STM8L151在使用DAC功能后严重发热
STM8 IIC SLAVE 400K
STM8S 定时器1互补输出pwm
u8 EEPROM_Write(u16 Addr,u8 *RxBuffer,u8 Length)
{
u16 T=0;
uint8_t i=0;
u8 *EEP;
EEP=(u8 *)(EEPROM_ADDR+Addr);
FLASH->CR1 = 0x00;
FLASH->CR2 = 0x00;
while((FLASH->IAPSR&FLASH_FLAG_PUL)==0)
{
FLASH->PUKR = 0x56;
FLASH->PUKR = 0xAE;
}
for(i=0;i<Length;i++)
{
*EEP++=*RxBuffer++;
T=0;
while((FLASH->IAPSR)&FLASH_FLAG_EOP==0){
if(T<0xffff) T++;
else return 1;
};
}
FLASH->IAPSR &= 0xFD;
return 0;
}
//-----------------------------------------------------------------------
用这段代码可以写STM8L101-EEPROM