Bladeren bron

BootLoader STart

YJ 6 jaren geleden
bovenliggende
commit
e2d1295566

+ 3 - 0
.gitignore

@@ -0,0 +1,3 @@
1
+insight
2
+insight
3
+insight

File diff suppressed because it is too large
+ 2 - 2
.mxproject


BIN
Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.o


BIN
Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc_ex.o


BIN
Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.o


BIN
Debug/STM32F103_ATTEN_PLL_Zig.elf


+ 320 - 408
Debug/STM32F103_ATTEN_PLL_Zig.hex

@@ -1,23 +1,23 @@
1 1
 :020000040800F2
2
-:100000000000012075190008FD180008FF180008FD
3
-:100010000119000803190008051900080000000074
4
-:1000200000000000000000000000000007190008A8
5
-:1000300009190008000000000B1900080D1900083C
6
-:10004000BD190008BD190008BD190008BD19000838
7
-:10005000BD190008BD190008BD190008BD19000828
8
-:10006000BD190008BD190008BD19000811190008C4
9
-:10007000BD190008BD190008BD190008BD19000808
10
-:10008000BD190008BD190008BD190008BD190008F8
11
-:10009000BD190008BD190008BD190008BD190008E8
12
-:1000A000BD190008BD190008BD190008BD190008D8
13
-:1000B000BD190008BD190008BD190008BD190008C8
14
-:1000C000BD190008BD190008BD190008BD190008B8
15
-:1000D000BD1900081D190008BD190008BD19000848
16
-:1000E000BD190008BD190008BD190008BD19000898
17
-:1000F000BD190008BD190008BD190008BD19000888
18
-:10010000BD190008BD190008BD190008BD19000877
19
-:10011000BD190008BD190008BD190008BD19000867
20
-:10012000BD190008BD190008BD190008BD19000857
2
+:1000000000000120ED130008691300086B130008BD
3
+:100010006D1300086F130008711300080000000042
4
+:100020000000000000000000000000007313000842
5
+:10003000751300080000000077130008791300080A
6
+:10004000351400083514000835140008351400086C
7
+:10005000351400083514000835140008351400085C
8
+:10006000351400083514000835140008351400084C
9
+:1000700035140008351400087D13000889130008A2
10
+:10008000351400083514000835140008351400082C
11
+:10009000351400083514000835140008351400081C
12
+:1000A000351400083514000835140008351400080C
13
+:1000B00035140008351400083514000835140008FC
14
+:1000C00035140008351400083514000835140008EC
15
+:1000D000351400089513000835140008351400087D
16
+:1000E00035140008351400083514000835140008CC
17
+:1000F00035140008351400083514000835140008BC
18
+:1001000035140008351400083514000835140008AB
19
+:10011000351400083514000835140008351400089B
20
+:10012000351400083514000835140008351400088B
21 21
 :1001300000000000000000000000000000000000BF
22 22
 :1001400000000000000000000000000000000000AF
23 23
 :10015000000000000000000000000000000000009F
@@ -32,398 +32,310 @@
32 32
 :0401E0005FF8E0F1F3
33 33
 :1001E40010B5054C237833B9044B13B10448AFF36D
34 34
 :1001F40000800123237010BD0C00002000000000CB
35
-:10020400181A000808B5034B1BB103490348AFF3A0
36
-:10021400008008BD0000000010000020181A00082B
35
+:100204009014000808B5034B1BB103490348AFF32E
36
+:10021400008008BD000000001000002090140008B9
37 37
 :1002240038B50E4B054618784FF47A73B3FBF0F3E8
38
-:100234000B4A1068B0FBF3F000F0BCF9044658B95F
39
-:100244000F2D09D8024629464FF0FF3000F072F90D
38
+:100234000B4A1068B0FBF3F000F08CF8044658B990
39
+:100244000F2D09D8024629464FF0FF3000F042F83E
40 40
 :10025400044B20461D6038BD012038BD000000203D
41 41
 :100264000800002004000020074A08B51368032092
42
-:1002740043F01003136000F04BF90020FFF7D0FFA8
43
-:1002840001F06CFA002008BD00200240034A044B30
42
+:1002740043F01003136000F01BF80020FFF7D0FFD9
43
+:1002840000F0E2FF002008BD00200240034A044BB6
44 44
 :1002940011681B780B441360704700BF28000020CE
45 45
 :1002A40000000020014B1868704700BF28000020A0
46
-:1002B400002373B5019390F82430012B74D00123EB
47
-:1002C4004D6880F82430062D02684FEA85030C68D7
48
-:1002D40025D82B441F25566B053B9D4026EA050572
49
-:1002E40004FA03F32B435363092C4FEA44038D6848
50
-:1002F4002FD907262344D1681E3B9E4021EA0601DC
51
-:1003040005FA03F30B43D360A4F11003012B2BD99B
52
-:100314000023002280F82420184602B070BD0C2D62
53
-:100324000BD82B441F25166B233B9D4026EA05055D
54
-:1003340004FA03F32B431363D6E72B441F25D66A31
55
-:10034400413B9D4026EA050504FA03F32B43D3629F
56
-:10035400CAE70726116923449E4021EA060105FAEB
57
-:1003640003F30B431361CFE7104B9A4216D1936802
58
-:100374001B02CDD49368102C43F400039360C7D1BF
59
-:100384000B4B0C4A1B68B3FBF2F20A235343019351
60
-:10039400019B002BBCD0019B013BF8E7836A43F02F
61
-:1003A400200383620123B4E70223B5E7002401405C
62
-:1003B4000800002040420F0038B5036804469A68DC
63
-:1003C400D20701D4002038BD9A6822F001029A6055
64
-:1003D400FFF768FF054623689B68DB07F2D5FFF744
65
-:1003E40061FF401B0228F6D9A36A012043F01003E1
66
-:1003F400A362E36A43F00103E36238BDF8B504463F
67
-:10040400002877D0836A23B9C36280F8243001F0CE
68
-:10041400C7F92046FFF7D0FFA36A13F010036BD18E
69
-:10042400002869D1A26A374922F4885222F00202D4
70
-:1004340042F00202A26294E824008A42E16904D1F3
71
-:10044400B1F5402F08BF4FF40021E66845EA4605A0
72
-:100454002943A568B5F5807F35D0012D08BF4FF439
73
-:1004640080736769012F06D17EBBA669013E43EA0A
74
-:10047400463343F400635668B5F5807F26F4694635
75
-:1004840043EA0603536096681F4B03EA060343EAF4
76
-:100494000103936001D0012D20D12369013B1B0589
77
-:1004A400D56A25F470052B43D3629268174B134029
78
-:1004B400994215D10023E362A36A23F0030343F0B6
79
-:1004C4000103A362F8BD2B46CBE7A66A46F02006DB
80
-:1004D400A662E66A46F00106E662CCE70023DFE79F
81
-:1004E400A36A23F0120343F01003A362E36A43F008
82
-:1004F4000103E3620120F8BDA36A43F01003A36281
83
-:10050400F8E700BF003C0140FDF7E1FFFE0E1FFFCE
84
-:10051400074A0002D36800F4E06023F4E0631B049C
85
-:100524001B0C43F0BF6343F400330343D3607047B1
86
-:1005340000ED00E0174B30B5DC68C4F30224C4F1CD
87
-:100544000703251D042B28BF0423062D4FF00105A6
88
-:1005540098BF002405FA03F303F1FF3388BF033C7B
89
-:100564001940A14005FA04F4013C2240002842EA63
90
-:1005740001024FEA0212AFBF00F16040064B00F0E7
91
-:100584000F00D2B2A5BFD2B200F561401A5480F870
92
-:10059400002330BD00ED00E014ED00E0012342092A
93
-:1005A40000F01F0003FA00F0014B43F822007047EB
94
-:1005B40000E100E00138B0F1807F0AD2F021064B5F
95
-:1005C400064A586082F823100020072298601A60B7
96
-:1005D40070470120704700BF10E000E000ED00E02C
97
-:1005E40010B5002832D00168194B1424994225D83B
98
-:1005F400184AA3F207430A44B2FBF4F292000264DD
99
-:100604008468C36343680A682343C46822F47F523E
100
-:100614002343046922F03002234344692343846959
101
-:100624002343C469234313430B600122002380F84E
102
-:100634002120836380F82030184610BD064B0B44FC
103
-:10064400B3FBF4F39B000364044BD9E7012010BD12
104
-:1006540007040240F8FFFDBFF8FBFDBF00040240A1
105
-:1006640090F8213010B5022B03D0042383630120BA
106
-:1006740010BD03681A6822F00E021A601A6822F08C
107
-:1006840001021A60294A934224D902F56272934204
108
-:1006940019D01432934218D01432934217D0143222
109
-:1006A40093420CBF4FF480534FF48033204A53607D
110
-:1006B4000123002480F82130436B80F820409BB351
111
-:1006C4009847204610BD0123F0E71023EEE74FF4CE
112
-:1006D4008073EBE717498B4216D014318B4215D047
113
-:1006E40014318B4214D014318B4214D014318B4208
114
-:1006F40014D014318B4214D0934214BF4FF480337E
115
-:100704004FF080730C4AD2E70123FBE71023F9E78B
116
-:100714004FF48073F6E74FF48053F3E74FF48033DC
117
-:10072400F0E74FF48013EDE7184610BD8000024057
118
-:1007340000040240080002400000024070B4042596
119
-:10074400C66B026C3468036895402542196855D01D
120
-:100754004D0753D51A6896065EBF1A6822F0040244
121
-:100764001A60604A93421FD902F56272934214D010
122
-:100774001432934213D01432934212D0143293425F
123
-:100784000CBF4FF480434FF48023574A5360C36A2D
124
-:10079400002B00F0A58070BC18470423F5E7402324
125
-:1007A400F3E74FF48063F0E750498B4216D01431DD
126
-:1007B4008B4215D014318B4214D014318B4214D097
127
-:1007C40014318B4214D014318B4214D0934214BF91
128
-:1007D4004FF480234FF08063454AD7E70423FBE7B7
129
-:1007E4004023F9E74FF48063F6E74FF48043F3E7DF
130
-:1007F4004FF48023F0E74FF48003EDE702259540A2
131
-:10080400254257D08D0755D51A68940606D41A6820
132
-:1008140022F00A021A60012280F82120314A934210
133
-:100824001ED902F56272934213D01432934212D04D
134
-:100834001432934211D0143293420CBF4FF400533C
135
-:100844004FF40033284A5360002380F82030836A31
136
-:100854009EE70223F6E72023F4E74FF40073F1E761
137
-:1008640022498B4216D014318B4215D014318B425D
138
-:1008740014D014318B4214D014318B4214D014315F
139
-:100884008B4214D0934214BF4FF400334FF00073E3
140
-:10089400174AD8E70223FBE72023F9E74FF4007354
141
-:1008A400F6E74FF40053F3E74FF40033F0E74FF467
142
-:1008B4000013EDE708259540254211D009070FD50F
143
-:1008C400196821F00E011960012303FA02F2726023
144
-:1008D400836380F82130002380F82030036B57E7CE
145
-:1008E40070BC7047800002400004024008000240CF
146
-:1008F400000002402DE9F74F002216466C4F6D4B65
147
-:10090400DFF8B8E1DFF8B8C14FF001080C6808FA65
148
-:1009140006F808EA0404A04540F085804D68122DCD
149
-:1009240000F0B78000F28D80022D00F0AF8000F25D
150
-:100934008180002D00F09180012D00F0A5804FF002
151
-:100944000F09FF2C93BF824606F18045083DD0F87D
152
-:1009540000B092BFB500D0F804B0AD0009FA05F8B4
153
-:100964002BEA080802FA05F588BF00F1040A48EAF0
154
-:100974000505CAF80050D1F804A01AF0805F52D0DF
155
-:10098400BD6926F0030845F00105BD61BD6908F1A4
156
-:10099400804805F00105019508F5803806F0030B41
157
-:1009A400019D4FEA8B0BD8F8085009FA0BF925EA98
158
-:1009B4000909414DA84271D005F58065A8426FD060
159
-:1009C40005F58065A8426DD005F58065A8426BD019
160
-:1009D40005F58065A84269D070450CBF052506253C
161
-:1009E40005FA0BF545EA0905C8F808501D681AF41C
162
-:1009F400803F14BF2543A5431D605D681AF4003F82
163
-:100A040014BF2543A5435D609D681AF4801F14BF7D
164
-:100A14002543A5439D60DD681AF4001F14BF2C43D1
165
-:100A240025EA0404DC600136102E7FF46DAF03B0B8
166
-:100A3400BDE8F08F032D25D0112D80D1CA68043272
167
-:100A44007DE7654509D012D8DFF878904D4504D08C
168
-:100A540009F580394D457FF472AF8A68E2B1012A05
169
-:100A64000CBFC0F81080C0F81480082267E7DFF8D4
170
-:100A740058904D45F1D009F580394D45EDD0A9F593
171
-:100A84008019E7E700225AE7CA6858E7CA680832BB
172
-:100A940055E7CA680C3252E7042250E700259FE765
173
-:100AA40001259DE702259BE7032599E7042597E7A0
174
-:100AB400001002400004014000080140001C0140F5
175
-:100AC4000000211000001110000031100AB1016172
176
-:100AD40070470904FBE7000003682DE9F341DB07D5
177
-:100AE400054610D42B689F075ED42B68190700F1C4
178
-:100AF40095802B685A0700F1BF80EA69002A40F00C
179
-:100B04002D81002014E0904C636803F00C03042B47
180
-:100B140007D0636803F00C03082B0CD16368DE0371
181
-:100B240009D523689C03DDD56B68002BDAD101203D
182
-:100B340002B0BDE8F0816B68B3F5803F10D1236843
183
-:100B440043F480332360FFF7ADFB06462368980324
184
-:100B5400C8D4FFF7A7FB801B6428F7D90320E7E775
185
-:100B64009BB9236823F480332360236823F4802310
186
-:100B74002360FFF797FB064623689903B2D5FFF776
187
-:100B840091FB801B6428F7D9E8E7B3F5A02F23680D
188
-:100B940003D143F480232360D1E723F4803323601B
189
-:100BA400236823F48023CDE7674C636813F00C0FAC
190
-:100BB40007D0636803F00C03082B10D16368DA03D1
191
-:100BC4000DD423689B0702D52B69012BAFD1236871
192
-:100BD4006A6923F0F80343EAC203236085E72A69BC
193
-:100BE4005A4B6AB101221A60FFF75CFB0646236880
194
-:100BF4009F07ECD4FFF756FB801B0228F7D9ADE71B
195
-:100C04001A60FFF74FFB0646236898077FF56DAF20
196
-:100C1400FFF748FB801B0228F6D99FE7AA694A4CD4
197
-:100C24004B4BDAB101221A60FFF73CFB0646636ABC
198
-:100C34009B070DD54FF4FA52464B1B68B3FBF2F3F6
199
-:100C4400019300BF019B5A1E0192002BF9D150E77A
200
-:100C5400FFF728FB801B0228E9D97FE71A60FFF71A
201
-:100C640021FB0646636A9F077FF543AFFFF71AFB34
202
-:100C7400801B0228F6D971E7334CE369D80024D4E9
203
-:100C84000127E36943F08053E361E36903F0805390
204
-:100C94000093009B304E3368D90518D5EB68012BBF
205
-:100CA40026D1236A43F001032362FFF7FBFA41F2E2
206
-:100CB40088368046236A9B073FD5002F3FF41DAF3B
207
-:100CC400E36923F08053E36117E70027E2E7336821
208
-:100CD40043F480733360FFF7E5FA80463368DA053E
209
-:100CE400DCD4FFF7DFFAA0EB08006428F6D935E777
210
-:100CF400ABB9236A41F2883823F001032362236AE3
211
-:100D040023F004032362FFF7CDFA0646236A98070B
212
-:100D1400D3D5FFF7C7FA801B4045F7D91EE7052B4B
213
-:100D2400236A03D143F004032362BAE723F00103E7
214
-:100D34002362236A23F00403B6E7FFF7B3FAA0EBB8
215
-:100D44000800B042B6D909E7001002400000424250
216
-:100D5400800442420800002000700040224C636876
217
-:100D640003F00C03082B3FF4E2AE00231F4E022ACB
218
-:100D740033602BD1FFF796FA0746236899011FD4F5
219
-:100D84002B6AB3F5803F05D16268A96822F400326A
220
-:100D94000A436260696A62680B4322F47412134363
221
-:100DA400636001233360FFF77DFA054623689A01E7
222
-:100DB4003FF5A7AEFFF776FA401B0228F6D9CDE639
223
-:100DC400FFF770FAC01B0228D7D9C7E6FFF76AFA03
224
-:100DD400054623689B017FF594AEFFF763FA401B39
225
-:100DE4000228F6D9BAE600BF001002406000424271
226
-:100DF40030B5194B87B002AC03F1100522461868D0
227
-:100E04005968083303C2AB421446F7D101238DF865
228
-:100E14000430022311498DF805304B6803F00C02AD
229
-:100E2400082A17D1C3F3834206A80244DB0312F84D
230
-:100E3400102C0CD54B680A48C3F34043504306AA10
231
-:100E4400134413F8143CB0FBF3F007B030BD05486D
232
-:100E54005043FAE70248F8E7301A0008001002404D
233
-:100E640000127A0000093D00544A2DE9F04113684C
234
-:100E7400054603F007038B420E462AD329688C07E4
235
-:100E840034D4CA0747D44D4A136803F007039E427B
236
-:100E9400C0F082802A684A4C12F0040F40F0878028
237
-:100EA400130706D563682A6923F4605343EAC2032F
238
-:100EB4006360FFF79DFF6368424AC3F30313D35C87
239
-:100EC400D840414B18600020FFF7AAF90020BDE884
240
-:100ED400F081136823F007030B431360136803F0D6
241
-:100EE40007039942CAD00120BDE8F081344B11F0C8
242
-:100EF400040F1EBF5A6842F4E0625A60080742BFFA
243
-:100F04005A6842F460525A605A68A86822F0F002A3
244
-:100F140002435A60B5E76A68294C012A23681CD148
245
-:100F240013F4003FDFD0636841F2883823F00303F1
246
-:100F340013436360FFF7B6F96B680746012B14D1BE
247
-:100F4400636803F00C03042B9DD0FFF7ABF9C01BBF
248
-:100F54004045F5D90320BDE8F081022A02D113F0FF
249
-:100F6400007FDFE713F0020FDCE7022B0FD1636889
250
-:100F740003F00C03082B86D0FFF794F9C01B4045FF
251
-:100F8400F5D9E7E7FFF78EF9C01B4045E2D863685F
252
-:100F940013F00C0FF6D176E7136823F007033343FD
253
-:100FA4001360136803F007039E429CD172E76368E1
254
-:100FB400E96823F4E0630B43636071E700200240B7
255
-:100FC40000100240401A000808000020044B054AA3
256
-:100FD4005B68C3F30223D35C034A1068D8407047AC
257
-:100FE40000100240501A000808000020044B054A73
258
-:100FF4005B68C3F3C223D35C034A1068D8407047CC
259
-:1010040000100240501A00080800002003682DE96F
260
-:10101400F341D907054620D5354CE369DA0032D4CB
261
-:101024000127E36943F08053E361E36903F08053EC
262
-:101034000193019B2F4E3368DB0526D5236A13F4F5
263
-:10104400407336D1236A6A6823F4407313432362DE
264
-:101054001FB1E36923F08053E3612868830706D551
265
-:10106400234AA968536823F440430B43536010F0A8
266
-:1010740010001BD01E4A69695368002023F48003C2
267
-:101084000B43536012E00027D4E7336843F48073C2
268
-:101094003360FFF707F980463368D805CED4FFF7ED
269
-:1010A40001F9A0EB08006428F6D9032002B0BDE8DA
270
-:1010B400F0816A6802F440729342C3D001200E4A60
271
-:1010C400236A1060002023F4407110602162D90764
272
-:1010D400B8D5FFF7E7F841F288380646236A9A073D
273
-:1010E400B0D4FFF7DFF8801B4045F7D9DDE700BF38
274
-:1010F4000010024000700040400442420368DA6875
275
-:1011040022F49072DA605A6922F001025A612023B3
276
-:1011140080F83A30704700002DE9F0470568C2684E
277
-:101124002B69016923F4405313432B618368EA68F4
278
-:101134000B43416922F4B05222F00C020B431343D7
279
-:10114400EB606B69826923F4407313436B61404B1A
280
-:1011540081469D424FF0190446D1FFF747FF04FB37
281
-:1011640000F3D9F804604FF06408B600B3FBF6F35B
282
-:10117400B3FBF8F31E01FFF739FF6043D9F80430DD
283
-:101184009B00B0FBF3F7FFF731FF6043D9F804305D
284
-:101194009B00B0FBF3F3B3FBF8F308FB13731B01E1
285
-:1011A4003233B3FBF8F303F0F007FFF71FFF60439C
286
-:1011B400D9F804209200B0FBF2FAFFF717FF60435E
287
-:1011C400D9F804309B00B0FBF3F3B3FBF8F308FB4E
288
-:1011D40013A31B013233B3FBF8F303F00F033B43B8
289
-:1011E4003344AB60BDE8F087FFF7F0FE04FB00F387
290
-:1011F400D9F804604FF06408B600B3FBF6F3B3FB10
291
-:10120400F8F31E01FFF7E2FE6043D9F804309B00B7
292
-:10121400B0FBF3F7FFF7DAFE6043D9F804309B0024
293
-:10122400B0FBF3F3B3FBF8F308FB13731B01323386
294
-:10123400B3FBF8F303F0F007FFF7C8FE6043D9F8F7
295
-:1012440004209200B0FBF2FAFFF7C0FEB7E700BF3C
296
-:101254000038014010B5044640B390F8393003F02B
297
-:10126400FF021BB980F8382000F00AFB242322680F
298
-:1012740084F83930D368204623F40053D360FFF751
299
-:101284004BFF236800201A6922F490421A615A69BC
300
-:1012940022F02A025A61DA6842F40052DA6020230A
301
-:1012A400E06384F8393084F83A3010BD012010BD71
302
-:1012B4007047704790F83A3010B5222B36D18368C6
303
-:1012C4000169B3F5805F0268836A23D15268E9B982
304
-:1012D400C2F3080223F8022B8362C48D013CA4B23A
305
-:1012E400C4858CB90368DA6822F02002DA60DA680F
306
-:1012F40022F48072DA605A6922F001025A612023D2
307
-:1013040080F83A30FFF7D5FF002010BDD2B223F8A1
308
-:10131400012BE1E721B9591C526881621A70DCE79C
309
-:101324005268591C816202F07F02F7E7022010BD67
310
-:1013340070470000036870B51A6804461607D96838
311
-:101344005D6907D196065AD58D0658D5BDE870401B
312
-:10135400FFF7B0BF15F0010502D111F4907F4ED014
313
-:10136400D30705D5CE0542BFE36B43F00103E36326
314
-:10137400500704D51DB1E36B43F00203E363930705
315
-:1013840004D51DB1E36B43F00403E363160704D5EE
316
-:101394001DB1E36B43F00803E363E36B002B66D0FA
317
-:1013A400950604D5880602D52046FFF783FF2368F7
318
-:1013B40020465D69E26B110702D415F040051AD08E
319
-:1013C400FFF79CFE23685A69520610D55A69606B70
320
-:1013D40022F040025A6150B1254B4363FFF740F9B4
321
-:1013E400002844D0606BBDE87040436B184720462A
322
-:1013F400FFF79EFF70BDFFF79BFFE56370BD160608
323
-:1014040027D50D0625D594F83920212A2FD1A26895
324
-:10141400B2F5805F226A17D11188C1F308015960BF
325
-:10142400216979B902322262E28C013A92B2E284F1
326
-:10143400EAB9DA6822F08002DA60DA6842F040023F
327
-:10144400DA6070BD0132EEE7511C216212785A60F5
328
-:10145400EAE750060BD54A0609D5DA68204622F099
329
-:101464004002DA60202384F83930FFF721FF70BD91
330
-:101474007914000808B50023406AC385C384FFF7C4
331
-:1014840057FF08BD10B596B0282200210CA800F023
332
-:10149400B9FA1422002101A800F0B4FA182200219C
333
-:1014A4000DEB020000F0AEFA012310931023022486
334
-:1014B40011934FF450130CA815930C941394FFF745
335
-:1014C4000BFB0F234FF4806201930023214601A8F4
336
-:1014D4000393049205930294FFF7C6FC4FF4004370
337
-:1014E40006A806940893FFF791FD16B010BD0000FE
338
-:1014F40080B58E4D8CB0FEF7B7FEFFF7C3FF102208
339
-:10150400002108A800F07EFAAB69002243F04003F2
340
-:10151400AB61AB697F2103F040030193019BAB698D
341
-:10152400834843F01003AB61AB69002403F010035C
342
-:101534000293029BAB69012743F08003AB61AB6963
343
-:10154400022603F080030393039BAB694FF00C085E
344
-:1015540043F00403AB61AB6903F004030493049BFD
345
-:10156400AB6943F00803AB61AB6903F0080305936F
346
-:10157400059BAB6943F02003AB61AB6903F0200327
347
-:101584000693069BAB6943F48073AB61AB6903F4C8
348
-:1015940080730793079BFFF799FA00224EF2C0016C
349
-:1015A4006448FFF793FA002240F2F3316248FFF7F0
350
-:1015B4008DFA002248F6FF716048FFF787FA00228F
351
-:1015C40043F6FC515E48FFF781FA002218215D487A
352
-:1015D400FFF77CFA7F2308A95548089309970A94D2
353
-:1015E4000B96FFF787F94EF2C00308A951480893F8
354
-:1015F40009970A940B96FFF77DF940F2F33308A993
355
-:101604004D48089309970A940B96FFF773F908A9B4
356
-:101614004948CDF8208009940A94FFF76BF948F6FD
357
-:10162400FF7308A94548089309970A940B96FFF796
358
-:1016340061F94FF4405308A94048089309940A9467
359
-:10164400FFF758F943F6FC5308A93D480893099756
360
-:101654000A940B96FFF74EF94FF4407308A93548E6
361
-:10166400089309940A94FFF745F94FF4007308931B
362
-:10167400032308A932480993FFF73CF9182308A962
363
-:101684003048089309970A940B96FFF733F96023BF
364
-:1016940008A92C48089309940A94FFF72BF96B695D
365
-:1016A40022463B436B616B6921463B4000930B2010
366
-:1016B400009BFEF73FFF0B20FEF770FF224D234BEC
367
-:1016C40028462B604FF48073AB604FF4602308947A
368
-:1016D400EB6109940A94EC606C616C602E61FEF716
369
-:1016E4008DFE08A92846089409970A94FEF7E0FDA0
370
-:1016F40008A928460996FEF7DBFD4FF4E1331448A8
371
-:10170400144A846080E80C00C4600461C0F814804A
372
-:101714008461C461FFF79EFD252022462146FEF721
373
-:1017240009FF2520FEF73AFFFEE700BF0010024044
374
-:101734000018014000100140001C01400014014049
375
-:1017440000200140000C01402C0000200024014036
376
-:101754005C00002000380140704700000E4B82B04E
377
-:101764009A6942F001029A619A6902F001020092B8
378
-:10177400009ADA6942F08052DA61DB69074A03F0C1
379
-:1017840080530193019B536823F0E06343F080632B
380
-:10179400536002B0704700BF0010024000000140D7
381
-:1017A400102230B5054689B00DEB0200002100F08F
382
-:1017B40029F92A682C4B9A4253D103F56C439A6950
383
-:1017C400032442F400729A619A6904A902F4007233
384
-:1017D4000092009A9A69254842F010029A619A6927
385
-:1017E40002F010020192019A9A6942F004029A618D
386
-:1017F4009A6902F004020292029A9A6942F008027B
387
-:101804009A619B69059403F008030393039B0F23D8
388
-:101814000493FFF76FF8FF2304A915480493059474
389
-:10182400FFF768F8134804A904940594FFF762F8D5
390
-:101834008022114C114BE2604FF4807222614FF40C
391
-:101844008062236062610023202220466360A360DB
392
-:10185400A261E361FEF7C4FE08B1FFF77DFF2C62CD
393
-:10186400656209B030BD00BF002401400010014092
394
-:1018740000080140000C01409C00002008000240C8
395
-:1018840010B5044686B01022002102A800F0BAF870
396
-:101894002268174B9A4228D103F558439A6902A942
397
-:1018A40042F480429A619A69124802F4804200929A
398
-:1018B400009A9A6942F004029A619B6903F0040356
399
-:1018C4000193019B4FF400730293022303930323B8
400
-:1018D4000593FFF70FF84FF480630293002302A9E6
401
-:1018E400044803930493FFF705F806B010BD00BF46
402
-:1018F40000380140000801407047FEE7FEE7FEE7BC
403
-:10190400FEE7704770477047FEF7C0BC0148FEF71A
404
-:1019140015BF00BF9C0000200148FFF70BBD00BFAE
405
-:101924005C0000200F4B1A6842F001021A605968EB
406
-:101934000D4A0A405A601A6822F0847222F48032F6
407
-:101944001A601A6822F480221A605A6822F4FE028D
408
-:101954005A604FF41F029A604FF00062034B9A6082
409
-:10196400704700BF001002400000FFF800ED00E0E7
410
-:10197400002103E00B4B5B58435004310A480B4BE6
411
-:1019840042189A42F6D30A4A02E0002342F8043B82
412
-:10199400084B9A42F9D3FFF7C5FF00F00FF8FFF7A1
413
-:1019A400A7FD7047601A0008000000200C0000200A
414
-:1019B4000C000020E0000020FEE7000070B50025C8
415
-:1019C4000C4E0D4CA41BA410A54209D100F022F822
416
-:1019D40000250A4E0A4CA41BA410A54205D170BDD3
417
-:1019E40056F8253098470135EEE756F825309847E4
418
-:1019F4000135F2E7581A0008581A0008581A000866
419
-:101A04005C1A000803460244934200D1704703F86D
420
-:101A1400011BF9E7F8B500BFF8BC08BC9E46704747
421
-:0C1A2400F8B500BFF8BC08BC9E46704737
422
-:101A300002030405060708090A0B0C0D0E0F10100F
423
-:101A4000000000000000000001020304060708096E
424
-:081A5000000000000102030484
425
-:041A58000902000877
426
-:041A5C00E501000898
427
-:0C1A6000010000001000000000A24A0479
428
-:040000050800197561
46
+:1002B400074A0002D36800F4E06023F4E0631B04FF
47
+:1002C4001B0C43F0BF6343F400330343D360704714
48
+:1002D40000ED00E0174B30B5DC68C4F30224C4F130
49
+:1002E4000703251D042B28BF0423062D4FF0010509
50
+:1002F40098BF002405FA03F303F1FF3388BF033CDE
51
+:100304001940A14005FA04F4013C2240002842EAC5
52
+:1003140001024FEA0212AFBF00F16040064B00F049
53
+:100324000F00D2B2A5BFD2B200F561401A5480F8D2
54
+:10033400002330BD00ED00E014ED00E0012342098C
55
+:1003440000F01F0003FA00F0014B43F8220070474D
56
+:1003540000E100E00138B0F1807F0AD2F021064BC1
57
+:10036400064A586082F823100020072298601A6019
58
+:1003740070470120704700BF10E000E000ED00E08E
59
+:1003840010B5002832D00168194B1424994225D89D
60
+:10039400184AA3F207430A44B2FBF4F2920002643F
61
+:1003A4008468C36343680A682343C46822F47F52A1
62
+:1003B4002343046922F030022343446923438469BC
63
+:1003C4002343C469234313430B600122002380F8B1
64
+:1003D4002120836380F82030184610BD064B0B445F
65
+:1003E400B3FBF4F39B000364044BD9E7012010BD75
66
+:1003F40007040240F8FFFDBFF8FBFDBF0004024004
67
+:1004040090F8213010B5022B03D00423836301201C
68
+:1004140010BD03681A6822F00E021A601A6822F0EE
69
+:1004240001021A60294A934224D902F56272934266
70
+:1004340019D01432934218D01432934217D0143284
71
+:1004440093420CBF4FF480534FF48033204A5360DF
72
+:100454000123002480F82130436B80F820409BB3B3
73
+:100464009847204610BD0123F0E71023EEE74FF430
74
+:100474008073EBE717498B4216D014318B4215D0A9
75
+:1004840014318B4214D014318B4214D014318B426A
76
+:1004940014D014318B4214D0934214BF4FF48033E0
77
+:1004A4004FF080730C4AD2E70123FBE71023F9E7EE
78
+:1004B4004FF48073F6E74FF48053F3E74FF480333F
79
+:1004C400F0E74FF48013EDE7184610BD80000240BA
80
+:1004D40000040240080002400000024070B40425F9
81
+:1004E400C66B026C3468036895402542196855D080
82
+:1004F4004D0753D51A6896065EBF1A6822F00402A7
83
+:100504001A60604A93421FD902F56272934214D072
84
+:100514001432934213D01432934212D014329342C1
85
+:100524000CBF4FF480434FF48023574A5360C36A8F
86
+:10053400002B00F0A58070BC18470423F5E7402386
87
+:10054400F3E74FF48063F0E750498B4216D014313F
88
+:100554008B4215D014318B4214D014318B4214D0F9
89
+:1005640014318B4214D014318B4214D0934214BFF3
90
+:100574004FF480234FF08063454AD7E70423FBE719
91
+:100584004023F9E74FF48063F6E74FF48043F3E741
92
+:100594004FF48023F0E74FF48003EDE70225954004
93
+:1005A400254257D08D0755D51A68940606D41A6883
94
+:1005B40022F00A021A60012280F82120314A934273
95
+:1005C4001ED902F56272934213D01432934212D0B0
96
+:1005D4001432934211D0143293420CBF4FF400539F
97
+:1005E4004FF40033284A5360002380F82030836A94
98
+:1005F4009EE70223F6E72023F4E74FF40073F1E7C4
99
+:1006040022498B4216D014318B4215D014318B42BF
100
+:1006140014D014318B4214D014318B4214D01431C1
101
+:100624008B4214D0934214BF4FF400334FF0007345
102
+:10063400174AD8E70223FBE72023F9E74FF40073B6
103
+:10064400F6E74FF40053F3E74FF40033F0E74FF4C9
104
+:100654000013EDE708259540254211D009070FD571
105
+:10066400196821F00E011960012303FA02F2726085
106
+:10067400836380F82130002380F82030036B57E730
107
+:1006840070BC704780000240000402400800024031
108
+:10069400000002402DE9F74F002216466C4F6D4BC7
109
+:1006A400DFF8B8E1DFF8B8C14FF001080C6808FAC8
110
+:1006B40006F808EA0404A04540F085804D68122D30
111
+:1006C40000F0B78000F28D80022D00F0AF8000F2C0
112
+:1006D4008180002D00F09180012D00F0A5804FF065
113
+:1006E4000F09FF2C93BF824606F18045083DD0F8E0
114
+:1006F40000B092BFB500D0F804B0AD0009FA05F817
115
+:100704002BEA080802FA05F588BF00F1040A48EA52
116
+:100714000505CAF80050D1F804A01AF0805F52D041
117
+:10072400BD6926F0030845F00105BD61BD6908F106
118
+:10073400804805F00105019508F5803806F0030BA3
119
+:10074400019D4FEA8B0BD8F8085009FA0BF925EAFA
120
+:100754000909414DA84271D005F58065A8426FD0C2
121
+:1007640005F58065A8426DD005F58065A8426BD07B
122
+:1007740005F58065A84269D070450CBF052506259E
123
+:1007840005FA0BF545EA0905C8F808501D681AF47E
124
+:10079400803F14BF2543A5431D605D681AF4003FE4
125
+:1007A40014BF2543A5435D609D681AF4801F14BFE0
126
+:1007B4002543A5439D60DD681AF4001F14BF2C4334
127
+:1007C40025EA0404DC600136102E7FF46DAF03B01B
128
+:1007D400BDE8F08F032D25D0112D80D1CA680432D5
129
+:1007E4007DE7654509D012D8DFF878904D4504D0EF
130
+:1007F40009F580394D457FF472AF8A68E2B1012A68
131
+:100804000CBFC0F81080C0F81480082267E7DFF836
132
+:1008140058904D45F1D009F580394D45EDD0A9F5F5
133
+:100824008019E7E700225AE7CA6858E7CA6808321D
134
+:1008340055E7CA680C3252E7042250E700259FE7C7
135
+:1008440001259DE702259BE7032599E7042597E702
136
+:10085400001002400004014000080140001C014057
137
+:100864000000211000001110000031100AB10161D4
138
+:1008740070470904FBE7000003682DE9F341DB0737
139
+:10088400054610D42B689F075ED42B68190700F126
140
+:1008940095802B685A0700F1BF80EA69002A40F06E
141
+:1008A4002D81002014E0904C636803F00C03042BAA
142
+:1008B40007D0636803F00C03082B0CD16368DE03D4
143
+:1008C40009D523689C03DDD56B68002BDAD10120A0
144
+:1008D40002B0BDE8F0816B68B3F5803F10D12368A6
145
+:1008E40043F480332360FFF7DDFC06462368980356
146
+:1008F400C8D4FFF7D7FC801B6428F7D90320E7E7A7
147
+:100904009BB9236823F480332360236823F4802372
148
+:100914002360FFF7C7FC064623689903B2D5FFF7A7
149
+:10092400C1FC801B6428F7D9E8E7B3F5A02F23683E
150
+:1009340003D143F480232360D1E723F4803323607D
151
+:10094400236823F48023CDE7674C636813F00C0F0E
152
+:1009540007D0636803F00C03082B10D16368DA0333
153
+:100964000DD423689B0702D52B69012BAFD12368D3
154
+:100974006A6923F0F80343EAC203236085E72A691E
155
+:100984005A4B6AB101221A60FFF78CFC06462368B1
156
+:100994009F07ECD4FFF786FC801B0228F7D9ADE74C
157
+:1009A4001A60FFF77FFC0646236898077FF56DAF52
158
+:1009B400FFF778FC801B0228F6D99FE7AA694A4C06
159
+:1009C4004B4BDAB101221A60FFF76CFC0646636AEE
160
+:1009D4009B070DD54FF4FA52464B1B68B3FBF2F359
161
+:1009E400019300BF019B5A1E0192002BF9D150E7DD
162
+:1009F400FFF758FC801B0228E9D97FE71A60FFF74C
163
+:100A040051FC0646636A9F077FF543AFFFF74AFC34
164
+:100A1400801B0228F6D971E7334CE369D80024D44B
165
+:100A24000127E36943F08053E361E36903F08053F2
166
+:100A34000093009B304E3368D90518D5EB68012B21
167
+:100A440026D1236A43F001032362FFF72BFC41F212
168
+:100A540088368046236A9B073FD5002F3FF41DAF9D
169
+:100A6400E36923F08053E36117E70027E2E7336883
170
+:100A740043F480733360FFF715FC80463368DA056E
171
+:100A8400DCD4FFF70FFCA0EB08006428F6D935E7A7
172
+:100A9400ABB9236A41F2883823F001032362236A45
173
+:100AA40023F004032362FFF7FDFB0646236A98073D
174
+:100AB400D3D5FFF7F7FB801B4045F7D91EE7052B7D
175
+:100AC400236A03D143F004032362BAE723F001034A
176
+:100AD4002362236A23F00403B6E7FFF7E3FBA0EBEA
177
+:100AE4000800B042B6D909E70010024000004242B3
178
+:100AF400800442420800002000700040224C6368D9
179
+:100B040003F00C03082B3FF4E2AE00231F4E022A2D
180
+:100B140033602BD1FFF7C6FB0746236899011FD426
181
+:100B24002B6AB3F5803F05D16268A96822F40032CC
182
+:100B34000A436260696A62680B4322F474121343C5
183
+:100B4400636001233360FFF7ADFB054623689A0118
184
+:100B54003FF5A7AEFFF7A6FB401B0228F6D9CDE66A
185
+:100B6400FFF7A0FBC01B0228D7D9C7E6FFF79AFB03
186
+:100B7400054623689B017FF594AEFFF793FB401B6A
187
+:100B84000228F6D9BAE600BF0010024060004242D3
188
+:100B940030B5194B87B002AC03F110052246186832
189
+:100BA4005968083303C2AB421446F7D101238DF8C8
190
+:100BB4000430022311498DF805304B6803F00C0210
191
+:100BC400082A17D1C3F3834206A80244DB0312F8B0
192
+:100BD400102C0CD54B680A48C3F34043504306AA73
193
+:100BE400134413F8143CB0FBF3F007B030BD0548D0
194
+:100BF4005043FAE70248F8E7A8140008001002403E
195
+:100C040000127A0000093D00544A2DE9F0411368AE
196
+:100C1400054603F007038B420E462AD329688C0746
197
+:100C240034D4CA0747D44D4A136803F007039E42DD
198
+:100C3400C0F082802A684A4C12F0040F40F087808A
199
+:100C4400130706D563682A6923F4605343EAC20391
200
+:100C54006360FFF79DFF6368424AC3F30313D35CE9
201
+:100C6400D840414B18600020FFF7DAFA0020BDE8B5
202
+:100C7400F081136823F007030B431360136803F038
203
+:100C840007039942CAD00120BDE8F081344B11F02A
204
+:100C9400040F1EBF5A6842F4E0625A60080742BF5C
205
+:100CA4005A6842F460525A605A68A86822F0F00206
206
+:100CB40002435A60B5E76A68294C012A23681CD1AB
207
+:100CC40013F4003FDFD0636841F2883823F0030354
208
+:100CD40013436360FFF7E6FA6B680746012B14D1F0
209
+:100CE400636803F00C03042B9DD0FFF7DBFAC01BF1
210
+:100CF4004045F5D90320BDE8F081022A02D113F062
211
+:100D0400007FDFE713F0020FDCE7022B0FD16368EB
212
+:100D140003F00C03082B86D0FFF7C4FAC01B404530
213
+:100D2400F5D9E7E7FFF7BEFAC01B4045E2D8636890
214
+:100D340013F00C0FF6D176E7136823F0070333435F
215
+:100D44001360136803F007039E429CD172E7636843
216
+:100D5400E96823F4E0630B43636071E70020024019
217
+:100D640000100240B814000808000020044B054A93
218
+:100D74005B68C3F30223D35C034A1068D84070470E
219
+:100D840000100240C814000808000020044B054A63
220
+:100D94005B68C3F3C223D35C034A1068D84070472E
221
+:100DA40000100240C8140008080000200368DA6834
222
+:100DB40022F49072DA605A6922F001025A61202307
223
+:100DC40080F83A30704700002DE9F0470568C268A2
224
+:100DD4002B69016923F4405313432B618368EA6848
225
+:100DE4000B43416922F4B05222F00C020B4313432B
226
+:100DF400EB606B69826923F4407313436B61404B6E
227
+:100E040081469D424FF0190446D1FFF7BFFF04FB12
228
+:100E140000F3D9F804604FF06408B600B3FBF6F3AE
229
+:100E2400B3FBF8F31E01FFF7B1FF6043D9F80430B8
230
+:100E34009B00B0FBF3F7FFF7A9FF6043D9F8043038
231
+:100E44009B00B0FBF3F3B3FBF8F308FB13731B0134
232
+:100E54003233B3FBF8F303F0F007FFF797FF604377
233
+:100E6400D9F804209200B0FBF2FAFFF78FFF604339
234
+:100E7400D9F804309B00B0FBF3F3B3FBF8F308FBA1
235
+:100E840013A31B013233B3FBF8F303F00F033B430B
236
+:100E94003344AB60BDE8F087FFF768FF04FB00F361
237
+:100EA400D9F804604FF06408B600B3FBF6F3B3FB63
238
+:100EB400F8F31E01FFF75AFF6043D9F804309B0092
239
+:100EC400B0FBF3F7FFF752FF6043D9F804309B00FF
240
+:100ED400B0FBF3F3B3FBF8F308FB13731B013233DA
241
+:100EE400B3FBF8F303F0F007FFF740FF6043D9F8D2
242
+:100EF40004209200B0FBF2FAFFF738FFB7E700BF17
243
+:100F04000038014010B5044640B390F8393003F07E
244
+:100F1400FF021BB980F8382000F0B8F924232268B6
245
+:100F240084F83930D368204623F40053D360FFF7A4
246
+:100F34004BFF236800201A6922F490421A615A690F
247
+:100F440022F02A025A61DA6842F40052DA6020235D
248
+:100F5400E06384F8393084F83A3010BD012010BDC4
249
+:100F64007047704790F83A3010B5222B36D1836819
250
+:100F74000169B3F5805F0268836A23D15268E9B9D5
251
+:100F8400C2F3080223F8022B8362C48D013CA4B28D
252
+:100F9400C4858CB90368DA6822F02002DA60DA6862
253
+:100FA40022F48072DA605A6922F001025A61202325
254
+:100FB40080F83A30FFF7D5FF002010BDD2B223F8F5
255
+:100FC400012BE1E721B9591C526881621A70DCE7F0
256
+:100FD4005268591C816202F07F02F7E7022010BDBB
257
+:100FE40070470000036870B51A6804461607D9688C
258
+:100FF4005D6907D196065AD58D0658D5BDE870406F
259
+:10100400FFF7B0BF15F0010502D111F4907F4ED067
260
+:10101400D30705D5CE0542BFE36B43F00103E36379
261
+:10102400500704D51DB1E36B43F00203E363930758
262
+:1010340004D51DB1E36B43F00403E363160704D541
263
+:101044001DB1E36B43F00803E363E36B002B66D04D
264
+:10105400950604D5880602D52046FFF783FF23684A
265
+:1010640020465D69E26B110702D415F040051AD0E1
266
+:10107400FFF79CFE23685A69520610D55A69606BC3
267
+:1010840022F040025A6150B1254B4363FFF7B8F98F
268
+:10109400002844D0606BBDE87040436B184720467D
269
+:1010A400FFF79EFF70BDFFF79BFFE56370BD16065B
270
+:1010B40027D50D0625D594F83920212A2FD1A268E9
271
+:1010C400B2F5805F226A17D11188C1F30801596013
272
+:1010D400216979B902322262E28C013A92B2E28445
273
+:1010E400EAB9DA6822F08002DA60DA6842F0400293
274
+:1010F400DA6070BD0132EEE7511C216212785A6049
275
+:10110400EAE750060BD54A0609D5DA68204622F0EC
276
+:101114004002DA60202384F83930FFF721FF70BDE4
277
+:101124002911000808B50023406AC385C384FFF76A
278
+:1011340057FF08BD10B590B02822002106A800F082
279
+:101144009DF91422002101A800F098F901230A93C3
280
+:10115400102302240B934FF4501306A80F93069404
281
+:101164000D94FFF789FB0F234FF480620193002352
282
+:10117400214601A80294039304920593FFF744FDCA
283
+:1011840010B010BD7FB52B4DFFF76EF8FFF7D2FFFF
284
+:101194001022002102A800F071F9AB69002243F08B
285
+:1011A4000403AB61AB694FF4004103F00403019302
286
+:1011B4002148019BFFF75AFB4FF40043029301239C
287
+:1011C40000240393022302A91B4805930494FFF708
288
+:1011D40061FA6B69194843F001036B616B69184A42
289
+:1011E40003F001030293029B4FF4E13380E80C0007
290
+:1011F4000C2384604361C46004618461C461FFF7AB
291
+:1012040081FE224621460F20FFF764F80F20FFF7E6
292
+:1012140095F8224621460E20FFF75CF80E20FFF7D2
293
+:101224008DF8252022462146FFF754F82520FFF7A4
294
+:1012340085F8FEE70010024000080140B4000020D9
295
+:1012440000380140704700000E4B82B09A6942F0AA
296
+:1012540001029A619A6902F001020092009ADA6925
297
+:1012640042F08052DA61DB69074A03F0805301934C
298
+:10127400019B536823F0E06343F08063536002B042
299
+:10128400704700BF001002400000014070B50646E0
300
+:1012940086B01022002102A800F0F0F832682B4B2F
301
+:1012A4009A4251D103F558439A6902A942F4804203
302
+:1012B4009A619A69264802F480420092009A9A69D7
303
+:1012C400002542F004029A619B69224C03F0040356
304
+:1012D4000193019B4FF400730293022303930323AE
305
+:1012E4000593FFF7D7F94FF48063194802A90293D5
306
+:1012F40003950495FFF7CEF9174B204684E82800A0
307
+:101304008023A560E36025616561A561E561FFF760
308
+:1013140037F808B1FFF796FF4FF0100C0F4B7463CA
309
+:1013240066620F4C802284E8081000232046A360E4
310
+:10133400E26023616361A361E361FFF721F808B10F
311
+:10134400FFF780FF3463666206B070BD0038014069
312
+:101354000008014070000020580002404400024090
313
+:101364002C0000207047FEE7FEE7FEE7FEE770472B
314
+:1013740070477047FEF78ABF0148FFF7AFB800BF58
315
+:101384002C0000200148FFF7A9B800BF700000201E
316
+:101394000148FFF727BE00BFB40000200F4B1A68B6
317
+:1013A40042F001021A6059680D4A0A405A601A68EC
318
+:1013B40022F0847222F480321A601A6822F48022A5
319
+:1013C4001A605A6822F4FE025A604FF41F029A60AF
320
+:1013D4004FF00062034B9A60704700BF0010024058
321
+:1013E4000000FFF800ED00E0002103E00B4B5B5828
322
+:1013F400435004310A480B4B42189A42F6D30A4A26
323
+:1014040002E0002342F8043B084B9A42F9D3FFF769
324
+:10141400C5FF00F00FF8FFF7B5FE7047D8140008B9
325
+:10142400000000200C0000200C0000202C010020F3
326
+:10143400FEE7000070B500250C4E0D4CA41BA41053
327
+:10144400A54209D100F022F800250A4E0A4CA41B3B
328
+:10145400A410A54205D170BD56F825309847013532
329
+:10146400EEE756F8253098470135F2E7D014000826
330
+:10147400D0140008D0140008D41400080346024411
331
+:10148400934200D1704703F8011BF9E7F8B500BF98
332
+:10149400F8BC08BC9E467047F8B500BFF8BC08BC51
333
+:0414A4009E467047A9
334
+:1014A80002030405060708090A0B0C0D0E0F10109D
335
+:1014B80000000000000000000102030406070809FC
336
+:0814C800000000000102030412
337
+:0414D0000902000805
338
+:0414D400E501000826
339
+:0C14D800010000001000000000A24A0407
340
+:04000005080013EDEF
429 341
 :00000001FF

File diff suppressed because it is too large
+ 1977 - 2951
Debug/STM32F103_ATTEN_PLL_Zig.list


File diff suppressed because it is too large
+ 347 - 495
Debug/STM32F103_ATTEN_PLL_Zig.map


BIN
Debug/Src/BDA4601.o


BIN
Debug/Src/CRC16.o


+ 1 - 0
Debug/Src/CRC16.su

@@ -0,0 +1 @@
1
+CRC16.c:49:16:genCRC16	8	static

BIN
Debug/Src/PE43711.o


BIN
Debug/Src/main.o


+ 3 - 3
Debug/Src/main.su

@@ -1,3 +1,3 @@
1
-main.c:124:6:SystemClock_Config	96	static
2
-main.c:74:5:main	56	static
3
-main.c:415:6:Error_Handler	0	static
1
+main.c:122:6:SystemClock_Config	72	static
2
+main.c:73:5:main	32	static
3
+main.c:246:6:Error_Handler	0	static

BIN
Debug/Src/stm32f1xx_hal_msp.o


+ 3 - 5
Debug/Src/stm32f1xx_hal_msp.su

@@ -1,5 +1,3 @@
1
-stm32f1xx_hal_msp.c:65:6:HAL_MspInit	8	static
2
-stm32f1xx_hal_msp.c:91:6:HAL_ADC_MspInit	48	static
3
-stm32f1xx_hal_msp.c:164:6:HAL_ADC_MspDeInit	8	static
4
-stm32f1xx_hal_msp.c:212:6:HAL_UART_MspInit	32	static
5
-stm32f1xx_hal_msp.c:251:6:HAL_UART_MspDeInit	8	static
1
+stm32f1xx_hal_msp.c:67:6:HAL_MspInit	8	static
2
+stm32f1xx_hal_msp.c:93:6:HAL_UART_MspInit	40	static
3
+stm32f1xx_hal_msp.c:165:6:HAL_UART_MspDeInit	8	static

BIN
Debug/Src/stm32f1xx_it.o


+ 12 - 11
Debug/Src/stm32f1xx_it.su

@@ -1,11 +1,12 @@
1
-stm32f1xx_it.c:71:6:NMI_Handler	0	static
2
-stm32f1xx_it.c:84:6:HardFault_Handler	0	static
3
-stm32f1xx_it.c:99:6:MemManage_Handler	0	static
4
-stm32f1xx_it.c:114:6:BusFault_Handler	0	static
5
-stm32f1xx_it.c:129:6:UsageFault_Handler	0	static
6
-stm32f1xx_it.c:144:6:SVC_Handler	0	static
7
-stm32f1xx_it.c:157:6:DebugMon_Handler	0	static
8
-stm32f1xx_it.c:170:6:PendSV_Handler	0	static
9
-stm32f1xx_it.c:183:6:SysTick_Handler	0	static
10
-stm32f1xx_it.c:204:6:DMA1_Channel1_IRQHandler	0	static
11
-stm32f1xx_it.c:218:6:USART1_IRQHandler	0	static
1
+stm32f1xx_it.c:72:6:NMI_Handler	0	static
2
+stm32f1xx_it.c:85:6:HardFault_Handler	0	static
3
+stm32f1xx_it.c:100:6:MemManage_Handler	0	static
4
+stm32f1xx_it.c:115:6:BusFault_Handler	0	static
5
+stm32f1xx_it.c:130:6:UsageFault_Handler	0	static
6
+stm32f1xx_it.c:145:6:SVC_Handler	0	static
7
+stm32f1xx_it.c:158:6:DebugMon_Handler	0	static
8
+stm32f1xx_it.c:171:6:PendSV_Handler	0	static
9
+stm32f1xx_it.c:184:6:SysTick_Handler	0	static
10
+stm32f1xx_it.c:205:6:DMA1_Channel4_IRQHandler	0	static
11
+stm32f1xx_it.c:219:6:DMA1_Channel5_IRQHandler	0	static
12
+stm32f1xx_it.c:233:6:USART1_IRQHandler	0	static

+ 0 - 965
Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_adc.h

@@ -1,965 +0,0 @@
1
-/**
2
-  ******************************************************************************
3
-  * @file    stm32f1xx_hal_adc.h
4
-  * @author  MCD Application Team
5
-  * @brief   Header file containing functions prototypes of ADC HAL library.
6
-  ******************************************************************************
7
-  * @attention
8
-  *
9
-  * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
10
-  *
11
-  * Redistribution and use in source and binary forms, with or without modification,
12
-  * are permitted provided that the following conditions are met:
13
-  *   1. Redistributions of source code must retain the above copyright notice,
14
-  *      this list of conditions and the following disclaimer.
15
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
16
-  *      this list of conditions and the following disclaimer in the documentation
17
-  *      and/or other materials provided with the distribution.
18
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
19
-  *      may be used to endorse or promote products derived from this software
20
-  *      without specific prior written permission.
21
-  *
22
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
23
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
25
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
26
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
28
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
30
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32
-  *
33
-  ******************************************************************************
34
-  */
35
-
36
-/* Define to prevent recursive inclusion -------------------------------------*/
37
-#ifndef __STM32F1xx_HAL_ADC_H
38
-#define __STM32F1xx_HAL_ADC_H
39
-
40
-#ifdef __cplusplus
41
- extern "C" {
42
-#endif
43
-
44
-/* Includes ------------------------------------------------------------------*/
45
-#include "stm32f1xx_hal_def.h"  
46
-/** @addtogroup STM32F1xx_HAL_Driver
47
-  * @{
48
-  */
49
-
50
-/** @addtogroup ADC
51
-  * @{
52
-  */ 
53
-
54
-/* Exported types ------------------------------------------------------------*/ 
55
-/** @defgroup ADC_Exported_Types ADC Exported Types
56
-  * @{
57
-  */
58
-
59
-/** 
60
-  * @brief  Structure definition of ADC and regular group initialization 
61
-  * @note   Parameters of this structure are shared within 2 scopes:
62
-  *          - Scope entire ADC (affects regular and injected groups): DataAlign, ScanConvMode.
63
-  *          - Scope regular group: ContinuousConvMode, NbrOfConversion, DiscontinuousConvMode, NbrOfDiscConversion, ExternalTrigConvEdge, ExternalTrigConv.
64
-  * @note   The setting of these parameters with function HAL_ADC_Init() is conditioned to ADC state.
65
-  *         ADC can be either disabled or enabled without conversion on going on regular group.
66
-  */
67
-typedef struct
68
-{
69
-  uint32_t DataAlign;             /*!< Specifies ADC data alignment to right (MSB on register bit 11 and LSB on register bit 0) (default setting)
70
-                                       or to left (if regular group: MSB on register bit 15 and LSB on register bit 4, if injected group (MSB kept as signed value due to potential negative value after offset application): MSB on register bit 14 and LSB on register bit 3).
71
-                                       This parameter can be a value of @ref ADC_Data_align */
72
-  uint32_t ScanConvMode;          /*!< Configures the sequencer of regular and injected groups.
73
-                                       This parameter can be associated to parameter 'DiscontinuousConvMode' to have main sequence subdivided in successive parts.
74
-                                       If disabled: Conversion is performed in single mode (one channel converted, the one defined in rank 1).
75
-                                                    Parameters 'NbrOfConversion' and 'InjectedNbrOfConversion' are discarded (equivalent to set to 1).
76
-                                       If enabled:  Conversions are performed in sequence mode (multiple ranks defined by 'NbrOfConversion'/'InjectedNbrOfConversion' and each channel rank).
77
-                                                    Scan direction is upward: from rank1 to rank 'n'.
78
-                                       This parameter can be a value of @ref ADC_Scan_mode
79
-                                       Note: For regular group, this parameter should be enabled in conversion either by polling (HAL_ADC_Start with Discontinuous mode and NbrOfDiscConversion=1)
80
-                                             or by DMA (HAL_ADC_Start_DMA), but not by interruption (HAL_ADC_Start_IT): in scan mode, interruption is triggered only on the
81
-                                             the last conversion of the sequence. All previous conversions would be overwritten by the last one.
82
-                                             Injected group used with scan mode has not this constraint: each rank has its own result register, no data is overwritten. */
83
-  uint32_t ContinuousConvMode;    /*!< Specifies whether the conversion is performed in single mode (one conversion) or continuous mode for regular group,
84
-                                       after the selected trigger occurred (software start or external trigger).
85
-                                       This parameter can be set to ENABLE or DISABLE. */
86
-  uint32_t NbrOfConversion;       /*!< Specifies the number of ranks that will be converted within the regular group sequencer.
87
-                                       To use regular group sequencer and convert several ranks, parameter 'ScanConvMode' must be enabled.
88
-                                       This parameter must be a number between Min_Data = 1 and Max_Data = 16. */
89
-  uint32_t DiscontinuousConvMode; /*!< Specifies whether the conversions sequence of regular group is performed in Complete-sequence/Discontinuous-sequence (main sequence subdivided in successive parts).
90
-                                       Discontinuous mode is used only if sequencer is enabled (parameter 'ScanConvMode'). If sequencer is disabled, this parameter is discarded.
91
-                                       Discontinuous mode can be enabled only if continuous mode is disabled. If continuous mode is enabled, this parameter setting is discarded.
92
-                                       This parameter can be set to ENABLE or DISABLE. */
93
-  uint32_t NbrOfDiscConversion;   /*!< Specifies the number of discontinuous conversions in which the  main sequence of regular group (parameter NbrOfConversion) will be subdivided.
94
-                                       If parameter 'DiscontinuousConvMode' is disabled, this parameter is discarded.
95
-                                       This parameter must be a number between Min_Data = 1 and Max_Data = 8. */
96
-  uint32_t ExternalTrigConv;      /*!< Selects the external event used to trigger the conversion start of regular group.
97
-                                       If set to ADC_SOFTWARE_START, external triggers are disabled.
98
-                                       If set to external trigger source, triggering is on event rising edge.
99
-                                       This parameter can be a value of @ref ADC_External_trigger_source_Regular */
100
-}ADC_InitTypeDef;
101
-
102
-/** 
103
-  * @brief  Structure definition of ADC channel for regular group   
104
-  * @note   The setting of these parameters with function HAL_ADC_ConfigChannel() is conditioned to ADC state.
105
-  *         ADC can be either disabled or enabled without conversion on going on regular group.
106
-  */ 
107
-typedef struct 
108
-{
109
-  uint32_t Channel;                /*!< Specifies the channel to configure into ADC regular group.
110
-                                        This parameter can be a value of @ref ADC_channels
111
-                                        Note: Depending on devices, some channels may not be available on package pins. Refer to device datasheet for channels availability.
112
-                                        Note: On STM32F1 devices with several ADC: Only ADC1 can access internal measurement channels (VrefInt/TempSensor) 
113
-                                        Note: On STM32F10xx8 and STM32F10xxB devices: A low-amplitude voltage glitch may be generated (on ADC input 0) on the PA0 pin, when the ADC is converting with injection trigger.
114
-                                              It is advised to distribute the analog channels so that Channel 0 is configured as an injected channel.
115
-                                              Refer to errata sheet of these devices for more details. */
116
-  uint32_t Rank;                   /*!< Specifies the rank in the regular group sequencer 
117
-                                        This parameter can be a value of @ref ADC_regular_rank
118
-                                        Note: In case of need to disable a channel or change order of conversion sequencer, rank containing a previous channel setting can be overwritten by the new channel setting (or parameter number of conversions can be adjusted) */
119
-  uint32_t SamplingTime;           /*!< Sampling time value to be set for the selected channel.
120
-                                        Unit: ADC clock cycles
121
-                                        Conversion time is the addition of sampling time and processing time (12.5 ADC clock cycles at ADC resolution 12 bits).
122
-                                        This parameter can be a value of @ref ADC_sampling_times
123
-                                        Caution: This parameter updates the parameter property of the channel, that can be used into regular and/or injected groups.
124
-                                                 If this same channel has been previously configured in the other group (regular/injected), it will be updated to last setting.
125
-                                        Note: In case of usage of internal measurement channels (VrefInt/TempSensor),
126
-                                              sampling time constraints must be respected (sampling time can be adjusted in function of ADC clock frequency and sampling time setting)
127
-                                              Refer to device datasheet for timings values, parameters TS_vrefint, TS_temp (values rough order: 5us to 17.1us min). */
128
-}ADC_ChannelConfTypeDef;
129
-
130
-/**
131
-  * @brief  ADC Configuration analog watchdog definition
132
-  * @note   The setting of these parameters with function is conditioned to ADC state.
133
-  *         ADC state can be either disabled or enabled without conversion on going on regular and injected groups.
134
-  */
135
-typedef struct
136
-{
137
-  uint32_t WatchdogMode;      /*!< Configures the ADC analog watchdog mode: single/all channels, regular/injected group.
138
-                                   This parameter can be a value of @ref ADC_analog_watchdog_mode. */
139
-  uint32_t Channel;           /*!< Selects which ADC channel to monitor by analog watchdog.
140
-                                   This parameter has an effect only if watchdog mode is configured on single channel (parameter WatchdogMode)
141
-                                   This parameter can be a value of @ref ADC_channels. */
142
-  uint32_t ITMode;            /*!< Specifies whether the analog watchdog is configured in interrupt or polling mode.
143
-                                   This parameter can be set to ENABLE or DISABLE */
144
-  uint32_t HighThreshold;     /*!< Configures the ADC analog watchdog High threshold value.
145
-                                   This parameter must be a number between Min_Data = 0x000 and Max_Data = 0xFFF. */
146
-  uint32_t LowThreshold;      /*!< Configures the ADC analog watchdog High threshold value.
147
-                                   This parameter must be a number between Min_Data = 0x000 and Max_Data = 0xFFF. */
148
-  uint32_t WatchdogNumber;    /*!< Reserved for future use, can be set to 0 */
149
-}ADC_AnalogWDGConfTypeDef;
150
-
151
-/** 
152
-  * @brief  HAL ADC state machine: ADC states definition (bitfields)
153
-  */ 
154
-/* States of ADC global scope */
155
-#define HAL_ADC_STATE_RESET             0x00000000U    /*!< ADC not yet initialized or disabled */
156
-#define HAL_ADC_STATE_READY             0x00000001U    /*!< ADC peripheral ready for use */
157
-#define HAL_ADC_STATE_BUSY_INTERNAL     0x00000002U    /*!< ADC is busy to internal process (initialization, calibration) */
158
-#define HAL_ADC_STATE_TIMEOUT           0x00000004U    /*!< TimeOut occurrence */
159
-
160
-/* States of ADC errors */
161
-#define HAL_ADC_STATE_ERROR_INTERNAL    0x00000010U    /*!< Internal error occurrence */
162
-#define HAL_ADC_STATE_ERROR_CONFIG      0x00000020U    /*!< Configuration error occurrence */
163
-#define HAL_ADC_STATE_ERROR_DMA         0x00000040U    /*!< DMA error occurrence */
164
-
165
-/* States of ADC group regular */
166
-#define HAL_ADC_STATE_REG_BUSY          0x00000100U    /*!< A conversion on group regular is ongoing or can occur (either by continuous mode,
167
-                                                           external trigger, low power auto power-on, multimode ADC master control) */
168
-#define HAL_ADC_STATE_REG_EOC           0x00000200U    /*!< Conversion data available on group regular */
169
-#define HAL_ADC_STATE_REG_OVR           0x00000400U    /*!< Not available on STM32F1 device: Overrun occurrence */
170
-#define HAL_ADC_STATE_REG_EOSMP         0x00000800U    /*!< Not available on STM32F1 device: End Of Sampling flag raised  */
171
-
172
-/* States of ADC group injected */
173
-#define HAL_ADC_STATE_INJ_BUSY          0x00001000U    /*!< A conversion on group injected is ongoing or can occur (either by auto-injection mode,
174
-                                                           external trigger, low power auto power-on, multimode ADC master control) */
175
-#define HAL_ADC_STATE_INJ_EOC           0x00002000U    /*!< Conversion data available on group injected */
176
-#define HAL_ADC_STATE_INJ_JQOVF         0x00004000U    /*!< Not available on STM32F1 device: Injected queue overflow occurrence */
177
-
178
-/* States of ADC analog watchdogs */
179
-#define HAL_ADC_STATE_AWD1              0x00010000U    /*!< Out-of-window occurrence of analog watchdog 1 */
180
-#define HAL_ADC_STATE_AWD2              0x00020000U    /*!< Not available on STM32F1 device: Out-of-window occurrence of analog watchdog 2 */
181
-#define HAL_ADC_STATE_AWD3              0x00040000U    /*!< Not available on STM32F1 device: Out-of-window occurrence of analog watchdog 3 */
182
-
183
-/* States of ADC multi-mode */
184
-#define HAL_ADC_STATE_MULTIMODE_SLAVE   0x00100000U    /*!< ADC in multimode slave state, controlled by another ADC master ( */
185
-
186
-
187
-/** 
188
-  * @brief  ADC handle Structure definition  
189
-  */ 
190
-typedef struct
191
-{
192
-  ADC_TypeDef                   *Instance;              /*!< Register base address */
193
-
194
-  ADC_InitTypeDef               Init;                   /*!< ADC required parameters */
195
-
196
-  DMA_HandleTypeDef             *DMA_Handle;            /*!< Pointer DMA Handler */
197
-
198
-  HAL_LockTypeDef               Lock;                   /*!< ADC locking object */
199
-  
200
-  __IO uint32_t                 State;                  /*!< ADC communication state (bitmap of ADC states) */
201
-
202
-  __IO uint32_t                 ErrorCode;              /*!< ADC Error code */
203
-}ADC_HandleTypeDef;
204
-/**
205
-  * @}
206
-  */
207
-
208
-
209
-
210
-/* Exported constants --------------------------------------------------------*/
211
-
212
-/** @defgroup ADC_Exported_Constants ADC Exported Constants
213
-  * @{
214
-  */
215
-
216
-/** @defgroup ADC_Error_Code ADC Error Code
217
-  * @{
218
-  */
219
-#define HAL_ADC_ERROR_NONE                0x00U   /*!< No error                                              */
220
-#define HAL_ADC_ERROR_INTERNAL            0x01U   /*!< ADC IP internal error: if problem of clocking, 
221
-                                                       enable/disable, erroneous state                       */
222
-#define HAL_ADC_ERROR_OVR                 0x02U   /*!< Overrun error                                         */
223
-#define HAL_ADC_ERROR_DMA                 0x04U   /*!< DMA transfer error                                    */
224
-
225
-/**
226
-  * @}
227
-  */
228
-
229
-
230
-/** @defgroup ADC_Data_align ADC data alignment
231
-  * @{
232
-  */
233
-#define ADC_DATAALIGN_RIGHT      0x00000000U
234
-#define ADC_DATAALIGN_LEFT       ((uint32_t)ADC_CR2_ALIGN)
235
-/**
236
-  * @}
237
-  */
238
-
239
-/** @defgroup ADC_Scan_mode ADC scan mode
240
-  * @{
241
-  */
242
-/* Note: Scan mode values are not among binary choices ENABLE/DISABLE for     */
243
-/*       compatibility with other STM32 devices having a sequencer with       */
244
-/*       additional options.                                                  */
245
-#define ADC_SCAN_DISABLE         0x00000000U
246
-#define ADC_SCAN_ENABLE          ((uint32_t)ADC_CR1_SCAN)
247
-/**
248
-  * @}
249
-  */
250
-
251
-/** @defgroup ADC_External_trigger_edge_Regular ADC external trigger enable for regular group
252
-  * @{
253
-  */
254
-#define ADC_EXTERNALTRIGCONVEDGE_NONE           0x00000000U
255
-#define ADC_EXTERNALTRIGCONVEDGE_RISING         ((uint32_t)ADC_CR2_EXTTRIG)
256
-/**
257
-  * @}
258
-  */
259
-
260
-/** @defgroup ADC_channels ADC channels
261
-  * @{
262
-  */
263
-/* Note: Depending on devices, some channels may not be available on package  */
264
-/*       pins. Refer to device datasheet for channels availability.           */
265
-#define ADC_CHANNEL_0                       0x00000000U
266
-#define ADC_CHANNEL_1           ((uint32_t)(                                                                    ADC_SQR3_SQ1_0))
267
-#define ADC_CHANNEL_2           ((uint32_t)(                                                   ADC_SQR3_SQ1_1                 ))
268
-#define ADC_CHANNEL_3           ((uint32_t)(                                                   ADC_SQR3_SQ1_1 | ADC_SQR3_SQ1_0))
269
-#define ADC_CHANNEL_4           ((uint32_t)(                                  ADC_SQR3_SQ1_2                                  ))
270
-#define ADC_CHANNEL_5           ((uint32_t)(                                  ADC_SQR3_SQ1_2                  | ADC_SQR3_SQ1_0))
271
-#define ADC_CHANNEL_6           ((uint32_t)(                                  ADC_SQR3_SQ1_2 | ADC_SQR3_SQ1_1                 ))
272
-#define ADC_CHANNEL_7           ((uint32_t)(                                  ADC_SQR3_SQ1_2 | ADC_SQR3_SQ1_1 | ADC_SQR3_SQ1_0))
273
-#define ADC_CHANNEL_8           ((uint32_t)(                 ADC_SQR3_SQ1_3                                                   ))
274
-#define ADC_CHANNEL_9           ((uint32_t)(                 ADC_SQR3_SQ1_3                                   | ADC_SQR3_SQ1_0))
275
-#define ADC_CHANNEL_10          ((uint32_t)(                 ADC_SQR3_SQ1_3                  | ADC_SQR3_SQ1_1                 ))
276
-#define ADC_CHANNEL_11          ((uint32_t)(                 ADC_SQR3_SQ1_3                  | ADC_SQR3_SQ1_1 | ADC_SQR3_SQ1_0))
277
-#define ADC_CHANNEL_12          ((uint32_t)(                 ADC_SQR3_SQ1_3 | ADC_SQR3_SQ1_2                                  ))
278
-#define ADC_CHANNEL_13          ((uint32_t)(                 ADC_SQR3_SQ1_3 | ADC_SQR3_SQ1_2                  | ADC_SQR3_SQ1_0))
279
-#define ADC_CHANNEL_14          ((uint32_t)(                 ADC_SQR3_SQ1_3 | ADC_SQR3_SQ1_2 | ADC_SQR3_SQ1_1                 ))
280
-#define ADC_CHANNEL_15          ((uint32_t)(                 ADC_SQR3_SQ1_3 | ADC_SQR3_SQ1_2 | ADC_SQR3_SQ1_1 | ADC_SQR3_SQ1_0))
281
-#define ADC_CHANNEL_16          ((uint32_t)(ADC_SQR3_SQ1_4                                                                    ))
282
-#define ADC_CHANNEL_17          ((uint32_t)(ADC_SQR3_SQ1_4                                                    | ADC_SQR3_SQ1_0))
283
-
284
-#define ADC_CHANNEL_TEMPSENSOR  ADC_CHANNEL_16  /* ADC internal channel (no connection on device pin) */
285
-#define ADC_CHANNEL_VREFINT     ADC_CHANNEL_17  /* ADC internal channel (no connection on device pin) */
286
-/**
287
-  * @}
288
-  */
289
-
290
-/** @defgroup ADC_sampling_times ADC sampling times
291
-  * @{
292
-  */
293
-#define ADC_SAMPLETIME_1CYCLE_5                   0x00000000U                                              /*!< Sampling time 1.5 ADC clock cycle */
294
-#define ADC_SAMPLETIME_7CYCLES_5      ((uint32_t)(                                      ADC_SMPR2_SMP0_0)) /*!< Sampling time 7.5 ADC clock cycles */
295
-#define ADC_SAMPLETIME_13CYCLES_5     ((uint32_t)(                   ADC_SMPR2_SMP0_1                   )) /*!< Sampling time 13.5 ADC clock cycles */
296
-#define ADC_SAMPLETIME_28CYCLES_5     ((uint32_t)(                   ADC_SMPR2_SMP0_1 | ADC_SMPR2_SMP0_0)) /*!< Sampling time 28.5 ADC clock cycles */
297
-#define ADC_SAMPLETIME_41CYCLES_5     ((uint32_t)(ADC_SMPR2_SMP0_2                                      )) /*!< Sampling time 41.5 ADC clock cycles */
298
-#define ADC_SAMPLETIME_55CYCLES_5     ((uint32_t)(ADC_SMPR2_SMP0_2                    | ADC_SMPR2_SMP0_0)) /*!< Sampling time 55.5 ADC clock cycles */
299
-#define ADC_SAMPLETIME_71CYCLES_5     ((uint32_t)(ADC_SMPR2_SMP0_2 | ADC_SMPR2_SMP0_1                   )) /*!< Sampling time 71.5 ADC clock cycles */
300
-#define ADC_SAMPLETIME_239CYCLES_5    ((uint32_t)(ADC_SMPR2_SMP0_2 | ADC_SMPR2_SMP0_1 | ADC_SMPR2_SMP0_0)) /*!< Sampling time 239.5 ADC clock cycles */
301
-/**
302
-  * @}
303
-  */
304
-
305
-/** @defgroup ADC_regular_rank ADC rank into regular group
306
-  * @{
307
-  */
308
-#define ADC_REGULAR_RANK_1                 0x00000001U
309
-#define ADC_REGULAR_RANK_2                 0x00000002U
310
-#define ADC_REGULAR_RANK_3                 0x00000003U
311
-#define ADC_REGULAR_RANK_4                 0x00000004U
312
-#define ADC_REGULAR_RANK_5                 0x00000005U
313
-#define ADC_REGULAR_RANK_6                 0x00000006U
314
-#define ADC_REGULAR_RANK_7                 0x00000007U
315
-#define ADC_REGULAR_RANK_8                 0x00000008U
316
-#define ADC_REGULAR_RANK_9                 0x00000009U
317
-#define ADC_REGULAR_RANK_10                0x0000000AU
318
-#define ADC_REGULAR_RANK_11                0x0000000BU
319
-#define ADC_REGULAR_RANK_12                0x0000000CU
320
-#define ADC_REGULAR_RANK_13                0x0000000DU
321
-#define ADC_REGULAR_RANK_14                0x0000000EU
322
-#define ADC_REGULAR_RANK_15                0x0000000FU
323
-#define ADC_REGULAR_RANK_16                0x00000010U
324
-/**
325
-  * @}
326
-  */
327
-
328
-/** @defgroup ADC_analog_watchdog_mode ADC analog watchdog mode
329
-  * @{
330
-  */
331
-#define ADC_ANALOGWATCHDOG_NONE                             0x00000000U
332
-#define ADC_ANALOGWATCHDOG_SINGLE_REG           ((uint32_t)(ADC_CR1_AWDSGL | ADC_CR1_AWDEN))
333
-#define ADC_ANALOGWATCHDOG_SINGLE_INJEC         ((uint32_t)(ADC_CR1_AWDSGL | ADC_CR1_JAWDEN))
334
-#define ADC_ANALOGWATCHDOG_SINGLE_REGINJEC      ((uint32_t)(ADC_CR1_AWDSGL | ADC_CR1_AWDEN | ADC_CR1_JAWDEN))
335
-#define ADC_ANALOGWATCHDOG_ALL_REG              ((uint32_t)ADC_CR1_AWDEN)
336
-#define ADC_ANALOGWATCHDOG_ALL_INJEC            ((uint32_t)ADC_CR1_JAWDEN)
337
-#define ADC_ANALOGWATCHDOG_ALL_REGINJEC         ((uint32_t)(ADC_CR1_AWDEN | ADC_CR1_JAWDEN))
338
-/**
339
-  * @}
340
-  */
341
-
342
-/** @defgroup ADC_conversion_group ADC conversion group
343
-  * @{
344
-  */
345
-#define ADC_REGULAR_GROUP             ((uint32_t)(ADC_FLAG_EOC))
346
-#define ADC_INJECTED_GROUP            ((uint32_t)(ADC_FLAG_JEOC))
347
-#define ADC_REGULAR_INJECTED_GROUP    ((uint32_t)(ADC_FLAG_EOC | ADC_FLAG_JEOC))
348
-/**
349
-  * @}
350
-  */
351
-
352
-/** @defgroup ADC_Event_type ADC Event type
353
-  * @{
354
-  */
355
-#define ADC_AWD_EVENT               ((uint32_t)ADC_FLAG_AWD)   /*!< ADC Analog watchdog event */
356
-
357
-#define ADC_AWD1_EVENT              ADC_AWD_EVENT              /*!< ADC Analog watchdog 1 event: Alternate naming for compatibility with other STM32 devices having several analog watchdogs */
358
-/**
359
-  * @}
360
-  */
361
-
362
-/** @defgroup ADC_interrupts_definition ADC interrupts definition
363
-  * @{
364
-  */
365
-#define ADC_IT_EOC           ADC_CR1_EOCIE        /*!< ADC End of Regular Conversion interrupt source */
366
-#define ADC_IT_JEOC          ADC_CR1_JEOCIE       /*!< ADC End of Injected Conversion interrupt source */
367
-#define ADC_IT_AWD           ADC_CR1_AWDIE        /*!< ADC Analog watchdog interrupt source */
368
-/**
369
-  * @}
370
-  */
371
-
372
-/** @defgroup ADC_flags_definition ADC flags definition
373
-  * @{
374
-  */
375
-#define ADC_FLAG_STRT          ADC_SR_STRT     /*!< ADC Regular group start flag */
376
-#define ADC_FLAG_JSTRT         ADC_SR_JSTRT    /*!< ADC Injected group start flag */
377
-#define ADC_FLAG_EOC           ADC_SR_EOC      /*!< ADC End of Regular conversion flag */
378
-#define ADC_FLAG_JEOC          ADC_SR_JEOC     /*!< ADC End of Injected conversion flag */
379
-#define ADC_FLAG_AWD           ADC_SR_AWD      /*!< ADC Analog watchdog flag */
380
-/**
381
-  * @}
382
-  */
383
-
384
-
385
-/**
386
-  * @}
387
-  */ 
388
-
389
-/* Private constants ---------------------------------------------------------*/
390
-
391
-/** @addtogroup ADC_Private_Constants ADC Private Constants
392
-  * @{
393
-  */
394
-
395
-/** @defgroup ADC_conversion_cycles ADC conversion cycles
396
-  * @{
397
-  */
398
-/* ADC conversion cycles (unit: ADC clock cycles)                           */
399
-/* (selected sampling time + conversion time of 12.5 ADC clock cycles, with */
400
-/* resolution 12 bits)                                                      */
401
-#define ADC_CONVERSIONCLOCKCYCLES_SAMPLETIME_1CYCLE5                  14U
402
-#define ADC_CONVERSIONCLOCKCYCLES_SAMPLETIME_7CYCLES5                 20U
403
-#define ADC_CONVERSIONCLOCKCYCLES_SAMPLETIME_13CYCLES5                26U
404
-#define ADC_CONVERSIONCLOCKCYCLES_SAMPLETIME_28CYCLES5                41U
405
-#define ADC_CONVERSIONCLOCKCYCLES_SAMPLETIME_41CYCLES5                54U
406
-#define ADC_CONVERSIONCLOCKCYCLES_SAMPLETIME_55CYCLES5                68U
407
-#define ADC_CONVERSIONCLOCKCYCLES_SAMPLETIME_71CYCLES5                84U
408
-#define ADC_CONVERSIONCLOCKCYCLES_SAMPLETIME_239CYCLES5              252U
409
-/**
410
-  * @}
411
-  */
412
-
413
-/** @defgroup ADC_sampling_times_all_channels ADC sampling times all channels
414
-  * @{
415
-  */
416
-#define ADC_SAMPLETIME_ALLCHANNELS_SMPR2BIT2                                          \
417
-     (ADC_SMPR2_SMP9_2 | ADC_SMPR2_SMP8_2 | ADC_SMPR2_SMP7_2 | ADC_SMPR2_SMP6_2 |     \
418
-      ADC_SMPR2_SMP5_2 | ADC_SMPR2_SMP4_2 | ADC_SMPR2_SMP3_2 | ADC_SMPR2_SMP2_2 |     \
419
-      ADC_SMPR2_SMP1_2 | ADC_SMPR2_SMP0_2)
420
-#define ADC_SAMPLETIME_ALLCHANNELS_SMPR1BIT2                                          \
421
-     (ADC_SMPR1_SMP17_2 | ADC_SMPR1_SMP16_2 | ADC_SMPR1_SMP15_2 | ADC_SMPR1_SMP14_2 | \
422
-      ADC_SMPR1_SMP13_2 | ADC_SMPR1_SMP12_2 | ADC_SMPR1_SMP11_2 | ADC_SMPR1_SMP10_2 )
423
-
424
-#define ADC_SAMPLETIME_ALLCHANNELS_SMPR2BIT1                                          \
425
-     (ADC_SMPR2_SMP9_1 | ADC_SMPR2_SMP8_1 | ADC_SMPR2_SMP7_1 | ADC_SMPR2_SMP6_1 |     \
426
-      ADC_SMPR2_SMP5_1 | ADC_SMPR2_SMP4_1 | ADC_SMPR2_SMP3_1 | ADC_SMPR2_SMP2_1 |     \
427
-      ADC_SMPR2_SMP1_1 | ADC_SMPR2_SMP0_1)
428
-#define ADC_SAMPLETIME_ALLCHANNELS_SMPR1BIT1                                          \
429
-     (ADC_SMPR1_SMP17_1 | ADC_SMPR1_SMP16_1 | ADC_SMPR1_SMP15_1 | ADC_SMPR1_SMP14_1 | \
430
-      ADC_SMPR1_SMP13_1 | ADC_SMPR1_SMP12_1 | ADC_SMPR1_SMP11_1 | ADC_SMPR1_SMP10_1 )
431
-
432
-#define ADC_SAMPLETIME_ALLCHANNELS_SMPR2BIT0                                          \
433
-     (ADC_SMPR2_SMP9_0 | ADC_SMPR2_SMP8_0 | ADC_SMPR2_SMP7_0 | ADC_SMPR2_SMP6_0 |     \
434
-      ADC_SMPR2_SMP5_0 | ADC_SMPR2_SMP4_0 | ADC_SMPR2_SMP3_0 | ADC_SMPR2_SMP2_0 |     \
435
-      ADC_SMPR2_SMP1_0 | ADC_SMPR2_SMP0_0)
436
-#define ADC_SAMPLETIME_ALLCHANNELS_SMPR1BIT0                                          \
437
-     (ADC_SMPR1_SMP17_0 | ADC_SMPR1_SMP16_0 | ADC_SMPR1_SMP15_0 | ADC_SMPR1_SMP14_0 | \
438
-      ADC_SMPR1_SMP13_0 | ADC_SMPR1_SMP12_0 | ADC_SMPR1_SMP11_0 | ADC_SMPR1_SMP10_0 )
439
-
440
-#define ADC_SAMPLETIME_1CYCLE5_SMPR2ALLCHANNELS    0x00000000U
441
-#define ADC_SAMPLETIME_7CYCLES5_SMPR2ALLCHANNELS   (ADC_SAMPLETIME_ALLCHANNELS_SMPR2BIT0)
442
-#define ADC_SAMPLETIME_13CYCLES5_SMPR2ALLCHANNELS  (ADC_SAMPLETIME_ALLCHANNELS_SMPR2BIT1)
443
-#define ADC_SAMPLETIME_28CYCLES5_SMPR2ALLCHANNELS  (ADC_SAMPLETIME_ALLCHANNELS_SMPR2BIT1 | ADC_SAMPLETIME_ALLCHANNELS_SMPR2BIT0)
444
-#define ADC_SAMPLETIME_41CYCLES5_SMPR2ALLCHANNELS  (ADC_SAMPLETIME_ALLCHANNELS_SMPR2BIT2)
445
-#define ADC_SAMPLETIME_55CYCLES5_SMPR2ALLCHANNELS  (ADC_SAMPLETIME_ALLCHANNELS_SMPR2BIT2 | ADC_SAMPLETIME_ALLCHANNELS_SMPR2BIT0)
446
-#define ADC_SAMPLETIME_71CYCLES5_SMPR2ALLCHANNELS  (ADC_SAMPLETIME_ALLCHANNELS_SMPR2BIT2 | ADC_SAMPLETIME_ALLCHANNELS_SMPR2BIT1)
447
-#define ADC_SAMPLETIME_239CYCLES5_SMPR2ALLCHANNELS (ADC_SAMPLETIME_ALLCHANNELS_SMPR2BIT2 | ADC_SAMPLETIME_ALLCHANNELS_SMPR2BIT1 | ADC_SAMPLETIME_ALLCHANNELS_SMPR2BIT0)
448
-
449
-#define ADC_SAMPLETIME_1CYCLE5_SMPR1ALLCHANNELS    0x00000000U
450
-#define ADC_SAMPLETIME_7CYCLES5_SMPR1ALLCHANNELS   (ADC_SAMPLETIME_ALLCHANNELS_SMPR1BIT0)
451
-#define ADC_SAMPLETIME_13CYCLES5_SMPR1ALLCHANNELS  (ADC_SAMPLETIME_ALLCHANNELS_SMPR1BIT1)
452
-#define ADC_SAMPLETIME_28CYCLES5_SMPR1ALLCHANNELS  (ADC_SAMPLETIME_ALLCHANNELS_SMPR1BIT1 | ADC_SAMPLETIME_ALLCHANNELS_SMPR1BIT0)
453
-#define ADC_SAMPLETIME_41CYCLES5_SMPR1ALLCHANNELS  (ADC_SAMPLETIME_ALLCHANNELS_SMPR1BIT2)
454
-#define ADC_SAMPLETIME_55CYCLES5_SMPR1ALLCHANNELS  (ADC_SAMPLETIME_ALLCHANNELS_SMPR1BIT2 | ADC_SAMPLETIME_ALLCHANNELS_SMPR1BIT0)
455
-#define ADC_SAMPLETIME_71CYCLES5_SMPR1ALLCHANNELS  (ADC_SAMPLETIME_ALLCHANNELS_SMPR1BIT2 | ADC_SAMPLETIME_ALLCHANNELS_SMPR1BIT1)
456
-#define ADC_SAMPLETIME_239CYCLES5_SMPR1ALLCHANNELS (ADC_SAMPLETIME_ALLCHANNELS_SMPR1BIT2 | ADC_SAMPLETIME_ALLCHANNELS_SMPR1BIT1 | ADC_SAMPLETIME_ALLCHANNELS_SMPR1BIT0)
457
-/**
458
-  * @}
459
-  */
460
-
461
-/* Combination of all post-conversion flags bits: EOC/EOS, JEOC/JEOS, OVR, AWDx */
462
-#define ADC_FLAG_POSTCONV_ALL   (ADC_FLAG_EOC | ADC_FLAG_JEOC | ADC_FLAG_AWD )
463
-
464
-/**
465
-  * @}
466
-  */
467
-
468
-
469
-/* Exported macro ------------------------------------------------------------*/
470
-
471
-/** @defgroup ADC_Exported_Macros ADC Exported Macros
472
-  * @{
473
-  */
474
-/* Macro for internal HAL driver usage, and possibly can be used into code of */
475
-/* final user.                                                                */    
476
-
477
-/**
478
-  * @brief Enable the ADC peripheral
479
-  * @note ADC enable requires a delay for ADC stabilization time
480
-  *       (refer to device datasheet, parameter tSTAB)
481
-  * @note On STM32F1, if ADC is already enabled this macro trigs a conversion 
482
-  *       SW start on regular group.
483
-  * @param __HANDLE__: ADC handle
484
-  * @retval None
485
-  */
486
-#define __HAL_ADC_ENABLE(__HANDLE__)                                           \
487
-  (SET_BIT((__HANDLE__)->Instance->CR2, (ADC_CR2_ADON)))
488
-    
489
-/**
490
-  * @brief Disable the ADC peripheral
491
-  * @param __HANDLE__: ADC handle
492
-  * @retval None
493
-  */
494
-#define __HAL_ADC_DISABLE(__HANDLE__)                                          \
495
-  (CLEAR_BIT((__HANDLE__)->Instance->CR2, (ADC_CR2_ADON)))
496
-    
497
-/** @brief Enable the ADC end of conversion interrupt.
498
-  * @param __HANDLE__: ADC handle
499
-  * @param __INTERRUPT__: ADC Interrupt
500
-  *          This parameter can be any combination of the following values:
501
-  *            @arg ADC_IT_EOC: ADC End of Regular Conversion interrupt source
502
-  *            @arg ADC_IT_JEOC: ADC End of Injected Conversion interrupt source
503
-  *            @arg ADC_IT_AWD: ADC Analog watchdog interrupt source
504
-  * @retval None
505
-  */
506
-#define __HAL_ADC_ENABLE_IT(__HANDLE__, __INTERRUPT__)                         \
507
-  (SET_BIT((__HANDLE__)->Instance->CR1, (__INTERRUPT__)))
508
-    
509
-/** @brief Disable the ADC end of conversion interrupt.
510
-  * @param __HANDLE__: ADC handle
511
-  * @param __INTERRUPT__: ADC Interrupt
512
-  *          This parameter can be any combination of the following values:
513
-  *            @arg ADC_IT_EOC: ADC End of Regular Conversion interrupt source
514
-  *            @arg ADC_IT_JEOC: ADC End of Injected Conversion interrupt source
515
-  *            @arg ADC_IT_AWD: ADC Analog watchdog interrupt source
516
-  * @retval None
517
-  */
518
-#define __HAL_ADC_DISABLE_IT(__HANDLE__, __INTERRUPT__)                        \
519
-  (CLEAR_BIT((__HANDLE__)->Instance->CR1, (__INTERRUPT__)))
520
-
521
-/** @brief  Checks if the specified ADC interrupt source is enabled or disabled.
522
-  * @param __HANDLE__: ADC handle
523
-  * @param __INTERRUPT__: ADC interrupt source to check
524
-  *          This parameter can be any combination of the following values:
525
-  *            @arg ADC_IT_EOC: ADC End of Regular Conversion interrupt source
526
-  *            @arg ADC_IT_JEOC: ADC End of Injected Conversion interrupt source
527
-  *            @arg ADC_IT_AWD: ADC Analog watchdog interrupt source
528
-  * @retval None
529
-  */
530
-#define __HAL_ADC_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__)                     \
531
-  (((__HANDLE__)->Instance->CR1 & (__INTERRUPT__)) == (__INTERRUPT__))
532
-
533
-/** @brief Get the selected ADC's flag status.
534
-  * @param __HANDLE__: ADC handle
535
-  * @param __FLAG__: ADC flag
536
-  *          This parameter can be any combination of the following values:
537
-  *            @arg ADC_FLAG_STRT: ADC Regular group start flag
538
-  *            @arg ADC_FLAG_JSTRT: ADC Injected group start flag
539
-  *            @arg ADC_FLAG_EOC: ADC End of Regular conversion flag
540
-  *            @arg ADC_FLAG_JEOC: ADC End of Injected conversion flag
541
-  *            @arg ADC_FLAG_AWD: ADC Analog watchdog flag
542
-  * @retval None
543
-  */
544
-#define __HAL_ADC_GET_FLAG(__HANDLE__, __FLAG__)                               \
545
-  ((((__HANDLE__)->Instance->SR) & (__FLAG__)) == (__FLAG__))
546
-    
547
-/** @brief Clear the ADC's pending flags
548
-  * @param __HANDLE__: ADC handle
549
-  * @param __FLAG__: ADC flag
550
-  *          This parameter can be any combination of the following values:
551
-  *            @arg ADC_FLAG_STRT: ADC Regular group start flag
552
-  *            @arg ADC_FLAG_JSTRT: ADC Injected group start flag
553
-  *            @arg ADC_FLAG_EOC: ADC End of Regular conversion flag
554
-  *            @arg ADC_FLAG_JEOC: ADC End of Injected conversion flag
555
-  *            @arg ADC_FLAG_AWD: ADC Analog watchdog flag
556
-  * @retval None
557
-  */
558
-#define __HAL_ADC_CLEAR_FLAG(__HANDLE__, __FLAG__)                             \
559
-  (WRITE_REG((__HANDLE__)->Instance->SR, ~(__FLAG__)))
560
-
561
-/** @brief  Reset ADC handle state
562
-  * @param  __HANDLE__: ADC handle
563
-  * @retval None
564
-  */
565
-#define __HAL_ADC_RESET_HANDLE_STATE(__HANDLE__)                               \
566
-  ((__HANDLE__)->State = HAL_ADC_STATE_RESET)
567
-
568
-/**
569
-  * @}
570
-  */
571
-
572
-/* Private macro ------------------------------------------------------------*/
573
-
574
-/** @defgroup ADC_Private_Macros ADC Private Macros
575
-  * @{
576
-  */
577
-/* Macro reserved for internal HAL driver usage, not intended to be used in   */
578
-/* code of final user.                                                        */
579
-
580
-/**
581
-  * @brief Verification of ADC state: enabled or disabled
582
-  * @param __HANDLE__: ADC handle
583
-  * @retval SET (ADC enabled) or RESET (ADC disabled)
584
-  */
585
-#define ADC_IS_ENABLE(__HANDLE__)                                              \
586
-  ((( ((__HANDLE__)->Instance->CR2 & ADC_CR2_ADON) == ADC_CR2_ADON )           \
587
-   ) ? SET : RESET)
588
-
589
-/**
590
-  * @brief Test if conversion trigger of regular group is software start
591
-  *        or external trigger.
592
-  * @param __HANDLE__: ADC handle
593
-  * @retval SET (software start) or RESET (external trigger)
594
-  */
595
-#define ADC_IS_SOFTWARE_START_REGULAR(__HANDLE__)                              \
596
-  (READ_BIT((__HANDLE__)->Instance->CR2, ADC_CR2_EXTSEL) == ADC_SOFTWARE_START)
597
-
598
-/**
599
-  * @brief Test if conversion trigger of injected group is software start
600
-  *        or external trigger.
601
-  * @param __HANDLE__: ADC handle
602
-  * @retval SET (software start) or RESET (external trigger)
603
-  */
604
-#define ADC_IS_SOFTWARE_START_INJECTED(__HANDLE__)                             \
605
-  (READ_BIT((__HANDLE__)->Instance->CR2, ADC_CR2_JEXTSEL) == ADC_INJECTED_SOFTWARE_START)
606
-
607
-/**
608
-  * @brief Simultaneously clears and sets specific bits of the handle State
609
-  * @note: ADC_STATE_CLR_SET() macro is merely aliased to generic macro MODIFY_REG(),
610
-  *        the first parameter is the ADC handle State, the second parameter is the
611
-  *        bit field to clear, the third and last parameter is the bit field to set.
612
-  * @retval None
613
-  */
614
-#define ADC_STATE_CLR_SET MODIFY_REG
615
-
616
-/**
617
-  * @brief Clear ADC error code (set it to error code: "no error")
618
-  * @param __HANDLE__: ADC handle
619
-  * @retval None
620
-  */
621
-#define ADC_CLEAR_ERRORCODE(__HANDLE__)                                        \
622
-  ((__HANDLE__)->ErrorCode = HAL_ADC_ERROR_NONE)
623
-
624
-/**
625
-  * @brief Set ADC number of conversions into regular channel sequence length.
626
-  * @param _NbrOfConversion_: Regular channel sequence length 
627
-  * @retval None
628
-  */
629
-#define ADC_SQR1_L_SHIFT(_NbrOfConversion_)                                    \
630
-  (((_NbrOfConversion_) - (uint8_t)1) << ADC_SQR1_L_Pos)
631
-
632
-/**
633
-  * @brief Set the ADC's sample time for channel numbers between 10 and 18.
634
-  * @param _SAMPLETIME_: Sample time parameter.
635
-  * @param _CHANNELNB_: Channel number.  
636
-  * @retval None
637
-  */
638
-#define ADC_SMPR1(_SAMPLETIME_, _CHANNELNB_)                                   \
639
-  ((_SAMPLETIME_) << (ADC_SMPR1_SMP11_Pos * ((_CHANNELNB_) - 10)))
640
-
641
-/**
642
-  * @brief Set the ADC's sample time for channel numbers between 0 and 9.
643
-  * @param _SAMPLETIME_: Sample time parameter.
644
-  * @param _CHANNELNB_: Channel number.  
645
-  * @retval None
646
-  */
647
-#define ADC_SMPR2(_SAMPLETIME_, _CHANNELNB_)                                   \
648
-  ((_SAMPLETIME_) << (ADC_SMPR2_SMP1_Pos * (_CHANNELNB_)))
649
-
650
-/**
651
-  * @brief Set the selected regular channel rank for rank between 1 and 6.
652
-  * @param _CHANNELNB_: Channel number.
653
-  * @param _RANKNB_: Rank number.    
654
-  * @retval None
655
-  */
656
-#define ADC_SQR3_RK(_CHANNELNB_, _RANKNB_)                                     \
657
-  ((_CHANNELNB_) << (ADC_SQR3_SQ2_Pos * ((_RANKNB_) - 1)))
658
-
659
-/**
660
-  * @brief Set the selected regular channel rank for rank between 7 and 12.
661
-  * @param _CHANNELNB_: Channel number.
662
-  * @param _RANKNB_: Rank number.    
663
-  * @retval None
664
-  */
665
-#define ADC_SQR2_RK(_CHANNELNB_, _RANKNB_)                                     \
666
-  ((_CHANNELNB_) << (ADC_SQR2_SQ8_Pos * ((_RANKNB_) - 7)))
667
-
668
-/**
669
-  * @brief Set the selected regular channel rank for rank between 13 and 16.
670
-  * @param _CHANNELNB_: Channel number.
671
-  * @param _RANKNB_: Rank number.    
672
-  * @retval None
673
-  */
674
-#define ADC_SQR1_RK(_CHANNELNB_, _RANKNB_)                                     \
675
-  ((_CHANNELNB_) << (ADC_SQR1_SQ14_Pos * ((_RANKNB_) - 13)))
676
-
677
-/**
678
-  * @brief Set the injected sequence length.
679
-  * @param _JSQR_JL_: Sequence length.
680
-  * @retval None
681
-  */
682
-#define ADC_JSQR_JL_SHIFT(_JSQR_JL_)                                           \
683
-  (((_JSQR_JL_) -1) << ADC_JSQR_JL_Pos)
684
-
685
-/**
686
-  * @brief Set the selected injected channel rank
687
-  *        Note: on STM32F1 devices, channel rank position in JSQR register
688
-  *              is depending on total number of ranks selected into
689
-  *              injected sequencer (ranks sequence starting from 4-JL)
690
-  * @param _CHANNELNB_: Channel number.
691
-  * @param _RANKNB_: Rank number.
692
-  * @param _JSQR_JL_: Sequence length.
693
-  * @retval None
694
-  */
695
-#define ADC_JSQR_RK_JL(_CHANNELNB_, _RANKNB_, _JSQR_JL_)                       \
696
-  ((_CHANNELNB_) << (ADC_JSQR_JSQ2_Pos * ((4 - ((_JSQR_JL_) - (_RANKNB_))) - 1)))
697
-
698
-/**
699
-  * @brief Enable ADC continuous conversion mode.
700
-  * @param _CONTINUOUS_MODE_: Continuous mode.
701
-  * @retval None
702
-  */
703
-#define ADC_CR2_CONTINUOUS(_CONTINUOUS_MODE_)                                  \
704
-  ((_CONTINUOUS_MODE_) << ADC_CR2_CONT_Pos)
705
-
706
-/**
707
-  * @brief Configures the number of discontinuous conversions for the regular group channels.
708
-  * @param _NBR_DISCONTINUOUS_CONV_: Number of discontinuous conversions.
709
-  * @retval None
710
-  */
711
-#define ADC_CR1_DISCONTINUOUS_NUM(_NBR_DISCONTINUOUS_CONV_)                    \
712
-  (((_NBR_DISCONTINUOUS_CONV_) - 1) << ADC_CR1_DISCNUM_Pos)
713
-
714
-/**
715
-  * @brief Enable ADC scan mode to convert multiple ranks with sequencer.
716
-  * @param _SCAN_MODE_: Scan conversion mode.
717
-  * @retval None
718
-  */
719
-/* Note: Scan mode is compared to ENABLE for legacy purpose, this parameter   */
720
-/*       is equivalent to ADC_SCAN_ENABLE.                                    */
721
-#define ADC_CR1_SCAN_SET(_SCAN_MODE_)                                          \
722
-  (( ((_SCAN_MODE_) == ADC_SCAN_ENABLE) || ((_SCAN_MODE_) == ENABLE)           \
723
-   )? (ADC_SCAN_ENABLE) : (ADC_SCAN_DISABLE)                                   \
724
-  )
725
-
726
-/**
727
-  * @brief Get the maximum ADC conversion cycles on all channels.
728
-  * Returns the selected sampling time + conversion time (12.5 ADC clock cycles)
729
-  * Approximation of sampling time within 4 ranges, returns the highest value:
730
-  *   below 7.5 cycles {1.5 cycle; 7.5 cycles},
731
-  *   between 13.5 cycles and 28.5 cycles {13.5 cycles; 28.5 cycles}
732
-  *   between 41.5 cycles and 71.5 cycles {41.5 cycles; 55.5 cycles; 71.5cycles}
733
-  *   equal to 239.5 cycles
734
-  * Unit: ADC clock cycles
735
-  * @param __HANDLE__: ADC handle
736
-  * @retval ADC conversion cycles on all channels
737
-  */   
738
-#define ADC_CONVCYCLES_MAX_RANGE(__HANDLE__)                                                                     \
739
-    (( (((__HANDLE__)->Instance->SMPR2 & ADC_SAMPLETIME_ALLCHANNELS_SMPR2BIT2) == RESET)  &&                     \
740
-       (((__HANDLE__)->Instance->SMPR1 & ADC_SAMPLETIME_ALLCHANNELS_SMPR1BIT2) == RESET) ) ?                     \
741
-                                                                                                                 \
742
-          (( (((__HANDLE__)->Instance->SMPR2 & ADC_SAMPLETIME_ALLCHANNELS_SMPR2BIT1) == RESET)  &&               \
743
-             (((__HANDLE__)->Instance->SMPR1 & ADC_SAMPLETIME_ALLCHANNELS_SMPR1BIT1) == RESET) ) ?               \
744
-               ADC_CONVERSIONCLOCKCYCLES_SAMPLETIME_7CYCLES5 : ADC_CONVERSIONCLOCKCYCLES_SAMPLETIME_28CYCLES5)   \
745
-          :                                                                                                      \
746
-          ((((((__HANDLE__)->Instance->SMPR2 & ADC_SAMPLETIME_ALLCHANNELS_SMPR2BIT1) == RESET)  &&               \
747
-             (((__HANDLE__)->Instance->SMPR1 & ADC_SAMPLETIME_ALLCHANNELS_SMPR1BIT1) == RESET)) ||               \
748
-            ((((__HANDLE__)->Instance->SMPR2 & ADC_SAMPLETIME_ALLCHANNELS_SMPR1BIT0) == RESET)  &&               \
749
-             (((__HANDLE__)->Instance->SMPR1 & ADC_SAMPLETIME_ALLCHANNELS_SMPR1BIT0) == RESET))) ?               \
750
-               ADC_CONVERSIONCLOCKCYCLES_SAMPLETIME_71CYCLES5 : ADC_CONVERSIONCLOCKCYCLES_SAMPLETIME_239CYCLES5) \
751
-     )
752
-
753
-#define IS_ADC_DATA_ALIGN(ALIGN) (((ALIGN) == ADC_DATAALIGN_RIGHT) || \
754
-                                  ((ALIGN) == ADC_DATAALIGN_LEFT)    )
755
-
756
-#define IS_ADC_SCAN_MODE(SCAN_MODE) (((SCAN_MODE) == ADC_SCAN_DISABLE) || \
757
-                                     ((SCAN_MODE) == ADC_SCAN_ENABLE)    )
758
-
759
-#define IS_ADC_EXTTRIG_EDGE(EDGE) (((EDGE) == ADC_EXTERNALTRIGCONVEDGE_NONE)  || \
760
-                                   ((EDGE) == ADC_EXTERNALTRIGCONVEDGE_RISING)  )
761
-
762
-#define IS_ADC_CHANNEL(CHANNEL) (((CHANNEL) == ADC_CHANNEL_0)           || \
763
-                                 ((CHANNEL) == ADC_CHANNEL_1)           || \
764
-                                 ((CHANNEL) == ADC_CHANNEL_2)           || \
765
-                                 ((CHANNEL) == ADC_CHANNEL_3)           || \
766
-                                 ((CHANNEL) == ADC_CHANNEL_4)           || \
767
-                                 ((CHANNEL) == ADC_CHANNEL_5)           || \
768
-                                 ((CHANNEL) == ADC_CHANNEL_6)           || \
769
-                                 ((CHANNEL) == ADC_CHANNEL_7)           || \
770
-                                 ((CHANNEL) == ADC_CHANNEL_8)           || \
771
-                                 ((CHANNEL) == ADC_CHANNEL_9)           || \
772
-                                 ((CHANNEL) == ADC_CHANNEL_10)          || \
773
-                                 ((CHANNEL) == ADC_CHANNEL_11)          || \
774
-                                 ((CHANNEL) == ADC_CHANNEL_12)          || \
775
-                                 ((CHANNEL) == ADC_CHANNEL_13)          || \
776
-                                 ((CHANNEL) == ADC_CHANNEL_14)          || \
777
-                                 ((CHANNEL) == ADC_CHANNEL_15)          || \
778
-                                 ((CHANNEL) == ADC_CHANNEL_16)          || \
779
-                                 ((CHANNEL) == ADC_CHANNEL_17)            )
780
-
781
-#define IS_ADC_SAMPLE_TIME(TIME) (((TIME) == ADC_SAMPLETIME_1CYCLE_5)    || \
782
-                                  ((TIME) == ADC_SAMPLETIME_7CYCLES_5)   || \
783
-                                  ((TIME) == ADC_SAMPLETIME_13CYCLES_5)  || \
784
-                                  ((TIME) == ADC_SAMPLETIME_28CYCLES_5)  || \
785
-                                  ((TIME) == ADC_SAMPLETIME_41CYCLES_5)  || \
786
-                                  ((TIME) == ADC_SAMPLETIME_55CYCLES_5)  || \
787
-                                  ((TIME) == ADC_SAMPLETIME_71CYCLES_5)  || \
788
-                                  ((TIME) == ADC_SAMPLETIME_239CYCLES_5)   )
789
-
790
-#define IS_ADC_REGULAR_RANK(CHANNEL) (((CHANNEL) == ADC_REGULAR_RANK_1 ) || \
791
-                                      ((CHANNEL) == ADC_REGULAR_RANK_2 ) || \
792
-                                      ((CHANNEL) == ADC_REGULAR_RANK_3 ) || \
793
-                                      ((CHANNEL) == ADC_REGULAR_RANK_4 ) || \
794
-                                      ((CHANNEL) == ADC_REGULAR_RANK_5 ) || \
795
-                                      ((CHANNEL) == ADC_REGULAR_RANK_6 ) || \
796
-                                      ((CHANNEL) == ADC_REGULAR_RANK_7 ) || \
797
-                                      ((CHANNEL) == ADC_REGULAR_RANK_8 ) || \
798
-                                      ((CHANNEL) == ADC_REGULAR_RANK_9 ) || \
799
-                                      ((CHANNEL) == ADC_REGULAR_RANK_10) || \
800
-                                      ((CHANNEL) == ADC_REGULAR_RANK_11) || \
801
-                                      ((CHANNEL) == ADC_REGULAR_RANK_12) || \
802
-                                      ((CHANNEL) == ADC_REGULAR_RANK_13) || \
803
-                                      ((CHANNEL) == ADC_REGULAR_RANK_14) || \
804
-                                      ((CHANNEL) == ADC_REGULAR_RANK_15) || \
805
-                                      ((CHANNEL) == ADC_REGULAR_RANK_16)   )
806
-
807
-#define IS_ADC_ANALOG_WATCHDOG_MODE(WATCHDOG) (((WATCHDOG) == ADC_ANALOGWATCHDOG_NONE)             || \
808
-                                               ((WATCHDOG) == ADC_ANALOGWATCHDOG_SINGLE_REG)       || \
809
-                                               ((WATCHDOG) == ADC_ANALOGWATCHDOG_SINGLE_INJEC)     || \
810
-                                               ((WATCHDOG) == ADC_ANALOGWATCHDOG_SINGLE_REGINJEC)  || \
811
-                                               ((WATCHDOG) == ADC_ANALOGWATCHDOG_ALL_REG)          || \
812
-                                               ((WATCHDOG) == ADC_ANALOGWATCHDOG_ALL_INJEC)        || \
813
-                                               ((WATCHDOG) == ADC_ANALOGWATCHDOG_ALL_REGINJEC)       )
814
-
815
-#define IS_ADC_CONVERSION_GROUP(CONVERSION) (((CONVERSION) == ADC_REGULAR_GROUP)         || \
816
-                                             ((CONVERSION) == ADC_INJECTED_GROUP)        || \
817
-                                             ((CONVERSION) == ADC_REGULAR_INJECTED_GROUP)  )
818
-
819
-#define IS_ADC_EVENT_TYPE(EVENT) ((EVENT) == ADC_AWD_EVENT)
820
-
821
-
822
-/** @defgroup ADC_range_verification ADC range verification
823
-  * For a unique ADC resolution: 12 bits
824
-  * @{
825
-  */
826
-#define IS_ADC_RANGE(ADC_VALUE) ((ADC_VALUE) <= 0x0FFFU)
827
-/**
828
-  * @}
829
-  */
830
-
831
-/** @defgroup ADC_regular_nb_conv_verification ADC regular nb conv verification
832
-  * @{
833
-  */
834
-#define IS_ADC_REGULAR_NB_CONV(LENGTH) (((LENGTH) >= 1U) && ((LENGTH) <= 16U))
835
-/**
836
-  * @}
837
-  */
838
-
839
-/** @defgroup ADC_regular_discontinuous_mode_number_verification ADC regular discontinuous mode number verification
840
-  * @{
841
-  */
842
-#define IS_ADC_REGULAR_DISCONT_NUMBER(NUMBER) (((NUMBER) >= 1U) && ((NUMBER) <= 8U))
843
-/**
844
-  * @}
845
-  */
846
-      
847
-/**
848
-  * @}
849
-  */
850
-    
851
-/* Include ADC HAL Extension module */
852
-#include "stm32f1xx_hal_adc_ex.h"
853
-
854
-/* Exported functions --------------------------------------------------------*/
855
-/** @addtogroup ADC_Exported_Functions
856
-  * @{
857
-  */
858
-
859
-/** @addtogroup ADC_Exported_Functions_Group1
860
-  * @{
861
-  */
862
-
863
-
864
-/* Initialization and de-initialization functions  **********************************/
865
-HAL_StatusTypeDef       HAL_ADC_Init(ADC_HandleTypeDef* hadc);
866
-HAL_StatusTypeDef       HAL_ADC_DeInit(ADC_HandleTypeDef *hadc);
867
-void                    HAL_ADC_MspInit(ADC_HandleTypeDef* hadc);
868
-void                    HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc);
869
-/**
870
-  * @}
871
-  */
872
-
873
-/* IO operation functions  *****************************************************/
874
-
875
-/** @addtogroup ADC_Exported_Functions_Group2
876
-  * @{
877
-  */
878
-
879
-
880
-/* Blocking mode: Polling */
881
-HAL_StatusTypeDef       HAL_ADC_Start(ADC_HandleTypeDef* hadc);
882
-HAL_StatusTypeDef       HAL_ADC_Stop(ADC_HandleTypeDef* hadc);
883
-HAL_StatusTypeDef       HAL_ADC_PollForConversion(ADC_HandleTypeDef* hadc, uint32_t Timeout);
884
-HAL_StatusTypeDef       HAL_ADC_PollForEvent(ADC_HandleTypeDef* hadc, uint32_t EventType, uint32_t Timeout);
885
-
886
-/* Non-blocking mode: Interruption */
887
-HAL_StatusTypeDef       HAL_ADC_Start_IT(ADC_HandleTypeDef* hadc);
888
-HAL_StatusTypeDef       HAL_ADC_Stop_IT(ADC_HandleTypeDef* hadc);
889
-
890
-/* Non-blocking mode: DMA */
891
-HAL_StatusTypeDef       HAL_ADC_Start_DMA(ADC_HandleTypeDef* hadc, uint32_t* pData, uint32_t Length);
892
-HAL_StatusTypeDef       HAL_ADC_Stop_DMA(ADC_HandleTypeDef* hadc);
893
-
894
-/* ADC retrieve conversion value intended to be used with polling or interruption */
895
-uint32_t                HAL_ADC_GetValue(ADC_HandleTypeDef* hadc);
896
-
897
-/* ADC IRQHandler and Callbacks used in non-blocking modes (Interruption and DMA) */
898
-void                    HAL_ADC_IRQHandler(ADC_HandleTypeDef* hadc);
899
-void                    HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc);
900
-void                    HAL_ADC_ConvHalfCpltCallback(ADC_HandleTypeDef* hadc);
901
-void                    HAL_ADC_LevelOutOfWindowCallback(ADC_HandleTypeDef* hadc);
902
-void                    HAL_ADC_ErrorCallback(ADC_HandleTypeDef *hadc);
903
-/**
904
-  * @}
905
-  */
906
-
907
-
908
-/* Peripheral Control functions ***********************************************/
909
-/** @addtogroup ADC_Exported_Functions_Group3
910
-  * @{
911
-  */
912
-HAL_StatusTypeDef       HAL_ADC_ConfigChannel(ADC_HandleTypeDef* hadc, ADC_ChannelConfTypeDef* sConfig);
913
-HAL_StatusTypeDef       HAL_ADC_AnalogWDGConfig(ADC_HandleTypeDef* hadc, ADC_AnalogWDGConfTypeDef* AnalogWDGConfig);
914
-/**
915
-  * @}
916
-  */
917
-
918
-
919
-/* Peripheral State functions *************************************************/
920
-/** @addtogroup ADC_Exported_Functions_Group4
921
-  * @{
922
-  */
923
-uint32_t                HAL_ADC_GetState(ADC_HandleTypeDef* hadc);
924
-uint32_t                HAL_ADC_GetError(ADC_HandleTypeDef *hadc);
925
-/**
926
-  * @}
927
-  */
928
-
929
-
930
-/**
931
-  * @}
932
-  */
933
-
934
-
935
-/* Internal HAL driver functions **********************************************/
936
-/** @addtogroup ADC_Private_Functions
937
-  * @{
938
-  */
939
-HAL_StatusTypeDef ADC_Enable(ADC_HandleTypeDef* hadc);
940
-HAL_StatusTypeDef ADC_ConversionStop_Disable(ADC_HandleTypeDef* hadc);
941
-void              ADC_StabilizationTime(uint32_t DelayUs);
942
-void              ADC_DMAConvCplt(DMA_HandleTypeDef *hdma);
943
-void              ADC_DMAHalfConvCplt(DMA_HandleTypeDef *hdma);
944
-void              ADC_DMAError(DMA_HandleTypeDef *hdma);
945
-/**
946
-  * @}
947
-  */ 
948
-
949
-
950
-/**
951
-  * @}
952
-  */ 
953
-
954
-/**
955
-  * @}
956
-  */
957
-
958
-#ifdef __cplusplus
959
-}
960
-#endif
961
-
962
-
963
-#endif /* __STM32F1xx_HAL_ADC_H */
964
-
965
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 0 - 726
Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_adc_ex.h

@@ -1,726 +0,0 @@
1
-/**
2
-  ******************************************************************************
3
-  * @file    stm32f1xx_hal_adc_ex.h
4
-  * @author  MCD Application Team
5
-  * @brief   Header file of ADC HAL extension module.
6
-  ******************************************************************************
7
-  * @attention
8
-  *
9
-  * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
10
-  *
11
-  * Redistribution and use in source and binary forms, with or without modification,
12
-  * are permitted provided that the following conditions are met:
13
-  *   1. Redistributions of source code must retain the above copyright notice,
14
-  *      this list of conditions and the following disclaimer.
15
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
16
-  *      this list of conditions and the following disclaimer in the documentation
17
-  *      and/or other materials provided with the distribution.
18
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
19
-  *      may be used to endorse or promote products derived from this software
20
-  *      without specific prior written permission.
21
-  *
22
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
23
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
25
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
26
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
28
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
30
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32
-  *
33
-  ******************************************************************************
34
-  */
35
-
36
-/* Define to prevent recursive inclusion -------------------------------------*/
37
-#ifndef __STM32F1xx_HAL_ADC_EX_H
38
-#define __STM32F1xx_HAL_ADC_EX_H
39
-
40
-#ifdef __cplusplus
41
- extern "C" {
42
-#endif
43
-
44
-/* Includes ------------------------------------------------------------------*/
45
-#include "stm32f1xx_hal_def.h"  
46
-
47
-/** @addtogroup STM32F1xx_HAL_Driver
48
-  * @{
49
-  */
50
-
51
-/** @addtogroup ADCEx
52
-  * @{
53
-  */ 
54
-
55
-/* Exported types ------------------------------------------------------------*/ 
56
-/** @defgroup ADCEx_Exported_Types ADCEx Exported Types
57
-  * @{
58
-  */
59
-
60
-/** 
61
-  * @brief  ADC Configuration injected Channel structure definition
62
-  * @note   Parameters of this structure are shared within 2 scopes:
63
-  *          - Scope channel: InjectedChannel, InjectedRank, InjectedSamplingTime, InjectedOffset
64
-  *          - Scope injected group (affects all channels of injected group): InjectedNbrOfConversion, InjectedDiscontinuousConvMode,
65
-  *            AutoInjectedConv, ExternalTrigInjecConvEdge, ExternalTrigInjecConv.
66
-  * @note   The setting of these parameters with function HAL_ADCEx_InjectedConfigChannel() is conditioned to ADC state.
67
-  *         ADC state can be either:
68
-  *          - For all parameters: ADC disabled (this is the only possible ADC state to modify parameter 'ExternalTrigInjecConv')
69
-  *          - For all except parameters 'ExternalTrigInjecConv': ADC enabled without conversion on going on injected group.
70
-  */
71
-typedef struct 
72
-{
73
-  uint32_t InjectedChannel;               /*!< Selection of ADC channel to configure
74
-                                               This parameter can be a value of @ref ADC_channels
75
-                                               Note: Depending on devices, some channels may not be available on package pins. Refer to device datasheet for channels availability.
76
-                                               Note: On STM32F1 devices with several ADC: Only ADC1 can access internal measurement channels (VrefInt/TempSensor) 
77
-                                               Note: On STM32F10xx8 and STM32F10xxB devices: A low-amplitude voltage glitch may be generated (on ADC input 0) on the PA0 pin, when the ADC is converting with injection trigger.
78
-                                                     It is advised to distribute the analog channels so that Channel 0 is configured as an injected channel.
79
-                                                     Refer to errata sheet of these devices for more details. */
80
-  uint32_t InjectedRank;                  /*!< Rank in the injected group sequencer
81
-                                               This parameter must be a value of @ref ADCEx_injected_rank
82
-                                               Note: In case of need to disable a channel or change order of conversion sequencer, rank containing a previous channel setting can be overwritten by the new channel setting (or parameter number of conversions can be adjusted) */
83
-  uint32_t InjectedSamplingTime;          /*!< Sampling time value to be set for the selected channel.
84
-                                               Unit: ADC clock cycles
85
-                                               Conversion time is the addition of sampling time and processing time (12.5 ADC clock cycles at ADC resolution 12 bits).
86
-                                               This parameter can be a value of @ref ADC_sampling_times
87
-                                               Caution: This parameter updates the parameter property of the channel, that can be used into regular and/or injected groups.
88
-                                                        If this same channel has been previously configured in the other group (regular/injected), it will be updated to last setting.
89
-                                               Note: In case of usage of internal measurement channels (VrefInt/TempSensor),
90
-                                                     sampling time constraints must be respected (sampling time can be adjusted in function of ADC clock frequency and sampling time setting)
91
-                                                     Refer to device datasheet for timings values, parameters TS_vrefint, TS_temp (values rough order: 5us to 17.1us min). */
92
-  uint32_t InjectedOffset;                /*!< Defines the offset to be subtracted from the raw converted data (for channels set on injected group only).
93
-                                               Offset value must be a positive number.
94
-                                               Depending of ADC resolution selected (12, 10, 8 or 6 bits),
95
-                                               this parameter must be a number between Min_Data = 0x000 and Max_Data = 0xFFF, 0x3FF, 0xFF or 0x3F respectively. */
96
-  uint32_t InjectedNbrOfConversion;       /*!< Specifies the number of ranks that will be converted within the injected group sequencer.
97
-                                               To use the injected group sequencer and convert several ranks, parameter 'ScanConvMode' must be enabled.
98
-                                               This parameter must be a number between Min_Data = 1 and Max_Data = 4.
99
-                                               Caution: this setting impacts the entire injected group. Therefore, call of HAL_ADCEx_InjectedConfigChannel() to 
100
-                                                        configure a channel on injected group can impact the configuration of other channels previously set. */
101
-  uint32_t InjectedDiscontinuousConvMode; /*!< Specifies whether the conversions sequence of injected group is performed in Complete-sequence/Discontinuous-sequence (main sequence subdivided in successive parts).
102
-                                               Discontinuous mode is used only if sequencer is enabled (parameter 'ScanConvMode'). If sequencer is disabled, this parameter is discarded.
103
-                                               Discontinuous mode can be enabled only if continuous mode is disabled. If continuous mode is enabled, this parameter setting is discarded.
104
-                                               This parameter can be set to ENABLE or DISABLE.
105
-                                               Note: For injected group, number of discontinuous ranks increment is fixed to one-by-one.
106
-                                               Caution: this setting impacts the entire injected group. Therefore, call of HAL_ADCEx_InjectedConfigChannel() to 
107
-                                                        configure a channel on injected group can impact the configuration of other channels previously set. */
108
-  uint32_t AutoInjectedConv;              /*!< Enables or disables the selected ADC automatic injected group conversion after regular one
109
-                                               This parameter can be set to ENABLE or DISABLE.      
110
-                                               Note: To use Automatic injected conversion, discontinuous mode must be disabled ('DiscontinuousConvMode' and 'InjectedDiscontinuousConvMode' set to DISABLE)
111
-                                               Note: To use Automatic injected conversion, injected group external triggers must be disabled ('ExternalTrigInjecConv' set to ADC_SOFTWARE_START)
112
-                                               Note: In case of DMA used with regular group: if DMA configured in normal mode (single shot) JAUTO will be stopped upon DMA transfer complete.
113
-                                                     To maintain JAUTO always enabled, DMA must be configured in circular mode.
114
-                                               Caution: this setting impacts the entire injected group. Therefore, call of HAL_ADCEx_InjectedConfigChannel() to
115
-                                                        configure a channel on injected group can impact the configuration of other channels previously set. */
116
-  uint32_t ExternalTrigInjecConv;         /*!< Selects the external event used to trigger the conversion start of injected group.
117
-                                               If set to ADC_INJECTED_SOFTWARE_START, external triggers are disabled.
118
-                                               If set to external trigger source, triggering is on event rising edge.
119
-                                               This parameter can be a value of @ref ADCEx_External_trigger_source_Injected
120
-                                               Note: This parameter must be modified when ADC is disabled (before ADC start conversion or after ADC stop conversion).
121
-                                                     If ADC is enabled, this parameter setting is bypassed without error reporting (as it can be the expected behaviour in case of another parameter update on the fly)
122
-                                               Caution: this setting impacts the entire injected group. Therefore, call of HAL_ADCEx_InjectedConfigChannel() to
123
-                                                        configure a channel on injected group can impact the configuration of other channels previously set. */
124
-}ADC_InjectionConfTypeDef;
125
-
126
-#if defined (STM32F103x6) || defined (STM32F103xB) || defined (STM32F105xC) || defined (STM32F107xC) || defined (STM32F103xE) || defined (STM32F103xG)
127
-/** 
128
-  * @brief  Structure definition of ADC multimode
129
-  * @note   The setting of these parameters with function HAL_ADCEx_MultiModeConfigChannel() is conditioned to ADCs state (both ADCs of the common group).
130
-  *         State of ADCs of the common group must be: disabled.
131
-  */
132
-typedef struct
133
-{
134
-  uint32_t Mode;              /*!< Configures the ADC to operate in independent or multi mode. 
135
-                                   This parameter can be a value of @ref ADCEx_Common_mode
136
-                                   Note: In dual mode, a change of channel configuration generates a restart that can produce a loss of synchronization. It is recommended to disable dual mode before any configuration change.
137
-                                   Note: In case of simultaneous mode used: Exactly the same sampling time should be configured for the 2 channels that will be sampled simultaneously by ACD1 and ADC2.
138
-                                   Note: In case of interleaved mode used: To avoid overlap between conversions, maximum sampling time allowed is 7 ADC clock cycles for fast interleaved mode and 14 ADC clock cycles for slow interleaved mode.
139
-                                   Note: Some multimode parameters are fixed on STM32F1 and can be configured on other STM32 devices with several ADC (multimode configuration structure can have additional parameters).
140
-                                         The equivalences are:
141
-                                           - Parameter 'DMAAccessMode': On STM32F1, this parameter is fixed to 1 DMA channel (one DMA channel for both ADC, DMA of ADC master). On other STM32 devices with several ADC, this is equivalent to parameter 'ADC_DMAACCESSMODE_12_10_BITS'.
142
-                                           - Parameter 'TwoSamplingDelay': On STM32F1, this parameter is fixed to 7 or 14 ADC clock cycles depending on fast or slow interleaved mode selected. On other STM32 devices with several ADC, this is equivalent to parameter 'ADC_TWOSAMPLINGDELAY_7CYCLES' (for fast interleaved mode). */
143
-
144
-  
145
-}ADC_MultiModeTypeDef;                                                          
146
-#endif /* defined STM32F103x6 || defined STM32F103xB || defined STM32F105xC || defined STM32F107xC || defined STM32F103xE || defined STM32F103xG */
147
-
148
-/**
149
-  * @}
150
-  */
151
-
152
-
153
-/* Exported constants --------------------------------------------------------*/
154
-   
155
-/** @defgroup ADCEx_Exported_Constants ADCEx Exported Constants
156
-  * @{
157
-  */
158
-
159
-/** @defgroup ADCEx_injected_rank ADCEx rank into injected group
160
-  * @{
161
-  */
162
-#define ADC_INJECTED_RANK_1                           0x00000001U
163
-#define ADC_INJECTED_RANK_2                           0x00000002U
164
-#define ADC_INJECTED_RANK_3                           0x00000003U
165
-#define ADC_INJECTED_RANK_4                           0x00000004U
166
-/**
167
-  * @}
168
-  */
169
-
170
-/** @defgroup ADCEx_External_trigger_edge_Injected ADCEx external trigger enable for injected group
171
-  * @{
172
-  */
173
-#define ADC_EXTERNALTRIGINJECCONV_EDGE_NONE           0x00000000U
174
-#define ADC_EXTERNALTRIGINJECCONV_EDGE_RISING         ((uint32_t)ADC_CR2_JEXTTRIG)
175
-/**
176
-  * @}
177
-  */
178
-    
179
-/** @defgroup ADC_External_trigger_source_Regular ADC External trigger selection for regular group
180
-  * @{
181
-  */
182
-/*!< List of external triggers with generic trigger name, independently of    */
183
-/* ADC target, sorted by trigger name:                                        */
184
-
185
-/*!< External triggers of regular group for ADC1&ADC2 only */
186
-#define ADC_EXTERNALTRIGCONV_T1_CC1         ADC1_2_EXTERNALTRIG_T1_CC1
187
-#define ADC_EXTERNALTRIGCONV_T1_CC2         ADC1_2_EXTERNALTRIG_T1_CC2
188
-#define ADC_EXTERNALTRIGCONV_T2_CC2         ADC1_2_EXTERNALTRIG_T2_CC2
189
-#define ADC_EXTERNALTRIGCONV_T3_TRGO        ADC1_2_EXTERNALTRIG_T3_TRGO
190
-#define ADC_EXTERNALTRIGCONV_T4_CC4         ADC1_2_EXTERNALTRIG_T4_CC4
191
-#define ADC_EXTERNALTRIGCONV_EXT_IT11       ADC1_2_EXTERNALTRIG_EXT_IT11
192
-
193
-#if defined (STM32F103xE) || defined (STM32F103xG)
194
-/*!< External triggers of regular group for ADC3 only */
195
-#define ADC_EXTERNALTRIGCONV_T2_CC3         ADC3_EXTERNALTRIG_T2_CC3
196
-#define ADC_EXTERNALTRIGCONV_T3_CC1         ADC3_EXTERNALTRIG_T3_CC1
197
-#define ADC_EXTERNALTRIGCONV_T5_CC1         ADC3_EXTERNALTRIG_T5_CC1
198
-#define ADC_EXTERNALTRIGCONV_T5_CC3         ADC3_EXTERNALTRIG_T5_CC3
199
-#define ADC_EXTERNALTRIGCONV_T8_CC1         ADC3_EXTERNALTRIG_T8_CC1
200
-#endif /* STM32F103xE || defined STM32F103xG */
201
-
202
-/*!< External triggers of regular group for all ADC instances */
203
-#define ADC_EXTERNALTRIGCONV_T1_CC3         ADC1_2_3_EXTERNALTRIG_T1_CC3
204
-
205
-#if defined (STM32F101xE) || defined (STM32F103xE) || defined (STM32F103xG) || defined (STM32F105xC) || defined (STM32F107xC)
206
-/*!< Note: TIM8_TRGO is available on ADC1 and ADC2 only in high-density and   */
207
-/*         XL-density devices.                                                */
208
-/*         To use it on ADC or ADC2, a remap of trigger must be done from     */
209
-/*         EXTI line 11 to TIM8_TRGO with macro:                              */
210
-/*           __HAL_AFIO_REMAP_ADC1_ETRGREG_ENABLE()                           */
211
-/*           __HAL_AFIO_REMAP_ADC2_ETRGREG_ENABLE()                           */
212
-
213
-/* Note for internal constant value management: If TIM8_TRGO is available,    */
214
-/* its definition is set to value for ADC1&ADC2 by default and changed to     */
215
-/* value for ADC3 by HAL ADC driver if ADC3 is selected.                      */
216
-#define ADC_EXTERNALTRIGCONV_T8_TRGO        ADC1_2_EXTERNALTRIG_T8_TRGO
217
-#endif /* STM32F101xE || STM32F103xE || STM32F103xG || STM32F105xC || STM32F107xC */
218
-
219
-#define ADC_SOFTWARE_START                  ADC1_2_3_SWSTART
220
-/**
221
-  * @}
222
-  */
223
-
224
-/** @defgroup ADCEx_External_trigger_source_Injected ADCEx External trigger selection for injected group
225
-  * @{
226
-  */
227
-/*!< List of external triggers with generic trigger name, independently of    */
228
-/* ADC target, sorted by trigger name:                                        */
229
-
230
-/*!< External triggers of injected group for ADC1&ADC2 only */
231
-#define ADC_EXTERNALTRIGINJECCONV_T2_TRGO        ADC1_2_EXTERNALTRIGINJEC_T2_TRGO
232
-#define ADC_EXTERNALTRIGINJECCONV_T2_CC1         ADC1_2_EXTERNALTRIGINJEC_T2_CC1
233
-#define ADC_EXTERNALTRIGINJECCONV_T3_CC4         ADC1_2_EXTERNALTRIGINJEC_T3_CC4
234
-#define ADC_EXTERNALTRIGINJECCONV_T4_TRGO        ADC1_2_EXTERNALTRIGINJEC_T4_TRGO 
235
-#define ADC_EXTERNALTRIGINJECCONV_EXT_IT15       ADC1_2_EXTERNALTRIGINJEC_EXT_IT15
236
-
237
-#if defined (STM32F103xE) || defined (STM32F103xG)
238
-/*!< External triggers of injected group for ADC3 only */
239
-#define ADC_EXTERNALTRIGINJECCONV_T4_CC3         ADC3_EXTERNALTRIGINJEC_T4_CC3
240
-#define ADC_EXTERNALTRIGINJECCONV_T8_CC2         ADC3_EXTERNALTRIGINJEC_T8_CC2
241
-#define ADC_EXTERNALTRIGINJECCONV_T5_TRGO        ADC3_EXTERNALTRIGINJEC_T5_TRGO
242
-#define ADC_EXTERNALTRIGINJECCONV_T5_CC4         ADC3_EXTERNALTRIGINJEC_T5_CC4
243
-#endif /* STM32F103xE || defined STM32F103xG */
244
-
245
-/*!< External triggers of injected group for all ADC instances */
246
-#define ADC_EXTERNALTRIGINJECCONV_T1_CC4         ADC1_2_3_EXTERNALTRIGINJEC_T1_CC4
247
-#define ADC_EXTERNALTRIGINJECCONV_T1_TRGO        ADC1_2_3_EXTERNALTRIGINJEC_T1_TRGO
248
-
249
-#if defined (STM32F101xE) || defined (STM32F103xE) || defined (STM32F103xG) || defined (STM32F105xC) || defined (STM32F107xC)
250
-/*!< Note: TIM8_CC4 is available on ADC1 and ADC2 only in high-density and    */
251
-/*         XL-density devices.                                                */
252
-/*         To use it on ADC1 or ADC2, a remap of trigger must be done from    */
253
-/*         EXTI line 11 to TIM8_CC4 with macro:                               */
254
-/*           __HAL_AFIO_REMAP_ADC1_ETRGINJ_ENABLE()                           */
255
-/*           __HAL_AFIO_REMAP_ADC2_ETRGINJ_ENABLE()                           */
256
-
257
-/* Note for internal constant value management: If TIM8_CC4 is available,     */
258
-/* its definition is set to value for ADC1&ADC2 by default and changed to     */
259
-/* value for ADC3 by HAL ADC driver if ADC3 is selected.                      */
260
-#define ADC_EXTERNALTRIGINJECCONV_T8_CC4         ADC1_2_EXTERNALTRIGINJEC_T8_CC4
261
-#endif /* STM32F101xE || STM32F103xE || STM32F103xG || STM32F105xC || STM32F107xC */
262
-
263
-#define ADC_INJECTED_SOFTWARE_START              ADC1_2_3_JSWSTART
264
-/**
265
-  * @}
266
-  */
267
-
268
-#if defined (STM32F103x6) || defined (STM32F103xB) || defined (STM32F105xC) || defined (STM32F107xC) || defined (STM32F103xE) || defined (STM32F103xG)
269
-/** @defgroup ADCEx_Common_mode ADC Extended Dual ADC Mode
270
-  * @{
271
-  */
272
-#define ADC_MODE_INDEPENDENT                              0x00000000U                                                                     /*!< ADC dual mode disabled (ADC independent mode) */
273
-#define ADC_DUALMODE_REGSIMULT_INJECSIMULT    ((uint32_t)(                                                            ADC_CR1_DUALMOD_0)) /*!< ADC dual mode enabled: Combined regular simultaneous + injected simultaneous mode, on groups regular and injected */
274
-#define ADC_DUALMODE_REGSIMULT_ALTERTRIG      ((uint32_t)(                                        ADC_CR1_DUALMOD_1                    )) /*!< ADC dual mode enabled: Combined regular simultaneous + alternate trigger mode, on groups regular and injected */
275
-#define ADC_DUALMODE_INJECSIMULT_INTERLFAST   ((uint32_t)(                                        ADC_CR1_DUALMOD_1 | ADC_CR1_DUALMOD_0)) /*!< ADC dual mode enabled: Combined injected simultaneous + fast interleaved mode, on groups regular and injected (delay between ADC sampling phases: 7 ADC clock cycles (equivalent to parameter "TwoSamplingDelay" set to "ADC_TWOSAMPLINGDELAY_7CYCLES" on other STM32 devices)) */
276
-#define ADC_DUALMODE_INJECSIMULT_INTERLSLOW   ((uint32_t)(                    ADC_CR1_DUALMOD_2                                        )) /*!< ADC dual mode enabled: Combined injected simultaneous + slow Interleaved mode, on groups regular and injected (delay between ADC sampling phases: 14 ADC clock cycles (equivalent to parameter "TwoSamplingDelay" set to "ADC_TWOSAMPLINGDELAY_7CYCLES" on other STM32 devices)) */
277
-#define ADC_DUALMODE_INJECSIMULT              ((uint32_t)(                    ADC_CR1_DUALMOD_2 |                     ADC_CR1_DUALMOD_0)) /*!< ADC dual mode enabled: Injected simultaneous mode, on group injected */
278
-#define ADC_DUALMODE_REGSIMULT                ((uint32_t)(                    ADC_CR1_DUALMOD_2 | ADC_CR1_DUALMOD_1                    )) /*!< ADC dual mode enabled: Regular simultaneous mode, on group regular */
279
-#define ADC_DUALMODE_INTERLFAST               ((uint32_t)(                    ADC_CR1_DUALMOD_2 | ADC_CR1_DUALMOD_1 | ADC_CR1_DUALMOD_0)) /*!< ADC dual mode enabled: Fast interleaved mode, on group regular (delay between ADC sampling phases: 7 ADC clock cycles (equivalent to parameter "TwoSamplingDelay" set to "ADC_TWOSAMPLINGDELAY_7CYCLES" on other STM32 devices)) */
280
-#define ADC_DUALMODE_INTERLSLOW               ((uint32_t)(ADC_CR1_DUALMOD_3                                                            )) /*!< ADC dual mode enabled: Slow interleaved mode, on group regular (delay between ADC sampling phases: 14 ADC clock cycles (equivalent to parameter "TwoSamplingDelay" set to "ADC_TWOSAMPLINGDELAY_7CYCLES" on other STM32 devices)) */
281
-#define ADC_DUALMODE_ALTERTRIG                ((uint32_t)(ADC_CR1_DUALMOD_3 |                                         ADC_CR1_DUALMOD_0)) /*!< ADC dual mode enabled: Alternate trigger mode, on group injected */
282
-/**
283
-  * @}
284
-  */
285
-#endif /* defined STM32F103x6 || defined STM32F103xB || defined STM32F105xC || defined STM32F107xC || defined STM32F103xE || defined STM32F103xG */
286
-
287
-/**
288
-  * @}
289
-  */
290
-
291
-
292
-/* Private constants ---------------------------------------------------------*/
293
-
294
-/** @addtogroup ADCEx_Private_Constants ADCEx Private Constants
295
-  * @{
296
-  */
297
-
298
-/** @defgroup ADCEx_Internal_HAL_driver_Ext_trig_src_Regular ADC Extended Internal HAL driver trigger selection for regular group
299
-  * @{
300
-  */
301
-/* List of external triggers of regular group for ADC1, ADC2, ADC3 (if ADC    */
302
-/* instance is available on the selected device).                             */
303
-/* (used internally by HAL driver. To not use into HAL structure parameters)  */
304
-
305
-/* External triggers of regular group for ADC1&ADC2 (if ADCx available) */
306
-#define ADC1_2_EXTERNALTRIG_T1_CC1                       0x00000000U
307
-#define ADC1_2_EXTERNALTRIG_T1_CC2           ((uint32_t)(                                      ADC_CR2_EXTSEL_0))
308
-#define ADC1_2_EXTERNALTRIG_T2_CC2           ((uint32_t)(                   ADC_CR2_EXTSEL_1 | ADC_CR2_EXTSEL_0))
309
-#define ADC1_2_EXTERNALTRIG_T3_TRGO          ((uint32_t)(ADC_CR2_EXTSEL_2                                      ))
310
-#define ADC1_2_EXTERNALTRIG_T4_CC4           ((uint32_t)(ADC_CR2_EXTSEL_2 |                    ADC_CR2_EXTSEL_0))
311
-#define ADC1_2_EXTERNALTRIG_EXT_IT11         ((uint32_t)(ADC_CR2_EXTSEL_2 | ADC_CR2_EXTSEL_1                   ))
312
-#if defined (STM32F101xE) || defined (STM32F103xE) || defined (STM32F103xG)
313
-/* Note: TIM8_TRGO is available on ADC1 and ADC2 only in high-density and     */
314
-/* XL-density devices.                                                        */
315
-#define ADC1_2_EXTERNALTRIG_T8_TRGO          ADC1_2_EXTERNALTRIG_EXT_IT11
316
-#endif
317
-
318
-#if defined (STM32F103xE) || defined (STM32F103xG)
319
-/* External triggers of regular group for ADC3 */
320
-#define ADC3_EXTERNALTRIG_T3_CC1             ADC1_2_EXTERNALTRIG_T1_CC1
321
-#define ADC3_EXTERNALTRIG_T2_CC3             ADC1_2_EXTERNALTRIG_T1_CC2
322
-#define ADC3_EXTERNALTRIG_T8_CC1             ADC1_2_EXTERNALTRIG_T2_CC2
323
-#define ADC3_EXTERNALTRIG_T8_TRGO            ADC1_2_EXTERNALTRIG_T3_TRGO
324
-#define ADC3_EXTERNALTRIG_T5_CC1             ADC1_2_EXTERNALTRIG_T4_CC4
325
-#define ADC3_EXTERNALTRIG_T5_CC3             ADC1_2_EXTERNALTRIG_EXT_IT11
326
-#endif
327
-
328
-/* External triggers of regular group for ADC1&ADC2&ADC3 (if ADCx available) */
329
-#define ADC1_2_3_EXTERNALTRIG_T1_CC3         ((uint32_t)(                   ADC_CR2_EXTSEL_1                   ))
330
-#define ADC1_2_3_SWSTART                     ((uint32_t)(ADC_CR2_EXTSEL_2 | ADC_CR2_EXTSEL_1 | ADC_CR2_EXTSEL_0))
331
-/**
332
-  * @}
333
-  */
334
-
335
-/** @defgroup ADCEx_Internal_HAL_driver_Ext_trig_src_Injected ADC Extended Internal HAL driver trigger selection for injected group
336
-  * @{
337
-  */
338
-/* List of external triggers of injected group for ADC1, ADC2, ADC3 (if ADC    */
339
-/* instance is available on the selected device).                             */
340
-/* (used internally by HAL driver. To not use into HAL structure parameters)  */
341
-
342
-/* External triggers of injected group for ADC1&ADC2 (if ADCx available) */
343
-#define ADC1_2_EXTERNALTRIGINJEC_T2_TRGO          ((uint32_t)(                    ADC_CR2_JEXTSEL_1                    ))
344
-#define ADC1_2_EXTERNALTRIGINJEC_T2_CC1           ((uint32_t)(                    ADC_CR2_JEXTSEL_1 | ADC_CR2_JEXTSEL_0))
345
-#define ADC1_2_EXTERNALTRIGINJEC_T3_CC4           ((uint32_t)(ADC_CR2_JEXTSEL_2                                        ))
346
-#define ADC1_2_EXTERNALTRIGINJEC_T4_TRGO          ((uint32_t)(ADC_CR2_JEXTSEL_2 |                     ADC_CR2_JEXTSEL_0))
347
-#define ADC1_2_EXTERNALTRIGINJEC_EXT_IT15         ((uint32_t)(ADC_CR2_JEXTSEL_2 | ADC_CR2_JEXTSEL_1                    ))
348
-#if defined (STM32F101xE) || defined (STM32F103xE) || defined (STM32F103xG)
349
-/* Note: TIM8_CC4 is available on ADC1 and ADC2 only in high-density and      */
350
-/* XL-density devices.                                                        */
351
-#define ADC1_2_EXTERNALTRIGINJEC_T8_CC4           ADC1_2_EXTERNALTRIGINJEC_EXT_IT15
352
-#endif
353
-
354
-#if defined (STM32F103xE) || defined (STM32F103xG)
355
-/* External triggers of injected group for ADC3 */
356
-#define ADC3_EXTERNALTRIGINJEC_T4_CC3             ADC1_2_EXTERNALTRIGINJEC_T2_TRGO
357
-#define ADC3_EXTERNALTRIGINJEC_T8_CC2             ADC1_2_EXTERNALTRIGINJEC_T2_CC1
358
-#define ADC3_EXTERNALTRIGINJEC_T8_CC4             ADC1_2_EXTERNALTRIGINJEC_T3_CC4
359
-#define ADC3_EXTERNALTRIGINJEC_T5_TRGO            ADC1_2_EXTERNALTRIGINJEC_T4_TRGO
360
-#define ADC3_EXTERNALTRIGINJEC_T5_CC4             ADC1_2_EXTERNALTRIGINJEC_EXT_IT15
361
-#endif /* STM32F103xE || defined STM32F103xG */
362
-
363
-/* External triggers of injected group for ADC1&ADC2&ADC3 (if ADCx available) */
364
-#define ADC1_2_3_EXTERNALTRIGINJEC_T1_TRGO                    0x00000000U
365
-#define ADC1_2_3_EXTERNALTRIGINJEC_T1_CC4         ((uint32_t)(                                        ADC_CR2_JEXTSEL_0))
366
-#define ADC1_2_3_JSWSTART                         ((uint32_t)(ADC_CR2_JEXTSEL_2 | ADC_CR2_JEXTSEL_1 | ADC_CR2_JEXTSEL_0))
367
-/**
368
-  * @}
369
-  */
370
-
371
-/**
372
-  * @}
373
-  */
374
-
375
-
376
-/* Exported macro ------------------------------------------------------------*/
377
-
378
-/* Private macro -------------------------------------------------------------*/
379
-
380
-/** @defgroup ADCEx_Private_Macro ADCEx Private Macro
381
-  * @{
382
-  */
383
-/* Macro reserved for internal HAL driver usage, not intended to be used in   */
384
-/* code of final user.                                                        */
385
-
386
-    
387
-/**
388
-  * @brief For devices with 3 ADCs: Defines the external trigger source 
389
-  *        for regular group according to ADC into common group ADC1&ADC2 or 
390
-  *        ADC3 (some triggers with same source have different value to
391
-  *        be programmed into ADC EXTSEL bits of CR2 register).
392
-  *        For devices with 2 ADCs or less: this macro makes no change.
393
-  * @param __HANDLE__: ADC handle
394
-  * @param __EXT_TRIG_CONV__: External trigger selected for regular group.
395
-  * @retval External trigger to be programmed into EXTSEL bits of CR2 register
396
-  */
397
-#if defined (STM32F103xE) || defined (STM32F103xG)
398
-#define ADC_CFGR_EXTSEL(__HANDLE__, __EXT_TRIG_CONV__)                         \
399
- (( (((__HANDLE__)->Instance) == ADC3)                                         \
400
-  )?                                                                           \
401
-   ( ( (__EXT_TRIG_CONV__) == ADC_EXTERNALTRIGCONV_T8_TRGO                     \
402
-     )?                                                                        \
403
-      (ADC3_EXTERNALTRIG_T8_TRGO)                                              \
404
-      :                                                                        \
405
-      (__EXT_TRIG_CONV__)                                                      \
406
-   )                                                                           \
407
-   :                                                                           \
408
-   (__EXT_TRIG_CONV__)                                                         \
409
- )
410
-#else
411
-#define ADC_CFGR_EXTSEL(__HANDLE__, __EXT_TRIG_CONV__)                         \
412
-  (__EXT_TRIG_CONV__)
413
-#endif /* STM32F103xE || STM32F103xG */
414
-
415
-/**
416
-  * @brief For devices with 3 ADCs: Defines the external trigger source 
417
-  *        for injected group according to ADC into common group ADC1&ADC2 or 
418
-  *        ADC3 (some triggers with same source have different value to
419
-  *        be programmed into ADC JEXTSEL bits of CR2 register).
420
-  *        For devices with 2 ADCs or less: this macro makes no change.
421
-  * @param __HANDLE__: ADC handle
422
-  * @param __EXT_TRIG_INJECTCONV__: External trigger selected for injected group.
423
-  * @retval External trigger to be programmed into JEXTSEL bits of CR2 register
424
-  */
425
-#if defined (STM32F103xE) || defined (STM32F103xG)
426
-#define ADC_CFGR_JEXTSEL(__HANDLE__, __EXT_TRIG_INJECTCONV__)                  \
427
- (( (((__HANDLE__)->Instance) == ADC3)                                         \
428
-  )?                                                                           \
429
-   ( ( (__EXT_TRIG_INJECTCONV__) == ADC_EXTERNALTRIGINJECCONV_T8_CC4           \
430
-     )?                                                                        \
431
-      (ADC3_EXTERNALTRIGINJEC_T8_CC4)                                          \
432
-      :                                                                        \
433
-      (__EXT_TRIG_INJECTCONV__)                                                \
434
-   )                                                                           \
435
-   :                                                                           \
436
-   (__EXT_TRIG_INJECTCONV__)                                                   \
437
- )
438
-#else
439
-#define ADC_CFGR_JEXTSEL(__HANDLE__, __EXT_TRIG_INJECTCONV__)                  \
440
-   (__EXT_TRIG_INJECTCONV__)
441
-#endif /* STM32F103xE || STM32F103xG */
442
-
443
-
444
-/**
445
-  * @brief Verification if multimode is enabled for the selected ADC (multimode ADC master or ADC slave) (applicable for devices with several ADCs)
446
-  * @param __HANDLE__: ADC handle
447
-  * @retval Multimode state: RESET if multimode is disabled, other value if multimode is enabled
448
-  */
449
-#if defined (STM32F103x6) || defined (STM32F103xB) || defined (STM32F105xC) || defined (STM32F107xC) || defined (STM32F103xE) || defined (STM32F103xG)
450
-#define ADC_MULTIMODE_IS_ENABLE(__HANDLE__)                                    \
451
- (( (((__HANDLE__)->Instance) == ADC1) || (((__HANDLE__)->Instance) == ADC2)   \
452
-  )?                                                                           \
453
-   (ADC1->CR1 & ADC_CR1_DUALMOD)                                               \
454
-   :                                                                           \
455
-   (RESET)                                                                     \
456
- )
457
-#else
458
-#define ADC_MULTIMODE_IS_ENABLE(__HANDLE__)                                    \
459
-  (RESET)
460
-#endif /* defined STM32F103x6 || defined STM32F103xB || defined STM32F105xC || defined STM32F107xC || defined STM32F103xE || defined STM32F103xG */
461
-
462
-/**
463
-  * @brief Verification of condition for ADC start conversion: ADC must be in non-multimode, or multimode with handle of ADC master (applicable for devices with several ADCs)
464
-  * @param __HANDLE__: ADC handle
465
-  * @retval None
466
-  */
467
-#if defined (STM32F103x6) || defined (STM32F103xB) || defined (STM32F105xC) || defined (STM32F107xC) || defined (STM32F103xE) || defined (STM32F103xG)
468
-#define ADC_NONMULTIMODE_OR_MULTIMODEMASTER(__HANDLE__)                        \
469
-  (( (((__HANDLE__)->Instance) == ADC2)                                        \
470
-   )?                                                                          \
471
-    ((ADC1->CR1 & ADC_CR1_DUALMOD) == RESET)                                   \
472
-    :                                                                          \
473
-    (!RESET)                                                                   \
474
-  )
475
-#else
476
-#define ADC_NONMULTIMODE_OR_MULTIMODEMASTER(__HANDLE__)                        \
477
-  (!RESET)
478
-#endif /* defined STM32F103x6 || defined STM32F103xB || defined STM32F105xC || defined STM32F107xC || defined STM32F103xE || defined STM32F103xG */
479
-
480
-/**
481
-  * @brief Check ADC multimode setting: In case of multimode, check whether ADC master of the selected ADC has feature auto-injection enabled (applicable for devices with several ADCs)
482
-  * @param __HANDLE__: ADC handle
483
-  * @retval None
484
-  */
485
-#if defined (STM32F103x6) || defined (STM32F103xB) || defined (STM32F105xC) || defined (STM32F107xC) || defined (STM32F103xE) || defined (STM32F103xG)
486
-#define ADC_MULTIMODE_AUTO_INJECTED(__HANDLE__)                                \
487
-  (( (((__HANDLE__)->Instance) == ADC1) || (((__HANDLE__)->Instance) == ADC2)  \
488
-   )?                                                                          \
489
-    (ADC1->CR1 & ADC_CR1_JAUTO)                                                \
490
-    :                                                                          \
491
-    (RESET)                                                                    \
492
-  )
493
-#else
494
-#define ADC_MULTIMODE_AUTO_INJECTED(__HANDLE__)                                \
495
-  (RESET)
496
-#endif /* defined STM32F103x6 || defined STM32F103xB || defined STM32F105xC || defined STM32F107xC || defined STM32F103xE || defined STM32F103xG */
497
-
498
-#if defined (STM32F103x6) || defined (STM32F103xB) || defined (STM32F105xC) || defined (STM32F107xC) || defined (STM32F103xE) || defined (STM32F103xG)
499
-/**
500
-  * @brief Set handle of the other ADC sharing the common multimode settings
501
-  * @param __HANDLE__: ADC handle
502
-  * @param __HANDLE_OTHER_ADC__: other ADC handle
503
-  * @retval None
504
-  */
505
-#define ADC_COMMON_ADC_OTHER(__HANDLE__, __HANDLE_OTHER_ADC__)                 \
506
-  ((__HANDLE_OTHER_ADC__)->Instance = ADC2)
507
-
508
-/**
509
-  * @brief Set handle of the ADC slave associated to the ADC master
510
-  * On STM32F1 devices, ADC slave is always ADC2 (this can be different
511
-  * on other STM32 devices)
512
-  * @param __HANDLE_MASTER__: ADC master handle
513
-  * @param __HANDLE_SLAVE__: ADC slave handle
514
-  * @retval None
515
-  */
516
-#define ADC_MULTI_SLAVE(__HANDLE_MASTER__, __HANDLE_SLAVE__)                   \
517
-  ((__HANDLE_SLAVE__)->Instance = ADC2)
518
-       
519
-#endif /* defined STM32F103x6 || defined STM32F103xB || defined STM32F105xC || defined STM32F107xC || defined STM32F103xE || defined STM32F103xG */
520
-
521
-#define IS_ADC_INJECTED_RANK(CHANNEL) (((CHANNEL) == ADC_INJECTED_RANK_1) || \
522
-                                       ((CHANNEL) == ADC_INJECTED_RANK_2) || \
523
-                                       ((CHANNEL) == ADC_INJECTED_RANK_3) || \
524
-                                       ((CHANNEL) == ADC_INJECTED_RANK_4))
525
-
526
-#define IS_ADC_EXTTRIGINJEC_EDGE(EDGE) (((EDGE) == ADC_EXTERNALTRIGINJECCONV_EDGE_NONE)  || \
527
-                                        ((EDGE) == ADC_EXTERNALTRIGINJECCONV_EDGE_RISING))
528
-
529
-/** @defgroup ADCEx_injected_nb_conv_verification ADCEx injected nb conv verification
530
-  * @{
531
-  */
532
-#define IS_ADC_INJECTED_NB_CONV(LENGTH)  (((LENGTH) >= 1U) && ((LENGTH) <= 4U))
533
-/**
534
-  * @}
535
-  */
536
-
537
-#if defined (STM32F100xB) || defined (STM32F100xE) || defined (STM32F101x6) || defined (STM32F101xB) || defined (STM32F102x6) || defined (STM32F102xB) || defined (STM32F103x6) || defined (STM32F103xB) || defined (STM32F105xC) || defined (STM32F107xC)
538
-#define IS_ADC_EXTTRIG(REGTRIG) (((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_CC1)    || \
539
-                                 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_CC2)    || \
540
-                                 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T2_CC2)    || \
541
-                                 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T3_TRGO)   || \
542
-                                 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T4_CC4)    || \
543
-                                 ((REGTRIG) == ADC_EXTERNALTRIGCONV_EXT_IT11)  || \
544
-                                 ((REGTRIG) == ADC_SOFTWARE_START))
545
-#endif
546
-#if defined (STM32F101xE)
547
-#define IS_ADC_EXTTRIG(REGTRIG) (((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_CC1)    || \
548
-                                 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_CC2)    || \
549
-                                 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T2_CC2)    || \
550
-                                 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T3_TRGO)   || \
551
-                                 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T4_CC4)    || \
552
-                                 ((REGTRIG) == ADC_EXTERNALTRIGCONV_EXT_IT11)  || \
553
-                                 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T8_TRGO)   || \
554
-                                 ((REGTRIG) == ADC_SOFTWARE_START))
555
-#endif
556
-#if defined (STM32F101xG)
557
-#define IS_ADC_EXTTRIG(REGTRIG) (((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_CC1)    || \
558
-                                 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_CC2)    || \
559
-                                 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T2_CC2)    || \
560
-                                 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T3_TRGO)   || \
561
-                                 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T4_CC4)    || \
562
-                                 ((REGTRIG) == ADC_EXTERNALTRIGCONV_EXT_IT11)  || \
563
-                                 ((REGTRIG) == ADC_SOFTWARE_START))
564
-#endif
565
-#if defined (STM32F103xE) || defined (STM32F103xG)
566
-#define IS_ADC_EXTTRIG(REGTRIG) (((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_CC1)    || \
567
-                                 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_CC2)    || \
568
-                                 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T2_CC2)    || \
569
-                                 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T3_TRGO)   || \
570
-                                 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T4_CC4)    || \
571
-                                 ((REGTRIG) == ADC_EXTERNALTRIGCONV_EXT_IT11)  || \
572
-                                 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T3_CC1)    || \
573
-                                 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T2_CC3)    || \
574
-                                 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T8_CC1)    || \
575
-                                 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T5_CC1)    || \
576
-                                 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T5_CC3)    || \
577
-                                 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_CC3)    || \
578
-                                 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T8_TRGO)   || \
579
-                                 ((REGTRIG) == ADC_SOFTWARE_START))
580
-#endif
581
-
582
-#if defined (STM32F100xB) || defined (STM32F100xE) || defined (STM32F101x6) || defined (STM32F101xB) || defined (STM32F102x6) || defined (STM32F102xB) || defined (STM32F103x6) || defined (STM32F103xB) || defined (STM32F105xC) || defined (STM32F107xC)
583
-#define IS_ADC_EXTTRIGINJEC(REGTRIG) (((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T2_TRGO)  || \
584
-                                      ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T2_CC1)   || \
585
-                                      ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T3_CC4)   || \
586
-                                      ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T4_TRGO)  || \
587
-                                      ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_EXT_IT15) || \
588
-                                      ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T1_CC4)   || \
589
-                                      ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T1_TRGO)  || \
590
-                                      ((REGTRIG) == ADC_INJECTED_SOFTWARE_START))
591
-#endif
592
-#if defined (STM32F101xE)
593
-#define IS_ADC_EXTTRIGINJEC(REGTRIG) (((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T2_TRGO)  || \
594
-                                      ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T2_CC1)   || \
595
-                                      ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T3_CC4)   || \
596
-                                      ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T4_TRGO)  || \
597
-                                      ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_EXT_IT15) || \
598
-                                      ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T1_CC4)   || \
599
-                                      ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T1_TRGO)  || \
600
-                                      ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T8_CC4)   || \
601
-                                      ((REGTRIG) == ADC_INJECTED_SOFTWARE_START))
602
-#endif
603
-#if defined (STM32F101xG)
604
-#define IS_ADC_EXTTRIGINJEC(REGTRIG) (((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T2_TRGO)  || \
605
-                                      ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T2_CC1)   || \
606
-                                      ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T3_CC4)   || \
607
-                                      ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T4_TRGO)  || \
608
-                                      ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_EXT_IT15) || \
609
-                                      ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T1_CC4)   || \
610
-                                      ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T1_TRGO)  || \
611
-                                      ((REGTRIG) == ADC_INJECTED_SOFTWARE_START))
612
-#endif
613
-#if defined (STM32F103xE) || defined (STM32F103xG)
614
-#define IS_ADC_EXTTRIGINJEC(REGTRIG) (((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T2_TRGO)  || \
615
-                                      ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T2_CC1)   || \
616
-                                      ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T3_CC4)   || \
617
-                                      ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T4_TRGO)  || \
618
-                                      ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T5_CC4)   || \
619
-                                      ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_EXT_IT15) || \
620
-                                      ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T4_CC3)   || \
621
-                                      ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T8_CC2)   || \
622
-                                      ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T5_TRGO)  || \
623
-                                      ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T5_CC4)   || \
624
-                                      ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T1_CC4)   || \
625
-                                      ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T1_TRGO)  || \
626
-                                      ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T8_CC4)   || \
627
-                                      ((REGTRIG) == ADC_INJECTED_SOFTWARE_START))
628
-#endif
629
-
630
-#if defined (STM32F103x6) || defined (STM32F103xB) || defined (STM32F105xC) || defined (STM32F107xC) || defined (STM32F103xE) || defined (STM32F103xG)
631
-#define IS_ADC_MODE(MODE) (((MODE) == ADC_MODE_INDEPENDENT)                || \
632
-                           ((MODE) == ADC_DUALMODE_REGSIMULT_INJECSIMULT)  || \
633
-                           ((MODE) == ADC_DUALMODE_REGSIMULT_ALTERTRIG)    || \
634
-                           ((MODE) == ADC_DUALMODE_INJECSIMULT_INTERLFAST) || \
635
-                           ((MODE) == ADC_DUALMODE_INJECSIMULT_INTERLSLOW) || \
636
-                           ((MODE) == ADC_DUALMODE_INJECSIMULT)            || \
637
-                           ((MODE) == ADC_DUALMODE_REGSIMULT)              || \
638
-                           ((MODE) == ADC_DUALMODE_INTERLFAST)             || \
639
-                           ((MODE) == ADC_DUALMODE_INTERLSLOW)             || \
640
-                           ((MODE) == ADC_DUALMODE_ALTERTRIG) )
641
-#endif /* defined STM32F103x6 || defined STM32F103xB || defined STM32F105xC || defined STM32F107xC || defined STM32F103xE || defined STM32F103xG */
642
-
643
-/**
644
-  * @}
645
-  */      
646
-   
647
-    
648
-
649
-    
650
-    
651
-   
652
-/* Exported functions --------------------------------------------------------*/
653
-/** @addtogroup ADCEx_Exported_Functions
654
-  * @{
655
-  */
656
-
657
-/* IO operation functions  *****************************************************/
658
-/** @addtogroup ADCEx_Exported_Functions_Group1
659
-  * @{
660
-  */
661
-
662
-/* ADC calibration */
663
-HAL_StatusTypeDef       HAL_ADCEx_Calibration_Start(ADC_HandleTypeDef* hadc);
664
-
665
-/* Blocking mode: Polling */
666
-HAL_StatusTypeDef       HAL_ADCEx_InjectedStart(ADC_HandleTypeDef* hadc);
667
-HAL_StatusTypeDef       HAL_ADCEx_InjectedStop(ADC_HandleTypeDef* hadc);
668
-HAL_StatusTypeDef       HAL_ADCEx_InjectedPollForConversion(ADC_HandleTypeDef* hadc, uint32_t Timeout);
669
-
670
-/* Non-blocking mode: Interruption */
671
-HAL_StatusTypeDef       HAL_ADCEx_InjectedStart_IT(ADC_HandleTypeDef* hadc);
672
-HAL_StatusTypeDef       HAL_ADCEx_InjectedStop_IT(ADC_HandleTypeDef* hadc);
673
-
674
-#if defined (STM32F103x6) || defined (STM32F103xB) || defined (STM32F105xC) || defined (STM32F107xC) || defined (STM32F103xE) || defined (STM32F103xG)
675
-/* ADC multimode */
676
-HAL_StatusTypeDef       HAL_ADCEx_MultiModeStart_DMA(ADC_HandleTypeDef *hadc, uint32_t *pData, uint32_t Length);
677
-HAL_StatusTypeDef       HAL_ADCEx_MultiModeStop_DMA(ADC_HandleTypeDef *hadc); 
678
-#endif /* defined STM32F103x6 || defined STM32F103xB || defined STM32F105xC || defined STM32F107xC || defined STM32F103xE || defined STM32F103xG */
679
-
680
-/* ADC retrieve conversion value intended to be used with polling or interruption */
681
-uint32_t                HAL_ADCEx_InjectedGetValue(ADC_HandleTypeDef* hadc, uint32_t InjectedRank);
682
-#if defined (STM32F103x6) || defined (STM32F103xB) || defined (STM32F105xC) || defined (STM32F107xC) || defined (STM32F103xE) || defined (STM32F103xG)
683
-uint32_t                HAL_ADCEx_MultiModeGetValue(ADC_HandleTypeDef *hadc);
684
-#endif /* defined STM32F103x6 || defined STM32F103xB || defined STM32F105xC || defined STM32F107xC || defined STM32F103xE || defined STM32F103xG */
685
-
686
-/* ADC IRQHandler and Callbacks used in non-blocking modes (Interruption) */
687
-void                    HAL_ADCEx_InjectedConvCpltCallback(ADC_HandleTypeDef* hadc);
688
-/**
689
-  * @}
690
-  */
691
-
692
-
693
-/* Peripheral Control functions ***********************************************/
694
-/** @addtogroup ADCEx_Exported_Functions_Group2
695
-  * @{
696
-  */
697
-HAL_StatusTypeDef       HAL_ADCEx_InjectedConfigChannel(ADC_HandleTypeDef* hadc,ADC_InjectionConfTypeDef* sConfigInjected);
698
-#if defined (STM32F103x6) || defined (STM32F103xB) || defined (STM32F105xC) || defined (STM32F107xC) || defined (STM32F103xE) || defined (STM32F103xG)
699
-HAL_StatusTypeDef       HAL_ADCEx_MultiModeConfigChannel(ADC_HandleTypeDef *hadc, ADC_MultiModeTypeDef *multimode);
700
-#endif /* defined STM32F103x6 || defined STM32F103xB || defined STM32F105xC || defined STM32F107xC || defined STM32F103xE || defined STM32F103xG */
701
-/**
702
-  * @}
703
-  */
704
-
705
-
706
-/**
707
-  * @}
708
-  */
709
-
710
-
711
-/**
712
-  * @}
713
-  */ 
714
-
715
-/**
716
-  * @}
717
-  */
718
-  
719
-#ifdef __cplusplus
720
-}
721
-#endif
722
-
723
-#endif /* __STM32F1xx_HAL_ADC_EX_H */
724
-
725
-
726
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

File diff suppressed because it is too large
+ 0 - 2110
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c


File diff suppressed because it is too large
+ 0 - 1339
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc_ex.c


+ 0 - 13
Inc/BDA4601.h

@@ -1,13 +0,0 @@
1
-/*
2
- * BDA4601.h
3
- *
4
- *  Created on: 2019. 6. 28.
5
- *      Author: parkyj
6
- */
7
-
8
-#ifndef BDA4601_H_
9
-#define BDA4601_H_
10
-
11
-
12
-
13
-#endif /* BDA4601_H_ */

+ 13 - 0
Inc/CRC16.h

@@ -0,0 +1,13 @@
1
+/*
2
+ * CRC16.h
3
+ *
4
+ *  Created on: 2019. 7. 3.
5
+ *      Author: parkyj
6
+ */
7
+
8
+#ifndef CRC16_H_
9
+#define CRC16_H_
10
+
11
+unsigned short genCRC16(char *buf_ptr, int len);
12
+
13
+#endif /* CRC16_H_ */

+ 0 - 13
Inc/PE43711.h

@@ -1,13 +0,0 @@
1
-/*
2
- * PE43711.h
3
- *
4
- *  Created on: 2019. 6. 28.
5
- *      Author: parkyj
6
- */
7
-
8
-#ifndef PE43711_H_
9
-#define PE43711_H_
10
-#include "main.h"
11
-
12
-
13
-#endif /* PE43711_H_ */

+ 0 - 138
Inc/main.h

@@ -58,144 +58,6 @@ void Error_Handler(void);
58 58
 /* USER CODE END EFP */
59 59
 
60 60
 /* Private defines -----------------------------------------------------------*/
61
-#define ATT_EN_1_8G_DL1_Pin GPIO_PIN_2
62
-#define ATT_EN_1_8G_DL1_GPIO_Port GPIOE
63
-#define ATT_EN_1_8G_DL2_Pin GPIO_PIN_3
64
-#define ATT_EN_1_8G_DL2_GPIO_Port GPIOE
65
-#define ATT_EN_1_8G_UL1_Pin GPIO_PIN_4
66
-#define ATT_EN_1_8G_UL1_GPIO_Port GPIOE
67
-#define ATT_EN_1_8G_UL2_Pin GPIO_PIN_5
68
-#define ATT_EN_1_8G_UL2_GPIO_Port GPIOE
69
-#define ATT_EN_1_8G_UL3_Pin GPIO_PIN_6
70
-#define ATT_EN_1_8G_UL3_GPIO_Port GPIOE
71
-#define ATT_EN_1_8G_UL4_Pin GPIO_PIN_13
72
-#define ATT_EN_1_8G_UL4_GPIO_Port GPIOC
73
-#define PATH_EN_1_8G_DL_Pin GPIO_PIN_14
74
-#define PATH_EN_1_8G_DL_GPIO_Port GPIOC
75
-#define PATH_EN_1_8G_UL_Pin GPIO_PIN_15
76
-#define PATH_EN_1_8G_UL_GPIO_Port GPIOC
77
-#define PLL_EN_1_8G_DL_Pin GPIO_PIN_0
78
-#define PLL_EN_1_8G_DL_GPIO_Port GPIOF
79
-#define PLL_EN_1_8G_UL_Pin GPIO_PIN_1
80
-#define PLL_EN_1_8G_UL_GPIO_Port GPIOF
81
-#define PLL_LD_1_8G_DL_Pin GPIO_PIN_2
82
-#define PLL_LD_1_8G_DL_GPIO_Port GPIOF
83
-#define PLL_LD_1_8G_UL_Pin GPIO_PIN_3
84
-#define PLL_LD_1_8G_UL_GPIO_Port GPIOF
85
-#define ATT_EN_2_1G_DL1_Pin GPIO_PIN_4
86
-#define ATT_EN_2_1G_DL1_GPIO_Port GPIOF
87
-#define ATT_EN_2_1G_DL2_Pin GPIO_PIN_5
88
-#define ATT_EN_2_1G_DL2_GPIO_Port GPIOF
89
-#define ATT_EN_2_1G_UL1_Pin GPIO_PIN_6
90
-#define ATT_EN_2_1G_UL1_GPIO_Port GPIOF
91
-#define ATT_EN_2_1G_UL2_Pin GPIO_PIN_7
92
-#define ATT_EN_2_1G_UL2_GPIO_Port GPIOF
93
-#define ATT_EN_2_1G_UL3_Pin GPIO_PIN_8
94
-#define ATT_EN_2_1G_UL3_GPIO_Port GPIOF
95
-#define ATT_EN_2_1G_UL4_Pin GPIO_PIN_9
96
-#define ATT_EN_2_1G_UL4_GPIO_Port GPIOF
97
-#define DET_3_5G_UL_IN_Pin GPIO_PIN_0
98
-#define DET_3_5G_UL_IN_GPIO_Port GPIOC
99
-#define DET_3_5G_UL_OUT_Pin GPIO_PIN_1
100
-#define DET_3_5G_UL_OUT_GPIO_Port GPIOC
101
-#define RFU_TEMP_Pin GPIO_PIN_2
102
-#define RFU_TEMP_GPIO_Port GPIOC
103
-#define _28V_DET_Pin GPIO_PIN_3
104
-#define _28V_DET_GPIO_Port GPIOC
105
-#define DET_1_8G_DL_IN_Pin GPIO_PIN_0
106
-#define DET_1_8G_DL_IN_GPIO_Port GPIOA
107
-#define DET_1_8G_DL_OUT_Pin GPIO_PIN_1
108
-#define DET_1_8G_DL_OUT_GPIO_Port GPIOA
109
-#define DET_1_8G_UL_IN_Pin GPIO_PIN_2
110
-#define DET_1_8G_UL_IN_GPIO_Port GPIOA
111
-#define DET_1_8G_UL_OUT_Pin GPIO_PIN_3
112
-#define DET_1_8G_UL_OUT_GPIO_Port GPIOA
113
-#define DET_2_1G_DL_IN_Pin GPIO_PIN_4
114
-#define DET_2_1G_DL_IN_GPIO_Port GPIOA
115
-#define DET_2_1G_DL_OUT_Pin GPIO_PIN_5
116
-#define DET_2_1G_DL_OUT_GPIO_Port GPIOA
117
-#define DET_2_1G_UL_IN_Pin GPIO_PIN_6
118
-#define DET_2_1G_UL_IN_GPIO_Port GPIOA
119
-#define DET_2_1G_UL_OUT_Pin GPIO_PIN_7
120
-#define DET_2_1G_UL_OUT_GPIO_Port GPIOA
121
-#define DET_3_5G_DL_IN_Pin GPIO_PIN_0
122
-#define DET_3_5G_DL_IN_GPIO_Port GPIOB
123
-#define DET_3_5G_DL_OUT_Pin GPIO_PIN_1
124
-#define DET_3_5G_DL_OUT_GPIO_Port GPIOB
125
-#define PLL_DATA_Pin GPIO_PIN_8
126
-#define PLL_DATA_GPIO_Port GPIOD
127
-#define PLL_CLK_Pin GPIO_PIN_9
128
-#define PLL_CLK_GPIO_Port GPIOD
129
-#define ATT_DATA_Pin GPIO_PIN_10
130
-#define ATT_DATA_GPIO_Port GPIOD
131
-#define ATT_CLK_Pin GPIO_PIN_11
132
-#define ATT_CLK_GPIO_Port GPIOD
133
-#define ALARM_DC_Pin GPIO_PIN_12
134
-#define ALARM_DC_GPIO_Port GPIOD
135
-#define ALARM_AC_Pin GPIO_PIN_13
136
-#define ALARM_AC_GPIO_Port GPIOD
137
-#define DA_LDAC_Pin GPIO_PIN_15
138
-#define DA_LDAC_GPIO_Port GPIOD
139
-#define DA_SYNC_Pin GPIO_PIN_2
140
-#define DA_SYNC_GPIO_Port GPIOG
141
-#define DA_SCLK_Pin GPIO_PIN_3
142
-#define DA_SCLK_GPIO_Port GPIOG
143
-#define DA_DIN_Pin GPIO_PIN_4
144
-#define DA_DIN_GPIO_Port GPIOG
145
-#define _T_SYNC_UL_Pin GPIO_PIN_5
146
-#define _T_SYNC_UL_GPIO_Port GPIOG
147
-#define T_SYNC_UL_Pin GPIO_PIN_6
148
-#define T_SYNC_UL_GPIO_Port GPIOG
149
-#define _T_SYNC_DL_Pin GPIO_PIN_7
150
-#define _T_SYNC_DL_GPIO_Port GPIOG
151
-#define T_SYNC_DL_Pin GPIO_PIN_8
152
-#define T_SYNC_DL_GPIO_Port GPIOG
153
-#define PLL_EN_3_5G_L_Pin GPIO_PIN_6
154
-#define PLL_EN_3_5G_L_GPIO_Port GPIOC
155
-#define PLL_EN_3_5G_H_Pin GPIO_PIN_7
156
-#define PLL_EN_3_5G_H_GPIO_Port GPIOC
157
-#define PLL_LD_3_5G_L_Pin GPIO_PIN_8
158
-#define PLL_LD_3_5G_L_GPIO_Port GPIOC
159
-#define PLL_LD_3_5G_H_Pin GPIO_PIN_9
160
-#define PLL_LD_3_5G_H_GPIO_Port GPIOC
161
-#define ATT_CLK_3_5G_Pin GPIO_PIN_0
162
-#define ATT_CLK_3_5G_GPIO_Port GPIOD
163
-#define ATT_EN_3_5G_Pin GPIO_PIN_1
164
-#define ATT_EN_3_5G_GPIO_Port GPIOD
165
-#define ATT_DATA_3_5G_DL_Pin GPIO_PIN_2
166
-#define ATT_DATA_3_5G_DL_GPIO_Port GPIOD
167
-#define ATT_DATA_3_5G_UL_Pin GPIO_PIN_3
168
-#define ATT_DATA_3_5G_UL_GPIO_Port GPIOD
169
-#define ATT_DATA_3_5G_COM1_Pin GPIO_PIN_4
170
-#define ATT_DATA_3_5G_COM1_GPIO_Port GPIOD
171
-#define ATT_DATA_3_5G_COM2_Pin GPIO_PIN_5
172
-#define ATT_DATA_3_5G_COM2_GPIO_Port GPIOD
173
-#define ATT_DATA_3_5G_COM3_Pin GPIO_PIN_6
174
-#define ATT_DATA_3_5G_COM3_GPIO_Port GPIOD
175
-#define PATH_EN_3_5G_L_Pin GPIO_PIN_7
176
-#define PATH_EN_3_5G_L_GPIO_Port GPIOD
177
-#define PATH_EN_3_5G_H_Pin GPIO_PIN_9
178
-#define PATH_EN_3_5G_H_GPIO_Port GPIOG
179
-#define PATH_EN_3_5G_DL_Pin GPIO_PIN_10
180
-#define PATH_EN_3_5G_DL_GPIO_Port GPIOG
181
-#define PATH_EN_3_5G_UL_Pin GPIO_PIN_11
182
-#define PATH_EN_3_5G_UL_GPIO_Port GPIOG
183
-#define PLL_ON_OFF_3_5G_L_Pin GPIO_PIN_12
184
-#define PLL_ON_OFF_3_5G_L_GPIO_Port GPIOG
185
-#define PLL_ON_OFF_3_5G_H_Pin GPIO_PIN_13
186
-#define PLL_ON_OFF_3_5G_H_GPIO_Port GPIOG
187
-#define PLL_EN_2_1G_DL_Pin GPIO_PIN_3
188
-#define PLL_EN_2_1G_DL_GPIO_Port GPIOB
189
-#define PLL_EN_2_1G_UL_Pin GPIO_PIN_4
190
-#define PLL_EN_2_1G_UL_GPIO_Port GPIOB
191
-#define PLL_LD_2_1G_DL_Pin GPIO_PIN_5
192
-#define PLL_LD_2_1G_DL_GPIO_Port GPIOB
193
-#define PLL_LD_2_1G_UL_Pin GPIO_PIN_6
194
-#define PLL_LD_2_1G_UL_GPIO_Port GPIOB
195
-#define PATH_EN_2_1G_DL_Pin GPIO_PIN_0
196
-#define PATH_EN_2_1G_DL_GPIO_Port GPIOE
197
-#define PATH_EN_2_1G_UL_Pin GPIO_PIN_1
198
-#define PATH_EN_2_1G_UL_GPIO_Port GPIOE
199 61
 /* USER CODE BEGIN Private defines */
200 62
 
201 63
 /* USER CODE END Private defines */

+ 1 - 1
Inc/stm32f1xx_hal_conf.h

@@ -49,7 +49,7 @@
49 49
   */
50 50
   
51 51
 #define HAL_MODULE_ENABLED  
52
-#define HAL_ADC_MODULE_ENABLED
52
+/*#define HAL_ADC_MODULE_ENABLED   */
53 53
 /*#define HAL_CRYP_MODULE_ENABLED   */
54 54
 /*#define HAL_CAN_MODULE_ENABLED   */
55 55
 /*#define HAL_CEC_MODULE_ENABLED   */

+ 2 - 1
Inc/stm32f1xx_it.h

@@ -56,7 +56,8 @@ void SVC_Handler(void);
56 56
 void DebugMon_Handler(void);
57 57
 void PendSV_Handler(void);
58 58
 void SysTick_Handler(void);
59
-void DMA1_Channel1_IRQHandler(void);
59
+void DMA1_Channel4_IRQHandler(void);
60
+void DMA1_Channel5_IRQHandler(void);
60 61
 void USART1_IRQHandler(void);
61 62
 /* USER CODE BEGIN EFP */
62 63
 

File diff suppressed because it is too large
+ 40 - 434
STM32F103_ATTEN_PLL_Zig.ioc


+ 0 - 36
Src/BDA4601.c

@@ -1,36 +0,0 @@
1
-/*
2
- * BDA4601.c
3
- *
4
- *  Created on: 2019. 6. 28.
5
- *      Author: parkyj
6
- */
7
-void BDA4601_atten_ctrl(PE43711_st* type ,double data){
8
-    uint8_t i = 0;
9
-    uint8_t temp = 0;
10
-    data = 4 * data;
11
-    temp = (uint8_t)data;
12
-    HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_RESET);
13
-    HAL_Delay(1);
14
-    for(i = 0; i < 8; i++){
15
-        if((uint8_t)temp & 0x01){
16
-           HAL_GPIO_WritePin(GPIOB,GPIO_PIN_15,GPIO_PIN_SET);//DATA
17
-        }
18
-           else{
19
-           HAL_GPIO_WritePin(GPIOB,GPIO_PIN_15,GPIO_PIN_RESET);//DATA
20
-           }
21
-
22
-        HAL_GPIO_WritePin(GPIOB,GPIO_PIN_2,GPIO_PIN_SET);//CLOCK
23
-        HAL_Delay(1);
24
-        HAL_GPIO_WritePin(GPIOB,GPIO_PIN_2,GPIO_PIN_RESET);//CLOCK
25
-        HAL_Delay(1);
26
-        temp >>= 1;
27
-    }
28
-    HAL_GPIO_WritePin(GPIOB,GPIO_PIN_2,GPIO_PIN_RESET);//CLOCK
29
-    HAL_GPIO_WritePin(GPIOB,GPIO_PIN_15,GPIO_PIN_RESET);//DATA
30
-    HAL_Delay(5);
31
-    HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_SET);//LE
32
-    HAL_Delay(1);
33
-    HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_RESET);
34
-}
35
-
36
-

+ 0 - 107
Src/PE43711.c

@@ -1,107 +0,0 @@
1
-/*
2
- * PE43711.c
3
- *
4
- *  Created on: 2019. 6. 28.
5
- *      Author: parkyj
6
- */
7
- #include "PE43711.h"
8
- typedef struct{
9
-    uint16_t ATT_EN_1_8G_DL1_PIN;
10
-    GPIO_TypeDef *ATT_EN_1_8G_DL1_PORT;
11
-        
12
-    uint16_t ATT_EN_1_8G_DL2_PIN;
13
-    GPIO_TypeDef *ATT_EN_1_8G_DL2_PORT;
14
-
15
-    uint16_t ATT_EN_1_8G_UL1_PIN;
16
-    GPIO_TypeDef *ATT_EN_1_8G_UL1_PORT;
17
-
18
-    uint16_t ATT_EN_1_8G_UL2_PIN;
19
-    GPIO_TypeDef *ATT_EN_1_8G_UL2_PORT;
20
-
21
-    uint16_t ATT_EN_1_8G_UL3_PIN;
22
-    GPIO_TypeDef *ATT_EN_1_8G_UL3_PORT;
23
-
24
-    uint16_t ATT_EN_1_8G_UL4_PIN;
25
-    GPIO_TypeDef *ATT_EN_1_8G_UL4_PORT;
26
- }PE43711_st;
27
-
28
-PE43711_st *Atten_1_8Ghz; 
29
-PE43711_st *Atten_2_1Ghz; 
30
-
31
- 
32
-void PE43711_PinInit(void){
33
-    Atten_1_8Ghz->ATT_EN_1_8G_DL1_PIN = GPIO_PIN_1;
34
-    Atten_1_8Ghz->ATT_EN_1_8G_DL1_PORT = GPIOB;
35
-    
36
-    Atten_1_8Ghz->ATT_EN_1_8G_DL2_PIN = GPIO_PIN_1;
37
-    Atten_1_8Ghz->ATT_EN_1_8G_DL2_PORT = GPIOB;
38
-    
39
-    Atten_1_8Ghz->ATT_EN_1_8G_UL1_PIN = GPIO_PIN_1;
40
-    Atten_1_8Ghz->ATT_EN_1_8G_UL1_PORT = GPIOB;
41
-    
42
-    Atten_1_8Ghz->ATT_EN_1_8G_DL1_PIN = GPIO_PIN_1;
43
-    Atten_1_8Ghz->ATT_EN_1_8G_DL1_PORT = GPIOB;
44
-    
45
-    Atten_1_8Ghz->ATT_EN_1_8G_UL2_PIN = GPIO_PIN_1;
46
-    Atten_1_8Ghz->ATT_EN_1_8G_UL2_PORT = GPIOB;
47
-
48
-    Atten_1_8Ghz->ATT_EN_1_8G_UL3_PIN = GPIO_PIN_1;
49
-    Atten_1_8Ghz->ATT_EN_1_8G_UL3_PORT = GPIOB;
50
-    
51
-    Atten_1_8Ghz->ATT_EN_1_8G_UL4_PIN = GPIO_PIN_1;
52
-    Atten_1_8Ghz->ATT_EN_1_8G_UL4_PORT = GPIOB;
53
-
54
-
55
-    Atten_2_1Ghz->ATT_EN_1_8G_DL1_PIN = GPIO_PIN_1;
56
-    Atten_2_1Ghz->ATT_EN_1_8G_DL1_PORT = GPIOB;
57
-
58
-    Atten_2_1Ghz->ATT_EN_1_8G_DL2_PIN = GPIO_PIN_1;
59
-    Atten_2_1Ghz->ATT_EN_1_8G_DL2_PORT = GPIOB;
60
-
61
-    Atten_2_1Ghz->ATT_EN_1_8G_UL1_PIN = GPIO_PIN_1;
62
-    Atten_2_1Ghz->ATT_EN_1_8G_UL1_PORT = GPIOB;
63
-
64
-    Atten_2_1Ghz->ATT_EN_1_8G_DL1_PIN = GPIO_PIN_1;
65
-    Atten_2_1Ghz->ATT_EN_1_8G_DL1_PORT = GPIOB;
66
-
67
-    Atten_2_1Ghz->ATT_EN_1_8G_UL2_PIN = GPIO_PIN_1;
68
-    Atten_2_1Ghz->ATT_EN_1_8G_UL2_PORT = GPIOB;
69
-
70
-    Atten_2_1Ghz->ATT_EN_1_8G_UL3_PIN = GPIO_PIN_1;
71
-    Atten_2_1Ghz->ATT_EN_1_8G_UL3_PORT = GPIOB;
72
-
73
-    Atten_2_1Ghz->ATT_EN_1_8G_UL4_PIN = GPIO_PIN_1;
74
-    Atten_2_1Ghz->ATT_EN_1_8G_UL4_PORT = GPIOB;
75
-    
76
-}
77
-
78
-void PE43711_atten_ctrl(PE43711_st* Atten_xGhz ,double data){
79
-    uint8_t i = 0;
80
-    uint8_t temp = 0;
81
-    data = 4 * data;
82
-    temp = (uint8_t)data;
83
-    
84
-    HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_RESET);
85
-    HAL_Delay(1);
86
-    for(i = 0; i < 8; i++){
87
-        if((uint8_t)temp & 0x01){
88
-           HAL_GPIO_WritePin(GPIOB,GPIO_PIN_15,GPIO_PIN_SET);//DATA
89
-        }
90
-           else{
91
-           HAL_GPIO_WritePin(GPIOB,GPIO_PIN_15,GPIO_PIN_RESET);//DATA
92
-           }
93
-
94
-		HAL_GPIO_WritePin(GPIOB,GPIO_PIN_2,GPIO_PIN_SET);//CLOCK
95
-		HAL_Delay(1);
96
-		HAL_GPIO_WritePin(GPIOB,GPIO_PIN_2,GPIO_PIN_RESET);//CLOCK
97
-		HAL_Delay(1);
98
-		temp >>= 1;
99
-    }
100
-    
101
-	HAL_GPIO_WritePin(GPIOB,GPIO_PIN_2,GPIO_PIN_RESET);//CLOCK
102
-    HAL_GPIO_WritePin(GPIOB,GPIO_PIN_15,GPIO_PIN_RESET);//DATA
103
-    HAL_Delay(5);
104
-    HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_SET);//LE
105
-    HAL_Delay(1);
106
-    HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_RESET);
107
-}

+ 12 - 268
Src/main.c

@@ -42,10 +42,9 @@
42 42
 /* USER CODE END PM */
43 43
 
44 44
 /* Private variables ---------------------------------------------------------*/
45
-ADC_HandleTypeDef hadc1;
46
-DMA_HandleTypeDef hdma_adc1;
47
-
48 45
 UART_HandleTypeDef huart1;
46
+DMA_HandleTypeDef hdma_usart1_rx;
47
+DMA_HandleTypeDef hdma_usart1_tx;
49 48
 
50 49
 /* USER CODE BEGIN PV */
51 50
 
@@ -55,7 +54,6 @@ UART_HandleTypeDef huart1;
55 54
 void SystemClock_Config(void);
56 55
 static void MX_GPIO_Init(void);
57 56
 static void MX_DMA_Init(void);
58
-static void MX_ADC1_Init(void);
59 57
 static void MX_USART1_UART_Init(void);
60 58
 static void MX_NVIC_Init(void);
61 59
 /* USER CODE BEGIN PFP */
@@ -98,7 +96,6 @@ int main(void)
98 96
   /* Initialize all configured peripherals */
99 97
   MX_GPIO_Init();
100 98
   MX_DMA_Init();
101
-  MX_ADC1_Init();
102 99
   MX_USART1_UART_Init();
103 100
 
104 101
   /* Initialize interrupts */
@@ -109,8 +106,6 @@ int main(void)
109 106
 
110 107
   /* Infinite loop */
111 108
   /* USER CODE BEGIN WHILE */
112
-  while(HAL_ADCEx_Calibration_Start(&hadc1) != HAL_OK); //ADC Calibration 
113
-   HAL_ADC_Start_DMA(&hadc1, (uint32_t*)ADCvalue, ADC_EA);
114 109
   while (1)
115 110
   {
116 111
     /* USER CODE END WHILE */
@@ -128,7 +123,6 @@ void SystemClock_Config(void)
128 123
 {
129 124
   RCC_OscInitTypeDef RCC_OscInitStruct = {0};
130 125
   RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
131
-  RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
132 126
 
133 127
   /** Initializes the CPU, AHB and APB busses clocks 
134 128
   */
@@ -155,12 +149,6 @@ void SystemClock_Config(void)
155 149
   {
156 150
     Error_Handler();
157 151
   }
158
-  PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC;
159
-  PeriphClkInit.AdcClockSelection = RCC_ADCPCLK2_DIV6;
160
-  if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
161
-  {
162
-    Error_Handler();
163
-  }
164 152
 }
165 153
 
166 154
 /**
@@ -169,147 +157,17 @@ void SystemClock_Config(void)
169 157
   */
170 158
 static void MX_NVIC_Init(void)
171 159
 {
160
+  /* DMA1_Channel5_IRQn interrupt configuration */
161
+  HAL_NVIC_SetPriority(DMA1_Channel5_IRQn, 0, 0);
162
+  HAL_NVIC_EnableIRQ(DMA1_Channel5_IRQn);
163
+  /* DMA1_Channel4_IRQn interrupt configuration */
164
+  HAL_NVIC_SetPriority(DMA1_Channel4_IRQn, 0, 0);
165
+  HAL_NVIC_EnableIRQ(DMA1_Channel4_IRQn);
172 166
   /* USART1_IRQn interrupt configuration */
173 167
   HAL_NVIC_SetPriority(USART1_IRQn, 0, 0);
174 168
   HAL_NVIC_EnableIRQ(USART1_IRQn);
175 169
 }
176 170
 
177
-/**
178
-  * @brief ADC1 Initialization Function
179
-  * @param None
180
-  * @retval None
181
-  */
182
-static void MX_ADC1_Init(void)
183
-{
184
-
185
-  /* USER CODE BEGIN ADC1_Init 0 */
186
-
187
-  /* USER CODE END ADC1_Init 0 */
188
-
189
-  ADC_ChannelConfTypeDef sConfig = {0};
190
-
191
-  /* USER CODE BEGIN ADC1_Init 1 */
192
-
193
-  /* USER CODE END ADC1_Init 1 */
194
-  /** Common config 
195
-  */
196
-  hadc1.Instance = ADC1;
197
-  hadc1.Init.ScanConvMode = ADC_SCAN_ENABLE;
198
-  hadc1.Init.ContinuousConvMode = ENABLE;
199
-  hadc1.Init.DiscontinuousConvMode = DISABLE;
200
-  hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;
201
-  hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT;
202
-  hadc1.Init.NbrOfConversion = 14;
203
-  if (HAL_ADC_Init(&hadc1) != HAL_OK)
204
-  {
205
-    Error_Handler();
206
-  }
207
-  /** Configure Regular Channel 
208
-  */
209
-  sConfig.Channel = ADC_CHANNEL_0;
210
-  sConfig.Rank = ADC_REGULAR_RANK_1;
211
-  sConfig.SamplingTime = ADC_SAMPLETIME_1CYCLE_5;
212
-  if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
213
-  {
214
-    Error_Handler();
215
-  }
216
-  /** Configure Regular Channel 
217
-  */
218
-  sConfig.Rank = ADC_REGULAR_RANK_2;
219
-  if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
220
-  {
221
-    Error_Handler();
222
-  }
223
-  /** Configure Regular Channel 
224
-  */
225
-  sConfig.Rank = ADC_REGULAR_RANK_3;
226
-  if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
227
-  {
228
-    Error_Handler();
229
-  }
230
-  /** Configure Regular Channel 
231
-  */
232
-  sConfig.Rank = ADC_REGULAR_RANK_4;
233
-  if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
234
-  {
235
-    Error_Handler();
236
-  }
237
-  /** Configure Regular Channel 
238
-  */
239
-  sConfig.Rank = ADC_REGULAR_RANK_5;
240
-  if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
241
-  {
242
-    Error_Handler();
243
-  }
244
-  /** Configure Regular Channel 
245
-  */
246
-  sConfig.Rank = ADC_REGULAR_RANK_6;
247
-  if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
248
-  {
249
-    Error_Handler();
250
-  }
251
-  /** Configure Regular Channel 
252
-  */
253
-  sConfig.Rank = ADC_REGULAR_RANK_7;
254
-  if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
255
-  {
256
-    Error_Handler();
257
-  }
258
-  /** Configure Regular Channel 
259
-  */
260
-  sConfig.Rank = ADC_REGULAR_RANK_8;
261
-  if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
262
-  {
263
-    Error_Handler();
264
-  }
265
-  /** Configure Regular Channel 
266
-  */
267
-  sConfig.Rank = ADC_REGULAR_RANK_9;
268
-  if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
269
-  {
270
-    Error_Handler();
271
-  }
272
-  /** Configure Regular Channel 
273
-  */
274
-  sConfig.Rank = ADC_REGULAR_RANK_10;
275
-  if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
276
-  {
277
-    Error_Handler();
278
-  }
279
-  /** Configure Regular Channel 
280
-  */
281
-  sConfig.Rank = ADC_REGULAR_RANK_11;
282
-  if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
283
-  {
284
-    Error_Handler();
285
-  }
286
-  /** Configure Regular Channel 
287
-  */
288
-  sConfig.Rank = ADC_REGULAR_RANK_12;
289
-  if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
290
-  {
291
-    Error_Handler();
292
-  }
293
-  /** Configure Regular Channel 
294
-  */
295
-  sConfig.Rank = ADC_REGULAR_RANK_13;
296
-  if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
297
-  {
298
-    Error_Handler();
299
-  }
300
-  /** Configure Regular Channel 
301
-  */
302
-  sConfig.Rank = ADC_REGULAR_RANK_14;
303
-  if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
304
-  {
305
-    Error_Handler();
306
-  }
307
-  /* USER CODE BEGIN ADC1_Init 2 */
308
-
309
-  /* USER CODE END ADC1_Init 2 */
310
-
311
-}
312
-
313 171
 /**
314 172
   * @brief USART1 Initialization Function
315 173
   * @param None
@@ -351,11 +209,6 @@ static void MX_DMA_Init(void)
351 209
   /* DMA controller clock enable */
352 210
   __HAL_RCC_DMA1_CLK_ENABLE();
353 211
 
354
-  /* DMA interrupt init */
355
-  /* DMA1_Channel1_IRQn interrupt configuration */
356
-  HAL_NVIC_SetPriority(DMA1_Channel1_IRQn, 0, 0);
357
-  HAL_NVIC_EnableIRQ(DMA1_Channel1_IRQn);
358
-
359 212
 }
360 213
 
361 214
 /**
@@ -368,126 +221,17 @@ static void MX_GPIO_Init(void)
368 221
   GPIO_InitTypeDef GPIO_InitStruct = {0};
369 222
 
370 223
   /* GPIO Ports Clock Enable */
371
-  __HAL_RCC_GPIOE_CLK_ENABLE();
372
-  __HAL_RCC_GPIOC_CLK_ENABLE();
373
-  __HAL_RCC_GPIOF_CLK_ENABLE();
374 224
   __HAL_RCC_GPIOA_CLK_ENABLE();
375
-  __HAL_RCC_GPIOB_CLK_ENABLE();
376
-  __HAL_RCC_GPIOD_CLK_ENABLE();
377
-  __HAL_RCC_GPIOG_CLK_ENABLE();
378
-
379
-  /*Configure GPIO pin Output Level */
380
-  HAL_GPIO_WritePin(GPIOE, ATT_EN_1_8G_DL1_Pin|ATT_EN_1_8G_DL2_Pin|ATT_EN_1_8G_UL1_Pin|ATT_EN_1_8G_UL2_Pin 
381
-                          |ATT_EN_1_8G_UL3_Pin|PATH_EN_2_1G_DL_Pin|PATH_EN_2_1G_UL_Pin, GPIO_PIN_RESET);
382
-
383
-  /*Configure GPIO pin Output Level */
384
-  HAL_GPIO_WritePin(GPIOC, ATT_EN_1_8G_UL4_Pin|PATH_EN_1_8G_DL_Pin|PATH_EN_1_8G_UL_Pin|PLL_EN_3_5G_L_Pin 
385
-                          |PLL_EN_3_5G_H_Pin, GPIO_PIN_RESET);
386
-
387
-  /*Configure GPIO pin Output Level */
388
-  HAL_GPIO_WritePin(GPIOF, PLL_EN_1_8G_DL_Pin|PLL_EN_1_8G_UL_Pin|ATT_EN_2_1G_DL1_Pin|ATT_EN_2_1G_DL2_Pin 
389
-                          |ATT_EN_2_1G_UL1_Pin|ATT_EN_2_1G_UL2_Pin|ATT_EN_2_1G_UL3_Pin|ATT_EN_2_1G_UL4_Pin, GPIO_PIN_RESET);
390
-
391
-  /*Configure GPIO pin Output Level */
392
-  HAL_GPIO_WritePin(GPIOD, PLL_DATA_Pin|PLL_CLK_Pin|ATT_DATA_Pin|ATT_CLK_Pin 
393
-                          |DA_LDAC_Pin|ATT_CLK_3_5G_Pin|ATT_EN_3_5G_Pin|ATT_DATA_3_5G_DL_Pin 
394
-                          |ATT_DATA_3_5G_UL_Pin|ATT_DATA_3_5G_COM1_Pin|ATT_DATA_3_5G_COM2_Pin|ATT_DATA_3_5G_COM3_Pin 
395
-                          |PATH_EN_3_5G_L_Pin, GPIO_PIN_RESET);
396 225
 
397 226
   /*Configure GPIO pin Output Level */
398
-  HAL_GPIO_WritePin(GPIOG, DA_SYNC_Pin|DA_SCLK_Pin|DA_DIN_Pin|_T_SYNC_UL_Pin 
399
-                          |T_SYNC_UL_Pin|_T_SYNC_DL_Pin|T_SYNC_DL_Pin|PATH_EN_3_5G_DL_Pin 
400
-                          |PATH_EN_3_5G_UL_Pin|PLL_ON_OFF_3_5G_L_Pin|PLL_ON_OFF_3_5G_H_Pin, GPIO_PIN_RESET);
227
+  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_RESET);
401 228
 
402
-  /*Configure GPIO pin Output Level */
403
-  HAL_GPIO_WritePin(GPIOB, PLL_EN_2_1G_DL_Pin|PLL_EN_2_1G_UL_Pin, GPIO_PIN_RESET);
404
-
405
-  /*Configure GPIO pins : ATT_EN_1_8G_DL1_Pin ATT_EN_1_8G_DL2_Pin ATT_EN_1_8G_UL1_Pin ATT_EN_1_8G_UL2_Pin 
406
-                           ATT_EN_1_8G_UL3_Pin PATH_EN_2_1G_DL_Pin PATH_EN_2_1G_UL_Pin */
407
-  GPIO_InitStruct.Pin = ATT_EN_1_8G_DL1_Pin|ATT_EN_1_8G_DL2_Pin|ATT_EN_1_8G_UL1_Pin|ATT_EN_1_8G_UL2_Pin 
408
-                          |ATT_EN_1_8G_UL3_Pin|PATH_EN_2_1G_DL_Pin|PATH_EN_2_1G_UL_Pin;
409
-  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
410
-  GPIO_InitStruct.Pull = GPIO_NOPULL;
411
-  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
412
-  HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
413
-
414
-  /*Configure GPIO pins : ATT_EN_1_8G_UL4_Pin PATH_EN_1_8G_DL_Pin PATH_EN_1_8G_UL_Pin PLL_EN_3_5G_L_Pin 
415
-                           PLL_EN_3_5G_H_Pin */
416
-  GPIO_InitStruct.Pin = ATT_EN_1_8G_UL4_Pin|PATH_EN_1_8G_DL_Pin|PATH_EN_1_8G_UL_Pin|PLL_EN_3_5G_L_Pin 
417
-                          |PLL_EN_3_5G_H_Pin;
418
-  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
419
-  GPIO_InitStruct.Pull = GPIO_NOPULL;
420
-  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
421
-  HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
422
-
423
-  /*Configure GPIO pins : PLL_EN_1_8G_DL_Pin PLL_EN_1_8G_UL_Pin ATT_EN_2_1G_DL1_Pin ATT_EN_2_1G_DL2_Pin 
424
-                           ATT_EN_2_1G_UL1_Pin ATT_EN_2_1G_UL2_Pin ATT_EN_2_1G_UL3_Pin ATT_EN_2_1G_UL4_Pin */
425
-  GPIO_InitStruct.Pin = PLL_EN_1_8G_DL_Pin|PLL_EN_1_8G_UL_Pin|ATT_EN_2_1G_DL1_Pin|ATT_EN_2_1G_DL2_Pin 
426
-                          |ATT_EN_2_1G_UL1_Pin|ATT_EN_2_1G_UL2_Pin|ATT_EN_2_1G_UL3_Pin|ATT_EN_2_1G_UL4_Pin;
427
-  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
428
-  GPIO_InitStruct.Pull = GPIO_NOPULL;
429
-  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
430
-  HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
431
-
432
-  /*Configure GPIO pins : PLL_LD_1_8G_DL_Pin PLL_LD_1_8G_UL_Pin */
433
-  GPIO_InitStruct.Pin = PLL_LD_1_8G_DL_Pin|PLL_LD_1_8G_UL_Pin;
434
-  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
435
-  GPIO_InitStruct.Pull = GPIO_NOPULL;
436
-  HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
437
-
438
-  /*Configure GPIO pins : PLL_DATA_Pin PLL_CLK_Pin ATT_DATA_Pin ATT_CLK_Pin 
439
-                           DA_LDAC_Pin ATT_CLK_3_5G_Pin ATT_EN_3_5G_Pin ATT_DATA_3_5G_DL_Pin 
440
-                           ATT_DATA_3_5G_UL_Pin ATT_DATA_3_5G_COM1_Pin ATT_DATA_3_5G_COM2_Pin ATT_DATA_3_5G_COM3_Pin 
441
-                           PATH_EN_3_5G_L_Pin */
442
-  GPIO_InitStruct.Pin = PLL_DATA_Pin|PLL_CLK_Pin|ATT_DATA_Pin|ATT_CLK_Pin 
443
-                          |DA_LDAC_Pin|ATT_CLK_3_5G_Pin|ATT_EN_3_5G_Pin|ATT_DATA_3_5G_DL_Pin 
444
-                          |ATT_DATA_3_5G_UL_Pin|ATT_DATA_3_5G_COM1_Pin|ATT_DATA_3_5G_COM2_Pin|ATT_DATA_3_5G_COM3_Pin 
445
-                          |PATH_EN_3_5G_L_Pin;
229
+  /*Configure GPIO pin : PA15 */
230
+  GPIO_InitStruct.Pin = GPIO_PIN_15;
446 231
   GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
447 232
   GPIO_InitStruct.Pull = GPIO_NOPULL;
448 233
   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
449
-  HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
450
-
451
-  /*Configure GPIO pins : ALARM_DC_Pin ALARM_AC_Pin */
452
-  GPIO_InitStruct.Pin = ALARM_DC_Pin|ALARM_AC_Pin;
453
-  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
454
-  GPIO_InitStruct.Pull = GPIO_NOPULL;
455
-  HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
456
-
457
-  /*Configure GPIO pins : DA_SYNC_Pin DA_SCLK_Pin DA_DIN_Pin _T_SYNC_UL_Pin 
458
-                           T_SYNC_UL_Pin _T_SYNC_DL_Pin T_SYNC_DL_Pin PATH_EN_3_5G_DL_Pin 
459
-                           PATH_EN_3_5G_UL_Pin PLL_ON_OFF_3_5G_L_Pin PLL_ON_OFF_3_5G_H_Pin */
460
-  GPIO_InitStruct.Pin = DA_SYNC_Pin|DA_SCLK_Pin|DA_DIN_Pin|_T_SYNC_UL_Pin 
461
-                          |T_SYNC_UL_Pin|_T_SYNC_DL_Pin|T_SYNC_DL_Pin|PATH_EN_3_5G_DL_Pin 
462
-                          |PATH_EN_3_5G_UL_Pin|PLL_ON_OFF_3_5G_L_Pin|PLL_ON_OFF_3_5G_H_Pin;
463
-  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
464
-  GPIO_InitStruct.Pull = GPIO_NOPULL;
465
-  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
466
-  HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
467
-
468
-  /*Configure GPIO pins : PLL_LD_3_5G_L_Pin PLL_LD_3_5G_H_Pin */
469
-  GPIO_InitStruct.Pin = PLL_LD_3_5G_L_Pin|PLL_LD_3_5G_H_Pin;
470
-  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
471
-  GPIO_InitStruct.Pull = GPIO_NOPULL;
472
-  HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
473
-
474
-  /*Configure GPIO pin : PATH_EN_3_5G_H_Pin */
475
-  GPIO_InitStruct.Pin = PATH_EN_3_5G_H_Pin;
476
-  GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
477
-  HAL_GPIO_Init(PATH_EN_3_5G_H_GPIO_Port, &GPIO_InitStruct);
478
-
479
-  /*Configure GPIO pins : PLL_EN_2_1G_DL_Pin PLL_EN_2_1G_UL_Pin */
480
-  GPIO_InitStruct.Pin = PLL_EN_2_1G_DL_Pin|PLL_EN_2_1G_UL_Pin;
481
-  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
482
-  GPIO_InitStruct.Pull = GPIO_NOPULL;
483
-  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
484
-  HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
485
-
486
-  /*Configure GPIO pins : PLL_LD_2_1G_DL_Pin PLL_LD_2_1G_UL_Pin */
487
-  GPIO_InitStruct.Pin = PLL_LD_2_1G_DL_Pin|PLL_LD_2_1G_UL_Pin;
488
-  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
489
-  GPIO_InitStruct.Pull = GPIO_NOPULL;
490
-  HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
234
+  HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
491 235
 
492 236
 }
493 237
 

+ 42 - 124
Src/stm32f1xx_hal_msp.c

@@ -24,7 +24,9 @@
24 24
 /* USER CODE BEGIN Includes */
25 25
 
26 26
 /* USER CODE END Includes */
27
-extern DMA_HandleTypeDef hdma_adc1;
27
+extern DMA_HandleTypeDef hdma_usart1_rx;
28
+
29
+extern DMA_HandleTypeDef hdma_usart1_tx;
28 30
 
29 31
 /* Private typedef -----------------------------------------------------------*/
30 32
 /* USER CODE BEGIN TD */
@@ -73,136 +75,15 @@ void HAL_MspInit(void)
73 75
 
74 76
   /* System interrupt init*/
75 77
 
76
-  /** NOJTAG: JTAG-DP Disabled and SW-DP Enabled 
78
+  /** DISABLE: JTAG-DP Disabled and SW-DP Disabled 
77 79
   */
78
-  __HAL_AFIO_REMAP_SWJ_NOJTAG();
80
+  __HAL_AFIO_REMAP_SWJ_DISABLE();
79 81
 
80 82
   /* USER CODE BEGIN MspInit 1 */
81 83
 
82 84
   /* USER CODE END MspInit 1 */
83 85
 }
84 86
 
85
-/**
86
-* @brief ADC MSP Initialization
87
-* This function configures the hardware resources used in this example
88
-* @param hadc: ADC handle pointer
89
-* @retval None
90
-*/
91
-void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
92
-{
93
-  GPIO_InitTypeDef GPIO_InitStruct = {0};
94
-  if(hadc->Instance==ADC1)
95
-  {
96
-  /* USER CODE BEGIN ADC1_MspInit 0 */
97
-
98
-  /* USER CODE END ADC1_MspInit 0 */
99
-    /* Peripheral clock enable */
100
-    __HAL_RCC_ADC1_CLK_ENABLE();
101
-  
102
-    __HAL_RCC_GPIOC_CLK_ENABLE();
103
-    __HAL_RCC_GPIOA_CLK_ENABLE();
104
-    __HAL_RCC_GPIOB_CLK_ENABLE();
105
-    /**ADC1 GPIO Configuration    
106
-    PC0     ------> ADC1_IN10
107
-    PC1     ------> ADC1_IN11
108
-    PC2     ------> ADC1_IN12
109
-    PC3     ------> ADC1_IN13
110
-    PA0-WKUP     ------> ADC1_IN0
111
-    PA1     ------> ADC1_IN1
112
-    PA2     ------> ADC1_IN2
113
-    PA3     ------> ADC1_IN3
114
-    PA4     ------> ADC1_IN4
115
-    PA5     ------> ADC1_IN5
116
-    PA6     ------> ADC1_IN6
117
-    PA7     ------> ADC1_IN7
118
-    PB0     ------> ADC1_IN8
119
-    PB1     ------> ADC1_IN9 
120
-    */
121
-    GPIO_InitStruct.Pin = DET_3_5G_UL_IN_Pin|DET_3_5G_UL_OUT_Pin|RFU_TEMP_Pin|_28V_DET_Pin;
122
-    GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
123
-    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
124
-
125
-    GPIO_InitStruct.Pin = DET_1_8G_DL_IN_Pin|DET_1_8G_DL_OUT_Pin|DET_1_8G_UL_IN_Pin|DET_1_8G_UL_OUT_Pin 
126
-                          |DET_2_1G_DL_IN_Pin|DET_2_1G_DL_OUT_Pin|DET_2_1G_UL_IN_Pin|DET_2_1G_UL_OUT_Pin;
127
-    GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
128
-    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
129
-
130
-    GPIO_InitStruct.Pin = DET_3_5G_DL_IN_Pin|DET_3_5G_DL_OUT_Pin;
131
-    GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
132
-    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
133
-
134
-    /* ADC1 DMA Init */
135
-    /* ADC1 Init */
136
-    hdma_adc1.Instance = DMA1_Channel1;
137
-    hdma_adc1.Init.Direction = DMA_PERIPH_TO_MEMORY;
138
-    hdma_adc1.Init.PeriphInc = DMA_PINC_DISABLE;
139
-    hdma_adc1.Init.MemInc = DMA_MINC_ENABLE;
140
-    hdma_adc1.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD;
141
-    hdma_adc1.Init.MemDataAlignment = DMA_MDATAALIGN_WORD;
142
-    hdma_adc1.Init.Mode = DMA_NORMAL;
143
-    hdma_adc1.Init.Priority = DMA_PRIORITY_LOW;
144
-    if (HAL_DMA_Init(&hdma_adc1) != HAL_OK)
145
-    {
146
-      Error_Handler();
147
-    }
148
-
149
-    __HAL_LINKDMA(hadc,DMA_Handle,hdma_adc1);
150
-
151
-  /* USER CODE BEGIN ADC1_MspInit 1 */
152
-
153
-  /* USER CODE END ADC1_MspInit 1 */
154
-  }
155
-
156
-}
157
-
158
-/**
159
-* @brief ADC MSP De-Initialization
160
-* This function freeze the hardware resources used in this example
161
-* @param hadc: ADC handle pointer
162
-* @retval None
163
-*/
164
-void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
165
-{
166
-  if(hadc->Instance==ADC1)
167
-  {
168
-  /* USER CODE BEGIN ADC1_MspDeInit 0 */
169
-
170
-  /* USER CODE END ADC1_MspDeInit 0 */
171
-    /* Peripheral clock disable */
172
-    __HAL_RCC_ADC1_CLK_DISABLE();
173
-  
174
-    /**ADC1 GPIO Configuration    
175
-    PC0     ------> ADC1_IN10
176
-    PC1     ------> ADC1_IN11
177
-    PC2     ------> ADC1_IN12
178
-    PC3     ------> ADC1_IN13
179
-    PA0-WKUP     ------> ADC1_IN0
180
-    PA1     ------> ADC1_IN1
181
-    PA2     ------> ADC1_IN2
182
-    PA3     ------> ADC1_IN3
183
-    PA4     ------> ADC1_IN4
184
-    PA5     ------> ADC1_IN5
185
-    PA6     ------> ADC1_IN6
186
-    PA7     ------> ADC1_IN7
187
-    PB0     ------> ADC1_IN8
188
-    PB1     ------> ADC1_IN9 
189
-    */
190
-    HAL_GPIO_DeInit(GPIOC, DET_3_5G_UL_IN_Pin|DET_3_5G_UL_OUT_Pin|RFU_TEMP_Pin|_28V_DET_Pin);
191
-
192
-    HAL_GPIO_DeInit(GPIOA, DET_1_8G_DL_IN_Pin|DET_1_8G_DL_OUT_Pin|DET_1_8G_UL_IN_Pin|DET_1_8G_UL_OUT_Pin 
193
-                          |DET_2_1G_DL_IN_Pin|DET_2_1G_DL_OUT_Pin|DET_2_1G_UL_IN_Pin|DET_2_1G_UL_OUT_Pin);
194
-
195
-    HAL_GPIO_DeInit(GPIOB, DET_3_5G_DL_IN_Pin|DET_3_5G_DL_OUT_Pin);
196
-
197
-    /* ADC1 DMA DeInit */
198
-    HAL_DMA_DeInit(hadc->DMA_Handle);
199
-  /* USER CODE BEGIN ADC1_MspDeInit 1 */
200
-
201
-  /* USER CODE END ADC1_MspDeInit 1 */
202
-  }
203
-
204
-}
205
-
206 87
 /**
207 88
 * @brief UART MSP Initialization
208 89
 * This function configures the hardware resources used in this example
@@ -235,6 +116,39 @@ void HAL_UART_MspInit(UART_HandleTypeDef* huart)
235 116
     GPIO_InitStruct.Pull = GPIO_NOPULL;
236 117
     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
237 118
 
119
+    /* USART1 DMA Init */
120
+    /* USART1_RX Init */
121
+    hdma_usart1_rx.Instance = DMA1_Channel5;
122
+    hdma_usart1_rx.Init.Direction = DMA_PERIPH_TO_MEMORY;
123
+    hdma_usart1_rx.Init.PeriphInc = DMA_PINC_DISABLE;
124
+    hdma_usart1_rx.Init.MemInc = DMA_MINC_ENABLE;
125
+    hdma_usart1_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
126
+    hdma_usart1_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
127
+    hdma_usart1_rx.Init.Mode = DMA_NORMAL;
128
+    hdma_usart1_rx.Init.Priority = DMA_PRIORITY_LOW;
129
+    if (HAL_DMA_Init(&hdma_usart1_rx) != HAL_OK)
130
+    {
131
+      Error_Handler();
132
+    }
133
+
134
+    __HAL_LINKDMA(huart,hdmarx,hdma_usart1_rx);
135
+
136
+    /* USART1_TX Init */
137
+    hdma_usart1_tx.Instance = DMA1_Channel4;
138
+    hdma_usart1_tx.Init.Direction = DMA_MEMORY_TO_PERIPH;
139
+    hdma_usart1_tx.Init.PeriphInc = DMA_PINC_DISABLE;
140
+    hdma_usart1_tx.Init.MemInc = DMA_MINC_ENABLE;
141
+    hdma_usart1_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
142
+    hdma_usart1_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
143
+    hdma_usart1_tx.Init.Mode = DMA_NORMAL;
144
+    hdma_usart1_tx.Init.Priority = DMA_PRIORITY_LOW;
145
+    if (HAL_DMA_Init(&hdma_usart1_tx) != HAL_OK)
146
+    {
147
+      Error_Handler();
148
+    }
149
+
150
+    __HAL_LINKDMA(huart,hdmatx,hdma_usart1_tx);
151
+
238 152
   /* USER CODE BEGIN USART1_MspInit 1 */
239 153
 
240 154
   /* USER CODE END USART1_MspInit 1 */
@@ -264,6 +178,10 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
264 178
     */
265 179
     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);
266 180
 
181
+    /* USART1 DMA DeInit */
182
+    HAL_DMA_DeInit(huart->hdmarx);
183
+    HAL_DMA_DeInit(huart->hdmatx);
184
+
267 185
     /* USART1 interrupt DeInit */
268 186
     HAL_NVIC_DisableIRQ(USART1_IRQn);
269 187
   /* USER CODE BEGIN USART1_MspDeInit 1 */

+ 23 - 8
Src/stm32f1xx_it.c

@@ -56,7 +56,8 @@
56 56
 /* USER CODE END 0 */
57 57
 
58 58
 /* External variables --------------------------------------------------------*/
59
-extern DMA_HandleTypeDef hdma_adc1;
59
+extern DMA_HandleTypeDef hdma_usart1_rx;
60
+extern DMA_HandleTypeDef hdma_usart1_tx;
60 61
 extern UART_HandleTypeDef huart1;
61 62
 /* USER CODE BEGIN EV */
62 63
 
@@ -199,17 +200,31 @@ void SysTick_Handler(void)
199 200
 /******************************************************************************/
200 201
 
201 202
 /**
202
-  * @brief This function handles DMA1 channel1 global interrupt.
203
+  * @brief This function handles DMA1 channel4 global interrupt.
203 204
   */
204
-void DMA1_Channel1_IRQHandler(void)
205
+void DMA1_Channel4_IRQHandler(void)
205 206
 {
206
-  /* USER CODE BEGIN DMA1_Channel1_IRQn 0 */
207
+  /* USER CODE BEGIN DMA1_Channel4_IRQn 0 */
207 208
 
208
-  /* USER CODE END DMA1_Channel1_IRQn 0 */
209
-  HAL_DMA_IRQHandler(&hdma_adc1);
210
-  /* USER CODE BEGIN DMA1_Channel1_IRQn 1 */
209
+  /* USER CODE END DMA1_Channel4_IRQn 0 */
210
+  HAL_DMA_IRQHandler(&hdma_usart1_tx);
211
+  /* USER CODE BEGIN DMA1_Channel4_IRQn 1 */
211 212
 
212
-  /* USER CODE END DMA1_Channel1_IRQn 1 */
213
+  /* USER CODE END DMA1_Channel4_IRQn 1 */
214
+}
215
+
216
+/**
217
+  * @brief This function handles DMA1 channel5 global interrupt.
218
+  */
219
+void DMA1_Channel5_IRQHandler(void)
220
+{
221
+  /* USER CODE BEGIN DMA1_Channel5_IRQn 0 */
222
+
223
+  /* USER CODE END DMA1_Channel5_IRQn 0 */
224
+  HAL_DMA_IRQHandler(&hdma_usart1_rx);
225
+  /* USER CODE BEGIN DMA1_Channel5_IRQn 1 */
226
+
227
+  /* USER CODE END DMA1_Channel5_IRQn 1 */
213 228
 }
214 229
 
215 230
 /**