Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Программирование встроенных приложений STM23F10xxx_Keil_uVision-4

.pdf
Скачиваний:
32
Добавлен:
06.01.2021
Размер:
2.41 Mб
Скачать

СПБГУАП группа 4736 / https://new.guap.ru

<(/ 84 P( 8( IWDG.

‰$)+ $# + + $ $+ $ $) qr STM32. } $# $ $]$ $)

>$) = (LSI).

IWDG->KR (O() ,6)

r >

< +$ , ) ) $ >

0 x 0000 AAAA

7$ (=) IWDG

0 x 0000 5555

} ) $ * : =$

 

IWDG_PR IWDG_RLR

0 x 0000 CCCC

.$ IWDG

IWDG->PR (O() (0 (,$) 0(,( 1 4)

000: fIWDG = fLSI /4

001: fIWDG = fLSI /8

010: fIWDG = fLSI /16

011: fIWDG = fLSI /32

100: fIWDG = fLSI /64

101: fIWDG = fLSI /128

110: fIWDG = fLSI /256

111: fIWDG = fLSI /256

> ), > >$ fLSI # $ 32 40 G:

IWDG->RLR (O() ( (/ ) E/ T P( ) 8()

RL[11:0] – >, = # $>% > + $ =$ IWDG->KR

> 0 x 0000 AAAA. ( >% > $# = + 7 9, . .

)>.)

IWDG->SR (O() E IWDG)

ˆ Œ 0 1 $ $ $7$)$ ) $ $ .

37

СПБГУАП группа 4736 / https://new.guap.ru

Œ 7

‰ >

0

PVU

1: r : =$ ) IWDG->PR

1

RVU

1: r : =$ ) IWDG->RLR

• 7 ) = $ $ , $ :$$ 7 ) 7] >

IWDG->PR IWDG->RLR. }, ] 7. 6

$ Keil-4

 

#$ .

 

 

 

 

 

void IWDG_Tim(void) // c $# = + 1,0 $ .

 

 

{

// 8 9 $] : F F% + 7$ BKP.

 

 

 

 

 

 

RCC->APB1ENR |= RCC_APB1ENR_BKPEN; // 0x08000000.

 

 

/*

// 6 > = LSI.. O 5 ( 5(/ L ) 5,.

 

 

 

RCC->CSR |= RCC_CSR_LSION;// 0x00000001

 

 

 

// }# > = LSI.

 

 

 

while((RCC->CSR & RCC_CSR_LSIRDY)==0); // 0x00000002.

*/

 

 

// 8 9 $ * : IWDG_PR IWDG_RLR

 

 

 

IWDG->KR=0x00005555;

 

 

 

// r O*. = =256.

 

 

 

IWDG->PR=0x00000006;

 

 

 

// c = # > 156.

 

 

 

IWDG->RLR=156;

 

 

 

// .$ $# + +.

 

 

} //

IWDG->KR=0x0000CCCC;

 

 

-----------------------------------------------------

 

 

int main(void)

 

 

{

int a= 2000000;

 

 

 

 

 

//

SystemInit (); // < STM32F100 .

 

 

 

InitAll(); // ‰$+ .

 

 

 

IWDG_Tim(); // c $# = + 1,0 $ .

 

 

 

while(1)

 

 

 

{

 

 

 

if(a>0)

 

 

 

{

 

 

 

GPIOA->BSRR =GPIO_BSRR_BR8; // PA8="0".

 

 

 

a--;

 

 

 

IWDG->KR=0x0000AAAA; // c = $# = +.

 

 

}

 

 

 

else

 

 

 

{

 

 

GPIOA->BSRR =GPIO_BSRR_BS8; // PA8=+3,36.

//‰ = $# = +, >

//= $+ $ $).

}

}

}

38

СПБГУАП группа 4736 / https://new.guap.ru

+ 4 P( 8( WWDG.

} )+ $# + + $ >$ $+ $ $) qr STM32 $ $ $= $] : + 9 ) PLCK1. c $ WWDG

7] 9 = $] ::

RCC->APB1ENR |= RCC_APB1ENR_WWDGEN; // 0x00000800

} )+ $# + + $ $9 + $+ : =

$= $# = +. c$ :, $# + + > $> 7 = $7$ $ $ $> > $ 0x40 0x3F, . . = $7$)$ 7 T6, # $ $ $> 7, . = $# WWDG_CR[T6-T0] 7 9 $# =

WWDG_CFR[W6-W7].

} )+ $# + + $ $7 + 6-7 )+ )> F + $> >,

)+ $]$ $= PCLK1 > 12-7 )+ )+

( >$ PCLK1 4096). Š = $ 2 )]

7, ) # = +9 = >$)

1, 2, 4 8. • 7 ) ]$ 6 7 ] =$ WWDG_CFR.

Ž 7, $7 ) = $# = + $

) #:

Twwdg = Tpclk1 x 4096 x 2^(WDGTB) x (( (/ ) EP (8 ( / ( ( – 0x3F)

39

СПБГУАП группа 4736 / https://new.guap.ru

WWDG->CR (O() E ,( 1 WWDG) $ $ $7$ - 0x00, 7 7 (WDGA) $ $ “1”, $) $) > $ .

ˆ

‰ >

0

T0

>% > $# = +.

1

T1

6 >, + $ )>.

2

T2

c ] $ $ 0x40 $ $ 0x3F *$

3

T3

$7$. c ) $> + $ , . . =

4

T4

WWDG_CR[T6-T0] > WWDG_CFR[W6-W0] 7 #

 

 

$* $7$.

5

T5

6

T6

 

7

WDGA

1: $ WWDG. }$ #.

8-31

-

8

WWDG->CFR (O() D )E : WWDG) $ $ $7$ - 0x00, 7 9

(EWI)

$ $ “1”, $) $) > $ .

ˆ

‰ >

0

W0

6 ] = : 7.

1

W1

 

2

W2

 

3

W3

 

4

W4

 

5

W5

 

6

W6

 

7

WDGTB0

< )+ )+ >$)

8

WDGTB1

$] : 1, 2, 4, 8.

9

EWI

1: 8 9 ) $# $>% > >

 

 

0x4F. (t$ 7 $>% > 7 ),

 

 

$# > 0x3F $% + % $7$.)

10-31

-

8

WWDG->SR (O() 1 1 WWDG) $ $ $7$ - 0x00, 7 0 (EWIF)$ > $ “0”.

ˆ

‰ >

0

EWIF

a = ). Š$ $ 1” ( $

 

 

9 ) $# > 0x40),

 

 

$7$)$ 0=.

1-31

-

8

S 7 7T 1 5,$ 81 BKP.

6 $ $ $ 16-7 )] =$ ( $9 ]

] ] =$ 42), ) * : O =$

$>$ }.Š. ‘ F$ ] ) # $ , =, $ “1”RCC->BDCR[BDRST], , $ ] 9 =

9$ (TAMPER / RTC / PC13). 6 ] + 7 )

= >$= O ] $ $7) 7 #

9$ , > ) >$ =$ $ . Ž # #

40

СПБГУАП группа 4736 / https://new.guap.ru

), qr ) F ) +$

7 # 9$ .

c > $ F F% + 7$ 7] 9

$] : % 9 ):

RCC->APB1ENR |= RCC_APB1ENR_BKPEN; // 0x08000000

< 7] 9 $ BKP RTC:

PWR->CR |= PWR_CR_DBR; // 0x0100

t$ $ $ $ $# BKP RTC, :$7

+9 $ :

PWR->CR &= ~PWR_CR_DBR; // 0xFEFF

BKP->DRx (S 7 7T 4( () 4 0 49) (x=1 - 42) 8 =$) > )

] $] )], ) 7]$ = 7) > # ).

BKP->RTCCR (O() , 5 ( ,$) (8() $ $ $7$ - 0x0000, 7 ) $) > $ .

ˆ

‰ >

0

CAL0

6 > 7 >$ = RTC.

1

CAL1

• > ) >$ $ , ) 7

2

CAL2

= ) 2²º $ $] :

3

CAL3

>$ .

4

CAL4

 

5

CAL5

 

6

CAL6

 

7

CCO

6)] 7 >$ .

 

 

0: ‰ O**.

 

 

1: ‰ ) TAMPER $ $ >$+ $

 

 

fRTC_clk / 64.

8

ASOE

Š )] 7 $ .

 

 

0: ‰ O**.

 

 

1: 6 $ $ $ $ 7 ASOS )] TAMPER

 

 

+$ $ 7 (1 $ ) $) $).

9

ASOS

6)7 $= ( $ $ 7 ASOE).

 

 

0: ˆ.

 

 

1: ) $).

10-15

-

8

BKP->CR (O() E ,( 1 BKP) $ $ $7$ - 0x0000, 7 ) $)

> $ .

ˆ

‰ >

0

TPE

6)7 = ] = $= O$= $7$

 

 

F F% )] =$ TAMPER.

 

 

0: c TAMPER=”1” $] $7$ F F% )] =$ .

 

 

1: c TAMPER=”0” $] $7$ F F% )] =$ .

1

TPAL

8 9 $ ] TAMPER O$= $7$

 

 

F F% )] =$ .

41

СПБГУАП группа 4736 / https://new.guap.ru

 

 

0: . F $ ] TAMPER O$= $7$

 

 

F F% )] =$ . (TAMPER / PC13 $ $

 

 

$] RTC / ).)

 

 

1: †$ TAMPER O$= $7$

 

 

F F% )] =$ BKP->DRx.

2-15

-

8

BKP->CSR (O() E ,( 1 E BKP) $ $ $7$ - 0x0000, 7 )

9 (TIF) 8 (TEF) $) >, 7 ) 1 (CTI) 0 (CTE) –

$ , 7 2 (TPIE) $ >, $ .

ˆ

 

‰ >

 

0

CTE

1: 7$ * = TEF () TAMPER).

1

CTI

1: 7$ * = TIF ($7) TAMPER).

 

2

TPIE

8 9 ) TAMPER.

 

 

 

 

 

0: c ) F.

 

 

 

 

 

 

 

1: c ) TAMPER 9.

 

 

3-7

-

8

 

 

 

 

 

8

TEF

a = $7) TAMPER. Š$ $

 

 

7 # = ] TAMPER, $7$)$

 

 

= $ “1” 7 CTE.

 

 

 

 

0: ‰ = $= ] TAMPER.

 

 

1: }7 # )+ ] TAMPER.

9

TIF

a = ) TAMPER. Š$ $ , $ 7 #

 

 

)+ ] TAMPER ) TAMPER

 

 

9 (TPIE=”1”). 7$)$ =, $ “1”

 

 

7 CTI $7$ 7 TPIE.

 

 

 

 

 

0: ‰ = $= ] TAMPER.

 

 

1: }7 # ) TAMPER.

 

 

10-15

-

8

 

 

 

 

 

RCC->BDCR (O() E ,( 1 BKP 9 / : RTC) $ $ $7$ - 0x00000000. ˆ 1 (LSERDY) $ $ $7$)$ ,$ >, $) 7 ) $) > $ .

ˆ

 

‰ >

 

0

LSEON

6 > 9 = : = LSE = 32,768 G:.

 

 

0: ) >. 1: >.

 

 

 

 

 

1

LSERDY

$ = LSI RC = 32 - 40 G:.

 

 

0: LSE = 7 =.

 

 

 

 

 

1: LSE = F = 7.

 

2

LSEBYP

†= = LSE 32,768 G: = )

 

 

0: 8 # 7 ) = ).

 

 

 

 

 

 

1: G LSE # =.

 

 

 

^ 8( (: † O 7 # $ LSEON=0.

3-7

-

8

 

 

 

 

 

8

RTCSEL0

6)7 $> $] : >$ :

 

9

RTCSEL1

00: . 01: LSE 32,768 G:. 10: LSI 32-40 G:. 11: fHSE/128.

 

 

^ 8( (: c$ )7 $> $] : RTC

 

 

O 7 ) # % $7$ ( $+

 

 

7 BDRST)

 

 

 

 

 

10-14

-

8

 

 

 

 

 

42

СПБГУАП группа 4736 / https://new.guap.ru

15

RTCEN

c = )+ $ $ $] : >$ RTC.

 

 

0: ] : RTC ) >.

 

 

1: ] : RTC F.

16

BDRST

c = )+ $7$ =$ F F% + 7$ BKP.

 

 

0: ‰ +$ .

 

 

1: 7$ $# =$ BKP.

17-31

-

8

V 4 ( ,$) (8( RTC.

d$) = $# ) $ ) , >

$] ] 7$ $7$ ] # O =$7 #

> $= . (c ) >

7 $7$)$ .) d$) = = = ): #$ , $ , $>% >

$7 ) 7 (17- 9 ] ) +).

] : RTC # $F$ $ >$) : = = HSE

% + 128, 9 = : = = LSE 32,768 G:, #

= = LSI RC 32-40 G:.

c > 7 ) $ RTC 7] 9 $] : $

) , $# ) =$) RTC RCC_BDCR, #

9 $] : $ $) O (PWR), > 7) $

=$ PWR_CR:

RCC->APB1ENR |= RCC_APB1ENR_BKPEN | RCC_APB1ENR_PWREN|; // 0x18000000.

< 7] )7 F + =. . =$) RCC->BDCR (

. F F% 7$ BKP”) PWR->CR ( “ $

O PWR”).

c = 7 9 = : = = LSE 32,768 G::

//^ 8( 45 (' () :( ) )( ( LSE 32,768 u:. PWR->CR |= PWR_CR_DBR; // O / ('$ /$ BKP RTC (0x0100) RCC->BDCR |= RCC_BDCR_LSEON; // 3 ,6$ LSE )( (. (0x00000001)

//+P 0 ( ) LSE 5 (.

while((RCC->BDCR & RCC_BDCR_LSERDY) != RCC_BDCR_LSERDY); // 0x00000002

…………………………………………………………………………

// ^ ( 59 0 8 / ($ /$ BKP RTC PWR->CR |= PWR_CR_DBR; // 0xFEFF

.$ LSI RC = 32 – 40 G: $F$ $ $+

$ $F ] 7 =$ RCC->CSR ( 8 # ) O =$7 # $ $ $7$ ):

// ^ 8( 45 E ( () LSI RC )( ( 32 – 40 u:. RCC->CSR |= RCC_CSR_LSION; // 3 ,6$ LSI )( (. (0x00000001) // +P 0 ( ) LSI 5 (.

while((RCC->CSR & RCC_CSR_LSIRDY) != RCC_CSR_LSIRDY); // 0x00000002 PWR->CR |= PWR_CR_DBR; // O / ('$ /$ BKP RTC (0x0100)

…………………………………………………………………………

// ^ ( 59 0 8 / ($ /$ BKP RTC PWR->CR |= PWR_CR_DBR; // 0xFEFF

43

СПБГУАП группа 4736 / https://new.guap.ru

6 :$$ 7 ) # 7]$ ) > )7 )+ = $] : >$ = RTC:

// 34 ,6 ( ( (' () :( ) )( ( LSE 32,768 u:.

RCC->BDCR |= RCC_BDCR_BDRST; // `$ 5 5 BDRST. (0x00010000) RCC->BDCR &= ~RCC_BDCR_BDRST; // .5$ 5 BDRST. (0xFFFEFFFF)

// 34 ,6 ( ( E ( () LSI RC )( ( 32 – 40 u:

RCC->CSR &= ~RCC_CSR_LSION; // 3 ,6$ LSI )( (. (0xFFFFFFFE)

RTC->CRH (. ' () E ,( 1 RTC) $ $ $7$ - 0x0000.

ˆ ) $) > $ . (.$ $ $ 9

) F + :, . . = RTC_CRL[RTOFF]=1.)

ˆ

‰ >

0

SECIE

Š ) $ .

 

 

0: . F.

 

 

1: 8 9.

1

ALRIE

Š ) 7.

 

 

0: . F.

 

 

1: 8 9.

2

OWIE

Š ) .

 

 

0: . F.

 

 

1: 8 9.

3-15

-

8

44

СПБГУАП группа 4736 / https://new.guap.ru

RTC->CRL (‡, 0' () E ,( 1 RTC) $ $ $7$ - 0x0020.

ˆ 5 (RTOF) $ >, 7 4 (CNF) $ > $ ,$) 7 ) $) > $ 0” - $7$ . (.$ $

$ 9 ) F + :, . . = RTC_CRL[RTOFF]=1.)

ˆ

‰ >

0

SECF

a = $ . (c = , >

 

 

) ) > $# = RTC_CNT 1 $ ).

 

 

Š$ $ , $7$)$ =

 

 

0: RTC_CNT 7 #.

 

 

1: # RTC_CNT >$ 1 $ .

 

 

(ˆ ) ) 7, $ 9.)

1

ALRF

a = 7 ($ RTC_CNT $ RTC_ALR).

 

 

Š$ $ , $7$)$ =

 

 

0: 7 #.

 

 

1: }7 # $ .

 

 

(ˆ ) ) 7, $ 9.)

2

OWF

a = $>% > RTC. Š$ $ ,

 

 

$7$)$ =.

 

 

0: c 7 #.

 

 

1: }7 # .

 

 

(ˆ ) ) , $ 9.)

3

RSF

a = $] : =$ RTC_CNT, RTC_ALR RTC_PRL.

 

 

Š$ $ , $7$)$ =. c$

 

 

7 + :, .>. $ $ $] :

 

 

7] = $7$ O * =, #$ =

 

 

$ , > 7) 7$ , > =$) RTC $] ).

 

 

6 $> $> ) )] = 7) 9 7.

 

 

0: 8 =$) $]$ .

 

 

1: 8 =$) RTC $]$ .

4

CNF

a = * = : =$ RTC_CNT, RTC_ALR RTC_PRL.

 

 

0: 6)] # * = :. c ] “1” “0”

 

 

$F$ $ $ : RTC.

 

 

1: 8 # * = :, # $#

 

 

=$ RTC_CNT, RTC_ALR RTC_PRL.

5

RTOF

ˆ > : =$] RTC.

 

 

0: : $ =$ 9. .F

 

 

$ =$) RTC.

 

 

1: : $ =$ 9, d$) = ) )

 

 

> + ).

6-15

-

8

RTC->PRLH (. ' () ( (/ ) E/ (0 (,$) 0(, (,1 RTC)

RTC->PRLL (‡, 0' () ( (/ ) E/ (0 (,$) 0(, (,1 RTC)

45

СПБГУАП группа 4736 / https://new.guap.ru

f TR_CLK = f RTCCLK / (PRL[19:0]+1)

< > f TR_CLK = 1 G: f RTCCLK = 32,768 G: $ $ PRL[19:0] = 0x7FFF

.$ PRL[19:0] = 0x0000 0000 $ !

RTC->DIVH (^ (0 (,$4 0(, (,$ 4 RTC – ' ())

RTC->DIVH (^ (0 (,$4 0(, (,$ 4 RTC – 8, 0' ())

c )+ RTC_DIV % $>% 9. c ] = $ $ 0x00000 0xFFFFF *$ (> 1) $>% > RTC_CNT, # >$ $F$ $ = =

RTC_RRL. b >$ = $F$ $ # $ :

RTC_RRL RTC_CNT.

RTC->CNTH (. T ( E 0 RTC – () ' 9 / 10)

RTC->CNTL (. T ( E 0 RTC – () 8, 0' 9 / 10)

>% > $F$ > $= >

$ . †$] = 7•%, $>% # $ $ # 136 . c $ ), >$), . . # $F$ $ =.

d 7] $> 9 + =$ (RTC->CNTL), $9 + (RTC- >CNTH). < 7 ) $ 9 $), $ $ > =$ RTC->DIV.

RTC->ALRH (. ' () 5E0 ,$ RTC)

RTC->ALRL (‡, 0' () 5E0 ,$ RTC)

6 =$) 7 $)$ >, $ + $ $# )

$>% > $ 7 $ * = RTC->CRL[ALRF] $= 9

) Œ17 (t$ $ 7 RTC->CRH[ALRIE]).

46