STM32 HAL库 CubeMX 低功耗STOP模式加NB模块BC28 实现待机电流11.3uA(三)

1.STM32 stop模式待机电流6.7uA
2.DHT11温湿度传感器<1uA
3.NB模组BC28待机电流4.3uA
以上综合待机电流11.3uA

主函数代码如下:

while (1)
  {
	  MX_RTC_Init();//每次同步后都初始化,1分钟后可以再次报警
	  ATRecTime = HAL_GetTick();
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
	if (SendClockFlag == 1)
	{
		SendClockFlag = 0;
		
		/*读取温度*/
		DHT11_Read_Data(&temperature,&humidity);	//读取温湿度值,如果读取失败则一直死在这里
		
		/*发送数据并接收20s*/
		TriggerSendData();//触发发送数据
		while(!((HAL_GetTick()-ATRecTime > 20000) && NBSendAccessFlag))//NBSendAccessFlag = 1表示发送数据成功,并等待接收20s
		{
			NB_Task();
		}
		//printf ("temperature = %d ,humidity = %d\n",temperature,humidity);
		temperature = 0; humidity = 0;//复位温湿度值
		
		/*调试信息i的值*/
//		printf("i = %d\n",i);
		i ++;//实现上报命令依次递增
		
		//STM32 STOP模式配置步骤如下:
		/*把所有引脚配置为模拟
		*解决串口150uA漏电问题,实测有效:
		*1.先把所有引脚配置为模拟模式
		*2.再将STM32设置为STOP模式
		*3.再将串口设置为正常推挽输出模式
		*4.PA0读取温湿度要设置为高速模式
		*/

		GPIO_InitTypeDef GPIO_InitStruct = {0};
		GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_2|GPIO_PIN_3;
		GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
		GPIO_InitStruct.Pull = GPIO_NOPULL;
		HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
		HAL_Delay (200);


		/*进入STOP模式*/
		HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);
		
		/*唤醒之后首先初始化时钟、GPIO、串口的GPIO、串口初始化*/
		SystemClock_Config();
		
		GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3;
		GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
		GPIO_InitStruct.Pull = GPIO_NOPULL;
		GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
		GPIO_InitStruct.Alternate = GPIO_AF1_USART1;
		HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
		
		MX_GPIO_Init();
		MX_USART1_UART_Init();
	}
	  
  }
  /* USER CODE END 3 */
}

根据以上的数据推算:
每一年的待机电量:
24h * 365天 * 11.3uA = 113.88mAh
假如一小时发送一次数据,每次发送所需时间1分钟,发送数据一年所需电量:
1min / 60 * 24h * 365天 * 3mA = 438mAh

整机一年所需电量:
113.88mAh + 438mAh = 551.88mAh

2节5号电池规格为3V,2000mAh ,理论待机时间为3年以上!

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值