求助!!!遇到个超级奇葩的问题,抠破了头,陷进去了几天也找不出原因,不知道可有大神遇到过相同问题。 调低功耗stop模式已经10uA了,以为能快乐的玩耍,谁知道如下面程序//后面屏蔽的语句,加1个或者2个具体加几句都会有影响没具体试过,都会导致功耗直接100多uA以上。接着在只有10uA程序中又试着加个while(0);功耗也飚到100多uA,我直接加三个while(0);功耗变为了正常的10uA.这现象已经把我弄疯了。 void TIM2_Pin_Close(void) { LL_GPIO_InitTypeDef LL_GPIO_InitStruct; uint8_t i; //LL_TIM_InitTypeDef LL_TIM_InitStruct; LL_IOP_GRP1_EnableClock(LL_IOP_GRP1_PERIPH_GPIOA); LL_GPIO_InitStruct.Pin = LL_GPIO_PIN_0; LL_GPIO_InitStruct.Mode = LL_GPIO_MODE_INPUT; //LL_GPIO_InitStruct.Speed= LL_GPIO_SPEED_HIGH; //LL_GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL; //LL_GPIO_InitStruct.Pull = LL_GPIO_PULL_NO; LL_GPIO_InitStruct.Alternate = LL_GPIO_AF_0; LL_GPIO_Init(GPIOA,&LL_GPIO_InitStruct); LL_GPIO_ResetOutputPin(GPIOA,LL_GPIO_PIN_0); } |
评分
查看全部评分
具体程序见下
void StopMode_Entering(void)//停止模式进入
{
__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);//电源控制/状态寄存器 (PWR_CSR) 中的 WUF 位 = 0
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE2);//当 V CORE 处于范围 2 时,才能进入低功耗睡眠模式
__HAL_FLASH_SLEEP_POWERDOWN_ENABLE();//在睡眠模式下FLASH为掉电
HAL_PWREx_EnableUltraLowPower();//V REFINT 在低功耗模式下关闭
HAL_PWREx_EnableFastWakeUp();//PWR_CR 寄存器中的 ULP 位置 1时,必须使能快速唤醒(PWR_CR中的 FWU 位置 1)
__HAL_RCC_HSI_CONFIG(RCC_HSI_DIV4);//请求对 16 MHz HSI 进行 4 分频 ,且HSI16 振荡器开启
__HAL_RCC_WAKEUPSTOP_CLK_CONFIG(RCC_STOP_WAKEUPCLOCK_HSI);//选择内部 16 MHz (HSI16) 振荡器作为从停止模式唤醒时钟(如果 HSI16DIVEN=1,则选择 HSI16/4)
HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON,PWR_STOPENTRY_WFI);
}
当然我做的是首先进入“低功耗运行状态”,然后再进入“停止状态”。难道你想进入停止状态时还想让程序(即:内核)运行??
我也遇到一个问题:不知道你遇到了吗?
就是:系统的时钟(即:SYSCLK)为4M(用的HSI内部晶振),在低功耗运行(所有的外设都关闭了)时会有30uA的周期性变化(见下解释周期性变化)。SYSCLK再高也会出现这种周期性变化,只不过是变化幅度有所增加。当把SYSCLK降到65.536K时(MSI)就会很稳。
30uA的周期性变化为:变化周期为50秒的时间内变化,它是由805uA一直减小,到773uA时瞬间变大到805uA,这个周期时间为50秒。
评分
查看全部评分
你怎么个用法?我读写器是弄收发单独模块所以通道是固定的,当然可以频道可以自由配置。标签采用一发一收,频道不一样,一个数据包大约4ms。收发反正是毫秒级,通道切换具体时间没测过,但是看数据手册,空闲模式->收发模式都才几百微秒,所以应该是不超过毫秒级的。
用SmartRF_Studio配置。设频率、速率都可以,然后会生成代码。
用这个SmartRF_Studio配置我也知道。。。对了问你个问题,切换一个通道需要多长实际稳定?
通道固定肯定不行,绝对死翘翘。。。发送和模式切换都是小事情,我问的是从一个频道切换到另外一个频道,比如从433M,切换到434M,需要多长时间稳定。。。。
评分
查看全部评分
其实是一个意思,换频道你肯定要先进入standby模式,然后在进入Tx/Rx模式,换通道那时间都可以不算,主要还是你模式改变的时间。
评分
查看全部评分
应用中只有在当前信道通信不稳定的时候才会去跳频。我以前应用就是固定的,030应用也就3-4uA左右
评分
查看全部评分
我就问一下,那你做的时候,切换一个通道需要多长时间稳定呢?
进stop模式之前,比较玄幻,这几天太忙了,准备20号之后,重新调一下低功耗,一个一个外设加看到底是什么个情况。
坐等楼主分享结果
我很想知道应用中为什么要去切换通道。
这种小数据短时通信可以通过退避和重发去解决,信道的跳转还需要调整带宽和频偏,并且设备间还需要去切换握手,我觉得很麻烦。