实例介绍
【实例简介】基于超低功耗 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 |
好例子网口号:伸出你的我的手 — 分享!
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论