你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM8在使用中复位

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

        FLASH_Unlock(FLASH_MEMTYPE_DATA); //解锁写保护
        for(i=0;i<iLength;i++)
        {
        //        eeprom_write(u16_addr+i,*(dataBuf+i));
                  FLASH_ProgramByte(u16_addr+i,*(dataBuf+i));
                IWDG_ReloadCounter();//喂狗
        }
        FLASH_Lock(FLASH_MEMTYPE_DATA); //写保护
}

adc修改部分
ADC1_Init(ADC1_CONVERSIONMODE_CONTINUOUS, NTCADC_Channe4, ADC1_PRESSEL_FCPU_D2, ADC1_EXTTRIG_TIM, DISABLE, ADC1_ALIGN_RIGHT, ADC1_SCHMITTTRIG_ALL, ENABLE);

使用以上两个修改方案后,可以正常读写epprom数据,adc采样和按键检测也不冲突,在内部测试没有发现问题,但是拿到客户现场,缺出现跑着跑着单片机复位了,说明下,设备是24v交流供电,用继电器控制外部电机负载设备,我想请教下,出现这种问题可能是什么原因,是否和配置有关
收藏 评论4 发布时间:2018-9-3 11:08

举报

4个回答
jyl518-283289 回答时间:2018-9-3 16:58:23
电源稳定度怎么样,看门狗时间算准了没有

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

feixiang20 回答时间:2018-9-3 23:42:12
检查下输入电压是否不同,硬件连接是否错误
阴世幽泉 回答时间:2018-9-5 14:10:31
jyl518-283289 发表于 2018-9-3 16:58
电源稳定度怎么样,看门狗时间算准了没有

看门狗设定时间是0.5s
阴世幽泉 回答时间:2018-9-5 14:13:10
经过排查,有两个原因,一个事看门狗初始化配置有异常,必须先使能看门狗再配置,另外一个原因应该是电路设计稳定性不够造成的;
void IWDG_Config(void)
{
#if 0
        IWDG_Enable();//使能看门狿
    IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);//写使胿
    IWDG_SetPrescaler(IWDG_Prescaler_256);//预分颿56,128KHZ/256
    IWDG_SetReload(0XFF);//设置每次喂狗的计数值?56*250/128000=0.5s  
    IWDG->KR = 0xaa;//锁定并刷新
   
#else
    IWDG->KR = 0xcc;//启动独立看门狗  
    IWDG->KR = 0x55;//写入解锁  
    IWDG->PR = 0x06;//256分频
    IWDG->RLR = 0xff;//设置重载寄存器
    IWDG->KR = 0xaa;//锁定并刷新
#endif
   
}

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3 结帖奖励

查看全部评分

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版