单片机/MCU论坛
直播中

吴湛

9年用户 776经验值
擅长:电源/新能源
私信 关注
[问答]

关于STM8在使用中复位疑惑

先说明我使用的ic是stm8s003f3系列的,使用到内部资源有epprom,定时器1,adc1,看门狗;之前在测试时候发现两个问题:第一,flash操作时间过长导致看门狗直接复位,第二,adc功能开启后会出现按键采集失败。两个问题分别解决方式是在flash操作中加入看门狗,adc初始化重新调整,两部分代码如下:flash操作部分
void eeprom_write(unsigned long addrunsigned char num)
{
        FLASH_WaitForLastOperation(FLASH_MEMTYPE_DATA);  //确保前面的操作完成
//        FLASH_Unlock(FLASH_MEMTYPE_DATA); //解锁写保护
        FLASH_ProgramByte(addrnum);
        FLASH_WaitForLastOperation(FLASH_MEMTYPE_DATA);  //等待操作完成
//        FLASH_Lock(FLASH_MEMTYPE_DATA); //写保护
}
void write_DATAFLASH_BUF(u16 u16_addru8 *dataBufu8 iLength)
{
        u8  i;

        FLASH_Unlock(FLASH_MEMTYPE_DATA); //解锁写保护
        for(i=0;i

回帖(1)

李铭冠

2023-11-4 11:17:41
擦除flash需要一个等待时间的,如果看门狗时间太短是会复位,建议用中断喂狗,然后擦写不要太频繁,数据尽量精简
启动电机需要较大电流,可能引起电源波动,导致芯片复位,供电的时候可以增加共轭线圈抗干扰。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分