
Программирование встроенных приложений STM23F10xxx_Keil_uVision-4
.pdf
СПБГУАП группа 4736 / https://new.guap.ru
,,( 18 ) 0 E 81 DMA.
57

СПБГУАП группа 4736 / https://new.guap.ru
DMA->ISR (O() 1 1 ( 4 1 DMA)
‰ |
‰ > |
7 |
|
GIFx |
a = = 7 = ) Œ x. Š$ $ , |
|
$7$)$ $ “1” $ $F + DMA_IFCR. |
|
“1” – $ $7) TE, HT TC. |
58

СПБГУАП группа 4736 / https://new.guap.ru
TCIFx |
a = > > (TC) Œ x. Š$ $ |
|
, $7$)$ $ “1” $ $F + |
|
=$ DMA_IFCR. |
|
“1” – $ $7) TC (> >). |
HTIFx |
a = > ) )] (HT) Œ x. Š$ $ |
|
, $7$)$ $ “1” $ $F + |
|
=$ DMA_IFCR. |
|
“1” – $ $7) HT ( )] ). |
TEIFx |
a = 9 7 > (TE) Œ x. Š$ $ , |
|
$7$)$ $ “1” $ $F + =$ |
|
DMA_IFCR. |
|
“1” – $ $7) TE (9 7 > )]). |
DMA->IFCR (O() 5 D, ) DMA)
‰ |
‰ > |
7 |
|
CGIFx |
“1” – $7$ * = DMA->ISR[GIFx, TCIFx, HTIFx, TEIFx]. |
CTCIFx |
“1” – $7$ * = DMA->ISR[TCIFx]. |
CHTIFx |
“1” – $7$ * = DMA->ISR[HTIFx]. |
CTEIFx |
“1” – $7$ * = DMA->ISR[TEIFx]. |
DMA->CCRx (O() D )E : , DMA p x) $ $ $7$ - 0x0000 0000. ˆ ) $) > $ .
ˆ |
‰ |
‰ > |
0 |
EN |
0: ) >. |
|
|
1: >%. |
1 |
TCIE |
0: ) (TC). |
|
|
1: 9 ) (TC) > >. |
2 |
HTIE |
0: ) (HT). |
|
|
1: 9 ) (HTC) > > |
|
|
) )]. |
3 |
TEIE |
0: ) (TE). |
|
|
1: 9 ) (TE) $> 9 7 >. |
4 |
DIR |
‰ >. |
|
|
0: * + = $+$ . |
|
|
1: * + $+$ . |
5 |
CIRC |
6)7 # : >$+ 7 ). |
|
|
0: : >$ > . |
|
|
1: : >$ > 9. |
6 |
PINC |
c F $ * + = $+$ . |
|
|
0: $ * + = $+$ F%. |
|
|
1: 9 (>) $ * + = |
|
|
$+$ . |
7 |
MINC |
c F $ . |
59

СПБГУАП группа 4736 / https://new.guap.ru
|
|
0: $ F%. |
|
|
1: 9 (>) $ . |
8 |
PSIZE0 |
6)7 )] * + = $+$ : |
9 |
PSIZE1 |
00: 8 7, 01: 16 7, 10: 32 7, 11: . |
10 |
MSIZE0 |
6)7 )] : |
11 |
MSIZE1 |
00: 8 7, 01: 16 7, 10: 32 7, 11: . |
12 |
PL0 |
6)7 : |
13 |
PL1 |
00: +, 01: 16 $+, 10: )$+, 11: > )$+. |
14 |
MEM2MEM |
8 9 * : . |
|
|
0: F. |
|
|
1: 9 * : . |
15-31 |
- |
8 |
DMA->CNDTRx (O() 5ŠT8 ( (0 ,E DMA p x)
Š )$ >$ )] )] (7 +, $ , + )] $ ). c$ >
> =$ $ $ $) $ . t= $#
>$ $ (9$ ). t$ $ : >$
7, $ 7 =$ 7 >$ = # >
>.
DMA->CPARx (O() 0 ( ( D( ) E , DMA p x)
6 =$ )$ $ * + = $+$ . c$ > DMA-7 $# =$ # $ . c $) 16-7 )] )]
PA[0] =$ , > 32-7 )] )] ) PA[0 1] =$ .
DMA->CMARx (O() 0 ( 81 , DMA p x)
6 =$ )$ 7 )+ $ . c$ > DMA-7 $#
=$ # $ . c $) 16-7 )] )] PA[0] =$ , > 32-7 )] )] ) PA[0 1] =$ .
^ 8( 5 4 DMA Keil:
int main(void)
{
int My1[10]={1,2,3,4,5,6,7,8,9,10}; // • D 8 :. int My2[10]; // ^ ,E (,$ D 8 :.
…………………………………..
RCC->AHBENR |= 0x00000001; // O / ('$ 9 / : 6 1-) , DMA. DMA1_Channel1->CCR = 0x00007AC0; // < ( (0 81$-81$. DMA1_Channel1->CPAR =(unsigned int)My1; // C0 ( D 8 :.
60

СПБГУАП группа 4736 / https://new.guap.ru
DMA1_Channel1->CMAR = (unsigned int)My2; |
// C0 ( ,E (,1 D 8 :. |
|
DMA1_Channel1->CNDTR = 10; |
// +5ŠT8 ( (0. |
DMA1_Channel1->CCR |= 0x00000001; // S E DMA.
while((DMA1->ISR & 0x00000001)!=0x00000001); // +P 0 ( 1 DMA-58(.
………………………………….
}
C , )-: D ( 5 / (,$ ADC.
b•c $ 12-# ) 18 $)] , 16
)] $ $ 9 ] $=. < $9 ]$ $) $$) > ) $> = #. b•c
7 )] # 7: ()E,1 4 P( 4. 6 $ $ b•c
# ] 4 8. 8 7 # 7) )
. d$ 7 %$ # = .
61

СПБГУАП группа 4736 / https://new.guap.ru
O(P 8 ()E,1 49 ( 5 /.
6 O # %$ = , 7 7 )]
$ $ . 8 # = 7 F$
$)+ 12-)+ =$ = + = ). c$ $
7 + # 7) : >$+ >$+, . . 7 $ $$+. G = )] 7 + $ $ =
$= + 1-+ 9 ] ) + (EXT1). : $] 7 b•c1 $ DMA. <
: = $ $ )
9 c<c, # # : = 7 * 7 DMA.
O(P 8 P( 49 ( 5 /.
6 $ $ 7 + # + = ) # ]
> ) %] , $ )$ =. $ $ O + = ) $ $ : * = )] 7 +, ,
> # )] 7 +, 7$ . 8
7 F$ 4 12-)] =$ )] # + = ). 6 =$) $: # = 12- >,
>$ )>$ 7 b•c. t$ )> $ $ : ), =$ # = 7
$ .
+ 4 8.
} )+ > = = $] b•c
)] ) + ). $
: $ 7 b•c $ $# ) =$
.
ADC->SR (O() 1 1 ADC). $ $ $7$ - 0x0000 0000. ˆ ) 0 - 4 $) > $7$ ( $ “0”).
ˆ |
‰ |
‰ > |
0 |
AWD |
a = = . Š$ $ “1” , |
|
|
$ # ] )9 ), |
|
|
% ) =$] ADC_LTR ADC_HTR. |
1 |
EOC |
a = > 7. Š$ $ “1” , |
|
|
> = = = 7 ( |
|
|
= )] 7 ], # )]). |
2 |
JEOC |
a = > # = 7. |
|
|
Š$ $ “1” .. |
62
СПБГУАП группа 4736 / https://new.guap.ru
3 |
JSTRT |
a = $ # = 7. Š$ $ |
|
|
“1” $ # = 7. |
4 |
STRT |
a = $ = = = 7. |
|
|
Š$ $ “1” $ = = |
|
|
= 7. |
5-31 |
- |
8 |
^ 8( (: 7$ * = # $F$ $ = ) $ $ .
ADC->CR1 (O() E ,( 1 C]^) $ $ $7$ - 0x0000. ˆ )$) > $ .
ˆ |
‰ |
‰ > |
0 |
AWDCH0 |
6)7 = ( $ 7 AWDSGL=1). |
1 |
AWDCH1 |
00000: r Œ 0. |
2 |
AWDCH2 |
00001: r Œ 1. |
3 |
AWDCH3 |
……… |
4 |
AWDCH4 |
10001: r Œ 17. |
5 |
EOCIE |
8 9 ) > $= : |
|
|
b•c (> 7). |
|
|
0: . |
|
|
1: 8 9 ) EOC. |
6 |
AWDIE |
8 9 ) $= = |
|
|
( > )9 $) ). |
|
|
0: . |
|
|
1: 8 9 ) AWD. |
7 |
JEOCIE |
8 9 ) 9 # = |
|
|
7. |
|
|
0: . |
|
|
1: 8 9 ) JEOC. |
8 |
SCAN |
8 9 $ ) . |
|
|
0: . |
|
|
1: 8 9 $ . |
9 |
AWDSGL |
6)7 = $ . |
|
|
0: 6$ ) |
|
|
1: Ž )+ 7 AWDCH[4:0]/ |
10 |
JAUTO |
b >$ ()) 7 |
|
|
# )] . |
|
|
0: >$ 7. |
|
|
1: 9 >$ 7. |
11 |
DISCEN |
<$)+ ( $)+, )$)+ ) # |
|
|
7 + = )] . |
|
|
0: $)+ # 7 ). |
|
|
1: 9 $)+ # 7 ). |
12 |
JDISCEN |
<$)+ ( $)+, )$)+) # |
|
|
7 + # )] . |
|
|
0: $)+ # 7 ). |
|
|
1: 9 $)+ # 7 ). |
13 |
DISCNUM0 |
r >$ , $)] # = )] |
14 |
DISCNUM1 |
7 +: |
15 |
DISCNUM2 |
000: 1 . 001: 2 . …. . …… 111: 8 . |
16-21 |
- |
8 |
63
СПБГУАП группа 4736 / https://new.guap.ru
22 |
JAWDEN |
|
0: } )+ >% # = . |
|
|
|
|
1: } )+ >% # . |
|
23 |
AWDEN |
|
0: } )+ >% = = . |
|
|
|
|
1: } )+ >% = . |
|
24-31 |
- |
|
8 |
|
^ 8( (: 6 ] $ b•c 7 ) 16-19 $ $ |
||||
$+ $ $+ 7 ) ] b•c. |
|
|||
ADC->CR2 (O() E ,( 1 C]^) $ $ $7$ - 0x0000. ˆ ) |
||||
$) > $ . |
|
|||
ˆ |
‰ |
|
‰ > |
|
0 |
ADON |
6 > b•c. |
|
|
|
|
0: c b•c # # = O = 7. t$ |
||
|
|
$] 7 7, ) ]. |
||
|
|
1: 8 7 b•c 9. |
|
|
1 |
CONT |
8 # 7. |
|
|
|
|
0: } )+. |
|
|
|
|
1: ‰ ) )+. |
|
|
2 |
CAL |
.$ 7. Š$ $ =, $7$)$ |
||
|
|
9 7. |
|
|
|
|
1: .$ 7. |
|
|
3 |
RSTCAL |
c = =$ 7. ˆ $ $ |
||
|
|
=, $7$)$ “0” $ =. |
||
|
|
1: c = =$) 7. |
(8$ ) |
|
|
|
$ >.) |
|
|
4-7 |
- |
|
8 |
|
8 |
DMA |
8 9 7 ) DMA. |
|
|
|
|
0: . F. |
|
|
|
|
1: 8 9. |
|
|
9-10 |
- |
|
8 |
|
11 |
ALIGN |
6) )]. |
|
|
|
|
0: 6 (9 7 $ $ 9 >). |
||
|
|
1: 6 (9 7 ) $ ). |
||
12 |
JEXTSEL0 |
6)7 $> 9 = $ 7 |
||
13 |
JEXTSEL1 |
# )] . |
|
|
14 |
JEXTSEL2 |
000: Ž + 1 TRGO. |
|
|
|
|
001: Ž + 1, $ Œ 4. |
|
|
|
|
010: Ž + 2 TRGO. |
|
|
|
|
011: Ž + 2, $ Œ 1. |
|
|
|
|
100: Ž + 3, $ Œ 4 |
|
|
|
|
101: Ž + 4 TRGO. |
|
|
|
|
110: EXTI 15. |
|
|
|
|
111: ˆ JSWSTART. |
|
|
15 |
JEXTTRIG |
8 9 $ 7 # )] |
||
|
|
9 $=. |
|
|
|
|
0: .. |
|
|
|
|
1: 8 9. |
|
|
16 |
- |
|
8 |
|
17 |
EXTSEL0 |
6)7 $> 9 = $ 7 = )] |
||
18 |
EXTSEL1 |
. |
|
|
19 |
EXTSEL2 |
000: Ž + 1, $ Œ 1. |
|
|
|
|
001: Ž + 1, $ Œ 2. |
|
64

СПБГУАП группа 4736 / https://new.guap.ru
|
|
010: Ž + 1, $ Œ 3. |
|
|
011: Ž + 2, $ Œ 2. |
|
|
100: Ž + 3 TRGO. |
|
|
101: Ž + 4, $ Œ 4. |
|
|
110: EXTI 11. |
|
|
111: ˆ SWSTART. |
20 |
EXTTRIG |
8 9 $ 7 = )] |
|
|
9 $=. |
|
|
0: .. |
|
|
1: 8 9. |
21 |
JSWSTART |
.$ 7 + # )] . |
|
|
1: .$ 7 # )] . # |
|
|
$ $ ) $ $ 7 $7$)$ |
|
|
“0”(# > F$ =). 6 7 + ] JEXTSEL[2:0] |
|
|
# 7) )7 $> $ JSWSTART. |
22 |
SWSTART |
.$ 7 + = )] . |
|
|
1: .$ 7 = )] . # $ |
|
|
$ ) $ $ 7 $7$)$ “0” . 6 7 + ] |
|
|
EXTSEL[2:0] # 7) )7 $> $ SWSTART. |
23 |
TSVREFE |
1: 6 > ) ) UREF. |
|
|
^ 8( (: UREF – O # > |
|
|
). } # b•c 7 9, 7 |
|
|
$ $ # = + >$ VDDA. |
24-31 |
- |
8 |
ADC->SMPR1 (O() (8( ( 4 - 1)
ADC->SMPR2 (O() (8( ( 4 - 2)
8 =$) ADC->SMPR1 ADC->SMPR2 $ >$ 7
# = :
|
|
|
|
|
|
|
|
|
|
|
SMPx_2 |
SMPx_1 |
SMPx_0 |
f 7. |
|
SMPx_2 |
SMPx_1 |
SMPx_0 |
f 7. |
|
0 |
0 |
0 |
1,5 : |
|
1 |
0 |
0 |
41,5 :. |
|
0 |
0 |
1 |
7,5 : |
|
1 |
0 |
1 |
55,5 : |
|
0 |
1 |
0 |
13,5 :. |
|
1 |
1 |
0 |
71,5 : |
|
0 |
1 |
1 |
28,5 :. |
|
1 |
1 |
1 |
239,5 : |
|
|
|
|
|
|
|
|
|
|
65

СПБГУАП группа 4736 / https://new.guap.ru
ADC->HTR (O() ( 9 ( ) :4 ) 8)
ADC->LTR (O() P ( ) :4 ) 8)
6 $> )] ) > +, )] O ] =$], $7 ) )+
.
ADC->SQR1 (O() p 1 E ,( 1 ()E,1 ,(0 (,$ $6)
ADC->SQR2 (O() p 2 E ,( 1 ()E,1 ,(0 (,$ $6)
ADC->SQR3 (O() p 3 E ,( 1 ()E,1 ,(0 (,$ $6)
8 =$ |
ˆ ) |
|
‰ > |
SQR1 |
L[3:0] |
< = + + $ $ ( . . |
|
|
|
>$ 7 + :): |
|
|
|
0000: |
1 7. |
|
|
0001: |
2 7. |
|
|
………….. |
|
|
|
1111: |
16 7 +. |
66