STM32F051 HAL库 CubeMX 低功耗STOP模式 搭配lora模块实现最低功耗8.4uA(四)

调试过程:
STOP模式休眠功耗0.52mA
1.去掉ADC上拉电阻,对功耗无影响
2.去掉LED灯可以降低0.25mA
3.取消I2C,串口,ADC对功耗影响不大
4.取消DIO0~DIO3,RELAY ,影响不大
5.SPI,LRST对功耗影响不大
6.取消OLED屏幕初始化对功耗影响不大
7.取消DMA,ADC,串口初始化对功耗影响不大
8.去掉LDO,AT24C02存储芯片对功耗影响不大

主函数如下:

while(1)
{
	while(!(HAL_GetTick()-node_rec_time > 10000 && NetStatus == JIONDONE))//时间到达&&入网完成才退出任务进入休眠
	{
		SlaveSendTask();							//节点发送数据任务
	}
	
	/*1.lora模块等待10s之后进入睡眠模式*/
	SX1276LoRaSetOpMode( RFLR_OPMODE_SLEEP );		//注释掉(不休眠)是1.88mA,加入此句(休眠)是0.7uA,在rtc回调函数里面在改为标准模式
	
	
	/*2.配置引脚为模拟输入,不上拉,(SPI、LRST还是默认状态)*/
	
	usart_deinit(&huart1);	/*配置串口引脚为模拟*/
	usart_deinit(&huart2);
	
	i2c_deinit(&hi2c2);		/*配置I2C引脚为模拟*/
	
	adc_deinit(&hadc);		/*配置I2C引脚为模拟*/
	
	gpio_deinit();			/*配置GPIO引脚为模拟(含时钟引脚)*/
	
	
	/*2.MCU设置为STOP模式*/
	HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);
	
	/*3.时间到达后,RTC中断唤醒MCU,LORA配置为标准模式*/
	SystemClock_Config();
	SX1276LoRaSetOpMode( RFLR_OPMODE_STANDBY );		/*唤醒lora,进入标准模式*/
	
	/*4.初始化*/
	//MX_GPIO_Init();	/*不能初始化所有GPIO*/
	gpio_init();									/*部分GPIO初始化*/
	
	MX_USART1_UART_Init();							/*串口初始化*/
	HAL_UART_MspInit(&huart1);
	
	HAL_I2C_MspInit(&hi2c2);						/*i2c初始化*/
	MX_I2C2_Init();
	
	HAL_ADC_MspInit(&hadc);							/*adc初始化*/
	MX_ADC_Init();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值