历史上的今天
今天是:2024年12月11日(星期三)
2019年12月11日 | 低功耗版STM8L051的一个诡异配置
2019-12-11 来源:eefocus
为了做个低功耗项目,从最便宜的STM8S003切换到低功耗系列里较便宜的STM8L051;
在STM8S003上调通了HALT休眠处理后,最低待机电流是67uA;用了STM8L051后,实测能到2uA;
但是后来遇到个诡异的问题,TIMER4莫名其妙不动作,好像不计时了。开关中断,改初始化配置,都没用,很奇怪。
最后发现,是init'初始化的时候,没有给TIMER4配置CLK时钟源,导致的,
原来的代码并没有写TIM4,
CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_4);
CLK_SYSCLKSourceSwitchCmd(ENABLE);
CLK_HSEConfig(CLK_HSE_ON);
//-----------
CLK_PeripheralClockConfig(CLK_Peripheral_TIM2,DISABLE);
CLK_PeripheralClockConfig(CLK_Peripheral_TIM3,DISABLE);
CLK_PeripheralClockConfig(CLK_Peripheral_I2C1,DISABLE);
CLK_PeripheralClockConfig(CLK_Peripheral_SPI1,DISABLE);
CLK_PeripheralClockConfig(CLK_Peripheral_USART1,DISABLE);
CLK_PeripheralClockConfig(CLK_Peripheral_BEEP,DISABLE);
CLK_PeripheralClockConfig(CLK_Peripheral_ADC1,DISABLE);
CLK_PeripheralClockConfig(CLK_Peripheral_TIM1,DISABLE);
CLK_PeripheralClockConfig(CLK_Peripheral_RTC,DISABLE);
CLK_PeripheralClockConfig(CLK_Peripheral_LCD,DISABLE);
CLK_PeripheralClockConfig(CLK_Peripheral_BOOTROM,DISABLE);
CLK_PeripheralClockConfig(CLK_Peripheral_AES,DISABLE);
CLK_PeripheralClockConfig(CLK_Peripheral_SPI2,DISABLE);
//-----------
后来加上了TIM4的ENABLE就好了。
TIM4_DeInit();//复位定时器4寄存器
CLK_PeripheralClockConfig(CLK_Peripheral_TIM4,ENABLE);
TIM4_TimeBaseInit(TIM4_Prescaler_64,124);
//TIM4_PrescalerConfig(TIM4_Prescaler_64, TIM4_PSCReloadMode_Immediate);
可见如果你用库函数配置了其他外设的CLK时钟源,而没有配置TIM4的话,系统默认是不会打开TIM4的CLK时钟分配的!!!!
也就是说要用一个外设,得先开启一个对应的CLK分配才行,这是跟STM8S很大的不同
史海拾趣
|
proteus一仿真就卡死 我的电路在proteus一仿真就卡死,卡死时,最下面那个框里显示如下这段字母:SIMULATE:Running PROSPICE.DLL[C:\\DOCUME~1\\syb\\LOCALS~1\\Temp\\LISA1101.SDF] 请问这是为什么?如何解决,谢谢!… 查看全部问答> |
|
本帖最后由 paulhyde 于 2014-9-15 03:20 编辑 史上最全的AVR单片机学习笔记,希望对于AVR的初学者有所帮助! 实验44:基于TC1的ICP频率计(ATmega16) 实验42:L298电机驱动程序(M16+12V直流电机) 实验41:TLC5615驱动程序(M16+MAX7219+8位数 ...… 查看全部问答> |
|
转发我们的热招的职位(资深设计engineer/manager)-有兴趣的进来看下!! 公司信息 Headquartered in Sunnyvale, California, Silicon Storage Technology, Inc (SST) was founded in 1989 and got listed on the NASDAQ in 1995. SST designs, manufactures and markets a diversified range of memory and non-memory p ...… 查看全部问答> |
|
问题: 施耐德ats46 110kw软启动器故障为:启动完成后,继电器R2不动作。{指启动10秒以后} 具体为:负载为110kw电机;软启动器的参数设置为:电机额定电流200A;电机限幅电流400A;加速力矩斜坡10秒其余参数全部为工厂设置。 &n ...… 查看全部问答> |
|
开发板上有几个跳线,我写了一个测试的程序,却出问题了,大家帮忙看看... 跳线驱动部分内容: BOOL Addr_Init() { //地址映射 } BOOL WINAPI DllEntry(HANDLE hInstDll,DWORD dwReason,LPVOID lpvReserved) ...… 查看全部问答> |
|
希望大家能在给出正确答案的同时给出详细的解释,即解释出每个选项为什么对了后错了,辛苦啦 1.下列是有关计算机中指令和数据存放位置的叙述,其中正确的是()。 A. 指令存放在内存中,数据存放在外存中 B. 指令和数据任何时候都存放在内存中 ...… 查看全部问答> |
|
我有1个问题请教,在evc4.0开发环境,那位做过多边形外环和内环填充的项目,我用polypolygon这个函数,可是他不支持evc,在vc下面好用。 我要达到的效果外环里面的内环不被填充,可是在evc4.0下内环也被填充了。请问是这个函数polypolygon不支持ev ...… 查看全部问答> |
|
我用经典的串口的测试程序,在线仿真时发送和接收都正常。但是如果只用外部电源供电,不接仿真器,单片机发给pc的数据就接收不到了。如果这时再把仿真器连上,这是只是连上,不开IAR编译器,工作又正常了。我做板子的时候因为考虑到用外部电源供电 ...… 查看全部问答> |




