STM32F103C8T6运行一段时间后程序会偶尔会出现程序停止的现象
1 产品由于尺寸比较小,没有硬件复位,复位电路只有上拉10k电阻下拉0.1uf电容,使用过程中需要不停在STOP模式与工作状态切换,STOP模式电流为60uA,工作状态8mA~20mA之间;2 STOP模式与正常模式切换,通过RTC闹钟唤醒,RTC时钟采用外部晶振;
3 在生产过程总生产了100pcs样品,出现了2pcs中间程序停止的现象,复测一台不能出现,另一台概率出现,在概率出现的样机上,使用外部电源供电,死机后电流为8~9mA;
4 针对重现的样机,初步怀疑是否由于外部晶振原因找出,程序调整为内部晶振后,仍然出现一次;
5 STOP模式唤醒代码如下:
void Low_power_consumption(u16 sec) { //while(1);//14.8mA Power_Ctrl(); //while(1);//4.4mA ADC_DeInit(ADC1); //while(1);//3.4mA RTC_ALARM_SET(sec); Sys_Enter_Stop(); //while(1);//13mA SystemInit(); //while(1);//3.3mA RTC_Init(); //while(1);//13.5mA Power_On(); //while(1);//3.3mA } 感觉是受外界干扰导致的程序死机呢
100出现2片,概率有点高啊
是不是硬件的问题啊,硬件质量的事儿
这代码估计是没啥问题的吧
你查查电路,也可能是电路没焊接好导致的
能不能采用printf的方式打印出log啊,看看程序死在哪儿
低功耗的情况下,最不好调试,仿真都跟踪不了
真有可能像你怀疑的那样
调整为内置晶振,就出现一次是么?
可能最后那一次是偶然的吧,建议楼主还是多测测比较好
多半是进入STOP 时出现故障。所以建议楼主检查一下进入STOP前的中断和事件处理的是否全面 检查程序中是否有数组访问越界的情况,这可能导致程序崩溃。 检查电源是否稳定,是否有电压波动或噪声干扰。 内存溢出 是是不是选型有问题?程序无法快速启动呢? 检查程序中是否有递归调用或局部变量过多导致堆栈溢出的情况。 中断处理错误
共模电感的电感值可以用电桥来测量
单层板不具有固定孔
页:
[1]