
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 } |
stm32f407无法配置定时器2为全部dma
STM32F103TBU6 封装是VFQFPN36 将PD0和PD1配置成CAN不成功是什么原因
串口DMA + 空闲中断收发 ?
F103RCT6芯片对AFIO->MAPR寄存器写入时出错
使用STM32捕获PWM时同时捕获2个通道时会出现捕获的频率值不准确的问题
WS2812B怎么显示任意字符 / 图案?
STM32F103RCT6 定位孔 镂空,会影响使用吗?
HAL库1.8.4在做破坏性测试的时候出现g_state永远为busy的情况导致串口通信发送卡死
L9663驱动开发
用rt_thread 环境编写,DAP-LINK 下载烧录,每一次空芯片下载之后就无法二次下载。求解
楼主,您好。贴的代码全是屏蔽的。这段代码换成图片也行。分析原因如果是从stop下唤醒后不能休眠,可以看看是不是唤醒后系统时钟配置不过去。再就是分析一下进入STOP之前,代码是否有死循环。可以通过串口或者IO的状态来指示一下唤醒后正常工作过没有。
2. 之前怀疑是晶振偶尔出现问题造成,后程序更改为内部晶振进行RTC计时,12小时也出现了程序停止。同时针对正常的电路板进行晶振短路测试,在睡眠唤醒的过程中,只是STOP模式时间延长,将晶振恢复正常后,产品仍然能够唤醒,正常工作。
我看你用的是秒唤醒,计划多长时间唤醒一次,我怀疑是不是因为配置RTC唤醒的当时有问题。你用的是秒、分、时三种同时符合进行唤醒吗?如果唤醒时间很短的话,可以考虑换成以下代码唤醒。
void RTC_WakeUpClockConfig(uint32_t RTC_WakeUpClock); void RTC_SetWakeUpCounter(uint32_t RTC_WakeUpCounter);
用的是秒唤醒,有2s唤醒一次,也有30s唤醒一次
可以考虑换成我提供的函数试试。