
Программирование встроенных приложений STM23F10xxx_Keil_uVision-4
.pdfСПБГУАП группа 4736 / https://new.guap.ru
9 |
ARLO |
a = 7 # # Master. |
|
|
1: }7 # ) ] 9 ) = $+$ . |
10 |
AF |
a = > = $ . |
|
|
1: c ) ) $F$F $+$ . |
11 |
OVR |
a = )] # Slave. |
|
|
1: . *$ )]. • $], = |
|
|
# Slave $ $ > $ |
|
|
I2C->DR. |
12 |
PECERR |
a = 9 7 PEC. |
|
|
1: }7 # 9 7 PEC, . . $ > CRC |
|
|
# ACK. |
13 |
- |
8 |
14 |
TIMEOUT |
a = )9 + # 7 ) $ 9 + MBus. |
|
|
1: 6 # Host ) #$ SCL $ $ “0” |
|
|
7 10 $, # Device – 7 25 $. |
15 |
SMBALERT |
a = $ 9 MBus. |
|
|
6 # Host: |
|
|
0: $7). |
|
|
1: ] SMBALERT 7 # “0”, . - ] > |
|
|
9 + MBus. |
|
|
6 # Device $ $ 9: |
|
|
0: 9 ). |
|
|
1: ] SMBALERT 7 # “0”, . . 7 # |
|
|
)+ $ $ 9 $] $+$ . |
I2C->SR2 (O() 1 1 2) $ $ $7$ - 0x0000. 6$ 7 ) $)
>.
ˆ |
‰ |
‰ > |
0 |
MSL |
a = # 7 ). |
|
|
0: 8 # Slave ()+). |
|
|
1: 8 # Master (F +). |
1 |
BUSY |
a = $ 9 ). |
|
|
0: ‡ $7. |
|
|
1: ‡ . |
|
|
^ 8( (: Š$ $ $7$)$ |
|
|
$ $ $ $ $= SDA SCL. |
2 |
TRA |
a = % / >. |
|
|
0: Š$+$ # ). |
|
|
1: Š$+$ # ). |
|
|
^ 8( (: $ O = * = $ $ $ R/W- |
|
|
7, = $ $ $ . 7$ $] |
|
|
> Stop. |
3 |
- |
8 |
4 |
GENCALL |
a = : = ) Device- $+$ 9 SMBus. |
|
|
1 : c > : )+ ) (I2C->CR1[ENGC=1]). |
5 |
SMB |
a = 7 F $+$ 9 SMBus.. |
|
DEFAULT |
1: Device- $+$ > $ 7 F $ . |
6 |
SMBHOST |
a = 9 + SMBus.. |
|
|
1: r, $) I2C->CR1[SMBTYPE=1 |
|
|
ENARP=1] > 9 + SMBus. |
87

СПБГУАП группа 4736 / https://new.guap.ru
7 |
DUALF |
a = 7 F = $ . |
|
|
0: b$ > = $ $ $ I2C->OAR1. |
|
|
1: b$ > = $ $ $ I2C->OAR2. |
8-15 |
PEC[7:0] |
# * )+ CRC- , $ I2C->CR1[ENPEC=1] |
I2C->CCR (O() E ,( 1 $6 58( ' ( I2C)
‰ |
‰ > |
7 |
|
CCR[11:0] |
‰$+ $ $ (>$) SCL) |
|
O(P 8 Standard , SMBus: |
|
thigh = CCR * TPCLK1 |
|
tlow = CCR * TPCLK1 |
|
O(P 8 Fast: |
|
t$ DUTY = 0: |
|
thigh = CCR * TPCLK1 |
|
tlow = 2 * CCR * TPCLK1 |
|
t$ DUTY = 1: (> 7) > >$ 400 G:) |
|
thigh = 9 * CCR * TPCLK1 |
|
tlow = 16 * CCR * TPCLK1 |
|
^ 8(: d 7) $ # >$ SCL 7) 100 G: |
|
f PCLK1 = 24 qG: 7 ) CCR[11:0] # ) 7) ) 0x78 |
|
(120) $ : |
|
thigh = (1 / 24 000 000)* 120 = 5000 $. |
|
tlow = (1 / 24 000 000)* 120 = 5000 $ |
|
TSCL = thigh + tlow = 10 000 $. |
|
fSCL =1 / TSCL = 100 G:. |
DUTY |
c ) $= SCL 7 7)$ (Fast) #. |
|
0: tlow/thigh = 2. |
|
1: tlow/thigh = 16/9. |
F/S |
$+ # 7 ) 9 ) I2C. |
|
0: )+ (Standart) # ( 100 G:). |
|
1: ˆ)$)+ (Fast) # ( 400 G:). |
I2C->TRISE (O() 0 E 8 ) 4'( 1 0, (,$ SCL)
8 =$ $ $ # Master (Host).
1.q$ $ )9 SCL $ $ 1000 $.
2.} $] : I2C (I2C->->CR2[FREQ 5:0]) , :
T I2C = 1 / f I2C = 1 / 8 000 000 =125 $.
88

СПБГУАП группа 4736 / https://new.guap.ru
3. } $9 $= )9 $] :. K = 1000 $ / 125 $ = 8
4. } TRISE[5:0].
TRISE[5:0] = K + 1 = 8 + 1 = 9
` ( ,$4 9 4 9 4 ( D( USART.
89

СПБГУАП группа 4736 / https://new.guap.ru
USART->SR (O() 1 1) $ $ $7$ - 0x0000. ˆ ) $)
>, 7 ) 5 (RXNE), 6(TC), 8 (LBD) 9 (CTS) $) $ “0”.
ˆ |
‰ |
‰ > |
0 |
PE |
a = >%$ . |
|
|
1: 7 # 9 7 >%$ . |
|
|
.5 $) > USART->SR 7 F |
|
|
USART->DR, # 9$ $ * = RXNE. |
1 |
FE |
a = 9 7 $: = * +. |
|
|
1: 7 # 9 7, $ $ $7$ >$) |
|
|
= $=, ) $ . . |
|
|
.5 $) > USART->SR USART->DR. |
2 |
NF |
a = 9. |
|
|
1: 6 $ 7 # )9 )+ 9. |
|
|
.5 $) > USART->SR USART->DR. |
3 |
ORE |
a = )] %. |
|
|
1: . *$ )] )]. • |
|
|
$], = $ $ > |
|
|
)] )] =$ USART->DR. |
|
|
.5 $) > USART->SR USART->DR. |
4 |
IDLE |
a = > %. |
|
|
1: ‹ % $ $ , . . ]$ $ $ “1”, |
|
|
% )] $ . |
|
|
.5 $) > USART->SR USART->DR. |
5 |
RXNE |
a = % 7 +. |
|
|
1: < ) ) ]$ USART->DR. |
|
|
.5 )+ > USART->DR =. |
6 |
TC |
a = > >. |
|
|
1: c > 9, USART->DR =$ $= $). |
|
|
.5 )+ $ USART->DR > = 7 + |
|
|
=. |
7 |
TXE |
a = =$ > > > = 7 +. |
|
|
1: < ) USART->DR ) =$ $= |
|
|
>. USART->DR = > > = 7 +. |
|
|
.5 )+ $ USART->DR > = 7 + |
|
|
=. |
8 |
LBD |
a = # $ $ “0”. ($ . USART_CR2[LINEN]) |
|
|
1: }7 # # % + $ $ “0”. |
|
|
.5 = )+. |
9 |
CTS |
a = =$ > )]. |
|
|
1: ‰ CTC *$ . |
|
|
.5 = )+. |
10-31 |
- |
8 |
USART->DR (O() 0 49) b $ $ 2-] =$ TDR, RDR ]
=$ $=.
90

СПБГУАП группа 4736 / https://new.guap.ru
USART->BRR (O() ( (0 / T8)
DIV_Mantissa – $$ (: >$ ) DIV
DIV_Fraction –. 7 >$ DIV.
f(ˆ) = fCYSCLK / 8 * ( 2 – OVER8 ) *DIV
G:
f(ˆ) – $ $ 7 ) USART $ #. fCYSCLK - >$ , * + system_stm32f10x.c
OVER8 – > )+ O** :, )+:
OVER8=1, $ DIV_Fraction 4 7 (:.). OVER8=0, $ DIV_Fraction 3 7. (#).
DIV – .
^ 8( 1:
fCYSCLK = 72 qG:; DIV=0x3A95, (937 + 5/16) . . 0x5<8 OVER8=0; f(ˆ)=4800.
^ 8( 2:
fCYSCLK = 72 qG:; DIV=0x1D4C ( 468 + 0,75), . . 0x >7 OVER8=1; f(ˆ)=9600.
^ 8( (: t$ 7 >$ 4 7, % 7] 16.
USART->CR1 (O() E ,( 1 1) $ $ $7$ - 0x0000. 6$ 7 )$) > $ .
ˆ |
‰ |
‰ > |
0 |
SBK |
Š # $ $ “0”. ( . USART->CR2[LINEN]) |
|
|
0: ‰ #. |
|
|
1: Š # $ $ “0” > . |
|
|
(7$ = )+ )+ $ .) |
1 |
RWU |
c ] # $ . |
|
|
0: 8 7. |
|
|
1: . |
|
|
^ 8( (: t$ WAKE=1, $ # $ O |
|
|
7 $ $ $). |
2 |
RE |
8 9 7 %. |
|
|
0: 6) >. |
|
|
1: c % >%. |
3 |
TE |
8 9 7 >. |
|
|
0: 6) >. |
|
|
1: c > >%. |
4 |
IDLEIE |
8 9 ) > %. |
|
|
0: .. |
|
|
1: 8 9 ) * = IDLE=1. |
5 |
RXNIE |
8 9 ) % 7 + 7 * |
|
|
%. |
|
|
0: .. |
|
|
1: 8 9 ) * = RXNE=1 ORE=1. |
91
СПБГУАП группа 4736 / https://new.guap.ru
6 |
TCIE |
8 9 ) > >. |
||||||
|
|
0: .. |
|
|
|
|
|
|
|
|
1: 8 9 ) * = TC=1. |
|
|||||
7 |
TXEIE |
8 9 ) =$ > > |
||||||
|
|
> = 7 +. |
|
|
|
|
|
|
|
|
0: .. |
|
|
|
|
|
|
|
|
1: 8 9 ) * = TXE=1. |
|
|||||
8 |
PEIE |
8 9 ) 7 # 9 . |
||||||
|
|
0: .. |
|
|
|
|
|
|
|
|
1: 8 9 ) * = PE=1. |
|
|||||
9 |
PS |
8 # . |
|
|
|
|
|
|
|
|
0: r >%$ . |
|
|
|
|
|
|
|
|
1: r >%$ . |
|
|
|
|
|
|
10 |
PCE |
6 > . ˆ 7$ $ |
||||||
|
|
8-= 9-= 7 + $), $ $ 7 12 (M). |
||||||
|
|
0: 6) >. |
|
|
|
|
|
|
|
|
1: r >%. |
|
|
|
|
||
11 |
WAKE |
6)7 # $ USART. |
|
|
|
|
|
|
|
|
0: ‰ ]$ # $ $ % + |
||||||
|
|
, O $7$) 7 RWU. |
||||||
|
|
1: ‰ ]$ # $ ] , + |
||||||
|
|
$ $ #$ ) 4 9 7 + |
||||||
|
|
$ USART, $)+ =$ USART->CR2[ADD3:0]. |
||||||
|
|
ˆ PWU $7$)$ , O $ % |
||||||
|
|
)] ] # $ . c )+ $ |
||||||
|
|
=$ % USART->RD *$ $ . |
||||||
12 |
M |
< * : )] $). |
|
|
|
|||
|
|
0: 8 7. |
|
|
|
|
|
|
|
|
1: 9 7. |
|
|
|
|
|
|
13 |
UE |
6 > USART . |
|
|
||||
|
|
0: USART ) >. |
|
|
|
|
|
|
|
|
1: USART >%. |
|
|
|
|
|
|
14 |
- |
|
8 |
|
|
|
|
|
15 |
OVER8 |
6)7 $9 $ $ > # |
||||||
|
Ž |
IrDA $ 7)> #. (†$ $ 7 |
||||||
|
STM32F100xx |
$ $ - , . . = $) 7 ) CR1[SCEN=1, |
||||||
|
|
IREN=1], USART->CR2[LINEN=1].) |
|
|
||||
|
|
0: 3 / 16. |
1: 3 / 8. |
|
|
|
|
|
16-31 |
- |
|
8 |
|
|
|
|
|
USART->CR2 (O() E ,( 1 2) $ $ $7$ - 0x0000. 6$ 7 )$) > $ .
ˆ |
‰ |
‰ > |
0 |
ADD0 |
d ) 9 ] 7 $ USART. 9 ) |
1 |
ADD1 |
$ . †$ $ )] # $ . |
2 |
ADD2 |
. USART->CR1[WAKE]=1. |
3 |
ADD3 |
|
4 |
- |
8 |
5 |
LBDL |
r >$ )] 7 ) ) F ] ) LBD, = |
|
|
$] # $ $ “0”. ( . LINEN.) |
|
|
0: 10 7. |
|
|
1: 11 7. |
92

СПБГУАП группа 4736 / https://new.guap.ru
6 |
LBDIE |
8 9 ) # % + $ $ . “0”. |
|
|
|
0: .. |
|
|
|
1: 8 9 ) * = LBD=1. |
|
7 |
- |
8 |
|
8 |
LBCL |
‰ > $= $ SCLK ) K. |
|
|
|
0: }$ $ . |
|
|
|
1: c$+ $ $ $ ) CK. |
|
|
|
( . $. “8 # $ $)+ $ SPI”.) |
|
9 |
CPHA |
b * $= $] : SCLK. †$ $ |
|
|
|
$ 7 CLKEN. ( . $. “8 # $ $)+ $ SPI”.) |
|
10 |
CPOL |
c$ $= $] : SCLK. †$ $ |
|
|
|
$ 7 CLKEN. ( . $. “8 # $ $)+ $ SPI”.) |
|
11 |
CLKEN |
6 > $]$= SCLK. (†$ $ #, |
|
|
|
$ $) $ SPI.) |
|
|
|
0: 6) CK $ $ . |
|
|
|
1: 6) r $ $ )] $= $] : SCLK. |
|
12 |
STOP0 |
c #$ $) “Stop”. |
|
13 |
STOP1 |
00: 1 7. |
|
|
|
01: 0,5 7 |
|
|
|
10: 2 7 |
|
|
|
11: 1,5 7. |
|
14 |
LINEN |
6 > # “LIN”. • # $) |
|
|
|
$= “LIN Synh Break” (13 7 )] “0”) $ 7 |
|
|
|
USART->CR1[SBK]=1 $> $] :. |
|
|
|
0: 8 # $ . |
|
|
|
1: 8 # “LIN” >%. |
|
15-31 |
- |
8 |
|
93
СПБГУАП группа 4736 / https://new.guap.ru
USART->CR3 (O() E ,( 1 3) $ $ $7$ - 0x0000. 6$ 7 )$) > $ .
ˆ |
‰ |
‰ > |
0 |
EIE |
8 9 ) 9 7. |
|
|
0: c ), $) $ 9 7 F ). |
|
|
1: 8 9 ) 7 $ DMA (DMAR=1), $> |
|
|
$F ] 9 7 ( $ * = =$ |
|
|
USART->SP): |
|
|
- FE – 9 7 $: = * +; |
|
|
- ORE – %; |
|
|
- NF – )9 )+ 9 $ . |
1 |
IREN |
6 > # “IrDA”. |
|
|
0: 8 # ) >. |
|
|
1: 6 > # IrDA. ( . $. “8 # IrDA”.) |
2 |
IRLP |
6)7 # # = O = 7 7 USART |
|
|
# IrDA. |
|
|
0: ‰ )+ # O = 7. |
|
|
1: 8 # # = O = 7 “Low-power”. 6 O |
|
|
# 9$ $ * )] $ . |
3 |
HDSEL |
6 > # “ $”, . . $F$ % |
|
|
> + Tx. |
|
|
0: 8 # ) >. |
|
|
1: 8 # >%. c % > $ + Tx. |
4 |
NACK |
6 # 7 ) $ $ $ SPI 9 $ |
|
|
$= ACK (#) $= NACK (#). |
|
|
0: . ACK NACK. |
|
|
1: 6 $> 9 7 NACK $ ACK. |
|
|
( . USART->CR1[PCE, PS].) |
5 |
SCEN |
6 > # 7 ) $ $ - . |
|
|
0: 8 # ) >. |
|
|
1: 8 # 7 ) $ $ - >. |
6 |
DMAR |
8 9 7 DMA % )]. |
|
|
0: DMA >. |
|
|
1: DMA $ ) 7 * % . |
7 |
DMAT |
8 9 7 DMA > )]. |
|
|
0: DMA >. |
|
|
1: DMA $ ) 7 * >. |
8 |
RTSE |
Š + RTS. (Š .) |
|
|
0: Š RTS ) >. |
|
|
1: c RTS $ $ “0”, $>, $ |
|
|
7 * % USART->RD > F () > )). |
9 |
CTSE |
Š $ $ $ $ CTS. |
|
|
0: r $ $ CTS ) >. |
|
|
1: 6$ > , $ $ $ CTS=0. |
10 |
CTSIE |
8 9 ) =$ > |
|
|
)]. |
|
|
0: .. |
|
|
1: 8 9 ) * = CTS=1. |
11 |
ONEBITE |
c 9 > 9. |
|
|
0: t$ 9 *$ 7, * = USART->SR[NF]=”1”. |
|
|
1: t$ 9 *$ %] 7 ], * = USART->SR[NF]=”1”. |
|
|
^ 8( (: • 7 $ STM32F100xx. |
94

СПБГУАП группа 4736 / https://new.guap.ru
12-31 |
- |
8 |
USART->GTPR (O() / 7 4 (0 (,$4 0(, (,$ 4)
‰ |
‰ > |
7 |
|
PSC[7:0] |
c )+ $ $+ >$) 7 ) # ]: |
|
IrDA Low-Powe: |
|
0x00: $ $ |
|
0x01: f / 1. |
|
0x02: f / 2. |
|
..… . . |
|
6 # IrDA Normal $ 0x01. |
|
6 # 7 ) $ 8-8 $ $ ) PSC[5:0] |
|
> >$ >$ #$ 2. |
GT[7:0] |
q$ >$ 7, )] $ - $ $ |
|
$ . c O >$ 7, > $ $ . |
95

СПБГУАП группа 4736 / https://new.guap.ru
Flash – 81$, 4 / ) E/ / 7 ) 88 1.
6 STM3210xxx Flash- = ) $ $ $ > $
$ 0x00000000 0x1FFF FFFF (0,5 G7 + ), }.Š - > $ $ 0x2000 0000
0x3FFFFFFF. }7$ > $ $ 0x08000000 )$ Main memory, + ]$ $ =.
}7$ $ $ 0x1FFFB000 0x1FFFF7FF (18 r7 +) – ) “System memory” > ] = >, F = =
$ = > USART. • 7$ $ . }7$ $ $ 0]1FFF F800 0x1FFF80F (16 7 +) >
] : + – Options byte
$ ] |
8 # = |
‰ > |
|
BOOT1 |
BOOT0 |
|
|
x |
0 |
Main Flash memory |
. = >$ $ $ 0x08000000, . . |
|
|
|
= #$ $ =. |
0 |
1 |
System memory |
. = >$ $ $ 1FFFB000, . . |
|
|
|
> 7 =-= >, |
|
|
|
F > USART = |
|
|
|
$ =. |
1 |
1 |
Embedded SRAM |
. = $ $ 0x2000 0000, . . $ }.Š. |
< 7 ) Keil-4 c > 7] )7 = “ Main Flash memory ”.
Option byte (• 4 :)
ˆ + |
|
‰ > |
nUSER |
( $ 7 + > 0900) |
|
USER |
[23:19] – 7$ |
|
|
nRST_STDBY [18] - 6 9 + $= NRST : |
|
|
|
0: c # STDBY. |
|
|
1: c = # . *** |
|
nRST_STOP [17] - 6 9 + $= NRST : |
|
|
|
0: c # STOP. |
|
|
1: c = # . *** |
|
WDG_SW[16] |
- ‰$)+ $# + + IWDG |
|
|
0: 6 >$ . |
|
|
1: 6 >$ =. *** |
|
*** - $ $ >. |
|
nRDP |
|
|
RDP |
ˆ + 9 $> ) = ), $+ Flash- . |
|
|
0xA5 – $> ) = ) 9. |
|
nData1 |
|
|
Data1 |
.$ = ]$ $ ). |
96