STM8->RCC
来源:互联网 发布:域名本机解析 编辑:程序博客网 时间:2024/05/20 17:39
尝试通过RTC中断唤醒halt()低功耗模式,需要一个功耗低的时钟源作为RTC运行时钟,选择LSI的16分频作为时钟源:
void RCC_LSI(void)
{
CLK_LSICmd (ENABLE);
CLK_SYSCLKSourceConfig(CLK_SYSCLKSource_LSI);
while(CLK_GetFlagStatus(CLK_FLAG_LSIRDY)==RESET);
CLK_SYSCLKSourceSwitchCmd (ENABLE);
if(CLK_GetSYSCLKSource()==CLK_SYSCLKSource_LSI)
{
CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_16);
}
}
RTC中断设置:
RTC_DeInit();
CLK_PeripheralClockConfig(CLK_Peripheral_RTC, ENABLE);
CLK_RTCClockConfig(CLK_RTCCLKSource_LSI, CLK_RTCCLKDiv_64);
RTC_WakeUpClockConfig(RTC_WakeUpClock_RTCCLK_Div16);
RTC_ITConfig(RTC_IT_WUT, ENABLE);
RTC_SetWakeUpCounter(time);
RTC_ClearITPendingBit(RTC_IT_WUT);
此处没有直接使能,因为在调试过程中,这部分的设置是在高速时钟下,如果把这部分设置都放置RCC_LSI()之后,则会卡死,所以只将RTC_WakeUpCmd(ENABLE)放在RCC_LSI()函数之后。
halt()或wfi()模式被RTC中断唤醒后,切换回高速内部时钟:
void RCC_HSI(void)
{
CLK_HSICmd(ENABLE);
CLK_SYSCLKSourceConfig(CLK_SYSCLKSource_HSI);
while(CLK_GetFlagStatus(CLK_FLAG_HSIRDY)==RESET);
CLK_SYSCLKSourceSwitchCmd (ENABLE);
if(CLK_GetSYSCLKSource()==CLK_SYSCLKSource_HSI)
{
CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_1);
}
}
在尝试直接从LSI切换到HSI失败时,STLINK连接MCU发生错误:
Failed to get execution status: SWIM error [30004]: Comm timeout 。因为调试过程中发生的,不存在硬件的突然异常,这种连接错误只能归因于MCU系统时钟没有工作,在该例中是由于时钟没有正常过渡,在调试中LSI到HSI切换时钟时发生,根据网上获得的一些线索可能是与寄存器操作的-“|”或-有关系。
在利用IAR for STM8 开发的过程中,如果工程较大结构层次较复杂,或者是经常改换文件名,会导致软件崩溃:
Fatal Error[Pe1696]: cannot open source file "stm8l15x_pwr.h",由于IAR软件的崩溃,原本正常的工程一下子报了很多此类的错误。只能重新添加引用文件夹了。
还有一类错误:
Fatal error: Unknown exception in driver (SD1) Session aborted!
网上可以查到的答案是因为IAR没与Texas Instruments在同一个系统盘下导致的,但这也是突发性的,应该不涉及到安装目录的问题,工程完善后这个问题也就奇怪消失了。
- STM8->RCC
- RCC
- RCC
- STM8
- RCC Warmup
- rcc update
- STM32->RCC
- STM8基础
- STM8 UART2
- STM8基础
- STM8串口
- stm8 clock
- STM8常见问题
- STM8 UART
- STM8 PWM
- STM8 ADC
- stm8 Slave
- STM8->EXTI
- VM10安装ubuntu16.04
- jquery分页插件pagination.js的使用
- Disruptor 写入 Ringbuffer
- 6月22日云栖精选夜读:业界首个非侵入式热修复方案Sophix重磅推出_颠覆移动端传统更新流程!
- tensorflow:自定义op简单介绍
- STM8->RCC
- 解决bootstrap多模态框跳转时页面左移问题
- 经典遮罩滚动条问题
- 用空格缩进的程序员赚钱更多吗?
- String、StringBuffer、StringBuilder的区别
- QT4第一次复习——思维导图
- Disruptor之从Ringbuffer读取
- Java--transient
- Dev 控件绑定的数据源批量操作应避免自动刷新