使用的HAL库,HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON,PWR_STOPENTRY_WFI);进入停止模式后,有的时候LED灯还是闪烁,只不过是闪烁的频率比没进入停止模式之前慢了好多,不知道是怎么回事,请大神看一下
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
HAL_Delay(1000);
HAL_GPIO_TogglePin(GPIOB, LED1_Pin);
printf("停止模式
");
sys_conter++;
if(sys_conter%5==0)
{
printf("停止模式
");
EXT_CON++;
}
if(sys_conter%3==0)
{
HAL_GPIO_TogglePin(GPIOB, LED2_Pin);
HAL_GPIO_WritePin(COM_PWR_GPIO_Port, COM_PWR_Pin, GPIO_PIN_RESET); //给232芯片上电
ADC_ConvertedValueLocal =(float)ADC_ConvertedValue*3.3/4096;
flexiforce_R =3.3*20/ADC_ConvertedValueLocal; // V(out) = Rref * Vcc / R; Rref=20K Vcc=3.3V
printf("AD转换原始值 = 0x%04X
", ADC_ConvertedValue);
printf("计算得出电压值 = %f V
",ADC_ConvertedValueLocal);
printf("计算得出电池电压值 = %f V
",ADC_ConvertedValueLocal/0.09090909);
}
if(sys_conter>=30) //30秒
{
printf("CESHI
");
HAL_GPIO_WritePin(COM_PWR_GPIO_Port, COM_PWR_Pin, GPIO_PIN_RESET); //给232芯片上电
BAT_BUF[9]=((ADC_ConvertedValueLocal/0.09090909)*100)/(25.2-18);
BAT_BUF[10]=crc8(BAT_BUF,10);
HAL_UART_Transmit(&huart5,(uint8_t*)BAT_BUF,11,1000); //发送电量
sys_conter=0;
}
// printf("OK
");
if(EXT_FLAG) //休眠后上电蜂鸣器响一下
{
HAL_GPIO_WritePin(GPIOB,BEEP_Pin,GPIO_PIN_SET);
HAL_Delay(400);
HAL_GPIO_WritePin(GPIOB,BEEP_Pin,GPIO_PIN_RESET);
EXT_FLAG=0;
HAL_GPIO_WritePin(GPIOB, SPEAK_PWR_Pin,GPIO_PIN_SET);
}
if(USART_RX_STA&0x8000)
{
HAL_UART_Transmit(&huart4,(uint8_t*)USART_RX_BUF,DATA_LEN+2,100);
date_pro();//数据处理
USART_RX_STA=0;
}
if(EXT_CON>=2) //18三分钟
{
HAL_Delay(1000);
HAL_UART_Transmit(&huart5,(uint8_t*)OFF_BUF,11,1000); //发送断电指令
HAL_UART_Transmit(&huart2,(uint8_t*)SPEAK_BUF1,8,1000); //语音播报即将断电
// printf("即将断电
");
HAL_Delay(9000);
if(EXT_CON>=2)
{
HAL_UART_Transmit(&huart2,(uint8_t*)SPEAK_BUF2,8,1000); //语音播报即将断电
HAL_Delay(1000);
MX_GPIO_Init2();
HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON,PWR_STOPENTRY_WFI);
EXT_CON=0;
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
看一下是否正常进入了停止模式,还是说压根没进到停止模式。。
一周热门 更多>