在好例子网,分享、交流、成长!
您当前所在位置:首页C/C++ 开发实例嵌入式开发 → RM0367 参考手册.pdf(stm32l0)

RM0367 参考手册.pdf(stm32l0)

嵌入式开发

下载此实例
  • 开发语言:C/C++
  • 实例大小:7.54M
  • 下载次数:7
  • 浏览次数:218
  • 发布时间:2021-04-07
  • 实例类别:嵌入式开发
  • 发 布 人:asdd_1
  • 文件格式:.pdf
  • 所需积分:2
 相关标签: STM32 STM3 stm 32 ST

实例介绍

【实例简介】基于超低功耗 STM32L0x3 高级 ARM®的 32 位 MCU
【实例截图】

【核心代码】

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
目录
1 文档约定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
1.1 寄存器相关缩写词列表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
1.2 词汇表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
1.3 外设可用性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
1.4 产品类别定义 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2 系统和存储器概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.1 系统架构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.1.1 S0:Cortex® 总线 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.1.2 S1:DMA 总线 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.1.3 总线矩阵 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
AHB/APB 总线桥 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55
2.2 存储器组织结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.2.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.2.2 存储器映射和寄存器边界地址 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.3 嵌入式 SRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2.4 自举配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
存储区交换(仅限第 5 类器件). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61
物理重映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61
内部自举程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61
3 Flash 程序存储器和数据 EEPROM (FLASH) . . . . . . . . . . . . . . . . . . . . . . 62
3.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.2 NVM 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.3 NVM 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.3.1 NVM 的构成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.3.2 双存储区自举功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.3.3 读取 NVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
读取协议 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .68
CPU 频率/工作模式/NVM 读取时间之间的关系. . . . . . . . . . . . . . . . . . . . . . . . . .69
数据缓冲 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70
3.3.4 写入/擦除 NVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
写入/擦除协议 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .76
解锁/锁定操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .77
文档 ID 025274 Rev 1 [English Rev 4] 3/952
RM0367 目录
38
NVM 写入/擦除操作的详细说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .79
对半页 Flash 程序存储器执行并行写入操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .85
状态寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .88
3.4 存储器保护 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
3.4.1 RDP(读保护) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
3.4.2 PcROP(专有代码读取保护) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
3.4.3 防止意外的写入/擦除操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
3.4.4 写入/擦除保护管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
3.4.5 保护错误 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
写保护错误标志 (WRPERR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .94
读错误 (RDERR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .94
3.5 NVM 中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
3.5.1 硬性故障 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
3.6 存储器接口管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
3.6.1 操作优先级和流程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
读取 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .96
写入/擦除 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .96
选项字节加载 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .96
3.6.2 操作序列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
执行写入操作时请求读取数据. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .97
执行写入操作时请求取指 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .97
执行写入操作时请求执行另一写入操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .97
3.6.3 执行读取操作时更改等待周期数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
3.6.4 掉电 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
3.7 Flash 寄存器说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
对寄存器执行读取操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .98
对寄存器执行写入操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .98
3.7.1 访问控制寄存器 (FLASH_ACR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
3.7.2 编程和擦除控制寄存器 (FLASH_PECR) . . . . . . . . . . . . . . . . . . . . . . . 100
3.7.3 掉电密钥寄存器 (FLASH_PDKEYR) . . . . . . . . . . . . . . . . . . . . . . . . . . 103
3.7.4 PECR 解锁密钥寄存器 (FLASH_PEKEYR) . . . . . . . . . . . . . . . . . . . . . 103
3.7.5 编程和擦除密钥寄存器 (FLASH_PRGKEYR) . . . . . . . . . . . . . . . . . . . 104
3.7.6 选项字节解锁密钥寄存器 (FLASH_OPTKEYR) . . . . . . . . . . . . . . . . . . 104
3.7.7 状态寄存器 (FLASH_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
3.7.8 选项字节寄存器 (FLASH_OPTR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
3.7.9 写保护寄存器 1 (FLASH_WRPROT1) . . . . . . . . . . . . . . . . . . . . . . . . . 109
3.7.10 写保护寄存器 2 (FLASH_WRPROT2) . . . . . . . . . . . . . . . . . . . . . . . . . 110
3.7.11 Flash 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
目录 RM0367
4/952 文档 ID 025274 Rev 1 [English Rev 4]
3.8 选项字节 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .112
3.8.1 选项字节说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
3.8.2 加载保护标志时发生不匹配 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
3.8.3 通过软件重载选项字节 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
4 循环冗余校验计算单元(CRC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
4.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .114
4.2 CRC 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .114
4.3 CRC 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .114
多项式可编程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .115
4.4 CRC 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .116
4.4.1 数据寄存器 (CRC_DR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
4.4.2 独立数据寄存器 (CRC_IDR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
4.4.3 控制寄存器 (CRC_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
4.4.4 CRC 初始值 (CRC_INIT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
4.4.5 CRC 多项式 (CRC_POL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
4.4.6 CRC 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
5 防火墙 (FW) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
5.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
5.2 防火墙主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
5.3 防火墙功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
5.3.1 防火墙 AMBA 总线监听 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
5.3.2 功能要求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
调试注意事项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .121
写保护. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .122
中断管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .122
5.3.3 防火墙段 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
代码段. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .122
非易失性数据段 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .122
易失性数据段 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .122
5.3.4 段访问方式及其属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
不同防火墙状态下的段访问 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .123
段属性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .123
5.3.5 防火墙初始化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
5.3.6 防火墙状态 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
打开防火墙 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .126
关闭防火墙 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .126
文档 ID 025274 Rev 1 [English Rev 4] 5/952
RM0367 目录
38
5.4 防火墙寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
5.4.1 代码段起始地址寄存器 (FW_CSSA) . . . . . . . . . . . . . . . . . . . . . . . . . . 127
5.4.2 代码段长度寄存器 (FW_CSL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
5.4.3 非易失性数据段起始地址寄存器 (FW_NVDSSA) . . . . . . . . . . . . . . . . . 128
5.4.4 非易失性数据段长度寄存器 (FW_NVDSL) . . . . . . . . . . . . . . . . . . . . . . 128
5.4.5 易失性数据段起始地址寄存器 (FW_VDSSA) . . . . . . . . . . . . . . . . . . . . 129
5.4.6 易失性数据段长度寄存器 (FW_VDSL) . . . . . . . . . . . . . . . . . . . . . . . . . 129
5.4.7 配置寄存器 (FW_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
5.4.8 防火墙寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
6 电源控制 (PWR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
6.1 电源 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
6.1.1 独立 A/D 和 DAC 转换器电源和参考电压 . . . . . . . . . . . . . . . . . . . . . . 133
在具有多于 64 个引脚和 UFBGA64 的封装上 . . . . . . . . . . . . . . . . . . . . . . . . . .133
在 64 引脚及以下的封装上(除了 BGA 封装) . . . . . . . . . . . . . . . . . . . . . . . . .133
6.1.2 独立 LCD 供电 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
6.1.3 RTC 和 RTC 备份寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
RTC 寄存器访问 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .134
6.1.4 调压器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
6.1.5 动态电压调节管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
范围 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .135
范围 2 和 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .135
6.1.6 动态电压调节配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
6.1.7 当 VDD 降至 1.71 V 以下时的调压器和时钟管理 . . . . . . . . . . . . . . . . . 136
6.1.8 修改 VCORE 范围时的调压器和时钟管理 . . . . . . . . . . . . . . . . . . . . . . 137
6.1.9 当 VDD 介于 1.71 V 到 2.0 V 之间时的电压范围和限制 . . . . . . . . . . . 137
6.2 电源监控器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
6.2.1 上电复位 (POR)/掉电复位 (PDR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
6.2.2 欠压复位 (BOR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
6.2.3 可编程电压检测器 (PVD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
6.2.4 内部参考电压 (VREFINT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
6.3 低功耗模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
6.3.1 低功耗模式下时钟的行为 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
睡眠和低功耗睡眠模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .143
停止和待机模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .143
6.3.2 降低系统时钟速度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
6.3.3 外设时钟门控 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
6.3.4 低功耗运行模式(LP 运行) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
目录 RM0367
6/952 文档 ID 025274 Rev 1 [English Rev 4]
进入低功耗运行模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .144
退出低功耗运行模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .144
6.3.5 进入低功耗模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
6.3.6 退出低功耗模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
6.3.7 睡眠模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
睡眠模式下的 I/O 状态 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .145
进入睡眠模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .145
退出睡眠模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .145
6.3.8 低功耗睡眠模式(LP 睡眠) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
低功耗睡眠模式下的 I/O 状态 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .147
进入低功耗睡眠模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .147
退出低功耗睡眠模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .147
6.3.9 停止模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
低功耗睡眠模式下的 I/O 状态 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .149
进入停止模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .149
退出停止模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .149
6.3.10 待机模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
待机模式下的 I/O 状态 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .151
进入待机模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .151
退出待机模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .151
调试模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .152
6.3.11 使用 RTC 和比较器从停止和待机模式唤醒器件 . . . . . . . . . . . . . . . . . . 152
从停止模式的 RTC 自动唤醒 (AWU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .153
从待机模式的 RTC 自动唤醒 (AWU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .153
从停止模式的比较器自动唤醒 (AWU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .153
6.4 电源控制寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
6.4.1 PWR 电源控制寄存器 (PWR_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
6.4.2 PWR 电源控制/状态寄存器 (PWR_CSR) . . . . . . . . . . . . . . . . . . . . . . 157
6.4.3 PWR 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
7 复位和时钟控制 (RCC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
7.1 复位 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
7.1.1 系统复位 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
软件复位 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .160
低功耗管理复位 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .160
选项字节加载器复位 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .160
7.1.2 电源复位 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
7.1.3 RTC 和备份寄存器复位 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
7.2 时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
文档 ID 025274 Rev 1 [English Rev 4] 7/952
RM0367 目录
38
7.2.1 HSE 时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
外部源(HSE 旁路) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .165
外部晶振/陶瓷谐振器(HSE 晶振). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .165
7.2.2 HSI16 时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
校准 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .165
7.2.3 MSI 时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
校准 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .166
7.2.4 HSI48 时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
7.2.5 PLL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
7.2.6 LSE 时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
外部源(LSE 旁路). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .167
7.2.7 LSI 时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
LSI 测量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .168
7.2.8 系统时钟 (SYSCLK) 选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
7.2.9 系统时钟源频率与电压范围 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
7.2.10 HSE 时钟安全系统(CSS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
7.2.11 LSE 时钟安全系统 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
7.2.12 RTC 和 LCD 时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
7.2.13 看门狗时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
7.2.14 时钟输出功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
7.2.15 基于 TIM21 的内部/外部时钟测量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
7.2.16 TIM2/TIM21/TIM22 独立于系统时钟的时钟源 . . . . . . . . . . . . . . . . . . . 171
7.3 RCC 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
7.3.1 时钟控制寄存器 (RCC_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
7.3.2 内部时钟源校准寄存器 (RCC_ICSCR) . . . . . . . . . . . . . . . . . . . . . . . . 175
7.3.3 时钟恢复 RC 寄存器 (RCC_CRRCR) . . . . . . . . . . . . . . . . . . . . . . . . . 176
7.3.4 时钟配置寄存器 (RCC_CFGR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
7.3.5 时钟中断使能寄存器 (RCC_CIER) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
7.3.6 时钟中断标志寄存器 (RCC_CIFR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
7.3.7 时钟中断清零寄存器 (RCC_CICR) . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
7.3.8 GPIO 复位寄存器 (RCC_IOPRSTR) . . . . . . . . . . . . . . . . . . . . . . . . . . 183
7.3.9 AHB 外设复位寄存器 (RCC_AHBRSTR) . . . . . . . . . . . . . . . . . . . . . . . 184
7.3.10 APB2 外设复位寄存器 (RCC_APB2RSTR) . . . . . . . . . . . . . . . . . . . . . 185
7.3.11 APB1 外设复位寄存器 (RCC_APB1RSTR) . . . . . . . . . . . . . . . . . . . . . 187
7.3.12 GPIO 时钟使能寄存器 (RCC_IOPENR) . . . . . . . . . . . . . . . . . . . . . . . . 189
7.3.13 AHB 外设时钟使能寄存器 (RCC_AHBENR) . . . . . . . . . . . . . . . . . . . . 190
7.3.14 APB2 外设时钟使能寄存器 (RCC_APB2ENR) . . . . . . . . . . . . . . . . . . 191
7.3.15 APB1 外设时钟使能寄存器 (RCC_APB1ENR) . . . . . . . . . . . . . . . . . . 193
目录 RM0367
8/952 文档 ID 025274 Rev 1 [English Rev 4]
7.3.16 睡眠模式下的 GPIO 时钟使能寄存器 (RCC_IOPSMENR) . . . . . . . . . . 196
7.3.17 睡眠模式下的 AHB 外设时钟使能寄存器 (RCC_AHBSMENR) . . . . . . 197
7.3.18 睡眠模式下的 APB2 外设时钟使能寄存器 (RCC_APB2SMENR) . . . . 198
7.3.19 睡眠模式下的 APB1 外设时钟使能寄存器 (RCC_APB1SMENR) . . . . 199
7.3.20 时钟配置寄存器 (RCC_CCIPR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
7.3.21 控制/状态寄存器 (RCC_CSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
7.3.22 RCC 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
8 时钟恢复系统 (CRS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
8.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
8.2 CRS 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
8.3 CRS 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .211
8.3.1 CRS 框图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
8.3.2 同步输入 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
8.3.3 频率误差测量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
8.3.4 频率误差评估和自动微调 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
8.3.5 CRS 初始化和配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
RELOAD 值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .213
FELIM 值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .214
8.4 CRS 低功耗模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
8.5 CRS 中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
8.6 CRS 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
8.6.1 CRS 控制寄存器 (CRS_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
8.6.2 CRS 配置寄存器 (CRS_CFGR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
8.6.3 CRS 中断和状态寄存器 (CRS_ISR) . . . . . . . . . . . . . . . . . . . . . . . . . . 217
8.6.4 CRS 中断标志清零寄存器 (CRS_ICR) . . . . . . . . . . . . . . . . . . . . . . . . . 219
8.6.5 CRS 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
9 通用 I/O (GPIO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
9.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
9.2 GPIO 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
9.3 GPIO 功能描述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
9.3.1 通用 I/O (GPIO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
9.3.2 I/O 引脚复用功能复用器和映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
9.3.3 I/O 端口控制寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
9.3.4 I/O 端口数据寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
文档 ID 025274 Rev 1 [English Rev 4] 9/952
RM0367 目录
38
9.3.5 I/O 数据位操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
9.3.6 GPIO 锁定机制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
9.3.7 I/O 复用功能输入/输出 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
9.3.8 外部中断线/唤醒线 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
9.3.9 输入配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
9.3.10 输出配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
9.3.11 复用功能配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
9.3.12 模拟配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
9.3.13 将 HSE 或 LSE 振荡器引脚用作 GPIO . . . . . . . . . . . . . . . . . . . . . . . . 229
9.3.14 在 RTC 电源域中使用 GPIO 引脚 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
9.4 GPIO 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
9.4.1 GPIO 端口模式寄存器 (GPIOx_MODER)(x =A..E 和 H) . . . . . . . . . 229
9.4.2 GPIO 端口输出类型寄存器 (GPIOx_OTYPER)(x = A..E 和 H) . . . . 230
9.4.3 GPIO 端口输出速度寄存器 (GPIOx_OSPEEDR)(x = A..E 和 H) . . . 230
9.4.4 GPIO 端口上拉/下拉寄存器 (GPIOx_PUPDR)(x = A..E 和 H) . . . . 231
9.4.5 GPIO 端口输入寄存器 (GPIOx_OTYPER)(x = A..E 和 H) . . . . . . . . 231
9.4.6 GPIO 端口输出数据寄存器 (GPIOx_ODR)(x = A..E 和 H) . . . . . . . 232
9.4.7 GPIO 端口置位/复位寄存器 (GPIOx_BSRR)(x = A..E 和 H) . . . . . 232
9.4.8 GPIO 端口配置锁定寄存器 (GPIOx_LCKR)(x = A..E 和 H) . . . . . . . 233
9.4.9 GPIO 复用功能低位寄存器 (GPIOx_AFRL)(x = A..E 和 H) . . . . . . . 234
9.4.10 GPIO 复用功能高位寄存器 (GPIOx_AFRH)(x = A..E 和 H) . . . . . . 235
9.4.11 GPIO 端口位复位寄存器 (GPIOx_BRR)(x =A..E 和 H) . . . . . . . . . . 235
9.4.12 GPIO 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
10 系统配置控制器 (SYSCFG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
10.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
10.2 SYSCFG 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
10.2.1 SYSCFG 存储器重映射寄存器 (SYSCFG_CFGR1) . . . . . . . . . . . . . . 239
10.2.2 SYSCFG 外设模式配置寄存器 (SYSCFG_CFGR2) . . . . . . . . . . . . . . 240
10.2.3 参考控制和状态寄存器 (SYSCFG_CFGR3) . . . . . . . . . . . . . . . . . . . . 241
10.2.4 SYSCFG 外部中断配置寄存器 1 (SYSCFG_EXTICR1) . . . . . . . . . . . 243
10.2.5 SYSCFG 外部中断配置寄存器 2 (SYSCFG_EXTICR2) . . . . . . . . . . . 243
10.2.6 SYSCFG 外部中断配置寄存器 3 (SYSCFG_EXTICR3) . . . . . . . . . . . 244
10.2.7 SYSCFG 外部中断配置寄存器 4 (SYSCFG_EXTICR4) . . . . . . . . . . . 244
10.2.8 SYSCFG 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
11 直接存储器访问控制器 (DMA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
目录 RM0367
10/952 文档 ID 025274 Rev 1 [English Rev 4]
11.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
11.2 DMA 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
11.3 DMA 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
11.3.1 DMA 事务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
11.3.2 仲裁器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
11.3.3 DMA 通道 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
数据大小可编程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .248
指针递增 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .248
通道配置流程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .249
循环模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .249
存储器到存储器模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .249
11.3.4 可编程数据宽度、数据对齐和字节存储次序 . . . . . . . . . . . . . . . . . . . . 250
解决 AHB 外设无法支持字节或半字写操作的问题 . . . . . . . . . . . . . . . . . . . . . . .251
11.3.5 错误管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
11.3.6 DMA 中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
11.3.7 DMA 请求映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
DMA 控制器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .252
11.4 DMA 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
11.4.1 DMA 中断状态寄存器 (DMA_ISR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
11.4.2 DMA 中断标志清零寄存器 (DMA_IFCR) . . . . . . . . . . . . . . . . . . . . . . . 255
11.4.3 DMA 通道 x 配置寄存器 (DMA_CCRx)
(x = 1..7 ,其中 x 表示通道编号) . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
11.4.4 DMA 通道 x 数据数寄存器 (DMA_CNDTRx)
(x = 1..7,其中 x 表示通道编号) . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
11.4.5 DMA 通道 x 外设地址寄存器 (DMA_CPARx)
(x = 1..7,其中 x 表示通道编号) . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
11.4.6 DMA 通道 x 存储器地址寄存器 (DMA_CMARx)
(x = 1..7,其中 x 表示通道编号) . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
11.4.7 DMA 通道选择寄存器 (DMA_CSELR) . . . . . . . . . . . . . . . . . . . . . . . . . 260
11.4.8 DMA 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
12 嵌套向量中断控制器 (NVIC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
12.1 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
12.2 SysTick 校准值寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
12.3 中断和异常向量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
13 扩展中断和事件控制器 (EXTI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
13.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
文档 ID 025274 Rev 1 [English Rev 4] 11/952
RM0367 目录
38
13.2 EXTI 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
13.3 EXTI 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
13.3.1 EXTI 框图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
13.3.2 唤醒事件管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
13.3.3 外设异步中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
13.3.4 硬件中断选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
13.3.5 硬件事件选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
13.3.6 软件中断/事件选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
13.4 EXTI 中断/事件线映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
13.5 EXTI 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
13.5.1 EXTI 中断屏蔽寄存器 (EXTI_IMR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
13.5.2 EXTI 事件屏蔽寄存器 (EXTI_EMR) . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
13.5.3 EXTI 上升沿触发选择寄存器 (EXTI_RTSR) . . . . . . . . . . . . . . . . . . . . . 272
13.5.4 下降沿触发选择寄存器 (EXTI_FTSR) . . . . . . . . . . . . . . . . . . . . . . . . . 273
13.5.5 EXTI 软件中断事件寄存器 (EXTI_SWIER) . . . . . . . . . . . . . . . . . . . . . 274
13.5.6 EXTI 挂起寄存器 (EXTI_PR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
13.5.7 EXTI 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
14 模数转换器(ADC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
14.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
14.2 ADC 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
14.3 ADC 引脚和内部信号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
14.4 ADC 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
14.4.1 ADC 调压器 (ADVREGEN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
ADC 内部调压器的模拟参考. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .280
ADVREG 使能序列. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .280
ADVREG 禁止序列. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .280
14.4.2 校准 (ADCAL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
校准系数强制软件程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .281
14.4.3 ADC 开关控制(ADEN、ADDIS、ADRDY) . . . . . . . . . . . . . . . . . . . 282
14.4.4 ADC 时钟(CKMODE、PRESC[3:0]、LFMEN) . . . . . . . . . . . . . . . . 283
低频 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .284
14.4.5 配置 ADC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
14.4.6 通道选择(CHSEL、SCANDIR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
温度传感器、VREFINT 和 LCD_VLCD1 内部通道 . . . . . . . . . . . . . . . . . . . . . . . .285
14.4.7 可编程采样时间 (SMP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
14.4.8 单次转换模式 (CONT=0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
目录 RM0367
12/952 文档 ID 025274 Rev 1 [English Rev 4]
14.4.9 连续转换模式 (CONT=1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
14.4.10 开始转换 (ADSTART) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
14.4.11 时序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
14.4.12 停止正在进行的转换 (ADSTP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
14.5 外部触发转换和触发极性(EXTSEL,EXTEN) . . . . . . . . . . . . . . . . . . 288
14.5.1 不连续模式 (DISCEN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
14.5.2 可编程分辨率 (RES) - 快速转换模式 . . . . . . . . . . . . . . . . . . . . . . . . . . 290
14.5.3 转换结束、采样阶段结束(EOC、EOSMP 标志) . . . . . . . . . . . . . . . 290
14.5.4 转换序列结束(EOSEQ 标志) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
14.5.5 时序图示例(单次/连续模式硬件/软件触发) . . . . . . . . . . . . . . . . . . . 291
14.6 数据管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
14.6.1 数据寄存器和数据对齐(ADC_DR、ALIGN) . . . . . . . . . . . . . . . . . . 293
14.6.2 ADC 溢出(OVR、OVRMOD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
14.6.3 在不使用 DMA 的情况下管理转换的数据序列 . . . . . . . . . . . . . . . . . . . 294
14.6.4 在不使用 DMA 且不发生溢出的情况下管理转换的数据 . . . . . . . . . . . . 294
14.6.5 使用 DMA 管理转换的数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
DMA 单次模式 (DMACFG=0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .295
DMA 循环模式 (DMACFG=1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .295
14.7 低功耗特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
14.7.1 等待模式转换 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
14.7.2 自动关闭模式 (AUTOFF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
14.8 模拟窗口看门狗(AWDEN、AWDSGL、AWDCH、AWD_HTR/LTR、
AWD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
14.9 过采样器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
14.9.1 过采样时支持的 ADC 工作模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
14.9.2 模拟看门狗 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
14.9.3 触发模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
14.10 温度传感器和内部参考电压 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .302
读取温度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .302
使用内部参考电压计算实际的 VDDA 电压 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .303
将电源相关的 ADC 测量值转换为绝对电压值. . . . . . . . . . . . . . . . . . . . . . . . . . .303
14.11 VLCD 电压监控 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
14.12 ADC 中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
14.13 ADC 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
14.13.1 ADC 中断和状态寄存器 (ADC_ISR) . . . . . . . . . . . . . . . . . . . . . . . . . . 305
14.13.2 ADC 中断使能寄存器 (ADC_IER) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
文档 ID 025274 Rev 1 [English Rev 4] 13/952
RM0367 目录
38
14.13.3 ADC 控制寄存器 (ADC_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
14.13.4 ADC 配置寄存器 1 (ADC_CFGR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
14.13.5 ADC 配置寄存器 2 (ADC_CFGR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
14.13.6 ADC 采样时间寄存器 (ADC_SMPR) . . . . . . . . . . . . . . . . . . . . . . . . . . 314
14.13.7 ADC 看门狗阈值寄存器 (ADC_TR) . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
14.13.8 ADC 通道选择寄存器 (ADC_CHSELR) . . . . . . . . . . . . . . . . . . . . . . . . 316
14.13.9 ADC 数据寄存器 (ADC_DR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
14.13.10 ADC 校准系数 (ADC_CALFACT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
14.13.11 ADC 通用配置寄存器 (ADC_CCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
14.13.12 ADC 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
15 数模转换器 (DAC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
15.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
15.2 DAC1 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
15.3 DAC 输出缓冲器使能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
15.4 DAC 通道使能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
15.5 单模式功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
15.5.1 DAC 数据格式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
15.5.2 DAC 通道转换 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
生成单个LFSR的独立触发 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .324
生成单个三角波的独立触发 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .324
15.5.3 DAC 输出电压 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
15.5.4 DAC 触发选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
15.6 双模式功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
15.6.1 DAC 数据格式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
15.6.2 双模式下的 DAC 通道转换 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
15.6.3 双转换模式说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
独立触发(不产生波形) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .327
独立触发(生成单个 LFSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .327
独立触发(生成不同 LFSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .327
独立触发(生成单个三角波). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .328
独立触发(生成不同三角波). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .328
同步软件启动 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .328
同步触发(不产生波形) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .328
同步触发(生成单个 LFSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .329
同步触发(生成不同 LFSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .329
同步触发(生成单个三角波). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .329
同步触发(生成不同三角波). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .330
目录 RM0367
14/952 文档 ID 025274 Rev 1 [English Rev 4]
15.6.4 DAC 输出电压 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
15.6.5 DAC 触发选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
15.7 生成噪声 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
15.8 生成三角波 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
15.9 DMA 请求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
DMA 下溢 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .332
15.10 DAC 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
15.10.1 DAC 控制寄存器 (DAC_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
15.10.2 DAC 软件触发寄存器 (DAC_SWTRIGR) . . . . . . . . . . . . . . . . . . . . . . . 336
15.10.3 DAC 1 通道 12 位右对齐数据保持寄存器 (DAC_DHR12R1) . . . . . . . . 337
15.10.4 DAC 1 通道 12 位左对齐数据保持寄存器 (DAC_DHR12L1) . . . . . . . . 337
15.10.5 DAC 1 通道 8 位右对齐数据保持寄存器 (DAC_DHR8R1) . . . . . . . . . . 338
15.10.6 DAC 2 通道 12 位右对齐数据保持寄存器 (DAC_DHR12R2) . . . . . . . . 338
15.10.7 DAC 2 通道 12 位左对齐数据保持寄存器 (DAC_DHR12L2) . . . . . . . . 339
15.10.8 DAC 2 通道 8 位右对齐数据保持寄存器 (DAC_DHR8R2) . . . . . . . . . . 339
15.10.9 双 DAC 12 位右对齐数据保持寄存器 (DAC_DHR12RD) . . . . . . . . . . . 340
15.10.10 双 DAC 12 位左对齐数据保持寄存器 (DAC_DHR12LD) . . . . . . . . . . . 340
15.10.11 双 DAC 8 位右对齐数据保持寄存器 (DAC_DHR8RD) . . . . . . . . . . . . . 341
15.10.12 DAC 1 通道 数据输出寄存器 (DAC_DOR1) . . . . . . . . . . . . . . . . . . . . . 341
15.10.13 DAC 2 通道数据输出寄存器 (DAC_DOR2) . . . . . . . . . . . . . . . . . . . . . 342
15.10.14 DAC 状态寄存器 (DAC_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
15.10.15 DAC 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
16 比较器 (COMP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
16.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
16.2 COMP 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
16.3 COMP 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
16.3.1 COMP 框图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
16.3.2 COMP 引脚和内部信号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
16.3.3 COMP 复位和时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
16.3.4 比较器锁定机制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
16.3.5 功率模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
16.4 COMP 中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
16.5 COMP 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
16.5.1 比较器 1 控制和状态寄存器 (COMP1_CSR) . . . . . . . . . . . . . . . . . . . . 348
16.5.2 比较器 2 控制和状态寄存器 (COMP2_CSR) . . . . . . . . . . . . . . . . . . . . 349
文档 ID 025274 Rev 1 [English Rev 4] 15/952
RM0367 目录
38
16.5.3 COMP 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
17 液晶显示控制器 (LCD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
17.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
词汇表. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .352
17.2 LCD 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
17.3 LCD 实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
17.4 LCD 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
17.4.1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
17.4.2 频率发生器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
17.4.3 公用驱动器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
COM 信号偏置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .356
COM 信号占空比 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .356
8 选 1 多路复用器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .358
17.4.4 区段驱动器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
在 1/4 或 1/8 占空比的情况下 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .359
闪烁 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .363
17.4.5 电压发生器和对比度控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
LCD 电源 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .363
LCD 中间电压. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .363
LCD 驱动器选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .364
外部去耦 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .365
死区 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .365
17.4.6 双缓冲存储器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
17.4.7 COM 和 SEG 多路复用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
输出引脚与占空比模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .366
小型封装的重映射功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .366
COM 和 SEG 功能与占空比和重映射的关系汇总. . . . . . . . . . . . . . . . . . . . . . . .367
17.4.8 流程图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
17.5 LCD 低功耗模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
17.6 LCD 中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
帧起始 (SOF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .372
更新显示完成 (UDD). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .372
17.7 LCD 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
17.7.1 LCD 控制寄存器 (LCD_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
17.7.2 LCD 帧控制寄存器 (LCD_FCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
17.7.3 LCD 状态寄存器 (LCD_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
17.7.4 LCD 清零寄存器 (LCD_CLR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
目录 RM0367
16/952 文档 ID 025274 Rev 1 [English Rev 4]
17.7.5 LCD 显示器存储器 (LCD_RAM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
17.7.6 LCD 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
18 触摸感应控制器(TSC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
18.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
18.2 TSC 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
18.3 TSC 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
18.3.1 TSC 框图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
18.3.2 表面电荷转移采集概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
18.3.3 复位和时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
18.3.4 电荷转移采集序列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
18.3.5 扩频功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
18.3.6 最大计数错误 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
18.3.7 采样电容 I/O 和通道 I/O 模式选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388
18.3.8 采集模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
18.3.9 I/O 滞后和模拟开关控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
18.4 TSC 低功耗模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
18.5 TSC 中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
18.6 TSC 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
18.6.1 TSC 控制寄存器 (TSC_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
18.6.2 TSC 中断使能寄存器 (TSC_IER) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
18.6.3 TSC 中断清零寄存器 (TSC_ICR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
18.6.4 TSC 中断状态寄存器 (TSC_ISR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
18.6.5 TSC I/O 滞后控制寄存器 (TSC_IOHCR) . . . . . . . . . . . . . . . . . . . . . . . 394
18.6.6 TSC I/O 模拟开关控制寄存器 (TSC_IOASCR) . . . . . . . . . . . . . . . . . . 395
18.6.7 TSC I/O 采样控制寄存器 (TSC_IOSCR) . . . . . . . . . . . . . . . . . . . . . . . 395
18.6.8 TSC I/O 通道控制寄存器 (TSC_IOCCRTSC_IOCCR) . . . . . . . . . . . . . 396
18.6.9 TSC I/O 组控制状态寄存器 (TSC_IOGCSR) . . . . . . . . . . . . . . . . . . . . 397
18.6.10 TSC I/O 组 x 计数器寄存器 (TSC_IOGxCR) (x = 1..8) . . . . . . . . . . . . 397
18.6.11 TSC 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
19 高级加密标准硬件加速器 (AES) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
19.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
19.2 AES 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
19.3 AES 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
19.4 加密和生成密钥 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
文档 ID 025274 Rev 1 [English Rev 4] 17/952
RM0367 目录
38
19.5 AES 链接算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
19.5.1 电子密码本 (ECB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
19.5.2 密码块链接 (CBC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
给定消息的挂起模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .405
19.5.3 计数器模式 (CTR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
CTR 模式下的挂起模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .408
19.6 数据类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
19.7 工作模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
19.7.1 模式 1:加密 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
19.7.2 模式 2:密钥生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
19.7.3 模式 3:解密 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
19.7.4 模式 4:密钥生成和解密 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
19.8 AES DMA 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
19.9 错误标志 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
19.10 处理时间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
19.11 AES 中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
19.12 AES 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
19.12.1 AES 控制寄存器 (AES_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
19.12.2 AES 状态寄存器 (AES_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
19.12.3 AES 数据输入寄存器 (AES_DINR) . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
19.12.4 AES 数据输出寄存器 (AES_DOUTR) . . . . . . . . . . . . . . . . . . . . . . . . . 418
19.12.5 AES 密钥寄存器 0 (AES_KEYR0) (LSB: key [31:0]) . . . . . . . . . . . . . . 419
19.12.6 AES 密钥寄存器 1 (AES_KEYR1) (Key[63:32]) . . . . . . . . . . . . . . . . . . 419
19.12.7 AES 密钥寄存器 2 (AES_KEYR2) (Key [95:64]) . . . . . . . . . . . . . . . . . 420
19.12.8 AES 密钥寄存器 3 (AES_KEYR3) (MSB: key[127:96]) . . . . . . . . . . . . 420
19.12.9 AES 初始化向量寄存器 0 (AES_IVR0)(LSB:IVR[31:0]) . . . . . . . . 421
19.12.10 AES 初始化向量寄存器 1 (AES_IVR1) (IVR[63:32]) . . . . . . . . . . . . . . 421
19.12.11 AES 初始化向量寄存器 2 (AES_IVR2) (IVR[95:64]) . . . . . . . . . . . . . . 422
19.12.12 AES 初始化向量寄存器 3 (AES_IVR3) (MSB: IVR[127:96]) . . . . . . . . 422
19.12.13 AES 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
20 随机数发生器 (RNG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
20.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
20.2 RNG 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
20.3 RNG 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
20.3.1 操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
目录 RM0367
18/952 文档 ID 025274 Rev 1 [English Rev 4]
20.3.2 错误管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
如果 CEIS 位的值为 1(时钟错误). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .425
如果 SEIS 位的值为 1(种子错误) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .425
20.4 RNG 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
20.4.1 RNG 控制寄存器 (RNG_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
20.4.2 RNG 状态寄存器 (RNG_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
20.4.3 RNG 数据寄存器 (RNG_DR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
20.4.4 RNG 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
21 通用定时器 (TIM2/TIM3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
21.1 TIM2/TIM3 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
21.2 TIM2/TIM3 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
21.3 TIM2/TIM3 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
21.3.1 时基单元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
预分频器说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .431
21.3.2 计数器模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
递增计数模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .433
递减计数模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .436
中心对齐模式(递增/递减计数) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .439
21.3.3 时钟选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
内部时钟源 (CK_INT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .443
外部时钟源模式 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .444
外部时钟源模式 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .446
21.3.4 捕获/比较通道 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
21.3.5 输入捕获模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
21.3.6 PWM 输入模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
21.3.7 强制输出模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
21.3.8 输出比较模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
21.3.9 PWM 模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
PWM 边沿对齐模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .453
递减计数配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .454
PWM 中心对齐模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .454
21.3.10 单脉冲模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
特殊情况:OCx 快速使能: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .457
21.3.11 发生外部事件时清除 OCxREF 信号 . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
21.3.12 编码器接口模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
21.3.13 定时器输入异或功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
21.3.14 定时器与外部触发同步 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
文档 ID 025274 Rev 1 [English Rev 4] 19/952
RM0367 目录
38
从模式:复位模式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .460
从模式:门控模式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .461
从模式:触发模式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .462
从模式:外部时钟模式 2   触发模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .463
21.3.15 定时器同步 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464
将一个定时器用作另一个定时器的预分频器 . . . . . . . . . . . . . . . . . . . . . . . . . . . .464
使用一个定时器使能另一个定时器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .465
使用一个定时器启动另一个定时器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .467
使用一个外部触发同步的启动 2 个定时器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .468
21.3.16 调试模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
21.4 TIM2/TIM3 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
21.4.1 TIMx 控制寄存器 1 (TIMx_CR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
21.4.2 TIMx 控制寄存器 2 (TIMx_CR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
21.4.3 TIMx 从模式控制寄存器 (TIMx_SMCR) . . . . . . . . . . . . . . . . . . . . . . . . 473
21.4.4 TIMx DMA/中断使能寄存器 (TIMx_DIER) . . . . . . . . . . . . . . . . . . . . . . 475
21.4.5 TIMx 状态寄存器 (TIMx_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
21.4.6 TIMx 事件生成寄存器 (TIMx_EGR) . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
21.4.7 TIMx 捕获/比较模式寄存器 1 (TIMx_CCMR1) . . . . . . . . . . . . . . . . . . . 479
输出比较模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .479
输入捕获模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .481
21.4.8 TIMx 捕获/比较模式寄存器 2 (TIMx_CCMR2) . . . . . . . . . . . . . . . . . . . 482
输出比较模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .482
输入捕获模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .483
21.4.9 TIMx 捕获/比较使能寄存器 (TIMx_CCER) . . . . . . . . . . . . . . . . . . . . . 483
21.4.10 TIMx 计数器 (TIMx_CNT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
21.4.11 TIMx 预分频器 (TIMx_PSC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
21.4.12 TIMx 自动重载寄存器 (TIMx_ARR) . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
21.4.13 TIMx 捕获/比较寄存器 1 (TIMx_CCR1) . . . . . . . . . . . . . . . . . . . . . . . . 486
21.4.14 TIMx 捕获/比较寄存器 2 (TIMx_CCR2) . . . . . . . . . . . . . . . . . . . . . . . . 486
21.4.15 TIMx 捕获/比较寄存器 3 (TIMx_CCR3) . . . . . . . . . . . . . . . . . . . . . . . . 487
21.4.16 TIMx 捕获/比较寄存器 4 (TIMx_CCR4) . . . . . . . . . . . . . . . . . . . . . . . . 487
21.4.17 TIMx DMA 控制寄存器 (TIMx_DCR) . . . . . . . . . . . . . . . . . . . . . . . . . . 488
21.4.18 TIMx 全传输 DMA 地址 (TIMx_DMAR) . . . . . . . . . . . . . . . . . . . . . . . . 488
DMA 连续传送功能使用方法示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .489
21.4.19 TIM2 选项寄存器 (TIM2_OR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490
21.4.20 TIM3 选项寄存器 (TIM3_OR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491
21.5 TIMx 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492
目录 RM0367
20/952 文档 ID 025274 Rev 1 [English Rev 4]
22 通用定时器 (TIM21/22) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
22.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
22.2 TIM21/22 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
22.2.1 TIM21/22 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
22.3 TIM21/22 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
22.3.1 时基单元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
预分频器说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .496
22.3.2 计数器模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498
递增计数模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .498
递减计数模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .502
中心对齐模式(递增/递减计数) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .504
22.3.3 时钟选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508
内部时钟源 (CK_INT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .508
外部时钟源模式 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .511
22.3.4 捕获/比较通道 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512
22.3.5 输入捕获模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514
22.3.6 PWM 输入模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515
22.3.7 强制输出模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516
22.3.8 输出比较模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516
22.3.9 PWM 模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518
PWM 中心对齐模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .519
中心对齐模式使用建议 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .520
22.3.10 发生外部事件时清除 OCxREF 信号 . . . . . . . . . . . . . . . . . . . . . . . . . . . 521
22.3.11 单脉冲模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522
特殊情况:OCx 快速使能. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .523
22.3.12 编码器接口模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523
22.3.13 TIM21/22 外部触发同步 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525
从模式:复位模式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .525
从模式:门控模式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .526
从模式:触发模式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .527
22.3.14 定时器同步 (TIM21/22) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528
22.3.15 调试模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528
22.4 TIM21/22 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529
22.4.1 TIM21/22 控制寄存器 1 (TIMx_CR1) . . . . . . . . . . . . . . . . . . . . . . . . . . 529
22.4.2 TIM21/22 控制寄存器 2 (TIMx_CR2) . . . . . . . . . . . . . . . . . . . . . . . . . . 530
22.4.3 TIM21/22 从模式控制寄存器 (TIMx_SMCR) . . . . . . . . . . . . . . . . . . . . 531
22.4.4 TIM21/22 中断使能寄存器 (TIMx_DIER) . . . . . . . . . . . . . . . . . . . . . . . 533
22.4.5 TIM21/22 状态寄存器 (TIMx_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534
文档 ID 025274 Rev 1 [English Rev 4] 21/952
RM0367 目录
38
22.4.6 TIM21/22 事件生成寄存器 (TIMx_EGR) . . . . . . . . . . . . . . . . . . . . . . . 536
22.4.7 TIM21/22 捕获/比较模式寄存器 1 (TIMx_CCMR1) . . . . . . . . . . . . . . . 537
输出比较模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .537
输入捕获模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .539
22.4.8 TIM21/22 捕获/比较使能寄存器 (TIMx_CCER) . . . . . . . . . . . . . . . . . . 540
22.4.9 TIM21/22 计数器 (TIMx_CNT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541
22.4.10 TIM21/22 预分频器 (TIMx_PSC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541
22.4.11 TIM21/22 自动重载寄存器 (TIMx_ARR) . . . . . . . . . . . . . . . . . . . . . . . 541
22.4.12 TIM21/22 捕获/比较寄存器 1 (TIMx_CCR1) . . . . . . . . . . . . . . . . . . . . 542
22.4.13 TIM21/22 捕获/比较寄存器 2 (TIMx_CCR2) . . . . . . . . . . . . . . . . . . . . 542
22.4.14 TIM21 选项寄存器 (TIM21_OR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543
22.4.15 TIM22 选项寄存器 (TIM22_OR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544
22.4.16 TIM21/22 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545
23 基本定时器 (TIM6/7) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547
23.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547
23.2 TIM6/7 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547
23.3 TIM6/7 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548
23.3.1 时基单元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548
预分频器说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .548
23.3.2 计数模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550
23.3.3 时钟源 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553
23.3.4 调试模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554
23.4 TIM6/7 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555
23.4.1 TIM6/7 控制寄存器 1 (TIMx_CR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555
23.4.2 TIM6/7 控制寄存器 2 (TIMx_CR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556
23.4.3 TIM6/7 DMA/中断使能寄存器 (TIMx_DIER) . . . . . . . . . . . . . . . . . . . . 556
23.4.4 TIM6/7 状态寄存器 (TIMx_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557
23.4.5 TIM6/7 事件产生寄存器 (TIMx_EGR) . . . . . . . . . . . . . . . . . . . . . . . . . 557
23.4.6 TIM6/7 计数器 (TIMx_CNT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557
23.4.7 TIM6/7 预分频器 (TIMx_PSC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558
23.4.8 TIM6/7 自动重载寄存器 (TIMx_ARR) . . . . . . . . . . . . . . . . . . . . . . . . . 558
23.4.9 TIM6/7 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559
24 低功耗定时器 (LPTIM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560
24.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560
24.2 LPTIM 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560
目录 RM0367
22/952 文档 ID 025274 Rev 1 [English Rev 4]
24.3 LPTIM 实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560
24.4 LPTIM 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561
24.4.1 LPTIM 框图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561
24.4.2 LPTIM 复位和时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561
24.4.3 干扰滤波器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562
24.4.4 预分频器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563
24.4.5 触发多路复用器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563
24.4.6 工作模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564
24.4.7 超时功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565
24.4.8 生成波形 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566
24.4.9 寄存器更新 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567
24.4.10 计数器模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567
24.4.11 定时器使能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568
24.4.12 编码器模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568
24.5 LPTIM 中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569
24.6 LPTIM 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 570
24.6.1 LPTIM 中断和状态寄存器 (LPTIMx_ISR) . . . . . . . . . . . . . . . . . . . . . . . 570
24.6.2 LPTIM 中断清零寄存器 (LPTIMx_ICR) . . . . . . . . . . . . . . . . . . . . . . . . 571
24.6.3 LPTIM 中断使能寄存器 (LPTIMx_IER) . . . . . . . . . . . . . . . . . . . . . . . . 572
24.6.4 LPTIM 配置寄存器 (LPTIMx_CFGR) . . . . . . . . . . . . . . . . . . . . . . . . . . 573
24.6.5 LPTIM 控制寄存器 (LPTIMx_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576
24.6.6 LPTIM 比较寄存器 (LPTIMx_CMP) . . . . . . . . . . . . . . . . . . . . . . . . . . . 577
24.6.7 LPTIM 自动重载寄存器 (LPTIMx_ARR) . . . . . . . . . . . . . . . . . . . . . . . . 577
24.6.8 LPTIM 计数器寄存器 (LPTIMx_CNT) . . . . . . . . . . . . . . . . . . . . . . . . . 578
24.6.9 LPTIM 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579
25 独立看门狗 (IWDG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580
25.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580
25.2 IWDG 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580
25.3 IWDG 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580
25.3.1 IWDG 框图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580
25.3.2 窗口选项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581
使能窗口选项时配置 IWDG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .581
禁止窗口选项时配置 IWDG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .581
25.3.3 硬件看门狗 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581
25.3.4 停止和待机模式下的行为 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581
25.3.5 寄存器访问保护 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581
文档 ID 025274 Rev 1 [English Rev 4] 23/952
RM0367 目录
38
25.3.6 调试模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582
25.4 IWDG 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582
25.4.1 键寄存器 (IWDG_KR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582
25.4.2 预分频器寄存器 (IWDG_PR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583
25.4.3 重载寄存器 (IWDG_RLR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584
25.4.4 状态寄存器 (IWDG_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585
25.4.5 窗口寄存器 (IWDG_WINR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586
25.4.6 IWDG 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586
26 系统窗口看门狗 (WWDG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587
26.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587
26.2 WWDG 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587
26.3 WWDG 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587
26.3.1 使能看门狗 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588
26.3.2 控制递减计数器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588
26.3.3 看门狗中断高级特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588
26.3.4 如何设置看门狗超时 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589
26.3.5 调试模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590
26.4 WWDG 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590
26.4.1 控制寄存器 (WWDG_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590
26.4.2 配置寄存器 (WWDG_CFR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591
26.4.3 状态寄存器 (WWDG_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591
26.4.4 WWDG 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592
27 实时时钟 (RTC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593
27.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593
27.2 RTC 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593
27.3 RTC 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594
27.3.1 RTC 框图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594
27.3.2 RTC 控制的 GPIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595
27.3.3 时钟和预分频器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596
27.3.4 实时时钟和日历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597
27.3.5 可编程闹钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597
27.3.6 周期性自动唤醒 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598
27.3.7 RTC 初始化和配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598
RTC 寄存器访问 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .598
RTC 寄存器写保护 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .598
目录 RM0367
24/952 文档 ID 025274 Rev 1 [English Rev 4]
日历初始化和配置. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .599
夏令时. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .599
编程闹钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .599
编程唤醒定时器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .600
27.3.8 读取日历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600
当 RTC_CR 寄存器中的 BYPSHAD 控制位清零时. . . . . . . . . . . . . . . . . . . . . . .600
当 RTC_CR 寄存器中的 BYPSHAD 控制位置 1 时(旁路影子寄存器) . . . . . .600
27.3.9 复位 RTC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601
27.3.10 RTC 同步 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601
27.3.11 RTC 参考时钟检测 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602
27.3.12 RTC 精密数字校准 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602
PREDIV_A<3 条件下的校准 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .603
验证 RTC 校准 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .603
动态重校准 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .604
27.3.13 时间戳功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604
27.3.14 入侵检测 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604
RTC 备份寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .604
入侵检测初始化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .605
出现入侵事件时生成触发输出. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .605
入侵事件的时间戳. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .605
对入侵输入的边沿检测 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .605
对 RTC_TAMPx 输入的带过滤电平检测. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .606
27.3.15 校准时钟输出 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 606
27.3.16 闹钟输出 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 606
闹钟复用功能输出. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .606
27.4 RTC 低功耗模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 607
27.5 RTC 中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 607
27.6 RTC 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 608
27.6.1 RTC 时间寄存器 (RTC_TR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 608
27.6.2 RTC 日期寄存器 (RTC_DR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609
27.6.3 RTC 控制寄存器 (RTC_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 610
27.6.4 RTC 初始化和状态寄存器 (RTC_ISR) . . . . . . . . . . . . . . . . . . . . . . . . . 613
27.6.5 RTC 预分频器寄存器 (RTC_PRER) . . . . . . . . . . . . . . . . . . . . . . . . . . . 615
27.6.6 RTC 唤醒定时器寄存器 (RTC_WUTR) . . . . . . . . . . . . . . . . . . . . . . . . 616
27.6.7 RTC 闹钟 A 寄存器 (RTC_ALRMAR) . . . . . . . . . . . . . . . . . . . . . . . . . 617
27.6.8 RTC 闹钟 B 寄存器 (RTC_ALRMBR) . . . . . . . . . . . . . . . . . . . . . . . . . 618
27.6.9 RTC 写保护寄存器 (RTC_WPR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619
27.6.10 RTC 亚秒寄存器 (RTC_SSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619
文档 ID 025274 Rev 1 [English Rev 4] 25/952
RM0367 目录
38
27.6.11 RTC 平移控制寄存器 (RTC_SHIFTR) . . . . . . . . . . . . . . . . . . . . . . . . . 620
27.6.12 RTC 时间戳时间寄存器 (RTC_TSTR) . . . . . . . . . . . . . . . . . . . . . . . . . 621
27.6.13 RTC 时间戳日期寄存器 (RTC_TSDR) . . . . . . . . . . . . . . . . . . . . . . . . . 622
27.6.14 RTC 时间戳亚秒寄存器 (RTC_TSSSR) . . . . . . . . . . . . . . . . . . . . . . . . 622
27.6.15 RTC 校准寄存器 (RTC_CALR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623
27.6.16 RTC 入侵配置寄存器 (RTC_TAMPCR) . . . . . . . . . . . . . . . . . . . . . . . . 624
27.6.17 RTC 闹钟 A 亚秒寄存器 (RTC_ALRMASSR) . . . . . . . . . . . . . . . . . . . 627
27.6.18 RTC 闹钟 B 亚秒寄存器 (RTC_ALRMBSSR) . . . . . . . . . . . . . . . . . . . 628
27.6.19 RTC 选项寄存器 (RTC_OR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 628
27.6.20 RTC 备份寄存器 (RTC_BKPxR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 629
27.6.21 RTC 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 630
28 内部集成电路 (I2C) 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 632
28.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 632
28.2 I2C 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 632
28.3 I2C 特性实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 633
28.4 I2C 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 633
28.4.1 I2C1/3 框图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634
28.4.2 I2C2 框图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635
28.4.3 I2C 时钟要求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635
28.4.4 模式选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 636
通信流程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .636
28.4.5 I2C 初始化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 637
使能和禁止外设 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .637
噪声滤波器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .637
I2C 时序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .638
28.4.6 软件复位 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641
28.4.7 数据传输 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 642
接收 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .642
发送 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .643
硬件传输管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .643
28.4.8 I2C 从模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644
I2C 从模式初始化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .644
带时钟延长的从模式 (NOSTRETCH = 0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .645
不带时钟延长的从模式 (NOSTRETCH = 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . .645
从器件字节控制模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .645
从发送器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .646
从接收器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .650
目录 RM0367
26/952 文档 ID 025274 Rev 1 [English Rev 4]
28.4.9 I2C 主模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 652
I2C 主模式初始化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .652
主模式通信初始化(地址阶段) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .654
主接收器寻址 10 位地址从器件的初始化过程. . . . . . . . . . . . . . . . . . . . . . . . . . .655
主发送器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .656
主接收器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .660
28.4.10 I2C_TIMINGR 寄存器配置示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 664
28.4.11 SMBus 特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 665
简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .665
SMBUS 以 I2C 规范第 2.1 版为基础。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .666
总线协议 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .666
地址解析协议 (ARP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .666
接收的命令和数据应答控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .666
主机通知协议 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .666
SMBus 报警 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .666
数据包错误校验 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .667
超时 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .667
总线空闲检测 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .668
28.4.12 SMBus 初始化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 668
接收的命令和数据应答控制(从模式) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .668
特定地址(从模式) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .668
数据包错误校验 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .668
超时检测 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .669
总线空闲检测 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .669
28.4.13 SMBus:I2C_TIMEOUTR 寄存器配置示例 . . . . . . . . . . . . . . . . . . . . . 670
28.4.14 SMBus 从模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671
SMBus 从发送器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .671
SMBus 从接收器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .672
SMBus 主发送器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .674
SMBus 主接收器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .676
28.4.15 地址匹配时从停止模式唤醒 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 677
28.4.16 错误条件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 677
总线错误 (BERR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .677
仲裁丢失 (ARLO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .678
上溢/下溢错误 (OVR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .678
数据包错误校验错误 (PECERR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .678
超时错误 (TIMEOUT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .678
报警 (ALERT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .679
28.4.17 DMA 请求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679
使用 DMA 进行发送 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .679
使用 DMA 进行接收 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .679
文档 ID 025274 Rev 1 [English Rev 4] 27/952
RM0367 目录
38
28.4.18 调试模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 680
28.5 I2C 低功耗模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 680
28.6 I2C 中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 680
28.7 I2C 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 682
28.7.1 控制寄存器 1 (I2C_CR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 682
28.7.2 控制寄存器 2 (I2C_CR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 685
28.7.3 设备自身地址 1 寄存器 (I2C_OAR1) . . . . . . . . . . . . . . . . . . . . . . . . . . 688
28.7.4 设备自身地址 2 寄存器 (I2C_OAR2) . . . . . . . . . . . . . . . . . . . . . . . . . . 689
28.7.5 时序寄存器 (I2C_TIMINGR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 690
28.7.6 超时寄存器 (I2C_TIMEOUTR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 691
28.7.7 中断和状态寄存器 (I2C_ISR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 692
28.7.8 中断清零寄存器 (I2C_ICR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 694
28.7.9 PEC 寄存器 (I2C_PECR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 695
28.7.10 接收数据寄存器 (I2C_RXDR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 696
28.7.11 发送数据寄存器 (I2C_TXDR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 696
28.7.12 I2C寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 697
29 通用同步异步收发器 (USART) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 699
29.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 699
29.2 USART 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 699
29.3 USART 扩展特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 700
29.4 USART 实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 700
29.5 USART 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 701
29.5.1 USART 字符说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 703
29.5.2 USART 发送器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 705
字符发送 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .705
单字节通信 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .706
中断字符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .707
空闲字符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .707
29.5.3 USART 接收器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 708
起始位检测 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .708
字符接收 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .709
中断字符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .709
空闲字符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .709
上溢错误 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .710
选择合适的过采样方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .710
帧错误 (Framing error) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .712
接收期间可配置的停止位 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .712
目录 RM0367
28/952 文档 ID 025274 Rev 1 [English Rev 4]
29.5.4 USART 波特率生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 713
如何从 USARTx_BRR 寄存器中获取 USARTDIV . . . . . . . . . . . . . . . . . . . . . . .713
29.5.5 USART 接收器对时钟偏差的容差 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714
29.5.6 USART 自动波特率检测 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 716
29.5.7 使用 USART 进行多处理器通信 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 717
空闲线路检测 (WAKE=0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .717
4 位/7 位地址标记检测 (WAKE=1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .718
29.5.8 使用 USART 进行 Modbus 通信 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 718
Modbus/RTU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .718
Modbus/ASCII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .719
29.5.9 USART 极性控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 719
偶校验. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .719
奇校验. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .719
接收时进行奇偶校验检查 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .719
发送时的奇偶校验生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .719
29.5.10 USART LIN(局域互连网络)模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . 720
LIN 发送 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .720
LIN 接收 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .720
29.5.11 USART 同步模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 722
29.5.12 USART 单线半双工通信 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725
29.5.13 USART 智能卡模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725
块模式 (T=1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .727
正向约定和反向约定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .728
29.5.14 USART IrDA SIR ENDEC 模块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 729
IrDA 低功耗模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .730
29.5.15 DMA 模式下的 USART 连续通信 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731
使用 DMA 进行发送 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .731
使用 DMA 进行接收 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .732
多缓冲区通信中的错误标志和中断生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .733
29.5.16 RS232 硬件流控制和 RS485 驱动器使能(使用 USART) . . . . . . . . . 733
RS232 RTS 流控制. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .734
RS232 CTS 流控制. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .734
RS485 驱动器使能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .735
29.5.17 使用 USART 从停止模式唤醒 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735
使用静默模式和停止模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .735
当 USART 时钟源为 HSI 时钟时,确定最大 USART 波特率允许
从停止模式正确唤醒 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .736
29.6 USART 低功耗模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 736
29.7 USART 中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 737
29.8 USART 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 739
文档 ID 025274 Rev 1 [English Rev 4] 29/952
RM0367 目录
38
29.8.1 控制寄存器 1 (USARTx_CR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 739
29.8.2 控制寄存器 2 (USARTx_CR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 742
29.8.3 控制寄存器 3 (USARTx_CR3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 745
29.8.4 波特率寄存器 (USARTx_BRR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 749
29.8.5 保护时间和预分频器寄存器 (USARTx_GTPR) . . . . . . . . . . . . . . . . . . 750
29.8.6 接收器超时寄存器 (USARTx_RTOR) . . . . . . . . . . . . . . . . . . . . . . . . . . 751
29.8.7 请求寄存器 (USARTx_RQR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 752
29.8.8 中断和状态寄存器 (USARTx_ISR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 753
29.8.9 中断标志清零寄存器 (USARTx_ICR) . . . . . . . . . . . . . . . . . . . . . . . . . . 757
29.8.10 接收数据寄存器 (USARTx_RDR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 758
29.8.11 发送数据寄存器 (USARTx_TDR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759
29.8.12 USART 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759
30 低功耗通用异步接收器 (LPUART) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 761
30.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 761
30.2 LPUART 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 761
30.3 LPUART 特性实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 762
30.4 LPUART 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 762
30.4.1 LPUART 字符说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764
30.4.2 LPUART 发送器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 766
字符发送 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .766
单字节通信 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .767
中断字符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .768
空闲字符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .768
30.4.3 LPUART 接收器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 768
起始位检测 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .768
字符接收 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .768
中断字符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .769
空闲字符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .769
上溢错误 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .769
选择时钟源 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .770
帧错误 (Framing error) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .770
接收期间可配置的停止位 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .770
30.4.4 LPUART 波特率生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 771
30.4.5 LPUART 接收器对时钟偏差的容差 . . . . . . . . . . . . . . . . . . . . . . . . . . . 771
30.4.6 使用 LPUART 进行多处理器通信 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 772
空闲线路检测 (WAKE=0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .773
4 位/7 位地址标记检测 (WAKE=1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .773
目录 RM0367
30/952 文档 ID 025274 Rev 1 [English Rev 4]
30.4.7 LPUART 极性控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 774
偶校验. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .774
奇校验. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .775
接收时进行奇偶校验检查 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .775
发送时的奇偶校验生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .775
30.4.8 使用 LPUART 单线半双工通信 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 775
30.4.9 使用 LPUART 在 DMA 模式下进行连续通信 . . . . . . . . . . . . . . . . . . . . 775
使用 DMA 进行发送 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .776
使用 DMA 进行接收 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .777
多缓冲区通信中的错误标志和中断生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .777
30.4.10 RS232 硬件流控制和 RS485 驱动器使能(使用 LPUART) . . . . . . . . 778
RS232 RTS 流控制. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .778
RS232 CTS 流控制. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .778
RS485 驱动器使能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .779
30.4.11 使用 LPUART 从停止模式唤醒 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 779
使用静默模式和停止模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .780
当 LPUART 时钟源为 HSI 时钟时,确定最大 LPUART 波特率可使从停止模式正确
地唤醒. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .780
30.5 LPUART 低功耗模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 781
30.6 LPUART 中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 781
30.7 LPUART 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 783
30.7.1 控制寄存器 1 (LPUART_CR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 783
30.7.2 控制寄存器 2 (LPUART_CR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 786
30.7.3 控制寄存器 3 (LPUART_CR3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 788
30.7.4 波特率寄存器 (LPUART_BRR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 790
30.7.5 请求寄存器 (LPUART_RQR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 791
30.7.6 中断和状态寄存器 (LPUART_ISR) . . . . . . . . . . . . . . . . . . . . . . . . . . . 791
30.7.7 中断标志清零寄存器 (LPUART_ICR) . . . . . . . . . . . . . . . . . . . . . . . . . . 794
30.7.8 接收数据寄存器 (LPUART_RDR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 795
30.7.9 发送数据寄存器 (LPUART_TDR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796
30.7.10 LPUART 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 797
31 串行外设接口/集成电路内置音频总线 (SPI/I2S) . . . . . . . . . . . . . . . . . . . 798
31.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 798
31.1.1 SPI 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 798
31.1.2 SPI 扩展特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 799
31.1.3 I2S 功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 799
31.2 SPI/I2S 实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 799
文档 ID 025274 Rev 1 [English Rev 4] 31/952
RM0367 目录
38
31.3 SPI 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 800
31.3.1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 800
31.3.2 一个主器件和一个从器件之间的通信 . . . . . . . . . . . . . . . . . . . . . . . . . . 801
全双工通信 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .801
半双工通信 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .801
单工通信 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .802
31.3.3 标准多从器件通信 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 803
31.3.4 多主器件通信 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 804
31.3.5 从器件选择 (NSS) 引脚管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 804
31.3.6 通信格式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 806
时钟相位和极性控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .806
数据帧格式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .807
31.3.7 SPI配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 808
31.3.8 使能 SPI 的步骤 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 808
31.3.9 数据发送和接收过程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 809
接收和发送缓冲区. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .809
发送缓冲区处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .809
接收缓冲区处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .809
序列处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .809
31.3.10 禁止 SPI 的步骤 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 811
31.3.11 使用 DMA(直接存储器寻址)进行通信 . . . . . . . . . . . . . . . . . . . . . . . 812
31.3.12 SPI 状态标志 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 814
发送缓冲区为空 (TXE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .814
接收缓冲区非空 (RXNE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .814
忙标志 (BSY) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .814
31.3.13 SPI 错误标志 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 814
上溢标志 (OVR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .814
模式故障 (MODF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .815
CRC 错误 (CRCERR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .815
TI 模式帧格式错误 (FRE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .815
31.4 SPI 特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 815
31.4.1 TI 模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 815
主模式下的 TI 协议 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .815
31.4.2 CRC 计算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 816
CRC 原理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .816
CPU 管理的 CRC 传输 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .817
DMA 管理的 CRC 传输. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .817
复位 SPIx_TXCRC 和 SPIx_RXCRC 值. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .817
31.5 SPI 中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 818
目录 RM0367
32/952 文档 ID 025274 Rev 1 [English Rev 4]
31.6 I2S 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 819
31.6.1 I2S 一般说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 819
31.6.2 支持的音频协议 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 820
I
2S Philips 标准. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .821
MSB 对齐标准 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .823
LSB 对齐标准 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .824
PCM 标准 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .826
31.6.3 时钟发生器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 826
31.6.4 I2S 主模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 829
步骤 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .829
发送序列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .829
接收序列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .829
31.6.5 I2S 从模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 830
发送序列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .830
接收序列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .831
31.6.6 I2S 状态标志 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 831
忙标志 (BSY) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .831
发送缓冲区为空 (TXE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .832
接收缓冲区非空 (RXNE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .832
通道方向 (CHSIDE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .832
31.6.7 I2S 错误标志 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 832
下溢标志 (UDR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .832
上溢标志 (OVR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .832
帧错误标志 (FRE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .833
31.6.8 I2S 中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 833
31.6.9 DMA 特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 833
31.7 SPI 和 I2S 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 834
31.7.1 SPI 控制寄存器 1 (SPI_CR1)(不用于 I2S 模式) . . . . . . . . . . . . . . . 834
31.7.2 SPI 控制寄存器 2 (SPI_CR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 836
31.7.3 SPI 状态寄存器 (SPI_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 837
31.7.4 SPI 数据寄存器 (SPI_DR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 838
31.7.5 SPI CRC 多项式寄存器 (SPI_CRCPR)(不用于 I2S 模式) . . . . . . . . 839
31.7.6 SPI RX CRC 寄存器 (SPI_RXCRCR)(不用于 I2S 模式) . . . . . . . . . 839
31.7.7 SPI TX CRC 寄存器 (SPI_TXCRCR)(不用于 I2S 模式) . . . . . . . . . 840
31.7.8 SPI_I2S 配置寄存器 (SPI_I2SCFGR) . . . . . . . . . . . . . . . . . . . . . . . . . 841
31.7.9 SPI_I2S 预分频器寄存器 (SPI_I2SPR) . . . . . . . . . . . . . . . . . . . . . . . . 842
31.7.10 SPI 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 843
32 通用串行总线全速设备接口 (USB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 844
文档 ID 025274 Rev 1 [English Rev 4] 33/952
RM0367 目录
38
32.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 844
32.2 USB 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 844
32.3 USB 实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 844
32.4 USB 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 845
32.4.1 USB 模块说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 846
32.5 编程注意事项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 847
32.5.1 通用 USB 设备编程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 847
32.5.2 系统复位和上电复位 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 847
USB 复位(RESET 中断). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .847
数据包缓冲区的结构和用法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .848
端点初始化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .849
IN 数据包(数据传送). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .849
OUT 和 SETUP 数据包(数据接收). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .849
控制传输 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .850
32.5.3 双缓冲端点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 851
32.5.4 同步传输 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 853
32.5.5 挂起/恢复事件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 854
32.6 USB 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 855
32.6.1 通用寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 855
USB 控制寄存器 (USB_CNTR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .855
USB 中断状态寄存器 (USB_ISTR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .857
USB 帧数寄存器 (USB_FNR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .859
USB 设备地址 (USB_DADDR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .860
缓冲区表地址 (USB_BTABLE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .860
LPM 控制和状态寄存器 (USB_LPMCSR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . .861
电池充电检测器 (USB_BCDR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .861
端点相关寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .862
USB 端点 n 寄存器 (USB_EPnR),n=[0..7] . . . . . . . . . . . . . . . . . . . . . . . . . . . .863
32.6.2 缓冲区描述符表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 866
发送缓冲区地址 n (USB_ADDRn_TX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .866
发送字节数 n (USB_COUNTn_TX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .867
接收缓冲区地址 n (USB_ADDRn_RX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .867
接收字节数 n (USB_COUNTn_RX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .867
32.6.3 USB 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 869
33 调试支持 (DBG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 871
33.1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 871
33.2 ARM® 参考文档 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 872
目录 RM0367
34/952 文档 ID 025274 Rev 1 [English Rev 4]
33.3 引脚排列和调试端口引脚 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 872
33.3.1 SWD 端口引脚 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 872
33.3.2 SW-DP 引脚分配 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 872
33.3.3 SWD 引脚上的内部上拉和下拉 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 872
33.4 ID 代码和锁定机制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 873
33.4.1 MCU 器件 ID 代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 873
DBG_IDCODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .873
33.5 SWD 端口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 874
33.5.1 SWD 协议简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 874
33.5.2 SWD 协议序列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 874
33.5.3 SW-DP 状态机(复位、空闲状态、ID 代码) . . . . . . . . . . . . . . . . . . . 875
33.5.4 DP 和 AP 读/写访问 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 875
33.5.5 SW-DP 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 876
33.5.6 SW-AP 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 876
33.6 内核调试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 877
33.7 BPU(断点单元) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 878
33.7.1 BPU 功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 878
33.8 DWT(数据观察点) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 878
33.8.1 DWT 功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 878
33.8.2 DWT 程序计数器采样寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 878
33.9 MCU 调试组件 (DBG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 878
33.9.1 对低功耗模式的调试支持 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 878
33.9.2 对定时器、看门狗和 I2C 的调试支持 . . . . . . . . . . . . . . . . . . . . . . . . . . 879
33.9.3 调试 MCU 配置寄存器(DBG_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . 879
33.9.4 调试 MCU APB1 冻结寄存器 (DBG_APB1_FZ) . . . . . . . . . . . . . . . . . 880
33.9.5 调试 MCU APB2 冻结寄存器 (DBG_APB2_FZ) . . . . . . . . . . . . . . . . . 882
33.10 DBG 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 883
34 设备电子签名 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 884
34.1 存储器大小寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 884
34.1.1 Flash 大小寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 884
34.2 唯一设备 ID 寄存器(96 位) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 884
附录 A 代码示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 886
A.1 简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 886
A.2 NVM/RCC 操作代码示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 886
文档 ID 025274 Rev 1 [English Rev 4] 35/952
RM0367 目录
38
A.2.1 提高 CPU 频率的准备序列代码. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 886
A.2.2 降低 CPU 频率的准备序列代码. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 886
A.2.3 从 PLL 切换到 HSI16 的序列代码. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 887
A.2.4 切换到 PLL 的序列代码. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 887
A.3 NVM 操作代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 888
A.3.1 解锁数据 EEPROM 和 FLASH_PECR 寄存器的代码示例 . . . . . . . . . . 888
A.3.2 锁定数据 EEPROM 和 FLASH_PECR 寄存器的代码示例 . . . . . . . . . . 888
A.3.3 解锁 NVM 程序存储器的代码示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 888
A.3.4 解锁选项字节区域的代码示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 889
A.3.5 写入数据 EEPROM 的代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 889
A.3.6 擦除数据 EEPROM 的代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 889
A.3.7 编程选项字节的代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 890
A.3.8 擦除选项字节的代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 890
A.3.9 对 Flash 程序存储器中的单个字进行编程的代码示例. . . . . . . . . . . . . . 891
A.3.10 对 Flash 程序存储器的半页进行编程的代码示例 . . . . . . . . . . . . . . . . . 892
A.3.11 擦除 Flash 程序存储器中一页的代码示例. . . . . . . . . . . . . . . . . . . . . . . 893
A.3.12 批量擦除代码示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 894
A.4 时钟控制器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 895
A.4.1 HSE 启动序列代码示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 895
A.4.2 PLL 配置修改代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 896
A.4.3 MCO 选择代码示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 897
A.5 GPIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 897
A.5.1 锁定机制代码示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 897
A.5.2 复用功能选择序列代码示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 897
A.5.3 模拟 GPIO 配置代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 897
A.6 DMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 898
A.6.1 DMA 通道配置序列代码示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 898
A.7 中断和事件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 898
A.7.1 NVIC 初始化示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 898
A.7.2 扩展中断选择代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 898
A.8 ADC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 899
A.8.1 校准代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 899
A.8.2 ADC 使能序列代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 899
A.8.3 ADC 禁止序列代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 900
A.8.4 MCO 时钟选择代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 900
A.8.5 单次转换序列代码示例 - 软件触发 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 900
目录 RM0367
36/952 文档 ID 025274 Rev 1 [English Rev 4]
A.8.6 连续转换序列代码示例 - 软件触发 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 901
A.8.7 单次转换序列代码示例 - 硬件触发 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 901
A.8.8 连续转换序列代码示例 - 硬件触发 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 902
A.8.9 DMA 单触发模式序列代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 902
A.8.10 DMA 循环模式序列代码示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 903
A.8.11 等待模式序列代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 903
A.8.12 自动关闭和无等待模式序列代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . 903
A.8.13 自动关闭和等待模式序列代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 904
A.8.14 模拟看门狗代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 904
A.8.15 过采样代码示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 905
A.8.16 温度配置代码示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 905
A.8.17 温度计算代码示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 905
A.9 DAC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 906
A.9.1 独立触发(不产生波形)代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 906
A.9.2 独立触发(生成单个三角波)代码示例. . . . . . . . . . . . . . . . . . . . . . . . . 906
A.9.3 DMA 初始化代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 906
A.10 TSC 代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 907
A.10.1 TSC 配置代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 907
A.10.2 TSC 中断代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 908
A.11 定时器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 908
A.11.1 TI2 上升沿递增计数器代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 908
A.11.2 每 2 个 ETR 上升沿递增计数器代码示例 . . . . . . . . . . . . . . . . . . . . . . . 908
A.11.3 输入捕捉配置代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 909
A.11.4 输入捕捉数据管理代码示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 909
A.11.5 PWM 输入配置代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 910
A.11.6 采用 DMA 的 PWM 输入配置代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . 910
A.11.7 输出比较配置代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 911
A.11.8 边沿对齐 PWM 配置示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 911
A.11.9 中心对齐 PWM 配置示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 912
A.11.10 清零 OCxREF 的 ETR 配置代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . 912
A.11.11 编码器接口代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 913
A.11.12 复位模式代码示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 913
A.11.13 门控模式代码示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 914
A.11.14 触发模式代码示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 914
A.11.15 外部时钟模式 2   触发模式代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . 915
A.11.16 单脉冲模式代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 915
A.11.17 将一个定时器用作另一个定时器的预分频器的代码示例 . . . . . . . . . . . . 916
文档 ID 025274 Rev 1 [English Rev 4] 37/952
RM0367 目录
38
A.11.18 使用一个定时器使能另一个定时器的代码示例 . . . . . . . . . . . . . . . . . . . 916
A.11.19 主器件和从器件同步代码示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 917
A.11.20 两个定时器通过一个外部触发信号同步的代码示例. . . . . . . . . . . . . . . . 919
A.11.21 DMA 连续传送功能代码示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 920
A.12 低功耗定时器 (LPTIM). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 921
A.12.1 脉冲计数器配置代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 921
A.13 IWDG 代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 921
A.13.1 IWDG 配置代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 921
A.13.2 IWDG 配置(带窗口)代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 921
A.14 WWDG 代码示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 922
A.14.1 WWDG 配置代码示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 922
A.15 RTC 代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 922
A.15.1 RTC 日历配置代码示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 922
A.15.2 RTC 闹钟配置代码示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 923
A.15.3 RTC WUT 配置代码示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 923
A.15.4 RTC 读日历代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 924
A.15.5 RTC 校准代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 924
A.15.6 RTC 入侵和时间戳配置代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 924
A.15.7 RTC 入侵和时间戳代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 925
A.15.8 RTC 时钟输出代码示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 925
A.16 I2C 代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 925
A.16.1 将 I2C 配置为从模式的代码示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 925
A.16.2 I2C 从发送器代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 926
A.16.3 I2C 从接收器代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 926
A.16.4 将 I2C 配置为主模式以进行接收的代码示例. . . . . . . . . . . . . . . . . . . . . 926
A.16.5 将 I2C 配置为主模式以进行发送的代码示例. . . . . . . . . . . . . . . . . . . . . 927
A.16.6 I2C 主发送器代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 927
A.16.7 I2C 主接收器代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 927
A.16.8 将 I2C 配置为主模式以通过 DMA 进行发送的代码示例 . . . . . . . . . . . . 927
A.16.9 将 I2C 配置为从模式以通过 DMA 进行接收的代码示例 . . . . . . . . . . . . 928
A.17 USART 代码示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 928
A.17.1 USART 发送器配置代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 928
A.17.2 USART 发送字节代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 928
A.17.3 USART 传输完成代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 928
A.17.4 USART 接收器配置代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 928
A.17.5 USART 接收字节代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 929
目录 RM0367
38/952 文档 ID 025274 Rev 1 [English Rev 4]
A.17.6 USART LIN 模式代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 929
A.17.7 USART 同步模式代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 929
A.17.8 USART 单线半双工代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 930
A.17.9 USART 智能卡模式代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 930
A.17.10 USART IrDA 模式代码示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 930
A.17.11 USART DMA 代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 931
A.17.12 USART 硬件流控制代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 931
A.18 LPUART 代码示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 932
A.18.1 LPUART 接收器配置代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 932
A.18.2 LPUART 接收字节代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 932
A.19 SPI 代码示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 932
A.19.1 SPI 主器件配置代码示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 932
A.19.2 SPI 从器件配置代码示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 932
A.19.3 SPI 全双工通信代码示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 932
A.19.4 SPI 主器件配置(采用 DMA)代码示例 . . . . . . . . . . . . . . . . . . . . . . . . 933
A.19.5 SPI 从器件配置(采用 DMA)代码示例 . . . . . . . . . . . . . . . . . . . . . . . . 933
A.19.6 SPI 中断代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 933
A.20 DBG 代码示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 933
A.20.1 DBG 读取器件 Id 代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 933
A.20.2 LPM 下的 DBG 调试代码示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 933
35 版本历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 934

标签: STM32 STM3 stm 32 ST

实例下载地址

RM0367 参考手册.pdf(stm32l0)

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警