找回密码
 注册
关于网站域名变更的通知
查看: 291|回复: 1
打印 上一主题 下一主题

STM32F103C8T6停机模式出了问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-1-8 10:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
最近搞低功耗,开始用睡眠模式,不太好。
7 R% Q4 g5 d% l1 S: [% W9 x8 X现在在整停机模式。; P4 H( w. @9 R6 S0 K
以前没搞过,所以发帖子询问一下,心里放心。# W0 S  b5 K: X* v
我程序里这么干的:- ^$ C0 k+ c& r  L; x4 b
初始化:
0 w* w( g# g2 S$ n2 U7 @3 h7 y1 ]Stm32_Clock_Init(2);CPU_Init();                     //CPU初始化               
4 z' [/ {5 A4 T6 {  k        VAR_Init();                                                //变量初始化) U4 i$ e# b0 Z( `& t* A
        
  K/ B, E' U" b        usart1_init(9600);               
5 `* Z! {9 I8 x1 z% D" B* h        NVIC_Init10();$ w* a  Q" D; _7 u- b' P+ x' R
        / K4 V5 o8 ~4 d0 p  W4 S' ]
        /* Enable PWR and BKP clock */
# M' ~' y4 \  X# n2 p7 F7 j  RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);6 ]- B( e( d5 g2 p
  /* Allow access to BKP Domain */
) u  R5 x4 b7 _( i( R7 t3 D0 S  PWR_BackupAccessCmd(ENABLE);
  b4 H2 N8 _$ F* _* v* T+ M+ ?* r6 F0 [' M. c

. ~1 M, A" i4 ^5 M3 l0 J+ T进入停机模式:
& q' [4 X5 ]; J5 w9 a+ D5 XPWR_EnterSTOPMode(PWR_Regulator_LowPower,PWR_STOPEntry_WFI);
% s6 z3 o. n( U6 K* z; Y  O7 P# f$ }( d3 e3 N% e
唤醒时,我这么干:% |8 ~) d$ w$ |3 M8 }
void EXTI3_IRQHandler(void)
- A& D2 @+ j/ S! q0 X{   
$ z3 h; D/ H+ [* S% T" k) U    long int i;5 I: g: _- N. _. a5 g: r
        * l3 C0 z0 {5 h. x. H) ~+ {7 E  ]2 D
    if(EXTI_GetITStatus(EXTI_Line3)!=RESET)                                //上升
$ w2 c1 \1 B8 g# z        {
# u, J" D  Y) E# s! x" V$ a1 |7 X- G0 B* |$ Z
                Stm32_Clock_Init(2);                    //16MHz4 b7 f6 T0 i4 ~( \/ W4 i1 X

' v7 |6 {% P, G; n, T                GPIO_ResetBits(GPIOA,GPIO_Pin_12);                //灯亮
5 V* m$ Z3 b) U: E2 m0 f2 r$ B% \9 k

; U; V& v0 l+ ]Stm32_Clock_Init(2);                    这个是重新配置时钟。
( V+ f" i" T7 K7 Z. G请问高手,我这么配置是正确的吧?谢谢!& g7 f( Z4 x% G2 v
' @* B* s; M9 f9 Q) U7 t

该用户从未签到

2#
发表于 2020-1-8 18:20 | 只看该作者
1) 103深度休眠模式没有尝试过; Q, T) G: H' w  `7 T
2)   以其它单片机的开发经验来说,你这样可能只是唤醒了MCU,但没有初始化相关外设,
! Q* c( ?: a0 J- I7 \. B  c3) 其它MCU的做法是,在唤醒一般运行的地方是睡眠的地方,所以在休眠程序段的下面紧接着做的是唤醒后的代码,比如初始化相关IO,相关外设等
) J0 q0 ]7 D( h4 t% W8 |3 ~4)   只能帮你到这了,回关有空了,也仔细研究一下STM32F103
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-24 09:36 , Processed in 0.093750 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表