
Программирование встроенных приложений STM23F10xxx_Keil_uVision-4
.pdf
СПБГУАП группа 4736 / https://new.guap.ru
SQR1-SQR3 |
SQx[4:0] |
‰ (0-17) > = )] )] |
|
x=1…16 |
7 +, = x – )+ >. |
|
|
‰: |
|
|
SQ1=00000, SQ2=00011, SQ3=10001, SQ4= 00001 . . |
|
|
>, > $ $ 7 7 7 +: |
|
|
0-+ , 3-+ , 17-+ , 1-+ . . |
ADC->JSQR (O() E ,( 1 P( ,(0 (,$ $6)
ˆ ) |
|
‰ > |
JL[1:0] |
< # + + $ $ ( . . >$ |
|
|
7 + :): |
|
|
00: |
1 7. |
|
01: |
2 7. |
|
10: |
3 7. |
|
11: |
4 7. |
JSQx[4:0] |
‰ (0-17) > # )] )] |
|
x=1…4 |
7 +, = x – )+ > ( > |
|
|
7 4). ‰: |
|
|
SQ1=00000, SQ2=00011, SQ3=10001, SQ4= 00001 >, > |
|
|
$ $ 7 7 7 +: |
|
|
0-+ , 3-+ , 17-+ , 1-+ . |
ADC->JDRx x=1..4 (O() 4 0 49 P( 49 ( 5 /)
8 =$) )] # )] 7 + = )$ $ $$ $ 7 ADC->CR2[ALIGN] . c$ : ($ .
=$) ADC->JOFR1 … ADC->JOFR4), $> : = >, 7 SEXT$ $ “1”:
67

СПБГУАП группа 4736 / https://new.guap.ru
ADC->JOFRx x=1..4 (8 ( : 4( () 4 P( 49 ,)
6 =$) ADC->JOFR1…ADC->JOFR4 $)$ >, >
7 # )] )>$ 7, ] F =$ =$] ADC->JDRx. • 7, =, , $ $=
> $ )] 4–20 b (4 b $ 0, O
7 7] )>$ >, $ $F 4 b). 8
F$ 7 =$) ADC->JDRx.
ADC->DR (O() 0 49 ()E,1 49 ( 5 /)
6 =$ $ $ $ ) = = 7. 6
$ $ $ $ 7 ADC->CR2[ALIGN] ) )$
] 9 ] 15 7 +. ‰ > F 7 ) $> )$ “0”.
^ 8( ,$/ 1 C]^ 0,1 0 ) ()E,1 ) ( 5 / 14/ 8 ( 4 1 6 ( ) : ,.
#include "stm32f10x.h" //-----------------------------------------------------
unsigned int x; //-----------------------------------------------------
void ADC_IRQHandler(void) // ^ ( 4 ( C]^.
{
ADC1->SR=0; // .5 D, ).
x=ADC1->DR; // ^$ (/E,$ ( 5 / 1 C]^.
}
//-----------------------------------------------------
int main(void)
{
//O / ('$ 9 / : 6 ADC1 (0x00000200). RCC->APB2ENR |=RCC_APB2ENR_ADC1EN;
NVIC->ISER[0] |= 0x00040000; // O / ('$ ( 4 1 ADC1 (IRQ18).
//`$ (, 8( 5 0,1 IRQ18, ( , ( 59 0 8.
NVIC->IP[18] |= 0x50;
//V ( 5 / 1 ( ) , (SPM1=7,5 : ,). ADC1->SMPR2 = 0x00000008;
//O / ('$ ( 4 ( 6 ( ) : , (EOCIE=1),
//,$/$ 0 , (P 8( ()E,1 49 ( 5 / (DISCEN=1). ADC1->CR1 = 0x00000820;
//3 ,6$ C]^ (ADON=1), / ('$ (' / E ()E,1 49
68

СПБГУАП группа 4736 / https://new.guap.ru
//, (EXTTRIG=1) E ( 5 SWSTART (EXTSEL=7). ADC1->CR2 = 0x001E0001;
//_, ,$ ()E,1 ,(0 (,$ = 1.
ADC1->SQR1 = 0x00000000;
ADC1->SQR2 = 0x00000000;
ADC1->SQR3 = 0x00000001; // • ,$/E(8 , C]^ p1 (9 8( 0 17). ADC1->CR2 |= 0x00400000; // S E C]^ (SWSTART).
……………………
}
] D-, ) 4 ( 5 / (,$ DAC.
• *-= )+ 7 $ 12 ), $ $7 *
$ )] #, >$ F$
(7 ] >$ - 9). |
Š $ (= +) |
$F$ $ ) $ $ |
($= + TRGO – $ . |
TIMx->CR2), =, $+ 7 SWTR. ‰ # )] •bc
$ * +:
69
СПБГУАП группа 4736 / https://new.guap.ru
DAC->CR (O() E ,( 1 DAC) $ $ $7$ - 0x0000. ˆ ) $)
> $ .
ˆ |
‰ |
|
‰ > |
0 |
EN1 |
6 > / ) > Œ 1. |
|
|
|
0: 6) >. |
1: r >%. |
1 |
BOFF1 |
†$ 7 * )] Œ 1. (ˆ * |
|
|
|
9 )] $ , = |
|
|
|
$ )9 O = 7.) |
|
|
|
0: ˆ * >%. 1: 6 > )] + 7 *. |
|
2 |
TEN1 |
0: .$ Œ 1 >. |
|
|
|
1: r Œ 1 F, . ), $* ) =$] |
|
|
|
DAC_DHRx >$ = #$ DAC_DOR1. |
|
3 |
TSEL1_0 |
6)7 $> $ 1: |
|
4 |
TSEL1_1 |
000: Timer 6 TRGO. |
|
5 |
TSEL1_2 |
001: Timer 3 TRGO. |
|
|
|
010: Timer 7 TRGO. |
|
|
|
011: Timer 5 TRGO. ( Timer 15 TRGO STM32F100xx) |
|
|
|
100: Timer 2 TRGO. |
|
|
|
101: Timer 4 TRGO. |
|
|
|
110: External line 9 |
|
|
|
111: c = )+ $ ($ . SWTRIG[SWTRIG2]). |
|
|
|
^ 8( (: $ O ] 7 >, $ TEN1=”1”. |
|
6 |
WAVE1_0 |
6)7 # 7 ) = = 1-= b•c. |
|
7 |
WAVE1_1 |
00: + = ) >. |
|
|
|
01: + = * 9. |
|
|
|
10 11: + = * # = + |
|
|
|
* ). |
|
|
|
^ 8( (: $ O ] 7 >, $ TEN1=”1”. |
|
8 |
MAMP1_0 |
q$ = $ 1-= . } ] |
|
9 |
MAMP1_1 |
) * = = # 9. |
|
10 |
MAMP1_2 |
0000: †$ 7 0, ] ) 1 7. |
|
11 |
MAMP1_3 |
0001: †$ 7 ) [1:0], ] ) 31 7. |
|
|
|
0010: †$ 7 ) [2:0], ] ) 7 7. |
|
|
|
0011: †$ 7 ) [3:0], ] ) 15 7. |
|
|
|
0100: †$ 7 ) [4:0], ] ) 31 7. |
|
|
|
0101: †$ 7 ) [5:0], ] ) 63 7. |
|
|
|
0110: †$ 7 ) [6:0], ] ) 127 7. |
|
|
|
0111: †$ 7 ) [7:0], ] ) 255 7. |
|
|
|
1000: †$ 7 ) [8:0], ] ) 511 7. |
|
|
|
1001: †$ 7 ) [9:0], ] ) 1023 7. |
|
|
|
1010: †$ 7 ) [10:0], ] ) 2047 7. |
|
|
|
>= 1011: †$ 7 ) [11:0], ] ) 4095 7. |
|
12 |
DMAEN1 |
6 > DMA 2-= •bc. |
|
|
|
0: 6) >. |
1: 6 >. |
13 |
DMAU |
8 9 ) ) DMA 1- •bc. |
|
|
DRIE1 |
0: .. |
|
|
& ,$ |
1: 8 9. |
|
|
STM32F100 |
|
|
14-15 |
- |
|
8 |
16 |
EN2 |
6 > / ) > Œ 2. |
|
|
|
0: 6) >. |
1: r >%. |
17 |
BOFF2 |
†$ 7 * )] Œ 2. (ˆ * |
70

СПБГУАП группа 4736 / https://new.guap.ru
|
|
9 )] $ , = |
|
|
|
$ )9 O = 7.) |
|
|
|
0: ˆ * >%. 1: 6 > )] + 7 *. |
|
18 |
TEN2 |
0: .$ Œ 2 >. |
|
|
|
1: r Œ 2 F, . ), $* ) =$] |
|
|
|
DAC_DHRx >$ = #$ DAC_DOR1.. |
|
19 |
TSEL2_0 |
6)7 $> $ 2: |
|
20 |
TSEL2_1 |
000: Timer 6 TRGO. |
|
21 |
TSEL2_2 |
001: Timer 3 TRGO. |
|
|
|
010: Timer 7 TRGO. |
|
|
|
011: Timer 5 TRGO. ( Timer 15 TRGO STM32F100xx) |
|
|
|
100: Timer 2 TRGO. |
|
|
|
101: Timer 4 TRGO. |
|
|
|
110: External line 9 |
|
|
|
111: c = )+ $ ($ . SWTRIG[SWTRIG2]). |
|
|
|
^ 8( (: $ O ] 7 >, $ TEN2=”1”. |
|
22 |
WAVE2_0 |
6)7 # 7 ) = = 2-= b•c. |
|
23 |
WAVE2_1 |
00: + = ) >. |
|
|
|
01: + = * 9. |
|
|
|
10 11: + = * # = + |
|
|
|
* ). |
|
|
|
^ 8( (: $ O ] 7 >, $ TEN2=”1”. |
|
24 |
MAMP2_0 |
q$ = $ 2-= . } ] |
|
25 |
MAMP2_1 |
) * = = # 9. |
|
26 |
MAMP2_2 |
0000: †$ 7 0, ] ) 1 7. |
|
27 |
MAMP2_3 |
0001: †$ 7 ) [1:0], ] ) 31 7. |
|
|
|
0010: †$ 7 ) [2:0], ] ) 7 7. |
|
|
|
0011: †$ 7 ) [3:0], ] ) 15 7. |
|
|
|
0100: †$ 7 ) [4:0], ] ) 31 7. |
|
|
|
0101: †$ 7 ) [5:0], ] ) 63 7. |
|
|
|
0110: †$ 7 ) [6:0], ] ) 127 7. |
|
|
|
0111: †$ 7 ) [7:0], ] ) 255 7. |
|
|
|
1000: †$ 7 ) [8:0], ] ) 511 7. |
|
|
|
1001: †$ 7 ) [9:0], ] ) 1023 7. |
|
|
|
1010: †$ 7 ) [10:0], ] ) 2047 7. |
|
|
|
>= 1011: †$ 7 ) [11:0], ] ) 4095 7. |
|
28 |
DMAEN2 |
6 > DMA 2-= •bc. |
|
|
|
0: 6) >. |
1: 6 >. |
29 |
DMAU |
8 9 ) ) DMA 2- •bc. |
|
|
DRIE2 |
0: .. |
|
|
& ,$ |
1: 8 9. |
|
|
STM32F100 |
|
|
30-31 |
- |
8 |
|
^ 8( (: 1. a # = + * ).
71

СПБГУАП группа 4736 / https://new.guap.ru
2. a 9 $] $)
=$ LFSR:
* )+ $= 9 $)$ $ $# ) DAC_DHRx, >%
>$ $) )] 7 $ 7 MAMPx, $
$ $F + =$ DAC->DORx.
DAC->SWTRIGR (O() ) 88 ) / E ]C^) $ $ $7$ - 0x0000 0000. ˆ ) $) > $
ˆ |
‰ |
‰ > |
0 |
SWTRIG1 |
0: •** . |
|
|
1: c = )+ $ Œ 1. 7$)$ > |
|
|
: APB1, $# DAC_DHR1 = # |
|
|
=$ DAC_DOR1. |
1 |
SWTRIG2 |
0: •** . |
|
|
1: c = )+ $ Œ 2. 7$)$ > |
|
|
: APB1, $# DAC_DHR2 = # |
|
|
=$ DAC_DOR2. |
2-31 |
- |
8 |
DAC->SR (O() 1 1 ]C^) $ $ $7$ - 0x0000. ˆ ) $)
>. 7$ 7 $F$ $ $ “1”.
ˆ |
‰ |
|
‰ > |
|
|||
0-12 |
- |
8 |
|
|
|
|
|
13 |
DMAUDR1 |
1: }9 7 $+ DMA Œ1. $ 7 ) DMA |
|||||
|
|
# $ $ 7 ) •bc. (Š$ $ , |
|||||
|
|
$7$)$ = $ “1”.) |
|
||||
14-28 |
- |
8 |
|
|
|
|
|
29 |
DMAUDR2 |
1: }9 7 $+ DMA Œ2. $ 7 ) DMA |
|||||
|
|
# $ $ 7 ) •bc. (Š$ $ , |
|||||
|
|
$7$)$ = $ “1”.) |
|
||||
30-31 |
- |
8 |
|
|
|
|
|
DAC->DOR1 (349 0 () , p 1)
72

СПБГУАП группа 4736 / https://new.guap.ru
DAC->DOR2 (349 0 () , p 2)
< ), >$ $) ) O =$) =$ DAC_DHRx,
$ $ * : + : *-= = 7
$ $F . Š $ O =$).
.$ # $F$ $ $ $F =$) DAC_DHRx. $
$ $ , + =$ 7) = # ) $ )
$ ] $ $F + DAC_DOR.
c$ ) = 7) 8 12 ) )
. 6 $ $ $ O 7] )7 =$
= ] )] DAC_DHRx.
DAC->DHR12R1 (O() (0 (,$) 9 ( 1 12-/ 10 49 0 49 4 (8 , p1)
DAC->DHR12L1 (O() (0 (,$) 9 ( 1 12-/ 10 49 0 49 4 (8 ,( , p1)
DAC->DHR8R1 (O() (0 (,$) 9 ( 1 8-/ 10 49 0 49 4 (8 , p1)
73

СПБГУАП группа 4736 / https://new.guap.ru
DAC->DHR12R2 (O() (0 (,$) 9 ( 1 12-/ 10 49 0 49 4 (8 , p2)
DAC->DHR12L2 (O() (0 (,$) 9 ( 1 12-/ 10 49 0 49 4 (8 ,( , p2)
DAC->DHR8R2 (O() (0 (,$) 9 ( 1 8-/ 10 49 0 49 4 (8 , p2)
DAC->DHR12RD (O() (0 (,$) 9 ( 1 12-/ 10 49 0 49 4 (8 0 E9 ,)
DAC->DHR12LD (O() (0 (,$) 9 ( 1 12-/ 10 49 0 49 4 (8 ,( 0 E9 ,)
DAC->DHR8RD (O() (0 (,$) 9 ( 1 8-/ 10 49 0 49 4 (8 0 E9 ,)
74

СПБГУАП группа 4736 / https://new.guap.ru
^ ,(0 (,$4 ( D( 4 ( D( SPI.
6 STM32F101xx - STM32F103xx $ 7•% 256 rˆ )9 $)
) =$) $ $= SPI I2C, F
- )]. 6 O #$ $$ $ .
75

СПБГУАП группа 4736 / https://new.guap.ru
SPI->CR1 (O() E ,( 1 SPI) $ $ $7$ - 0x0000. ˆ ) $)
> $ .
ˆ |
‰ |
‰ > |
0 |
CPHA |
6)7 + * ) $]$= SCK |
|
|
( . # < = $] :.) |
1 |
CPOL |
6)7 $ $]$= SCK |
|
|
( . # < = $] :.) |
2 |
MSTR |
6)7 # 7 ). |
|
|
0: Slave (6 )+). |
|
|
1: Master (6 F +). |
3 |
BR0 |
$ 7 ): |
4 |
BR1 |
000: fPCLK/2 |
5 |
BR2 |
001: fPCLK /4 |
|
|
010: fPCLK /8 |
|
|
011: fPCLK /16 |
|
|
100: fPCLK /32 |
|
|
101: fPCLK /64 |
|
|
110: fPCLK /128 |
|
|
111: fPCLK /256 |
6 |
SPE |
6 > * +$ SPI. |
|
|
0: 6) >. |
|
|
1: 6 >%. |
|
|
^ 8( (: ‰$+ SPI # $ SPE=0. |
7 |
LSBFIRST |
a * +. |
|
|
0: q 9 7 %. |
|
|
1: 9 7 %. |
8 |
SSI |
ˆ = = 9 7 + ($ . SSM). |
9 |
SSM |
6)7 $> 9 7. 6 # Master 7 # “0” |
|
|
NSS Internal $ $ * = 9 7 MODF. |
|
|
0: 6] NSS. |
|
|
1: ˆ SSI, . = . |
|
|
|
10 |
RXONLY |
8 # % + 7 + . |
|
|
0: c )+ $. |
|
|
1: Ž %. |
|
|
^ 8( (: †$ $ $ $ $ 7 BIDIMODE. |
11 |
DFF |
a )]: |
|
|
0: 8-7 ). |
|
|
1: 16-7 ). |
|
|
^ 8( (: † $ $ O = 7 $ |
|
|
) > SPI (= 7 SPE=0) . |
12 |
CRCNEXT |
†$> > CRC : 7. |
|
|
0: † 7 * >. |
|
|
1: † =$ CRC. |
|
|
^ 8( (: • 7 # $ $ , |
|
|
$ ) F ) =$ SPI->DR. |
76