From 22a4bac44881dab3d290c487df403c12bd7f7660 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=82=E3=81=8F?= Date: Mon, 1 Nov 2021 16:11:25 +0300 Subject: [PATCH] [FL-1934] Core: wipe memory after free. SubGhz: key encryption tool. (#797) * Core: wipe memory after free. RFID,iButton: fix iterator use after invalidation. * Debug: support unix wildcards for register matching in svd, update MCU description file and minify it. * Toolbox: getter for File in FlipperFile. * Makefile: conditional flashing * SubGhz: keeloq_mfcodes encryption tool. * FuriHal: proper IV handling on CBC in crypto. SubGhz: add support for encrypted keeloq keys. Makefile: move formatting to top Makefile. * SubGhz: rename some function names to match naming scheme. * SubGhz: encryption tool, fix windows line endings Co-authored-by: DrZlo13 --- Makefile | 14 +- applications/ibutton/ibutton-app.cpp | 2 +- .../lfrfid/helpers/rfid-timer-emulator.cpp | 3 +- applications/subghz/subghz_cli.c | 100 +- applications/subghz/subghz_cli.h | 12 - assets/resources/subghz/keeloq_mfcodes | 311 + core/furi/memmgr_heap.c | 1 + debug/PyCortexMDebug/cmdebug/svd_gdb.py | 24 +- debug/STM32WB55_CM4.svd | 37019 +--------------- .../targets/f6/furi-hal/furi-hal-crypto.c | 21 +- .../targets/f7/furi-hal/furi-hal-crypto.c | 21 +- .../furi-hal-include/furi-hal-crypto.h | 7 +- lib/subghz/subghz_keystore.c | 282 +- lib/subghz/subghz_keystore.h | 9 +- lib/subghz/subghz_parser.c | 8 +- lib/toolbox/flipper-file.c | 9 +- lib/toolbox/flipper-file.h | 15 +- make/rules.mk | 8 - 18 files changed, 760 insertions(+), 37106 deletions(-) create mode 100644 assets/resources/subghz/keeloq_mfcodes diff --git a/Makefile b/Makefile index 0091c292..e067a3c6 100644 --- a/Makefile +++ b/Makefile @@ -49,12 +49,16 @@ firmware_clean: .PHONY: bootloader_flash bootloader_flash: +ifeq ($(FORCE), '1') rm $(PROJECT_ROOT)/bootloader/.obj/f*/flash || true +endif $(MAKE) -C $(PROJECT_ROOT)/bootloader -j$(NPROCS) flash .PHONY: firmware_flash firmware_flash: +ifeq ($(FORCE), '1') rm $(PROJECT_ROOT)/firmware/.obj/f*/flash || true +endif $(MAKE) -C $(PROJECT_ROOT)/firmware -j$(NPROCS) flash .PHONY: flash_radio @@ -73,8 +77,16 @@ flash_radio_fus: @echo "================ JUST DON'T ================" @echo -.PHONY: +.PHONY: flash_radio_fus_please_i_m_not_going_to_complain flash_radio_fus_please_i_m_not_going_to_complain: $(PROJECT_ROOT)/scripts/flash.py core2fus 0x080EC000 --statement=AGREE_TO_LOOSE_FLIPPER_FEATURES_THAT_USES_CRYPTO_ENCLAVE $(COPRO_DIR)/stm32wb5x_FUS_fw_for_fus_0_5_3.bin $(PROJECT_ROOT)/scripts/flash.py core2fus 0x080EC000 --statement=AGREE_TO_LOOSE_FLIPPER_FEATURES_THAT_USES_CRYPTO_ENCLAVE $(COPRO_DIR)/stm32wb5x_FUS_fw.bin $(PROJECT_ROOT)/scripts/ob.py set + +FORMAT_SOURCES = $(shell find applications bootloader core -iname "*.h" -o -iname "*.c" -o -iname "*.cpp") + +.PHONY: format +format: + @echo "Formatting sources with clang-format" + @clang-format -style=file -i $(FORMAT_SOURCES) + diff --git a/applications/ibutton/ibutton-app.cpp b/applications/ibutton/ibutton-app.cpp index 3491c95e..a8d0081f 100644 --- a/applications/ibutton/ibutton-app.cpp +++ b/applications/ibutton/ibutton-app.cpp @@ -48,8 +48,8 @@ iButtonApp::iButtonApp() iButtonApp::~iButtonApp() { for(std::map::iterator it = scenes.begin(); it != scenes.end(); ++it) { delete it->second; - scenes.erase(it); } + scenes.clear(); delete key_worker; furi_hal_power_insomnia_exit(); diff --git a/applications/lfrfid/helpers/rfid-timer-emulator.cpp b/applications/lfrfid/helpers/rfid-timer-emulator.cpp index 05afb146..56c614f6 100644 --- a/applications/lfrfid/helpers/rfid-timer-emulator.cpp +++ b/applications/lfrfid/helpers/rfid-timer-emulator.cpp @@ -10,8 +10,9 @@ RfidTimerEmulator::~RfidTimerEmulator() { for(it = encoders.begin(); it != encoders.end(); ++it) { delete it->second; - encoders.erase(it); } + + encoders.clear(); } void RfidTimerEmulator::start(LfrfidKeyType type, const uint8_t* data, uint8_t data_size) { diff --git a/applications/subghz/subghz_cli.c b/applications/subghz/subghz_cli.c index 94c2cd03..4a2f06c0 100644 --- a/applications/subghz/subghz_cli.c +++ b/applications/subghz/subghz_cli.c @@ -3,26 +3,15 @@ #include #include #include +#include #include +#include #include #include #define SUBGHZ_FREQUENCY_RANGE_STR \ "299999755...348000000 or 386999938...464000000 or 778999847...928000000" -void subghz_cli_init() { - Cli* cli = furi_record_open("cli"); - - cli_add_command( - cli, "subghz_tx_carrier", CliCommandFlagDefault, subghz_cli_command_tx_carrier, NULL); - cli_add_command( - cli, "subghz_rx_carrier", CliCommandFlagDefault, subghz_cli_command_rx_carrier, NULL); - cli_add_command(cli, "subghz_tx", CliCommandFlagDefault, subghz_cli_command_tx, NULL); - cli_add_command(cli, "subghz_rx", CliCommandFlagDefault, subghz_cli_command_rx, NULL); - - furi_record_close("cli"); -} - void subghz_cli_command_tx_carrier(Cli* cli, string_t args, void* context) { uint32_t frequency = 433920000; @@ -267,3 +256,88 @@ void subghz_cli_command_rx(Cli* cli, string_t args, void* context) { vStreamBufferDelete(instance->stream); free(instance); } + +void subghz_cli_command_print_usage() { + printf("Usage:\r\n"); + printf("subghz_crypto \r\n"); + printf("Cmd list:\r\n"); + printf( + "\tkeeloq \t - Encrypt keeloq manufacture keys\r\n"); +} + +void subghz_cli_command_encrypt_keeloq(Cli* cli, string_t args) { + uint8_t iv[16]; + + string_t source; + string_t destination; + string_init(source); + string_init(destination); + + SubGhzKeystore* keystore = subghz_keystore_alloc(); + + do { + if(!args_read_string_and_trim(args, source)) { + subghz_cli_command_print_usage(); + break; + } + + if(!args_read_string_and_trim(args, destination)) { + subghz_cli_command_print_usage(); + break; + } + + if(!args_read_hex_bytes(args, iv, 16)) { + subghz_cli_command_print_usage(); + break; + } + + if(!subghz_keystore_load(keystore, string_get_cstr(source))) { + printf("Failed to load Keystore"); + break; + } + + if(!subghz_keystore_save(keystore, string_get_cstr(destination), iv)) { + printf("Failed to save Keystore"); + break; + } + } while(false); + + subghz_keystore_free(keystore); + string_clear(destination); + string_clear(source); +} + +void subghz_cli_command(Cli* cli, string_t args, void* context) { + string_t cmd; + string_init(cmd); + + do { + if(!args_read_string_and_trim(args, cmd)) { + subghz_cli_command_print_usage(); + break; + } + + if(string_cmp_str(cmd, "encrypt_keeloq") == 0) { + subghz_cli_command_encrypt_keeloq(cli, args); + break; + } + + subghz_cli_command_print_usage(); + } while(false); + + string_clear(cmd); +} + +void subghz_cli_init() { + Cli* cli = furi_record_open("cli"); + + cli_add_command( + cli, "subghz_tx_carrier", CliCommandFlagDefault, subghz_cli_command_tx_carrier, NULL); + cli_add_command( + cli, "subghz_rx_carrier", CliCommandFlagDefault, subghz_cli_command_rx_carrier, NULL); + cli_add_command(cli, "subghz_tx", CliCommandFlagDefault, subghz_cli_command_tx, NULL); + cli_add_command(cli, "subghz_rx", CliCommandFlagDefault, subghz_cli_command_rx, NULL); + cli_add_command(cli, "subghz", CliCommandFlagDefault, subghz_cli_command, NULL); + + furi_record_close("cli"); +} diff --git a/applications/subghz/subghz_cli.h b/applications/subghz/subghz_cli.h index e6dc16a5..c70cbd21 100644 --- a/applications/subghz/subghz_cli.h +++ b/applications/subghz/subghz_cli.h @@ -3,15 +3,3 @@ #include void subghz_cli_init(); - -void subghz_cli_command_tx_carrier(Cli* cli, string_t args, void* context); - -void subghz_cli_command_rx_carrier(Cli* cli, string_t args, void* context); - -void subghz_cli_command_tx_pt(Cli* cli, string_t args, void* context); - -void subghz_cli_command_rx_pt(Cli* cli, string_t args, void* context); - -void subghz_cli_command_tx(Cli* cli, string_t args, void* context); - -void subghz_cli_command_rx(Cli* cli, string_t args, void* context); diff --git a/assets/resources/subghz/keeloq_mfcodes b/assets/resources/subghz/keeloq_mfcodes new file mode 100644 index 00000000..6a6339d3 --- /dev/null +++ b/assets/resources/subghz/keeloq_mfcodes @@ -0,0 +1,311 @@ +Filetype: Flipper SubGhz Keystore File +Version: 0 +Encryption: 1 +IV: 7A 44 FE 5D C3 B3 65 13 73 A6 F4 2D 1E B6 7D F0 +89153B35033574AAA06D7E792CB92A486B37A2CCDF0B0152BF1A563E321518C8 +F6583A3E4148439E8A8D7ED6A095ACC0C3E22A48F1637E78DF023CAC9272934E +AA0439E6B76CD43F3FCC27CF69C5F3B6508E8103B164E4ECDDF8B2FB222D46FF +A9826C663033D25AE21CB8790406997ADCE84360B258F2B989D967009659859C +3474E7BBFA0173928F414CFD5EE19B27A558D9C171D96FE7B7840A01323A7E7446FAE3E98EA9A8C69B4A6B781BD7906A +2873939A8E0EAC16D748967E987BB0F1079C106E4235B7D35B4BF37F54B21F8E +EF6F1DC0201FCB8CEBC5642A5194A1FDCFBE1FA772A79CEAD54D2F0DA3AC4F6C +3F595EAA0E81E96C5D6DB41799D314E3E81E7F4197E19A3341C55592B1B6C4B0 +7B2D75FE11B27E99CA7610E47D712C8CFB619EC69EBC976A70CFD9574C9F4FF8 +39735CF1D009D132A33B9C546D95FA6D3E69BF3A57EF219392E57C9560E7B037 +D56FDDFB0C4E808143D3ED5F15D6FF47F6EDEBD01192FC7ACF3ACCE9FD5162FC297D0089D65ED2CBE3CE05DDA7B96446 +2750D4F0650061C3AF72C88FD080BE241F2BDD8D8C1B0EFE781120EBEFFE2C72D0EECC42CDDED50CFE4AC51C48AE68C6 +F8CE64921CB73015F2672A9EF0A8359269CAE0E515D6DBB3130CFC9E5E1A98AD +ACF6ADB9E02D67B44EB6C6F126BF64BDAB37926B8BE39E27F323E8F5A0F8FC38 +FBB1302D697F94ECED681CE047819001EDE6E013850258F61E97091DD37D24F2 +D8CD53AB5A94898EB53D4FF46546ADBAA24691181A396052A58AAC657D6817AB +43200E08C21747CABC59538888A259238E782545732A1A6EEE00A6929EC9DD97A8BA9812372374046AC66652CC561D60 +C38CBE29F22D0E83E58A52E94AA2485DA8E702FBDB89D27249473CB8A19AEF61 +9F0EB580F7474985E8460E1682451E213778B77A9CAB4734B75C5386851050BF +2364EBB8237363B21226565675B9F478482CADAE41E795C27287E26137797C10 +775C9A28BA50D759FB438D0200121F01F7DB11986D44D3960F745EAA1E7A2CE2AD92AD718AFCD98BC3269C39F65ADC53 +26FB0DDEF3E3AED16D6DBC93AD1A12F9F871AB9E73EA13DAD2715E22F7EE5D27 +07BAF6D32302D597E31CB38A205A0D27C6EAE886BF1D7E5EAA911E07DFF9D71007E64F66D92CF3140F3308D35894E690 +8AE3F4737608320BCD4FDC51336EBE8C40056D0ACC85D54A74C30F7087F1128F5021255EF36356EDEF1E789AB23541ED +E46E90AA42DD6E95020E31FA2AFE067DF4C47B2C5B101207DD13A72F56BCB2D66666E42B195EA7A800D27DB4469E198C +5DA74C2C12F022379CB8359F11C465464570B822A7EE86B0426FA116F1B3E294 +6192E98C705F08FD82BFF01315FBD219FC77E47C65F53668E8429FDF7FCC657A +4EC88DC9084B4EA7DCB4AFDF63445CC8B842BC17821D108775FB8FA8DFFEB7F845B32F1C2536FEA4B2E6B8F8526C8FB0 +BBDA1F8A815C6586CFD235653B9E58F9AE3A97F4EBF5945F9EB6CA5C1BFE4FE3 +060BBA81DBD222C312D4925A35B20D102FD77BF921EFB986BD776E9FF372A627 +F320DDB2963E06DCB2068E0BDDA207068EF43608521BD73965E72A86948CE6D53C7C3AE298C781C128E0FEEC2F5A3913 +592BB6BEC2D30AD7BDFEB234F330C243313A4FE96D85BE27B457963574DD851A1255E8D0EA85BC1CDF132F3F3D0D6085 +38E5E20E9A444453A932C0368E8A09048D4E592EB5F4505053223B67A9D80BFBCE2EEC96C4622B2EA9AFF35105F07BAA +31BE3FC6E58EAE2778F96C18E8D79A23C3E0772B53AFC3F68382F7C3823ECE29 +CFBEA2A3468585001CA05D7402C48F59695FF312D294E2CBB3F1700EEFFFF85C +9A712D7FAD46F68B1679B08CE47DE4A58D6AB76BC0ED3842B10CFE8B146AD43F +77320813C638A37D3B6E7A172A1EEBA626E06D8A13F8193A0330921776CC90F7 +20C422A7B35649176A5D3B2CEDA5A64C49ADA6F7774FF014173EC2CA256940BC +81BC110B279FC7FD9F0FD2AB12360E3132F8B066F6D512FB11C93700B651D03F +79097CEDE56399A19038DAE41C0D7840E676CECE7E860FF80F2AA016E1DB4C6E +FC29AB949C97B45DB4344670483D7D38DE4D969DC40B4A2D49D902CD867937F9 +37358C7E2DFFFA7BB794B367C0DAC4474EFE1A2BC14EDC5F3DB3A796BB5C5E00 +FDD7E5E1ED52244B828D6D8E5BB06BB24B5E36EC29485EA25BCB44855168E6EE +DC97CD3B94036A1877AF836CBC6EEFFEF7A728119857787271B922316F36ACF4 +D947681EC3D77CA6DEF28647D6395E0334386C7BCBD60C24148A3299A08B25B2 +DC95208BC6206A7F1F388933BA89920E559BC02B57124A4C7AF4E3F150AC6909 +E399ACC6D617B0C84F0CCD3B2E017684971761A0E3998DFDD1212D1B3AFC833B +7F28B85A66B4D1D3C56388C89E6AFF5F15F62EC43E1A0114B6EEF77B80E61A22 +50B5825CB4A97CC8ED457F3851370723441583E6060BF5FCC707870DFCEE297F +DD8EB05EBC7D00585DAB70C7083C3EC1C688F6D638D663DB1A3B32B7DEDC8E8E +5D7344AE669170A120B65D622B1EA1B774C391B4BF467862771CD187EAA2B526 +7031F01CD763974734B95E3B466403C2032FCEB45A2EDC9B5E65B5E122C0CC8E +91A9C77CE9C7BA309244ABB7685FEFD85EEC25416B166FEBF0E914C345BDE2E9 +56B2CD788B62B4D69D7BE317444D1C49B098124FF2728129FDEAEE6C802F68A7 +5070A127707CE7707265DBD50746D9BF98D5125B9EF57EE4687073EA06C329B0 +23AE7B3F7F0C37D08E80182E1689BCDA9DFBC4D73F9AC2AC0064A9DA656E87E3 +6018F724D158F64FD3AFD2D6FB1F45768DBBF8527292621B0C1E821DFEA601B1 +F337DD4907C18F55814A3733230988C6AACF4BB1FFBC34E83B0EE38EA7DD69EF +6729CF64062453E9F258A2D57D5EA7ACC316E9D90A8DB3E0BCB8B945947C6C21 +DF3755632B2ED4E5F77AED01F656F075043A2B7AD5D1186D959BCEEAD09C745A +784327D41235A105990E4698CCC45D7AEECC460011D045BA54234244466F5C47 +2ECC93294BD18252B777A1859CD4E2C77BF8EE590BDC4D97D9EC516D85108889 +84AA6F4A08EE665F3DFC9F58CA2E3FC1DF0F476AF8818031C6FE4A984B59AFC1 +A58DD957933CDF5F04FBAB6B5C71E6F8925B8BE383743752D720848C297E0DF0 +B9460B6133D8C231E13D6697555D10D3EB5E2758C549846BC7E5421A016D8D25 +B72A12B23AEA00362D758E1E2C829487A36A996D1F0030ACA4648912C98553A8 +EA9E2AFED722717FE35EB292CA54ABDB4140093DE8E86F72AE01C22D99F9CF40 +5C4EE54D4273A76B7268231D7B6CC4B7EA6E8D2699B263C44A472AD2AF434BDA +4D62CFCBFA3638E24DDC5FC6BC0CC45963B142027A5E44A6669590F5CE590BA0 +1D282D45D1805BDB996E066807052FB7235A8E4C3EC6C440C5B576B3D32BFE4C +4073AD510F89F3A95F73872D52B04000740F7DD52D3F6F56943071AEC41E26C4 +D527E0982438FDFE3C2C5EC8039EB97D4A7FFC7F2B13EDD0CCBB8B439B70ABD5 +E1DB0AF7B85889C917E4BA66ADF3DD832BC774B5C9531A17B3FDC35CCFAF2F9C +5E631C5D400A99C7A3CC1456E912C3325C646428C9156DDC51D24809213EBABC +9089344688AF4D740062963EA35B89FB71D9ABDB6E8D400551AABCA750F78B3E +A33596A074901E992109EE10E8E27A7F6669AA9024701E68446C6D46A2E1B07D +76B97DD16853426AC75B14100453207C1725F0D78AF315FCA8FBED5C7BCC2D44 +E90409F8CE4940EA67B943E0848265BDA8648E07865C2054716CC8B03556E312 +2577637463D510AA827AF03E2943A78AB18784B63E0EC17C2C5B6762511371C5 +050D84D9BB5D04DD2674542872E77A065016D0F2D8582B1C1CB8178CEEC3AE53 +98B127524AB0258075E20A5ACC08B94FAE31E87E402B49EA2172A6DDB3F0E991 +B754EA3DDBCB5173158E57C6BEB62B62ABAF239A3CC22543F6A80BC2BC1834D9 +100FC4F5286A31E4B83517E6076D3F3B834DB0FD9CB4234212171367A9BBDAB8 +836A9869AD8DD0AF53480BC2F39290438ED63F0F6C0376859F75E7D865F9E555 +55FACDEB9C3276942B02B400F51BFF4A37948EE541242E7491CFC4D72AC18726 +F3EC80C3433F722969AC3328771379D19047A12793FDD007F07F41E3F5C8E5FC +70753EC988773789983F9D6F2597A4101054E4DFFAC201485D572F7D726744A1 +4F8E927318CEE32A75134EC9F480D402550B8260EA043CDE51CB3D262DF125E0 +EE087504CD1AB9631F3909C6D60A57E5C759320B377AD47EE73883292B98E6DC +418C931303452A58352F0EEDB9C4CEF22C0464F51040DC30B5FDB81249303626 +676B238AEA7798E4830A801B9A80C378B181A3D63AD737106A5CF8E4EBFC61C6 +2B9D24BD81E95BD9CB4736257808DA32F7B8BC88A72CFCB4DD0AECBE9DA8AD2E +B7D705574C3F1D5537065F63AE2268465437773EE896D204835900C3938D4AE8 +725FB4701EC3A2D25E46935760F4F50E3339D1B0291A602573AC53CEF95DC85E +13B05A6904D3BED30EA84484E33404A63B69CFD862CB4F3912A72FA0ACBBC611 +889F9AB8B3B0FBD7C1B0EB607C7ACE0F20FDBDE81399A2D9CF1D46E6A88F53C8 +0040A2C446CC985C44FB1D99DAB13258CD1CEF6BA5F749F84334FEACABE335E4 +A1657A3F2BBC3DF62C40CC03EA0721AA574D489E77CAA27CFD3A8A627CB923A3 +1388B81F9706A85809088778C42CDE23FAA9EAD0C2CFEB9B967589E90BDD00EC +0EDD657448C00B5FCF5046F226BA492297F177768A1387DA43F864A90F1F1358 +3A5A47B50BF72FBF84F86BC6332EB6270EB6BA20C24092F3D0B54B6C3B6AE637 +A25D8310CA1B07153858F34125D267A12D97B4DB528794AE87372F637BEAA9F0 +FCCFF2857D53F58DD24DEE5193B8613C9CACC924CBD4F33DADA772B3C2A0AF75 +A115C75BBF955E1F062E6DBEC171D8837BB6756F30E75818930AB776F80FC81E +95083E751A4780170D8FAFEAAF96DF2E62102402024D4915FF6FA73E1CD9F0D5 +980225891E9215A82BFEF6D3DB867D7C05F11575EBB8AED653E1C088A7294391 +637160DA818D35774DDD0C375A04D6E0C7F98976FFBD8FFE39FC00E449523D89 +FF74098CF07EDFD4004467A7CEC8C8115DFE3D098F2C711882C3F13D6342BF46 +CF6E8EBD58DD777682BB9F674B419C6C8D68F5B2388C0486753717D213431E5F +5A9BA50793C6EAA464ADB00910B896F90C548DAB18A45F434436792A56F988CC +9FE1F19F8DC290BCB6B99490901D9E73D10A6EE2D1AA1A253297D66D05A08A19 +CDD197057D7B347FF474B58D838CAF614D392E8DED92B01B8C2AE16F79183A8C +DCFD8DC6D58663F0CB1285C49ABC501B13209425AF7436DC66B4D6F0529D09DA +F8956D6BACDA1F294222DDE8E28C6C791A77FF206286C648AA659149B247744A +C494E4123788BF65E95CC39C2F9BEA0C78BA2105D40689F3E7340FEECE0B5B94 +5677786C1222C825BEB177E8E0C64D9B7909717E278C90FAEC70514B7034B5A3 +4575A4397F19DCDEB0C7BB67819F257F6F2B5A53E7D9E08F9F68ED7D854175B4 +29EC9B87DD201CCCFDD32AC67C0212A4C5E45C8188DFBBE97AFF531FDBD1BBA9 +36676541800B391DF20F3A4B4A3DCAE018D85441A93B44F984D2EEB334FD5EDC +278D8E83B662C96C69BE962E271CCD6FDAEB54F563C47997A53AD6960E8C182A +5921F8F8D961B45657FB9965AFF8A567606780C336B42EDA1959F40CD57C1803 +5AD31697C382622CFD185CC2C4F44D6DB1BAA60496AF0AEFDEB50CB0A5CF2EDA +307CBE4B2460EE096CCF772B0CA56D645CA6C5EAE31FFE0C556ACF31DDE6167D +AE86EB56FF82199331F537BD7FF0CE23422EB046DA9C1D0B2A7C813A4D4A9581 +D5DDF54FF56E597AD788239811C57FB4DCCDDEB317F6BC9559040825072E3FD7 +35EFA98E7357B81EB5C7F56DD7B2D1A483218BCE2907EED0CE4425C99288A058 +0410EC96551233A745EAC2FA1BE834FEADCB68B9845F9E0512DFFEE6FE353DCB +7E39E6D875FFB17AC2C5F74A3F44DFB5063E5510712B63E8BA7E083292F3DB7B +C83A67EC31B70AE70CBAC65E07EB69BF311889F5FD246B0D1588CE1A28AE5050 +C6FCE1BAF6D3CA19DEACD9987A1C01D9D519B65291F626AB44E1E269E9056BE8 +1CDDAAFCE3C5A993B3C3652690429C942A318C973C691039AB876ADE2074BD9D +A241551F6F3043409C30923BF84CAED8713D817B6F41B2AC9C0119C66D30DA41 +980C89F97CDB118F001B761D653C2E11A794E7ADB7F16008FC05F0A56035BF1C +884FE309C42B674A2470163D701AF14C3D30ADF08666C760F9F3C34F1680441A +FB1FB9F2BA799C8DD5DAFFB1AC15DC46FAF478D46FDF9E12E7088DC77A422BF9 +DA01C3CDB758913DE16155BFDD65C65409810EC8E9867CEC02BCFD72E2B950D1 +7534A560B93845A636858A8B28ED85A3ABB2AC4C41A5CD3165F25D24F24F3939 +2DF741FA05AD1B9A37BD8C4FDD2BEB700EF725453E18B7759C4794A5B7EDE8EB +43929E8F10B77E268830C7177D74BFDB66EF6B9905FB29431C84497CBD65F6D1 +02E44D1195FBD103955697C717DD56FA528F1CF5070A8F8E18762DCCEDC3A962 +8E87CDBD5F3C32DAFF141E319067AD16C9E21BA40D2415A170D18F52E5A62D22 +D486356DF83EBCF1F1640E92691E5AE4CCE3E152C220AE442DC0A775F6947AD6 +1077A1B9328DB998042D2ADF38AD0106ADF46A77F32355754E452FBC0A469098 +7B74AA4B2FAB2DC0EAD74D69C704AD38EEE36CC2D8AB2502EE343DA30196553F +6740BA2FFFD10FDE150A5201C6CF7E1D9769F14F97B98862262D2635218CEF29 +885DD977C1E12CCE8D6AD357B92FC6F63F83F05F5B86F394B6399966E61893CF +64F67ED26DACF20A9E4A7A9EFA72FE7240A380E541B4002D73CF00B0ADC7B19A +DFEDE2DD576074FED8F73B02AE0210B0AA879A87F6D932271E8813DDC76AC77D +CE1AF48A5FFED24CC740C6F64E91C3685D728EC69C7F0688405AD4E99E634AED +CD63A5B50A65986A911CA3B3E1B7F9C771B01196ADAAD7C8EC6260210BC29B4E +58EE98F41F78055175035D5CDDD21BED4053590625104B36413BAF3ADDD8229A +959B154EF0AACC4F774C19638B44B66371DFE6EF1DF052E496A661DA59FE05FD +E335E0998DCF0E837E063681CFCDE4F8DDBF27AA6A8A35747CBF9C228DBAB702 +C49EEDB1E6C01D25EB8BAD188F037F19359E446D3A8F48B1C7E23E436DF1AE45 +DCC19EEE6456B084EA5BCA8F8A4AD9C47172B99BCC6169061AF41279B404238E +A8C973DC0B2F166735BEEC99A3ED20F85880B00510A45421C0F1D717BBF9A156 +9B4D7E9E4DB69842677E2B6A9F213AA57F185B20DAB654EC67FF271E9487ED60 +5DC7950E2C5BE03B8258B71CEC2058BF56828EFB9C4225B1EADD2FFDF0664386 +F2D860D71D3E42E7F72955A0CE11D61F2C90CE472CFD1D31ECAC2C8A509B50FE +ED2C41030278699235A3AC77C0B6319802ACC027CD8309856165AD00F0DAE4D9 +1BF2E2829A3BFECE4ECF1CCC72CE6AAE2B56B452518BF3C9B17C8F8256AE928A +B969D1A53D4BD1A8F69155289C00C125AEE6C9E2F90AB25303ADD505802398C3 +ECACAEF175C463BE8453B2A066066E04889F7F0DFEC946395B978D6D4952AA2E +8ADA7555CF7C4CE737C9BA757551AAEDD627384602855A0F1D821DE5842ADE21 +3D1B18573858D2D0A8CB9B49DA0233D2842EB9F112BC770EE2F5A42F5EFD7590 +C3DAAB1F580B1362D2EC15A2BDEEAA4C896DD70BACDF0493ACB2FC8989EF0D2D +23105727BC6574EE976182161CF1771D74593A7996C46073DD67FD33C9EC2CD7 +260D8C270A2E1D2E7B2D27E95A67F8B055FB949EE0BA3F6633F6315F9452CB7B +01EF784BD2C68C6F614DDEA3CA071E9198371B9E447CEFCA13FCF1D55FBCB43F +137A61AA31C309B62554466772540A3E2D8AC39D355802FEB0B4774A4BAE1CFC +D0D1424ACC1DD84BB0F465527C5695BF51C5927A0D4B4E0C5618E4B6BD122997 +A855D26D665DC9F0330E18126D4DA2B8E9E3E19B759B8156E4754C4E857DBB64 +A724138E61049B6D8AB6E7184D1295FB9A69BF07B532DD0B3FDC023AB9A5FC82 +E2847126E66A64F7EA28127387748645E177076F10484C4CA45DE5B3EA7E9D6F +D76858E8B9BF7F2C0174FD09DF321E94679B48479CD0D587F54E3679553B619B +36800839D131F70EE2068F96BB02643C7F426BEFAAF5856257972D8851D6E29C +8B624C420FD61C8BC1E52A5CFAD5266E2D18C4FD5FF43DBF78C7A8226DEF6639 +AABC2B1A9B712DB66927C905BDEF2BA2ADCEEFE724AAF1632F31E39472676714 +95218D5732BA5EBF6DEBAD1E6FA555E29984A7BE46E330BC20C37E70488C0444 +3773E0A7C8D3414CC82B5AAE824CF8642D2EF7B4E43D3E83121B16965A64B258 +C42B0AB5D4BAB1492075DF0DE7F1FB50B456B051C8F6828CB065231BA26D7553 +19556D3678712A5A4410B6BF8DBAC5FBAE150EA913C88D2B665F5E9368F624EC +DB36DBB87E90F7E634D75C7F1D805D0174682EF9735947C093AD71B1DD1D4CD8 +E2E65BC8940DD65A3667E6C97281288529DFE74FCFA2A81ECC380CA4B0205A9D +3124EC9C34FC420B6CF558EFC6F26BD50F68C7BA05A955B70392A2B70FB4D846 +84F1491142661D310717A0BD502A4C4F80E6899B1C87FDC299F7B36461C4ABBB +E8F2ABEAD6634B4F25394945E5A872B88A3290F2AF608098FAD12813F957F08D +11DD782EF77044201D868480D4E214DB4F3444B287CDF220794248813D3976D8 +186C13A3ECBEF66EF22C274C5BF70C69E983344ECB87CCE81D70BD8377E3F9FC +5794C3EFDF643B966DEC9D4BD7346A21B50151E5D6F93C6128F254619D3E0E3E +E826D3CC27F4B6871D9F673C8BEE923C65C402C9796DC5DD97421A8DF41714F5 +5D8FABA6A841153495CBC26BC1E1028E79A80968B21D3D9C8741C52326C6D984 +522A8066B98D192BC0B382E63FA78BFA13E269017FD9D45654C4CC5C2CBC44DA +4016C5AA79A9BC220B75DB3A567E96BE42187F16DA68978FB72372162A26B75F +3E06036DE65F7B1939330F814D421C65CF554D96F51EEA6E234A9D6134FDAEBE +9F1D109F1F2EA1B61165B37CF06DDB639DC5399910C32AEF018F13B2A2588AC4 +9E03C05A4755ACEDD423F519C0A5BDE768A5E31A1D838E4291644DBCA13A5EAC +BAC85AD6C0AC38B1A2310B400B01C4123B2CFDC538970EFBFB7FA163E782A511 +302582B243190740D35720296CC39677D8BD01D3CC64FF973AFD6E1F263B10D6 +156F82DEFA0F67028A1F7991AF6B60E687906AFEA924DBC7101B39FC9A552D3A +3404FB2E9E26EA75FC0528448E5B485DC778C251E9A3CE184F9D40F14EC6A9C3 +8276A6D8AEAF0E03390D8E3CD9D7354278C6160F962676F34CB8B6CE28078885 +D8B1EEF27BBDF1969FAF22867AA6C279731EDF53EF04FF3B98F43694B4592343 +F2222B0270158E747AEC5EAA6B089A65226215493BE87FB91A3EAFC90A372687 +1AB91DD2BE17F42854A07C9F38E695AA1E25522BFAEFE14F29F290AE2C71D922 +1E1508CBCE833DB8C6646AC9AAF1887B810AB665D7F977EB9E58E93D019876F9 +86244E8C0ED7F76958253EFB2CAB0DCCD29CB9938A782AFC750B2DBFA30A6E86 +8F03E504FD67759F56654362A03D30EBA832906C707DE366D2805597B8AEB714 +C34E85BB66E31BCE7D67C01D798B6A7677DDE29E90C6C6C804D62BBBDB528AED +75C3DFB504201558CFFE18747DE040C107352B1B948BDBE078B3F1424391BE12 +28AE60B66E1DC10672C19F3BEBB3F1E8577572FD369C4222ABF86AFCD1FCD872 +BE7E570DDB7FBC182318B9E75E1A9E46608A8EE7F7A0F7F582447C0A069300D3 +9585AC78D3A0A7F0D40F9627C036050CF4BDA47434C0A2859F39414B633A8440 +9C26270AA00F380CEE6F3A0106AF660632A6958CBB74542EC180A1FFC6C446AB +5C7E8D9DB28D6F75F018C1D97D8C5CC4001E6EAA9047B93FE68AC80627CBBEF9 +5514AC7A222CF0E307D0B6005A925B48BDE8DEA13855927DA5283D50CA891E01 +CD7F74788986AE6B3A49BE66C9BCB944DDE8673803C4BDE9616B711BF2B3E026 +ED04B459CE1BA6ED357A4CF10415D1AC1894048018390349F046B4CBD8E5EEC2 +360C271A88E83F0CBE5BED38165D4E2843042DAB6A432FC24D284B15D2DAF2E9 +FF75CB77B9D843B404427717DF7FEFEB334093543CB484C5D45CE3A948D7E566 +CB06B4D92F347F51F10F546C189E701947C36BA28E29DB610F2F412714563BC2 +E3053DF9589F15FEDD58194699A3D2E8770FAED7421DFE95C9EE190D96A56F0E +08FBBAFFFAAD0161987AEEBED582AC906D969CE4DA8A56700DD9CDA8904222A9 +4BBD08F49F4A595F4CE5B624E0392F76D5B581872399799B424D7030B28949E4 +583702FFC046B709D75FB8BA08BDA5FBE20173310B85D5A211B89F1CDAFC215F +A1661573042C07AEF4D22D69F7D06C86870B9ABF412B1E8158D955CD7DE6DAC6 +2602A0A40189C956B8031B7160175662EEF54988778743578BBF458E044E0A89 +1D4449BC3803A85DBA19F3C15941299E19DCA38F79FDEB225CA05E7C4C3D271A +0339877572DEE3392179798AB95C1F49B8078476CA03E0D060C021B17C23E7C1 +63316028E9F85B0ADECEA6CAA05131FA252A2ED16816D8FA084B30167F29CF66 +763A74DC68F8CE7CFE6A6CA58A88A3991FCB6BE92142196D9B045EC2EE146A4D +F7692816D9577DCFBC3180454D3538C670EE69A1FB9B40058A259A1CADAD4C69 +3D0BC36BE57CF8D227E5D0451170B612878701140AB1A3FC0A1F3568F0EFE9B8 +0A62EB499FC0926B90E59358BF0E3136E7D1CAEE53306FE9354F70A48E4A9D18 +DA814249505412CBBD8C3E318E6A62F03ED89C505B911089DADD57E5F6A0F379 +CBE56810D848B879FD7FB26FED0E67F6C3D989C5F0A562CD83442B16B69CE534 +942F500D0A7DBE1DAA3FE8EE8C1291485948A1AA6E091F379F6F5E2AF5F9C73F +EACE2ACABA9DA57A3811BE7C177E2FA931B3B83EC95CA64E7238D16FBEFEAD2C +A0D63EAB75E08F2B49A451F128B25425D37C3338B862190B6566A49418CAA785 +7FE6880200405E447F6C0F6A01C3074A66D2B47E185BBB0D5E29AEF072A01DD7 +63A777F286A66A094AF1FFBC7EAA8161D37BCF49EF55F880C72C6906D8CD4F8B +52703BA0637F01DFD4AF315BFA23CD41E52A155C35B9739BB57777DBC69CA455 +3439F58AB810EC86F133A1206BD8BE84138CA2E70E4F96D8D24FC052B8EDB702 +D403A5A137735635F68254E6FEAD77B4F20A2756FD42E1F42A0583FD3D10C2B6 +55D45AA25091B4638EF39AE9F3239DB441F17F9E138410C3C138E005ECEF49BF +05C0589687E28E7D6614245F43B1B1E92421331C51D58B70C8778581041CE512 +68D2C4D636160A0804902E166AD991D90987956D33EE3A8382F882E5A04087E4 +2720A34E50C1D90C829BCC5E666E79B8C9EB3CCDBE1C234EB345533A3A53F910 +F064F519DB53109C4E086490462B587133B69A9FA417ADAD3ED1C97D85567838 +7882B15818EAA42ACC3342C79841EF358524E49BA64EBB00AB574219BD369C77 +0D819F1BCD04911D681633347D817A7E83887C3C037CE83330E9D3A2A97587BC +FD1048C43DF4F8EBF2E2D03A76C4AA37A74FCD64235AEAA861E5187041FC758B +F62D4A41A9BBA2653292A9F9252C34D408F6DCF7C31E0556C36F59119C77B685 +F83EE4DD3E93171DFB178BAA7D05ECEC54A65BA1DE7AA0B08D03BF59F9677568 +4AE3EC337D3D5900D86998462C1AF19F056D16EDCDC135AF75F34E49B81AE48D +24C1A8DC4730288BE4C3CFB2A7E71022B71AE5DD68A1B6E1CC36534183F9E797 +A9EBDBB7301E090C9C2629F8D854398C90E8052F482503851AACDACFF6F0070B +4F5A864D898A77E02A8F181077751016D811B837DA3F33A2067EAE72A41EDD75 +A2D4B8D51FA8E1148A053C39005B0B8A9F0C5702A64750AC64BF353C4338F6E1 +C659ED65157E6FFBE4B956DFB95FBAEF1745F0314A9729179E92B3F1162B9495 +BC17D9D85193BDCA5FA50ABA581221BE6F5E8AAFAB2D90646AF6ABC501E60662 +E517B72076E211C90114FB9127B6CA57DE995355916602F3A50A0B61E6CACDA5 +1C0E79317116FB017B19A47018B2F8EF078A8F6A51E49929E08D27E2ED31D3AB +E0502C15BF9D459326841DAB7617B58F482FA502CA5FB719D06CEBFC73FB5495 +016187A2D8AA8BBB15DC34E3920930D96B372607D842624405EEAFC5A641FA5F +FA34C64218ED6CFB15307044B1C38123C939EB12A239E0C2C198D47B8799B99A +5AC59ADA228C1E069CF9D106D3171465B150BBC004D138D451517473FB2E946F +C47F6CD3C8E4C373C43E448F3EC791956DEE7F06EDC3EAABFD96681DBF7CC160 +82EB8353D5F481D0E3F3C1BE42EB6F6F80A452412C0C3C9FD951A1942322E8E3 +DF8CC0F85A18BEEFC613237F7D112DF23F2214E091F6C100A47093541F6A1920 +0DCBC7478CD07868E1C10AD3626AC324230F328E4ED59C0F4CE98758C407C24B +AB1D1526799185CE4168A2BB0E98F4CEE8843EC95ADAFE4E00A369461317183D +47FE38F4C59F6BD043D89A6A799864971A65370CB5AC7282D7169EBF31074753 +CB253FB6096DB3209054C21322A28E742B616BBA97B972043E4FF210A938B994 +4FE2CDCB89E9DB6A98A6A7CA7374616B54517FE6C62867662727715A8D0995C0 +45074540C5C990A33E7C3B7ECDD685829FF5ACAE75972F9F2E04CA1C2AB2D86F +4D1A95CE69460FBBAF8F3ECF7C211F918D7AF8F99506E96D95C9091BEB9C0519 +8D8501E5088AC8709AAEE23C83D6E9BADE67F8504A6BDE957AC244E2CF650041 +3DE31455D33AD144D10914036D272A91D6D2EFE52BF413A5C3B9BFA171AECC64 +2B02071E56B85BA4D231C18B9BCCD660B7C51ABAE0CECC4DC52A565360E1A42B +DF515620894AE9456652FF296426255EF9929D011990CF2839B41F450D063597 +015075989DE322CB41085D8DD967C1D1589B478F6A45426636E792940317A384 +29E64270826B9B1573F685493E91DD87A3AD9BF2D10D4E895022EBF7A4760C73 +F11566B2E6F30ED9B78E3B344668ACE41659796578FACE69C79B16E3D6494C31 +130C0F515C26A04B6FAACE34268AB974F20DD4EF15054C0A15E34013CBBAF9CF +2B11A8D043F717A2BD6A5F56715BA3C571FED25161591749334F32DA236E5856 +F03B8C9B647A4104BDEB577AAB033781CA2A8EACA243163D5A050BF874396559 +334AB0839A8680289F1F297273467613CFCD834446DA52D7A2BA146EFDA4CD8E +C05E250AF0D5E82E417DD8394B8062DBBBC3C07E477A847F311D0CAC912EF9BB +2345D436F59B669297DE8E80BD27FEA98A1DCE61AD4EEF729CDFAC5345EAB8A7 +D7DA143A0C5934D50F09EFF485F70D3C71C5BD5B5B57C4DC7F3414069432F24C +1DF4BABBE29ADF834701C36A850F2EFA8DF92D3E28003F7760A87AB9D8BD91EB +71E183330B18FBCF8ED091F2488D3D29B98258C89B6019DCE7C79F8CF5BDCA92 +EEBB58DE2561795984E933CBD2B4C4BD8EAFEF97C91539917370F7E9A2240265 +D62E7BF1A7C56653AAC132838C360B2D0DFC5BC800C726159FABD1263B7F19EC +12104E12AE577D5437023F945C476FD1654FF9826244F3692C8C186A79566106 +3805C3704EE0C994FCEAF24CCD9A45CDDF6F2DF60F63D6665742E74880804E1F +CCF7B9B5D0C6CFEBE487938ACFAE89884A6CAD16A51515EBA9FF272DC9A57DEC +FD4403D41887E6CAE505C2AD9631AD3779F95BF70137B61E9901B3B7058C7DB1 +EE31F0FC516D508AF085BB6F1CB0FDF73CC0BBD7F5EA9891E0D87D7832E4AB1F +A1C5A8391F4132A560CA4693DCF8104CB7F5888F33C7D6586729FD65F57D5158 +F92194BD8136F05EA48843C514F9465A9D0D7925A364D40B4853C666F726CEE5 +3DE0E5D07EC75D4FC5B51AF56A371643F206B213263503B9DBE0D3EEE71D8B37 +E904F9A524C9541AC4CF7195AA3A8D8265BE1B93890D8549F2C9ACE4731733A9 +4D1B906082ED3E8A59368BACFACEC1886EC52451EC8FF4C444F26DD668C101B9 +840686B283654FADB08AF6F9E439359B6D41ACFC068845195769033D6618A823 +8AF622CB10FFD2C85F113EF81F1FF542DD4435BA8ED93CEEBEC1E3A16AE0CE88 diff --git a/core/furi/memmgr_heap.c b/core/furi/memmgr_heap.c index 8e57914e..3fe7822c 100644 --- a/core/furi/memmgr_heap.c +++ b/core/furi/memmgr_heap.c @@ -387,6 +387,7 @@ void vPortFree(void* pv) { /* Add this block to the list of free blocks. */ xFreeBytesRemaining += pxLink->xBlockSize; traceFREE(pv, pxLink->xBlockSize); + memset(pv, 0, pxLink->xBlockSize - xHeapStructSize); prvInsertBlockIntoFreeList(((BlockLink_t*)pxLink)); } (void)xTaskResumeAll(); diff --git a/debug/PyCortexMDebug/cmdebug/svd_gdb.py b/debug/PyCortexMDebug/cmdebug/svd_gdb.py index 3acd014f..2629a3ce 100755 --- a/debug/PyCortexMDebug/cmdebug/svd_gdb.py +++ b/debug/PyCortexMDebug/cmdebug/svd_gdb.py @@ -22,6 +22,7 @@ import math import sys import struct import pkg_resources +import fnmatch from .svd import SVDFile @@ -101,13 +102,6 @@ class LoadSVD(gdb.Command): raise gdb.GdbError("Could not load SVD file {} : {}...\n".format(f, e)) -if __name__ == "__main__": - # This will also get executed by GDB - - # Create just the svd_load command - LoadSVD() - - class SVD(gdb.Command): """The CMSIS SVD (System View Description) inspector command @@ -321,13 +315,19 @@ class SVD(gdb.Command): container = peripheral.name + " > " + register.name self._print_register_fields(container, form, register) - else: - gdb.write( - "Register/cluster {} in peripheral {} does not exist!\n".format( - s[1], peripheral.name + found = False + for key in fnmatch.filter(peripheral.registers.keys(), s[1]): + register = peripheral.registers[key] + container = peripheral.name + " > " + register.name + self._print_register_fields(container, form, register) + found = True + if not found: + gdb.write( + "Register/cluster {} in peripheral {} does not exist!\n".format( + s[1], peripheral.name + ) ) - ) return if len(s) == 3: diff --git a/debug/STM32WB55_CM4.svd b/debug/STM32WB55_CM4.svd index 380e4c3d..9011748d 100755 --- a/debug/STM32WB55_CM4.svd +++ b/debug/STM32WB55_CM4.svd @@ -1,37004 +1,15 @@ - - - - STM32WB55_CM4 - 1.8 - STM32WB55_CM4 - - CM4 - r0p1 - little - true - true - 4 - false - - - - 8 - - 32 - - 0x20 - 0x0 - 0xFFFFFFFF - - - DMA1 - Direct memory access controller - DMA - 0x40020000 - - 0x0 - 0x400 - registers - - - DMA1_Channel1 - DMA1 Channel1 global interrupt - 11 - - - DMA1_Channel2 - DMA1 Channel2 global interrupt - 12 - - - DMA1_Channel3 - DMA1 Channel3 interrupt - 13 - - - DMA1_Channel4 - DMA1 Channel4 interrupt - 14 - - - DMA1_Channel5 - DMA1 Channel5 interrupt - 15 - - - DMA1_Channel6 - DMA1 Channel6 interrupt - 16 - - - DMA1_Channel7 - DMA1 Channel 7 interrupt - 17 - - - - ISR - ISR - interrupt status register - 0x0 - 0x20 - read-only - 0x00000000 - - - TEIF7 - Channel x transfer error flag (x = 1 ..7) - 27 - 1 - - - HTIF7 - Channel x half transfer flag (x = 1 ..7) - 26 - 1 - - - TCIF7 - Channel x transfer complete flag (x = 1 ..7) - 25 - 1 - - - GIF7 - Channel x global interrupt flag (x = 1 ..7) - 24 - 1 - - - TEIF6 - Channel x transfer error flag (x = 1 ..7) - 23 - 1 - - - HTIF6 - Channel x half transfer flag (x = 1 ..7) - 22 - 1 - - - TCIF6 - Channel x transfer complete flag (x = 1 ..7) - 21 - 1 - - - GIF6 - Channel x global interrupt flag (x = 1 ..7) - 20 - 1 - - - TEIF5 - Channel x transfer error flag (x = 1 ..7) - 19 - 1 - - - HTIF5 - Channel x half transfer flag (x = 1 ..7) - 18 - 1 - - - TCIF5 - Channel x transfer complete flag (x = 1 ..7) - 17 - 1 - - - GIF5 - Channel x global interrupt flag (x = 1 ..7) - 16 - 1 - - - TEIF4 - Channel x transfer error flag (x = 1 ..7) - 15 - 1 - - - HTIF4 - Channel x half transfer flag (x = 1 ..7) - 14 - 1 - - - TCIF4 - Channel x transfer complete flag (x = 1 ..7) - 13 - 1 - - - GIF4 - Channel x global interrupt flag (x = 1 ..7) - 12 - 1 - - - TEIF3 - Channel x transfer error flag (x = 1 ..7) - 11 - 1 - - - HTIF3 - Channel x half transfer flag (x = 1 ..7) - 10 - 1 - - - TCIF3 - Channel x transfer complete flag (x = 1 ..7) - 9 - 1 - - - GIF3 - Channel x global interrupt flag (x = 1 ..7) - 8 - 1 - - - TEIF2 - Channel x transfer error flag (x = 1 ..7) - 7 - 1 - - - HTIF2 - Channel x half transfer flag (x = 1 ..7) - 6 - 1 - - - TCIF2 - Channel x transfer complete flag (x = 1 ..7) - 5 - 1 - - - GIF2 - Channel x global interrupt flag (x = 1 ..7) - 4 - 1 - - - TEIF1 - Channel x transfer error flag (x = 1 ..7) - 3 - 1 - - - HTIF1 - Channel x half transfer flag (x = 1 ..7) - 2 - 1 - - - TCIF1 - Channel x transfer complete flag (x = 1 ..7) - 1 - 1 - - - GIF1 - Channel x global interrupt flag (x = 1 ..7) - 0 - 1 - - - - - IFCR - IFCR - interrupt flag clear register - 0x4 - 0x20 - write-only - 0x00000000 - - - CTEIF7 - Channel x transfer error clear (x = 1 ..7) - 27 - 1 - - - CHTIF7 - Channel x half transfer clear (x = 1 ..7) - 26 - 1 - - - CTCIF7 - Channel x transfer complete clear (x = 1 ..7) - 25 - 1 - - - CGIF7 - Channel x global interrupt clear (x = 1 ..7) - 24 - 1 - - - CTEIF6 - Channel x transfer error clear (x = 1 ..7) - 23 - 1 - - - CHTIF6 - Channel x half transfer clear (x = 1 ..7) - 22 - 1 - - - CTCIF6 - Channel x transfer complete clear (x = 1 ..7) - 21 - 1 - - - CGIF6 - Channel x global interrupt clear (x = 1 ..7) - 20 - 1 - - - CTEIF5 - Channel x transfer error clear (x = 1 ..7) - 19 - 1 - - - CHTIF5 - Channel x half transfer clear (x = 1 ..7) - 18 - 1 - - - CTCIF5 - Channel x transfer complete clear (x = 1 ..7) - 17 - 1 - - - CGIF5 - Channel x global interrupt clear (x = 1 ..7) - 16 - 1 - - - CTEIF4 - Channel x transfer error clear (x = 1 ..7) - 15 - 1 - - - CHTIF4 - Channel x half transfer clear (x = 1 ..7) - 14 - 1 - - - CTCIF4 - Channel x transfer complete clear (x = 1 ..7) - 13 - 1 - - - CGIF4 - Channel x global interrupt clear (x = 1 ..7) - 12 - 1 - - - CTEIF3 - Channel x transfer error clear (x = 1 ..7) - 11 - 1 - - - CHTIF3 - Channel x half transfer clear (x = 1 ..7) - 10 - 1 - - - CTCIF3 - Channel x transfer complete clear (x = 1 ..7) - 9 - 1 - - - CGIF3 - Channel x global interrupt clear (x = 1 ..7) - 8 - 1 - - - CTEIF2 - Channel x transfer error clear (x = 1 ..7) - 7 - 1 - - - CHTIF2 - Channel x half transfer clear (x = 1 ..7) - 6 - 1 - - - CTCIF2 - Channel x transfer complete clear (x = 1 ..7) - 5 - 1 - - - CGIF2 - Channel x global interrupt clear (x = 1 ..7) - 4 - 1 - - - CTEIF1 - Channel x transfer error clear (x = 1 ..7) - 3 - 1 - - - CHTIF1 - Channel x half transfer clear (x = 1 ..7) - 2 - 1 - - - CTCIF1 - Channel x transfer complete clear (x = 1 ..7) - 1 - 1 - - - CGIF1 - Channel x global interrupt clear (x = 1 ..7) - 0 - 1 - - - - - CCR1 - CCR1 - channel x configuration register - 0x8 - 0x20 - read-write - 0x00000000 - - - MEM2MEM - Memory to memory mode - 14 - 1 - - - PL - Channel priority level - 12 - 2 - - - MSIZE - Memory size - 10 - 2 - - - PSIZE - Peripheral size - 8 - 2 - - - MINC - Memory increment mode - 7 - 1 - - - PINC - Peripheral increment mode - 6 - 1 - - - CIRC - Circular mode - 5 - 1 - - - DIR - Data transfer direction - 4 - 1 - - - TEIE - Transfer error interrupt enable - 3 - 1 - - - HTIE - Half transfer interrupt enable - 2 - 1 - - - TCIE - Transfer complete interrupt enable - 1 - 1 - - - EN - Channel enable - 0 - 1 - - - - - CNDTR1 - CNDTR1 - channel x number of data register - 0xC - 0x20 - read-write - 0x00000000 - - - NDT - Number of data to transfer - 0 - 16 - - - - - CPAR1 - CPAR1 - channel x peripheral address register - 0x10 - 0x20 - read-write - 0x00000000 - - - PA - Peripheral address - 0 - 32 - - - - - CMAR1 - CMAR1 - channel x memory address register - 0x14 - 0x20 - read-write - 0x00000000 - - - MA - Memory address - 0 - 32 - - - - - CCR2 - CCR2 - channel x configuration register - 0x1C - 0x20 - read-write - 0x00000000 - - - MEM2MEM - Memory to memory mode - 14 - 1 - - - PL - Channel priority level - 12 - 2 - - - MSIZE - Memory size - 10 - 2 - - - PSIZE - Peripheral size - 8 - 2 - - - MINC - Memory increment mode - 7 - 1 - - - PINC - Peripheral increment mode - 6 - 1 - - - CIRC - Circular mode - 5 - 1 - - - DIR - Data transfer direction - 4 - 1 - - - TEIE - Transfer error interrupt enable - 3 - 1 - - - HTIE - Half transfer interrupt enable - 2 - 1 - - - TCIE - Transfer complete interrupt enable - 1 - 1 - - - EN - Channel enable - 0 - 1 - - - - - CNDTR2 - CNDTR2 - channel x number of data register - 0x20 - 0x20 - read-write - 0x00000000 - - - NDT - Number of data to transfer - 0 - 16 - - - - - CPAR2 - CPAR2 - channel x peripheral address register - 0x24 - 0x20 - read-write - 0x00000000 - - - PA - Peripheral address - 0 - 32 - - - - - CMAR2 - CMAR2 - channel x memory address register - 0x28 - 0x20 - read-write - 0x00000000 - - - MA - Memory address - 0 - 32 - - - - - CCR3 - CCR3 - channel x configuration register - 0x30 - 0x20 - read-write - 0x00000000 - - - MEM2MEM - Memory to memory mode - 14 - 1 - - - PL - Channel priority level - 12 - 2 - - - MSIZE - Memory size - 10 - 2 - - - PSIZE - Peripheral size - 8 - 2 - - - MINC - Memory increment mode - 7 - 1 - - - PINC - Peripheral increment mode - 6 - 1 - - - CIRC - Circular mode - 5 - 1 - - - DIR - Data transfer direction - 4 - 1 - - - TEIE - Transfer error interrupt enable - 3 - 1 - - - HTIE - Half transfer interrupt enable - 2 - 1 - - - TCIE - Transfer complete interrupt enable - 1 - 1 - - - EN - Channel enable - 0 - 1 - - - - - CNDTR3 - CNDTR3 - channel x number of data register - 0x34 - 0x20 - read-write - 0x00000000 - - - NDT - Number of data to transfer - 0 - 16 - - - - - CPAR3 - CPAR3 - channel x peripheral address register - 0x38 - 0x20 - read-write - 0x00000000 - - - PA - Peripheral address - 0 - 32 - - - - - CMAR3 - CMAR3 - channel x memory address register - 0x3C - 0x20 - read-write - 0x00000000 - - - MA - Memory address - 0 - 32 - - - - - CCR4 - CCR4 - channel x configuration register - 0x44 - 0x20 - read-write - 0x00000000 - - - MEM2MEM - Memory to memory mode - 14 - 1 - - - PL - Channel priority level - 12 - 2 - - - MSIZE - Memory size - 10 - 2 - - - PSIZE - Peripheral size - 8 - 2 - - - MINC - Memory increment mode - 7 - 1 - - - PINC - Peripheral increment mode - 6 - 1 - - - CIRC - Circular mode - 5 - 1 - - - DIR - Data transfer direction - 4 - 1 - - - TEIE - Transfer error interrupt enable - 3 - 1 - - - HTIE - Half transfer interrupt enable - 2 - 1 - - - TCIE - Transfer complete interrupt enable - 1 - 1 - - - EN - Channel enable - 0 - 1 - - - - - CNDTR4 - CNDTR4 - channel x number of data register - 0x48 - 0x20 - read-write - 0x00000000 - - - NDT - Number of data to transfer - 0 - 16 - - - - - CPAR4 - CPAR4 - channel x peripheral address register - 0x4C - 0x20 - read-write - 0x00000000 - - - PA - Peripheral address - 0 - 32 - - - - - CMAR4 - CMAR4 - channel x memory address register - 0x50 - 0x20 - read-write - 0x00000000 - - - MA - Memory address - 0 - 32 - - - - - CCR5 - CCR5 - channel x configuration register - 0x58 - 0x20 - read-write - 0x00000000 - - - MEM2MEM - Memory to memory mode - 14 - 1 - - - PL - Channel priority level - 12 - 2 - - - MSIZE - Memory size - 10 - 2 - - - PSIZE - Peripheral size - 8 - 2 - - - MINC - Memory increment mode - 7 - 1 - - - PINC - Peripheral increment mode - 6 - 1 - - - CIRC - Circular mode - 5 - 1 - - - DIR - Data transfer direction - 4 - 1 - - - TEIE - Transfer error interrupt enable - 3 - 1 - - - HTIE - Half transfer interrupt enable - 2 - 1 - - - TCIE - Transfer complete interrupt enable - 1 - 1 - - - EN - Channel enable - 0 - 1 - - - - - CNDTR5 - CNDTR5 - channel x number of data register - 0x5C - 0x20 - read-write - 0x00000000 - - - NDT - Number of data to transfer - 0 - 16 - - - - - CPAR5 - CPAR5 - channel x peripheral address register - 0x60 - 0x20 - read-write - 0x00000000 - - - PA - Peripheral address - 0 - 32 - - - - - CMAR5 - CMAR5 - channel x memory address register - 0x64 - 0x20 - read-write - 0x00000000 - - - MA - Memory address - 0 - 32 - - - - - CCR6 - CCR6 - channel x configuration register - 0x6C - 0x20 - read-write - 0x00000000 - - - MEM2MEM - Memory to memory mode - 14 - 1 - - - PL - Channel priority level - 12 - 2 - - - MSIZE - Memory size - 10 - 2 - - - PSIZE - Peripheral size - 8 - 2 - - - MINC - Memory increment mode - 7 - 1 - - - PINC - Peripheral increment mode - 6 - 1 - - - CIRC - Circular mode - 5 - 1 - - - DIR - Data transfer direction - 4 - 1 - - - TEIE - Transfer error interrupt enable - 3 - 1 - - - HTIE - Half transfer interrupt enable - 2 - 1 - - - TCIE - Transfer complete interrupt enable - 1 - 1 - - - EN - Channel enable - 0 - 1 - - - - - CNDTR6 - CNDTR6 - channel x number of data register - 0x70 - 0x20 - read-write - 0x00000000 - - - NDT - Number of data to transfer - 0 - 16 - - - - - CPAR6 - CPAR6 - channel x peripheral address register - 0x74 - 0x20 - read-write - 0x00000000 - - - PA - Peripheral address - 0 - 32 - - - - - CMAR6 - CMAR6 - channel x memory address register - 0x78 - 0x20 - read-write - 0x00000000 - - - MA - Memory address - 0 - 32 - - - - - CCR7 - CCR7 - channel x configuration register - 0x80 - 0x20 - read-write - 0x00000000 - - - MEM2MEM - Memory to memory mode - 14 - 1 - - - PL - Channel priority level - 12 - 2 - - - MSIZE - Memory size - 10 - 2 - - - PSIZE - Peripheral size - 8 - 2 - - - MINC - Memory increment mode - 7 - 1 - - - PINC - Peripheral increment mode - 6 - 1 - - - CIRC - Circular mode - 5 - 1 - - - DIR - Data transfer direction - 4 - 1 - - - TEIE - Transfer error interrupt enable - 3 - 1 - - - HTIE - Half transfer interrupt enable - 2 - 1 - - - TCIE - Transfer complete interrupt enable - 1 - 1 - - - EN - Channel enable - 0 - 1 - - - - - CNDTR7 - CNDTR7 - channel x number of data register - 0x84 - 0x20 - read-write - 0x00000000 - - - NDT - Number of data to transfer - 0 - 16 - - - - - CPAR7 - CPAR7 - channel x peripheral address register - 0x88 - 0x20 - read-write - 0x00000000 - - - PA - Peripheral address - 0 - 32 - - - - - CMAR7 - CMAR7 - channel x memory address register - 0x8C - 0x20 - read-write - 0x00000000 - - - MA - Memory address - 0 - 32 - - - - - - - DMA2 - Direct memory access controller - DMA - 0x40020400 - - 0x0 - 0x400 - registers - - - DMA2_CH1 - DMA2 channel 1 interrupt - 55 - - - DMA2_CH2 - DMA2 channel 2 interrupt - 56 - - - DMA2_CH3 - DMA2 channel 3 interrupt - 57 - - - DMA2_CH4 - DMA2 channel 4 interrupt - 58 - - - DMA2_CH5 - DMA2 channel 5 interrupt - 59 - - - DMA2_CH6 - DMA2 channel 6 interrupt - 60 - - - DMA2_CH7 - DMA2 channel 7 interrupt - 61 - - - - ISR - ISR - interrupt status register - 0x0 - 0x20 - read-only - 0x00000000 - - - TEIF7 - Channel x transfer error flag (x = 1 ..7) - 27 - 1 - - - HTIF7 - Channel x half transfer flag (x = 1 ..7) - 26 - 1 - - - TCIF7 - Channel x transfer complete flag (x = 1 ..7) - 25 - 1 - - - GIF7 - Channel x global interrupt flag (x = 1 ..7) - 24 - 1 - - - TEIF6 - Channel x transfer error flag (x = 1 ..7) - 23 - 1 - - - HTIF6 - Channel x half transfer flag (x = 1 ..7) - 22 - 1 - - - TCIF6 - Channel x transfer complete flag (x = 1 ..7) - 21 - 1 - - - GIF6 - Channel x global interrupt flag (x = 1 ..7) - 20 - 1 - - - TEIF5 - Channel x transfer error flag (x = 1 ..7) - 19 - 1 - - - HTIF5 - Channel x half transfer flag (x = 1 ..7) - 18 - 1 - - - TCIF5 - Channel x transfer complete flag (x = 1 ..7) - 17 - 1 - - - GIF5 - Channel x global interrupt flag (x = 1 ..7) - 16 - 1 - - - TEIF4 - Channel x transfer error flag (x = 1 ..7) - 15 - 1 - - - HTIF4 - Channel x half transfer flag (x = 1 ..7) - 14 - 1 - - - TCIF4 - Channel x transfer complete flag (x = 1 ..7) - 13 - 1 - - - GIF4 - Channel x global interrupt flag (x = 1 ..7) - 12 - 1 - - - TEIF3 - Channel x transfer error flag (x = 1 ..7) - 11 - 1 - - - HTIF3 - Channel x half transfer flag (x = 1 ..7) - 10 - 1 - - - TCIF3 - Channel x transfer complete flag (x = 1 ..7) - 9 - 1 - - - GIF3 - Channel x global interrupt flag (x = 1 ..7) - 8 - 1 - - - TEIF2 - Channel x transfer error flag (x = 1 ..7) - 7 - 1 - - - HTIF2 - Channel x half transfer flag (x = 1 ..7) - 6 - 1 - - - TCIF2 - Channel x transfer complete flag (x = 1 ..7) - 5 - 1 - - - GIF2 - Channel x global interrupt flag (x = 1 ..7) - 4 - 1 - - - TEIF1 - Channel x transfer error flag (x = 1 ..7) - 3 - 1 - - - HTIF1 - Channel x half transfer flag (x = 1 ..7) - 2 - 1 - - - TCIF1 - Channel x transfer complete flag (x = 1 ..7) - 1 - 1 - - - GIF1 - Channel x global interrupt flag (x = 1 ..7) - 0 - 1 - - - - - IFCR - IFCR - interrupt flag clear register - 0x4 - 0x20 - write-only - 0x00000000 - - - CTEIF7 - Channel x transfer error clear (x = 1 ..7) - 27 - 1 - - - CHTIF7 - Channel x half transfer clear (x = 1 ..7) - 26 - 1 - - - CTCIF7 - Channel x transfer complete clear (x = 1 ..7) - 25 - 1 - - - CGIF7 - Channel x global interrupt clear (x = 1 ..7) - 24 - 1 - - - CTEIF6 - Channel x transfer error clear (x = 1 ..7) - 23 - 1 - - - CHTIF6 - Channel x half transfer clear (x = 1 ..7) - 22 - 1 - - - CTCIF6 - Channel x transfer complete clear (x = 1 ..7) - 21 - 1 - - - CGIF6 - Channel x global interrupt clear (x = 1 ..7) - 20 - 1 - - - CTEIF5 - Channel x transfer error clear (x = 1 ..7) - 19 - 1 - - - CHTIF5 - Channel x half transfer clear (x = 1 ..7) - 18 - 1 - - - CTCIF5 - Channel x transfer complete clear (x = 1 ..7) - 17 - 1 - - - CGIF5 - Channel x global interrupt clear (x = 1 ..7) - 16 - 1 - - - CTEIF4 - Channel x transfer error clear (x = 1 ..7) - 15 - 1 - - - CHTIF4 - Channel x half transfer clear (x = 1 ..7) - 14 - 1 - - - CTCIF4 - Channel x transfer complete clear (x = 1 ..7) - 13 - 1 - - - CGIF4 - Channel x global interrupt clear (x = 1 ..7) - 12 - 1 - - - CTEIF3 - Channel x transfer error clear (x = 1 ..7) - 11 - 1 - - - CHTIF3 - Channel x half transfer clear (x = 1 ..7) - 10 - 1 - - - CTCIF3 - Channel x transfer complete clear (x = 1 ..7) - 9 - 1 - - - CGIF3 - Channel x global interrupt clear (x = 1 ..7) - 8 - 1 - - - CTEIF2 - Channel x transfer error clear (x = 1 ..7) - 7 - 1 - - - CHTIF2 - Channel x half transfer clear (x = 1 ..7) - 6 - 1 - - - CTCIF2 - Channel x transfer complete clear (x = 1 ..7) - 5 - 1 - - - CGIF2 - Channel x global interrupt clear (x = 1 ..7) - 4 - 1 - - - CTEIF1 - Channel x transfer error clear (x = 1 ..7) - 3 - 1 - - - CHTIF1 - Channel x half transfer clear (x = 1 ..7) - 2 - 1 - - - CTCIF1 - Channel x transfer complete clear (x = 1 ..7) - 1 - 1 - - - CGIF1 - Channel x global interrupt clear (x = 1 ..7) - 0 - 1 - - - - - CCR1 - CCR1 - channel x configuration register - 0x8 - 0x20 - read-write - 0x00000000 - - - MEM2MEM - Memory to memory mode - 14 - 1 - - - PL - Channel priority level - 12 - 2 - - - MSIZE - Memory size - 10 - 2 - - - PSIZE - Peripheral size - 8 - 2 - - - MINC - Memory increment mode - 7 - 1 - - - PINC - Peripheral increment mode - 6 - 1 - - - CIRC - Circular mode - 5 - 1 - - - DIR - Data transfer direction - 4 - 1 - - - TEIE - Transfer error interrupt enable - 3 - 1 - - - HTIE - Half transfer interrupt enable - 2 - 1 - - - TCIE - Transfer complete interrupt enable - 1 - 1 - - - EN - Channel enable - 0 - 1 - - - - - CNDTR1 - CNDTR1 - channel x number of data register - 0xC - 0x20 - read-write - 0x00000000 - - - NDT - Number of data to transfer - 0 - 16 - - - - - CPAR1 - CPAR1 - channel x peripheral address register - 0x10 - 0x20 - read-write - 0x00000000 - - - PA - Peripheral address - 0 - 32 - - - - - CMAR1 - CMAR1 - channel x memory address register - 0x14 - 0x20 - read-write - 0x00000000 - - - MA - Memory address - 0 - 32 - - - - - CCR2 - CCR2 - channel x configuration register - 0x1C - 0x20 - read-write - 0x00000000 - - - MEM2MEM - Memory to memory mode - 14 - 1 - - - PL - Channel priority level - 12 - 2 - - - MSIZE - Memory size - 10 - 2 - - - PSIZE - Peripheral size - 8 - 2 - - - MINC - Memory increment mode - 7 - 1 - - - PINC - Peripheral increment mode - 6 - 1 - - - CIRC - Circular mode - 5 - 1 - - - DIR - Data transfer direction - 4 - 1 - - - TEIE - Transfer error interrupt enable - 3 - 1 - - - HTIE - Half transfer interrupt enable - 2 - 1 - - - TCIE - Transfer complete interrupt enable - 1 - 1 - - - EN - Channel enable - 0 - 1 - - - - - CNDTR2 - CNDTR2 - channel x number of data register - 0x20 - 0x20 - read-write - 0x00000000 - - - NDT - Number of data to transfer - 0 - 16 - - - - - CPAR2 - CPAR2 - channel x peripheral address register - 0x24 - 0x20 - read-write - 0x00000000 - - - PA - Peripheral address - 0 - 32 - - - - - CMAR2 - CMAR2 - channel x memory address register - 0x28 - 0x20 - read-write - 0x00000000 - - - MA - Memory address - 0 - 32 - - - - - CCR3 - CCR3 - channel x configuration register - 0x30 - 0x20 - read-write - 0x00000000 - - - MEM2MEM - Memory to memory mode - 14 - 1 - - - PL - Channel priority level - 12 - 2 - - - MSIZE - Memory size - 10 - 2 - - - PSIZE - Peripheral size - 8 - 2 - - - MINC - Memory increment mode - 7 - 1 - - - PINC - Peripheral increment mode - 6 - 1 - - - CIRC - Circular mode - 5 - 1 - - - DIR - Data transfer direction - 4 - 1 - - - TEIE - Transfer error interrupt enable - 3 - 1 - - - HTIE - Half transfer interrupt enable - 2 - 1 - - - TCIE - Transfer complete interrupt enable - 1 - 1 - - - EN - Channel enable - 0 - 1 - - - - - CNDTR3 - CNDTR3 - channel x number of data register - 0x34 - 0x20 - read-write - 0x00000000 - - - NDT - Number of data to transfer - 0 - 16 - - - - - CPAR3 - CPAR3 - channel x peripheral address register - 0x38 - 0x20 - read-write - 0x00000000 - - - PA - Peripheral address - 0 - 32 - - - - - CMAR3 - CMAR3 - channel x memory address register - 0x3C - 0x20 - read-write - 0x00000000 - - - MA - Memory address - 0 - 32 - - - - - CCR4 - CCR4 - channel x configuration register - 0x44 - 0x20 - read-write - 0x00000000 - - - MEM2MEM - Memory to memory mode - 14 - 1 - - - PL - Channel priority level - 12 - 2 - - - MSIZE - Memory size - 10 - 2 - - - PSIZE - Peripheral size - 8 - 2 - - - MINC - Memory increment mode - 7 - 1 - - - PINC - Peripheral increment mode - 6 - 1 - - - CIRC - Circular mode - 5 - 1 - - - DIR - Data transfer direction - 4 - 1 - - - TEIE - Transfer error interrupt enable - 3 - 1 - - - HTIE - Half transfer interrupt enable - 2 - 1 - - - TCIE - Transfer complete interrupt enable - 1 - 1 - - - EN - Channel enable - 0 - 1 - - - - - CNDTR4 - CNDTR4 - channel x number of data register - 0x48 - 0x20 - read-write - 0x00000000 - - - NDT - Number of data to transfer - 0 - 16 - - - - - CPAR4 - CPAR4 - channel x peripheral address register - 0x4C - 0x20 - read-write - 0x00000000 - - - PA - Peripheral address - 0 - 32 - - - - - CMAR4 - CMAR4 - channel x memory address register - 0x50 - 0x20 - read-write - 0x00000000 - - - MA - Memory address - 0 - 32 - - - - - CCR5 - CCR5 - channel x configuration register - 0x58 - 0x20 - read-write - 0x00000000 - - - MEM2MEM - Memory to memory mode - 14 - 1 - - - PL - Channel priority level - 12 - 2 - - - MSIZE - Memory size - 10 - 2 - - - PSIZE - Peripheral size - 8 - 2 - - - MINC - Memory increment mode - 7 - 1 - - - PINC - Peripheral increment mode - 6 - 1 - - - CIRC - Circular mode - 5 - 1 - - - DIR - Data transfer direction - 4 - 1 - - - TEIE - Transfer error interrupt enable - 3 - 1 - - - HTIE - Half transfer interrupt enable - 2 - 1 - - - TCIE - Transfer complete interrupt enable - 1 - 1 - - - EN - Channel enable - 0 - 1 - - - - - CNDTR5 - CNDTR5 - channel x number of data register - 0x5C - 0x20 - read-write - 0x00000000 - - - NDT - Number of data to transfer - 0 - 16 - - - - - CPAR5 - CPAR5 - channel x peripheral address register - 0x60 - 0x20 - read-write - 0x00000000 - - - PA - Peripheral address - 0 - 32 - - - - - CMAR5 - CMAR5 - channel x memory address register - 0x64 - 0x20 - read-write - 0x00000000 - - - MA - Memory address - 0 - 32 - - - - - CCR6 - CCR6 - channel x configuration register - 0x6C - 0x20 - read-write - 0x00000000 - - - MEM2MEM - Memory to memory mode - 14 - 1 - - - PL - Channel priority level - 12 - 2 - - - MSIZE - Memory size - 10 - 2 - - - PSIZE - Peripheral size - 8 - 2 - - - MINC - Memory increment mode - 7 - 1 - - - PINC - Peripheral increment mode - 6 - 1 - - - CIRC - Circular mode - 5 - 1 - - - DIR - Data transfer direction - 4 - 1 - - - TEIE - Transfer error interrupt enable - 3 - 1 - - - HTIE - Half transfer interrupt enable - 2 - 1 - - - TCIE - Transfer complete interrupt enable - 1 - 1 - - - EN - Channel enable - 0 - 1 - - - - - CNDTR6 - CNDTR6 - channel x number of data register - 0x70 - 0x20 - read-write - 0x00000000 - - - NDT - Number of data to transfer - 0 - 16 - - - - - CPAR6 - CPAR6 - channel x peripheral address register - 0x74 - 0x20 - read-write - 0x00000000 - - - PA - Peripheral address - 0 - 32 - - - - - CMAR6 - CMAR6 - channel x memory address register - 0x78 - 0x20 - read-write - 0x00000000 - - - MA - Memory address - 0 - 32 - - - - - CCR7 - CCR7 - channel x configuration register - 0x80 - 0x20 - read-write - 0x00000000 - - - MEM2MEM - Memory to memory mode - 14 - 1 - - - PL - Channel priority level - 12 - 2 - - - MSIZE - Memory size - 10 - 2 - - - PSIZE - Peripheral size - 8 - 2 - - - MINC - Memory increment mode - 7 - 1 - - - PINC - Peripheral increment mode - 6 - 1 - - - CIRC - Circular mode - 5 - 1 - - - DIR - Data transfer direction - 4 - 1 - - - TEIE - Transfer error interrupt enable - 3 - 1 - - - HTIE - Half transfer interrupt enable - 2 - 1 - - - TCIE - Transfer complete interrupt enable - 1 - 1 - - - EN - Channel enable - 0 - 1 - - - - - CNDTR7 - CNDTR7 - channel x number of data register - 0x84 - 0x20 - read-write - 0x00000000 - - - NDT - Number of data to transfer - 0 - 16 - - - - - CPAR7 - CPAR7 - channel x peripheral address register - 0x88 - 0x20 - read-write - 0x00000000 - - - PA - Peripheral address - 0 - 32 - - - - - CMAR7 - CMAR7 - channel x memory address register - 0x8C - 0x20 - read-write - 0x00000000 - - - MA - Memory address - 0 - 32 - - - - - CSELR - CSELR - channel selection register - 0xA8 - 0x20 - read-write - 0x00000000 - - - C7S - DMA channel 7 selection - 24 - 4 - - - C6S - DMA channel 6 selection - 20 - 4 - - - C5S - DMA channel 5 selection - 16 - 4 - - - C4S - DMA channel 4 selection - 12 - 4 - - - C3S - DMA channel 3 selection - 8 - 4 - - - C2S - DMA channel 2 selection - 4 - 4 - - - C1S - DMA channel 1 selection - 0 - 4 - - - - - - - DMAMUX1 - Direct memory access Multiplexer - DMAMUX - 0x40020800 - - 0x0 - 0x400 - registers - - - DMAMUX_OVR - DMAMUX overrun interrupt - 62 - - - - C0CR - C0CR - DMA Multiplexer Channel 0 Control register - 0x0 - 0x20 - read-write - 0x00000000 - - - SYNC_ID - SYNC_ID - 24 - 5 - - - NBREQ - Nb request - 19 - 5 - - - SPOL - Sync polarity - 17 - 2 - - - SE - Synchronization enable - 16 - 1 - - - EGE - Event Generation Enable - 9 - 1 - - - SOIE - Synchronization Overrun Interrupt Enable - 8 - 1 - - - DMAREQ_ID - DMA Request ID - 0 - 8 - - - - - C1CR - C1CR - DMA Multiplexer Channel 1 Control register - 0x4 - 0x20 - read-write - 0x00000000 - - - SYNC_ID - SYNC_ID - 24 - 5 - - - NBREQ - Nb request - 19 - 5 - - - SPOL - Sync polarity - 17 - 2 - - - SE - Synchronization enable - 16 - 1 - - - EGE - Event Generation Enable - 9 - 1 - - - SOIE - Synchronization Overrun Interrupt Enable - 8 - 1 - - - DMAREQ_ID - DMA Request ID - 0 - 8 - - - - - C2CR - C2CR - DMA Multiplexer Channel 2 Control register - 0x8 - 0x20 - read-write - 0x00000000 - - - SYNC_ID - SYNC_ID - 24 - 5 - - - NBREQ - Nb request - 19 - 5 - - - SPOL - Sync polarity - 17 - 2 - - - SE - Synchronization enable - 16 - 1 - - - EGE - Event Generation Enable - 9 - 1 - - - SOIE - Synchronization Overrun Interrupt Enable - 8 - 1 - - - DMAREQ_ID - DMA Request ID - 0 - 8 - - - - - C3CR - C3CR - DMA Multiplexer Channel 3 Control register - 0xC - 0x20 - read-write - 0x00000000 - - - SYNC_ID - SYNC_ID - 24 - 5 - - - NBREQ - Nb request - 19 - 5 - - - SPOL - Sync polarity - 17 - 2 - - - SE - Synchronization enable - 16 - 1 - - - EGE - Event Generation Enable - 9 - 1 - - - SOIE - Synchronization Overrun Interrupt Enable - 8 - 1 - - - DMAREQ_ID - DMA Request ID - 0 - 8 - - - - - C4CR - C4CR - DMA Multiplexer Channel 4 Control register - 0x10 - 0x20 - read-write - 0x00000000 - - - SYNC_ID - SYNC_ID - 24 - 5 - - - NBREQ - Nb request - 19 - 5 - - - SPOL - Sync polarity - 17 - 2 - - - SE - Synchronization enable - 16 - 1 - - - EGE - Event Generation Enable - 9 - 1 - - - SOIE - Synchronization Overrun Interrupt Enable - 8 - 1 - - - DMAREQ_ID - DMA Request ID - 0 - 8 - - - - - C5CR - C5CR - DMA Multiplexer Channel 5 Control register - 0x14 - 0x20 - read-write - 0x00000000 - - - SYNC_ID - SYNC_ID - 24 - 5 - - - NBREQ - Nb request - 19 - 5 - - - SPOL - Sync polarity - 17 - 2 - - - SE - Synchronization enable - 16 - 1 - - - EGE - Event Generation Enable - 9 - 1 - - - SOIE - Synchronization Overrun Interrupt Enable - 8 - 1 - - - DMAREQ_ID - DMA Request ID - 0 - 8 - - - - - C6CR - C6CR - DMA Multiplexer Channel 6 Control register - 0x18 - 0x20 - read-write - 0x00000000 - - - SYNC_ID - SYNC_ID - 24 - 5 - - - NBREQ - Nb request - 19 - 5 - - - SPOL - Sync polarity - 17 - 2 - - - SE - Synchronization enable - 16 - 1 - - - EGE - Event Generation Enable - 9 - 1 - - - SOIE - Synchronization Overrun Interrupt Enable - 8 - 1 - - - DMAREQ_ID - DMA Request ID - 0 - 8 - - - - - C7CR - C7CR - DMA Multiplexer Channel 7 Control register - 0x1C - 0x20 - read-write - 0x00000000 - - - SYNC_ID - SYNC_ID - 24 - 5 - - - NBREQ - Nb request - 19 - 5 - - - SPOL - Sync polarity - 17 - 2 - - - SE - Synchronization enable - 16 - 1 - - - EGE - Event Generation Enable - 9 - 1 - - - SOIE - Synchronization Overrun Interrupt Enable - 8 - 1 - - - DMAREQ_ID - DMA Request ID - 0 - 8 - - - - - C8CR - C8CR - DMA Multiplexer Channel 8 Control register - 0x20 - 0x20 - read-write - 0x00000000 - - - SYNC_ID - SYNC_ID - 24 - 5 - - - NBREQ - Nb request - 19 - 5 - - - SPOL - Sync polarity - 17 - 2 - - - SE - Synchronization enable - 16 - 1 - - - EGE - Event Generation Enable - 9 - 1 - - - SOIE - Synchronization Overrun Interrupt Enable - 8 - 1 - - - DMAREQ_ID - DMA Request ID - 0 - 8 - - - - - C9CR - C9CR - DMA Multiplexer Channel 9 Control register - 0x24 - 0x20 - read-write - 0x00000000 - - - SYNC_ID - SYNC_ID - 24 - 5 - - - NBREQ - Nb request - 19 - 5 - - - SPOL - Sync polarity - 17 - 2 - - - SE - Synchronization enable - 16 - 1 - - - EGE - Event Generation Enable - 9 - 1 - - - SOIE - Synchronization Overrun Interrupt Enable - 8 - 1 - - - DMAREQ_ID - DMA Request ID - 0 - 8 - - - - - C10CR - C10CR - DMA Multiplexer Channel 10 Control register - 0x28 - 0x20 - read-write - 0x00000000 - - - SYNC_ID - SYNC_ID - 24 - 5 - - - NBREQ - Nb request - 19 - 5 - - - SPOL - Sync polarity - 17 - 2 - - - SE - Synchronization enable - 16 - 1 - - - EGE - Event Generation Enable - 9 - 1 - - - SOIE - Synchronization Overrun Interrupt Enable - 8 - 1 - - - DMAREQ_ID - DMA Request ID - 0 - 8 - - - - - C11CR - C11CR - DMA Multiplexer Channel 11 Control register - 0x2C - 0x20 - read-write - 0x00000000 - - - SYNC_ID - SYNC_ID - 24 - 5 - - - NBREQ - Nb request - 19 - 5 - - - SPOL - Sync polarity - 17 - 2 - - - SE - Synchronization enable - 16 - 1 - - - EGE - Event Generation Enable - 9 - 1 - - - SOIE - Synchronization Overrun Interrupt Enable - 8 - 1 - - - DMAREQ_ID - DMA Request ID - 0 - 8 - - - - - C12CR - C12CR - DMA Multiplexer Channel 12 Control register - 0x30 - 0x20 - read-write - 0x00000000 - - - SYNC_ID - SYNC_ID - 24 - 5 - - - NBREQ - Nb request - 19 - 5 - - - SPOL - Sync polarity - 17 - 2 - - - SE - Synchronization enable - 16 - 1 - - - EGE - Event Generation Enable - 9 - 1 - - - SOIE - Synchronization Overrun Interrupt Enable - 8 - 1 - - - DMAREQ_ID - DMA Request ID - 0 - 8 - - - - - C13CR - C13CR - DMA Multiplexer Channel 13 Control register - 0x34 - 0x20 - read-write - 0x00000000 - - - SYNC_ID - SYNC_ID - 24 - 5 - - - NBREQ - Nb request - 19 - 5 - - - SPOL - Sync polarity - 17 - 2 - - - SE - Synchronization enable - 16 - 1 - - - EGE - Event Generation Enable - 9 - 1 - - - SOIE - Synchronization Overrun Interrupt Enable - 8 - 1 - - - DMAREQ_ID - DMA Request ID - 0 - 8 - - - - - CSR - CSR - DMA Multiplexer Channel Status register - 0x80 - 0x20 - read-only - 0x00000000 - - - SOF0 - Synchronization Overrun Flag 0 - 0 - 1 - - - SOF1 - Synchronization Overrun Flag 1 - 1 - 1 - - - SOF2 - Synchronization Overrun Flag 2 - 2 - 1 - - - SOF3 - Synchronization Overrun Flag 3 - 3 - 1 - - - SOF4 - Synchronization Overrun Flag 4 - 4 - 1 - - - SOF5 - Synchronization Overrun Flag 5 - 5 - 1 - - - SOF6 - Synchronization Overrun Flag 6 - 6 - 1 - - - SOF7 - Synchronization Overrun Flag 7 - 7 - 1 - - - SOF8 - Synchronization Overrun Flag 8 - 8 - 1 - - - SOF9 - Synchronization Overrun Flag 9 - 9 - 1 - - - SOF10 - Synchronization Overrun Flag 10 - 10 - 1 - - - SOF11 - Synchronization Overrun Flag 11 - 11 - 1 - - - SOF12 - Synchronization Overrun Flag 12 - 12 - 1 - - - SOF13 - Synchronization Overrun Flag 13 - 13 - 1 - - - - - CFR - CFR - DMA Channel Clear Flag Register - 0x84 - 0x20 - write-only - 0x00000000 - - - CSOF0 - Synchronization Clear Overrun Flag 0 - 0 - 1 - - - CSOF1 - Synchronization Clear Overrun Flag 1 - 1 - 1 - - - CSOF2 - Synchronization Clear Overrun Flag 2 - 2 - 1 - - - CSOF3 - Synchronization Clear Overrun Flag 3 - 3 - 1 - - - CSOF4 - Synchronization Clear Overrun Flag 4 - 4 - 1 - - - CSOF5 - Synchronization Clear Overrun Flag 5 - 5 - 1 - - - CSOF6 - Synchronization Clear Overrun Flag 6 - 6 - 1 - - - CSOF7 - Synchronization Clear Overrun Flag 7 - 7 - 1 - - - CSOF8 - Synchronization Clear Overrun Flag 8 - 8 - 1 - - - CSOF9 - Synchronization Clear Overrun Flag 9 - 9 - 1 - - - CSOF10 - Synchronization Clear Overrun Flag 10 - 10 - 1 - - - CSOF11 - Synchronization Clear Overrun Flag 11 - 11 - 1 - - - CSOF12 - Synchronization Clear Overrun Flag 12 - 12 - 1 - - - CSOF13 - Synchronization Clear Overrun Flag 13 - 13 - 1 - - - - - RG0CR - RG0CR - DMA Request Generator 0 Control Register - 0x100 - 0x20 - read-write - 0x00000000 - - - GNBREQ - Number of Request - 19 - 5 - - - GPOL - Generation Polarity - 17 - 2 - - - GE - Generation Enable - 16 - 1 - - - OIE - Overrun Interrupt Enable - 8 - 1 - - - SIG_ID - Signal ID - 0 - 5 - - - - - RG1CR - RG1CR - DMA Request Generator 1 Control Register - 0x104 - 0x20 - read-write - 0x00000000 - - - GNBREQ - Number of Request - 19 - 5 - - - GPOL - Generation Polarity - 17 - 2 - - - GE - Generation Enable - 16 - 1 - - - OIE - Overrun Interrupt Enable - 8 - 1 - - - SIG_ID - Signal ID - 0 - 5 - - - - - RG2CR - RG2CR - DMA Request Generator 2 Control Register - 0x108 - 0x20 - read-write - 0x00000000 - - - GNBREQ - Number of Request - 19 - 5 - - - GPOL - Generation Polarity - 17 - 2 - - - GE - Generation Enable - 16 - 1 - - - OIE - Overrun Interrupt Enable - 8 - 1 - - - SIG_ID - Signal ID - 0 - 5 - - - - - RG3CR - RG3CR - DMA Request Generator 3 Control Register - 0x10C - 0x20 - read-write - 0x00000000 - - - GNBREQ - Number of Request - 19 - 5 - - - GPOL - Generation Polarity - 17 - 2 - - - GE - Generation Enable - 16 - 1 - - - OIE - Overrun Interrupt Enable - 8 - 1 - - - SIG_ID - Signal ID - 0 - 5 - - - - - RGSR - RGSR - DMA Request Generator Status Register - 0x140 - 0x20 - read-only - 0x00000000 - - - OF0 - Generator Overrun Flag 0 - 0 - 1 - - - OF1 - Generator Overrun Flag 1 - 1 - 1 - - - OF2 - Generator Overrun Flag 2 - 2 - 1 - - - OF3 - Generator Overrun Flag 3 - 3 - 1 - - - - - RGCFR - RGCFR - DMA Request Generator Clear Flag Register - 0x144 - 0x20 - write-only - 0x00000000 - - - COF0 - Clear trigger Overrun Flag 0 - 0 - 1 - - - COF1 - Clear trigger Overrun Flag 1 - 1 - 1 - - - COF2 - Clear trigger Overrun Flag 2 - 2 - 1 - - - COF3 - Clear trigger Overrun Flag 3 - 3 - 1 - - - - - - - CRC - Cyclic redundancy check calculation unit - CRC - 0x40023000 - - 0x0 - 0x400 - registers - - - - DR - DR - Data register - 0x0 - 0x20 - read-write - 0xFFFFFFFF - - - DR - Data register bits - 0 - 32 - - - - - IDR - IDR - Independent data register - 0x4 - 0x20 - read-write - 0x00000000 - - - IDR - General-purpose 32-bit data register bits - 0 - 32 - - - - - CR - CR - Control register - 0x8 - 0x20 - read-write - 0x00000000 - - - REV_OUT - Reverse output data - 7 - 1 - - - REV_IN - Reverse input data - 5 - 2 - - - POLYSIZE - Polynomial size - 3 - 2 - - - RESET - RESET bit - 0 - 1 - - - - - INIT - INIT - Initial CRC value - 0x10 - 0x20 - read-write - 0xFFFFFFFF - - - CRC_INIT - Programmable initial CRC value - 0 - 32 - - - - - POL - POL - polynomial - 0x14 - 0x20 - read-write - 0x04C11DB7 - - - POL - Programmable polynomial - 0 - 32 - - - - - - - LCD - Liquid crystal display controller - LCD - 0x40002400 - - 0x0 - 0x400 - registers - - - LCD - LCD global interrupt - 49 - - - - CR - CR - control register - 0x0 - 0x20 - read-write - 0x00000000 - - - BIAS - Bias selector - 5 - 2 - - - DUTY - Duty selection - 2 - 3 - - - VSEL - Voltage source selection - 1 - 1 - - - LCDEN - LCD controller enable - 0 - 1 - - - MUX_SEG - Mux segment enable - 7 - 1 - - - BUFEN - Voltage output buffer enable - 8 - 1 - - - - - FCR - FCR - frame control register - 0x4 - 0x20 - read-write - 0x00000000 - - - PS - PS 16-bit prescaler - 22 - 4 - - - DIV - DIV clock divider - 18 - 4 - - - BLINK - Blink mode selection - 16 - 2 - - - BLINKF - Blink frequency selection - 13 - 3 - - - CC - Contrast control - 10 - 3 - - - DEAD - Dead time duration - 7 - 3 - - - PON - Pulse ON duration - 4 - 3 - - - UDDIE - Update display done interrupt enable - 3 - 1 - - - SOFIE - Start of frame interrupt enable - 1 - 1 - - - HD - High drive enable - 0 - 1 - - - - - SR - SR - status register - 0x8 - 0x20 - 0x00000020 - - - FCRSF - LCD Frame Control Register Synchronization flag - 5 - 1 - read-only - - - RDY - Ready flag - 4 - 1 - read-only - - - UDD - Update Display Done - 3 - 1 - read-only - - - UDR - Update display request - 2 - 1 - read-write - - - SOF - Start of frame flag - 1 - 1 - read-only - - - ENS - ENS - 0 - 1 - read-only - - - - - CLR - CLR - clear register - 0xC - 0x20 - write-only - 0x00000000 - - - UDDC - Update display done clear - 3 - 1 - - - SOFC - Start of frame flag clear - 1 - 1 - - - - - RAM_COM0 - RAM_COM0 - display memory - 0x14 - 0x20 - read-write - 0x00000000 - - - S31 - S31 - 31 - 1 - - - S30 - S30 - 30 - 1 - - - S29 - S29 - 29 - 1 - - - S28 - S28 - 28 - 1 - - - S27 - S27 - 27 - 1 - - - S26 - S26 - 26 - 1 - - - S25 - S25 - 25 - 1 - - - S24 - S24 - 24 - 1 - - - S23 - S23 - 23 - 1 - - - S22 - S22 - 22 - 1 - - - S21 - S21 - 21 - 1 - - - S20 - S20 - 20 - 1 - - - S19 - S19 - 19 - 1 - - - S18 - S18 - 18 - 1 - - - S17 - S17 - 17 - 1 - - - S16 - S16 - 16 - 1 - - - S15 - S15 - 15 - 1 - - - S14 - S14 - 14 - 1 - - - S13 - S13 - 13 - 1 - - - S12 - S12 - 12 - 1 - - - S11 - S11 - 11 - 1 - - - S10 - S10 - 10 - 1 - - - S09 - S09 - 9 - 1 - - - S08 - S08 - 8 - 1 - - - S07 - S07 - 7 - 1 - - - S06 - S06 - 6 - 1 - - - S05 - S05 - 5 - 1 - - - S04 - S04 - 4 - 1 - - - S03 - S03 - 3 - 1 - - - S02 - S02 - 2 - 1 - - - S01 - S01 - 1 - 1 - - - S00 - S00 - 0 - 1 - - - - - RAM_COM1 - RAM_COM1 - display memory - 0x1C - 0x20 - read-write - 0x00000000 - - - S31 - S31 - 31 - 1 - - - S30 - S30 - 30 - 1 - - - S29 - S29 - 29 - 1 - - - S28 - S28 - 28 - 1 - - - S27 - S27 - 27 - 1 - - - S26 - S26 - 26 - 1 - - - S25 - S25 - 25 - 1 - - - S24 - S24 - 24 - 1 - - - S23 - S23 - 23 - 1 - - - S22 - S22 - 22 - 1 - - - S21 - S21 - 21 - 1 - - - S20 - S20 - 20 - 1 - - - S19 - S19 - 19 - 1 - - - S18 - S18 - 18 - 1 - - - S17 - S17 - 17 - 1 - - - S16 - S16 - 16 - 1 - - - S15 - S15 - 15 - 1 - - - S14 - S14 - 14 - 1 - - - S13 - S13 - 13 - 1 - - - S12 - S12 - 12 - 1 - - - S11 - S11 - 11 - 1 - - - S10 - S10 - 10 - 1 - - - S09 - S09 - 9 - 1 - - - S08 - S08 - 8 - 1 - - - S07 - S07 - 7 - 1 - - - S06 - S06 - 6 - 1 - - - S05 - S05 - 5 - 1 - - - S04 - S04 - 4 - 1 - - - S03 - S03 - 3 - 1 - - - S02 - S02 - 2 - 1 - - - S01 - S01 - 1 - 1 - - - S00 - S00 - 0 - 1 - - - - - RAM_COM2 - RAM_COM2 - display memory - 0x24 - 0x20 - read-write - 0x00000000 - - - S31 - S31 - 31 - 1 - - - S30 - S30 - 30 - 1 - - - S29 - S29 - 29 - 1 - - - S28 - S28 - 28 - 1 - - - S27 - S27 - 27 - 1 - - - S26 - S26 - 26 - 1 - - - S25 - S25 - 25 - 1 - - - S24 - S24 - 24 - 1 - - - S23 - S23 - 23 - 1 - - - S22 - S22 - 22 - 1 - - - S21 - S21 - 21 - 1 - - - S20 - S20 - 20 - 1 - - - S19 - S19 - 19 - 1 - - - S18 - S18 - 18 - 1 - - - S17 - S17 - 17 - 1 - - - S16 - S16 - 16 - 1 - - - S15 - S15 - 15 - 1 - - - S14 - S14 - 14 - 1 - - - S13 - S13 - 13 - 1 - - - S12 - S12 - 12 - 1 - - - S11 - S11 - 11 - 1 - - - S10 - S10 - 10 - 1 - - - S09 - S09 - 9 - 1 - - - S08 - S08 - 8 - 1 - - - S07 - S07 - 7 - 1 - - - S06 - S06 - 6 - 1 - - - S05 - S05 - 5 - 1 - - - S04 - S04 - 4 - 1 - - - S03 - S03 - 3 - 1 - - - S02 - S02 - 2 - 1 - - - S01 - S01 - 1 - 1 - - - S00 - S00 - 0 - 1 - - - - - RAM_COM3 - RAM_COM3 - display memory - 0x2C - 0x20 - read-write - 0x00000000 - - - S31 - S31 - 31 - 1 - - - S30 - S30 - 30 - 1 - - - S29 - S29 - 29 - 1 - - - S28 - S28 - 28 - 1 - - - S27 - S27 - 27 - 1 - - - S26 - S26 - 26 - 1 - - - S25 - S25 - 25 - 1 - - - S24 - S24 - 24 - 1 - - - S23 - S23 - 23 - 1 - - - S22 - S22 - 22 - 1 - - - S21 - S21 - 21 - 1 - - - S20 - S20 - 20 - 1 - - - S19 - S19 - 19 - 1 - - - S18 - S18 - 18 - 1 - - - S17 - S17 - 17 - 1 - - - S16 - S16 - 16 - 1 - - - S15 - S15 - 15 - 1 - - - S14 - S14 - 14 - 1 - - - S13 - S13 - 13 - 1 - - - S12 - S12 - 12 - 1 - - - S11 - S11 - 11 - 1 - - - S10 - S10 - 10 - 1 - - - S09 - S09 - 9 - 1 - - - S08 - S08 - 8 - 1 - - - S07 - S07 - 7 - 1 - - - S06 - S06 - 6 - 1 - - - S05 - S05 - 5 - 1 - - - S04 - S04 - 4 - 1 - - - S03 - S03 - 3 - 1 - - - S02 - S02 - 2 - 1 - - - S01 - S01 - 1 - 1 - - - S00 - S00 - 0 - 1 - - - - - RAM_COM4 - RAM_COM4 - display memory - 0x34 - 0x20 - read-write - 0x00000000 - - - S31 - S31 - 31 - 1 - - - S30 - S30 - 30 - 1 - - - S29 - S29 - 29 - 1 - - - S28 - S28 - 28 - 1 - - - S27 - S27 - 27 - 1 - - - S26 - S26 - 26 - 1 - - - S25 - S25 - 25 - 1 - - - S24 - S24 - 24 - 1 - - - S23 - S23 - 23 - 1 - - - S22 - S22 - 22 - 1 - - - S21 - S21 - 21 - 1 - - - S20 - S20 - 20 - 1 - - - S19 - S19 - 19 - 1 - - - S18 - S18 - 18 - 1 - - - S17 - S17 - 17 - 1 - - - S16 - S16 - 16 - 1 - - - S15 - S15 - 15 - 1 - - - S14 - S14 - 14 - 1 - - - S13 - S13 - 13 - 1 - - - S12 - S12 - 12 - 1 - - - S11 - S11 - 11 - 1 - - - S10 - S10 - 10 - 1 - - - S09 - S09 - 9 - 1 - - - S08 - S08 - 8 - 1 - - - S07 - S07 - 7 - 1 - - - S06 - S06 - 6 - 1 - - - S05 - S05 - 5 - 1 - - - S04 - S04 - 4 - 1 - - - S03 - S03 - 3 - 1 - - - S02 - S02 - 2 - 1 - - - S01 - S01 - 1 - 1 - - - S00 - S00 - 0 - 1 - - - - - RAM_COM5 - RAM_COM5 - display memory - 0x3C - 0x20 - read-write - 0x00000000 - - - S31 - S31 - 31 - 1 - - - S30 - S30 - 30 - 1 - - - S29 - S29 - 29 - 1 - - - S28 - S28 - 28 - 1 - - - S27 - S27 - 27 - 1 - - - S26 - S26 - 26 - 1 - - - S25 - S25 - 25 - 1 - - - S24 - S24 - 24 - 1 - - - S23 - S23 - 23 - 1 - - - S22 - S22 - 22 - 1 - - - S21 - S21 - 21 - 1 - - - S20 - S20 - 20 - 1 - - - S19 - S19 - 19 - 1 - - - S18 - S18 - 18 - 1 - - - S17 - S17 - 17 - 1 - - - S16 - S16 - 16 - 1 - - - S15 - S15 - 15 - 1 - - - S14 - S14 - 14 - 1 - - - S13 - S13 - 13 - 1 - - - S12 - S12 - 12 - 1 - - - S11 - S11 - 11 - 1 - - - S10 - S10 - 10 - 1 - - - S09 - S09 - 9 - 1 - - - S08 - S08 - 8 - 1 - - - S07 - S07 - 7 - 1 - - - S06 - S06 - 6 - 1 - - - S05 - S05 - 5 - 1 - - - S04 - S04 - 4 - 1 - - - S03 - S03 - 3 - 1 - - - S02 - S02 - 2 - 1 - - - S01 - S01 - 1 - 1 - - - S00 - S00 - 0 - 1 - - - - - RAM_COM6 - RAM_COM6 - display memory - 0x44 - 0x20 - read-write - 0x00000000 - - - S31 - S31 - 31 - 1 - - - S30 - S30 - 30 - 1 - - - S29 - S29 - 29 - 1 - - - S28 - S28 - 28 - 1 - - - S27 - S27 - 27 - 1 - - - S26 - S26 - 26 - 1 - - - S25 - S25 - 25 - 1 - - - S24 - S24 - 24 - 1 - - - S23 - S23 - 23 - 1 - - - S22 - S22 - 22 - 1 - - - S21 - S21 - 21 - 1 - - - S20 - S20 - 20 - 1 - - - S19 - S19 - 19 - 1 - - - S18 - S18 - 18 - 1 - - - S17 - S17 - 17 - 1 - - - S16 - S16 - 16 - 1 - - - S15 - S15 - 15 - 1 - - - S14 - S14 - 14 - 1 - - - S13 - S13 - 13 - 1 - - - S12 - S12 - 12 - 1 - - - S11 - S11 - 11 - 1 - - - S10 - S10 - 10 - 1 - - - S09 - S09 - 9 - 1 - - - S08 - S08 - 8 - 1 - - - S07 - S07 - 7 - 1 - - - S06 - S06 - 6 - 1 - - - S05 - S05 - 5 - 1 - - - S04 - S04 - 4 - 1 - - - S03 - S03 - 3 - 1 - - - S02 - S02 - 2 - 1 - - - S01 - S01 - 1 - 1 - - - S00 - S00 - 0 - 1 - - - - - RAM_COM7 - RAM_COM7 - display memory - 0x4C - 0x20 - read-write - 0x00000000 - - - S31 - S31 - 31 - 1 - - - S30 - S30 - 30 - 1 - - - S29 - S29 - 29 - 1 - - - S28 - S28 - 28 - 1 - - - S27 - S27 - 27 - 1 - - - S26 - S26 - 26 - 1 - - - S25 - S25 - 25 - 1 - - - S24 - S24 - 24 - 1 - - - S23 - S23 - 23 - 1 - - - S22 - S22 - 22 - 1 - - - S21 - S21 - 21 - 1 - - - S20 - S20 - 20 - 1 - - - S19 - S19 - 19 - 1 - - - S18 - S18 - 18 - 1 - - - S17 - S17 - 17 - 1 - - - S16 - S16 - 16 - 1 - - - S15 - S15 - 15 - 1 - - - S14 - S14 - 14 - 1 - - - S13 - S13 - 13 - 1 - - - S12 - S12 - 12 - 1 - - - S11 - S11 - 11 - 1 - - - S10 - S10 - 10 - 1 - - - S09 - S09 - 9 - 1 - - - S08 - S08 - 8 - 1 - - - S07 - S07 - 7 - 1 - - - S06 - S06 - 6 - 1 - - - S05 - S05 - 5 - 1 - - - S04 - S04 - 4 - 1 - - - S03 - S03 - 3 - 1 - - - S02 - S02 - 2 - 1 - - - S01 - S01 - 1 - 1 - - - S00 - S00 - 0 - 1 - - - - - - - TSC - Touch sensing controller - TSC - 0x40024000 - - 0x0 - 0x400 - registers - - - TSC - TSC global interrupt - 39 - - - - CR - CR - control register - 0x0 - 0x20 - read-write - 0x00000000 - - - CTPH - Charge transfer pulse high - 28 - 4 - - - CTPL - Charge transfer pulse low - 24 - 4 - - - SSD - Spread spectrum deviation - 17 - 7 - - - SSE - Spread spectrum enable - 16 - 1 - - - SSPSC - Spread spectrum prescaler - 15 - 1 - - - PGPSC - pulse generator prescaler - 12 - 3 - - - MCV - Max count value - 5 - 3 - - - IODEF - I/O Default mode - 4 - 1 - - - SYNCPOL - Synchronization pin polarity - 3 - 1 - - - AM - Acquisition mode - 2 - 1 - - - START - Start a new acquisition - 1 - 1 - - - TSCE - Touch sensing controller enable - 0 - 1 - - - - - IER - IER - interrupt enable register - 0x4 - 0x20 - read-write - 0x00000000 - - - MCEIE - Max count error interrupt enable - 1 - 1 - - - EOAIE - End of acquisition interrupt enable - 0 - 1 - - - - - ICR - ICR - interrupt clear register - 0x8 - 0x20 - read-write - 0x00000000 - - - MCEIC - Max count error interrupt clear - 1 - 1 - - - EOAIC - End of acquisition interrupt clear - 0 - 1 - - - - - ISR - ISR - interrupt status register - 0xC - 0x20 - read-write - 0x00000000 - - - MCEF - Max count error flag - 1 - 1 - - - EOAF - End of acquisition flag - 0 - 1 - - - - - IOHCR - IOHCR - I/O hysteresis control register - 0x10 - 0x20 - read-write - 0xFFFFFFFF - - - G7_IO4 - G7_IO4 - 27 - 1 - - - G7_IO3 - G7_IO3 - 26 - 1 - - - G7_IO2 - G7_IO2 - 25 - 1 - - - G7_IO1 - G7_IO1 - 24 - 1 - - - G6_IO4 - G6_IO4 - 23 - 1 - - - G6_IO3 - G6_IO3 - 22 - 1 - - - G6_IO2 - G6_IO2 - 21 - 1 - - - G6_IO1 - G6_IO1 - 20 - 1 - - - G5_IO4 - G5_IO4 - 19 - 1 - - - G5_IO3 - G5_IO3 - 18 - 1 - - - G5_IO2 - G5_IO2 - 17 - 1 - - - G5_IO1 - G5_IO1 - 16 - 1 - - - G4_IO4 - G4_IO4 - 15 - 1 - - - G4_IO3 - G4_IO3 - 14 - 1 - - - G4_IO2 - G4_IO2 - 13 - 1 - - - G4_IO1 - G4_IO1 - 12 - 1 - - - G3_IO4 - G3_IO4 - 11 - 1 - - - G3_IO3 - G3_IO3 - 10 - 1 - - - G3_IO2 - G3_IO2 - 9 - 1 - - - G3_IO1 - G3_IO1 - 8 - 1 - - - G2_IO4 - G2_IO4 - 7 - 1 - - - G2_IO3 - G2_IO3 - 6 - 1 - - - G2_IO2 - G2_IO2 - 5 - 1 - - - G2_IO1 - G2_IO1 - 4 - 1 - - - G1_IO4 - G1_IO4 - 3 - 1 - - - G1_IO3 - G1_IO3 - 2 - 1 - - - G1_IO2 - G1_IO2 - 1 - 1 - - - G1_IO1 - G1_IO1 - 0 - 1 - - - - - IOASCR - IOASCR - I/O analog switch control register - 0x18 - 0x20 - read-write - 0x00000000 - - - G7_IO4 - G7_IO4 - 27 - 1 - - - G7_IO3 - G7_IO3 - 26 - 1 - - - G7_IO2 - G7_IO2 - 25 - 1 - - - G7_IO1 - G7_IO1 - 24 - 1 - - - G6_IO4 - G6_IO4 - 23 - 1 - - - G6_IO3 - G6_IO3 - 22 - 1 - - - G6_IO2 - G6_IO2 - 21 - 1 - - - G6_IO1 - G6_IO1 - 20 - 1 - - - G5_IO4 - G5_IO4 - 19 - 1 - - - G5_IO3 - G5_IO3 - 18 - 1 - - - G5_IO2 - G5_IO2 - 17 - 1 - - - G5_IO1 - G5_IO1 - 16 - 1 - - - G4_IO4 - G4_IO4 - 15 - 1 - - - G4_IO3 - G4_IO3 - 14 - 1 - - - G4_IO2 - G4_IO2 - 13 - 1 - - - G4_IO1 - G4_IO1 - 12 - 1 - - - G3_IO4 - G3_IO4 - 11 - 1 - - - G3_IO3 - G3_IO3 - 10 - 1 - - - G3_IO2 - G3_IO2 - 9 - 1 - - - G3_IO1 - G3_IO1 - 8 - 1 - - - G2_IO4 - G2_IO4 - 7 - 1 - - - G2_IO3 - G2_IO3 - 6 - 1 - - - G2_IO2 - G2_IO2 - 5 - 1 - - - G2_IO1 - G2_IO1 - 4 - 1 - - - G1_IO4 - G1_IO4 - 3 - 1 - - - G1_IO3 - G1_IO3 - 2 - 1 - - - G1_IO2 - G1_IO2 - 1 - 1 - - - G1_IO1 - G1_IO1 - 0 - 1 - - - - - IOSCR - IOSCR - I/O sampling control register - 0x20 - 0x20 - read-write - 0x00000000 - - - G7_IO4 - G7_IO4 - 27 - 1 - - - G7_IO3 - G7_IO3 - 26 - 1 - - - G7_IO2 - G7_IO2 - 25 - 1 - - - G7_IO1 - G7_IO1 - 24 - 1 - - - G6_IO4 - G6_IO4 - 23 - 1 - - - G6_IO3 - G6_IO3 - 22 - 1 - - - G6_IO2 - G6_IO2 - 21 - 1 - - - G6_IO1 - G6_IO1 - 20 - 1 - - - G5_IO4 - G5_IO4 - 19 - 1 - - - G5_IO3 - G5_IO3 - 18 - 1 - - - G5_IO2 - G5_IO2 - 17 - 1 - - - G5_IO1 - G5_IO1 - 16 - 1 - - - G4_IO4 - G4_IO4 - 15 - 1 - - - G4_IO3 - G4_IO3 - 14 - 1 - - - G4_IO2 - G4_IO2 - 13 - 1 - - - G4_IO1 - G4_IO1 - 12 - 1 - - - G3_IO4 - G3_IO4 - 11 - 1 - - - G3_IO3 - G3_IO3 - 10 - 1 - - - G3_IO2 - G3_IO2 - 9 - 1 - - - G3_IO1 - G3_IO1 - 8 - 1 - - - G2_IO4 - G2_IO4 - 7 - 1 - - - G2_IO3 - G2_IO3 - 6 - 1 - - - G2_IO2 - G2_IO2 - 5 - 1 - - - G2_IO1 - G2_IO1 - 4 - 1 - - - G1_IO4 - G1_IO4 - 3 - 1 - - - G1_IO3 - G1_IO3 - 2 - 1 - - - G1_IO2 - G1_IO2 - 1 - 1 - - - G1_IO1 - G1_IO1 - 0 - 1 - - - - - IOCCR - IOCCR - I/O channel control register - 0x28 - 0x20 - read-write - 0x00000000 - - - G7_IO4 - G7_IO4 - 27 - 1 - - - G7_IO3 - G7_IO3 - 26 - 1 - - - G7_IO2 - G7_IO2 - 25 - 1 - - - G7_IO1 - G7_IO1 - 24 - 1 - - - G6_IO4 - G6_IO4 - 23 - 1 - - - G6_IO3 - G6_IO3 - 22 - 1 - - - G6_IO2 - G6_IO2 - 21 - 1 - - - G6_IO1 - G6_IO1 - 20 - 1 - - - G5_IO4 - G5_IO4 - 19 - 1 - - - G5_IO3 - G5_IO3 - 18 - 1 - - - G5_IO2 - G5_IO2 - 17 - 1 - - - G5_IO1 - G5_IO1 - 16 - 1 - - - G4_IO4 - G4_IO4 - 15 - 1 - - - G4_IO3 - G4_IO3 - 14 - 1 - - - G4_IO2 - G4_IO2 - 13 - 1 - - - G4_IO1 - G4_IO1 - 12 - 1 - - - G3_IO4 - G3_IO4 - 11 - 1 - - - G3_IO3 - G3_IO3 - 10 - 1 - - - G3_IO2 - G3_IO2 - 9 - 1 - - - G3_IO1 - G3_IO1 - 8 - 1 - - - G2_IO4 - G2_IO4 - 7 - 1 - - - G2_IO3 - G2_IO3 - 6 - 1 - - - G2_IO2 - G2_IO2 - 5 - 1 - - - G2_IO1 - G2_IO1 - 4 - 1 - - - G1_IO4 - G1_IO4 - 3 - 1 - - - G1_IO3 - G1_IO3 - 2 - 1 - - - G1_IO2 - G1_IO2 - 1 - 1 - - - G1_IO1 - G1_IO1 - 0 - 1 - - - - - IOGCSR - IOGCSR - I/O group control status register - 0x30 - 0x20 - 0x00000000 - - - G7S - Analog I/O group x status - 22 - 1 - read-only - - - G6S - Analog I/O group x status - 21 - 1 - read-only - - - G5S - Analog I/O group x status - 20 - 1 - read-only - - - G4S - Analog I/O group x status - 19 - 1 - read-only - - - G3S - Analog I/O group x status - 18 - 1 - read-only - - - G2S - Analog I/O group x status - 17 - 1 - read-only - - - G1S - Analog I/O group x status - 16 - 1 - read-only - - - G7E - Analog I/O group x enable - 6 - 1 - read-write - - - G6E - Analog I/O group x enable - 5 - 1 - read-write - - - G5E - Analog I/O group x enable - 4 - 1 - read-write - - - G4E - Analog I/O group x enable - 3 - 1 - read-write - - - G3E - Analog I/O group x enable - 2 - 1 - read-write - - - G2E - Analog I/O group x enable - 1 - 1 - read-write - - - G1E - Analog I/O group x enable - 0 - 1 - read-write - - - - - IOG1CR - IOG1CR - I/O group x counter register - 0x34 - 0x20 - read-only - 0x00000000 - - - CNT - Counter value - 0 - 14 - - - - - IOG2CR - IOG2CR - I/O group x counter register - 0x38 - 0x20 - read-only - 0x00000000 - - - CNT - Counter value - 0 - 14 - - - - - IOG3CR - IOG3CR - I/O group x counter register - 0x3C - 0x20 - read-only - 0x00000000 - - - CNT - Counter value - 0 - 14 - - - - - IOG4CR - IOG4CR - I/O group x counter register - 0x40 - 0x20 - read-only - 0x00000000 - - - CNT - Counter value - 0 - 14 - - - - - IOG5CR - IOG5CR - I/O group x counter register - 0x44 - 0x20 - read-only - 0x00000000 - - - CNT - Counter value - 0 - 14 - - - - - IOG6CR - IOG6CR - I/O group x counter register - 0x48 - 0x20 - read-only - 0x00000000 - - - CNT - Counter value - 0 - 14 - - - - - IOG7CR - IOG7CR - I/O group x counter register - 0x4C - 0x20 - read-only - 0x00000000 - - - CNT - Counter value - 0 - 14 - - - - - - - IWDG - Independent watchdog - IWDG - 0x40003000 - - 0x0 - 0x400 - registers - - - - KR - KR - Key register - 0x0 - 0x20 - write-only - 0x00000000 - - - KEY - Key value (write only, read 0x0000) - 0 - 16 - - - - - PR - PR - Prescaler register - 0x4 - 0x20 - read-write - 0x00000000 - - - PR - Prescaler divider - 0 - 3 - - - - - RLR - RLR - Reload register - 0x8 - 0x20 - read-write - 0x00000FFF - - - RL - Watchdog counter reload value - 0 - 12 - - - - - SR - SR - Status register - 0xC - 0x20 - read-only - 0x00000000 - - - WVU - Watchdog counter window value update - 2 - 1 - - - RVU - Watchdog counter reload value update - 1 - 1 - - - PVU - Watchdog prescaler value update - 0 - 1 - - - - - WINR - WINR - Window register - 0x10 - 0x20 - read-write - 0x00000FFF - - - WIN - Watchdog counter window value - 0 - 12 - - - - - - - WWDG - System window watchdog - WWDG - 0x40002C00 - - 0x0 - 0x400 - registers - - - WWDG - Window Watchdog interrupt - 0 - - - - CR - CR - Control register - 0x0 - 0x20 - read-write - 0x0000007F - - - WDGA - Activation bit - 7 - 1 - - - T - 7-bit counter (MSB to LSB) - 0 - 7 - - - - - CFR - CFR - Configuration register - 0x4 - 0x20 - read-write - 0x0000007F - - - WDGTB - Timer base - 11 - 3 - - - EWI - Early wakeup interrupt - 9 - 1 - - - W - 7-bit window value - 0 - 7 - - - - - SR - SR - Status register - 0x8 - 0x20 - read-write - 0x00000000 - - - EWIF - Early wakeup interrupt flag - 0 - 1 - - - - - - - I2C1 - Inter-integrated circuit - I2C - 0x40005400 - - 0x0 - 0x400 - registers - - - I2C1_EV - I2C1 event interrupt - 30 - - - I2C1_ER - I2C1 error interrupt - 31 - - - - CR1 - CR1 - Control register 1 - 0x0 - 0x20 - read-write - 0x00000000 - - - PE - Peripheral enable - 0 - 1 - - - TXIE - TX Interrupt enable - 1 - 1 - - - RXIE - RX Interrupt enable - 2 - 1 - - - ADDRIE - Address match interrupt enable (slave only) - 3 - 1 - - - NACKIE - Not acknowledge received interrupt enable - 4 - 1 - - - STOPIE - STOP detection Interrupt enable - 5 - 1 - - - TCIE - Transfer Complete interrupt enable - 6 - 1 - - - ERRIE - Error interrupts enable - 7 - 1 - - - DNF - Digital noise filter - 8 - 4 - - - ANFOFF - Analog noise filter OFF - 12 - 1 - - - TXDMAEN - DMA transmission requests enable - 14 - 1 - - - RXDMAEN - DMA reception requests enable - 15 - 1 - - - SBC - Slave byte control - 16 - 1 - - - NOSTRETCH - Clock stretching disable - 17 - 1 - - - WUPEN - Wakeup from STOP enable - 18 - 1 - - - GCEN - General call enable - 19 - 1 - - - SMBHEN - SMBus Host address enable - 20 - 1 - - - SMBDEN - SMBus Device Default address enable - 21 - 1 - - - ALERTEN - SMBUS alert enable - 22 - 1 - - - PECEN - PEC enable - 23 - 1 - - - - - CR2 - CR2 - Control register 2 - 0x4 - 0x20 - read-write - 0x00000000 - - - PECBYTE - Packet error checking byte - 26 - 1 - - - AUTOEND - Automatic end mode (master mode) - 25 - 1 - - - RELOAD - NBYTES reload mode - 24 - 1 - - - NBYTES - Number of bytes - 16 - 8 - - - NACK - NACK generation (slave mode) - 15 - 1 - - - STOP - Stop generation (master mode) - 14 - 1 - - - START - Start generation - 13 - 1 - - - HEAD10R - 10-bit address header only read direction (master receiver mode) - 12 - 1 - - - ADD10 - 10-bit addressing mode (master mode) - 11 - 1 - - - RD_WRN - Transfer direction (master mode) - 10 - 1 - - - SADD - Slave address bit (master mode) - 0 - 10 - - - - - OAR1 - OAR1 - Own address register 1 - 0x8 - 0x20 - read-write - 0x00000000 - - - OA1 - Interface address - 0 - 10 - - - OA1MODE - Own Address 1 10-bit mode - 10 - 1 - - - OA1EN - Own Address 1 enable - 15 - 1 - - - - - OAR2 - OAR2 - Own address register 2 - 0xC - 0x20 - read-write - 0x00000000 - - - OA2 - Interface address - 1 - 7 - - - OA2MSK - Own Address 2 masks - 8 - 3 - - - OA2EN - Own Address 2 enable - 15 - 1 - - - - - TIMINGR - TIMINGR - Timing register - 0x10 - 0x20 - read-write - 0x00000000 - - - SCLL - SCL low period (master mode) - 0 - 8 - - - SCLH - SCL high period (master mode) - 8 - 8 - - - SDADEL - Data hold time - 16 - 4 - - - SCLDEL - Data setup time - 20 - 4 - - - PRESC - Timing prescaler - 28 - 4 - - - - - TIMEOUTR - TIMEOUTR - Status register 1 - 0x14 - 0x20 - read-write - 0x00000000 - - - TIMEOUTA - Bus timeout A - 0 - 12 - - - TIDLE - Idle clock timeout detection - 12 - 1 - - - TIMOUTEN - Clock timeout enable - 15 - 1 - - - TIMEOUTB - Bus timeout B - 16 - 12 - - - TEXTEN - Extended clock timeout enable - 31 - 1 - - - - - ISR - ISR - Interrupt and Status register - 0x18 - 0x20 - 0x00000001 - - - ADDCODE - Address match code (Slave mode) - 17 - 7 - read-only - - - DIR - Transfer direction (Slave mode) - 16 - 1 - read-only - - - BUSY - Bus busy - 15 - 1 - read-only - - - ALERT - SMBus alert - 13 - 1 - read-only - - - TIMEOUT - Timeout or t_low detection flag - 12 - 1 - read-only - - - PECERR - PEC Error in reception - 11 - 1 - read-only - - - OVR - Overrun/Underrun (slave mode) - 10 - 1 - read-only - - - ARLO - Arbitration lost - 9 - 1 - read-only - - - BERR - Bus error - 8 - 1 - read-only - - - TCR - Transfer Complete Reload - 7 - 1 - read-only - - - TC - Transfer Complete (master mode) - 6 - 1 - read-only - - - STOPF - Stop detection flag - 5 - 1 - read-only - - - NACKF - Not acknowledge received flag - 4 - 1 - read-only - - - ADDR - Address matched (slave mode) - 3 - 1 - read-only - - - RXNE - Receive data register not empty (receivers) - 2 - 1 - read-only - - - TXIS - Transmit interrupt status (transmitters) - 1 - 1 - read-write - - - TXE - Transmit data register empty (transmitters) - 0 - 1 - read-write - - - - - ICR - ICR - Interrupt clear register - 0x1C - 0x20 - write-only - 0x00000000 - - - ALERTCF - Alert flag clear - 13 - 1 - - - TIMOUTCF - Timeout detection flag clear - 12 - 1 - - - PECCF - PEC Error flag clear - 11 - 1 - - - OVRCF - Overrun/Underrun flag clear - 10 - 1 - - - ARLOCF - Arbitration lost flag clear - 9 - 1 - - - BERRCF - Bus error flag clear - 8 - 1 - - - STOPCF - Stop detection flag clear - 5 - 1 - - - NACKCF - Not Acknowledge flag clear - 4 - 1 - - - ADDRCF - Address Matched flag clear - 3 - 1 - - - - - PECR - PECR - PEC register - 0x20 - 0x20 - read-only - 0x00000000 - - - PEC - Packet error checking register - 0 - 8 - - - - - RXDR - RXDR - Receive data register - 0x24 - 0x20 - read-only - 0x00000000 - - - RXDATA - 8-bit receive data - 0 - 8 - - - - - TXDR - TXDR - Transmit data register - 0x28 - 0x20 - read-write - 0x00000000 - - - TXDATA - 8-bit transmit data - 0 - 8 - - - - - - - I2C3 - 0x40005C00 - - I2C3_EV - I2C3 event interrupt - 32 - - - I2C3_ER - I2C3 error interrupt - 33 - - - - Flash - Flash - Flash - 0x58004000 - - 0x0 - 0x90 - registers - - - FLASH - Flash global interrupt - 4 - - - - ACR - ACR - Access control register - 0x0 - 0x20 - read-write - 0x00000600 - - - LATENCY - Latency - 0 - 3 - - - PRFTEN - Prefetch enable - 8 - 1 - - - ICEN - Instruction cache enable - 9 - 1 - - - DCEN - Data cache enable - 10 - 1 - - - ICRST - Instruction cache reset - 11 - 1 - - - DCRST - Data cache reset - 12 - 1 - - - PES - CPU1 CortexM4 program erase suspend request - 15 - 1 - - - EMPTY - Flash User area empty - 16 - 1 - - - - - KEYR - KEYR - Flash key register - 0x8 - 0x20 - write-only - 0x00000000 - - - KEYR - KEYR - 0 - 32 - - - - - OPTKEYR - OPTKEYR - Option byte key register - 0xC - 0x20 - write-only - 0x00000000 - - - OPTKEYR - Option byte key - 0 - 32 - - - - - SR - SR - Status register - 0x10 - 0x20 - 0x00000000 - - - EOP - End of operation - 0 - 1 - read-write - - - OPERR - Operation error - 1 - 1 - read-write - - - PROGERR - Programming error - 3 - 1 - read-write - - - WRPERR - Write protected error - 4 - 1 - read-write - - - PGAERR - Programming alignment error - 5 - 1 - read-write - - - SIZERR - Size error - 6 - 1 - read-write - - - PGSERR - Programming sequence error - 7 - 1 - read-write - - - MISERR - Fast programming data miss error - 8 - 1 - read-write - - - FASTERR - Fast programming error - 9 - 1 - read-write - - - OPTNV - User Option OPTVAL indication - 13 - 1 - read-only - - - RDERR - PCROP read error - 14 - 1 - read-write - - - OPTVERR - Option validity error - 15 - 1 - read-write - - - BSY - Busy - 16 - 1 - read-only - - - CFGBSY - Programming or erase configuration busy - 18 - 1 - read-only - - - PESD - Programming or erase operation suspended - 19 - 1 - read-only - - - - - CR - CR - Flash control register - 0x14 - 0x20 - read-write - 0xC0000000 - - - PG - Programming - 0 - 1 - - - PER - Page erase - 1 - 1 - - - MER - This bit triggers the mass erase (all user pages) when set - 2 - 1 - - - PNB - Page number selection - 3 - 8 - - - STRT - Start - 16 - 1 - - - OPTSTRT - Options modification start - 17 - 1 - - - FSTPG - Fast programming - 18 - 1 - - - EOPIE - End of operation interrupt enable - 24 - 1 - - - ERRIE - Error interrupt enable - 25 - 1 - - - RDERRIE - PCROP read error interrupt enable - 26 - 1 - - - OBL_LAUNCH - Force the option byte loading - 27 - 1 - - - OPTLOCK - Options Lock - 30 - 1 - - - LOCK - FLASH_CR Lock - 31 - 1 - - - - - ECCR - ECCR - Flash ECC register - 0x18 - 0x20 - 0x00000000 - - - ADDR_ECC - ECC fail address - 0 - 17 - read-only - - - SYSF_ECC - System Flash ECC fail - 20 - 1 - read-only - - - ECCCIE - ECC correction interrupt enable - 24 - 1 - read-write - - - CPUID - CPU identification - 26 - 3 - read-only - - - ECCC - ECC correction - 30 - 1 - read-write - - - ECCD - ECC detection - 31 - 1 - read-write - - - - - OPTR - OPTR - Flash option register - 0x20 - 0x20 - read-write - 0x10708000 - - - RDP - Read protection level - 0 - 8 - - - ESE - Security enabled - 8 - 1 - - - BOR_LEV - BOR reset Level - 9 - 3 - - - nRST_STOP - nRST_STOP - 12 - 1 - - - nRST_STDBY - nRST_STDBY - 13 - 1 - - - nRST_SHDW - nRST_SHDW - 14 - 1 - - - IDWG_SW - Independent watchdog selection - 16 - 1 - - - IWDG_STOP - Independent watchdog counter freeze in Stop mode - 17 - 1 - - - IWDG_STDBY - Independent watchdog counter freeze in Standby mode - 18 - 1 - - - WWDG_SW - Window watchdog selection - 19 - 1 - - - nBOOT1 - Boot configuration - 23 - 1 - - - SRAM2_PE - SRAM2 parity check enable - 24 - 1 - - - SRAM2_RST - SRAM2 Erase when system reset - 25 - 1 - - - nSWBOOT0 - Software Boot0 - 26 - 1 - - - nBOOT0 - nBoot0 option bit - 27 - 1 - - - AGC_TRIM - Radio Automatic Gain Control Trimming - 29 - 3 - - - - - PCROP1ASR - PCROP1ASR - Flash Bank 1 PCROP Start address zone A register - 0x24 - 0x20 - read-write - 0xFFFFFE00 - - - PCROP1A_STRT - Bank 1 PCROPQ area start offset - 0 - 9 - - - - - PCROP1AER - PCROP1AER - Flash Bank 1 PCROP End address zone A register - 0x28 - 0x20 - read-write - 0x7FFFFE00 - - - PCROP1A_END - Bank 1 PCROP area end offset - 0 - 9 - - - PCROP_RDP - PCROP area preserved when RDP level decreased - 31 - 1 - - - - - WRP1AR - WRP1AR - Flash Bank 1 WRP area A address register - 0x2C - 0x20 - read-write - 0xFF00FF00 - - - WRP1A_STRT - Bank 1 WRP first area A start offset - 0 - 8 - - - WRP1A_END - Bank 1 WRP first area A end offset - 16 - 8 - - - - - WRP1BR - WRP1BR - Flash Bank 1 WRP area B address register - 0x30 - 0x20 - read-write - 0xFF00FF00 - - - WRP1B_STRT - Bank 1 WRP second area B end offset - 16 - 8 - - - WRP1B_END - Bank 1 WRP second area B start offset - 0 - 8 - - - - - PCROP1BSR - PCROP1BSR - Flash Bank 1 PCROP Start address area B register - 0x34 - 0x20 - read-write - 0xFFFFFE00 - - - PCROP1B_STRT - Bank 1 PCROP area B start offset - 0 - 9 - - - - - PCROP1BER - PCROP1BER - Flash Bank 1 PCROP End address area B register - 0x38 - 0x20 - read-write - 0xFFFFFE00 - - - PCROP1B_END - Bank 1 PCROP area end area B offset - 0 - 9 - - - - - IPCCBR - IPCCBR - IPCC mailbox data buffer address register - 0x3C - 0x20 - read-write - 0xFFFFC000 - - - IPCCDBA - PCC mailbox data buffer base address - 0 - 14 - - - - - C2ACR - C2ACR - CPU2 cortex M0 access control register - 0x5C - 0x20 - read-write - 0x00000600 - - - PRFTEN - CPU2 cortex M0 prefetch enable - 8 - 1 - - - ICEN - CPU2 cortex M0 instruction cache enable - 9 - 1 - - - ICRST - CPU2 cortex M0 instruction cache reset - 11 - 1 - - - PES - CPU2 cortex M0 program erase suspend request - 15 - 1 - - - - - C2SR - C2SR - CPU2 cortex M0 status register - 0x60 - 0x20 - read-write - 0x00000000 - - - EOP - End of operation - 0 - 1 - - - OPERR - Operation error - 1 - 1 - - - PROGERR - Programming error - 3 - 1 - - - WRPERR - write protection error - 4 - 1 - - - PGAERR - Programming alignment error - 5 - 1 - - - SIZERR - Size error - 6 - 1 - - - PGSERR - Programming sequence error - 7 - 1 - - - MISSERR - Fast programming data miss error - 8 - 1 - - - FASTERR - Fast programming error - 9 - 1 - - - RDERR - PCROP read error - 14 - 1 - - - BSY - Busy - 16 - 1 - - - CFGBSY - Programming or erase configuration busy - 18 - 1 - - - PESD - Programming or erase operation suspended - 19 - 1 - - - - - C2CR - C2CR - CPU2 cortex M0 control register - 0x64 - 0x20 - read-write - 0x00000000 - - - PG - Programming - 0 - 1 - - - PER - Page erase - 1 - 1 - - - MER - Masse erase - 2 - 1 - - - PNB - Page Number selection - 3 - 8 - - - STRT - Start - 16 - 1 - - - FSTPG - Fast programming - 18 - 1 - - - EOPIE - End of operation interrupt enable - 24 - 1 - - - ERRIE - Error interrupt enable - 25 - 1 - - - RDERRIE - PCROP read error interrupt enable - 26 - 1 - - - - - SFR - SFR - Secure flash start address register - 0x80 - 0x20 - read-write - 0xFFFFEE00 - - - SFSA - Secure flash start address - 0 - 8 - - - DDS - Disable Cortex M0 debug access - 12 - 1 - - - FSD - Flash security disable - 8 - 1 - - - - - SRRVR - SRRVR - Secure SRAM2 start address and cortex M0 reset vector register - 0x84 - 0x20 - read-write - 0x01000000 - - - SBRV - cortex M0 access control register - 0 - 18 - - - SBRSA - Secure backup SRAM2a start address - 18 - 5 - - - BRSD - backup SRAM2a security disable - 23 - 1 - - - SNBRSA - Secure non backup SRAM2a start address - 25 - 5 - - - C2OPT - CPU2 cortex M0 boot reset vector memory selection - 31 - 1 - - - NBRSD - non-backup SRAM2b security disable - 30 - 1 - - - - - - - QUADSPI - QuadSPI interface - QUADSPI - 0xA0001000 - - 0x0 - 0x400 - registers - - - QUADSPI - QSPI global interrupt - 50 - - - - CR - CR - control register - 0x0 - 0x20 - read-write - 0x00000000 - - - PRESCALER - Clock prescaler - 24 - 8 - - - PMM - Polling match mode - 23 - 1 - - - APMS - Automatic poll mode stop - 22 - 1 - - - TOIE - TimeOut interrupt enable - 20 - 1 - - - SMIE - Status match interrupt enable - 19 - 1 - - - FTIE - FIFO threshold interrupt enable - 18 - 1 - - - TCIE - Transfer complete interrupt enable - 17 - 1 - - - TEIE - Transfer error interrupt enable - 16 - 1 - - - FTHRES - FIFO threshold level - 8 - 5 - - - SSHIFT - Sample shift - 4 - 1 - - - TCEN - Timeout counter enable - 3 - 1 - - - DMAEN - DMA enable - 2 - 1 - - - ABORT - Abort request - 1 - 1 - - - EN - Enable - 0 - 1 - - - - - DCR - DCR - device configuration register - 0x4 - 0x20 - read-write - 0x00000000 - - - FSIZE - FLASH memory size - 16 - 5 - - - CSHT - Chip select high time - 8 - 3 - - - CKMODE - Mode 0 / mode 3 - 0 - 1 - - - - - SR - SR - status register - 0x8 - 0x20 - read-only - 0x00000000 - - - FLEVEL - FIFO level - 8 - 6 - - - BUSY - Busy - 5 - 1 - - - TOF - Timeout flag - 4 - 1 - - - SMF - Status match flag - 3 - 1 - - - FTF - FIFO threshold flag - 2 - 1 - - - TCF - Transfer complete flag - 1 - 1 - - - TEF - Transfer error flag - 0 - 1 - - - - - FCR - FCR - flag clear register - 0xC - 0x20 - read-write - 0x00000000 - - - CTOF - Clear timeout flag - 4 - 1 - - - CSMF - Clear status match flag - 3 - 1 - - - CTCF - Clear transfer complete flag - 1 - 1 - - - CTEF - Clear transfer error flag - 0 - 1 - - - - - DLR - DLR - data length register - 0x10 - 0x20 - read-write - 0x00000000 - - - DL - Data length - 0 - 32 - - - - - CCR - CCR - communication configuration register - 0x14 - 0x20 - read-write - 0x00000000 - - - DDRM - Double data rate mode - 31 - 1 - - - SIOO - Send instruction only once mode - 28 - 1 - - - FMODE - Functional mode - 26 - 2 - - - DMODE - Data mode - 24 - 2 - - - DCYC - Number of dummy cycles - 18 - 5 - - - ABSIZE - Alternate bytes size - 16 - 2 - - - ABMODE - Alternate bytes mode - 14 - 2 - - - ADSIZE - Address size - 12 - 2 - - - ADMODE - Address mode - 10 - 2 - - - IMODE - Instruction mode - 8 - 2 - - - INSTRUCTION - Instruction - 0 - 8 - - - - - AR - AR - address register - 0x18 - 0x20 - read-write - 0x00000000 - - - ADDRESS - Address - 0 - 32 - - - - - ABR - ABR - ABR - 0x1C - 0x20 - read-write - 0x00000000 - - - ALTERNATE - ALTERNATE - 0 - 32 - - - - - DR - DR - data register - 0x20 - 0x20 - read-write - 0x00000000 - - - DATA - Data - 0 - 32 - - - - - PSMKR - PSMKR - polling status mask register - 0x24 - 0x20 - read-write - 0x00000000 - - - MASK - Status mask - 0 - 32 - - - - - PSMAR - PSMAR - polling status match register - 0x28 - 0x20 - read-write - 0x00000000 - - - MATCH - Status match - 0 - 32 - - - - - PIR - PIR - polling interval register - 0x2C - 0x20 - read-write - 0x00000000 - - - INTERVAL - Polling interval - 0 - 16 - - - - - LPTR - LPTR - low-power timeout register - 0x30 - 0x20 - read-write - 0x00000000 - - - TIMEOUT - Timeout period - 0 - 16 - - - - - - - RCC - Reset and clock control - RCC - 0x58000000 - - 0x0 - 0x400 - registers - - - RCC - RCC global interrupt - 5 - - - - CR - CR - Clock control register - 0x0 - 0x20 - 0x00000061 - - - PLLSAI1RDY - SAI1 PLL clock ready flag - 27 - 1 - read-only - - - PLLSAI1ON - SAI1 PLL enable - 26 - 1 - read-write - - - PLLRDY - Main PLL clock ready flag - 25 - 1 - read-only - - - PLLON - Main PLL enable - 24 - 1 - read-write - - - HSEPRE - HSE sysclk and PLL M divider prescaler - 20 - 1 - read-write - - - CSSON - HSE Clock security system enable - 19 - 1 - write-only - - - HSEBYP - HSE crystal oscillator bypass - 18 - 1 - read-write - - - HSERDY - HSE clock ready flag - 17 - 1 - read-only - - - HSEON - HSE clock enabled - 16 - 1 - read-write - - - HSIKERDY - HSI kernel clock ready flag for peripherals requests - 12 - 1 - read-only - - - HSIASFS - HSI automatic start from Stop - 11 - 1 - read-write - - - HSIRDY - HSI clock ready flag - 10 - 1 - read-only - - - HSIKERON - HSI always enable for peripheral kernels - 9 - 1 - read-write - - - HSION - HSI clock enabled - 8 - 1 - read-write - - - MSIRANGE - MSI clock ranges - 4 - 4 - read-write - - - MSIPLLEN - MSI clock PLL enable - 2 - 1 - read-write - - - MSIRDY - MSI clock ready flag - 1 - 1 - read-only - - - MSION - MSI clock enable - 0 - 1 - read-write - - - - - ICSCR - ICSCR - Internal clock sources calibration register - 0x4 - 0x20 - 0x40000000 - - - HSITRIM - HSI clock trimming - 24 - 7 - read-write - - - HSICAL - HSI clock calibration - 16 - 8 - read-only - - - MSITRIM - MSI clock trimming - 8 - 8 - read-write - - - MSICAL - MSI clock calibration - 0 - 8 - read-only - - - - - CFGR - CFGR - Clock configuration register - 0x8 - 0x20 - 0x00070000 - - - MCOPRE - Microcontroller clock output prescaler - 28 - 3 - read-write - - - MCOSEL - Microcontroller clock output - 24 - 4 - read-write - - - PPRE2F - APB2 prescaler flag - 18 - 1 - read-only - - - PPRE1F - APB1 prescaler flag - 17 - 1 - read-only - - - HPREF - AHB prescaler flag - 16 - 1 - read-only - - - STOPWUCK - Wakeup from Stop and CSS backup clock selection - 15 - 1 - read-write - - - PPRE2 - APB high-speed prescaler (APB2) - 11 - 3 - read-write - - - PPRE1 - PB low-speed prescaler (APB1) - 8 - 3 - read-write - - - HPRE - AHB prescaler - 4 - 4 - read-write - - - SWS - System clock switch status - 2 - 2 - read-only - - - SW - System clock switch - 0 - 2 - read-write - - - - - PLLCFGR - PLLCFGR - PLLSYS configuration register - 0xC - 0x20 - read-write - 0x22040100 - - - PLLR - Main PLLSYS division factor R for SYSCLK (system clock) - 29 - 3 - - - PLLREN - Main PLLSYSR PLLCLK output enable - 28 - 1 - - - PLLQ - Main PLLSYS division factor Q for PLLSYSUSBCLK - 25 - 3 - - - PLLQEN - Main PLLSYSQ output enable - 24 - 1 - - - PLLP - Main PLL division factor P for PPLSYSSAICLK - 17 - 5 - - - PLLPEN - Main PLLSYSP output enable - 16 - 1 - - - PLLN - Main PLLSYS multiplication factor N - 8 - 7 - - - PLLM - Division factor M for the main PLL and audio PLL (PLLSAI1 and PLLSAI2) input clock - 4 - 3 - - - PLLSRC - Main PLL, PLLSAI1 and PLLSAI2 entry clock source - 0 - 2 - - - - - PLLSAI1CFGR - PLLSAI1CFGR - PLLSAI1 configuration register - 0x10 - 0x20 - read-write - 0x22040100 - - - PLLR - PLLSAI division factor R for PLLADC1CLK (ADC clock) - 29 - 3 - - - PLLREN - PLLSAI PLLADC1CLK output enable - 28 - 1 - - - PLLQ - SAIPLL division factor Q for PLLSAIUSBCLK (48 MHz clock) - 25 - 3 - - - PLLQEN - SAIPLL PLLSAIUSBCLK output enable - 24 - 1 - - - PLLP - SAI1PLL division factor P for PLLSAICLK (SAI1clock) - 17 - 5 - - - PLLPEN - SAIPLL PLLSAI1CLK output enable - 16 - 1 - - - PLLN - SAIPLL multiplication factor for VCO - 8 - 7 - - - - - CIER - CIER - Clock interrupt enable register - 0x18 - 0x20 - read-write - 0x00000000 - - - LSI2RDYIE - LSI2 ready interrupt enable - 11 - 1 - - - HSI48RDYIE - HSI48 ready interrupt enable - 10 - 1 - - - LSECSSIE - LSE clock security system interrupt enable - 9 - 1 - - - PLLSAI1RDYIE - PLLSAI1 ready interrupt enable - 6 - 1 - - - PLLRDYIE - PLLSYS ready interrupt enable - 5 - 1 - - - HSERDYIE - HSE ready interrupt enable - 4 - 1 - - - HSIRDYIE - HSI ready interrupt enable - 3 - 1 - - - MSIRDYIE - MSI ready interrupt enable - 2 - 1 - - - LSERDYIE - LSE ready interrupt enable - 1 - 1 - - - LSI1RDYIE - LSI1 ready interrupt enable - 0 - 1 - - - - - CIFR - CIFR - Clock interrupt flag register - 0x1C - 0x20 - read-only - 0x00000000 - - - LSI2RDYF - LSI2 ready interrupt flag - 11 - 1 - - - HSI48RDYF - HSI48 ready interrupt flag - 10 - 1 - - - LSECSSF - LSE Clock security system interrupt flag - 9 - 1 - - - HSECSSF - HSE Clock security system interrupt flag - 8 - 1 - - - PLLSAI1RDYF - PLLSAI1 ready interrupt flag - 6 - 1 - - - PLLRDYF - PLL ready interrupt flag - 5 - 1 - - - HSERDYF - HSE ready interrupt flag - 4 - 1 - - - HSIRDYF - HSI ready interrupt flag - 3 - 1 - - - MSIRDYF - MSI ready interrupt flag - 2 - 1 - - - LSERDYF - LSE ready interrupt flag - 1 - 1 - - - LSI1RDYF - LSI1 ready interrupt flag - 0 - 1 - - - - - CICR - CICR - Clock interrupt clear register - 0x20 - 0x20 - write-only - 0x00000000 - - - LSI2RDYC - LSI2 ready interrupt clear - 11 - 1 - - - HSI48RDYC - HSI48 ready interrupt clear - 10 - 1 - - - LSECSSC - LSE Clock security system interrupt clear - 9 - 1 - - - HSECSSC - HSE Clock security system interrupt clear - 8 - 1 - - - PLLSAI1RDYC - PLLSAI1 ready interrupt clear - 6 - 1 - - - PLLRDYC - PLL ready interrupt clear - 5 - 1 - - - HSERDYC - HSE ready interrupt clear - 4 - 1 - - - HSIRDYC - HSI ready interrupt clear - 3 - 1 - - - MSIRDYC - MSI ready interrupt clear - 2 - 1 - - - LSERDYC - LSE ready interrupt clear - 1 - 1 - - - LSI1RDYC - LSI1 ready interrupt clear - 0 - 1 - - - - - SMPSCR - SMPSCR - Step Down converter control register - 0x24 - 0x20 - 0x00000301 - - - SMPSSWS - Step Down converter clock switch status - 8 - 2 - read-only - - - SMPSDIV - Step Down converter clock prescaler - 4 - 2 - read-write - - - SMPSSEL - Step Down converter clock selection - 0 - 2 - read-write - - - - - AHB1RSTR - AHB1RSTR - AHB1 peripheral reset register - 0x28 - 0x20 - read-write - 0x00000000 - - - TSCRST - Touch Sensing Controller reset - 16 - 1 - - - CRCRST - CRC reset - 12 - 1 - - - DMAMUXRST - DMAMUX reset - 2 - 1 - - - DMA2RST - DMA2 reset - 1 - 1 - - - DMA1RST - DMA1 reset - 0 - 1 - - - - - AHB2RSTR - AHB2RSTR - AHB2 peripheral reset register - 0x2C - 0x20 - read-write - 0x00000000 - - - AES1RST - AES1 hardware accelerator reset - 16 - 1 - - - ADCRST - ADC reset - 13 - 1 - - - GPIOHRST - IO port H reset - 7 - 1 - - - GPIOERST - IO port E reset - 4 - 1 - - - GPIODRST - IO port D reset - 3 - 1 - - - GPIOCRST - IO port C reset - 2 - 1 - - - GPIOBRST - IO port B reset - 1 - 1 - - - GPIOARST - IO port A reset - 0 - 1 - - - - - AHB3RSTR - AHB3RSTR - AHB3 peripheral reset register - 0x30 - 0x20 - read-write - 0x00000000 - - - FLASHRST - Flash interface reset - 25 - 1 - - - IPCCRST - IPCC interface reset - 20 - 1 - - - HSEMRST - HSEM interface reset - 19 - 1 - - - RNGRST - RNG interface reset - 18 - 1 - - - AES2RST - AES2 interface reset - 17 - 1 - - - PKARST - PKA interface reset - 16 - 1 - - - QSPIRST - Quad SPI memory interface reset - 8 - 1 - - - - - APB1RSTR1 - APB1RSTR1 - APB1 peripheral reset register 1 - 0x38 - 0x20 - read-write - 0x00000000 - - - LPTIM1RST - Low Power Timer 1 reset - 31 - 1 - - - USBFSRST - USB FS reset - 26 - 1 - - - CRSRST - CRS reset - 24 - 1 - - - I2C3RST - I2C3 reset - 23 - 1 - - - I2C1RST - I2C1 reset - 21 - 1 - - - SPI2RST - SPI2 reset - 14 - 1 - - - LCDRST - LCD interface reset - 9 - 1 - - - TIM2RST - TIM2 timer reset - 0 - 1 - - - - - APB1RSTR2 - APB1RSTR2 - APB1 peripheral reset register 2 - 0x3C - 0x20 - read-write - 0x00000000 - - - LPTIM2RST - Low-power timer 2 reset - 5 - 1 - - - LPUART1RST - Low-power UART 1 reset - 0 - 1 - - - - - APB2RSTR - APB2RSTR - APB2 peripheral reset register - 0x40 - 0x20 - read-write - 0x00000000 - - - SAI1RST - Serial audio interface 1 (SAI1) reset - 21 - 1 - - - TIM17RST - TIM17 timer reset - 18 - 1 - - - TIM16RST - TIM16 timer reset - 17 - 1 - - - USART1RST - USART1 reset - 14 - 1 - - - SPI1RST - SPI1 reset - 12 - 1 - - - TIM1RST - TIM1 timer reset - 11 - 1 - - - - - APB3RSTR - APB3RSTR - APB3 peripheral reset register - 0x44 - 0x20 - read-write - 0x00000000 - - - RFRST - Radio system BLE reset - 0 - 1 - - - - - AHB1ENR - AHB1ENR - AHB1 peripheral clock enable register - 0x48 - 0x20 - read-write - 0x00000100 - - - TSCEN - Touch Sensing Controller clock enable - 16 - 1 - - - CRCEN - CPU1 CRC clock enable - 12 - 1 - - - DMAMUXEN - DMAMUX clock enable - 2 - 1 - - - DMA2EN - DMA2 clock enable - 1 - 1 - - - DMA1EN - DMA1 clock enable - 0 - 1 - - - - - AHB2ENR - AHB2ENR - AHB2 peripheral clock enable register - 0x4C - 0x20 - read-write - 0x00000000 - - - AES1EN - AES1 accelerator clock enable - 16 - 1 - - - ADCEN - ADC clock enable - 13 - 1 - - - GPIOHEN - IO port H clock enable - 7 - 1 - - - GPIOEEN - IO port E clock enable - 4 - 1 - - - GPIODEN - IO port D clock enable - 3 - 1 - - - GPIOCEN - IO port C clock enable - 2 - 1 - - - GPIOBEN - IO port B clock enable - 1 - 1 - - - GPIOAEN - IO port A clock enable - 0 - 1 - - - - - AHB3ENR - AHB3ENR - AHB3 peripheral clock enable register - 0x50 - 0x20 - read-write - 0x02080000 - - - FLASHEN - FLASHEN - 25 - 1 - - - IPCCEN - IPCCEN - 20 - 1 - - - HSEMEN - HSEMEN - 19 - 1 - - - RNGEN - RNGEN - 18 - 1 - - - AES2EN - AES2EN - 17 - 1 - - - PKAEN - PKAEN - 16 - 1 - - - QSPIEN - QSPIEN - 8 - 1 - - - - - APB1ENR1 - APB1ENR1 - APB1ENR1 - 0x58 - 0x20 - read-write - 0x00000400 - - - LPTIM1EN - CPU1 Low power timer 1 clock enable - 31 - 1 - - - USBEN - CPU1 USB clock enable - 26 - 1 - - - CRSEN - CPU1 CRS clock enable - 24 - 1 - - - I2C3EN - CPU1 I2C3 clock enable - 23 - 1 - - - I2C1EN - CPU1 I2C1 clock enable - 21 - 1 - - - SPI2EN - CPU1 SPI2 clock enable - 14 - 1 - - - WWDGEN - CPU1 Window watchdog clock enable - 11 - 1 - - - RTCAPBEN - CPU1 RTC APB clock enable - 10 - 1 - - - LCDEN - CPU1 LCD clock enable - 9 - 1 - - - TIM2EN - CPU1 TIM2 timer clock enable - 0 - 1 - - - - - APB1ENR2 - APB1ENR2 - APB1 peripheral clock enable register 2 - 0x5C - 0x20 - read-write - 0x00000000 - - - LPTIM2EN - CPU1 LPTIM2EN - 5 - 1 - - - LPUART1EN - CPU1 Low power UART 1 clock enable - 0 - 1 - - - - - APB2ENR - APB2ENR - APB2ENR - 0x60 - 0x20 - read-write - 0x00000000 - - - SAI1EN - CPU1 SAI1 clock enable - 21 - 1 - - - TIM17EN - CPU1 TIM17 timer clock enable - 18 - 1 - - - TIM16EN - CPU1 TIM16 timer clock enable - 17 - 1 - - - USART1EN - CPU1 USART1clock enable - 14 - 1 - - - SPI1EN - CPU1 SPI1 clock enable - 12 - 1 - - - TIM1EN - CPU1 TIM1 timer clock enable - 11 - 1 - - - - - AHB1SMENR - AHB1SMENR - AHB1 peripheral clocks enable in Sleep and Stop modes register - 0x68 - 0x20 - read-write - 0x00011207 - - - TSCSMEN - CPU1 Touch Sensing Controller clocks enable during Sleep and Stop modes - 16 - 1 - - - CRCSMEN - CPU1 CRCSMEN - 12 - 1 - - - SRAM1SMEN - CPU1 SRAM1 interface clocks enable during Sleep and Stop modes - 9 - 1 - - - DMAMUXSMEN - CPU1 DMAMUX clocks enable during Sleep and Stop modes - 2 - 1 - - - DMA2SMEN - CPU1 DMA2 clocks enable during Sleep and Stop modes - 1 - 1 - - - DMA1SMEN - CPU1 DMA1 clocks enable during Sleep and Stop modes - 0 - 1 - - - - - AHB2SMENR - AHB2SMENR - AHB2 peripheral clocks enable in Sleep and Stop modes register - 0x6C - 0x20 - read-write - 0x0001209F - - - AES1SMEN - CPU1 AES1 accelerator clocks enable during Sleep and Stop modes - 16 - 1 - - - ADCFSSMEN - CPU1 ADC clocks enable during Sleep and Stop modes - 13 - 1 - - - GPIOHSMEN - CPU1 IO port H clocks enable during Sleep and Stop modes - 7 - 1 - - - GPIOESMEN - CPU1 IO port E clocks enable during Sleep and Stop modes - 4 - 1 - - - GPIODSMEN - CPU1 IO port D clocks enable during Sleep and Stop modes - 3 - 1 - - - GPIOCSMEN - CPU1 IO port C clocks enable during Sleep and Stop modes - 2 - 1 - - - GPIOBSMEN - CPU1 IO port B clocks enable during Sleep and Stop modes - 1 - 1 - - - GPIOASMEN - CPU1 IO port A clocks enable during Sleep and Stop modes - 0 - 1 - - - - - AHB3SMENR - AHB3SMENR - AHB3 peripheral clocks enable in Sleep and Stop modes register - 0x70 - 0x20 - read-write - 0x03070100 - - - FLASHSMEN - Flash interface clocks enable during CPU1 sleep mode - 25 - 1 - - - SRAM2SMEN - SRAM2a and SRAM2b memory interface clocks enable during CPU1 sleep mode - 24 - 1 - - - RNGSMEN - True RNG clocks enable during CPU1 sleep mode - 18 - 1 - - - AES2SMEN - AES2 accelerator clocks enable during CPU1 sleep mode - 17 - 1 - - - PKASMEN - PKA accelerator clocks enable during CPU1 sleep mode - 16 - 1 - - - QSPISMEN - QSPISMEN - 8 - 1 - - - - - APB1SMENR1 - APB1SMENR1 - APB1SMENR1 - 0x78 - 0x20 - read-write - 0x85A04E01 - - - LPTIM1SMEN - Low power timer 1 clocks enable during CPU1 Sleep mode - 31 - 1 - - - USBSMEN - USB FS clocks enable during CPU1 Sleep mode - 26 - 1 - - - CRSMEN - CRS clocks enable during CPU1 Sleep mode - 24 - 1 - - - I2C3SMEN - I2C3 clocks enable during CPU1 Sleep mode - 23 - 1 - - - I2C1SMEN - I2C1 clocks enable during CPU1 Sleep mode - 21 - 1 - - - SPI2SMEN - SPI2 clocks enable during CPU1 Sleep mode - 14 - 1 - - - WWDGSMEN - Window watchdog clocks enable during CPU1 Sleep mode - 11 - 1 - - - RTCAPBSMEN - RTC APB clocks enable during CPU1 Sleep mode - 10 - 1 - - - LCDSMEN - LCD clocks enable during CPU1 Sleep mode - 9 - 1 - - - TIM2SMEN - TIM2 timer clocks enable during CPU1 Sleep mode - 0 - 1 - - - - - APB1SMENR2 - APB1SMENR2 - APB1 peripheral clocks enable in Sleep and Stop modes register 2 - 0x7C - 0x20 - read-write - 0x000000021 - - - LPTIM2SMEN - Low power timer 2 clocks enable during CPU1 Sleep mode - 5 - 1 - - - LPUART1SMEN - Low power UART 1 clocks enable during CPU1 Sleep mode - 0 - 1 - - - - - APB2SMENR - APB2SMENR - APB2SMENR - 0x80 - 0x20 - read-write - 0x00265800 - - - SAI1SMEN - SAI1 clocks enable during CPU1 Sleep mode - 21 - 1 - - - TIM17SMEN - TIM17 timer clocks enable during CPU1 Sleep mode - 18 - 1 - - - TIM16SMEN - TIM16 timer clocks enable during CPU1 Sleep mode - 17 - 1 - - - USART1SMEN - USART1clocks enable during CPU1 Sleep mode - 14 - 1 - - - SPI1SMEN - SPI1 clocks enable during CPU1 Sleep mode - 12 - 1 - - - TIM1SMEN - TIM1 timer clocks enable during CPU1 Sleep mode - 11 - 1 - - - - - CCIPR - CCIPR - CCIPR - 0x88 - 0x20 - read-write - 0x00000000 - - - RNGSEL - RNG clock source selection - 30 - 2 - - - ADCSEL - ADCs clock source selection - 28 - 2 - - - CLK48SEL - 48 MHz clock source selection - 26 - 2 - - - SAI1SEL - SAI1 clock source selection - 22 - 2 - - - LPTIM2SEL - Low power timer 2 clock source selection - 20 - 2 - - - LPTIM1SEL - Low power timer 1 clock source selection - 18 - 2 - - - I2C3SEL - I2C3 clock source selection - 16 - 2 - - - I2C1SEL - I2C1 clock source selection - 12 - 2 - - - LPUART1SEL - LPUART1 clock source selection - 10 - 2 - - - USART1SEL - USART1 clock source selection - 0 - 2 - - - - - BDCR - BDCR - BDCR - 0x90 - 0x20 - 0x00000000 - - - LSCOSEL - Low speed clock output selection - 25 - 1 - read-write - - - LSCOEN - Low speed clock output enable - 24 - 1 - read-write - - - BDRST - Backup domain software reset - 16 - 1 - read-write - - - RTCEN - RTC clock enable - 15 - 1 - read-write - - - RTCSEL - RTC clock source selection - 8 - 2 - read-write - - - LSECSSD_ - CSS on LSE failure detection - 6 - 1 - read-only - - - LSECSSON - LSECSSON - 5 - 1 - read-write - - - LSEDRV - SE oscillator drive capability - 3 - 2 - read-write - - - LSEBYP - LSE oscillator bypass - 2 - 1 - read-write - - - LSERDY - LSE oscillator ready - 1 - 1 - read-only - - - LSEON - LSE oscillator enable - 0 - 1 - read-write - - - - - CSR - CSR - CSR - 0x94 - 0x20 - 0x0C000000 - - - LPWRRSTF - Low-power reset flag - 31 - 1 - read-only - - - WWDGRSTF - Window watchdog reset flag - 30 - 1 - read-only - - - IWDGRSTF - Independent window watchdog reset flag - 29 - 1 - read-only - - - SFTRSTF - Software reset flag - 28 - 1 - read-only - - - BORRSTF - BOR flag - 27 - 1 - read-only - - - PINRSTF - Pin reset flag - 26 - 1 - read-only - - - OBLRSTF - Option byte loader reset flag - 25 - 1 - read-only - - - RMVF - Remove reset flag - 23 - 1 - read-write - - - RFWKPSEL - RF system wakeup clock source selection - 14 - 2 - read-write - - - LSI2BW - LSI2 oscillator bias configuration - 8 - 4 - read-write - - - LSI2TRIMOK - LSI2 oscillator trim OK - 5 - 1 - read-only - - - LSI2TRIMEN - LSI2 oscillator trimming enable - 4 - 1 - read-write - - - LSI2RDY - LSI2 oscillator ready - 3 - 1 - read-only - - - LSI2ON - LSI2 oscillator enabled - 2 - 1 - read-write - - - LSI1RDY - LSI1 oscillator ready - 1 - 1 - read-only - - - LSI1ON - LSI1 oscillator enabled - 0 - 1 - read-write - - - RFRSTS - Radio system BLE and 802.15.4 reset status - 16 - 1 - read-only - - - - - CRRCR - CRRCR - Clock recovery RC register - 0x98 - 0x20 - 0x00000000 - - - HSI48CAL - HSI48 clock calibration - 7 - 9 - read-only - - - HSI48RDY - HSI48 clock ready - 1 - 1 - read-only - - - HSI48ON - HSI48 oscillator enabled - 0 - 1 - read-write - - - - - HSECR - HSECR - Clock HSE register - 0x9C - 0x20 - 0x00000030 - - - HSETUNE - HSE capacitor tuning - 8 - 6 - read-only - - - HSEGMC - HSE current control - 4 - 3 - read-write - - - HSES - HSE Sense amplifier threshold - 3 - 1 - read-write - - - UNLOCKED - Register lock system - 0 - 1 - read-write - - - - - EXTCFGR - EXTCFGR - Extended clock recovery register - 0x108 - 0x20 - 0x00030000 - - - RFCSS - RF clock source selected - 20 - 1 - read-only - - - C2HPREF - CPU2 AHB prescaler flag - 17 - 1 - read-only - - - SHDHPREF - Shared AHB prescaler flag - 16 - 1 - read-only - - - C2HPRE - CPU2 AHB prescaler - 4 - 4 - read-write - - - SHDHPRE - Shared AHB prescaler - 0 - 4 - read-write - - - - - C2AHB1ENR - C2AHB1ENR - CPU2 AHB1 peripheral clock enable register - 0x148 - 0x20 - read-write - 0x00000000 - - - TSCEN - CPU2 Touch Sensing Controller clock enable - 16 - 1 - - - CRCEN - CPU2 CRC clock enable - 12 - 1 - - - SRAM1EN - CPU2 SRAM1 clock enable - 9 - 1 - - - DMAMUXEN - CPU2 DMAMUX clock enable - 2 - 1 - - - DMA2EN - CPU2 DMA2 clock enable - 1 - 1 - - - DMA1EN - CPU2 DMA1 clock enable - 0 - 1 - - - - - C2AHB2ENR - C2AHB2ENR - CPU2 AHB2 peripheral clock enable register - 0x14C - 0x20 - read-write - 0x00000000 - - - AES1EN - CPU2 AES1 accelerator clock enable - 16 - 1 - - - ADCEN - CPU2 ADC clock enable - 13 - 1 - - - GPIOHEN - CPU2 IO port H clock enable - 7 - 1 - - - GPIOEEN - CPU2 IO port E clock enable - 4 - 1 - - - GPIODEN - CPU2 IO port D clock enable - 3 - 1 - - - GPIOCEN - CPU2 IO port C clock enable - 2 - 1 - - - GPIOBEN - CPU2 IO port B clock enable - 1 - 1 - - - GPIOAEN - CPU2 IO port A clock enable - 0 - 1 - - - - - C2AHB3ENR - C2AHB3ENR - CPU2 AHB3 peripheral clock enable register - 0x150 - 0x20 - read-write - 0x02080000 - - - FLASHEN - CPU2 FLASHEN - 25 - 1 - - - IPCCEN - CPU2 IPCCEN - 20 - 1 - - - HSEMEN - CPU2 HSEMEN - 19 - 1 - - - RNGEN - CPU2 RNGEN - 18 - 1 - - - AES2EN - CPU2 AES2EN - 17 - 1 - - - PKAEN - CPU2 PKAEN - 16 - 1 - - - - - C2APB1ENR1 - C2APB1ENR1 - CPU2 APB1ENR1 - 0x158 - 0x20 - read-write - 0x00000400 - - - LPTIM1EN - CPU2 Low power timer 1 clock enable - 31 - 1 - - - USBEN - CPU2 USB clock enable - 26 - 1 - - - CRSEN - CPU2 CRS clock enable - 24 - 1 - - - I2C3EN - CPU2 I2C3 clock enable - 23 - 1 - - - I2C1EN - CPU2 I2C1 clock enable - 21 - 1 - - - SPI2EN - CPU2 SPI2 clock enable - 14 - 1 - - - RTCAPBEN - CPU2 RTC APB clock enable - 10 - 1 - - - LCDEN - CPU2 LCD clock enable - 9 - 1 - - - TIM2EN - CPU2 TIM2 timer clock enable - 0 - 1 - - - - - C2APB1ENR2 - C2APB1ENR2 - CPU2 APB1 peripheral clock enable register 2 - 0x15C - 0x20 - read-write - 0x00000000 - - - LPTIM2EN - CPU2 LPTIM2EN - 5 - 1 - - - LPUART1EN - CPU2 Low power UART 1 clock enable - 0 - 1 - - - - - C2APB2ENR - C2APB2ENR - CPU2 APB2ENR - 0x160 - 0x20 - read-write - 0x00000000 - - - SAI1EN - CPU2 SAI1 clock enable - 21 - 1 - - - TIM17EN - CPU2 TIM17 timer clock enable - 18 - 1 - - - TIM16EN - CPU2 TIM16 timer clock enable - 17 - 1 - - - USART1EN - CPU2 USART1clock enable - 14 - 1 - - - SPI1EN - CPU2 SPI1 clock enable - 12 - 1 - - - TIM1EN - CPU2 TIM1 timer clock enable - 11 - 1 - - - - - C2APB3ENR - C2APB3ENR - CPU2 APB3ENR - 0x164 - 0x20 - read-write - 0x00000000 - - - EN802 - CPU2 802.15.4 interface clock enable - 1 - 1 - - - BLEEN - CPU2 BLE interface clock enable - 0 - 1 - - - - - C2AHB1SMENR - C2AHB1SMENR - CPU2 AHB1 peripheral clocks enable in Sleep and Stop modes register - 0x168 - 0x20 - read-write - 0x00011207 - - - TSCSMEN - CPU2 Touch Sensing Controller clocks enable during Sleep and Stop modes - 16 - 1 - - - CRCSMEN - CPU2 CRCSMEN - 12 - 1 - - - SRAM1SMEN - SRAM1 interface clock enable during CPU1 CSleep mode - 9 - 1 - - - DMAMUXSMEN - CPU2 DMAMUX clocks enable during Sleep and Stop modes - 2 - 1 - - - DMA2SMEN - CPU2 DMA2 clocks enable during Sleep and Stop modes - 1 - 1 - - - DMA1SMEN - CPU2 DMA1 clocks enable during Sleep and Stop modes - 0 - 1 - - - - - C2AHB2SMENR - C2AHB2SMENR - CPU2 AHB2 peripheral clocks enable in Sleep and Stop modes register - 0x16C - 0x20 - read-write - 0x0001209F - - - AES1SMEN - CPU2 AES1 accelerator clocks enable during Sleep and Stop modes - 16 - 1 - - - ADCFSSMEN - CPU2 ADC clocks enable during Sleep and Stop modes - 13 - 1 - - - GPIOHSMEN - CPU2 IO port H clocks enable during Sleep and Stop modes - 7 - 1 - - - GPIOESMEN - CPU2 IO port E clocks enable during Sleep and Stop modes - 4 - 1 - - - GPIODSMEN - CPU2 IO port D clocks enable during Sleep and Stop modes - 3 - 1 - - - GPIOCSMEN - CPU2 IO port C clocks enable during Sleep and Stop modes - 2 - 1 - - - GPIOBSMEN - CPU2 IO port B clocks enable during Sleep and Stop modes - 1 - 1 - - - GPIOASMEN - CPU2 IO port A clocks enable during Sleep and Stop modes - 0 - 1 - - - - - C2AHB3SMENR - C2AHB3SMENR - CPU2 AHB3 peripheral clocks enable in Sleep and Stop modes register - 0x170 - 0x20 - read-write - 0x03070000 - - - FLASHSMEN - Flash interface clocks enable during CPU2 sleep modes - 25 - 1 - - - SRAM2SMEN - SRAM2a and SRAM2b memory interface clocks enable during CPU2 sleep modes - 24 - 1 - - - RNGSMEN - True RNG clocks enable during CPU2 sleep modes - 18 - 1 - - - AES2SMEN - AES2 accelerator clocks enable during CPU2 sleep modes - 17 - 1 - - - PKASMEN - PKA accelerator clocks enable during CPU2 sleep modes - 16 - 1 - - - - - C2APB1SMENR1 - C2APB1SMENR1 - CPU2 APB1SMENR1 - 0x178 - 0x20 - read-write - 0x85A04601 - - - LPTIM1SMEN - Low power timer 1 clocks enable during CPU2 Sleep mode - 31 - 1 - - - USBSMEN - USB FS clocks enable during CPU2 Sleep mode - 26 - 1 - - - CRSMEN - CRS clocks enable during CPU2 Sleep mode - 24 - 1 - - - I2C3SMEN - I2C3 clocks enable during CPU2 Sleep mode - 23 - 1 - - - I2C1SMEN - I2C1 clocks enable during CPU2 Sleep mode - 21 - 1 - - - SPI2SMEN - SPI2 clocks enable during CPU2 Sleep mode - 14 - 1 - - - RTCAPBSMEN - RTC APB clocks enable during CPU2 Sleep mode - 10 - 1 - - - LCDSMEN - LCD clocks enable during CPU2 Sleep mode - 9 - 1 - - - TIM2SMEN - TIM2 timer clocks enable during CPU2 Sleep mode - 0 - 1 - - - - - C2APB1SMENR2 - C2APB1SMENR2 - CPU2 APB1 peripheral clocks enable in Sleep and Stop modes register 2 - 0x17C - 0x20 - read-write - 0x000000021 - - - LPTIM2SMEN - Low power timer 2 clocks enable during CPU2 Sleep mode - 5 - 1 - - - LPUART1SMEN - Low power UART 1 clocks enable during CPU2 Sleep mode - 0 - 1 - - - - - C2APB2SMENR - C2APB2SMENR - CPU2 APB2SMENR - 0x180 - 0x20 - read-write - 0x00265800 - - - SAI1SMEN - SAI1 clocks enable during CPU2 Sleep mode - 21 - 1 - - - TIM17SMEN - TIM17 timer clocks enable during CPU2 Sleep mode - 18 - 1 - - - TIM16SMEN - TIM16 timer clocks enable during CPU2 Sleep mode - 17 - 1 - - - USART1SMEN - USART1clocks enable during CPU2 Sleep mode - 14 - 1 - - - SPI1SMEN - SPI1 clocks enable during CPU2 Sleep mode - 12 - 1 - - - TIM1SMEN - TIM1 timer clocks enable during CPU2 Sleep mode - 11 - 1 - - - - - C2APB3SMENR - C2APB3SMENR - CPU2 APB3SMENR - 0x184 - 0x20 - read-write - 0x0000003 - - - SMEN802 - 802.15.4 interface clocks enable during CPU2 Sleep modes - 1 - 1 - - - BLESMEN - BLE interface clocks enable during CPU2 Sleep mode - 0 - 1 - - - - - - - PWR - Power control - PWR - 0x58000400 - - 0x0 - 0x400 - registers - - - PWR_SOTF - PWR switching on the fly - interrupt - 43 - - - - CR1 - CR1 - Power control register 1 - 0x0 - 0x20 - read-write - 0x00000200 - - - LPR - Low-power run - 14 - 1 - - - VOS - Voltage scaling range selection - 9 - 2 - - - DBP - Disable backup domain write protection - 8 - 1 - - - FPDS - Flash power down mode during LPsSleep for CPU1 - 5 - 1 - - - FPDR - Flash power down mode during LPRun for CPU1 - 4 - 1 - - - LPMS - Low-power mode selection for CPU1 - 0 - 3 - - - - - CR2 - CR2 - Power control register 2 - 0x4 - 0x20 - read-write - 0x00000000 - - - USV - VDDUSB USB supply valid - 10 - 1 - - - PVME3 - Peripheral voltage monitoring 3 enable: VDDA vs. 1.62V - 6 - 1 - - - PVME1 - Peripheral voltage monitoring 1 enable: VDDUSB vs. 1.2V - 4 - 1 - - - PLS - Power voltage detector level selection - 1 - 3 - - - PVDE - Power voltage detector enable - 0 - 1 - - - - - CR3 - CR3 - Power control register 3 - 0x8 - 0x20 - read-write - 0x00008000 - - - EIWUL - Enable internal wakeup line for CPU1 - 15 - 1 - - - EC2H - Enable CPU2 Hold interrupt for CPU1 - 14 - 1 - - - E802A - Enable end of activity interrupt for CPU1 - 13 - 1 - - - EBLEA - Enable BLE end of activity interrupt for CPU1 - 11 - 1 - - - ECRPE - Enable critical radio phase end of activity interrupt for CPU1 - 12 - 1 - - - APC - Apply pull-up and pull-down configuration - 10 - 1 - - - RRS - SRAM2a retention in Standby mode - 9 - 1 - - - EBORHSDFB - Enable BORH and Step Down counverter forced in Bypass interrups for CPU1 - 8 - 1 - - - EWUP5 - Enable Wakeup pin WKUP5 - 4 - 1 - - - EWUP4 - Enable Wakeup pin WKUP4 - 3 - 1 - - - EWUP3 - Enable Wakeup pin WKUP3 - 2 - 1 - - - EWUP2 - Enable Wakeup pin WKUP2 - 1 - 1 - - - EWUP1 - Enable Wakeup pin WKUP1 - 0 - 1 - - - - - CR4 - CR4 - Power control register 4 - 0xC - 0x20 - read-write - 0x00000000 - - - C2BOOT - BOOT CPU2 after reset or wakeup from Stop or Standby modes - 15 - 1 - - - VBRS - VBAT battery charging resistor selection - 9 - 1 - - - VBE - VBAT battery charging enable - 8 - 1 - - - WP5 - Wakeup pin WKUP5 polarity - 4 - 1 - - - WP4 - Wakeup pin WKUP4 polarity - 3 - 1 - - - WP3 - Wakeup pin WKUP3 polarity - 2 - 1 - - - WP2 - Wakeup pin WKUP2 polarity - 1 - 1 - - - WP1 - Wakeup pin WKUP1 polarity - 0 - 1 - - - - - SR1 - SR1 - Power status register 1 - 0x10 - 0x20 - read-only - 0x00000000 - - - WUFI - Internal Wakeup interrupt flag - 15 - 1 - - - C2HF - CPU2 Hold interrupt flag - 14 - 1 - - - AF802 - 802.15.4 end of activity interrupt flag - 13 - 1 - - - BLEAF - BLE end of activity interrupt flag - 12 - 1 - - - CRPEF - Enable critical radio phase end of activity interrupt flag - 11 - 1 - - - WUF802 - 802.15.4 wakeup interrupt flag - 10 - 1 - - - BLEWUF - BLE wakeup interrupt flag - 9 - 1 - - - BORHF - BORH interrupt flag - 8 - 1 - - - SDFBF - Step Down converter forced in Bypass interrupt flag - 7 - 1 - - - CWUF5 - Wakeup flag 5 - 4 - 1 - - - CWUF4 - Wakeup flag 4 - 3 - 1 - - - CWUF3 - Wakeup flag 3 - 2 - 1 - - - CWUF2 - Wakeup flag 2 - 1 - 1 - - - CWUF1 - Wakeup flag 1 - 0 - 1 - - - - - SR2 - SR2 - Power status register 2 - 0x14 - 0x20 - read-only - 0x00000002 - - - PVMO3 - Peripheral voltage monitoring output: VDDA vs. 1.62 V - 14 - 1 - - - PVMO1 - Peripheral voltage monitoring output: VDDUSB vs. 1.2 V - 12 - 1 - - - PVDO - Power voltage detector output - 11 - 1 - - - VOSF - Voltage scaling flag - 10 - 1 - - - REGLPF - Low-power regulator flag - 9 - 1 - - - REGLPS - Low-power regulator started - 8 - 1 - - - SDSMPSF - Step Down converter SMPS mode flag - 1 - 1 - - - SDBF - Step Down converter Bypass mode flag - 0 - 1 - - - - - SCR - SCR - Power status clear register - 0x18 - 0x20 - write-only - 0x00000000 - - - CC2HF - Clear CPU2 Hold interrupt flag - 14 - 1 - - - C802AF - Clear 802.15.4 end of activity interrupt flag - 13 - 1 - - - CBLEAF - Clear BLE end of activity interrupt flag - 12 - 1 - - - CCRPEF - Clear critical radio phase end of activity interrupt flag - 11 - 1 - - - C802WUF - Clear 802.15.4 wakeup interrupt flag - 10 - 1 - - - CBLEWUF - Clear BLE wakeup interrupt flag - 9 - 1 - - - CBORHF - Clear BORH interrupt flag - 8 - 1 - - - CSMPSFBF - Clear SMPS Step Down converter forced in Bypass interrupt flag - 7 - 1 - - - CWUF5 - Clear wakeup flag 5 - 4 - 1 - - - CWUF4 - Clear wakeup flag 4 - 3 - 1 - - - CWUF3 - Clear wakeup flag 3 - 2 - 1 - - - CWUF2 - Clear wakeup flag 2 - 1 - 1 - - - CWUF1 - Clear wakeup flag 1 - 0 - 1 - - - - - CR5 - CR5 - Power control register 5 - 0x1C - 0x20 - read-write - 0x00004270 - - - SDEB - Enable Step Down converter SMPS mode enabled - 15 - 1 - - - SDBEN - Enable Step Down converter Bypass mode enabled - 14 - 1 - - - SMPSCFG - VOS configuration selection (non user) - 9 - 1 - - - BORHC - BORH configuration selection - 8 - 1 - - - SDSC - Step Down converter supplt startup current selection - 4 - 3 - - - SDVOS - Step Down converter voltage output scaling - 0 - 4 - - - - - PUCRA - PUCRA - Power Port A pull-up control register - 0x20 - 0x20 - read-write - 0x00000000 - - - PU15 - Port A pull-up bit y (y=0..15) - 15 - 1 - - - PU13 - Port A pull-up bit y (y=0..15) - 13 - 1 - - - PU12 - Port A pull-up bit y (y=0..15) - 12 - 1 - - - PU11 - Port A pull-up bit y (y=0..15) - 11 - 1 - - - PU10 - Port A pull-up bit y (y=0..15) - 10 - 1 - - - PU9 - Port A pull-up bit y (y=0..15) - 9 - 1 - - - PU8 - Port A pull-up bit y (y=0..15) - 8 - 1 - - - PU7 - Port A pull-up bit y (y=0..15) - 7 - 1 - - - PU6 - Port A pull-up bit y (y=0..15) - 6 - 1 - - - PU5 - Port A pull-up bit y (y=0..15) - 5 - 1 - - - PU4 - Port A pull-up bit y (y=0..15) - 4 - 1 - - - PU3 - Port A pull-up bit y (y=0..15) - 3 - 1 - - - PU2 - Port A pull-up bit y (y=0..15) - 2 - 1 - - - PU1 - Port A pull-up bit y (y=0..15) - 1 - 1 - - - PU0 - Port A pull-up bit y (y=0..15) - 0 - 1 - - - - - PDCRA - PDCRA - Power Port A pull-down control register - 0x24 - 0x20 - read-write - 0x00000000 - - - PD14 - Port A pull-down bit y (y=0..15) - 14 - 1 - - - PD12 - Port A pull-down bit y (y=0..15) - 12 - 1 - - - PD11 - Port A pull-down bit y (y=0..15) - 11 - 1 - - - PD10 - Port A pull-down bit y (y=0..15) - 10 - 1 - - - PD9 - Port A pull-down bit y (y=0..15) - 9 - 1 - - - PD8 - Port A pull-down bit y (y=0..15) - 8 - 1 - - - PD7 - Port A pull-down bit y (y=0..15) - 7 - 1 - - - PD6 - Port A pull-down bit y (y=0..15) - 6 - 1 - - - PD5 - Port A pull-down bit y (y=0..15) - 5 - 1 - - - PD4 - Port A pull-down bit y (y=0..15) - 4 - 1 - - - PD3 - Port A pull-down bit y (y=0..15) - 3 - 1 - - - PD2 - Port A pull-down bit y (y=0..15) - 2 - 1 - - - PD1 - Port A pull-down bit y (y=0..15) - 1 - 1 - - - PD0 - Port A pull-down bit y (y=0..15) - 0 - 1 - - - - - PUCRB - PUCRB - Power Port B pull-up control register - 0x28 - 0x20 - read-write - 0x00000000 - - - PU15 - Port B pull-up bit y (y=0..15) - 15 - 1 - - - PU14 - Port B pull-up bit y (y=0..15) - 14 - 1 - - - PU13 - Port B pull-up bit y (y=0..15) - 13 - 1 - - - PU12 - Port B pull-up bit y (y=0..15) - 12 - 1 - - - PU11 - Port B pull-up bit y (y=0..15) - 11 - 1 - - - PU10 - Port B pull-up bit y (y=0..15) - 10 - 1 - - - PU9 - Port B pull-up bit y (y=0..15) - 9 - 1 - - - PU8 - Port B pull-up bit y (y=0..15) - 8 - 1 - - - PU7 - Port B pull-up bit y (y=0..15) - 7 - 1 - - - PU6 - Port B pull-up bit y (y=0..15) - 6 - 1 - - - PU5 - Port B pull-up bit y (y=0..15) - 5 - 1 - - - PU4 - Port B pull-up bit y (y=0..15) - 4 - 1 - - - PU3 - Port B pull-up bit y (y=0..15) - 3 - 1 - - - PU2 - Port B pull-up bit y (y=0..15) - 2 - 1 - - - PU1 - Port B pull-up bit y (y=0..15) - 1 - 1 - - - PU0 - Port B pull-up bit y (y=0..15) - 0 - 1 - - - - - PDCRB - PDCRB - Power Port B pull-down control register - 0x2C - 0x20 - read-write - 0x00000000 - - - PD15 - Port B pull-down bit y (y=0..15) - 15 - 1 - - - PD14 - Port B pull-down bit y (y=0..15) - 14 - 1 - - - PD13 - Port B pull-down bit y (y=0..15) - 13 - 1 - - - PD12 - Port B pull-down bit y (y=0..15) - 12 - 1 - - - PD11 - Port B pull-down bit y (y=0..15) - 11 - 1 - - - PD10 - Port B pull-down bit y (y=0..15) - 10 - 1 - - - PD9 - Port B pull-down bit y (y=0..15) - 9 - 1 - - - PD8 - Port B pull-down bit y (y=0..15) - 8 - 1 - - - PD7 - Port B pull-down bit y (y=0..15) - 7 - 1 - - - PD6 - Port B pull-down bit y (y=0..15) - 6 - 1 - - - PD5 - Port B pull-down bit y (y=0..15) - 5 - 1 - - - PD3 - Port B pull-down bit y (y=0..15) - 3 - 1 - - - PD2 - Port B pull-down bit y (y=0..15) - 2 - 1 - - - PD1 - Port B pull-down bit y (y=0..15) - 1 - 1 - - - PD0 - Port B pull-down bit y (y=0..15) - 0 - 1 - - - - - PUCRC - PUCRC - Power Port C pull-up control register - 0x30 - 0x20 - read-write - 0x00000000 - - - PU15 - Port C pull-up bit y (y=0..15) - 15 - 1 - - - PU14 - Port C pull-up bit y (y=0..15) - 14 - 1 - - - PU13 - Port C pull-up bit y (y=0..15) - 13 - 1 - - - PU12 - Port C pull-up bit y (y=0..15) - 12 - 1 - - - PU11 - Port C pull-up bit y (y=0..15) - 11 - 1 - - - PU10 - Port C pull-up bit y (y=0..15) - 10 - 1 - - - PU9 - Port C pull-up bit y (y=0..15) - 9 - 1 - - - PU8 - Port C pull-up bit y (y=0..15) - 8 - 1 - - - PU7 - Port C pull-up bit y (y=0..15) - 7 - 1 - - - PU6 - Port C pull-up bit y (y=0..15) - 6 - 1 - - - PU5 - Port C pull-up bit y (y=0..15) - 5 - 1 - - - PU4 - Port C pull-up bit y (y=0..15) - 4 - 1 - - - PU3 - Port C pull-up bit y (y=0..15) - 3 - 1 - - - PU2 - Port C pull-up bit y (y=0..15) - 2 - 1 - - - PU1 - Port C pull-up bit y (y=0..15) - 1 - 1 - - - PU0 - Port C pull-up bit y (y=0..15) - 0 - 1 - - - - - PDCRC - PDCRC - Power Port C pull-down control register - 0x34 - 0x20 - read-write - 0x00000000 - - - PD15 - Port C pull-down bit y (y=0..15) - 15 - 1 - - - PD14 - Port C pull-down bit y (y=0..15) - 14 - 1 - - - PD13 - Port C pull-down bit y (y=0..15) - 13 - 1 - - - PD12 - Port C pull-down bit y (y=0..15) - 12 - 1 - - - PD11 - Port C pull-down bit y (y=0..15) - 11 - 1 - - - PD10 - Port C pull-down bit y (y=0..15) - 10 - 1 - - - PD9 - Port C pull-down bit y (y=0..15) - 9 - 1 - - - PD8 - Port C pull-down bit y (y=0..15) - 8 - 1 - - - PD7 - Port C pull-down bit y (y=0..15) - 7 - 1 - - - PD6 - Port C pull-down bit y (y=0..15) - 6 - 1 - - - PD5 - Port C pull-down bit y (y=0..15) - 5 - 1 - - - PD4 - Port C pull-down bit y (y=0..15) - 4 - 1 - - - PD3 - Port C pull-down bit y (y=0..15) - 3 - 1 - - - PD2 - Port C pull-down bit y (y=0..15) - 2 - 1 - - - PD1 - Port C pull-down bit y (y=0..15) - 1 - 1 - - - PD0 - Port C pull-down bit y (y=0..15) - 0 - 1 - - - - - PUCRD - PUCRD - Power Port D pull-up control register - 0x38 - 0x20 - read-write - 0x00000000 - - - PU15 - Port D pull-up bit y (y=0..15) - 15 - 1 - - - PU14 - Port D pull-up bit y (y=0..15) - 14 - 1 - - - PU13 - Port D pull-up bit y (y=0..15) - 13 - 1 - - - PU12 - Port D pull-up bit y (y=0..15) - 12 - 1 - - - PU11 - Port D pull-up bit y (y=0..15) - 11 - 1 - - - PU10 - Port D pull-up bit y (y=0..15) - 10 - 1 - - - PU9 - Port D pull-up bit y (y=0..15) - 9 - 1 - - - PU8 - Port D pull-up bit y (y=0..15) - 8 - 1 - - - PU7 - Port D pull-up bit y (y=0..15) - 7 - 1 - - - PU6 - Port D pull-up bit y (y=0..15) - 6 - 1 - - - PU5 - Port D pull-up bit y (y=0..15) - 5 - 1 - - - PU4 - Port D pull-up bit y (y=0..15) - 4 - 1 - - - PU3 - Port D pull-up bit y (y=0..15) - 3 - 1 - - - PU2 - Port D pull-up bit y (y=0..15) - 2 - 1 - - - PU1 - Port D pull-up bit y (y=0..15) - 1 - 1 - - - PU0 - Port D pull-up bit y (y=0..15) - 0 - 1 - - - - - PDCRD - PDCRD - Power Port D pull-down control register - 0x3C - 0x20 - read-write - 0x00000000 - - - PD15 - Port D pull-down bit y (y=0..15) - 15 - 1 - - - PD14 - Port D pull-down bit y (y=0..15) - 14 - 1 - - - PD13 - Port D pull-down bit y (y=0..15) - 13 - 1 - - - PD12 - Port D pull-down bit y (y=0..15) - 12 - 1 - - - PD11 - Port D pull-down bit y (y=0..15) - 11 - 1 - - - PD10 - Port D pull-down bit y (y=0..15) - 10 - 1 - - - PD9 - Port D pull-down bit y (y=0..15) - 9 - 1 - - - PD8 - Port D pull-down bit y (y=0..15) - 8 - 1 - - - PD7 - Port D pull-down bit y (y=0..15) - 7 - 1 - - - PD6 - Port D pull-down bit y (y=0..15) - 6 - 1 - - - PD5 - Port D pull-down bit y (y=0..15) - 5 - 1 - - - PD4 - Port D pull-down bit y (y=0..15) - 4 - 1 - - - PD3 - Port D pull-down bit y (y=0..15) - 3 - 1 - - - PD2 - Port D pull-down bit y (y=0..15) - 2 - 1 - - - PD1 - Port D pull-down bit y (y=0..15) - 1 - 1 - - - PD0 - Port D pull-down bit y (y=0..15) - 0 - 1 - - - - - PUCRE - PUCRE - Power Port E pull-up control register - 0x40 - 0x20 - read-write - 0x00000000 - - - PU4 - Port E pull-up bit y (y=0..15) - 4 - 1 - - - PU3 - Port E pull-up bit y (y=0..15) - 3 - 1 - - - PU2 - Port E pull-up bit y (y=0..15) - 2 - 1 - - - PU1 - Port E pull-up bit y (y=0..15) - 1 - 1 - - - PU0 - Port E pull-up bit y (y=0..15) - 0 - 1 - - - - - PDCRE - PDCRE - Power Port E pull-down control register - 0x44 - 0x20 - read-write - 0x00000000 - - - PD4 - Port E pull-down bit y (y=0..15) - 4 - 1 - - - PD3 - Port E pull-down bit y (y=0..15) - 3 - 1 - - - PD2 - Port E pull-down bit y (y=0..15) - 2 - 1 - - - PD1 - Port E pull-down bit y (y=0..15) - 1 - 1 - - - PD0 - Port E pull-down bit y (y=0..15) - 0 - 1 - - - - - PUCRH - PUCRH - Power Port H pull-up control register - 0x58 - 0x20 - read-write - 0x00000000 - - - PU3 - Port H pull-up bit y (y=0..1) - 3 - 1 - - - PU1 - Port H pull-up bit y (y=0..1) - 1 - 1 - - - PU0 - Port H pull-up bit y (y=0..1) - 0 - 1 - - - - - PDCRH - PDCRH - Power Port H pull-down control register - 0x5C - 0x20 - read-write - 0x00000000 - - - PD3 - Port H pull-down bit y (y=0..1) - 3 - 1 - - - PD1 - Port H pull-down bit y (y=0..1) - 1 - 1 - - - PD0 - Port H pull-down bit y (y=0..1) - 0 - 1 - - - - - C2CR1 - C2CR1 - CPU2 Power control register 1 - 0x80 - 0x20 - read-write - 0x00000000 - - - EWKUP802 - 802.15.4 external wakeup signal - 15 - 1 - - - BLEEWKUP - BLE external wakeup signal - 14 - 1 - - - FPDS - Flash power down mode during LPSleep for CPU2 - 5 - 1 - - - FPDR - Flash power down mode during LPRun for CPU2 - 4 - 1 - - - LPMS - Low-power mode selection for CPU2 - 0 - 3 - - - - - C2CR3 - C2CR3 - CPU2 Power control register 3 - 0x84 - 0x20 - read-write - 0X00008000 - - - EIWUL - Enable internal wakeup line for CPU2 - 15 - 1 - - - APC - Apply pull-up and pull-down configuration for CPU2 - 12 - 1 - - - E802WUP - Enable 802.15.4 host wakeup interrupt for CPU2 - 10 - 1 - - - EBLEWUP - Enable BLE host wakeup interrupt for CPU2 - 9 - 1 - - - EWUP5 - Enable Wakeup pin WKUP5 for CPU2 - 4 - 1 - - - EWUP4 - Enable Wakeup pin WKUP4 for CPU2 - 3 - 1 - - - EWUP3 - Enable Wakeup pin WKUP3 for CPU2 - 2 - 1 - - - EWUP2 - Enable Wakeup pin WKUP2 for CPU2 - 1 - 1 - - - EWUP1 - Enable Wakeup pin WKUP1 for CPU2 - 0 - 1 - - - - - EXTSCR - EXTSCR - Power status clear register - 0x88 - 0x20 - 0x00000000 - - - C2DS - CPU2 deepsleep mode - 15 - 1 - read-only - - - C1DS - CPU1 deepsleep mode - 14 - 1 - read-only - - - CRPF - Critical Radio system phase - 13 - 1 - read-only - - - C2STOPF - System Stop flag for CPU2 - 11 - 1 - read-only - - - C2SBF - System Standby flag for CPU2 - 10 - 1 - read-only - - - C1STOPF - System Stop flag for CPU1 - 9 - 1 - read-only - - - C1SBF - System Standby flag for CPU1 - 8 - 1 - read-only - - - CCRPF - Clear Critical Radio system phase - 2 - 1 - write-only - - - C2CSSF - Clear CPU2 Stop Standby flags - 1 - 1 - write-only - - - C1CSSF - Clear CPU1 Stop Standby flags - 0 - 1 - write-only - - - - - - - SYSCFG_VREFBUF - SYSCFG_VREFBUF - SYSCFG_VREFBUF - 0x40010000 - - 0x0 - 0x200 - registers - - - - SYSCFG_MEMRMP - SYSCFG_MEMRMP - memory remap register - 0x0 - 0x20 - read-write - 0x00000000 - - - MEM_MODE - Memory mapping selection - 0 - 3 - - - - - SYSCFG_CFGR1 - SYSCFG_CFGR1 - configuration register 1 - 0x4 - 0x20 - read-write - 0x7C000001 - - - FPU_IE - Floating Point Unit interrupts enable bits - 26 - 6 - - - I2C3_FMP - I2C3 Fast-mode Plus driving capability activation - 22 - 1 - - - I2C1_FMP - I2C1 Fast-mode Plus driving capability activation - 20 - 1 - - - I2C_PB9_FMP - Fast-mode Plus (Fm+) driving capability activation on PB9 - 19 - 1 - - - I2C_PB8_FMP - Fast-mode Plus (Fm+) driving capability activation on PB8 - 18 - 1 - - - I2C_PB7_FMP - Fast-mode Plus (Fm+) driving capability activation on PB7 - 17 - 1 - - - I2C_PB6_FMP - Fast-mode Plus (Fm+) driving capability activation on PB6 - 16 - 1 - - - BOOSTEN - I/O analog switch voltage booster enable - 8 - 1 - - - - - SYSCFG_EXTICR1 - SYSCFG_EXTICR1 - external interrupt configuration register 1 - 0x8 - 0x20 - read-write - 0x00000000 - - - EXTI3 - EXTI 3 configuration bits - 12 - 3 - - - EXTI2 - EXTI 2 configuration bits - 8 - 3 - - - EXTI1 - EXTI 1 configuration bits - 4 - 3 - - - EXTI0 - EXTI 0 configuration bits - 0 - 3 - - - - - SYSCFG_EXTICR2 - SYSCFG_EXTICR2 - external interrupt configuration register 2 - 0xC - 0x20 - read-write - 0x00000000 - - - EXTI7 - EXTI 7 configuration bits - 12 - 3 - - - EXTI6 - EXTI 6 configuration bits - 8 - 3 - - - EXTI5 - EXTI 5 configuration bits - 4 - 3 - - - EXTI4 - EXTI 4 configuration bits - 0 - 3 - - - - - SYSCFG_EXTICR3 - SYSCFG_EXTICR3 - external interrupt configuration register 3 - 0x10 - 0x20 - read-write - 0x00000000 - - - EXTI11 - EXTI 11 configuration bits - 12 - 3 - - - EXTI10 - EXTI 10 configuration bits - 8 - 3 - - - EXTI9 - EXTI 9 configuration bits - 4 - 3 - - - EXTI8 - EXTI 8 configuration bits - 0 - 3 - - - - - SYSCFG_EXTICR4 - SYSCFG_EXTICR4 - external interrupt configuration register 4 - 0x14 - 0x20 - read-write - 0x00000000 - - - EXTI15 - EXTI15 configuration bits - 12 - 3 - - - EXTI14 - EXTI14 configuration bits - 8 - 3 - - - EXTI13 - EXTI13 configuration bits - 4 - 3 - - - EXTI12 - EXTI12 configuration bits - 0 - 3 - - - - - SYSCFG_SCSR - SYSCFG_SCSR - SCSR - 0x18 - 0x20 - 0x00000000 - - - SRAM2BSY - SRAM2 busy by erase operation - 1 - 1 - read-only - - - SRAM2ER - SRAM2 Erase - 0 - 1 - read-write - - - C2RFD - CPU2 SRAM fetch (execution) disable. - 31 - 1 - read-write - - - - - SYSCFG_CFGR2 - SYSCFG_CFGR2 - CFGR2 - 0x1C - 0x20 - 0x00000000 - - - SPF - SRAM2 parity error flag - 8 - 1 - read-write - - - ECCL - ECC Lock - 3 - 1 - write-only - - - PVDL - PVD lock enable bit - 2 - 1 - write-only - - - SPL - SRAM2 parity lock bit - 1 - 1 - write-only - - - CLL - Cortex-M4 LOCKUP (Hardfault) output enable bit - 0 - 1 - write-only - - - - - SYSCFG_SWPR - SYSCFG_SWPR - SRAM2 write protection register - 0x20 - 0x20 - write-only - 0x00000000 - - - P31WP - SRAM2 page 31 write protection - 31 - 1 - - - P30WP - P30WP - 30 - 1 - - - P29WP - P29WP - 29 - 1 - - - P28WP - P28WP - 28 - 1 - - - P27WP - P27WP - 27 - 1 - - - P26WP - P26WP - 26 - 1 - - - P25WP - P25WP - 25 - 1 - - - P24WP - P24WP - 24 - 1 - - - P23WP - P23WP - 23 - 1 - - - P22WP - P22WP - 22 - 1 - - - P21WP - P21WP - 21 - 1 - - - P20WP - P20WP - 20 - 1 - - - P19WP - P19WP - 19 - 1 - - - P18WP - P18WP - 18 - 1 - - - P17WP - P17WP - 17 - 1 - - - P16WP - P16WP - 16 - 1 - - - P15WP - P15WP - 15 - 1 - - - P14WP - P14WP - 14 - 1 - - - P13WP - P13WP - 13 - 1 - - - P12WP - P12WP - 12 - 1 - - - P11WP - P11WP - 11 - 1 - - - P10WP - P10WP - 10 - 1 - - - P9WP - P9WP - 9 - 1 - - - P8WP - P8WP - 8 - 1 - - - P7WP - P7WP - 7 - 1 - - - P6WP - P6WP - 6 - 1 - - - P5WP - P5WP - 5 - 1 - - - P4WP - P4WP - 4 - 1 - - - P3WP - P3WP - 3 - 1 - - - P2WP - P2WP - 2 - 1 - - - P1WP - P1WP - 1 - 1 - - - P0WP - P0WP - 0 - 1 - - - - - SYSCFG_SKR - SYSCFG_SKR - SKR - 0x24 - 0x20 - write-only - 0x00000000 - - - KEY - SRAM2 write protection key for software erase - 0 - 8 - - - - - SYSCFG_SWPR2 - SYSCFG_SWPR2 - SRAM2 write protection register 2 - 0x28 - 0x20 - write-only - 0x00000000 - - - P63WP - SRAM2 page 63 write protection - 31 - 1 - - - P62WP - P62WP - 30 - 1 - - - P61WP - P61WP - 29 - 1 - - - P60WP - P60WP - 28 - 1 - - - P59WP - P59WP - 27 - 1 - - - P58WP - P58WP - 26 - 1 - - - P57WP - P57WP - 25 - 1 - - - P56WP - P56WP - 24 - 1 - - - P55WP - P55WP - 23 - 1 - - - P54WP - P54WP - 22 - 1 - - - P53WP - P53WP - 21 - 1 - - - P52WP - P52WP - 20 - 1 - - - P51WP - P51WP - 19 - 1 - - - P50WP - P50WP - 18 - 1 - - - P49WP - P49WP - 17 - 1 - - - P48WP - P48WP - 16 - 1 - - - P47WP - P47WP - 15 - 1 - - - P46WP - P46WP - 14 - 1 - - - P45WP - P45WP - 13 - 1 - - - P44WP - P44WP - 12 - 1 - - - P43WP - P43WP - 11 - 1 - - - P42WP - P42WP - 10 - 1 - - - P41WP - P41WP - 9 - 1 - - - P40WP - P40WP - 8 - 1 - - - P39WP - P39WP - 7 - 1 - - - P38WP - P38WP - 6 - 1 - - - P37WP - P37WP - 5 - 1 - - - P36WP - P36WP - 4 - 1 - - - P35WP - P35WP - 3 - 1 - - - P34WP - P34WP - 2 - 1 - - - P33WP - P33WP - 1 - 1 - - - P32WP - P32WP - 0 - 1 - - - - - VREFBUF_CSR - VREFBUF_CSR - VREF control and status register - 0x30 - 0x20 - 0x00000002 - - - ENVR - Voltage reference buffer enable - 0 - 1 - read-write - - - HIZ - High impedance mode - 1 - 1 - read-write - - - VRS - Voltage reference scale - 2 - 1 - read-write - - - VRR - Voltage reference buffer ready - 3 - 1 - read-only - - - - - VREFBUF_CCR - VREFBUF_CCR - calibration control register - 0x34 - 0x20 - read-write - 0x00000000 - - - TRIM - Trimming code - 0 - 6 - - - - - SYSCFG_IMR1 - SYSCFG_IMR1 - CPU1 interrupt mask register 1 - 0x100 - 0x20 - read-write - 0x00000000 - - - TIM1IM - Peripheral TIM1 interrupt mask to CPU1 - 13 - 1 - - - TIM16IM - Peripheral TIM16 interrupt mask to CPU1 - 14 - 1 - - - TIM17IM - Peripheral TIM17 interrupt mask to CPU1 - 15 - 1 - - - EXIT5IM - Peripheral EXIT5 interrupt mask to CPU1 - 21 - 1 - - - EXIT6IM - Peripheral EXIT6 interrupt mask to CPU1 - 22 - 1 - - - EXIT7IM - Peripheral EXIT7 interrupt mask to CPU1 - 23 - 1 - - - EXIT8IM - Peripheral EXIT8 interrupt mask to CPU1 - 24 - 1 - - - EXIT9IM - Peripheral EXIT9 interrupt mask to CPU1 - 25 - 1 - - - EXIT10IM - Peripheral EXIT10 interrupt mask to CPU1 - 26 - 1 - - - EXIT11IM - Peripheral EXIT11 interrupt mask to CPU1 - 27 - 1 - - - EXIT12IM - Peripheral EXIT12 interrupt mask to CPU1 - 28 - 1 - - - EXIT13IM - Peripheral EXIT13 interrupt mask to CPU1 - 29 - 1 - - - EXIT14IM - Peripheral EXIT14 interrupt mask to CPU1 - 30 - 1 - - - EXIT15IM - Peripheral EXIT15 interrupt mask to CPU1 - 31 - 1 - - - - - SYSCFG_IMR2 - SYSCFG_IMR2 - CPU1 interrupt mask register 2 - 0x104 - 0x20 - read-write - 0x00000000 - - - PVM3IM - Peripheral PVM3 interrupt mask to CPU1 - 18 - 1 - - - PVM1IM - Peripheral PVM1 interrupt mask to CPU1 - 16 - 1 - - - PVDIM - Peripheral PVD interrupt mask to CPU1 - 20 - 1 - - - - - SYSCFG_C2IMR1 - SYSCFG_C2IMR1 - CPU2 interrupt mask register 1 - 0x108 - 0x20 - read-write - 0x00000000 - - - RTCSTAMP - Peripheral RTCSTAMP interrupt mask to CPU2 - 0 - 1 - - - RTCWKUP - Peripheral RTCWKUP interrupt mask to CPU2 - 3 - 1 - - - RTCALARM - Peripheral RTCALARM interrupt mask to CPU2 - 4 - 1 - - - RCC - Peripheral RCC interrupt mask to CPU2 - 5 - 1 - - - FLASH - Peripheral FLASH interrupt mask to CPU2 - 6 - 1 - - - PKA - Peripheral PKA interrupt mask to CPU2 - 8 - 1 - - - RNG - Peripheral RNG interrupt mask to CPU2 - 9 - 1 - - - AES1 - Peripheral AES1 interrupt mask to CPU2 - 10 - 1 - - - COMP - Peripheral COMP interrupt mask to CPU2 - 11 - 1 - - - ADC - Peripheral ADC interrupt mask to CPU2 - 12 - 1 - - - - - SYSCFG_C2IMR2 - SYSCFG_C2IMR2 - CPU2 interrupt mask register 1 - 0x10C - 0x20 - read-write - 0x00000000 - - - DMA1_CH1_IM - Peripheral DMA1 CH1 interrupt mask to CPU2 - 0 - 1 - - - DMA1_CH2_IM - Peripheral DMA1 CH2 interrupt mask to CPU2 - 1 - 1 - - - DMA1_CH3_IM - Peripheral DMA1 CH3 interrupt mask to CPU2 - 2 - 1 - - - DMA1_CH4_IM - Peripheral DMA1 CH4 interrupt mask to CPU2 - 3 - 1 - - - DMA1_CH5_IM - Peripheral DMA1 CH5 interrupt mask to CPU2 - 4 - 1 - - - DMA1_CH6_IM - Peripheral DMA1 CH6 interrupt mask to CPU2 - 5 - 1 - - - DMA1_CH7_IM - Peripheral DMA1 CH7 interrupt mask to CPU2 - 6 - 1 - - - DMA2_CH1_IM - Peripheral DMA2 CH1 interrupt mask to CPU1 - 8 - 1 - - - DMA2_CH2_IM - Peripheral DMA2 CH2 interrupt mask to CPU1 - 9 - 1 - - - DMA2_CH3_IM - Peripheral DMA2 CH3 interrupt mask to CPU1 - 10 - 1 - - - DMA2_CH4_IM - Peripheral DMA2 CH4 interrupt mask to CPU1 - 11 - 1 - - - DMA2_CH5_IM - Peripheral DMA2 CH5 interrupt mask to CPU1 - 12 - 1 - - - DMA2_CH6_IM - Peripheral DMA2 CH6 interrupt mask to CPU1 - 13 - 1 - - - DMA2_CH7_IM - Peripheral DMA2 CH7 interrupt mask to CPU1 - 14 - 1 - - - DMAM_UX1_IM - Peripheral DMAM UX1 interrupt mask to CPU1 - 15 - 1 - - - PVM1IM - Peripheral PVM1IM interrupt mask to CPU1 - 16 - 1 - - - PVM3IM - Peripheral PVM3IM interrupt mask to CPU1 - 18 - 1 - - - PVDIM - Peripheral PVDIM interrupt mask to CPU1 - 20 - 1 - - - TSCIM - Peripheral TSCIM interrupt mask to CPU1 - 21 - 1 - - - LCDIM - Peripheral LCDIM interrupt mask to CPU1 - 22 - 1 - - - - - SYSCFG_SIPCR - SYSCFG_SIPCR - secure IP control register - 0x110 - 0x20 - read-write - 0x00000000 - - - SAES1 - Enable AES1 KEY[7:0] security. - 0 - 1 - - - SAES2 - Enable AES2 security. - 1 - 1 - - - SPKA - Enable PKA security - 2 - 1 - - - SRNG - Enable True RNG security - 3 - 1 - - - - - - - COMP - Comparator instance 1 - COMP - 0x40010200 - - 0x0 - 0x9 - registers - - - COMP - COMP2 & COMP1 interrupt through - AIEC[21:20] - 22 - - - - COMP1_CSR - COMP1_CSR - Comparator control and status register - 0x0 - 0x20 - 0x00000000 - - - COMP1_EN - Comparator enable - 0 - 1 - read-write - - - COMP1_PWRMODE - Comparator power mode - 2 - 2 - read-write - - - COMP1_INMSEL - Comparator input minus selection - 4 - 3 - read-write - - - COMP1_INPSEL - Comparator input plus selection - 7 - 2 - read-write - - - COMP1_POLARITY - Comparator output polarity - 15 - 1 - read-write - - - COMP1_HYST - Comparator hysteresis - 16 - 2 - read-write - - - COMP1_BLANKING - Comparator blanking source - 18 - 3 - read-write - - - COMP1_BRGEN - Comparator voltage scaler enable - 22 - 1 - read-write - - - COMP1_SCALEN - Comparator scaler bridge enable - 23 - 1 - read-write - - - COMP1_INMESEL - Comparator input minus extended selection - 25 - 2 - read-write - - - COMP1_VALUE - Comparator output level - 30 - 1 - read-only - - - COMP1_LOCK - Comparator lock - 31 - 1 - read-write - - - - - COMP2_CSR - COMP2_CSR - Comparator 2 control and status register - 0x4 - 0x20 - 0x00000000 - - - COMP2_EN - Comparator 2 enable bit - 0 - 1 - read-write - - - COMP2_PWRMODE - Power Mode of the comparator 2 - 2 - 2 - read-write - - - COMP2_INMSEL - Comparator 2 input minus selection bits - 4 - 2 - read-write - - - COMP2_INPSEL - Comparator 1 input plus selection bit - 7 - 2 - read-write - - - COMP2_WINMODE - Windows mode selection bit - 9 - 1 - read-write - - - COMP2_POLARITY - Comparator 2 polarity selection bit - 15 - 1 - read-write - - - COMP2_HYST - Comparator 2 hysteresis selection bits - 16 - 2 - read-write - - - COMP2_BLANKING - Comparator 2 blanking source selection bits - 18 - 3 - read-write - - - COMP2_BRGEN - Scaler bridge enable - 22 - 1 - read-write - - - COMP2_SCALEN - Voltage scaler enable bit - 23 - 1 - read-write - - - COMP2_INMESEL - comparator 2 input minus extended selection bits. - 25 - 2 - read-write - - - COMP2_VALUE - Comparator 2 output status bit - 30 - 1 - read-only - - - COMP2_LOCK - CSR register lock bit - 31 - 1 - read-write - - - - - - - RNG - Random number generator - RNG - 0x58001000 - - 0x0 - 0x400 - registers - - - True_RNG - True random number generator - interrupt - 53 - - - - CR - CR - control register - 0x0 - 0x20 - read-write - 0x00000000 - - - RNGEN - Random number generator enable - 2 - 1 - - - IE - Interrupt enable - 3 - 1 - - - BYP - Bypass mode enable - 6 - 1 - - - - - SR - SR - status register - 0x4 - 0x20 - 0x00000000 - - - SEIS - Seed error interrupt status - 6 - 1 - read-write - - - CEIS - Clock error interrupt status - 5 - 1 - read-write - - - SECS - Seed error current status - 2 - 1 - read-only - - - CECS - Clock error current status - 1 - 1 - read-only - - - DRDY - Data ready - 0 - 1 - read-only - - - - - DR - DR - data register - 0x8 - 0x20 - read-only - 0x00000000 - - - RNDATA - Random data - 0 - 32 - - - - - - - AES1 - Advanced encryption standard hardware accelerator 1 - AES1 - 0x50060000 - - 0x0 - 0x400 - registers - - - AES1 - AES1 global interrupt - 51 - - - - CR - CR - control register - 0x0 - 0x20 - read-write - 0x00000000 - - - NPBLB - Number of padding bytes in last block of payload - 20 - 4 - - - KEYSIZE - Key size selection - 18 - 1 - - - CHMOD2 - AES chaining mode Bit2 - 16 - 1 - - - GCMPH - Used only for GCM, CCM and GMAC algorithms and has no effect when other algorithms are selected - 13 - 2 - - - DMAOUTEN - Enable DMA management of data output phase - 12 - 1 - - - DMAINEN - Enable DMA management of data input phase - 11 - 1 - - - ERRIE - Error interrupt enable - 10 - 1 - - - CCFIE - CCF flag interrupt enable - 9 - 1 - - - ERRC - Error clear - 8 - 1 - - - CCFC - Computation Complete Flag Clear - 7 - 1 - - - CHMOD10 - AES chaining mode Bit1 Bit0 - 5 - 2 - - - MODE - AES operating mode - 3 - 2 - - - DATATYPE - Data type selection (for data in and data out to/from the cryptographic block) - 1 - 2 - - - EN - AES enable - 0 - 1 - - - - - SR - SR - status register - 0x4 - 0x20 - read-only - 0x00000000 - - - BUSY - Busy flag - 3 - 1 - - - WRERR - Write error flag - 2 - 1 - - - RDERR - Read error flag - 1 - 1 - - - CCF - Computation complete flag - 0 - 1 - - - - - DINR - DINR - data input register - 0x8 - 0x20 - read-write - 0x00000000 - - - AES_DINR - Data Input Register - 0 - 32 - - - - - DOUTR - DOUTR - data output register - 0xC - 0x20 - read-only - 0x00000000 - - - AES_DOUTR - Data output register - 0 - 32 - - - - - KEYR0 - KEYR0 - key register 0 - 0x10 - 0x20 - read-write - 0x00000000 - - - AES_KEYR0 - Data Output Register (LSB key [31:0]) - 0 - 32 - - - - - KEYR1 - KEYR1 - key register 1 - 0x14 - 0x20 - read-write - 0x00000000 - - - AES_KEYR1 - AES key register (key [63:32]) - 0 - 32 - - - - - KEYR2 - KEYR2 - key register 2 - 0x18 - 0x20 - read-write - 0x00000000 - - - AES_KEYR2 - AES key register (key [95:64]) - 0 - 32 - - - - - KEYR3 - KEYR3 - key register 3 - 0x1C - 0x20 - read-write - 0x00000000 - - - AES_KEYR3 - AES key register (MSB key [127:96]) - 0 - 32 - - - - - IVR0 - IVR0 - initialization vector register 0 - 0x20 - 0x20 - read-write - 0x00000000 - - - AES_IVR0 - initialization vector register (LSB IVR [31:0]) - 0 - 32 - - - - - IVR1 - IVR1 - initialization vector register 1 - 0x24 - 0x20 - read-write - 0x00000000 - - - AES_IVR1 - Initialization Vector Register (IVR [63:32]) - 0 - 32 - - - - - IVR2 - IVR2 - initialization vector register 2 - 0x28 - 0x20 - read-write - 0x00000000 - - - AES_IVR2 - Initialization Vector Register (IVR [95:64]) - 0 - 32 - - - - - IVR3 - IVR3 - initialization vector register 3 - 0x2C - 0x20 - read-write - 0x00000000 - - - AES_IVR3 - Initialization Vector Register (MSB IVR [127:96]) - 0 - 32 - - - - - KEYR4 - KEYR4 - key register 4 - 0x30 - 0x20 - read-write - 0x00000000 - - - AES_KEYR4 - AES key register (MSB key [159:128]) - 0 - 32 - - - - - KEYR5 - KEYR5 - key register 5 - 0x34 - 0x20 - read-write - 0x00000000 - - - AES_KEYR5 - AES key register (MSB key [191:160]) - 0 - 32 - - - - - KEYR6 - KEYR6 - key register 6 - 0x38 - 0x20 - read-write - 0x00000000 - - - AES_KEYR6 - AES key register (MSB key [223:192]) - 0 - 32 - - - - - KEYR7 - KEYR7 - key register 7 - 0x3C - 0x20 - read-write - 0x00000000 - - - AES_KEYR7 - AES key register (MSB key [255:224]) - 0 - 32 - - - - - SUSP0R - SUSP0R - AES suspend register 0 - 0x40 - 0x20 - read-write - 0x00000000 - - - AES_SUSP0R - AES suspend register 0 - 0 - 32 - - - - - SUSP1R - SUSP1R - AES suspend register 1 - 0x44 - 0x20 - read-write - 0x00000000 - - - AES_SUSP1R - AES suspend register 1 - 0 - 32 - - - - - SUSP2R - SUSP2R - AES suspend register 2 - 0x48 - 0x20 - read-write - 0x00000000 - - - AES_SUSP2R - AES suspend register 2 - 0 - 32 - - - - - SUSP3R - SUSP3R - AES suspend register 3 - 0x4C - 0x20 - read-write - 0x00000000 - - - AES_SUSP3R - AES suspend register 3 - 0 - 32 - - - - - SUSP4R - SUSP4R - AES suspend register 4 - 0x50 - 0x20 - read-write - 0x00000000 - - - AES_SUSP4R - AES suspend register 4 - 0 - 32 - - - - - SUSP5R - SUSP5R - AES suspend register 5 - 0x54 - 0x20 - read-write - 0x00000000 - - - AES_SUSP5R - AES suspend register 5 - 0 - 32 - - - - - SUSP6R - SUSP6R - AES suspend register 6 - 0x58 - 0x20 - read-write - 0x00000000 - - - AES_SUSP6R - AES suspend register 6 - 0 - 32 - - - - - SUSP7R - SUSP7R - AES suspend register 7 - 0x5C - 0x20 - read-write - 0x00000000 - - - AES_SUSP7R - AES suspend register 7 - 0 - 32 - - - - - HWCFR - HWCFR - AES hardware configuration register - 0x3F0 - 0x20 - read-only - 0x00000002 - - - CFG4 - HW Generic 4 - 12 - 4 - - - CFG3 - HW Generic 3 - 8 - 4 - - - CFG2 - HW Generic 2 - 4 - 4 - - - CFG1 - HW Generic 1 - 0 - 4 - - - - - VERR - VERR - AES version register - 0x3F4 - 0x20 - read-only - 0x00000010 - - - MAJREV - Major revision - 4 - 4 - - - MINREV - Minor revision - 0 - 4 - - - - - IPIDR - IPIDR - AES identification register - 0x3F8 - 0x20 - read-only - 0x00170023 - - - ID - Identification code - 0 - 32 - - - - - SIDR - SIDR - AES size ID register - 0x3FC - 0x20 - read-only - 0xA3C5DD01 - - - ID - Size Identification code - 0 - 32 - - - - - - - AES2 - Advanced encryption standard hardware accelerator 1 - AES1 - 0x58001800 - - 0x0 - 0x400 - registers - - - AES2 - AES2 global interrupt - 52 - - - - CR - CR - control register - 0x0 - 0x20 - read-write - 0x00000000 - - - NPBLB - Number of padding bytes in last block of payload - 20 - 4 - - - KEYSIZE - Key size selection - 18 - 1 - - - CHMOD2 - AES chaining mode Bit2 - 16 - 1 - - - GCMPH - Used only for GCM, CCM and GMAC algorithms and has no effect when other algorithms are selected - 13 - 2 - - - DMAOUTEN - Enable DMA management of data output phase - 12 - 1 - - - DMAINEN - Enable DMA management of data input phase - 11 - 1 - - - ERRIE - Error interrupt enable - 10 - 1 - - - CCFIE - CCF flag interrupt enable - 9 - 1 - - - ERRC - Error clear - 8 - 1 - - - CCFC - Computation Complete Flag Clear - 7 - 1 - - - CHMOD10 - AES chaining mode Bit1 Bit0 - 5 - 2 - - - MODE - AES operating mode - 3 - 2 - - - DATATYPE - Data type selection (for data in and data out to/from the cryptographic block) - 1 - 2 - - - EN - AES enable - 0 - 1 - - - - - SR - SR - status register - 0x4 - 0x20 - read-only - 0x00000000 - - - BUSY - Busy flag - 3 - 1 - - - WRERR - Write error flag - 2 - 1 - - - RDERR - Read error flag - 1 - 1 - - - CCF - Computation complete flag - 0 - 1 - - - - - DINR - DINR - data input register - 0x8 - 0x20 - read-write - 0x00000000 - - - AES_DINR - Data Input Register - 0 - 32 - - - - - DOUTR - DOUTR - data output register - 0xC - 0x20 - read-only - 0x00000000 - - - AES_DOUTR - Data output register - 0 - 32 - - - - - KEYR0 - KEYR0 - key register 0 - 0x10 - 0x20 - read-write - 0x00000000 - - - AES_KEYR0 - Data Output Register (LSB key [31:0]) - 0 - 32 - - - - - KEYR1 - KEYR1 - key register 1 - 0x14 - 0x20 - read-write - 0x00000000 - - - AES_KEYR1 - AES key register (key [63:32]) - 0 - 32 - - - - - KEYR2 - KEYR2 - key register 2 - 0x18 - 0x20 - read-write - 0x00000000 - - - AES_KEYR2 - AES key register (key [95:64]) - 0 - 32 - - - - - KEYR3 - KEYR3 - key register 3 - 0x1C - 0x20 - read-write - 0x00000000 - - - AES_KEYR3 - AES key register (MSB key [127:96]) - 0 - 32 - - - - - IVR0 - IVR0 - initialization vector register 0 - 0x20 - 0x20 - read-write - 0x00000000 - - - AES_IVR0 - initialization vector register (LSB IVR [31:0]) - 0 - 32 - - - - - IVR1 - IVR1 - initialization vector register 1 - 0x24 - 0x20 - read-write - 0x00000000 - - - AES_IVR1 - Initialization Vector Register (IVR [63:32]) - 0 - 32 - - - - - IVR2 - IVR2 - initialization vector register 2 - 0x28 - 0x20 - read-write - 0x00000000 - - - AES_IVR2 - Initialization Vector Register (IVR [95:64]) - 0 - 32 - - - - - IVR3 - IVR3 - initialization vector register 3 - 0x2C - 0x20 - read-write - 0x00000000 - - - AES_IVR3 - Initialization Vector Register (MSB IVR [127:96]) - 0 - 32 - - - - - KEYR4 - KEYR4 - key register 4 - 0x30 - 0x20 - read-write - 0x00000000 - - - AES_KEYR4 - AES key register (MSB key [159:128]) - 0 - 32 - - - - - KEYR5 - KEYR5 - key register 5 - 0x34 - 0x20 - read-write - 0x00000000 - - - AES_KEYR5 - AES key register (MSB key [191:160]) - 0 - 32 - - - - - KEYR6 - KEYR6 - key register 6 - 0x38 - 0x20 - read-write - 0x00000000 - - - AES_KEYR6 - AES key register (MSB key [223:192]) - 0 - 32 - - - - - KEYR7 - KEYR7 - key register 7 - 0x3C - 0x20 - read-write - 0x00000000 - - - AES_KEYR7 - AES key register (MSB key [255:224]) - 0 - 32 - - - - - SUSP0R - SUSP0R - AES suspend register 0 - 0x40 - 0x20 - read-write - 0x00000000 - - - AES_SUSP0R - AES suspend register 0 - 0 - 32 - - - - - SUSP1R - SUSP1R - AES suspend register 1 - 0x44 - 0x20 - read-write - 0x00000000 - - - AES_SUSP1R - AES suspend register 1 - 0 - 32 - - - - - SUSP2R - SUSP2R - AES suspend register 2 - 0x48 - 0x20 - read-write - 0x00000000 - - - AES_SUSP2R - AES suspend register 2 - 0 - 32 - - - - - SUSP3R - SUSP3R - AES suspend register 3 - 0x4C - 0x20 - read-write - 0x00000000 - - - AES_SUSP3R - AES suspend register 3 - 0 - 32 - - - - - SUSP4R - SUSP4R - AES suspend register 4 - 0x50 - 0x20 - read-write - 0x00000000 - - - AES_SUSP4R - AES suspend register 4 - 0 - 32 - - - - - SUSP5R - SUSP5R - AES suspend register 5 - 0x54 - 0x20 - read-write - 0x00000000 - - - AES_SUSP5R - AES suspend register 5 - 0 - 32 - - - - - SUSP6R - SUSP6R - AES suspend register 6 - 0x58 - 0x20 - read-write - 0x00000000 - - - AES_SUSP6R - AES suspend register 6 - 0 - 32 - - - - - SUSP7R - SUSP7R - AES suspend register 7 - 0x5C - 0x20 - read-write - 0x00000000 - - - AES_SUSP7R - AES suspend register 7 - 0 - 32 - - - - - HWCFR - HWCFR - AES hardware configuration register - 0x60 - 0x20 - read-only - 0x00000002 - - - CFG4 - HW Generic 4 - 12 - 4 - - - CFG3 - HW Generic 3 - 8 - 4 - - - CFG2 - HW Generic 2 - 4 - 4 - - - CFG1 - HW Generic 1 - 0 - 4 - - - - - VERR - VERR - AES version register - 0x64 - 0x20 - read-only - 0x00000010 - - - MAJREV - Major revision - 4 - 4 - - - MINREV - Minor revision - 0 - 4 - - - - - IPIDR - IPIDR - AES identification register - 0x68 - 0x20 - read-only - 0x00170023 - - - ID - Identification code - 0 - 32 - - - - - SIDR - SIDR - AES size ID register - 0x6C - 0x20 - read-only - 0x00170023 - - - ID - Size Identification code - 0 - 32 - - - - - - - HSEM - HSEM - Hardware_Semaphore - 0x58001400 - - 0x0 - 0x400 - registers - - - HSEM - Semaphore interrupt 0 to CPU1 - 46 - - - - R0 - R0 - Semaphore 0 register - 0x0 - 0x20 - read-write - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - R1 - R1 - Semaphore 1 register - 0x4 - 0x20 - read-write - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - R2 - R2 - Semaphore 2 register - 0x8 - 0x20 - read-write - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - R3 - R3 - Semaphore 3 register - 0xC - 0x20 - read-write - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - R4 - R4 - Semaphore 4 register - 0x10 - 0x20 - read-write - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - R5 - R5 - Semaphore 5 register - 0x14 - 0x20 - read-write - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - R6 - R6 - Semaphore 6 register - 0x18 - 0x20 - read-write - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - R7 - R7 - Semaphore 7 register - 0x1C - 0x20 - read-write - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - R8 - R8 - Semaphore 8 register - 0x20 - 0x20 - read-write - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - R9 - R9 - Semaphore 9 register - 0x24 - 0x20 - read-write - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - R10 - R10 - Semaphore 10 register - 0x28 - 0x20 - read-write - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - R11 - R11 - Semaphore 11 register - 0x2C - 0x20 - read-write - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - R12 - R12 - Semaphore 12 register - 0x30 - 0x20 - read-write - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - R13 - R13 - Semaphore 13 register - 0x34 - 0x20 - read-write - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - R14 - R14 - Semaphore 14 register - 0x38 - 0x20 - read-write - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - R15 - R15 - Semaphore 15 register - 0x3C - 0x20 - read-write - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - R16 - R16 - Semaphore 16 register - 0x40 - 0x20 - read-write - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - R17 - R17 - Semaphore 17 register - 0x44 - 0x20 - read-write - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - R18 - R18 - Semaphore 18 register - 0x48 - 0x20 - read-write - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - R19 - R19 - Semaphore 19 register - 0x4C - 0x20 - read-write - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - R20 - R20 - Semaphore 20 register - 0x50 - 0x20 - read-write - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - R21 - R21 - Semaphore 21 register - 0x54 - 0x20 - read-write - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - R22 - R22 - Semaphore 22 register - 0x58 - 0x20 - read-write - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - R23 - R23 - Semaphore 23 register - 0x5C - 0x20 - read-write - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - R24 - R24 - Semaphore 24 register - 0x60 - 0x20 - read-write - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - R25 - R25 - Semaphore 25 register - 0x64 - 0x20 - read-write - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - R26 - R26 - Semaphore 26 register - 0x68 - 0x20 - read-write - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - R27 - R27 - Semaphore 27 register - 0x6C - 0x20 - read-write - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - R28 - R28 - Semaphore 28 register - 0x70 - 0x20 - read-write - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - R29 - R29 - Semaphore 29 register - 0x74 - 0x20 - read-write - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - R30 - R30 - Semaphore 30 register - 0x78 - 0x20 - read-write - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - R31 - R31 - Semaphore 31 register - 0x7C - 0x20 - read-write - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - RLR0 - RLR0 - Semaphore 0 read lock register - 0x80 - 0x20 - read-only - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - RLR1 - RLR1 - Semaphore 1 read lock register - 0x84 - 0x20 - read-only - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - RLR2 - RLR2 - Semaphore 2 read lock register - 0x88 - 0x20 - read-only - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - RLR3 - RLR3 - Semaphore 3 read lock register - 0x8C - 0x20 - read-only - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - RLR4 - RLR4 - Semaphore 4 read lock read lock register - 0x90 - 0x20 - read-only - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - RLR5 - RLR5 - Semaphore 5 read lock register - 0x94 - 0x20 - read-only - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - RLR6 - RLR6 - Semaphore 6 read lock register - 0x98 - 0x20 - read-only - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - RLR7 - RLR7 - Semaphore 7 read lock register - 0x9C - 0x20 - read-only - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - RLR8 - RLR8 - Semaphore 8 read lock register - 0xA0 - 0x20 - read-only - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - RLR9 - RLR9 - Semaphore 9 read lock register - 0xA4 - 0x20 - read-only - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - RLR10 - RLR10 - Semaphore 10 read lock register - 0xA8 - 0x20 - read-only - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - RLR11 - RLR11 - Semaphore 11 read lock register - 0xAC - 0x20 - read-only - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - RLR12 - RLR12 - Semaphore 12 read lock register - 0xB0 - 0x20 - read-only - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - RLR13 - RLR13 - Semaphore 13 read lock register - 0xB4 - 0x20 - read-only - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - RLR14 - RLR14 - Semaphore 14 read lock register - 0xB8 - 0x20 - read-only - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - RLR15 - RLR15 - Semaphore 15 read lock register - 0xBC - 0x20 - read-only - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - RLR16 - RLR16 - Semaphore 16 read lock register - 0xC0 - 0x20 - read-only - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - RLR17 - RLR17 - Semaphore 17 read lock register - 0xC4 - 0x20 - read-only - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - RLR18 - RLR18 - Semaphore 18 read lock register - 0xC8 - 0x20 - read-only - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - RLR19 - RLR19 - Semaphore 19 read lock register - 0xCC - 0x20 - read-only - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - RLR20 - RLR20 - Semaphore 20 read lock register - 0xD0 - 0x20 - read-only - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - RLR21 - RLR21 - Semaphore 21 read lock register - 0xD4 - 0x20 - read-only - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - RLR22 - RLR22 - Semaphore 22 read lock register - 0xD8 - 0x20 - read-only - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - RLR23 - RLR23 - Semaphore 23 read lock register - 0xDC - 0x20 - read-only - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - RLR24 - RLR24 - Semaphore 24 read lock register - 0xE0 - 0x20 - read-only - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - RLR25 - RLR25 - Semaphore 25 read lock register - 0xE4 - 0x20 - read-only - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - RLR26 - RLR26 - Semaphore 26 read lock register - 0xE8 - 0x20 - read-only - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - RLR27 - RLR27 - Semaphore 27 read lock register - 0xEC - 0x20 - read-only - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - RLR28 - RLR28 - Semaphore 28 read lock register - 0xF0 - 0x20 - read-only - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - RLR29 - RLR29 - Semaphore 29 read lock register - 0xF4 - 0x20 - read-only - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - RLR30 - RLR30 - Semaphore 30 read lock register - 0xF8 - 0x20 - read-only - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - RLR31 - RLR31 - Semaphore 31 read lock register - 0xFC - 0x20 - read-only - 0x00000000 - - - LOCK - lock indication - 31 - 1 - - - COREID - Semaphore CoreID - 8 - 4 - - - PROCID - Semaphore ProcessID - 0 - 8 - - - - - CR - CR - Semaphore Clear register - 0x140 - 0x20 - read-write - 0x00000000 - - - KEY - Semaphore clear Key - 16 - 16 - - - COREID - CoreID of semaphore to be cleared - 8 - 4 - - - - - KEYR - KEYR - Interrupt clear register - 0x144 - 0x20 - read-write - 0x00000000 - - - KEY - Semaphore Clear Key - 16 - 16 - - - - - HWCFGR2 - HWCFGR2 - Semaphore hardware configuration register 2 - 0x3EC - 0x20 - read-only - 0x00000084 - - - MASTERID4 - Hardware Configuration valid bus masters ID4 - 12 - 4 - - - MASTERID3 - Hardware Configuration valid bus masters ID3 - 8 - 4 - - - MASTERID2 - Hardware Configuration valid bus masters ID2 - 4 - 4 - - - MASTERID1 - Hardware Configuration valid bus masters ID1 - 0 - 4 - - - - - HWCFGR1 - HWCFGR1 - Semaphore hardware configuration register 1 - 0x3F0 - 0x20 - read-only - 0x00000220 - - - NBINT - Hardware Configuration number of interrupts supported number of master IDs - 8 - 4 - - - NBSEM - Hardware Configuration number of semaphores - 0 - 8 - - - - - VERR - VERR - HSEM version register - 0x3F4 - 0x20 - read-only - 0x00000020 - - - MAJREV - Major Revision - 4 - 4 - - - MINREV - Minor Revision - 0 - 4 - - - - - IPIDR - IPIDR - HSEM indentification register - 0x3F8 - 0x20 - read-only - 0x00100072 - - - ID - Identification Code - 0 - 32 - - - - - SIDR - SIDR - HSEM size indentification register - 0x3FC - 0x20 - read-only - 0xA3C5DD01 - - - SID - Size Identification Code - 0 - 32 - - - - - C1IER0 - C1IER0 - HSEM Interrupt enable register - 0x100 - 0x20 - read-write - 0x00000000 - - - ISEm - CPU(n) semaphore m enable bit - 0 - 32 - - - - - C1ICR - C1ICR - HSEM Interrupt clear register - 0x104 - 0x20 - read-write - 0x00000000 - - - ISCm - CPU(n) semaphore m clear bit - 0 - 32 - - - - - C1ISR - C1ISR - HSEM Interrupt status register - 0x108 - 0x20 - read-only - 0x00000000 - - - ISFm - CPU(n) semaphore m status bit before enable (mask) - 0 - 32 - - - - - C1MISR - C1MISR - HSEM Masked interrupt status register - 0x10C - 0x20 - read-only - 0x00000000 - - - MISFm - masked CPU(n) semaphore m status bit after enable (mask). - 0 - 32 - - - - - C2IER0 - C2IER0 - HSEM Interrupt enable register - 0x110 - 0x20 - read-write - 0x00000000 - - - ISEm - CPU(2) semaphore m enable bit. - 0 - 32 - - - - - C2ICR - C2ICR - HSEM Interrupt clear register - 0x114 - 0x20 - read-write - 0x00000000 - - - ISCm - CPU(2) semaphore m clear bit - 0 - 32 - - - - - C2ISR - C2ISR - HSEM Interrupt status register - 0x118 - 0x20 - read-only - 0x00000000 - - - ISFm - CPU(2) semaphore m status bit before enable (mask). - 0 - 32 - - - - - C2MISR - C2MISR - HSEM Masked interrupt status register - 0x11C - 0x20 - read-only - 0x00000000 - - - MISFm - masked CPU(2) semaphore m status bit after enable (mask). - 0 - 32 - - - - - - - ADC - Analog to Digital Converter instance 1 - ADC - 0x50040000 - - 0x0 - 0x400 - registers - - - ADC1 - ADC1 global interrupt - 18 - - - - ISR - ISR - ADC interrupt and status register - 0x0 - 0x20 - read-write - 0x00000000 - - - JQOVF - ADC group injected contexts queue overflow flag - 10 - 1 - - - AWD3 - ADC analog watchdog 3 flag - 9 - 1 - - - AWD2 - ADC analog watchdog 2 flag - 8 - 1 - - - AWD1 - ADC analog watchdog 1 flag - 7 - 1 - - - JEOS - ADC group injected end of sequence conversions flag - 6 - 1 - - - JEOC - ADC group injected end of unitary conversion flag - 5 - 1 - - - OVR - ADC group regular overrun flag - 4 - 1 - - - EOS - ADC group regular end of sequence conversions flag - 3 - 1 - - - EOC - ADC group regular end of unitary conversion flag - 2 - 1 - - - EOSMP - ADC group regular end of sampling flag - 1 - 1 - - - ADRDY - ADC ready flag - 0 - 1 - - - - - IER - IER - ADC interrupt enable register - 0x4 - 0x20 - read-write - 0x00000000 - - - JQOVFIE - ADC group injected contexts queue overflow interrupt - 10 - 1 - - - AWD3IE - ADC analog watchdog 3 interrupt - 9 - 1 - - - AWD2IE - ADC analog watchdog 2 interrupt - 8 - 1 - - - AWD1IE - ADC analog watchdog 1 interrupt - 7 - 1 - - - JEOSIE - ADC group injected end of sequence conversions interrupt - 6 - 1 - - - JEOCIE - ADC group injected end of unitary conversion interrupt - 5 - 1 - - - OVRIE - ADC group regular overrun interrupt - 4 - 1 - - - EOSIE - ADC group regular end of sequence conversions interrupt - 3 - 1 - - - EOCIE - ADC group regular end of unitary conversion interrupt - 2 - 1 - - - EOSMPIE - ADC group regular end of sampling interrupt - 1 - 1 - - - ADRDYIE - ADC ready interrupt - 0 - 1 - - - - - CR - CR - ADC control register - 0x8 - 0x20 - read-write - 0x00000000 - - - ADCAL - ADC calibration - 31 - 1 - - - ADCALDIF - ADC differential mode for calibration - 30 - 1 - - - DEEPPWD - ADC deep power down enable - 29 - 1 - - - ADVREGEN - ADC voltage regulator enable - 28 - 1 - - - JADSTP - ADC group injected conversion stop - 5 - 1 - - - ADSTP - ADC group regular conversion stop - 4 - 1 - - - JADSTART - ADC group injected conversion start - 3 - 1 - - - ADSTART - ADC group regular conversion start - 2 - 1 - - - ADDIS - ADC disable - 1 - 1 - - - ADEN - ADC enable - 0 - 1 - - - - - CFGR - CFGR - ADC configuration register 1 - 0xC - 0x20 - read-write - 0x80000000 - - - JQDIS - ADC group injected contexts queue disable - 31 - 1 - - - AWDCH1CH - ADC analog watchdog 1 monitored channel selection - 26 - 5 - - - JAUTO - ADC group injected automatic trigger mode - 25 - 1 - - - JAWD1EN - ADC analog watchdog 1 enable on scope ADC group injected - 24 - 1 - - - AWD1EN - ADC analog watchdog 1 enable on scope ADC group regular - 23 - 1 - - - AWD1SGL - ADC analog watchdog 1 monitoring a single channel or all channels - 22 - 1 - - - JQM - ADC group injected contexts queue mode - 21 - 1 - - - JDISCEN - ADC group injected sequencer discontinuous mode - 20 - 1 - - - DISCNUM - ADC group regular sequencer discontinuous number of ranks - 17 - 3 - - - DISCEN - ADC group regular sequencer discontinuous mode - 16 - 1 - - - AUTDLY - ADC low power auto wait - 14 - 1 - - - CONT - ADC group regular continuous conversion mode - 13 - 1 - - - OVRMOD - ADC group regular overrun configuration - 12 - 1 - - - EXTEN - ADC group regular external trigger polarity - 10 - 2 - - - EXTSEL - ADC group regular external trigger source - 6 - 4 - - - ALIGN - ADC data alignement - 5 - 1 - - - RES - ADC data resolution - 3 - 2 - - - DMACFG - ADC DMA transfer configuration - 1 - 1 - - - DMAEN - ADC DMA transfer enable - 0 - 1 - - - - - CFGR2 - CFGR2 - ADC configuration register 2 - 0x10 - 0x20 - read-write - 0x00000000 - - - ROVSM - ADC oversampling mode managing interlaced conversions of ADC group regular and group injected - 10 - 1 - - - TOVS - ADC oversampling discontinuous mode (triggered mode) for ADC group regular - 9 - 1 - - - OVSS - ADC oversampling shift - 5 - 4 - - - OVSR - ADC oversampling ratio - 2 - 3 - - - JOVSE - ADC oversampler enable on scope ADC group injected - 1 - 1 - - - ROVSE - ADC oversampler enable on scope ADC group regular - 0 - 1 - - - - - SMPR1 - SMPR1 - ADC sampling time register 1 - 0x14 - 0x20 - read-write - 0x00000000 - - - SMP9 - ADC channel 9 sampling time selection - 27 - 3 - - - SMP8 - ADC channel 8 sampling time selection - 24 - 3 - - - SMP7 - ADC channel 7 sampling time selection - 21 - 3 - - - SMP6 - ADC channel 6 sampling time selection - 18 - 3 - - - SMP5 - ADC channel 5 sampling time selection - 15 - 3 - - - SMP4 - ADC channel 4 sampling time selection - 12 - 3 - - - SMP3 - ADC channel 3 sampling time selection - 9 - 3 - - - SMP2 - ADC channel 2 sampling time selection - 6 - 3 - - - SMP1 - ADC channel 1 sampling time selection - 3 - 3 - - - - - SMPR2 - SMPR2 - ADC sampling time register 2 - 0x18 - 0x20 - read-write - 0x00000000 - - - SMP18 - ADC channel 18 sampling time selection - 24 - 3 - - - SMP17 - ADC channel 17 sampling time selection - 21 - 3 - - - SMP16 - ADC channel 16 sampling time selection - 18 - 3 - - - SMP15 - ADC channel 15 sampling time selection - 15 - 3 - - - SMP14 - ADC channel 14 sampling time selection - 12 - 3 - - - SMP13 - ADC channel 13 sampling time selection - 9 - 3 - - - SMP12 - ADC channel 12 sampling time selection - 6 - 3 - - - SMP11 - ADC channel 11 sampling time selection - 3 - 3 - - - SMP10 - ADC channel 10 sampling time selection - 0 - 3 - - - - - TR1 - TR1 - ADC analog watchdog 1 threshold register - 0x20 - 0x20 - read-write - 0x0FFF0000 - - - HT1 - ADC analog watchdog 1 threshold high - 16 - 12 - - - LT1 - ADC analog watchdog 1 threshold low - 0 - 12 - - - - - TR2 - TR2 - ADC analog watchdog 2 threshold register - 0x24 - 0x20 - read-write - 0x0FFF0000 - - - HT2 - ADC analog watchdog 2 threshold high - 16 - 8 - - - LT2 - ADC analog watchdog 2 threshold low - 0 - 8 - - - - - TR3 - TR3 - ADC analog watchdog 3 threshold register - 0x28 - 0x20 - read-write - 0x0FFF0000 - - - HT3 - ADC analog watchdog 3 threshold high - 16 - 8 - - - LT3 - ADC analog watchdog 3 threshold low - 0 - 8 - - - - - SQR1 - SQR1 - ADC group regular sequencer ranks register 1 - 0x30 - 0x20 - read-write - 0x00000000 - - - SQ4 - ADC group regular sequencer rank 4 - 24 - 5 - - - SQ3 - ADC group regular sequencer rank 3 - 18 - 5 - - - SQ2 - ADC group regular sequencer rank 2 - 12 - 5 - - - SQ1 - ADC group regular sequencer rank 1 - 6 - 5 - - - L3 - L3 - 0 - 4 - - - - - SQR2 - SQR2 - ADC group regular sequencer ranks register 2 - 0x34 - 0x20 - read-write - 0x00000000 - - - SQ9 - ADC group regular sequencer rank 9 - 24 - 5 - - - SQ8 - ADC group regular sequencer rank 8 - 18 - 5 - - - SQ7 - ADC group regular sequencer rank 7 - 12 - 5 - - - SQ6 - ADC group regular sequencer rank 6 - 6 - 5 - - - SQ5 - ADC group regular sequencer rank 5 - 0 - 5 - - - - - SQR3 - SQR3 - ADC group regular sequencer ranks register 3 - 0x38 - 0x20 - read-write - 0x00000000 - - - SQ14 - ADC group regular sequencer rank 14 - 24 - 5 - - - SQ13 - ADC group regular sequencer rank 13 - 18 - 5 - - - SQ12 - ADC group regular sequencer rank 12 - 12 - 5 - - - SQ11 - ADC group regular sequencer rank 11 - 6 - 5 - - - SQ10 - ADC group regular sequencer rank 10 - 0 - 5 - - - - - SQR4 - SQR4 - ADC group regular sequencer ranks register 4 - 0x3C - 0x20 - read-write - 0x00000000 - - - SQ16 - ADC group regular sequencer rank 16 - 6 - 5 - - - SQ15 - ADC group regular sequencer rank 15 - 0 - 5 - - - - - DR - DR - ADC group regular conversion data register - 0x40 - 0x20 - 0x00000000 - - - RDATA_0_6 - Regular Data converted 0_6 - 0 - 6 - read-write - - - RDATA_7_15 - 15 - 7 - 9 - read-only - - - - - JSQR - JSQR - ADC group injected sequencer register - 0x4C - 0x20 - read-write - 0x00000000 - - - JSQ4 - ADC group injected sequencer rank 4 - 26 - 5 - - - JSQ3 - ADC group injected sequencer rank 3 - 20 - 5 - - - JSQ2 - ADC group injected sequencer rank 2 - 14 - 5 - - - JSQ1 - ADC group injected sequencer rank 1 - 8 - 5 - - - JEXTEN - ADC group injected external trigger polarity - 6 - 2 - - - JEXTSEL - ADC group injected external trigger source - 2 - 4 - - - JL - ADC group injected sequencer scan length - 0 - 2 - - - - - OFR1 - OFR1 - ADC offset number 1 register - 0x60 - 0x20 - read-write - 0x00000000 - - - OFFSET1_EN - ADC offset number 1 enable - 31 - 1 - - - OFFSET1_CH - ADC offset number 1 channel selection - 26 - 5 - - - OFFSET1 - ADC offset number 1 offset level - 0 - 12 - - - - - OFR2 - OFR2 - ADC offset number 2 register - 0x64 - 0x20 - read-write - 0x00000000 - - - OFFSET2_EN - ADC offset number 2 enable - 31 - 1 - - - OFFSET2_CH - ADC offset number 2 channel selection - 26 - 5 - - - OFFSET2 - ADC offset number 2 offset level - 0 - 12 - - - - - OFR3 - OFR3 - ADC offset number 3 register - 0x68 - 0x20 - read-write - 0x00000000 - - - OFFSET3_EN - ADC offset number 3 enable - 31 - 1 - - - OFFSET3_CH - ADC offset number 3 channel selection - 26 - 5 - - - OFFSET3 - ADC offset number 3 offset level - 0 - 12 - - - - - OFR4 - OFR4 - ADC offset number 4 register - 0x6C - 0x20 - read-write - 0x00000000 - - - OFFSET4_EN - ADC offset number 4 enable - 31 - 1 - - - OFFSET4_CH - ADC offset number 4 channel selection - 26 - 5 - - - OFFSET4 - ADC offset number 4 offset level - 0 - 12 - - - - - JDR1 - JDR1 - ADC group injected sequencer rank 1 register - 0x80 - 0x20 - read-only - 0x00000000 - - - JDATA1 - ADC group injected sequencer rank 1 conversion data - 0 - 16 - - - - - JDR2 - JDR2 - ADC group injected sequencer rank 2 register - 0x84 - 0x20 - read-only - 0x00000000 - - - JDATA2 - ADC group injected sequencer rank 2 conversion data - 0 - 16 - - - - - JDR3 - JDR3 - ADC group injected sequencer rank 3 register - 0x88 - 0x20 - read-only - 0x00000000 - - - JDATA3 - ADC group injected sequencer rank 3 conversion data - 0 - 16 - - - - - JDR4 - JDR4 - ADC group injected sequencer rank 4 register - 0x8C - 0x20 - read-only - 0x00000000 - - - JDATA4 - ADC group injected sequencer rank 4 conversion data - 0 - 16 - - - - - AWD2CR - AWD2CR - ADC analog watchdog 2 configuration register - 0xA0 - 0x20 - read-write - 0x00000000 - - - AWD2CH - ADC analog watchdog 2 monitored channel selection - 0 - 19 - - - - - AWD3CR - AWD3CR - ADC analog watchdog 3 configuration register - 0xA4 - 0x20 - read-write - 0x00000000 - - - AWD3CH - ADC analog watchdog 3 monitored channel selection - 0 - 19 - - - - - DIFSEL - DIFSEL - ADC channel differential or single-ended mode selection register - 0xB0 - 0x20 - 0x00000000 - - - DIFSEL_0 - ADC channel differential or single-ended mode for channel 0 - 0 - 1 - read-only - - - DIFSEL_1_15 - ADC channel differential or single-ended mode for channels 1 to 15 - 1 - 15 - read-write - - - DIFSEL_16_18 - ADC channel differential or single-ended mode for channels 18 to 16 - 16 - 3 - read-only - - - - - CALFACT - CALFACT - ADC calibration factors register - 0xB4 - 0x20 - read-write - 0x00000000 - - - CALFACT_D - ADC calibration factor in differential mode - 16 - 7 - - - CALFACT_S - ADC calibration factor in single-ended mode - 0 - 7 - - - - - CCR - CCR - ADC common control register - 0x308 - 0x20 - read-write - 0x00000000 - - - VBATEN - VBAT enable - 24 - 1 - - - TSEN - Temperature sensor enable - 23 - 1 - - - VREFEN - VREFEN - 22 - 1 - - - PRESC - ADC prescaler - 18 - 4 - - - CKMODE - ADC clock mode - 16 - 2 - - - - - - - GPIOA - General-purpose I/Os - GPIO - 0x48000000 - - 0x0 - 0x400 - registers - - - - MODER - MODER - GPIO port mode register - 0x0 - 0x20 - read-write - 0xABFFFFFF - - - MODER15 - Port x configuration bits (y = 0..15) - 30 - 2 - - - MODER14 - Port x configuration bits (y = 0..15) - 28 - 2 - - - MODER13 - Port x configuration bits (y = 0..15) - 26 - 2 - - - MODER12 - Port x configuration bits (y = 0..15) - 24 - 2 - - - MODER11 - Port x configuration bits (y = 0..15) - 22 - 2 - - - MODER10 - Port x configuration bits (y = 0..15) - 20 - 2 - - - MODER9 - Port x configuration bits (y = 0..15) - 18 - 2 - - - MODER8 - Port x configuration bits (y = 0..15) - 16 - 2 - - - MODER7 - Port x configuration bits (y = 0..15) - 14 - 2 - - - MODER6 - Port x configuration bits (y = 0..15) - 12 - 2 - - - MODER5 - Port x configuration bits (y = 0..15) - 10 - 2 - - - MODER4 - Port x configuration bits (y = 0..15) - 8 - 2 - - - MODER3 - Port x configuration bits (y = 0..15) - 6 - 2 - - - MODER2 - Port x configuration bits (y = 0..15) - 4 - 2 - - - MODER1 - Port x configuration bits (y = 0..15) - 2 - 2 - - - MODER0 - Port x configuration bits (y = 0..15) - 0 - 2 - - - - - OTYPER - OTYPER - GPIO port output type register - 0x4 - 0x20 - read-write - 0x00000000 - - - OT15 - Port x configuration bits (y = 0..15) - 15 - 1 - - - OT14 - Port x configuration bits (y = 0..15) - 14 - 1 - - - OT13 - Port x configuration bits (y = 0..15) - 13 - 1 - - - OT12 - Port x configuration bits (y = 0..15) - 12 - 1 - - - OT11 - Port x configuration bits (y = 0..15) - 11 - 1 - - - OT10 - Port x configuration bits (y = 0..15) - 10 - 1 - - - OT9 - Port x configuration bits (y = 0..15) - 9 - 1 - - - OT8 - Port x configuration bits (y = 0..15) - 8 - 1 - - - OT7 - Port x configuration bits (y = 0..15) - 7 - 1 - - - OT6 - Port x configuration bits (y = 0..15) - 6 - 1 - - - OT5 - Port x configuration bits (y = 0..15) - 5 - 1 - - - OT4 - Port x configuration bits (y = 0..15) - 4 - 1 - - - OT3 - Port x configuration bits (y = 0..15) - 3 - 1 - - - OT2 - Port x configuration bits (y = 0..15) - 2 - 1 - - - OT1 - Port x configuration bits (y = 0..15) - 1 - 1 - - - OT0 - Port x configuration bits (y = 0..15) - 0 - 1 - - - - - OSPEEDR - OSPEEDR - GPIO port output speed register - 0x8 - 0x20 - read-write - 0x0C000000 - - - OSPEEDR15 - Port x configuration bits (y = 0..15) - 30 - 2 - - - OSPEEDR14 - Port x configuration bits (y = 0..15) - 28 - 2 - - - OSPEEDR13 - Port x configuration bits (y = 0..15) - 26 - 2 - - - OSPEEDR12 - Port x configuration bits (y = 0..15) - 24 - 2 - - - OSPEEDR11 - Port x configuration bits (y = 0..15) - 22 - 2 - - - OSPEEDR10 - Port x configuration bits (y = 0..15) - 20 - 2 - - - OSPEEDR9 - Port x configuration bits (y = 0..15) - 18 - 2 - - - OSPEEDR8 - Port x configuration bits (y = 0..15) - 16 - 2 - - - OSPEEDR7 - Port x configuration bits (y = 0..15) - 14 - 2 - - - OSPEEDR6 - Port x configuration bits (y = 0..15) - 12 - 2 - - - OSPEEDR5 - Port x configuration bits (y = 0..15) - 10 - 2 - - - OSPEEDR4 - Port x configuration bits (y = 0..15) - 8 - 2 - - - OSPEEDR3 - Port x configuration bits (y = 0..15) - 6 - 2 - - - OSPEEDR2 - Port x configuration bits (y = 0..15) - 4 - 2 - - - OSPEEDR1 - Port x configuration bits (y = 0..15) - 2 - 2 - - - OSPEEDR0 - Port x configuration bits (y = 0..15) - 0 - 2 - - - - - PUPDR - PUPDR - GPIO port pull-up/pull-down register - 0xC - 0x20 - read-write - 0x64000000 - - - PUPDR15 - Port x configuration bits (y = 0..15) - 30 - 2 - - - PUPDR14 - Port x configuration bits (y = 0..15) - 28 - 2 - - - PUPDR13 - Port x configuration bits (y = 0..15) - 26 - 2 - - - PUPDR12 - Port x configuration bits (y = 0..15) - 24 - 2 - - - PUPDR11 - Port x configuration bits (y = 0..15) - 22 - 2 - - - PUPDR10 - Port x configuration bits (y = 0..15) - 20 - 2 - - - PUPDR9 - Port x configuration bits (y = 0..15) - 18 - 2 - - - PUPDR8 - Port x configuration bits (y = 0..15) - 16 - 2 - - - PUPDR7 - Port x configuration bits (y = 0..15) - 14 - 2 - - - PUPDR6 - Port x configuration bits (y = 0..15) - 12 - 2 - - - PUPDR5 - Port x configuration bits (y = 0..15) - 10 - 2 - - - PUPDR4 - Port x configuration bits (y = 0..15) - 8 - 2 - - - PUPDR3 - Port x configuration bits (y = 0..15) - 6 - 2 - - - PUPDR2 - Port x configuration bits (y = 0..15) - 4 - 2 - - - PUPDR1 - Port x configuration bits (y = 0..15) - 2 - 2 - - - PUPDR0 - Port x configuration bits (y = 0..15) - 0 - 2 - - - - - IDR - IDR - GPIO port input data register - 0x10 - 0x20 - read-only - 0x00000000 - - - IDR15 - Port input data (y = 0..15) - 15 - 1 - - - IDR14 - Port input data (y = 0..15) - 14 - 1 - - - IDR13 - Port input data (y = 0..15) - 13 - 1 - - - IDR12 - Port input data (y = 0..15) - 12 - 1 - - - IDR11 - Port input data (y = 0..15) - 11 - 1 - - - IDR10 - Port input data (y = 0..15) - 10 - 1 - - - IDR9 - Port input data (y = 0..15) - 9 - 1 - - - IDR8 - Port input data (y = 0..15) - 8 - 1 - - - IDR7 - Port input data (y = 0..15) - 7 - 1 - - - IDR6 - Port input data (y = 0..15) - 6 - 1 - - - IDR5 - Port input data (y = 0..15) - 5 - 1 - - - IDR4 - Port input data (y = 0..15) - 4 - 1 - - - IDR3 - Port input data (y = 0..15) - 3 - 1 - - - IDR2 - Port input data (y = 0..15) - 2 - 1 - - - IDR1 - Port input data (y = 0..15) - 1 - 1 - - - IDR0 - Port input data (y = 0..15) - 0 - 1 - - - - - ODR - ODR - GPIO port output data register - 0x14 - 0x20 - read-write - 0x00000000 - - - ODR15 - Port output data (y = 0..15) - 15 - 1 - - - ODR14 - Port output data (y = 0..15) - 14 - 1 - - - ODR13 - Port output data (y = 0..15) - 13 - 1 - - - ODR12 - Port output data (y = 0..15) - 12 - 1 - - - ODR11 - Port output data (y = 0..15) - 11 - 1 - - - ODR10 - Port output data (y = 0..15) - 10 - 1 - - - ODR9 - Port output data (y = 0..15) - 9 - 1 - - - ODR8 - Port output data (y = 0..15) - 8 - 1 - - - ODR7 - Port output data (y = 0..15) - 7 - 1 - - - ODR6 - Port output data (y = 0..15) - 6 - 1 - - - ODR5 - Port output data (y = 0..15) - 5 - 1 - - - ODR4 - Port output data (y = 0..15) - 4 - 1 - - - ODR3 - Port output data (y = 0..15) - 3 - 1 - - - ODR2 - Port output data (y = 0..15) - 2 - 1 - - - ODR1 - Port output data (y = 0..15) - 1 - 1 - - - ODR0 - Port output data (y = 0..15) - 0 - 1 - - - - - BSRR - BSRR - GPIO port bit set/reset register - 0x18 - 0x20 - write-only - 0x00000000 - - - BR15 - Port x reset bit y (y = 0..15) - 31 - 1 - - - BR14 - Port x reset bit y (y = 0..15) - 30 - 1 - - - BR13 - Port x reset bit y (y = 0..15) - 29 - 1 - - - BR12 - Port x reset bit y (y = 0..15) - 28 - 1 - - - BR11 - Port x reset bit y (y = 0..15) - 27 - 1 - - - BR10 - Port x reset bit y (y = 0..15) - 26 - 1 - - - BR9 - Port x reset bit y (y = 0..15) - 25 - 1 - - - BR8 - Port x reset bit y (y = 0..15) - 24 - 1 - - - BR7 - Port x reset bit y (y = 0..15) - 23 - 1 - - - BR6 - Port x reset bit y (y = 0..15) - 22 - 1 - - - BR5 - Port x reset bit y (y = 0..15) - 21 - 1 - - - BR4 - Port x reset bit y (y = 0..15) - 20 - 1 - - - BR3 - Port x reset bit y (y = 0..15) - 19 - 1 - - - BR2 - Port x reset bit y (y = 0..15) - 18 - 1 - - - BR1 - Port x reset bit y (y = 0..15) - 17 - 1 - - - BR0 - Port x set bit y (y= 0..15) - 16 - 1 - - - BS15 - Port x set bit y (y= 0..15) - 15 - 1 - - - BS14 - Port x set bit y (y= 0..15) - 14 - 1 - - - BS13 - Port x set bit y (y= 0..15) - 13 - 1 - - - BS12 - Port x set bit y (y= 0..15) - 12 - 1 - - - BS11 - Port x set bit y (y= 0..15) - 11 - 1 - - - BS10 - Port x set bit y (y= 0..15) - 10 - 1 - - - BS9 - Port x set bit y (y= 0..15) - 9 - 1 - - - BS8 - Port x set bit y (y= 0..15) - 8 - 1 - - - BS7 - Port x set bit y (y= 0..15) - 7 - 1 - - - BS6 - Port x set bit y (y= 0..15) - 6 - 1 - - - BS5 - Port x set bit y (y= 0..15) - 5 - 1 - - - BS4 - Port x set bit y (y= 0..15) - 4 - 1 - - - BS3 - Port x set bit y (y= 0..15) - 3 - 1 - - - BS2 - Port x set bit y (y= 0..15) - 2 - 1 - - - BS1 - Port x set bit y (y= 0..15) - 1 - 1 - - - BS0 - Port x set bit y (y= 0..15) - 0 - 1 - - - - - LCKR - LCKR - GPIO port configuration lock register - 0x1C - 0x20 - read-write - 0x00000000 - - - LCKK - Port x lock bit y (y= 0..15) - 16 - 1 - - - LCK15 - Port x lock bit y (y= 0..15) - 15 - 1 - - - LCK14 - Port x lock bit y (y= 0..15) - 14 - 1 - - - LCK13 - Port x lock bit y (y= 0..15) - 13 - 1 - - - LCK12 - Port x lock bit y (y= 0..15) - 12 - 1 - - - LCK11 - Port x lock bit y (y= 0..15) - 11 - 1 - - - LCK10 - Port x lock bit y (y= 0..15) - 10 - 1 - - - LCK9 - Port x lock bit y (y= 0..15) - 9 - 1 - - - LCK8 - Port x lock bit y (y= 0..15) - 8 - 1 - - - LCK7 - Port x lock bit y (y= 0..15) - 7 - 1 - - - LCK6 - Port x lock bit y (y= 0..15) - 6 - 1 - - - LCK5 - Port x lock bit y (y= 0..15) - 5 - 1 - - - LCK4 - Port x lock bit y (y= 0..15) - 4 - 1 - - - LCK3 - Port x lock bit y (y= 0..15) - 3 - 1 - - - LCK2 - Port x lock bit y (y= 0..15) - 2 - 1 - - - LCK1 - Port x lock bit y (y= 0..15) - 1 - 1 - - - LCK0 - Port x lock bit y (y= 0..15) - 0 - 1 - - - - - AFRL - AFRL - GPIO alternate function low register - 0x20 - 0x20 - read-write - 0x00000000 - - - AFSEL7 - Alternate function selection for port x bit y (y = 0..7) - 28 - 4 - - - AFSEL6 - Alternate function selection for port x bit y (y = 0..7) - 24 - 4 - - - AFSEL5 - Alternate function selection for port x bit y (y = 0..7) - 20 - 4 - - - AFSEL4 - Alternate function selection for port x bit y (y = 0..7) - 16 - 4 - - - AFSEL3 - Alternate function selection for port x bit y (y = 0..7) - 12 - 4 - - - AFSEL2 - Alternate function selection for port x bit y (y = 0..7) - 8 - 4 - - - AFSEL1 - Alternate function selection for port x bit y (y = 0..7) - 4 - 4 - - - AFSEL0 - Alternate function selection for port x bit y (y = 0..7) - 0 - 4 - - - - - AFRH - AFRH - GPIO alternate function high register - 0x24 - 0x20 - read-write - 0x00000000 - - - AFSEL15 - Alternate function selection for port x bit y (y = 8..15) - 28 - 4 - - - AFSEL14 - Alternate function selection for port x bit y (y = 8..15) - 24 - 4 - - - AFSEL13 - Alternate function selection for port x bit y (y = 8..15) - 20 - 4 - - - AFSEL12 - Alternate function selection for port x bit y (y = 8..15) - 16 - 4 - - - AFSEL11 - Alternate function selection for port x bit y (y = 8..15) - 12 - 4 - - - AFSEL10 - Alternate function selection for port x bit y (y = 8..15) - 8 - 4 - - - AFSEL9 - Alternate function selection for port x bit y (y = 8..15) - 4 - 4 - - - AFSEL8 - Alternate function selection for port x bit y (y = 8..15) - 0 - 4 - - - - - BRR - BRR - port bit reset register - 0x28 - 0x20 - write-only - 0x00000000 - - - BR0 - Port Reset bit - 0 - 1 - - - BR1 - Port Reset bit - 1 - 1 - - - BR2 - Port Reset bit - 2 - 1 - - - BR3 - Port Reset bit - 3 - 1 - - - BR4 - Port Reset bit - 4 - 1 - - - BR5 - Port Reset bit - 5 - 1 - - - BR6 - Port Reset bit - 6 - 1 - - - BR7 - Port Reset bit - 7 - 1 - - - BR8 - Port Reset bit - 8 - 1 - - - BR9 - Port Reset bit - 9 - 1 - - - BR10 - Port Reset bit - 10 - 1 - - - BR11 - Port Reset bit - 11 - 1 - - - BR12 - Port Reset bit - 12 - 1 - - - BR13 - Port Reset bit - 13 - 1 - - - BR14 - Port Reset bit - 14 - 1 - - - BR15 - Port Reset bit - 15 - 1 - - - - - - - GPIOB - General-purpose I/Os - GPIO - 0x48000400 - - 0x0 - 0x400 - registers - - - - MODER - MODER - GPIO port mode register - 0x0 - 0x20 - read-write - 0xFFFFFEBF - - - MODER15 - Port x configuration bits (y = 0..15) - 30 - 2 - - - MODER14 - Port x configuration bits (y = 0..15) - 28 - 2 - - - MODER13 - Port x configuration bits (y = 0..15) - 26 - 2 - - - MODER12 - Port x configuration bits (y = 0..15) - 24 - 2 - - - MODER11 - Port x configuration bits (y = 0..15) - 22 - 2 - - - MODER10 - Port x configuration bits (y = 0..15) - 20 - 2 - - - MODER9 - Port x configuration bits (y = 0..15) - 18 - 2 - - - MODER8 - Port x configuration bits (y = 0..15) - 16 - 2 - - - MODER7 - Port x configuration bits (y = 0..15) - 14 - 2 - - - MODER6 - Port x configuration bits (y = 0..15) - 12 - 2 - - - MODER5 - Port x configuration bits (y = 0..15) - 10 - 2 - - - MODER4 - Port x configuration bits (y = 0..15) - 8 - 2 - - - MODER3 - Port x configuration bits (y = 0..15) - 6 - 2 - - - MODER2 - Port x configuration bits (y = 0..15) - 4 - 2 - - - MODER1 - Port x configuration bits (y = 0..15) - 2 - 2 - - - MODER0 - Port x configuration bits (y = 0..15) - 0 - 2 - - - - - OTYPER - OTYPER - GPIO port output type register - 0x4 - 0x20 - read-write - 0x00000000 - - - OT15 - Port x configuration bits (y = 0..15) - 15 - 1 - - - OT14 - Port x configuration bits (y = 0..15) - 14 - 1 - - - OT13 - Port x configuration bits (y = 0..15) - 13 - 1 - - - OT12 - Port x configuration bits (y = 0..15) - 12 - 1 - - - OT11 - Port x configuration bits (y = 0..15) - 11 - 1 - - - OT10 - Port x configuration bits (y = 0..15) - 10 - 1 - - - OT9 - Port x configuration bits (y = 0..15) - 9 - 1 - - - OT8 - Port x configuration bits (y = 0..15) - 8 - 1 - - - OT7 - Port x configuration bits (y = 0..15) - 7 - 1 - - - OT6 - Port x configuration bits (y = 0..15) - 6 - 1 - - - OT5 - Port x configuration bits (y = 0..15) - 5 - 1 - - - OT4 - Port x configuration bits (y = 0..15) - 4 - 1 - - - OT3 - Port x configuration bits (y = 0..15) - 3 - 1 - - - OT2 - Port x configuration bits (y = 0..15) - 2 - 1 - - - OT1 - Port x configuration bits (y = 0..15) - 1 - 1 - - - OT0 - Port x configuration bits (y = 0..15) - 0 - 1 - - - - - OSPEEDR - OSPEEDR - GPIO port output speed register - 0x8 - 0x20 - read-write - 0x000000C0 - - - OSPEEDR15 - Port x configuration bits (y = 0..15) - 30 - 2 - - - OSPEEDR14 - Port x configuration bits (y = 0..15) - 28 - 2 - - - OSPEEDR13 - Port x configuration bits (y = 0..15) - 26 - 2 - - - OSPEEDR12 - Port x configuration bits (y = 0..15) - 24 - 2 - - - OSPEEDR11 - Port x configuration bits (y = 0..15) - 22 - 2 - - - OSPEEDR10 - Port x configuration bits (y = 0..15) - 20 - 2 - - - OSPEEDR9 - Port x configuration bits (y = 0..15) - 18 - 2 - - - OSPEEDR8 - Port x configuration bits (y = 0..15) - 16 - 2 - - - OSPEEDR7 - Port x configuration bits (y = 0..15) - 14 - 2 - - - OSPEEDR6 - Port x configuration bits (y = 0..15) - 12 - 2 - - - OSPEEDR5 - Port x configuration bits (y = 0..15) - 10 - 2 - - - OSPEEDR4 - Port x configuration bits (y = 0..15) - 8 - 2 - - - OSPEEDR3 - Port x configuration bits (y = 0..15) - 6 - 2 - - - OSPEEDR2 - Port x configuration bits (y = 0..15) - 4 - 2 - - - OSPEEDR1 - Port x configuration bits (y = 0..15) - 2 - 2 - - - OSPEEDR0 - Port x configuration bits (y = 0..15) - 0 - 2 - - - - - PUPDR - PUPDR - GPIO port pull-up/pull-down register - 0xC - 0x20 - read-write - 0x00000100 - - - PUPDR15 - Port x configuration bits (y = 0..15) - 30 - 2 - - - PUPDR14 - Port x configuration bits (y = 0..15) - 28 - 2 - - - PUPDR13 - Port x configuration bits (y = 0..15) - 26 - 2 - - - PUPDR12 - Port x configuration bits (y = 0..15) - 24 - 2 - - - PUPDR11 - Port x configuration bits (y = 0..15) - 22 - 2 - - - PUPDR10 - Port x configuration bits (y = 0..15) - 20 - 2 - - - PUPDR9 - Port x configuration bits (y = 0..15) - 18 - 2 - - - PUPDR8 - Port x configuration bits (y = 0..15) - 16 - 2 - - - PUPDR7 - Port x configuration bits (y = 0..15) - 14 - 2 - - - PUPDR6 - Port x configuration bits (y = 0..15) - 12 - 2 - - - PUPDR5 - Port x configuration bits (y = 0..15) - 10 - 2 - - - PUPDR4 - Port x configuration bits (y = 0..15) - 8 - 2 - - - PUPDR3 - Port x configuration bits (y = 0..15) - 6 - 2 - - - PUPDR2 - Port x configuration bits (y = 0..15) - 4 - 2 - - - PUPDR1 - Port x configuration bits (y = 0..15) - 2 - 2 - - - PUPDR0 - Port x configuration bits (y = 0..15) - 0 - 2 - - - - - IDR - IDR - GPIO port input data register - 0x10 - 0x20 - read-only - 0x00000000 - - - IDR15 - Port input data (y = 0..15) - 15 - 1 - - - IDR14 - Port input data (y = 0..15) - 14 - 1 - - - IDR13 - Port input data (y = 0..15) - 13 - 1 - - - IDR12 - Port input data (y = 0..15) - 12 - 1 - - - IDR11 - Port input data (y = 0..15) - 11 - 1 - - - IDR10 - Port input data (y = 0..15) - 10 - 1 - - - IDR9 - Port input data (y = 0..15) - 9 - 1 - - - IDR8 - Port input data (y = 0..15) - 8 - 1 - - - IDR7 - Port input data (y = 0..15) - 7 - 1 - - - IDR6 - Port input data (y = 0..15) - 6 - 1 - - - IDR5 - Port input data (y = 0..15) - 5 - 1 - - - IDR4 - Port input data (y = 0..15) - 4 - 1 - - - IDR3 - Port input data (y = 0..15) - 3 - 1 - - - IDR2 - Port input data (y = 0..15) - 2 - 1 - - - IDR1 - Port input data (y = 0..15) - 1 - 1 - - - IDR0 - Port input data (y = 0..15) - 0 - 1 - - - - - ODR - ODR - GPIO port output data register - 0x14 - 0x20 - read-write - 0x00000000 - - - ODR15 - Port output data (y = 0..15) - 15 - 1 - - - ODR14 - Port output data (y = 0..15) - 14 - 1 - - - ODR13 - Port output data (y = 0..15) - 13 - 1 - - - ODR12 - Port output data (y = 0..15) - 12 - 1 - - - ODR11 - Port output data (y = 0..15) - 11 - 1 - - - ODR10 - Port output data (y = 0..15) - 10 - 1 - - - ODR9 - Port output data (y = 0..15) - 9 - 1 - - - ODR8 - Port output data (y = 0..15) - 8 - 1 - - - ODR7 - Port output data (y = 0..15) - 7 - 1 - - - ODR6 - Port output data (y = 0..15) - 6 - 1 - - - ODR5 - Port output data (y = 0..15) - 5 - 1 - - - ODR4 - Port output data (y = 0..15) - 4 - 1 - - - ODR3 - Port output data (y = 0..15) - 3 - 1 - - - ODR2 - Port output data (y = 0..15) - 2 - 1 - - - ODR1 - Port output data (y = 0..15) - 1 - 1 - - - ODR0 - Port output data (y = 0..15) - 0 - 1 - - - - - BSRR - BSRR - GPIO port bit set/reset register - 0x18 - 0x20 - write-only - 0x00000000 - - - BR15 - Port x reset bit y (y = 0..15) - 31 - 1 - - - BR14 - Port x reset bit y (y = 0..15) - 30 - 1 - - - BR13 - Port x reset bit y (y = 0..15) - 29 - 1 - - - BR12 - Port x reset bit y (y = 0..15) - 28 - 1 - - - BR11 - Port x reset bit y (y = 0..15) - 27 - 1 - - - BR10 - Port x reset bit y (y = 0..15) - 26 - 1 - - - BR9 - Port x reset bit y (y = 0..15) - 25 - 1 - - - BR8 - Port x reset bit y (y = 0..15) - 24 - 1 - - - BR7 - Port x reset bit y (y = 0..15) - 23 - 1 - - - BR6 - Port x reset bit y (y = 0..15) - 22 - 1 - - - BR5 - Port x reset bit y (y = 0..15) - 21 - 1 - - - BR4 - Port x reset bit y (y = 0..15) - 20 - 1 - - - BR3 - Port x reset bit y (y = 0..15) - 19 - 1 - - - BR2 - Port x reset bit y (y = 0..15) - 18 - 1 - - - BR1 - Port x reset bit y (y = 0..15) - 17 - 1 - - - BR0 - Port x set bit y (y= 0..15) - 16 - 1 - - - BS15 - Port x set bit y (y= 0..15) - 15 - 1 - - - BS14 - Port x set bit y (y= 0..15) - 14 - 1 - - - BS13 - Port x set bit y (y= 0..15) - 13 - 1 - - - BS12 - Port x set bit y (y= 0..15) - 12 - 1 - - - BS11 - Port x set bit y (y= 0..15) - 11 - 1 - - - BS10 - Port x set bit y (y= 0..15) - 10 - 1 - - - BS9 - Port x set bit y (y= 0..15) - 9 - 1 - - - BS8 - Port x set bit y (y= 0..15) - 8 - 1 - - - BS7 - Port x set bit y (y= 0..15) - 7 - 1 - - - BS6 - Port x set bit y (y= 0..15) - 6 - 1 - - - BS5 - Port x set bit y (y= 0..15) - 5 - 1 - - - BS4 - Port x set bit y (y= 0..15) - 4 - 1 - - - BS3 - Port x set bit y (y= 0..15) - 3 - 1 - - - BS2 - Port x set bit y (y= 0..15) - 2 - 1 - - - BS1 - Port x set bit y (y= 0..15) - 1 - 1 - - - BS0 - Port x set bit y (y= 0..15) - 0 - 1 - - - - - LCKR - LCKR - GPIO port configuration lock register - 0x1C - 0x20 - read-write - 0x00000000 - - - LCKK - Port x lock bit y (y= 0..15) - 16 - 1 - - - LCK15 - Port x lock bit y (y= 0..15) - 15 - 1 - - - LCK14 - Port x lock bit y (y= 0..15) - 14 - 1 - - - LCK13 - Port x lock bit y (y= 0..15) - 13 - 1 - - - LCK12 - Port x lock bit y (y= 0..15) - 12 - 1 - - - LCK11 - Port x lock bit y (y= 0..15) - 11 - 1 - - - LCK10 - Port x lock bit y (y= 0..15) - 10 - 1 - - - LCK9 - Port x lock bit y (y= 0..15) - 9 - 1 - - - LCK8 - Port x lock bit y (y= 0..15) - 8 - 1 - - - LCK7 - Port x lock bit y (y= 0..15) - 7 - 1 - - - LCK6 - Port x lock bit y (y= 0..15) - 6 - 1 - - - LCK5 - Port x lock bit y (y= 0..15) - 5 - 1 - - - LCK4 - Port x lock bit y (y= 0..15) - 4 - 1 - - - LCK3 - Port x lock bit y (y= 0..15) - 3 - 1 - - - LCK2 - Port x lock bit y (y= 0..15) - 2 - 1 - - - LCK1 - Port x lock bit y (y= 0..15) - 1 - 1 - - - LCK0 - Port x lock bit y (y= 0..15) - 0 - 1 - - - - - AFRL - AFRL - GPIO alternate function low register - 0x20 - 0x20 - read-write - 0x00000000 - - - AFSEL7 - Alternate function selection for port x bit y (y = 0..7) - 28 - 4 - - - AFSEL6 - Alternate function selection for port x bit y (y = 0..7) - 24 - 4 - - - AFSEL5 - Alternate function selection for port x bit y (y = 0..7) - 20 - 4 - - - AFSEL4 - Alternate function selection for port x bit y (y = 0..7) - 16 - 4 - - - AFSEL3 - Alternate function selection for port x bit y (y = 0..7) - 12 - 4 - - - AFSEL2 - Alternate function selection for port x bit y (y = 0..7) - 8 - 4 - - - AFSEL1 - Alternate function selection for port x bit y (y = 0..7) - 4 - 4 - - - AFSEL0 - Alternate function selection for port x bit y (y = 0..7) - 0 - 4 - - - - - AFRH - AFRH - GPIO alternate function high register - 0x24 - 0x20 - read-write - 0x00000000 - - - AFSEL15 - Alternate function selection for port x bit y (y = 8..15) - 28 - 4 - - - AFSEL14 - Alternate function selection for port x bit y (y = 8..15) - 24 - 4 - - - AFSEL13 - Alternate function selection for port x bit y (y = 8..15) - 20 - 4 - - - AFSEL12 - Alternate function selection for port x bit y (y = 8..15) - 16 - 4 - - - AFSEL11 - Alternate function selection for port x bit y (y = 8..15) - 12 - 4 - - - AFSEL10 - Alternate function selection for port x bit y (y = 8..15) - 8 - 4 - - - AFSEL9 - Alternate function selection for port x bit y (y = 8..15) - 4 - 4 - - - AFSEL8 - Alternate function selection for port x bit y (y = 8..15) - 0 - 4 - - - - - BRR - BRR - port bit reset register - 0x28 - 0x20 - write-only - 0x00000000 - - - BR0 - Port Reset bit - 0 - 1 - - - BR1 - Port Reset bit - 1 - 1 - - - BR2 - Port Reset bit - 2 - 1 - - - BR3 - Port Reset bit - 3 - 1 - - - BR4 - Port Reset bit - 4 - 1 - - - BR5 - Port Reset bit - 5 - 1 - - - BR6 - Port Reset bit - 6 - 1 - - - BR7 - Port Reset bit - 7 - 1 - - - BR8 - Port Reset bit - 8 - 1 - - - BR9 - Port Reset bit - 9 - 1 - - - BR10 - Port Reset bit - 10 - 1 - - - BR11 - Port Reset bit - 11 - 1 - - - BR12 - Port Reset bit - 12 - 1 - - - BR13 - Port Reset bit - 13 - 1 - - - BR14 - Port Reset bit - 14 - 1 - - - BR15 - Port Reset bit - 15 - 1 - - - - - - - GPIOC - General-purpose I/Os - GPIO - 0x48000800 - - 0x0 - 0x400 - registers - - - - MODER - MODER - GPIO port mode register - 0x0 - 0x20 - read-write - 0xFFFFFFFF - - - MODER15 - Port x configuration bits (y = 0..15) - 30 - 2 - - - MODER14 - Port x configuration bits (y = 0..15) - 28 - 2 - - - MODER13 - Port x configuration bits (y = 0..15) - 26 - 2 - - - MODER12 - Port x configuration bits (y = 0..15) - 24 - 2 - - - MODER11 - Port x configuration bits (y = 0..15) - 22 - 2 - - - MODER10 - Port x configuration bits (y = 0..15) - 20 - 2 - - - MODER9 - Port x configuration bits (y = 0..15) - 18 - 2 - - - MODER8 - Port x configuration bits (y = 0..15) - 16 - 2 - - - MODER7 - Port x configuration bits (y = 0..15) - 14 - 2 - - - MODER6 - Port x configuration bits (y = 0..15) - 12 - 2 - - - MODER5 - Port x configuration bits (y = 0..15) - 10 - 2 - - - MODER4 - Port x configuration bits (y = 0..15) - 8 - 2 - - - MODER3 - Port x configuration bits (y = 0..15) - 6 - 2 - - - MODER2 - Port x configuration bits (y = 0..15) - 4 - 2 - - - MODER1 - Port x configuration bits (y = 0..15) - 2 - 2 - - - MODER0 - Port x configuration bits (y = 0..15) - 0 - 2 - - - - - OTYPER - OTYPER - GPIO port output type register - 0x4 - 0x20 - read-write - 0x00000000 - - - OT15 - Port x configuration bits (y = 0..15) - 15 - 1 - - - OT14 - Port x configuration bits (y = 0..15) - 14 - 1 - - - OT13 - Port x configuration bits (y = 0..15) - 13 - 1 - - - OT12 - Port x configuration bits (y = 0..15) - 12 - 1 - - - OT11 - Port x configuration bits (y = 0..15) - 11 - 1 - - - OT10 - Port x configuration bits (y = 0..15) - 10 - 1 - - - OT9 - Port x configuration bits (y = 0..15) - 9 - 1 - - - OT8 - Port x configuration bits (y = 0..15) - 8 - 1 - - - OT7 - Port x configuration bits (y = 0..15) - 7 - 1 - - - OT6 - Port x configuration bits (y = 0..15) - 6 - 1 - - - OT5 - Port x configuration bits (y = 0..15) - 5 - 1 - - - OT4 - Port x configuration bits (y = 0..15) - 4 - 1 - - - OT3 - Port x configuration bits (y = 0..15) - 3 - 1 - - - OT2 - Port x configuration bits (y = 0..15) - 2 - 1 - - - OT1 - Port x configuration bits (y = 0..15) - 1 - 1 - - - OT0 - Port x configuration bits (y = 0..15) - 0 - 1 - - - - - OSPEEDR - OSPEEDR - GPIO port output speed register - 0x8 - 0x20 - read-write - 0x000000C0 - - - OSPEEDR15 - Port x configuration bits (y = 0..15) - 30 - 2 - - - OSPEEDR14 - Port x configuration bits (y = 0..15) - 28 - 2 - - - OSPEEDR13 - Port x configuration bits (y = 0..15) - 26 - 2 - - - OSPEEDR12 - Port x configuration bits (y = 0..15) - 24 - 2 - - - OSPEEDR11 - Port x configuration bits (y = 0..15) - 22 - 2 - - - OSPEEDR10 - Port x configuration bits (y = 0..15) - 20 - 2 - - - OSPEEDR9 - Port x configuration bits (y = 0..15) - 18 - 2 - - - OSPEEDR8 - Port x configuration bits (y = 0..15) - 16 - 2 - - - OSPEEDR7 - Port x configuration bits (y = 0..15) - 14 - 2 - - - OSPEEDR6 - Port x configuration bits (y = 0..15) - 12 - 2 - - - OSPEEDR5 - Port x configuration bits (y = 0..15) - 10 - 2 - - - OSPEEDR4 - Port x configuration bits (y = 0..15) - 8 - 2 - - - OSPEEDR3 - Port x configuration bits (y = 0..15) - 6 - 2 - - - OSPEEDR2 - Port x configuration bits (y = 0..15) - 4 - 2 - - - OSPEEDR1 - Port x configuration bits (y = 0..15) - 2 - 2 - - - OSPEEDR0 - Port x configuration bits (y = 0..15) - 0 - 2 - - - - - PUPDR - PUPDR - GPIO port pull-up/pull-down register - 0xC - 0x20 - read-write - 0x00000100 - - - PUPDR15 - Port x configuration bits (y = 0..15) - 30 - 2 - - - PUPDR14 - Port x configuration bits (y = 0..15) - 28 - 2 - - - PUPDR13 - Port x configuration bits (y = 0..15) - 26 - 2 - - - PUPDR12 - Port x configuration bits (y = 0..15) - 24 - 2 - - - PUPDR11 - Port x configuration bits (y = 0..15) - 22 - 2 - - - PUPDR10 - Port x configuration bits (y = 0..15) - 20 - 2 - - - PUPDR9 - Port x configuration bits (y = 0..15) - 18 - 2 - - - PUPDR8 - Port x configuration bits (y = 0..15) - 16 - 2 - - - PUPDR7 - Port x configuration bits (y = 0..15) - 14 - 2 - - - PUPDR6 - Port x configuration bits (y = 0..15) - 12 - 2 - - - PUPDR5 - Port x configuration bits (y = 0..15) - 10 - 2 - - - PUPDR4 - Port x configuration bits (y = 0..15) - 8 - 2 - - - PUPDR3 - Port x configuration bits (y = 0..15) - 6 - 2 - - - PUPDR2 - Port x configuration bits (y = 0..15) - 4 - 2 - - - PUPDR1 - Port x configuration bits (y = 0..15) - 2 - 2 - - - PUPDR0 - Port x configuration bits (y = 0..15) - 0 - 2 - - - - - IDR - IDR - GPIO port input data register - 0x10 - 0x20 - read-only - 0x00000000 - - - IDR15 - Port input data (y = 0..15) - 15 - 1 - - - IDR14 - Port input data (y = 0..15) - 14 - 1 - - - IDR13 - Port input data (y = 0..15) - 13 - 1 - - - IDR12 - Port input data (y = 0..15) - 12 - 1 - - - IDR11 - Port input data (y = 0..15) - 11 - 1 - - - IDR10 - Port input data (y = 0..15) - 10 - 1 - - - IDR9 - Port input data (y = 0..15) - 9 - 1 - - - IDR8 - Port input data (y = 0..15) - 8 - 1 - - - IDR7 - Port input data (y = 0..15) - 7 - 1 - - - IDR6 - Port input data (y = 0..15) - 6 - 1 - - - IDR5 - Port input data (y = 0..15) - 5 - 1 - - - IDR4 - Port input data (y = 0..15) - 4 - 1 - - - IDR3 - Port input data (y = 0..15) - 3 - 1 - - - IDR2 - Port input data (y = 0..15) - 2 - 1 - - - IDR1 - Port input data (y = 0..15) - 1 - 1 - - - IDR0 - Port input data (y = 0..15) - 0 - 1 - - - - - ODR - ODR - GPIO port output data register - 0x14 - 0x20 - read-write - 0x00000000 - - - ODR15 - Port output data (y = 0..15) - 15 - 1 - - - ODR14 - Port output data (y = 0..15) - 14 - 1 - - - ODR13 - Port output data (y = 0..15) - 13 - 1 - - - ODR12 - Port output data (y = 0..15) - 12 - 1 - - - ODR11 - Port output data (y = 0..15) - 11 - 1 - - - ODR10 - Port output data (y = 0..15) - 10 - 1 - - - ODR9 - Port output data (y = 0..15) - 9 - 1 - - - ODR8 - Port output data (y = 0..15) - 8 - 1 - - - ODR7 - Port output data (y = 0..15) - 7 - 1 - - - ODR6 - Port output data (y = 0..15) - 6 - 1 - - - ODR5 - Port output data (y = 0..15) - 5 - 1 - - - ODR4 - Port output data (y = 0..15) - 4 - 1 - - - ODR3 - Port output data (y = 0..15) - 3 - 1 - - - ODR2 - Port output data (y = 0..15) - 2 - 1 - - - ODR1 - Port output data (y = 0..15) - 1 - 1 - - - ODR0 - Port output data (y = 0..15) - 0 - 1 - - - - - BSRR - BSRR - GPIO port bit set/reset register - 0x18 - 0x20 - write-only - 0x00000000 - - - BR15 - Port x reset bit y (y = 0..15) - 31 - 1 - - - BR14 - Port x reset bit y (y = 0..15) - 30 - 1 - - - BR13 - Port x reset bit y (y = 0..15) - 29 - 1 - - - BR12 - Port x reset bit y (y = 0..15) - 28 - 1 - - - BR11 - Port x reset bit y (y = 0..15) - 27 - 1 - - - BR10 - Port x reset bit y (y = 0..15) - 26 - 1 - - - BR9 - Port x reset bit y (y = 0..15) - 25 - 1 - - - BR8 - Port x reset bit y (y = 0..15) - 24 - 1 - - - BR7 - Port x reset bit y (y = 0..15) - 23 - 1 - - - BR6 - Port x reset bit y (y = 0..15) - 22 - 1 - - - BR5 - Port x reset bit y (y = 0..15) - 21 - 1 - - - BR4 - Port x reset bit y (y = 0..15) - 20 - 1 - - - BR3 - Port x reset bit y (y = 0..15) - 19 - 1 - - - BR2 - Port x reset bit y (y = 0..15) - 18 - 1 - - - BR1 - Port x reset bit y (y = 0..15) - 17 - 1 - - - BR0 - Port x set bit y (y= 0..15) - 16 - 1 - - - BS15 - Port x set bit y (y= 0..15) - 15 - 1 - - - BS14 - Port x set bit y (y= 0..15) - 14 - 1 - - - BS13 - Port x set bit y (y= 0..15) - 13 - 1 - - - BS12 - Port x set bit y (y= 0..15) - 12 - 1 - - - BS11 - Port x set bit y (y= 0..15) - 11 - 1 - - - BS10 - Port x set bit y (y= 0..15) - 10 - 1 - - - BS9 - Port x set bit y (y= 0..15) - 9 - 1 - - - BS8 - Port x set bit y (y= 0..15) - 8 - 1 - - - BS7 - Port x set bit y (y= 0..15) - 7 - 1 - - - BS6 - Port x set bit y (y= 0..15) - 6 - 1 - - - BS5 - Port x set bit y (y= 0..15) - 5 - 1 - - - BS4 - Port x set bit y (y= 0..15) - 4 - 1 - - - BS3 - Port x set bit y (y= 0..15) - 3 - 1 - - - BS2 - Port x set bit y (y= 0..15) - 2 - 1 - - - BS1 - Port x set bit y (y= 0..15) - 1 - 1 - - - BS0 - Port x set bit y (y= 0..15) - 0 - 1 - - - - - LCKR - LCKR - GPIO port configuration lock register - 0x1C - 0x20 - read-write - 0x00000000 - - - LCKK - Port x lock bit y (y= 0..15) - 16 - 1 - - - LCK15 - Port x lock bit y (y= 0..15) - 15 - 1 - - - LCK14 - Port x lock bit y (y= 0..15) - 14 - 1 - - - LCK13 - Port x lock bit y (y= 0..15) - 13 - 1 - - - LCK12 - Port x lock bit y (y= 0..15) - 12 - 1 - - - LCK11 - Port x lock bit y (y= 0..15) - 11 - 1 - - - LCK10 - Port x lock bit y (y= 0..15) - 10 - 1 - - - LCK9 - Port x lock bit y (y= 0..15) - 9 - 1 - - - LCK8 - Port x lock bit y (y= 0..15) - 8 - 1 - - - LCK7 - Port x lock bit y (y= 0..15) - 7 - 1 - - - LCK6 - Port x lock bit y (y= 0..15) - 6 - 1 - - - LCK5 - Port x lock bit y (y= 0..15) - 5 - 1 - - - LCK4 - Port x lock bit y (y= 0..15) - 4 - 1 - - - LCK3 - Port x lock bit y (y= 0..15) - 3 - 1 - - - LCK2 - Port x lock bit y (y= 0..15) - 2 - 1 - - - LCK1 - Port x lock bit y (y= 0..15) - 1 - 1 - - - LCK0 - Port x lock bit y (y= 0..15) - 0 - 1 - - - - - AFRL - AFRL - GPIO alternate function low register - 0x20 - 0x20 - read-write - 0x00000000 - - - AFSEL7 - Alternate function selection for port x bit y (y = 0..7) - 28 - 4 - - - AFSEL6 - Alternate function selection for port x bit y (y = 0..7) - 24 - 4 - - - AFSEL5 - Alternate function selection for port x bit y (y = 0..7) - 20 - 4 - - - AFSEL4 - Alternate function selection for port x bit y (y = 0..7) - 16 - 4 - - - AFSEL3 - Alternate function selection for port x bit y (y = 0..7) - 12 - 4 - - - AFSEL2 - Alternate function selection for port x bit y (y = 0..7) - 8 - 4 - - - AFSEL1 - Alternate function selection for port x bit y (y = 0..7) - 4 - 4 - - - AFSEL0 - Alternate function selection for port x bit y (y = 0..7) - 0 - 4 - - - - - AFRH - AFRH - GPIO alternate function high register - 0x24 - 0x20 - read-write - 0x00000000 - - - AFSEL15 - Alternate function selection for port x bit y (y = 8..15) - 28 - 4 - - - AFSEL14 - Alternate function selection for port x bit y (y = 8..15) - 24 - 4 - - - AFSEL13 - Alternate function selection for port x bit y (y = 8..15) - 20 - 4 - - - AFSEL12 - Alternate function selection for port x bit y (y = 8..15) - 16 - 4 - - - AFSEL11 - Alternate function selection for port x bit y (y = 8..15) - 12 - 4 - - - AFSEL10 - Alternate function selection for port x bit y (y = 8..15) - 8 - 4 - - - AFSEL9 - Alternate function selection for port x bit y (y = 8..15) - 4 - 4 - - - AFSEL8 - Alternate function selection for port x bit y (y = 8..15) - 0 - 4 - - - - - BRR - BRR - port bit reset register - 0x28 - 0x20 - write-only - 0x00000000 - - - BR0 - Port Reset bit - 0 - 1 - - - BR1 - Port Reset bit - 1 - 1 - - - BR2 - Port Reset bit - 2 - 1 - - - BR3 - Port Reset bit - 3 - 1 - - - BR4 - Port Reset bit - 4 - 1 - - - BR5 - Port Reset bit - 5 - 1 - - - BR6 - Port Reset bit - 6 - 1 - - - BR7 - Port Reset bit - 7 - 1 - - - BR8 - Port Reset bit - 8 - 1 - - - BR9 - Port Reset bit - 9 - 1 - - - BR10 - Port Reset bit - 10 - 1 - - - BR11 - Port Reset bit - 11 - 1 - - - BR12 - Port Reset bit - 12 - 1 - - - BR13 - Port Reset bit - 13 - 1 - - - BR14 - Port Reset bit - 14 - 1 - - - BR15 - Port Reset bit - 15 - 1 - - - - - - - GPIOD - 0x48000C00 - - - GPIOE - General-purpose I/Os - GPIO - 0x48001000 - - 0x0 - 0x400 - registers - - - - MODER - MODER - GPIO port mode register - 0x0 - 0x20 - read-write - 0x000003FF - - - MODER4 - Port x configuration bits (y = 0..15) - 8 - 2 - - - MODER3 - Port x configuration bits (y = 0..15) - 6 - 2 - - - MODER2 - Port x configuration bits (y = 0..15) - 4 - 2 - - - MODER1 - Port x configuration bits (y = 0..15) - 2 - 2 - - - MODER0 - Port x configuration bits (y = 0..15) - 0 - 2 - - - - - OTYPER - OTYPER - GPIO port output type register - 0x4 - 0x20 - read-write - 0x00000000 - - - OT4 - Port x configuration bits (y = 0..15) - 4 - 1 - - - OT3 - Port x configuration bits (y = 0..15) - 3 - 1 - - - OT2 - Port x configuration bits (y = 0..15) - 2 - 1 - - - OT1 - Port x configuration bits (y = 0..15) - 1 - 1 - - - OT0 - Port x configuration bits (y = 0..15) - 0 - 1 - - - - - OSPEEDR - OSPEEDR - GPIO port output speed register - 0x8 - 0x20 - read-write - 0x000000C0 - - - OSPEEDR4 - Port x configuration bits (y = 0..15) - 8 - 2 - - - OSPEEDR3 - Port x configuration bits (y = 0..15) - 6 - 2 - - - OSPEEDR2 - Port x configuration bits (y = 0..15) - 4 - 2 - - - OSPEEDR1 - Port x configuration bits (y = 0..15) - 2 - 2 - - - OSPEEDR0 - Port x configuration bits (y = 0..15) - 0 - 2 - - - - - PUPDR - PUPDR - GPIO port pull-up/pull-down register - 0xC - 0x20 - read-write - 0x00000000 - - - PUPDR4 - Port x configuration bits (y = 0..15) - 8 - 2 - - - PUPDR3 - Port x configuration bits (y = 0..15) - 6 - 2 - - - PUPDR2 - Port x configuration bits (y = 0..15) - 4 - 2 - - - PUPDR1 - Port x configuration bits (y = 0..15) - 2 - 2 - - - PUPDR0 - Port x configuration bits (y = 0..15) - 0 - 2 - - - - - IDR - IDR - GPIO port input data register - 0x10 - 0x20 - read-only - 0x00000000 - - - IDR4 - Port input data (y = 0..15) - 4 - 1 - - - IDR3 - Port input data (y = 0..15) - 3 - 1 - - - IDR2 - Port input data (y = 0..15) - 2 - 1 - - - IDR1 - Port input data (y = 0..15) - 1 - 1 - - - IDR0 - Port input data (y = 0..15) - 0 - 1 - - - - - ODR - ODR - GPIO port output data register - 0x14 - 0x20 - read-write - 0x00000000 - - - ODR4 - Port output data (y = 0..15) - 4 - 1 - - - ODR3 - Port output data (y = 0..15) - 3 - 1 - - - ODR2 - Port output data (y = 0..15) - 2 - 1 - - - ODR1 - Port output data (y = 0..15) - 1 - 1 - - - ODR0 - Port output data (y = 0..15) - 0 - 1 - - - - - BSRR - BSRR - GPIO port bit set/reset register - 0x18 - 0x20 - write-only - 0x00000000 - - - BR4 - Port x reset bit y (y = 0..15) - 20 - 1 - - - BR3 - Port x reset bit y (y = 0..15) - 19 - 1 - - - BR2 - Port x reset bit y (y = 0..15) - 18 - 1 - - - BR1 - Port x reset bit y (y = 0..15) - 17 - 1 - - - BR0 - Port x set bit y (y= 0..15) - 16 - 1 - - - BS4 - Port x set bit y (y= 0..15) - 4 - 1 - - - BS3 - Port x set bit y (y= 0..15) - 3 - 1 - - - BS2 - Port x set bit y (y= 0..15) - 2 - 1 - - - BS1 - Port x set bit y (y= 0..15) - 1 - 1 - - - BS0 - Port x set bit y (y= 0..15) - 0 - 1 - - - - - LCKR - LCKR - GPIO port configuration lock register - 0x1C - 0x20 - read-write - 0x00000000 - - - LCKK - Port x lock bit y (y= 0..15) - 16 - 1 - - - LCK4 - Port x lock bit y (y= 0..15) - 4 - 1 - - - LCK3 - Port x lock bit y (y= 0..15) - 3 - 1 - - - LCK2 - Port x lock bit y (y= 0..15) - 2 - 1 - - - LCK1 - Port x lock bit y (y= 0..15) - 1 - 1 - - - LCK0 - Port x lock bit y (y= 0..15) - 0 - 1 - - - - - AFRL - AFRL - GPIO alternate function low register - 0x20 - 0x20 - read-write - 0x00000000 - - - AFSEL4 - Alternate function selection for port x bit y (y = 0..7) - 16 - 4 - - - AFSEL3 - Alternate function selection for port x bit y (y = 0..7) - 12 - 4 - - - AFSEL2 - Alternate function selection for port x bit y (y = 0..7) - 8 - 4 - - - AFSEL1 - Alternate function selection for port x bit y (y = 0..7) - 4 - 4 - - - AFSEL0 - Alternate function selection for port x bit y (y = 0..7) - 0 - 4 - - - - - AFRH - AFRH - GPIO alternate function high register - 0x24 - 0x20 - read-write - 0x00000000 - - - AFSEL15 - Alternate function selection for port x bit y (y = 8..15) - 28 - 4 - - - AFSEL14 - Alternate function selection for port x bit y (y = 8..15) - 24 - 4 - - - AFSEL13 - Alternate function selection for port x bit y (y = 8..15) - 20 - 4 - - - AFSEL12 - Alternate function selection for port x bit y (y = 8..15) - 16 - 4 - - - AFSEL11 - Alternate function selection for port x bit y (y = 8..15) - 12 - 4 - - - AFSEL10 - Alternate function selection for port x bit y (y = 8..15) - 8 - 4 - - - AFSEL9 - Alternate function selection for port x bit y (y = 8..15) - 4 - 4 - - - AFSEL8 - Alternate function selection for port x bit y (y = 8..15) - 0 - 4 - - - - - BRR - BRR - port bit reset register - 0x28 - 0x20 - write-only - 0x00000000 - - - BR0 - Port Reset bit - 0 - 1 - - - BR1 - Port Reset bit - 1 - 1 - - - BR2 - Port Reset bit - 2 - 1 - - - BR3 - Port Reset bit - 3 - 1 - - - BR4 - Port Reset bit - 4 - 1 - - - - - - - GPIOH - General-purpose I/Os - GPIO - 0x48001C00 - - 0x0 - 0x400 - registers - - - - MODER - MODER - GPIO port mode register - 0x0 - 0x20 - read-write - 0x000000CF - - - MODER3 - Port x configuration bits (y = 0..15) - 6 - 2 - - - MODER1 - Port x configuration bits (y = 0..15) - 2 - 2 - - - MODER0 - Port x configuration bits (y = 0..15) - 0 - 2 - - - - - OTYPER - OTYPER - GPIO port output type register - 0x4 - 0x20 - read-write - 0x00000000 - - - OT3 - Port x configuration bits (y = 0..15) - 3 - 1 - - - OT1 - Port x configuration bits (y = 0..15) - 1 - 1 - - - OT0 - Port x configuration bits (y = 0..15) - 0 - 1 - - - - - OSPEEDR - OSPEEDR - GPIO port output speed register - 0x8 - 0x20 - read-write - 0x00000000 - - - OSPEEDR3 - Port x configuration bits (y = 0..15) - 6 - 2 - - - OSPEEDR1 - Port x configuration bits (y = 0..15) - 2 - 2 - - - OSPEEDR0 - Port x configuration bits (y = 0..15) - 0 - 2 - - - - - PUPDR - PUPDR - GPIO port pull-up/pull-down register - 0xC - 0x20 - read-write - 0x00000000 - - - PUPDR3 - Port x configuration bits (y = 0..15) - 6 - 2 - - - PUPDR1 - Port x configuration bits (y = 0..15) - 2 - 2 - - - PUPDR0 - Port x configuration bits (y = 0..15) - 0 - 2 - - - - - IDR - IDR - GPIO port input data register - 0x10 - 0x20 - read-only - 0x00000000 - - - IDR3 - Port input data (y = 0..15) - 3 - 1 - - - IDR1 - Port input data (y = 0..15) - 1 - 1 - - - IDR0 - Port input data (y = 0..15) - 0 - 1 - - - - - ODR - ODR - GPIO port output data register - 0x14 - 0x20 - read-write - 0x00000000 - - - ODR3 - Port output data (y = 0..15) - 3 - 1 - - - ODR1 - Port output data (y = 0..15) - 1 - 1 - - - ODR0 - Port output data (y = 0..15) - 0 - 1 - - - - - BSRR - BSRR - GPIO port bit set/reset register - 0x18 - 0x20 - write-only - 0x00000000 - - - BR3 - Port x reset bit y (y = 0..15) - 19 - 1 - - - BR1 - Port x reset bit y (y = 0..15) - 17 - 1 - - - BR0 - Port x set bit y (y= 0..15) - 16 - 1 - - - BS3 - Port x set bit y (y= 0..15) - 3 - 1 - - - BS1 - Port x set bit y (y= 0..15) - 1 - 1 - - - BS0 - Port x set bit y (y= 0..15) - 0 - 1 - - - - - LCKR - LCKR - GPIO port configuration lock register - 0x1C - 0x20 - read-write - 0x00000000 - - - LCKK - Port x lock bit y (y= 0..15) - 16 - 1 - - - LCK3 - Port x lock bit y (y= 0..15) - 3 - 1 - - - LCK1 - Port x lock bit y (y= 0..15) - 1 - 1 - - - LCK0 - Port x lock bit y (y= 0..15) - 0 - 1 - - - - - AFRL - AFRL - GPIO alternate function low register - 0x20 - 0x20 - read-write - 0x00000000 - - - AFSEL3 - Alternate function selection for port x bit y (y = 0..7) - 12 - 4 - - - AFSEL1 - Alternate function selection for port x bit y (y = 0..7) - 4 - 4 - - - AFSEL0 - Alternate function selection for port x bit y (y = 0..7) - 0 - 4 - - - - - AFRH - AFRH - GPIO alternate function high register - 0x24 - 0x20 - read-write - 0x00000000 - - - AFSEL15 - Alternate function selection for port x bit y (y = 8..15) - 28 - 4 - - - AFSEL14 - Alternate function selection for port x bit y (y = 8..15) - 24 - 4 - - - AFSEL13 - Alternate function selection for port x bit y (y = 8..15) - 20 - 4 - - - AFSEL12 - Alternate function selection for port x bit y (y = 8..15) - 16 - 4 - - - AFSEL11 - Alternate function selection for port x bit y (y = 8..15) - 12 - 4 - - - AFSEL10 - Alternate function selection for port x bit y (y = 8..15) - 8 - 4 - - - AFSEL9 - Alternate function selection for port x bit y (y = 8..15) - 4 - 4 - - - AFSEL8 - Alternate function selection for port x bit y (y = 8..15) - 0 - 4 - - - - - BRR - BRR - port bit reset register - 0x28 - 0x20 - write-only - 0x00000000 - - - BR0 - Port Reset bit - 0 - 1 - - - BR1 - Port Reset bit - 1 - 1 - - - BR3 - Port Reset bit - 3 - 1 - - - - - - - SAI1 - Serial audio interface - SAI - 0x40015400 - - 0x0 - 0x400 - registers - - - SAI1 - SAI1 global interrupt - 38 - - - - GCR - GCR - Global configuration register - 0x0 - 0x20 - read-write - 0x00000000 - - - SYNCOUT - Synchronization outputs - 4 - 2 - - - SYNCIN - Synchronization inputs - 0 - 2 - - - - - BCR1 - BCR1 - BConfiguration register 1 - 0x24 - 0x20 - read-write - 0x00000040 - - - MCKEN - Master clock generation enable - 27 - 1 - - - OSR - Oversampling ratio for master clock - 26 - 1 - - - MCJDIV - Master clock divider - 20 - 6 - - - NODIV - No divider - 19 - 1 - - - DMAEN - DMA enable - 17 - 1 - - - SAIBEN - Audio block B enable - 16 - 1 - - - OutDri - Output drive - 13 - 1 - - - MONO - Mono mode - 12 - 1 - - - SYNCEN - Synchronization enable - 10 - 2 - - - CKSTR - Clock strobing edge - 9 - 1 - - - LSBFIRST - Least significant bit first - 8 - 1 - - - DS - Data size - 5 - 3 - - - PRTCFG - Protocol configuration - 2 - 2 - - - MODE - Audio block mode - 0 - 2 - - - - - BCR2 - BCR2 - BConfiguration register 2 - 0x28 - 0x20 - read-write - 0x00000000 - - - COMP - Companding mode - 14 - 2 - - - CPL - Complement bit - 13 - 1 - - - MUTECN - Mute counter - 7 - 6 - - - MUTEVAL - Mute value - 6 - 1 - - - MUTE - Mute - 5 - 1 - - - TRIS - Tristate management on data line - 4 - 1 - - - FFLUS - FIFO flush - 3 - 1 - - - FTH - FIFO threshold - 0 - 3 - - - - - BFRCR - BFRCR - BFRCR - 0x2C - 0x20 - read-write - 0x00000007 - - - FSOFF - Frame synchronization offset - 18 - 1 - - - FSPOL - Frame synchronization polarity - 17 - 1 - - - FSDEF - Frame synchronization definition - 16 - 1 - - - FSALL - Frame synchronization active level length - 8 - 7 - - - FRL - Frame length - 0 - 8 - - - - - BSLOTR - BSLOTR - BSlot register - 0x30 - 0x20 - read-write - 0x00000000 - - - SLOTEN - Slot enable - 16 - 16 - - - NBSLOT - Number of slots in an audio frame - 8 - 4 - - - SLOTSZ - Slot size - 6 - 2 - - - FBOFF - First bit offset - 0 - 5 - - - - - BIM - BIM - BInterrupt mask register2 - 0x34 - 0x20 - read-write - 0x00000000 - - - LFSDETIE - Late frame synchronization detection interrupt enable - 6 - 1 - - - AFSDETIE - Anticipated frame synchronization detection interrupt enable - 5 - 1 - - - CNRDYIE - Codec not ready interrupt enable - 4 - 1 - - - FREQIE - FIFO request interrupt enable - 3 - 1 - - - WCKCFG - Wrong clock configuration interrupt enable - 2 - 1 - - - MUTEDET - Mute detection interrupt enable - 1 - 1 - - - OVRUDRIE - Overrun/underrun interrupt enable - 0 - 1 - - - - - BSR - BSR - BStatus register - 0x38 - 0x20 - read-only - 0x00000008 - - - FLVL - FIFO level threshold - 16 - 3 - - - LFSDET - Late frame synchronization detection - 6 - 1 - - - AFSDET - Anticipated frame synchronization detection - 5 - 1 - - - CNRDY - Codec not ready - 4 - 1 - - - FREQ - FIFO request - 3 - 1 - - - WCKCFG - Wrong clock configuration flag - 2 - 1 - - - MUTEDET - Mute detection - 1 - 1 - - - OVRUDR - Overrun / underrun - 0 - 1 - - - - - BCLRFR - BCLRFR - BClear flag register - 0x3C - 0x20 - write-only - 0x00000000 - - - LFSDET - Clear late frame synchronization detection flag - 6 - 1 - - - CAFSDET - Clear anticipated frame synchronization detection flag - 5 - 1 - - - CNRDY - Clear codec not ready flag - 4 - 1 - - - WCKCFG - Clear wrong clock configuration flag - 2 - 1 - - - MUTEDET - Mute detection flag - 1 - 1 - - - OVRUDR - Clear overrun / underrun - 0 - 1 - - - - - BDR - BDR - BData register - 0x40 - 0x20 - read-write - 0x00000000 - - - DATA - Data - 0 - 32 - - - - - ACR1 - ACR1 - AConfiguration register 1 - 0x4 - 0x20 - read-write - 0x00000040 - - - MCKEN - Master clock generation enable - 27 - 1 - - - OSR - Oversampling ratio for master clock - 26 - 1 - - - MCJDIV - Master clock divider - 20 - 6 - - - NODIV - No divider - 19 - 1 - - - DMAEN - DMA enable - 17 - 1 - - - SAIBEN - Audio block B enable - 16 - 1 - - - OutDri - Output drive - 13 - 1 - - - MONO - Mono mode - 12 - 1 - - - SYNCEN - Synchronization enable - 10 - 2 - - - CKSTR - Clock strobing edge - 9 - 1 - - - LSBFIRST - Least significant bit first - 8 - 1 - - - DS - Data size - 5 - 3 - - - PRTCFG - Protocol configuration - 2 - 2 - - - MODE - Audio block mode - 0 - 2 - - - - - ACR2 - ACR2 - AConfiguration register 2 - 0x8 - 0x20 - read-write - 0x00000000 - - - COMP - Companding mode - 14 - 2 - - - CPL - Complement bit - 13 - 1 - - - MUTECN - Mute counter - 7 - 6 - - - MUTEVAL - Mute value - 6 - 1 - - - MUTE - Mute - 5 - 1 - - - TRIS - Tristate management on data line - 4 - 1 - - - FFLUS - FIFO flush - 3 - 1 - - - FTH - FIFO threshold - 0 - 3 - - - - - AFRCR - AFRCR - AFRCR - 0xC - 0x20 - read-write - 0x00000007 - - - FSOFF - Frame synchronization offset - 18 - 1 - - - FSPOL - Frame synchronization polarity - 17 - 1 - - - FSDEF - Frame synchronization definition - 16 - 1 - - - FSALL - Frame synchronization active level length - 8 - 7 - - - FRL - Frame length - 0 - 8 - - - - - ASLOTR - ASLOTR - ASlot register - 0x10 - 0x20 - read-write - 0x00000000 - - - SLOTEN - Slot enable - 16 - 16 - - - NBSLOT - Number of slots in an audio frame - 8 - 4 - - - SLOTSZ - Slot size - 6 - 2 - - - FBOFF - First bit offset - 0 - 5 - - - - - AIM - AIM - AInterrupt mask register2 - 0x14 - 0x20 - read-write - 0x00000000 - - - LFSDET - Late frame synchronization detection interrupt enable - 6 - 1 - - - AFSDETIE - Anticipated frame synchronization detection interrupt enable - 5 - 1 - - - CNRDYIE - Codec not ready interrupt enable - 4 - 1 - - - FREQIE - FIFO request interrupt enable - 3 - 1 - - - WCKCFG - Wrong clock configuration interrupt enable - 2 - 1 - - - MUTEDET - Mute detection interrupt enable - 1 - 1 - - - OVRUDRIE - Overrun/underrun interrupt enable - 0 - 1 - - - - - ASR - ASR - AStatus register - 0x18 - 0x20 - read-only - 0x00000008 - - - FLVL - FIFO level threshold - 16 - 3 - - - LFSDET - Late frame synchronization detection - 6 - 1 - - - AFSDET - Anticipated frame synchronization detection - 5 - 1 - - - CNRDY - Codec not ready - 4 - 1 - - - FREQ - FIFO request - 3 - 1 - - - WCKCFG - Wrong clock configuration flag. This bit is read only - 2 - 1 - - - MUTEDET - Mute detection - 1 - 1 - - - OVRUDR - Overrun / underrun - 0 - 1 - - - - - ACLRFR - ACLRFR - AClear flag register - 0x1C - 0x20 - write-only - 0x00000000 - - - LFSDET - Clear late frame synchronization detection flag - 6 - 1 - - - CAFSDET - Clear anticipated frame synchronization detection flag - 5 - 1 - - - CNRDY - Clear codec not ready flag - 4 - 1 - - - WCKCFG - Clear wrong clock configuration flag - 2 - 1 - - - MUTEDET - Mute detection flag - 1 - 1 - - - OVRUDR - Clear overrun / underrun - 0 - 1 - - - - - ADR - ADR - AData register - 0x20 - 0x20 - read-write - 0x00000000 - - - DATA - Data - 0 - 32 - - - - - PDMCR - PDMCR - PDM control register - 0x44 - 0x20 - read-write - 0x00000000 - - - CKEN4 - Clock enable of bitstream clock number 4 - 11 - 1 - - - CKEN3 - Clock enable of bitstream clock number 3 - 10 - 1 - - - CKEN2 - Clock enable of bitstream clock number 2 - 9 - 1 - - - CKEN1 - Clock enable of bitstream clock number 1 - 8 - 1 - - - MICNBR - Number of microphones - 4 - 2 - - - PDMEN - PDM enable - 0 - 1 - - - - - PDMDLY - PDMDLY - PDM delay register - 0x48 - 0x20 - read-write - 0x00000000 - - - DLYM4R - Delay line for second microphone of pair 4 - 28 - 3 - - - DLYM4L - Delay line for first microphone of pair 4 - 24 - 3 - - - DLYM3R - Delay line for second microphone of pair 3 - 20 - 3 - - - DLYM3L - Delay line for first microphone of pair 3 - 16 - 3 - - - DLYM2R - Delay line for second microphone of pair 2 - 12 - 3 - - - DLYM2L - Delay line for first microphone of pair 2 - 8 - 3 - - - DLYM1R - Delay line for second microphone of pair 1 - 4 - 3 - - - DLYM1L - Delay line for first microphone of pair 1 - 0 - 3 - - - - - - - TIM2 - General-purpose-timers - TIM - 0x40000000 - - 0x0 - 0x400 - registers - - - TIM2 - TIM2 global interrupt - 28 - - - - CR1 - CR1 - control register 1 - 0x0 - 0x20 - read-write - 0x0000 - - - UIFREMAP - UIF status bit remapping - 11 - 1 - - - CKD - Clock division - 8 - 2 - - - ARPE - Auto-reload preload enable - 7 - 1 - - - CMS - Center-aligned mode selection - 5 - 2 - - - DIR - Direction - 4 - 1 - - - OPM - One-pulse mode - 3 - 1 - - - URS - Update request source - 2 - 1 - - - UDIS - Update disable - 1 - 1 - - - CEN - Counter enable - 0 - 1 - - - - - CR2 - CR2 - control register 2 - 0x4 - 0x20 - read-write - 0x0000 - - - TI1S - TI1 selection - 7 - 1 - - - MMS - Master mode selection - 4 - 3 - - - CCDS - Capture/compare DMA selection - 3 - 1 - - - - - SMCR - SMCR - slave mode control register - 0x8 - 0x20 - read-write - 0x0000 - - - SMS_3 - Slave mode selection - bit 3 - 16 - 1 - - - ETP - External trigger polarity - 15 - 1 - - - ECE - External clock enable - 14 - 1 - - - ETPS - External trigger prescaler - 12 - 2 - - - ETF - External trigger filter - 8 - 4 - - - MSM - Master/Slave mode - 7 - 1 - - - TS - Trigger selection - 4 - 3 - - - OCCS - OCREF clear selection - 3 - 1 - - - SMS - Slave mode selection - 0 - 3 - - - - - DIER - DIER - DMA/Interrupt enable register - 0xC - 0x20 - read-write - 0x0000 - - - CC4DE - Capture/Compare 4 DMA request enable - 12 - 1 - - - CC3DE - Capture/Compare 3 DMA request enable - 11 - 1 - - - CC2DE - Capture/Compare 2 DMA request enable - 10 - 1 - - - CC1DE - Capture/Compare 1 DMA request enable - 9 - 1 - - - UDE - Update DMA request enable - 8 - 1 - - - TIE - Trigger interrupt enable - 6 - 1 - - - CC4IE - Capture/Compare 4 interrupt enable - 4 - 1 - - - CC3IE - Capture/Compare 3 interrupt enable - 3 - 1 - - - CC2IE - Capture/Compare 2 interrupt enable - 2 - 1 - - - CC1IE - Capture/Compare 1 interrupt enable - 1 - 1 - - - UIE - Update interrupt enable - 0 - 1 - - - - - SR - SR - status register - 0x10 - 0x20 - read-write - 0x0000 - - - CC4OF - Capture/Compare 4 overcapture flag - 12 - 1 - - - CC3OF - Capture/Compare 3 overcapture flag - 11 - 1 - - - CC2OF - Capture/compare 2 overcapture flag - 10 - 1 - - - CC1OF - Capture/Compare 1 overcapture flag - 9 - 1 - - - TIF - Trigger interrupt flag - 6 - 1 - - - CC4IF - Capture/Compare 4 interrupt flag - 4 - 1 - - - CC3IF - Capture/Compare 3 interrupt flag - 3 - 1 - - - CC2IF - Capture/Compare 2 interrupt flag - 2 - 1 - - - CC1IF - Capture/compare 1 interrupt flag - 1 - 1 - - - UIF - Update interrupt flag - 0 - 1 - - - - - EGR - EGR - event generation register - 0x14 - 0x20 - write-only - 0x0000 - - - TG - Trigger generation - 6 - 1 - - - CC4G - Capture/compare 4 generation - 4 - 1 - - - CC3G - Capture/compare 3 generation - 3 - 1 - - - CC2G - Capture/compare 2 generation - 2 - 1 - - - CC1G - Capture/compare 1 generation - 1 - 1 - - - UG - Update generation - 0 - 1 - - - - - CCMR1_Output - CCMR1_Output - capture/compare mode register 1 (output mode) - 0x18 - 0x20 - read-write - 0x00000000 - - - OC2M_3 - Output Compare 2 mode - bit 3 - 24 - 1 - - - OC1M_3 - Output Compare 1 mode - bit 3 - 16 - 1 - - - OC2CE - Output compare 2 clear enable - 15 - 1 - - - OC2M - Output compare 2 mode - 12 - 3 - - - OC2PE - Output compare 2 preload enable - 11 - 1 - - - OC2FE - Output compare 2 fast enable - 10 - 1 - - - CC2S - Capture/Compare 2 selection - 8 - 2 - - - OC1CE - Output compare 1 clear enable - 7 - 1 - - - OC1M - Output compare 1 mode - 4 - 3 - - - OC1PE - Output compare 1 preload enable - 3 - 1 - - - OC1FE - Output compare 1 fast enable - 2 - 1 - - - CC1S - Capture/Compare 1 selection - 0 - 2 - - - - - CCMR1_Input - CCMR1_Input - capture/compare mode register 1 (input mode) - CCMR1_Output - 0x18 - 0x20 - read-write - 0x00000000 - - - IC2F - Input capture 2 filter - 12 - 4 - - - IC2PSC - Input capture 2 prescaler - 10 - 2 - - - CC2S - Capture/compare 2 selection - 8 - 2 - - - IC1F - Input capture 1 filter - 4 - 4 - - - IC1PSC - Input capture 1 prescaler - 2 - 2 - - - CC1S - Capture/Compare 1 selection - 0 - 2 - - - - - CCMR2_Output - CCMR2_Output - capture/compare mode register 2 (output mode) - 0x1C - 0x20 - read-write - 0x00000000 - - - OC4M_3 - Output Compare 4 mode - bit 3 - 24 - 1 - - - OC3M_3 - Output Compare 3 mode - bit 3 - 16 - 1 - - - OC4CE - Output compare 4 clear enable - 15 - 1 - - - OC4M - Output compare 4 mode - 12 - 3 - - - OC4PE - Output compare 4 preload enable - 11 - 1 - - - OC4FE - Output compare 4 fast enable - 10 - 1 - - - CC4S - Capture/Compare 4 selection - 8 - 2 - - - OC3CE - Output compare 3 clear enable - 7 - 1 - - - OC3M - Output compare 3 mode - 4 - 3 - - - OC3PE - Output compare 3 preload enable - 3 - 1 - - - OC3FE - Output compare 3 fast enable - 2 - 1 - - - CC3S - Capture/Compare 3 selection - 0 - 2 - - - - - CCMR2_Input - CCMR2_Input - capture/compare mode register 2 (input mode) - CCMR2_Output - 0x1C - 0x20 - read-write - 0x00000000 - - - IC4F - Input capture 4 filter - 12 - 4 - - - IC4PSC - Input capture 4 prescaler - 10 - 2 - - - CC4S - Capture/Compare 4 selection - 8 - 2 - - - IC3F - Input capture 3 filter - 4 - 4 - - - IC3PSC - Input capture 3 prescaler - 2 - 2 - - - CC3S - Capture/Compare 3 selection - 0 - 2 - - - - - CCER - CCER - capture/compare enable register - 0x20 - 0x20 - read-write - 0x0000 - - - CC4NP - Capture/Compare 4 output Polarity - 15 - 1 - - - CC4P - Capture/Compare 3 output Polarity - 13 - 1 - - - CC4E - Capture/Compare 4 output enable - 12 - 1 - - - CC3NP - Capture/Compare 3 output Polarity - 11 - 1 - - - CC3P - Capture/Compare 3 output Polarity - 9 - 1 - - - CC3E - Capture/Compare 3 output enable - 8 - 1 - - - CC2NP - Capture/Compare 2 output Polarity - 7 - 1 - - - CC2P - Capture/Compare 2 output Polarity - 5 - 1 - - - CC2E - Capture/Compare 2 output enable - 4 - 1 - - - CC1NP - Capture/Compare 1 output Polarity - 3 - 1 - - - CC1P - Capture/Compare 1 output Polarity - 1 - 1 - - - CC1E - Capture/Compare 1 output enable - 0 - 1 - - - - - CNT - CNT - counter - 0x24 - 0x20 - 0x00000000 - - - CNT_H - High counter value (TIM2 only) - 16 - 15 - read-write - - - CNT_L - Low counter value - 0 - 16 - read-write - - - UIFCPY - Value depends on IUFREMAP in TIM2_CR1. - 31 - 1 - read-only - - - - - PSC - PSC - prescaler - 0x28 - 0x20 - read-write - 0x0000 - - - PSC - Prescaler value - 0 - 16 - - - - - ARR - ARR - auto-reload register - 0x2C - 0x20 - read-write - 0x00000000 - - - ARR_H - High Auto-reload value (TIM2 only) - 16 - 16 - - - ARR_L - Low Auto-reload value - 0 - 16 - - - - - CCR1 - CCR1 - capture/compare register 1 - 0x34 - 0x20 - read-write - 0x00000000 - - - CCR1_H - High Capture/Compare 1 value (TIM2 only) - 16 - 16 - - - CCR1_L - Low Capture/Compare 1 value - 0 - 16 - - - - - CCR2 - CCR2 - capture/compare register 2 - 0x38 - 0x20 - read-write - 0x00000000 - - - CCR2_H - High Capture/Compare 2 value (TIM2 only) - 16 - 16 - - - CCR2_L - Low Capture/Compare 2 value - 0 - 16 - - - - - CCR3 - CCR3 - capture/compare register 3 - 0x3C - 0x20 - read-write - 0x00000000 - - - CCR3_H - High Capture/Compare value (TIM2 only) - 16 - 16 - - - CCR3_L - Low Capture/Compare value - 0 - 16 - - - - - CCR4 - CCR4 - capture/compare register 4 - 0x40 - 0x20 - read-write - 0x00000000 - - - CCR4_H - High Capture/Compare value (TIM2 only) - 16 - 16 - - - CCR4_L - Low Capture/Compare value - 0 - 16 - - - - - DCR - DCR - DMA control register - 0x48 - 0x20 - read-write - 0x0000 - - - DBL - DMA burst length - 8 - 5 - - - DBA - DMA base address - 0 - 5 - - - - - DMAR - DMAR - DMA address for full transfer - 0x4C - 0x20 - read-write - 0x0000 - - - DMAB - DMA register for burst accesses - 0 - 16 - - - - - OR - OR - TIM2 option register - 0x50 - 0x20 - read-write - 0x0000 - - - TI4_RMP - Input capture 4 remap - 2 - 2 - - - ETR_RMP - External trigger remap - 1 - 1 - - - ITR_RMP - Internal trigger remap - 0 - 1 - - - - - AF - AF - TIM2 alternate function option register 1 - 0x60 - 0x20 - read-write - 0x0000 - - - ETRSEL - External trigger source selection - 14 - 3 - - - - - - - TIM16 - General purpose timers - TIM - 0x40014400 - - 0x0 - 0x400 - registers - - - - CR1 - CR1 - control register 1 - 0x0 - 0x20 - read-write - 0x0000 - - - CEN - Counter enable - 0 - 1 - - - UDIS - Update disable - 1 - 1 - - - URS - Update request source - 2 - 1 - - - OPM - One-pulse mode - 3 - 1 - - - ARPE - Auto-reload preload enable - 7 - 1 - - - CKD - Clock division - 8 - 2 - - - UIFREMAP - UIF status bit remapping - 11 - 1 - - - - - CR2 - CR2 - control register 2 - 0x4 - 0x20 - read-write - 0x0000 - - - OIS1N - Output Idle state 1 - 9 - 1 - - - OIS1 - Output Idle state 1 - 8 - 1 - - - CCDS - Capture/compare DMA selection - 3 - 1 - - - CCUS - Capture/compare control update selection - 2 - 1 - - - CCPC - Capture/compare preloaded control - 0 - 1 - - - - - DIER - DIER - DMA/Interrupt enable register - 0xC - 0x20 - read-write - 0x0000 - - - UIE - Update interrupt enable - 0 - 1 - - - CC1IE - Capture/Compare 1 interrupt enable - 1 - 1 - - - COMIE - COM interrupt enable - 5 - 1 - - - BIE - Break interrupt enable - 7 - 1 - - - UDE - Update DMA request enable - 8 - 1 - - - CC1DE - Capture/Compare 1 DMA request enable - 9 - 1 - - - - - SR - SR - status register - 0x10 - 0x20 - read-write - 0x0000 - - - CC1OF - Capture/Compare 1 overcapture flag - 9 - 1 - - - BIF - Break interrupt flag - 7 - 1 - - - COMIF - COM interrupt flag - 5 - 1 - - - CC1IF - Capture/compare 1 interrupt flag - 1 - 1 - - - UIF - Update interrupt flag - 0 - 1 - - - - - EGR - EGR - event generation register - 0x14 - 0x20 - write-only - 0x0000 - - - BG - Break generation - 7 - 1 - - - COMG - Capture/Compare control update generation - 5 - 1 - - - CC1G - Capture/compare 1 generation - 1 - 1 - - - UG - Update generation - 0 - 1 - - - - - CCMR1_Output - CCMR1_Output - capture/compare mode register (output mode) - 0x18 - 0x20 - read-write - 0x00000000 - - - OC1M_3 - Output Compare 1 mode - 16 - 1 - - - OC1M - Output Compare 1 mode - 4 - 3 - - - OC1PE - Output Compare 1 preload enable - 3 - 1 - - - OC1FE - Output Compare 1 fast enable - 2 - 1 - - - CC1S - Capture/Compare 1 selection - 0 - 2 - - - - - CCMR1_Input - CCMR1_Input - capture/compare mode register 1 (input mode) - CCMR1_Output - 0x18 - 0x20 - read-write - 0x00000000 - - - IC1F - Input capture 1 filter - 4 - 4 - - - IC1PSC - Input capture 1 prescaler - 2 - 2 - - - CC1S - Capture/Compare 1 selection - 0 - 2 - - - - - CCER - CCER - capture/compare enable register - 0x20 - 0x20 - read-write - 0x0000 - - - CC1NP - Capture/Compare 1 output Polarity - 3 - 1 - - - CC1NE - Capture/Compare 1 complementary output enable - 2 - 1 - - - CC1P - Capture/Compare 1 output Polarity - 1 - 1 - - - CC1E - Capture/Compare 1 output enable - 0 - 1 - - - - - CNT - CNT - counter - 0x24 - 0x20 - 0x00000000 - - - CNT - counter value - 0 - 16 - read-write - - - UIFCPY - UIF Copy - 31 - 1 - read-only - - - - - PSC - PSC - prescaler - 0x28 - 0x20 - read-write - 0x0000 - - - PSC - Prescaler value - 0 - 16 - - - - - ARR - ARR - auto-reload register - 0x2C - 0x20 - read-write - 0xFFFF - - - ARR - Auto-reload value - 0 - 16 - - - - - RCR - RCR - repetition counter register - 0x30 - 0x20 - read-write - 0x0000 - - - REP - Repetition counter value - 0 - 8 - - - - - CCR1 - CCR1 - capture/compare register 1 - 0x34 - 0x20 - read-write - 0x00000000 - - - CCR1 - Capture/Compare 1 value - 0 - 16 - - - - - BDTR - BDTR - break and dead-time register - 0x44 - 0x20 - read-write - 0x0000 - - - DTG - Dead-time generator setup - 0 - 8 - - - LOCK - Lock configuration - 8 - 2 - - - OSSI - Off-state selection for Idle mode - 10 - 1 - - - OSSR - Off-state selection for Run mode - 11 - 1 - - - BKE - Break enable - 12 - 1 - - - BKP - Break polarity - 13 - 1 - - - AOE - Automatic output enable - 14 - 1 - - - MOE - Main output enable - 15 - 1 - - - BKDSRM - Break Disarm - 26 - 1 - - - BKBID - Break Bidirectional - 28 - 1 - - - - - DCR - DCR - DMA control register - 0x48 - 0x20 - read-write - 0x0000 - - - DBL - DMA burst length - 8 - 5 - - - DBA - DMA base address - 0 - 5 - - - - - DMAR - DMAR - DMA address for full transfer - 0x4C - 0x20 - read-write - 0x0000 - - - DMAB - DMA register for burst accesses - 0 - 16 - - - - - OR1 - OR1 - TIM option register 1 - 0x50 - 0x20 - read-write - 0x0000 - - - TI1_RMP - Input capture 1 remap - 0 - 2 - - - - - AF1 - AF1 - alternate function register 1 - 0x60 - 0x20 - read-write - 0x00000001 - - - BKINE - BRK BKIN input enable - 0 - 1 - - - BKCMP1E - BRK COMP1 enable - 1 - 1 - - - BKCMP2E - BRK COMP2 enable - 2 - 1 - - - BKINP - BRK BKIN input polarity - 9 - 1 - - - BKCMP1P - BRK COMP1 input polarity - 10 - 1 - - - BKCMP2P - BRK COMP2 input polarit - 11 - 1 - - - - - TISEL - TISEL - input selection register - 0x68 - 0x20 - read-write - 0x00000000 - - - TI1SEL - selects TI1[0] to TI1[15] input - 0 - 4 - - - - - - - TIM17 - General purpose timers - TIM - 0x40014800 - - 0x0 - 0x400 - registers - - - - CR1 - CR1 - control register 1 - 0x0 - 0x20 - read-write - 0x0000 - - - CEN - Counter enable - 0 - 1 - - - UDIS - Update disable - 1 - 1 - - - URS - Update request source - 2 - 1 - - - OPM - One-pulse mode - 3 - 1 - - - ARPE - Auto-reload preload enable - 7 - 1 - - - CKD - Clock division - 8 - 2 - - - UIFREMAP - UIF status bit remapping - 11 - 1 - - - - - CR2 - CR2 - control register 2 - 0x4 - 0x20 - read-write - 0x0000 - - - OIS1N - Output Idle state 1 - 9 - 1 - - - OIS1 - Output Idle state 1 - 8 - 1 - - - CCDS - Capture/compare DMA selection - 3 - 1 - - - CCUS - Capture/compare control update selection - 2 - 1 - - - CCPC - Capture/compare preloaded control - 0 - 1 - - - - - DIER - DIER - DMA/Interrupt enable register - 0xC - 0x20 - read-write - 0x0000 - - - UIE - Update interrupt enable - 0 - 1 - - - CC1IE - Capture/Compare 1 interrupt enable - 1 - 1 - - - COMIE - COM interrupt enable - 5 - 1 - - - BIE - Break interrupt enable - 7 - 1 - - - UDE - Update DMA request enable - 8 - 1 - - - CC1DE - Capture/Compare 1 DMA request enable - 9 - 1 - - - - - SR - SR - status register - 0x10 - 0x20 - read-write - 0x0000 - - - CC1OF - Capture/Compare 1 overcapture flag - 9 - 1 - - - BIF - Break interrupt flag - 7 - 1 - - - COMIF - COM interrupt flag - 5 - 1 - - - CC1IF - Capture/compare 1 interrupt flag - 1 - 1 - - - UIF - Update interrupt flag - 0 - 1 - - - - - EGR - EGR - event generation register - 0x14 - 0x20 - write-only - 0x0000 - - - BG - Break generation - 7 - 1 - - - COMG - Capture/Compare control update generation - 5 - 1 - - - CC1G - Capture/compare 1 generation - 1 - 1 - - - UG - Update generation - 0 - 1 - - - - - CCMR1_Output - CCMR1_Output - capture/compare mode register (output mode) - 0x18 - 0x20 - read-write - 0x00000000 - - - OC1M_3 - Output Compare 1 mode - 16 - 1 - - - OC1M - Output Compare 1 mode - 4 - 3 - - - OC1PE - Output Compare 1 preload enable - 3 - 1 - - - OC1FE - Output Compare 1 fast enable - 2 - 1 - - - CC1S - Capture/Compare 1 selection - 0 - 2 - - - - - CCMR1_Input - CCMR1_Input - capture/compare mode register 1 (input mode) - CCMR1_Output - 0x18 - 0x20 - read-write - 0x00000000 - - - IC1F - Input capture 1 filter - 4 - 4 - - - IC1PSC - Input capture 1 prescaler - 2 - 2 - - - CC1S - Capture/Compare 1 selection - 0 - 2 - - - - - CCER - CCER - capture/compare enable register - 0x20 - 0x20 - read-write - 0x0000 - - - CC1NP - Capture/Compare 1 output Polarity - 3 - 1 - - - CC1NE - Capture/Compare 1 complementary output enable - 2 - 1 - - - CC1P - Capture/Compare 1 output Polarity - 1 - 1 - - - CC1E - Capture/Compare 1 output enable - 0 - 1 - - - - - CNT - CNT - counter - 0x24 - 0x20 - 0x00000000 - - - CNT - counter value - 0 - 16 - read-write - - - UIFCPY - UIF Copy - 31 - 1 - read-only - - - - - PSC - PSC - prescaler - 0x28 - 0x20 - read-write - 0x0000 - - - PSC - Prescaler value - 0 - 16 - - - - - ARR - ARR - auto-reload register - 0x2C - 0x20 - read-write - 0xFFFF - - - ARR - Auto-reload value - 0 - 16 - - - - - RCR - RCR - repetition counter register - 0x30 - 0x20 - read-write - 0x0000 - - - REP - Repetition counter value - 0 - 8 - - - - - CCR1 - CCR1 - capture/compare register 1 - 0x34 - 0x20 - read-write - 0x00000000 - - - CCR1 - Capture/Compare 1 value - 0 - 16 - - - - - BDTR - BDTR - break and dead-time register - 0x44 - 0x20 - read-write - 0x0000 - - - DTG - Dead-time generator setup - 0 - 8 - - - LOCK - Lock configuration - 8 - 2 - - - OSSI - Off-state selection for Idle mode - 10 - 1 - - - OSSR - Off-state selection for Run mode - 11 - 1 - - - BKE - Break enable - 12 - 1 - - - BKP - Break polarity - 13 - 1 - - - AOE - Automatic output enable - 14 - 1 - - - MOE - Main output enable - 15 - 1 - - - BKDSRM - Break Disarm - 26 - 1 - - - BKBID - Break Bidirectional - 28 - 1 - - - - - DCR - DCR - DMA control register - 0x48 - 0x20 - read-write - 0x0000 - - - DBL - DMA burst length - 8 - 5 - - - DBA - DMA base address - 0 - 5 - - - - - DMAR - DMAR - DMA address for full transfer - 0x4C - 0x20 - read-write - 0x0000 - - - DMAB - DMA register for burst accesses - 0 - 16 - - - - - OR1 - OR1 - TIM option register 1 - 0x50 - 0x20 - read-write - 0x0000 - - - TI1_RMP - Input capture 1 remap - 0 - 2 - - - - - AF1 - AF1 - alternate function register 1 - 0x60 - 0x20 - read-write - 0x00000001 - - - BKINE - BRK BKIN input enable - 0 - 1 - - - BKCMP1E - BRK COMP1 enable - 1 - 1 - - - BKCMP2E - BRK COMP2 enable - 2 - 1 - - - BKINP - BRK BKIN input polarity - 9 - 1 - - - BKCMP1P - BRK COMP1 input polarity - 10 - 1 - - - BKCMP2P - BRK COMP2 input polarit - 11 - 1 - - - - - TISEL - TISEL - input selection register - 0x68 - 0x20 - read-write - 0x00000000 - - - TI1SEL - selects TI1[0] to TI1[15] input - 0 - 4 - - - - - - - TIM1 - Advanced-timers - TIM - 0x40012C00 - - 0x0 - 0x400 - registers - - - TIM1_BRK - Timer 1 break interrupt - 24 - - - TIM1_UP - Timer 1 Update - 25 - - - TIM1_TRG_COM_TIM17 - TIM1 Trigger and Commutation interrupts and - TIM17 global interrupt - 26 - - - TIM1_CC - TIM1 Capture Compare interrupt - 27 - - - - CR1 - CR1 - control register 1 - 0x0 - 0x20 - read-write - 0x0000 - - - CEN - Counter enable - 0 - 1 - - - OPM - One-pulse mode - 3 - 1 - - - UDIS - Update disable - 1 - 1 - - - URS - Update request source - 2 - 1 - - - DIR - Direction - 4 - 1 - - - CMS - Center-aligned mode selection - 5 - 2 - - - ARPE - Auto-reload preload enable - 7 - 1 - - - CKD - Clock division - 8 - 2 - - - UIFREMAP - UIF status bit remapping - 11 - 1 - - - - - CR2 - CR2 - control register 2 - 0x4 - 0x20 - read-write - 0x0000 - - - MMS2 - Master mode selection 2 - 20 - 4 - - - OIS6 - Output Idle state 6 (OC6 output) - 18 - 1 - - - OIS5 - Output Idle state 5 (OC5 output) - 16 - 1 - - - OIS4 - Output Idle state 4 - 14 - 1 - - - OIS3N - Output Idle state 3 - 13 - 1 - - - OIS3 - Output Idle state 3 - 12 - 1 - - - OIS2N - Output Idle state 2 - 11 - 1 - - - OIS2 - Output Idle state 2 - 10 - 1 - - - OIS1N - Output Idle state 1 - 9 - 1 - - - OIS1 - Output Idle state 1 - 8 - 1 - - - TI1S - TI1 selection - 7 - 1 - - - MMS - Master mode selection - 4 - 3 - - - CCDS - Capture/compare DMA selection - 3 - 1 - - - CCUS - Capture/compare control update selection - 2 - 1 - - - CCPC - Capture/compare preloaded control - 0 - 1 - - - - - SMCR - SMCR - slave mode control register - 0x8 - 0x20 - read-write - 0x0000 - - - SMS - Slave mode selection - 0 - 3 - - - OCCS - OCREF clear selection - 3 - 1 - - - TS - Trigger selection - 4 - 3 - - - MSM - Master/Slave mode - 7 - 1 - - - ETF - External trigger filter - 8 - 4 - - - ETPS - External trigger prescaler - 12 - 2 - - - ECE - External clock enable - 14 - 1 - - - ETP - External trigger polarity - 15 - 1 - - - SMS_3 - Slave mode selection - bit 3 - 16 - 1 - - - - - DIER - DIER - DMA/Interrupt enable register - 0xC - 0x20 - read-write - 0x0000 - - - UIE - Update interrupt enable - 0 - 1 - - - CC1IE - Capture/Compare 1 interrupt enable - 1 - 1 - - - CC2IE - Capture/Compare 2 interrupt enable - 2 - 1 - - - CC3IE - Capture/Compare 3 interrupt enable - 3 - 1 - - - CC4IE - Capture/Compare 4 interrupt enable - 4 - 1 - - - COMIE - COM interrupt enable - 5 - 1 - - - TIE - Trigger interrupt enable - 6 - 1 - - - BIE - Break interrupt enable - 7 - 1 - - - UDE - Update DMA request enable - 8 - 1 - - - CC1DE - Capture/Compare 1 DMA request enable - 9 - 1 - - - CC2DE - Capture/Compare 2 DMA request enable - 10 - 1 - - - CC3DE - Capture/Compare 3 DMA request enable - 11 - 1 - - - CC4DE - Capture/Compare 4 DMA request enable - 12 - 1 - - - COMDE - COM DMA request enable - 13 - 1 - - - TDE - Trigger DMA request enable - 14 - 1 - - - - - SR - SR - status register - 0x10 - 0x20 - read-write - 0x0000 - - - UIF - Update interrupt flag - 0 - 1 - - - CC1IF - Capture/compare 1 interrupt flag - 1 - 1 - - - CC2IF - Capture/Compare 2 interrupt flag - 2 - 1 - - - CC3IF - Capture/Compare 3 interrupt flag - 3 - 1 - - - CC4IF - Capture/Compare 4 interrupt flag - 4 - 1 - - - COMIF - COM interrupt flag - 5 - 1 - - - TIF - Trigger interrupt flag - 6 - 1 - - - BIF - Break interrupt flag - 7 - 1 - - - B2IF - Break 2 interrupt flag - 8 - 1 - - - CC1OF - Capture/Compare 1 overcapture flag - 9 - 1 - - - CC2OF - Capture/compare 2 overcapture flag - 10 - 1 - - - CC3OF - Capture/Compare 3 overcapture flag - 11 - 1 - - - CC4OF - Capture/Compare 4 overcapture flag - 12 - 1 - - - SBIF - System Break interrupt flag - 13 - 1 - - - CC5IF - Compare 5 interrupt flag - 16 - 1 - - - CC6IF - Compare 6 interrupt flag - 17 - 1 - - - - - EGR - EGR - event generation register - 0x14 - 0x20 - write-only - 0x0000 - - - UG - Update generation - 0 - 1 - - - CC1G - Capture/compare 1 generation - 1 - 1 - - - CC2G - Capture/compare 2 generation - 2 - 1 - - - CC3G - Capture/compare 3 generation - 3 - 1 - - - CC4G - Capture/compare 4 generation - 4 - 1 - - - COMG - Capture/Compare control update generation - 5 - 1 - - - TG - Trigger generation - 6 - 1 - - - BG - Break generation - 7 - 1 - - - B2G - Break 2 generation - 8 - 1 - - - - - CCMR1_Input - CCMR1_Input - capture/compare mode register 1 (output mode) - 0x18 - 0x20 - read-write - 0x00000000 - - - CC1S - Capture/Compare 1 selection - 0 - 2 - - - IC1PSC - Input capture 1 prescaler - 2 - 2 - - - C1F - Input capture 1 filter - 4 - 4 - - - CC2S - capture/Compare 2 selection - 8 - 2 - - - IC2PSC - Input capture 2 prescaler - 10 - 2 - - - IC2F - Input capture 2 filter - 12 - 4 - - - - - CCMR1_Output - CCMR1_Output - capture/compare mode register 1 (output mode) - CCMR1_Input - 0x18 - 0x20 - read-write - 0x00000000 - - - CC1S - Capture/Compare 1 selection - 0 - 2 - - - OC1FE - Output Compare 1 fast enable - 2 - 1 - - - OC1PE - Output Compare 1 preload enable - 3 - 1 - - - OC1M - Output Compare 1 mode - 4 - 3 - - - OC1CE - Output Compare 1 clear enable - 7 - 1 - - - CC2S - Capture/Compare 2 selection - 8 - 2 - - - OC2FE - Output Compare 2 fast enable - 10 - 1 - - - OC2PE - Output Compare 2 preload enable - 11 - 1 - - - OC2M - Output Compare 2 mode - 12 - 3 - - - OC2CE - Output Compare 2 clear enable - 15 - 1 - - - OC1M_3 - Output Compare 1 mode - bit 3 - 16 - 1 - - - OC2M_3 - Output Compare 2 mode - bit 3 - 24 - 1 - - - - - CCMR2_Output - CCMR2_Output - capture/compare mode register 2 (output mode) - 0x1C - 0x20 - read-write - 0x00000000 - - - CC3S - Capture/Compare 3 selection - 0 - 2 - - - OC3FE - Output compare 3 fast enable - 2 - 1 - - - OC3PE - Output compare 3 preload enable - 3 - 1 - - - OC3M - Output compare 3 mode - 4 - 3 - - - OC3CE - Output compare 3 clear enable - 7 - 1 - - - CC4S - Capture/Compare 4 selection - 8 - 2 - - - OC4FE - Output compare 4 fast enable - 10 - 1 - - - OC4PE - Output compare 4 preload enable - 11 - 1 - - - OC4M - Output compare 4 mode - 12 - 3 - - - OC4CE - Output compare 4 clear enable - 15 - 1 - - - OC3M_3 - Output Compare 3 mode - bit 3 - 16 - 1 - - - OC4M_3 - Output Compare 4 mode - bit 3 - 24 - 1 - - - - - CCMR2_Input - CCMR2_Input - capture/compare mode register 2 (output mode) - CCMR2_Output - 0x1C - 0x20 - read-write - 0x00000000 - - - CC3S - Capture/Compare 3 selection - 0 - 2 - - - C3PSC - Input capture 3 prescaler - 2 - 2 - - - IC3F - Input capture 3 filter - 4 - 4 - - - CC4S - Capture/Compare 4 selection - 8 - 2 - - - IC4PSC - Input capture 4 prescaler - 10 - 2 - - - IC4F - Input capture 4 filter - 12 - 4 - - - - - CCER - CCER - capture/compare enable register - 0x20 - 0x20 - read-write - 0x0000 - - - CC1E - Capture/Compare 1 output enable - 0 - 1 - - - CC1P - Capture/Compare 1 output Polarity - 1 - 1 - - - CC1NE - Capture/Compare 1 complementary output enable - 2 - 1 - - - CC1NP - Capture/Compare 1 output Polarity - 3 - 1 - - - CC2E - Capture/Compare 2 output enable - 4 - 1 - - - CC2P - Capture/Compare 2 output Polarity - 5 - 1 - - - CC2NE - Capture/Compare 2 complementary output enable - 6 - 1 - - - CC2NP - Capture/Compare 2 output Polarity - 7 - 1 - - - CC3E - Capture/Compare 3 output enable - 8 - 1 - - - CC3P - Capture/Compare 3 output Polarity - 9 - 1 - - - CC3NE - Capture/Compare 3 complementary output enable - 10 - 1 - - - CC3NP - Capture/Compare 3 output Polarity - 11 - 1 - - - CC4E - Capture/Compare 4 output enable - 12 - 1 - - - CC4P - Capture/Compare 3 output Polarity - 13 - 1 - - - CC4NP - Capture/Compare 4 complementary output polarity - 15 - 1 - - - CC5E - Capture/Compare 5 output enable - 16 - 1 - - - CC5P - Capture/Compare 5 output polarity - 17 - 1 - - - CC6E - Capture/Compare 6 output enable - 20 - 1 - - - CC6P - Capture/Compare 6 output polarity - 21 - 1 - - - - - CNT - CNT - counter - 0x24 - 0x20 - 0x00000000 - - - CNT - counter value - 0 - 16 - read-write - - - UIFCPY - UIF copy - 31 - 1 - read-only - - - - - PSC - PSC - prescaler - 0x28 - 0x20 - read-write - 0x0000 - - - PSC - Prescaler value - 0 - 16 - - - - - ARR - ARR - auto-reload register - 0x2C - 0x20 - read-write - 0x0000FFFF - - - ARR - Auto-reload value - 0 - 16 - - - - - RCR - RCR - repetition counter register - 0x30 - 0x20 - read-write - 0x0000 - - - REP - Repetition counter value - 0 - 16 - - - - - CCR1 - CCR1 - capture/compare register 1 - 0x34 - 0x20 - read-write - 0x00000000 - - - CCR1 - Capture/Compare 1 value - 0 - 16 - - - - - CCR2 - CCR2 - capture/compare register 2 - 0x38 - 0x20 - read-write - 0x00000000 - - - CCR2 - Capture/Compare 2 value - 0 - 16 - - - - - CCR3 - CCR3 - capture/compare register 3 - 0x3C - 0x20 - read-write - 0x00000000 - - - CCR3 - Capture/Compare value - 0 - 16 - - - - - CCR4 - CCR4 - capture/compare register 4 - 0x40 - 0x20 - read-write - 0x00000000 - - - CCR4 - Capture/Compare value - 0 - 16 - - - - - BDTR - BDTR - break and dead-time register - 0x44 - 0x20 - read-write - 0x0000 - - - DTG - Dead-time generator setup - 0 - 8 - - - LOCK - Lock configuration - 8 - 2 - - - OSSI - Off-state selection for Idle mode - 10 - 1 - - - OSSR - Off-state selection for Run mode - 11 - 1 - - - BKE - Break enable - 12 - 1 - - - BKP - Break polarity - 13 - 1 - - - AOE - Automatic output enable - 14 - 1 - - - MOE - Main output enable - 15 - 1 - - - BKF - Break filter - 16 - 4 - - - BK2F - Break 2 filter - 20 - 4 - - - BK2E - Break 2 enable - 24 - 1 - - - BK2P - Break 2 polarity - 25 - 1 - - - - - DCR - DCR - DMA control register - 0x48 - 0x20 - read-write - 0x0000 - - - DBL - DMA burst length - 8 - 5 - - - DBA - DMA base address - 0 - 5 - - - - - DMAR - DMAR - DMA address for full transfer - 0x4C - 0x20 - read-write - 0x0000 - - - DMAB - DMA register for burst accesses - 0 - 16 - - - - - OR - OR - DMA address for full transfer - 0x50 - 0x20 - read-write - 0x0000 - - - TIM1_ETR_ADC1_RMP - TIM1_ETR_ADC1 remapping capability - 0 - 2 - - - TI1_RMP - Input Capture 1 remap - 4 - 1 - - - - - CCMR3_Output - CCMR3_Output - capture/compare mode register 2 (output mode) - 0x54 - 0x20 - read-write - 0x00000000 - - - OC6M_bit3 - Output Compare 6 mode bit 3 - 24 - 1 - - - OC5M_bit3 - Output Compare 5 mode bit 3 - 16 - 1 - - - OC6CE - Output compare 6 clear enable - 15 - 1 - - - OC6M - Output compare 6 mode - 12 - 3 - - - OC6PE - Output compare 6 preload enable - 11 - 1 - - - OC6FE - Output compare 6 fast enable - 10 - 1 - - - OC5CE - Output compare 5 clear enable - 7 - 1 - - - OC5M - Output compare 5 mode - 4 - 3 - - - OC5PE - Output compare 5 preload enable - 3 - 1 - - - OC5FE - Output compare 5 fast enable - 2 - 1 - - - - - CCR5 - CCR5 - capture/compare register 4 - 0x58 - 0x20 - read-write - 0x00000000 - - - CCR5 - Capture/Compare value - 0 - 16 - - - GC5C1 - Group Channel 5 and Channel 1 - 29 - 1 - - - GC5C2 - Group Channel 5 and Channel 2 - 30 - 1 - - - GC5C3 - Group Channel 5 and Channel 3 - 31 - 1 - - - - - CCR6 - CCR6 - capture/compare register 4 - 0x5C - 0x20 - read-write - 0x00000000 - - - CCR6 - Capture/Compare value - 0 - 16 - - - - - AF1 - AF1 - DMA address for full transfer - 0x60 - 0x20 - read-write - 0x00000001 - - - BKINE - BRK BKIN input enable - 0 - 1 - - - BKCMP1E - BRK COMP1 enable - 1 - 1 - - - BKCMP2E - BRK COMP2 enable - 2 - 1 - - - BKINP - BRK BKIN input polarity - 9 - 1 - - - BKCMP1P - BRK COMP1 input polarity - 10 - 1 - - - BKCMP2P - BRK COMP2 input polarity - 11 - 1 - - - ETRSEL - ETR source selection - 14 - 3 - - - - - AF2 - AF2 - DMA address for full transfer - 0x64 - 0x20 - read-write - 0x00000001 - - - BK2INE - BRK2 BKIN input enable - 0 - 1 - - - BK2CMP1E - BRK2 COMP1 enable - 1 - 1 - - - BK2CMP2E - BRK2 COMP2 enable - 2 - 1 - - - BK2DFBK0E - BRK2 DFSDM_BREAK0 enable - 8 - 1 - - - BK2INP - BRK2 BKIN input polarity - 9 - 1 - - - BK2CMP1P - BRK2 COMP1 input polarity - 10 - 1 - - - BK2CMP2P - BRK2 COMP2 input polarity - 11 - 1 - - - - - - - LPTIM1 - Low power timer - LPTIM - 0x40007C00 - - 0x0 - 0x400 - registers - - - LPTIM1 - LPtimer 1 global interrupt - 47 - - - - ISR - ISR - Interrupt and Status Register - 0x0 - 0x20 - read-only - 0x00000000 - - - DOWN - Counter direction change up to down - 6 - 1 - - - UP - Counter direction change down to up - 5 - 1 - - - ARROK - Autoreload register update OK - 4 - 1 - - - CMPOK - Compare register update OK - 3 - 1 - - - EXTTRIG - External trigger edge event - 2 - 1 - - - ARRM - Autoreload match - 1 - 1 - - - CMPM - Compare match - 0 - 1 - - - - - ICR - ICR - Interrupt Clear Register - 0x4 - 0x20 - write-only - 0x00000000 - - - DOWNCF - Direction change to down Clear Flag - 6 - 1 - - - UPCF - Direction change to UP Clear Flag - 5 - 1 - - - ARROKCF - Autoreload register update OK Clear Flag - 4 - 1 - - - CMPOKCF - Compare register update OK Clear Flag - 3 - 1 - - - EXTTRIGCF - External trigger valid edge Clear Flag - 2 - 1 - - - ARRMCF - Autoreload match Clear Flag - 1 - 1 - - - CMPMCF - compare match Clear Flag - 0 - 1 - - - - - IER - IER - Interrupt Enable Register - 0x8 - 0x20 - read-write - 0x00000000 - - - DOWNIE - Direction change to down Interrupt Enable - 6 - 1 - - - UPIE - Direction change to UP Interrupt Enable - 5 - 1 - - - ARROKIE - Autoreload register update OK Interrupt Enable - 4 - 1 - - - CMPOKIE - Compare register update OK Interrupt Enable - 3 - 1 - - - EXTTRIGIE - External trigger valid edge Interrupt Enable - 2 - 1 - - - ARRMIE - Autoreload match Interrupt Enable - 1 - 1 - - - CMPMIE - Compare match Interrupt Enable - 0 - 1 - - - - - CFGR - CFGR - Configuration Register - 0xC - 0x20 - read-write - 0x00000000 - - - ENC - Encoder mode enable - 24 - 1 - - - COUNTMODE - counter mode enabled - 23 - 1 - - - PRELOAD - Registers update mode - 22 - 1 - - - WAVPOL - Waveform shape polarity - 21 - 1 - - - WAVE - Waveform shape - 20 - 1 - - - TIMOUT - Timeout enable - 19 - 1 - - - TRIGEN - Trigger enable and polarity - 17 - 2 - - - TRIGSEL - Trigger selector - 13 - 3 - - - PRESC - Clock prescaler - 9 - 3 - - - TRGFLT - Configurable digital filter for trigger - 6 - 2 - - - CKFLT - Configurable digital filter for external clock - 3 - 2 - - - CKPOL - Clock Polarity - 1 - 2 - - - CKSEL - Clock selector - 0 - 1 - - - - - CR - CR - Control Register - 0x10 - 0x20 - read-write - 0x00000000 - - - RSTARE - Reset after read enable - 4 - 1 - - - COUNTRST - Counter reset - 3 - 1 - - - CNTSTRT - Timer start in continuous mode - 2 - 1 - - - SNGSTRT - LPTIM start in single mode - 1 - 1 - - - ENABLE - LPTIM Enable - 0 - 1 - - - - - CMP - CMP - Compare Register - 0x14 - 0x20 - read-write - 0x00000000 - - - CMP - Compare value - 0 - 16 - - - - - ARR - ARR - Autoreload Register - 0x18 - 0x20 - read-write - 0x00000001 - - - ARR - Auto reload value - 0 - 16 - - - - - CNT - CNT - Counter Register - 0x1C - 0x20 - read-only - 0x00000000 - - - CNT - Counter value - 0 - 16 - - - - - OR - OR - Option Register - 0x20 - 0x20 - read-write - 0x00000000 - - - OR1 - Option register bit 1 - 0 - 1 - - - OR2 - Option register bit 2 - 1 - 1 - - - - - - - LPTIM2 - 0x40009400 - - LPTIM2 - LPtimer 2 global interrupt - 48 - - - - USART1 - Universal synchronous asynchronous receiver transmitter - USART - 0x40013800 - - 0x0 - 0x400 - registers - - - USART1 - USART1 global interrupt - 36 - - - - CR1 - CR1 - Control register 1 - 0x0 - 0x20 - read-write - 0x0000 - - - RXFFIE - RXFIFO Full interrupt enable - 31 - 1 - - - TXFEIE - TXFIFO empty interrupt enable - 30 - 1 - - - FIFOEN - FIFO mode enable - 29 - 1 - - - M1 - Word length - 28 - 1 - - - EOBIE - End of Block interrupt enable - 27 - 1 - - - RTOIE - Receiver timeout interrupt enable - 26 - 1 - - - DEAT4 - Driver Enable assertion time - 25 - 1 - - - DEAT3 - DEAT3 - 24 - 1 - - - DEAT2 - DEAT2 - 23 - 1 - - - DEAT1 - DEAT1 - 22 - 1 - - - DEAT0 - DEAT0 - 21 - 1 - - - DEDT4 - Driver Enable de-assertion time - 20 - 1 - - - DEDT3 - DEDT3 - 19 - 1 - - - DEDT2 - DEDT2 - 18 - 1 - - - DEDT1 - DEDT1 - 17 - 1 - - - DEDT0 - DEDT0 - 16 - 1 - - - OVER8 - Oversampling mode - 15 - 1 - - - CMIE - Character match interrupt enable - 14 - 1 - - - MME - Mute mode enable - 13 - 1 - - - M0 - Word length - 12 - 1 - - - WAKE - Receiver wakeup method - 11 - 1 - - - PCE - Parity control enable - 10 - 1 - - - PS - Parity selection - 9 - 1 - - - PEIE - PE interrupt enable - 8 - 1 - - - TXEIE - interrupt enable - 7 - 1 - - - TCIE - Transmission complete interrupt enable - 6 - 1 - - - RXNEIE - RXNE interrupt enable - 5 - 1 - - - IDLEIE - IDLE interrupt enable - 4 - 1 - - - TE - Transmitter enable - 3 - 1 - - - RE - Receiver enable - 2 - 1 - - - UESM - USART enable in Stop mode - 1 - 1 - - - UE - USART enable - 0 - 1 - - - - - CR2 - CR2 - Control register 2 - 0x4 - 0x20 - read-write - 0x0000 - - - ADD4_7 - Address of the USART node - 28 - 4 - - - ADD0_3 - Address of the USART node - 24 - 4 - - - RTOEN - Receiver timeout enable - 23 - 1 - - - ABRMOD1 - Auto baud rate mode - 22 - 1 - - - ABRMOD0 - ABRMOD0 - 21 - 1 - - - ABREN - Auto baud rate enable - 20 - 1 - - - MSBFIRST - Most significant bit first - 19 - 1 - - - TAINV - Binary data inversion - 18 - 1 - - - TXINV - TX pin active level inversion - 17 - 1 - - - RXINV - RX pin active level inversion - 16 - 1 - - - SWAP - Swap TX/RX pins - 15 - 1 - - - LINEN - LIN mode enable - 14 - 1 - - - STOP - STOP bits - 12 - 2 - - - CLKEN - Clock enable - 11 - 1 - - - CPOL - Clock polarity - 10 - 1 - - - CPHA - Clock phase - 9 - 1 - - - LBCL - Last bit clock pulse - 8 - 1 - - - LBDIE - LIN break detection interrupt enable - 6 - 1 - - - LBDL - LIN break detection length - 5 - 1 - - - ADDM7 - 7-bit Address Detection/4-bit Address Detection - 4 - 1 - - - DIS_NSS - When the DSI_NSS bit is set, the NSS pin input will be ignored - 3 - 1 - - - SLVEN - Synchronous Slave mode enable - 0 - 1 - - - - - CR3 - CR3 - Control register 3 - 0x8 - 0x20 - read-write - 0x0000 - - - TXFTCFG - TXFIFO threshold configuration - 29 - 3 - - - RXFTIE - RXFIFO threshold interrupt enable - 28 - 1 - - - RXFTCFG - Receive FIFO threshold configuration - 25 - 3 - - - TCBGTIE - Tr Complete before guard time, interrupt enable - 24 - 1 - - - TXFTIE - threshold interrupt enable - 23 - 1 - - - WUFIE - Wakeup from Stop mode interrupt enable - 22 - 1 - - - WUS - Wakeup from Stop mode interrupt flag selection - 20 - 2 - - - SCARCNT - Smartcard auto-retry count - 17 - 3 - - - DEP - Driver enable polarity selection - 15 - 1 - - - DEM - Driver enable mode - 14 - 1 - - - DDRE - DMA Disable on Reception Error - 13 - 1 - - - OVRDIS - Overrun Disable - 12 - 1 - - - ONEBIT - One sample bit method enable - 11 - 1 - - - CTSIE - CTS interrupt enable - 10 - 1 - - - CTSE - CTS enable - 9 - 1 - - - RTSE - RTS enable - 8 - 1 - - - DMAT - DMA enable transmitter - 7 - 1 - - - DMAR - DMA enable receiver - 6 - 1 - - - SCEN - Smartcard mode enable - 5 - 1 - - - NACK - Smartcard NACK enable - 4 - 1 - - - HDSEL - Half-duplex selection - 3 - 1 - - - IRLP - Ir low-power - 2 - 1 - - - IREN - Ir mode enable - 1 - 1 - - - EIE - Error interrupt enable - 0 - 1 - - - - - BRR - BRR - Baud rate register - 0xC - 0x20 - read-write - 0x0000 - - - BRR - BRR_4_15 - 0 - 16 - - - - - GTPR - GTPR - Guard time and prescaler register - 0x10 - 0x20 - read-write - 0x0000 - - - GT - Guard time value - 8 - 8 - - - PSC - Prescaler value - 0 - 8 - - - - - RTOR - RTOR - Receiver timeout register - 0x14 - 0x20 - read-write - 0x0000 - - - BLEN - Block Length - 24 - 8 - - - RTO - Receiver timeout value - 0 - 24 - - - - - RQR - RQR - Request register - 0x18 - 0x20 - write-only - 0x0000 - - - TXFRQ - Transmit data flush request - 4 - 1 - - - RXFRQ - Receive data flush request - 3 - 1 - - - MMRQ - Mute mode request - 2 - 1 - - - SBKRQ - Send break request - 1 - 1 - - - ABRRQ - Auto baud rate request - 0 - 1 - - - - - ISR - ISR - Interrupt & status register - 0x1C - 0x20 - read-only - 0x00C0 - - - TXFT - TXFIFO threshold flag - 27 - 1 - - - RXFT - RXFIFO threshold flag - 26 - 1 - - - TCBGT - Transmission complete before guard time flag - 25 - 1 - - - RXFF - RXFIFO Full - 24 - 1 - - - TXFE - TXFIFO Empty - 23 - 1 - - - REACK - REACK - 22 - 1 - - - TEACK - TEACK - 21 - 1 - - - WUF - WUF - 20 - 1 - - - RWU - RWU - 19 - 1 - - - SBKF - SBKF - 18 - 1 - - - CMF - CMF - 17 - 1 - - - BUSY - BUSY - 16 - 1 - - - ABRF - ABRF - 15 - 1 - - - ABRE - ABRE - 14 - 1 - - - UDR - SPI slave underrun error flag - 13 - 1 - - - EOBF - EOBF - 12 - 1 - - - RTOF - RTOF - 11 - 1 - - - CTS - CTS - 10 - 1 - - - CTSIF - CTSIF - 9 - 1 - - - LBDF - LBDF - 8 - 1 - - - TXE - TXE - 7 - 1 - - - TC - TC - 6 - 1 - - - RXNE - RXNE - 5 - 1 - - - IDLE - IDLE - 4 - 1 - - - ORE - ORE - 3 - 1 - - - NF - NF - 2 - 1 - - - FE - FE - 1 - 1 - - - PE - PE - 0 - 1 - - - - - ICR - ICR - Interrupt flag clear register - 0x20 - 0x20 - write-only - 0x0000 - - - WUCF - Wakeup from Stop mode clear flag - 20 - 1 - - - CMCF - Character match clear flag - 17 - 1 - - - UDRCF - SPI slave underrun clear flag - 13 - 1 - - - EOBCF - End of block clear flag - 12 - 1 - - - RTOCF - Receiver timeout clear flag - 11 - 1 - - - CTSCF - CTS clear flag - 9 - 1 - - - LBDCF - LIN break detection clear flag - 8 - 1 - - - TCBGTCF - Transmission complete before Guard time clear flag - 7 - 1 - - - TCCF - Transmission complete clear flag - 6 - 1 - - - TXFECF - TXFIFO empty clear flag - 5 - 1 - - - IDLECF - Idle line detected clear flag - 4 - 1 - - - ORECF - Overrun error clear flag - 3 - 1 - - - NCF - Noise detected clear flag - 2 - 1 - - - FECF - Framing error clear flag - 1 - 1 - - - PECF - Parity error clear flag - 0 - 1 - - - - - RDR - RDR - Receive data register - 0x24 - 0x20 - read-only - 0x0000 - - - RDR - Receive data value - 0 - 9 - - - - - TDR - TDR - Transmit data register - 0x28 - 0x20 - read-write - 0x0000 - - - TDR - Transmit data value - 0 - 9 - - - - - PRESC - PRESC - Prescaler register - 0x2C - 0x20 - read-write - 0x0000 - - - PRESCALER - Clock prescaler - 0 - 4 - - - - - - - LPUART1 - 0x40008000 - - LPUART1 - LPUART1 global interrupt - 37 - - - - SPI1 - Serial peripheral interface/Inter-IC sound - SPI - 0x40013000 - - 0x0 - 0x400 - registers - - - SPI1 - SPI 1 global interrupt - 34 - - - - CR1 - CR1 - control register 1 - 0x0 - 0x20 - read-write - 0x00000000 - - - BIDIMODE - Bidirectional data mode enable - 15 - 1 - - - BIDIOE - Output enable in bidirectional mode - 14 - 1 - - - CRCEN - Hardware CRC calculation enable - 13 - 1 - - - CRCNEXT - CRC transfer next - 12 - 1 - - - DFF - Data frame format - 11 - 1 - - - RXONLY - Receive only - 10 - 1 - - - SSM - Software slave management - 9 - 1 - - - SSI - Internal slave select - 8 - 1 - - - LSBFIRST - Frame format - 7 - 1 - - - SPE - SPI enable - 6 - 1 - - - BR - Baud rate control - 3 - 3 - - - MSTR - Master selection - 2 - 1 - - - CPOL - Clock polarity - 1 - 1 - - - CPHA - Clock phase - 0 - 1 - - - - - CR2 - CR2 - control register 2 - 0x4 - 0x20 - read-write - 0x00000700 - - - RXDMAEN - Rx buffer DMA enable - 0 - 1 - - - TXDMAEN - Tx buffer DMA enable - 1 - 1 - - - SSOE - SS output enable - 2 - 1 - - - NSSP - NSS pulse management - 3 - 1 - - - FRF - Frame format - 4 - 1 - - - ERRIE - Error interrupt enable - 5 - 1 - - - RXNEIE - RX buffer not empty interrupt enable - 6 - 1 - - - TXEIE - Tx buffer empty interrupt enable - 7 - 1 - - - DS - Data size - 8 - 4 - - - FRXTH - FIFO reception threshold - 12 - 1 - - - LDMA_RX - Last DMA transfer for reception - 13 - 1 - - - LDMA_TX - Last DMA transfer for transmission - 14 - 1 - - - - - SR - SR - status register - 0x8 - 0x20 - 0x00000002 - - - RXNE - Receive buffer not empty - 0 - 1 - read-only - - - TXE - Transmit buffer empty - 1 - 1 - read-only - - - CRCERR - CRC error flag - 4 - 1 - read-write - - - MODF - Mode fault - 5 - 1 - read-only - - - OVR - Overrun flag - 6 - 1 - read-only - - - BSY - Busy flag - 7 - 1 - read-only - - - TIFRFE - TI frame format error - 8 - 1 - read-only - - - FRLVL - FIFO reception level - 9 - 2 - read-only - - - FTLVL - FIFO transmission level - 11 - 2 - read-only - - - - - DR - DR - data register - 0xC - 0x20 - read-write - 0x00000000 - - - DR - Data register - 0 - 16 - - - - - CRCPR - CRCPR - CRC polynomial register - 0x10 - 0x20 - read-write - 0x00000007 - - - CRCPOLY - CRC polynomial register - 0 - 16 - - - - - RXCRCR - RXCRCR - RX CRC register - 0x14 - 0x20 - read-only - 0x00000000 - - - RxCRC - Rx CRC register - 0 - 16 - - - - - TXCRCR - TXCRCR - TX CRC register - 0x18 - 0x20 - read-only - 0x00000000 - - - TxCRC - Tx CRC register - 0 - 16 - - - - - - - SPI2 - 0x40003800 - - SPI2 - SPI1 global interrupt - 35 - - - - RTC - Real-time clock - RTC - 0x40002800 - - 0x0 - 0x400 - registers - - - RTC_TAMP - RTC/TAMP/CSS on LSE through EXTI line 19 interrupt - 2 - - - RTC_WKUP - RTC wakeup interrupt through EXTI[19] - 3 - - - RTC_ALARM - RTC Alarms (A and B) interrupt through - AIEC - 41 - - - - TR - TR - time register - 0x0 - 0x20 - read-write - 0x00000000 - - - PM - AM/PM notation - 22 - 1 - - - HT - Hour tens in BCD format - 20 - 2 - - - HU - Hour units in BCD format - 16 - 4 - - - MNT - Minute tens in BCD format - 12 - 3 - - - MNU - Minute units in BCD format - 8 - 4 - - - ST - Second tens in BCD format - 4 - 3 - - - SU - Second units in BCD format - 0 - 4 - - - - - DR - DR - date register - 0x4 - 0x20 - read-write - 0x00002101 - - - YT - Year tens in BCD format - 20 - 4 - - - YU - Year units in BCD format - 16 - 4 - - - WDU - Week day units - 13 - 3 - - - MT - Month tens in BCD format - 12 - 1 - - - MU - Month units in BCD format - 8 - 4 - - - DT - Date tens in BCD format - 4 - 2 - - - DU - Date units in BCD format - 0 - 4 - - - - - CR - CR - control register - 0x8 - 0x20 - read-write - 0x00000000 - - - WCKSEL - Wakeup clock selection - 0 - 3 - - - TSEDGE - Time-stamp event active edge - 3 - 1 - - - REFCKON - Reference clock detection enable (50 or 60 Hz) - 4 - 1 - - - BYPSHAD - Bypass the shadow registers - 5 - 1 - - - FMT - Hour format - 6 - 1 - - - ALRAE - Alarm A enable - 8 - 1 - - - ALRBE - Alarm B enable - 9 - 1 - - - WUTE - Wakeup timer enable - 10 - 1 - - - TSE - Time stamp enable - 11 - 1 - - - ALRAIE - Alarm A interrupt enable - 12 - 1 - - - ALRBIE - Alarm B interrupt enable - 13 - 1 - - - WUTIE - Wakeup timer interrupt enable - 14 - 1 - - - TSIE - Time-stamp interrupt enable - 15 - 1 - - - ADD1H - Add 1 hour (summer time change) - 16 - 1 - - - SUB1H - Subtract 1 hour (winter time change) - 17 - 1 - - - BKP - Backup - 18 - 1 - - - COSEL - Calibration output selection - 19 - 1 - - - POL - Output polarity - 20 - 1 - - - OSEL - Output selection - 21 - 2 - - - COE - Calibration output enable - 23 - 1 - - - ITSE - timestamp on internal event enable - 24 - 1 - - - - - ISR - ISR - initialization and status register - 0xC - 0x20 - 0x00000007 - - - ALRAWF - Alarm A write flag - 0 - 1 - read-only - - - ALRBWF - Alarm B write flag - 1 - 1 - read-only - - - WUTWF - Wakeup timer write flag - 2 - 1 - read-only - - - SHPF - Shift operation pending - 3 - 1 - read-write - - - INITS - Initialization status flag - 4 - 1 - read-only - - - RSF - Registers synchronization flag - 5 - 1 - read-write - - - INITF - Initialization flag - 6 - 1 - read-only - - - INIT - Initialization mode - 7 - 1 - read-write - - - ALRAF - Alarm A flag - 8 - 1 - read-write - - - ALRBF - Alarm B flag - 9 - 1 - read-write - - - WUTF - Wakeup timer flag - 10 - 1 - read-write - - - TSF - Time-stamp flag - 11 - 1 - read-write - - - TSOVF - Time-stamp overflow flag - 12 - 1 - read-write - - - TAMP1F - Tamper detection flag - 13 - 1 - read-write - - - TAMP2F - RTC_TAMP2 detection flag - 14 - 1 - read-write - - - TAMP3F - RTC_TAMP3 detection flag - 15 - 1 - read-write - - - RECALPF - Recalibration pending Flag - 16 - 1 - read-only - - - ITSF - INTERNAL TIME-STAMP FLAG - 17 - 1 - read-write - - - - - PRER - PRER - prescaler register - 0x10 - 0x20 - read-write - 0x007F00FF - - - PREDIV_A - Asynchronous prescaler factor - 16 - 7 - - - PREDIV_S - Synchronous prescaler factor - 0 - 15 - - - - - WUTR - WUTR - wakeup timer register - 0x14 - 0x20 - read-write - 0x0000FFFF - - - WUT - Wakeup auto-reload value bits - 0 - 16 - - - - - ALRMAR - ALRMAR - alarm A register - 0x1C - 0x20 - read-write - 0x00000000 - - - MSK4 - Alarm A date mask - 31 - 1 - - - WDSEL - Week day selection - 30 - 1 - - - DT - Date tens in BCD format - 28 - 2 - - - DU - Date units or day in BCD format - 24 - 4 - - - MSK3 - Alarm A hours mask - 23 - 1 - - - PM - AM/PM notation - 22 - 1 - - - HT - Hour tens in BCD format - 20 - 2 - - - HU - Hour units in BCD format - 16 - 4 - - - MSK2 - Alarm A minutes mask - 15 - 1 - - - MNT - Minute tens in BCD format - 12 - 3 - - - MNU - Minute units in BCD format - 8 - 4 - - - MSK1 - Alarm A seconds mask - 7 - 1 - - - ST - Second tens in BCD format - 4 - 3 - - - SU - Second units in BCD format - 0 - 4 - - - - - ALRMBR - ALRMBR - alarm B register - 0x20 - 0x20 - read-write - 0x00000000 - - - MSK4 - Alarm B date mask - 31 - 1 - - - WDSEL - Week day selection - 30 - 1 - - - DT - Date tens in BCD format - 28 - 2 - - - DU - Date units or day in BCD format - 24 - 4 - - - MSK3 - Alarm B hours mask - 23 - 1 - - - PM - AM/PM notation - 22 - 1 - - - HT - Hour tens in BCD format - 20 - 2 - - - HU - Hour units in BCD format - 16 - 4 - - - MSK2 - Alarm B minutes mask - 15 - 1 - - - MNT - Minute tens in BCD format - 12 - 3 - - - MNU - Minute units in BCD format - 8 - 4 - - - MSK1 - Alarm B seconds mask - 7 - 1 - - - ST - Second tens in BCD format - 4 - 3 - - - SU - Second units in BCD format - 0 - 4 - - - - - WPR - WPR - write protection register - 0x24 - 0x20 - write-only - 0x00000000 - - - KEY - Write protection key - 0 - 8 - - - - - SSR - SSR - sub second register - 0x28 - 0x20 - read-only - 0x00000000 - - - SS - Sub second value - 0 - 16 - - - - - SHIFTR - SHIFTR - shift control register - 0x2C - 0x20 - write-only - 0x00000000 - - - ADD1S - Add one second - 31 - 1 - - - SUBFS - Subtract a fraction of a second - 0 - 15 - - - - - TSTR - TSTR - time stamp time register - 0x30 - 0x20 - read-only - 0x00000000 - - - SU - Second units in BCD format - 0 - 4 - - - ST - Second tens in BCD format - 4 - 3 - - - MNU - Minute units in BCD format - 8 - 4 - - - MNT - Minute tens in BCD format - 12 - 3 - - - HU - Hour units in BCD format - 16 - 4 - - - HT - Hour tens in BCD format - 20 - 2 - - - PM - AM/PM notation - 22 - 1 - - - - - TSDR - TSDR - time stamp date register - 0x34 - 0x20 - read-only - 0x00000000 - - - WDU - Week day units - 13 - 3 - - - MT - Month tens in BCD format - 12 - 1 - - - MU - Month units in BCD format - 8 - 4 - - - DT - Date tens in BCD format - 4 - 2 - - - DU - Date units in BCD format - 0 - 4 - - - - - TSSSR - TSSSR - timestamp sub second register - 0x38 - 0x20 - read-only - 0x00000000 - - - SS - Sub second value - 0 - 16 - - - - - CALR - CALR - calibration register - 0x3C - 0x20 - read-write - 0x00000000 - - - CALP - Increase frequency of RTC by 488.5 ppm - 15 - 1 - - - CALW8 - Use an 8-second calibration cycle period - 14 - 1 - - - CALW16 - Use a 16-second calibration cycle period - 13 - 1 - - - CALM - Calibration minus - 0 - 9 - - - - - TAMPCR - TAMPCR - tamper configuration register - 0x40 - 0x20 - read-write - 0x00000000 - - - TAMP1E - Tamper 1 detection enable - 0 - 1 - - - TAMP1TRG - Active level for tamper 1 - 1 - 1 - - - TAMPIE - Tamper interrupt enable - 2 - 1 - - - TAMP2E - Tamper 2 detection enable - 3 - 1 - - - TAMP2TRG - Active level for tamper 2 - 4 - 1 - - - TAMP3E - Tamper 3 detection enable - 5 - 1 - - - TAMP3TRG - Active level for tamper 3 - 6 - 1 - - - TAMPTS - Activate timestamp on tamper detection event - 7 - 1 - - - TAMPFREQ - Tamper sampling frequency - 8 - 3 - - - TAMPFLT - Tamper filter count - 11 - 2 - - - TAMPPRCH - Tamper precharge duration - 13 - 2 - - - TAMPPUDIS - TAMPER pull-up disable - 15 - 1 - - - TAMP1IE - Tamper 1 interrupt enable - 16 - 1 - - - TAMP1NOERASE - Tamper 1 no erase - 17 - 1 - - - TAMP1MF - Tamper 1 mask flag - 18 - 1 - - - TAMP2IE - Tamper 2 interrupt enable - 19 - 1 - - - TAMP2NOERASE - Tamper 2 no erase - 20 - 1 - - - TAMP2MF - Tamper 2 mask flag - 21 - 1 - - - TAMP3IE - Tamper 3 interrupt enable - 22 - 1 - - - TAMP3NOERASE - Tamper 3 no erase - 23 - 1 - - - TAMP3MF - Tamper 3 mask flag - 24 - 1 - - - - - ALRMASSR - ALRMASSR - alarm A sub second register - 0x44 - 0x20 - read-write - 0x00000000 - - - MASKSS - Mask the most-significant bits starting at this bit - 24 - 4 - - - SS - Sub seconds value - 0 - 15 - - - - - ALRMBSSR - ALRMBSSR - alarm B sub second register - 0x48 - 0x20 - read-write - 0x00000000 - - - MASKSS - Mask the most-significant bits starting at this bit - 24 - 4 - - - SS - Sub seconds value - 0 - 15 - - - - - OR - OR - option register - 0x4C - 0x20 - read-write - 0x00000000 - - - RTC_ALARM_TYPE - RTC_ALARM on PC13 output type - 0 - 1 - - - RTC_OUT_RMP - RTC_OUT remap - 1 - 1 - - - - - BKP0R - BKP0R - backup register - 0x50 - 0x20 - read-write - 0x00000000 - - - BKP - BKP - 0 - 32 - - - - - BKP1R - BKP1R - backup register - 0x54 - 0x20 - read-write - 0x00000000 - - - BKP - BKP - 0 - 32 - - - - - BKP2R - BKP2R - backup register - 0x58 - 0x20 - read-write - 0x00000000 - - - BKP - BKP - 0 - 32 - - - - - BKP3R - BKP3R - backup register - 0x5C - 0x20 - read-write - 0x00000000 - - - BKP - BKP - 0 - 32 - - - - - BKP4R - BKP4R - backup register - 0x60 - 0x20 - read-write - 0x00000000 - - - BKP - BKP - 0 - 32 - - - - - BKP5R - BKP5R - backup register - 0x64 - 0x20 - read-write - 0x00000000 - - - BKP - BKP - 0 - 32 - - - - - BKP6R - BKP6R - backup register - 0x68 - 0x20 - read-write - 0x00000000 - - - BKP - BKP - 0 - 32 - - - - - BKP7R - BKP7R - backup register - 0x6C - 0x20 - read-write - 0x00000000 - - - BKP - BKP - 0 - 32 - - - - - BKP8R - BKP8R - backup register - 0x70 - 0x20 - read-write - 0x00000000 - - - BKP - BKP - 0 - 32 - - - - - BKP9R - BKP9R - backup register - 0x74 - 0x20 - read-write - 0x00000000 - - - BKP - BKP - 0 - 32 - - - - - BKP10R - BKP10R - backup register - 0x78 - 0x20 - read-write - 0x00000000 - - - BKP - BKP - 0 - 32 - - - - - BKP11R - BKP11R - backup register - 0x7C - 0x20 - read-write - 0x00000000 - - - BKP - BKP - 0 - 32 - - - - - BKP12R - BKP12R - backup register - 0x80 - 0x20 - read-write - 0x00000000 - - - BKP - BKP - 0 - 32 - - - - - BKP13R - BKP13R - backup register - 0x84 - 0x20 - read-write - 0x00000000 - - - BKP - BKP - 0 - 32 - - - - - BKP14R - BKP14R - backup register - 0x88 - 0x20 - read-write - 0x00000000 - - - BKP - BKP - 0 - 32 - - - - - BKP15R - BKP15R - backup register - 0x8C - 0x20 - read-write - 0x00000000 - - - BKP - BKP - 0 - 32 - - - - - BKP16R - BKP16R - backup register - 0x90 - 0x20 - read-write - 0x00000000 - - - BKP - BKP - 0 - 32 - - - - - BKP17R - BKP17R - backup register - 0x94 - 0x20 - read-write - 0x00000000 - - - BKP - BKP - 0 - 32 - - - - - BKP18R - BKP18R - backup register - 0x98 - 0x20 - read-write - 0x00000000 - - - BKP - BKP - 0 - 32 - - - - - BKP19R - BKP19R - backup register - 0x9C - 0x20 - read-write - 0x00000000 - - - BKP - BKP - 0 - 32 - - - - - - - DBGMCU - Debug support - DBGMCU - 0xE0042000 - - 0x0 - 0x400 - registers - - - - IDCODE - IDCODE - MCU Device ID Code Register - 0x0 - 0x20 - read-only - 0x0 - - - DEV_ID - Device Identifier - 0 - 12 - - - REV_ID - Revision Identifier - 16 - 16 - - - - - CR - CR - Debug MCU Configuration Register - 0x4 - 0x20 - read-write - 0x0 - - - DBG_SLEEP - Debug Sleep Mode - 0 - 1 - - - DBG_STOP - Debug Stop Mode - 1 - 1 - - - DBG_STANDBY - Debug Standby Mode - 2 - 1 - - - TRACE_IOEN - Trace port and clock enable - 5 - 1 - - - TRGOEN - External trigger output enable - 28 - 1 - - - - - APB1FZR1 - APB1FZR1 - APB1 Low Freeze Register CPU1 - 0x3C - 0x20 - read-write - 0x0 - - - DBG_TIMER2_STOP - Debug Timer 2 stopped when Core is halted - 0 - 1 - - - DBG_RTC_STOP - RTC counter stopped when core is halted - 10 - 1 - - - DBG_WWDG_STOP - WWDG counter stopped when core is halted - 11 - 1 - - - DBG_IWDG_STOP - IWDG counter stopped when core is halted - 12 - 1 - - - DBG_I2C1_STOP - Debug I2C1 SMBUS timeout stopped when Core is halted - 21 - 1 - - - DBG_I2C3_STOP - Debug I2C3 SMBUS timeout stopped when core is halted - 23 - 1 - - - DBG_LPTIM1_STOP - Debug LPTIM1 stopped when Core is halted - 31 - 1 - - - - - C2AP_B1FZR1 - C2AP_B1FZR1 - APB1 Low Freeze Register CPU2 - 0x40 - 0x20 - read-write - 0x0 - - - DBG_LPTIM2_STOP - LPTIM2 counter stopped when core is halted - 0 - 1 - - - DBG_RTC_STOP - RTC counter stopped when core is halted - 10 - 1 - - - DBG_IWDG_STOP - IWDG stopped when core is halted - 12 - 1 - - - DBG_I2C1_STOP - I2C1 SMBUS timeout stopped when core is halted - 21 - 1 - - - DBG_I2C3_STOP - I2C3 SMBUS timeout stopped when core is halted - 23 - 1 - - - DBG_LPTIM1_STOP - LPTIM1 counter stopped when core is halted - 31 - 1 - - - - - APB1FZR2 - APB1FZR2 - APB1 High Freeze Register CPU1 - 0x44 - 0x20 - read-write - 0x0 - - - DBG_LPTIM2_STOP - LPTIM2 counter stopped when core is halted - 5 - 1 - - - - - C2APB1FZR2 - C2APB1FZR2 - APB1 High Freeze Register CPU2 - 0x48 - 0x20 - read-write - 0x0 - - - DBG_LPTIM2_STOP - LPTIM2 counter stopped when core is halted - 5 - 1 - - - - - APB2FZR - APB2FZR - APB2 Freeze Register CPU1 - 0x4C - 0x20 - read-write - 0x0 - - - DBG_TIM1_STOP - TIM1 counter stopped when core is halted - 11 - 1 - - - DBG_TIM16_STOP - TIM16 counter stopped when core is halted - 17 - 1 - - - DBG_TIM17_STOP - TIM17 counter stopped when core is halted - 18 - 1 - - - - - C2APB2FZR - C2APB2FZR - APB2 Freeze Register CPU2 - C2APB1FZR2 - 0x48 - 0x20 - read-write - 0x0 - - - DBG_TIM1_STOP - TIM1 counter stopped when core is halted - 11 - 1 - - - DBG_TIM16_STOP - TIM16 counter stopped when core is halted - 17 - 1 - - - DBG_TIM17_STOP - TIM17 counter stopped when core is halted - 18 - 1 - - - - - - - PKA - PKA - PKA - 0x58002000 - - 0x0 - 0x2000 - registers - - - PKA - Private key accelerator - interrupt - 29 - - - - CR - CR - Control register - 0x0 - 0x20 - read-write - 0x00000000 - - - ADDRERRIE - Address error interrupt enable - 20 - 1 - - - RAMERRIE - RAM error interrupt enable - 19 - 1 - - - PROCENDIE - End of operation interrupt enable - 17 - 1 - - - MODE - PKA Operation Mode - 8 - 6 - - - SECLVL - Security Enable - 2 - 1 - - - START - Start the operation - 1 - 1 - - - EN - Peripheral Enable - 0 - 1 - - - - - SR - SR - PKA status register - 0x4 - 0x20 - read-only - 0x00000000 - - - ADDRERRF - Address error flag - 20 - 1 - - - RAMERRF - RAM error flag - 19 - 1 - - - PROCENDF - PKA End of Operation flag - 17 - 1 - - - BUSY - PKA Operation in progress - 16 - 1 - - - - - CLRFR - CLRFR - PKA clear flag register - 0x8 - 0x20 - read-write - 0x00000000 - - - ADDRERRFC - Clear Address error flag - 20 - 1 - - - RAMERRFC - Clear RAM error flag - 19 - 1 - - - PROCENDFC - Clear PKA End of Operation flag - 17 - 1 - - - - - VERR - VERR - PKA version register - 0x1FF4 - 0x20 - read-only - 0x00000010 - - - MINREV - Minor revision - 0 - 4 - - - MAJREV - Major revision - 4 - 4 - - - - - IPIDR - IPIDR - PKA identification register - 0x1FF8 - 0x20 - read-only - 0x00170061 - - - ID - Identification Code - 0 - 32 - - - - - SIDR - SIDR - PKA size ID register - 0x1FFC - 0x20 - read-only - 0xA3C5DD08 - - - SID - Side Identification Code - 0 - 32 - - - - - - - IPCC - IPCC - IPCC - 0x58000C00 - - 0x0 - 0x400 - registers - - - IPCC_C1_RX_IT - IPCC CPU1 RX occupied interrupt - 44 - - - IPCC_C1_TX_IT - IPCC CPU1 TX free interrupt - 45 - - - - C1CR - C1CR - Control register CPU1 - 0x0 - 0x20 - read-write - 0x00000000 - - - TXFIE - processor 1 Transmit channel free interrupt enable - 16 - 1 - - - RXOIE - processor 1 Receive channel occupied interrupt enable - 0 - 1 - - - - - C1MR - C1MR - Mask register CPU1 - 0x4 - 0x20 - read-write - 0xFFFFFFFF - - - CH6FM - processor 1 Transmit channel 6 free interrupt mask - 21 - 1 - - - CH5FM - processor 1 Transmit channel 5 free interrupt mask - 20 - 1 - - - CH4FM - processor 1 Transmit channel 4 free interrupt mask - 19 - 1 - - - CH3FM - processor 1 Transmit channel 3 free interrupt mask - 18 - 1 - - - CH2FM - processor 1 Transmit channel 2 free interrupt mask - 17 - 1 - - - CH1FM - processor 1 Transmit channel 1 free interrupt mask - 16 - 1 - - - CH6OM - processor 1 Receive channel 6 occupied interrupt enable - 5 - 1 - - - CH5OM - processor 1 Receive channel 5 occupied interrupt enable - 4 - 1 - - - CH4OM - processor 1 Receive channel 4 occupied interrupt enable - 3 - 1 - - - CH3OM - processor 1 Receive channel 3 occupied interrupt enable - 2 - 1 - - - CH2OM - processor 1 Receive channel 2 occupied interrupt enable - 1 - 1 - - - CH1OM - processor 1 Receive channel 1 occupied interrupt enable - 0 - 1 - - - - - C1SCR - C1SCR - Status Set or Clear register CPU1 - 0x8 - 0x20 - write-only - 0x00000000 - - - CH6S - processor 1 Transmit channel 6 status set - 21 - 1 - - - CH5S - processor 1 Transmit channel 5 status set - 20 - 1 - - - CH4S - processor 1 Transmit channel 4 status set - 19 - 1 - - - CH3S - processor 1 Transmit channel 3 status set - 18 - 1 - - - CH2S - processor 1 Transmit channel 2 status set - 17 - 1 - - - CH1S - processor 1 Transmit channel 1 status set - 16 - 1 - - - CH6C - processor 1 Receive channel 6 status clear - 5 - 1 - - - CH5C - processor 1 Receive channel 5 status clear - 4 - 1 - - - CH4C - processor 1 Receive channel 4 status clear - 3 - 1 - - - CH3C - processor 1 Receive channel 3 status clear - 2 - 1 - - - CH2C - processor 1 Receive channel 2 status clear - 1 - 1 - - - CH1C - processor 1 Receive channel 1 status clear - 0 - 1 - - - - - C1TO2SR - C1TO2SR - CPU1 to CPU2 status register - 0xC - 0x20 - read-only - 0x00000000 - - - CH6F - processor 1 transmit to process 2 Receive channel 6 status flag - 5 - 1 - - - CH5F - processor 1 transmit to process 2 Receive channel 5 status flag - 4 - 1 - - - CH4F - processor 1 transmit to process 2 Receive channel 4 status flag - 3 - 1 - - - CH3F - processor 1 transmit to process 2 Receive channel 3 status flag - 2 - 1 - - - CH2F - processor 1 transmit to process 2 Receive channel 2 status flag - 1 - 1 - - - CH1F - processor 1 transmit to process 2 Receive channel 1 status flag - 0 - 1 - - - - - C2CR - C2CR - Control register CPU2 - 0x10 - 0x20 - read-write - 0x00000000 - - - TXFIE - processor 2 Transmit channel free interrupt enable - 16 - 1 - - - RXOIE - processor 2 Receive channel occupied interrupt enable - 0 - 1 - - - - - C2MR - C2MR - Mask register CPU2 - 0x14 - 0x20 - read-write - 0xFFFFFFFF - - - CH6FM - processor 2 Transmit channel 6 free interrupt mask - 21 - 1 - - - CH5FM - processor 2 Transmit channel 5 free interrupt mask - 20 - 1 - - - CH4FM - processor 2 Transmit channel 4 free interrupt mask - 19 - 1 - - - CH3FM - processor 2 Transmit channel 3 free interrupt mask - 18 - 1 - - - CH2FM - processor 2 Transmit channel 2 free interrupt mask - 17 - 1 - - - CH1FM - processor 2 Transmit channel 1 free interrupt mask - 16 - 1 - - - CH6OM - processor 2 Receive channel 6 occupied interrupt enable - 5 - 1 - - - CH5OM - processor 2 Receive channel 5 occupied interrupt enable - 4 - 1 - - - CH4OM - processor 2 Receive channel 4 occupied interrupt enable - 3 - 1 - - - CH3OM - processor 2 Receive channel 3 occupied interrupt enable - 2 - 1 - - - CH2OM - processor 2 Receive channel 2 occupied interrupt enable - 1 - 1 - - - CH1OM - processor 2 Receive channel 1 occupied interrupt enable - 0 - 1 - - - - - C2SCR - C2SCR - Status Set or Clear register CPU2 - 0x18 - 0x20 - write-only - 0x00000000 - - - CH6S - processor 2 Transmit channel 6 status set - 21 - 1 - - - CH5S - processor 2 Transmit channel 5 status set - 20 - 1 - - - CH4S - processor 2 Transmit channel 4 status set - 19 - 1 - - - CH3S - processor 2 Transmit channel 3 status set - 18 - 1 - - - CH2S - processor 2 Transmit channel 2 status set - 17 - 1 - - - CH1S - processor 2 Transmit channel 1 status set - 16 - 1 - - - CH6C - processor 2 Receive channel 6 status clear - 5 - 1 - - - CH5C - processor 2 Receive channel 5 status clear - 4 - 1 - - - CH4C - processor 2 Receive channel 4 status clear - 3 - 1 - - - CH3C - processor 2 Receive channel 3 status clear - 2 - 1 - - - CH2C - processor 2 Receive channel 2 status clear - 1 - 1 - - - CH1C - processor 2 Receive channel 1 status clear - 0 - 1 - - - - - C2TOC1SR - C2TOC1SR - CPU2 to CPU1 status register - 0x1C - 0x20 - read-only - 0x00000000 - - - CH6F - processor 2 transmit to process 1 Receive channel 6 status flag - 5 - 1 - - - CH5F - processor 2 transmit to process 1 Receive channel 5 status flag - 4 - 1 - - - CH4F - processor 2 transmit to process 1 Receive channel 4 status flag - 3 - 1 - - - CH3F - processor 2 transmit to process 1 Receive channel 3 status flag - 2 - 1 - - - CH2F - processor 2 transmit to process 1 Receive channel 2 status flag - 1 - 1 - - - CH1F - processor 2 transmit to process 1 Receive channel 1 status flag - 0 - 1 - - - - - HWCFGR - HWCFGR - IPCC Hardware configuration register - 0x3F0 - 0x20 - read-only - 0x00000006 - - - CHANNELS - Number of channels per CPU supported by the IP, range 1 to 16 - 0 - 8 - - - - - VERR - VERR - IPCC version register - 0x3F4 - 0x20 - read-only - 0x00000010 - - - MAJREV - Major Revision - 4 - 4 - - - MINREV - Minor Revision - 0 - 4 - - - - - IPIDR - IPIDR - IPCC indentification register - 0x3F8 - 0x20 - read-only - 0x00100071 - - - IPID - Identification Code - 0 - 32 - - - - - SIDR - SIDR - IPCC size indentification register - 0x3FC - 0x20 - read-only - 0xA3C5DD01 - - - SID - Size Identification Code - 0 - 32 - - - - - - - EXTI - External interrupt/event controller - EXTI - 0x58000800 - - 0x0 - 0x400 - registers - - - PVD - PVD through EXTI[16] (C1IMR2[20]) - 1 - - - EXTI0 - EXTI line 0 interrupt through - EXTI[0] - 6 - - - EXTI1 - EXTI line 0 interrupt through - EXTI[1] - 7 - - - EXTI2 - EXTI line 0 interrupt through - EXTI[2] - 8 - - - EXTI3 - EXTI line 0 interrupt through - EXTI[3] - 9 - - - EXTI4 - EXTI line 0 interrupt through - EXTI[4] - 10 - - - C2SEV - CPU2 SEV through EXTI[40] - 21 - - - EXTI5_9 - EXTI line [9:5] interrupt through - EXTI[9:5] - 23 - - - EXTI10_15 - EXTI line [15:10] interrupt through - EXTI[15:10] - 40 - - - - RTSR1 - RTSR1 - rising trigger selection register - 0x0 - 0x20 - read-write - 0x00000000 - - - RT - Rising trigger event configuration bit of Configurable Event input - 0 - 22 - - - RT_31 - Rising trigger event configuration bit of Configurable Event input - 31 - 1 - - - - - FTSR1 - FTSR1 - falling trigger selection register - 0x4 - 0x20 - read-write - 0x00000000 - - - FT - Falling trigger event configuration bit of Configurable Event input - 0 - 22 - - - FT_31 - Falling trigger event configuration bit of Configurable Event input - 31 - 1 - - - - - SWIER1 - SWIER1 - software interrupt event register - 0x8 - 0x20 - read-write - 0x00000000 - - - SWI - Software interrupt on event - 0 - 22 - - - SWI_31 - Software interrupt on event - 31 - 1 - - - - - PR1 - PR1 - EXTI pending register - 0xC - 0x20 - read-write - 0x00000000 - - - PIF - Configurable event inputs Pending bit - 0 - 22 - - - PIF_31 - Configurable event inputs Pending bit - 31 - 1 - - - - - RTSR2 - RTSR2 - rising trigger selection register - 0x20 - 0x20 - read-write - 0x00000000 - - - RT33 - Rising trigger event configuration bit of Configurable Event input - 1 - 1 - - - RT40_41 - Rising trigger event configuration bit of Configurable Event input - 8 - 2 - - - - - FTSR2 - FTSR2 - falling trigger selection register - 0x24 - 0x20 - read-write - 0x00000000 - - - FT33 - Falling trigger event configuration bit of Configurable Event input - 1 - 1 - - - FT40_41 - Falling trigger event configuration bit of Configurable Event input - 8 - 2 - - - - - SWIER2 - SWIER2 - software interrupt event register - 0x28 - 0x20 - read-write - 0x00000000 - - - SWI33 - Software interrupt on event - 1 - 1 - - - SWI40_41 - Software interrupt on event - 8 - 2 - - - - - PR2 - PR2 - pending register - 0x2C - 0x20 - read-write - 0x00000000 - - - PIF33 - Configurable event inputs x+32 Pending bit. - 1 - 1 - - - PIF40_41 - Configurable event inputs x+32 Pending bit. - 8 - 2 - - - - - C1IMR1 - C1IMR1 - CPUm wakeup with interrupt mask register - 0x80 - 0x20 - read-write - 0x7FC00000 - - - IM - CPU(m) wakeup with interrupt Mask on Event input - 0 - 32 - - - - - C2IMR1 - C2IMR1 - CPUm wakeup with interrupt mask register - 0xC0 - 0x20 - read-write - 0x7FC00000 - - - IM - CPU(m) wakeup with interrupt Mask on Event input - 0 - 32 - - - - - C1EMR1 - C1EMR1 - CPUm wakeup with event mask register - 0x84 - 0x20 - read-write - 0x00000000 - - - EM0_15 - CPU(m) Wakeup with event generation Mask on Event input - 0 - 16 - - - EM17_21 - CPU(m) Wakeup with event generation Mask on Event input - 17 - 5 - - - - - C2EMR1 - C2EMR1 - CPUm wakeup with event mask register - 0xC4 - 0x20 - read-write - 0x00000000 - - - EM0_15 - CPU(m) Wakeup with event generation Mask on Event input - 0 - 16 - - - EM17_21 - CPU(m) Wakeup with event generation Mask on Event input - 17 - 5 - - - - - C1IMR2 - C1IMR2 - CPUm wakeup with interrupt mask register - 0x90 - 0x20 - read-write - 0x0001FCFD - - - IM - CPUm Wakeup with interrupt Mask on Event input - 0 - 17 - - - - - C2IMR2 - C2IMR2 - CPUm wakeup with interrupt mask register - 0xD0 - 0x20 - read-write - 0x0001FCFD - - - IM - CPUm Wakeup with interrupt Mask on Event input - 0 - 17 - - - - - C1EMR2 - C1EMR2 - CPUm wakeup with event mask register - 0x94 - 0x20 - read-write - 0x00000000 - - - EM - CPU(m) Wakeup with event generation Mask on Event input - 8 - 2 - - - - - C2EMR2 - C2EMR2 - CPUm wakeup with event mask register - 0xD4 - 0x20 - read-write - 0x00000000 - - - EM - CPU(m) Wakeup with event generation Mask on Event input - 8 - 2 - - - - - HWCFGR5 - HWCFGR5 - Hardware configuration registers - 0x3E0 - 0x20 - read-only - 0x003EFFFF - - - CPUEVENT - HW configuration CPU event generation - 0 - 32 - - - - - HWCFGR6 - HWCFGR6 - Hardware configuration registers - 0x3DC - 0x20 - read-only - 0x00000300 - - - CPUEVENT - HW configuration CPU event generation - 0 - 32 - - - - - HWCFGR7 - HWCFGR7 - EXTI Hardware configuration registers - 0x3D8 - 0x20 - read-only - 0x00000000 - - - CPUEVENT - HW configuration CPU event generation - 0 - 32 - - - - - HWCFGR2 - HWCFGR2 - Hardware configuration registers - 0x3EC - 0x20 - read-only - 0x803FFFFF - - - EVENT_TRG - HW configuration event trigger type - 0 - 32 - - - - - HWCFGR3 - HWCFGR3 - Hardware configuration registers - 0x3E8 - 0x20 - read-only - 0x00000302 - - - EVENT_TRG - HW configuration event trigger type - 0 - 32 - - - - - HWCFGR4 - HWCFGR4 - Hardware configuration registers - 0x3E4 - 0x20 - read-only - 0x00000000 - - - EVENT_TRG - HW configuration event trigger type - 0 - 32 - - - - - HWCFGR1 - HWCFGR1 - Hardware configuration register 1 - 0x3F0 - 0x20 - read-only - 0x00003130 - - - NBEVENTS - HW configuration number of event - 0 - 8 - - - NBCPUS - HW configuration number of CPUs - 8 - 4 - - - CPUEVTEN - HW configuration of CPU(m) event output enable - 12 - 4 - - - - - VERR - VERR - EXTI IP Version register - 0x3F4 - 0x20 - read-only - 0X00000020 - - - MINREV - Minor Revision number - 0 - 4 - - - MAJREV - Major Revision number - 4 - 4 - - - - - IPIDR - IPIDR - Identification register - 0x3F8 - 0x20 - read-only - 0x000E0001 - - - IPID - IP Identification - 0 - 32 - - - - - SIDR - SIDR - Size ID register - 0x3FC - 0x20 - read-only - 0xA3C5DD01 - - - SID - Size Identification - 0 - 32 - - - - - - - CRS - Clock recovery system - CRS - 0x40006000 - - 0x0 - 0x400 - registers - - - CRS_IT - CRS interrupt - 42 - - - - CR - CR - CRS control register - 0x0 - 0x20 - read-write - 0x00002000 - - - SYNCOKIE - SYNC event OK interrupt enable - 0 - 1 - - - SYNCWARNIE - SYNC warning interrupt enable - 1 - 1 - - - ERRIE - Synchronization or trimming error interrupt enable - 2 - 1 - - - ESYNCIE - Expected SYNC interrupt enable - 3 - 1 - - - CEN - Frequency error counter enable - 5 - 1 - - - AUTOTRIMEN - Automatic trimming enable - 6 - 1 - - - SWSYNC - Automatic trimming enable - 7 - 1 - - - TRIM - HSI48 oscillator smooth trimming - 8 - 6 - - - - - CFGR - CFGR - CRS configuration register - 0x4 - 0x20 - read-write - 0x2022BB7F - - - RELOAD - Counter reload value - 0 - 16 - - - FELIM - Frequency error limit - 16 - 8 - - - SYNCDIV - SYNCDIV - 24 - 3 - - - SYNCSRC - SYNC signal source selection - 28 - 2 - - - SYNCPOL - SYNC polarity selection - 31 - 1 - - - - - ISR - ISR - CRS interrupt and status register - 0x8 - 0x20 - read-only - 0x00000000 - - - SYNCOKF - SYNC event OK flag - 0 - 1 - - - SYNCWARNF - SYNC warning flag - 1 - 1 - - - ERRF - Error flag - 2 - 1 - - - ESYNCF - Expected SYNC flag - 3 - 1 - - - SYNCERR - SYNC error - 8 - 1 - - - SYNCMISS - SYNC missed - 9 - 1 - - - TRIMOVF - Trimming overflow or underflow - 10 - 1 - - - FEDIR - Frequency error direction - 15 - 1 - - - FECAP - Frequency error capture - 16 - 16 - - - - - ICR - ICR - CRS interrupt flag clear register - 0xC - 0x20 - read-write - 0x00000000 - - - SYNCOKC - SYNC event OK clear flag - 0 - 1 - - - SYNCWARNC - warning clear flag - 1 - 1 - - - ERRC - Error clear flag - 2 - 1 - - - ESYNCC - Expected SYNC clear flag - 3 - 1 - - - - - - - USB - Universal serial bus full-speed device interface - USB - 0x40006800 - - 0x0 - 0x800 - registers - - - USB_HP - USB high priority interrupt - 19 - - - USB_LP - USB low priority interrupt (including USB - wakeup) - 20 - - - - EP0R - EP0R - endpoint 0 register - 0x0 - 0x10 - read-write - 0x00000000 - - - EA - Endpoint address - 0 - 4 - - - STAT_TX - Status bits, for transmission transfers - 4 - 2 - - - DTOG_TX - Data Toggle, for transmission transfers - 6 - 1 - - - CTR_TX - Correct Transfer for transmission - 7 - 1 - - - EP_KIND - Endpoint kind - 8 - 1 - - - EP_TYPE - Endpoint type - 9 - 2 - - - SETUP - Setup transaction completed - 11 - 1 - - - STAT_RX - Status bits, for reception transfers - 12 - 2 - - - DTOG_RX - Data Toggle, for reception transfers - 14 - 1 - - - CTR_RX - Correct transfer for reception - 15 - 1 - - - - - EP1R - EP1R - endpoint 1 register - 0x4 - 0x10 - read-write - 0x00000000 - - - EA - Endpoint address - 0 - 4 - - - STAT_TX - Status bits, for transmission transfers - 4 - 2 - - - DTOG_TX - Data Toggle, for transmission transfers - 6 - 1 - - - CTR_TX - Correct Transfer for transmission - 7 - 1 - - - EP_KIND - Endpoint kind - 8 - 1 - - - EP_TYPE - Endpoint type - 9 - 2 - - - SETUP - Setup transaction completed - 11 - 1 - - - STAT_RX - Status bits, for reception transfers - 12 - 2 - - - DTOG_RX - Data Toggle, for reception transfers - 14 - 1 - - - CTR_RX - Correct transfer for reception - 15 - 1 - - - - - EP2R - EP2R - endpoint 2 register - 0x8 - 0x10 - read-write - 0x00000000 - - - EA - Endpoint address - 0 - 4 - - - STAT_TX - Status bits, for transmission transfers - 4 - 2 - - - DTOG_TX - Data Toggle, for transmission transfers - 6 - 1 - - - CTR_TX - Correct Transfer for transmission - 7 - 1 - - - EP_KIND - Endpoint kind - 8 - 1 - - - EP_TYPE - Endpoint type - 9 - 2 - - - SETUP - Setup transaction completed - 11 - 1 - - - STAT_RX - Status bits, for reception transfers - 12 - 2 - - - DTOG_RX - Data Toggle, for reception transfers - 14 - 1 - - - CTR_RX - Correct transfer for reception - 15 - 1 - - - - - EP3R - EP3R - endpoint 3 register - 0xC - 0x10 - read-write - 0x00000000 - - - EA - Endpoint address - 0 - 4 - - - STAT_TX - Status bits, for transmission transfers - 4 - 2 - - - DTOG_TX - Data Toggle, for transmission transfers - 6 - 1 - - - CTR_TX - Correct Transfer for transmission - 7 - 1 - - - EP_KIND - Endpoint kind - 8 - 1 - - - EP_TYPE - Endpoint type - 9 - 2 - - - SETUP - Setup transaction completed - 11 - 1 - - - STAT_RX - Status bits, for reception transfers - 12 - 2 - - - DTOG_RX - Data Toggle, for reception transfers - 14 - 1 - - - CTR_RX - Correct transfer for reception - 15 - 1 - - - - - EP4R - EP4R - endpoint 4 register - 0x10 - 0x10 - read-write - 0x00000000 - - - EA - Endpoint address - 0 - 4 - - - STAT_TX - Status bits, for transmission transfers - 4 - 2 - - - DTOG_TX - Data Toggle, for transmission transfers - 6 - 1 - - - CTR_TX - Correct Transfer for transmission - 7 - 1 - - - EP_KIND - Endpoint kind - 8 - 1 - - - EP_TYPE - Endpoint type - 9 - 2 - - - SETUP - Setup transaction completed - 11 - 1 - - - STAT_RX - Status bits, for reception transfers - 12 - 2 - - - DTOG_RX - Data Toggle, for reception transfers - 14 - 1 - - - CTR_RX - Correct transfer for reception - 15 - 1 - - - - - EP5R - EP5R - endpoint 5 register - 0x14 - 0x10 - read-write - 0x00000000 - - - EA - Endpoint address - 0 - 4 - - - STAT_TX - Status bits, for transmission transfers - 4 - 2 - - - DTOG_TX - Data Toggle, for transmission transfers - 6 - 1 - - - CTR_TX - Correct Transfer for transmission - 7 - 1 - - - EP_KIND - Endpoint kind - 8 - 1 - - - EP_TYPE - Endpoint type - 9 - 2 - - - SETUP - Setup transaction completed - 11 - 1 - - - STAT_RX - Status bits, for reception transfers - 12 - 2 - - - DTOG_RX - Data Toggle, for reception transfers - 14 - 1 - - - CTR_RX - Correct transfer for reception - 15 - 1 - - - - - EP6R - EP6R - endpoint 6 register - 0x18 - 0x10 - read-write - 0x00000000 - - - EA - Endpoint address - 0 - 4 - - - STAT_TX - Status bits, for transmission transfers - 4 - 2 - - - DTOG_TX - Data Toggle, for transmission transfers - 6 - 1 - - - CTR_TX - Correct Transfer for transmission - 7 - 1 - - - EP_KIND - Endpoint kind - 8 - 1 - - - EP_TYPE - Endpoint type - 9 - 2 - - - SETUP - Setup transaction completed - 11 - 1 - - - STAT_RX - Status bits, for reception transfers - 12 - 2 - - - DTOG_RX - Data Toggle, for reception transfers - 14 - 1 - - - CTR_RX - Correct transfer for reception - 15 - 1 - - - - - EP7R - EP7R - endpoint 7 register - 0x1C - 0x10 - read-write - 0x00000000 - - - EA - Endpoint address - 0 - 4 - - - STAT_TX - Status bits, for transmission transfers - 4 - 2 - - - DTOG_TX - Data Toggle, for transmission transfers - 6 - 1 - - - CTR_TX - Correct Transfer for transmission - 7 - 1 - - - EP_KIND - Endpoint kind - 8 - 1 - - - EP_TYPE - Endpoint type - 9 - 2 - - - SETUP - Setup transaction completed - 11 - 1 - - - STAT_RX - Status bits, for reception transfers - 12 - 2 - - - DTOG_RX - Data Toggle, for reception transfers - 14 - 1 - - - CTR_RX - Correct transfer for reception - 15 - 1 - - - - - CNTR - CNTR - control register - 0x40 - 0x10 - read-write - 0x00000003 - - - FRES - Force USB Reset - 0 - 1 - - - PDWN - Power down - 1 - 1 - - - LPMODE - Low-power mode - 2 - 1 - - - FSUSP - Force suspend - 3 - 1 - - - RESUME - Resume request - 4 - 1 - - - L1RESUME - LPM L1 Resume request - 5 - 1 - - - L1REQM - LPM L1 state request interrupt mask - 7 - 1 - - - ESOFM - Expected start of frame interrupt mask - 8 - 1 - - - SOFM - Start of frame interrupt mask - 9 - 1 - - - RESETM - USB reset interrupt mask - 10 - 1 - - - SUSPM - Suspend mode interrupt mask - 11 - 1 - - - WKUPM - Wakeup interrupt mask - 12 - 1 - - - ERRM - Error interrupt mask - 13 - 1 - - - PMAOVRM - Packet memory area over / underrun interrupt mask - 14 - 1 - - - CTRM - Correct transfer interrupt mask - 15 - 1 - - - - - ISTR - ISTR - interrupt status register - 0x44 - 0x10 - 0x00000000 - - - EP_ID - Endpoint Identifier - 0 - 4 - read-only - - - DIR - Direction of transaction - 4 - 1 - read-only - - - L1REQ - LPM L1 state request - 7 - 1 - read-write - - - ESOF - Expected start frame - 8 - 1 - read-write - - - SOF - start of frame - 9 - 1 - read-write - - - RESET - reset request - 10 - 1 - read-write - - - SUSP - Suspend mode request - 11 - 1 - read-write - - - WKUP - Wakeup - 12 - 1 - read-write - - - ERR - Error - 13 - 1 - read-write - - - PMAOVR - Packet memory area over / underrun - 14 - 1 - read-write - - - CTR - Correct transfer - 15 - 1 - read-only - - - - - FNR - FNR - frame number register - 0x48 - 0x10 - read-only - 0x0000 - - - FN - Frame number - 0 - 11 - - - LSOF - Lost SOF - 11 - 2 - - - LCK - Locked - 13 - 1 - - - RXDM - Receive data - line status - 14 - 1 - - - RXDP - Receive data + line status - 15 - 1 - - - - - DADDR - DADDR - device address - 0x4C - 0x10 - read-write - 0x0000 - - - ADD - Device address - 0 - 7 - - - EF - Enable function - 7 - 1 - - - - - BTABLE - BTABLE - Buffer table address - 0x50 - 0x10 - read-write - 0x0000 - - - BTABLE - Buffer table - 3 - 13 - - - - - COUNT0_TX - COUNT0_TX - Transmission byte count 0 - 0x52 - 0x10 - read-write - 0x0000 - - - COUNT0_TX - Transmission byte count - 0 - 10 - - - - - COUNT1_TX - COUNT1_TX - Transmission byte count 0 - 0x5A - 0x10 - read-write - 0x0000 - - - COUNT1_TX - Transmission byte count - 0 - 10 - - - - - COUNT2_TX - COUNT2_TX - Transmission byte count 0 - 0x62 - 0x10 - read-write - 0x0000 - - - COUNT2_TX - Transmission byte count - 0 - 10 - - - - - COUNT3_TX - COUNT3_TX - Transmission byte count 0 - 0x6A - 0x10 - read-write - 0x0000 - - - COUNT3_TX - Transmission byte count - 0 - 10 - - - - - COUNT4_TX - COUNT4_TX - Transmission byte count 0 - 0x72 - 0x10 - read-write - 0x0000 - - - COUNT4_TX - Transmission byte count - 0 - 10 - - - - - COUNT5_TX - COUNT5_TX - Transmission byte count 0 - 0x7A - 0x10 - read-write - 0x0000 - - - COUNT5_TX - Transmission byte count - 0 - 10 - - - - - COUNT6_TX - COUNT6_TX - Transmission byte count 0 - 0x82 - 0x10 - read-write - 0x0000 - - - COUNT6_TX - Transmission byte count - 0 - 10 - - - - - COUNT7_TX - COUNT7_TX - Transmission byte count 0 - 0x8A - 0x10 - read-write - 0x0000 - - - COUNT7_TX - Transmission byte count - 0 - 10 - - - - - ADDR0_RX - ADDR0_RX - Reception buffer address 0 - 0x54 - 0x10 - read-write - 0x0000 - - - ADDR0_RX - Reception buffer address - 1 - 15 - - - - - ADDR1_RX - ADDR1_RX - Reception buffer address 0 - 0x5C - 0x10 - read-write - 0x0000 - - - ADDR1_RX - Reception buffer address - 1 - 15 - - - - - ADDR2_RX - ADDR2_RX - Reception buffer address 0 - 0x64 - 0x10 - read-write - 0x0000 - - - ADDR2_RX - Reception buffer address - 1 - 15 - - - - - ADDR3_RX - ADDR3_RX - Reception buffer address 0 - 0x6C - 0x10 - read-write - 0x0000 - - - ADDR3_RX - Reception buffer address - 1 - 15 - - - - - ADDR4_RX - ADDR4_RX - Reception buffer address 0 - 0x74 - 0x10 - read-write - 0x0000 - - - ADDR4_RX - Reception buffer address - 1 - 15 - - - - - ADDR5_RX - ADDR5_RX - Reception buffer address 0 - 0x7C - 0x10 - read-write - 0x0000 - - - ADDR5_RX - Reception buffer address - 1 - 15 - - - - - ADDR6_RX - ADDR6_RX - Reception buffer address 0 - 0x84 - 0x10 - read-write - 0x0000 - - - ADDR6_RX - Reception buffer address - 1 - 15 - - - - - ADDR7_RX - ADDR7_RX - Reception buffer address 0 - 0x8C - 0x10 - read-write - 0x0000 - - - ADDR7_RX - Reception buffer address - 1 - 15 - - - - - COUNT0_RX - COUNT0_RX - Reception byte count 0 - 0x56 - 0x10 - 0x0000 - - - COUNT0_RX - Reception byte count - 0 - 10 - read-only - - - NUM_BLOCK - Number of blocks - 10 - 5 - read-write - - - BL_SIZE - Block size - 15 - 1 - read-write - - - - - COUNT1_RX - COUNT1_RX - Reception byte count 0 - 0x5E - 0x10 - 0x0000 - - - COUNT1_RX - Reception byte count - 0 - 10 - read-only - - - NUM_BLOCK - Number of blocks - 10 - 5 - read-write - - - BL_SIZE - Block size - 15 - 1 - read-write - - - - - COUNT2_RX - COUNT2_RX - Reception byte count 0 - 0x66 - 0x10 - 0x0000 - - - COUNT2_RX - Reception byte count - 0 - 10 - read-only - - - NUM_BLOCK - Number of blocks - 10 - 5 - read-write - - - BL_SIZE - Block size - 15 - 1 - read-write - - - - - COUNT3_RX - COUNT3_RX - Reception byte count 0 - 0x6E - 0x10 - 0x0000 - - - COUNT3_RX - Reception byte count - 0 - 10 - read-only - - - NUM_BLOCK - Number of blocks - 10 - 5 - read-write - - - BL_SIZE - Block size - 15 - 1 - read-write - - - - - COUNT4_RX - COUNT4_RX - Reception byte count 0 - 0x76 - 0x10 - 0x0000 - - - COUNT4_RX - Reception byte count - 0 - 10 - read-only - - - NUM_BLOCK - Number of blocks - 10 - 5 - read-write - - - BL_SIZE - Block size - 15 - 1 - read-write - - - - - COUNT5_RX - COUNT5_RX - Reception byte count 0 - 0x7E - 0x10 - 0x0000 - - - COUNT5_RX - Reception byte count - 0 - 10 - read-only - - - NUM_BLOCK - Number of blocks - 10 - 5 - read-write - - - BL_SIZE - Block size - 15 - 1 - read-write - - - - - COUNT6_RX - COUNT6_RX - Reception byte count 0 - 0x86 - 0x10 - 0x0000 - - - COUNT6_RX - Reception byte count - 0 - 10 - read-only - - - NUM_BLOCK - Number of blocks - 10 - 5 - read-write - - - BL_SIZE - Block size - 15 - 1 - read-write - - - - - COUNT7_RX - COUNT7_RX - Reception byte count 0 - 0x8E - 0x10 - 0x0000 - - - COUNT7_RX - Reception byte count - 0 - 10 - read-only - - - NUM_BLOCK - Number of blocks - 10 - 5 - read-write - - - BL_SIZE - Block size - 15 - 1 - read-write - - - - - LPMCSR - LPMCSR - control and status register - ADDR0_RX - 0x54 - 0x10 - 0x0000 - - - LPMEN - LPM support enable - 0 - 1 - read-write - - - LPMACK - LPM Token acknowledge enable - 1 - 1 - read-write - - - REMWAKE - RemoteWake value - 3 - 1 - read-write - - - BESL - BESL value - 4 - 4 - read-only - - - - - BCDR - BCDR - Battery charging detector( - 0x58 - 0x10 - 0x0000 - - - BCDEN - Battery charging detector (BCD) enable - 0 - 1 - read-write - - - DCDEN - Data contact detection (DCD) mode enable - 1 - 1 - read-write - - - PDEN - Primary detection (PD) mode enable - 2 - 1 - read-write - - - SDEN - Secondary detection (SD) mode enable - 3 - 1 - read-write - - - DCDET - Data contact detection (DCD) status - 4 - 1 - read-only - - - PDET - Primary detection (PD) status - 5 - 1 - read-only - - - SDET - Secondary detection (SD) status - 6 - 1 - read-only - - - PS2DET - DM pull-up detection status - 7 - 1 - read-only - - - DPPU - DP pull-up control - 15 - 1 - read-write - - - - - - - SCB - System control block - SCB - 0xE000ED00 - - 0x0 - 0x41 - registers - - - - CPUID - CPUID - CPUID base register - 0x0 - 0x20 - read-only - 0x410FC241 - - - Revision - Revision number - 0 - 4 - - - PartNo - Part number of the processor - 4 - 12 - - - Constant - Reads as 0xF - 16 - 4 - - - Variant - Variant number - 20 - 4 - - - Implementer - Implementer code - 24 - 8 - - - - - ICSR - ICSR - Interrupt control and state register - 0x4 - 0x20 - read-write - 0x00000000 - - - VECTACTIVE - Active vector - 0 - 9 - - - RETTOBASE - Return to base level - 11 - 1 - - - VECTPENDING - Pending vector - 12 - 7 - - - ISRPENDING - Interrupt pending flag - 22 - 1 - - - PENDSTCLR - SysTick exception clear-pending bit - 25 - 1 - - - PENDSTSET - SysTick exception set-pending bit - 26 - 1 - - - PENDSVCLR - PendSV clear-pending bit - 27 - 1 - - - PENDSVSET - PendSV set-pending bit - 28 - 1 - - - NMIPENDSET - NMI set-pending bit. - 31 - 1 - - - - - VTOR - VTOR - Vector table offset register - 0x8 - 0x20 - read-write - 0x00000000 - - - TBLOFF - Vector table base offset field - 9 - 21 - - - - - AIRCR - AIRCR - Application interrupt and reset control register - 0xC - 0x20 - read-write - 0x00000000 - - - VECTRESET - VECTRESET - 0 - 1 - - - VECTCLRACTIVE - VECTCLRACTIVE - 1 - 1 - - - SYSRESETREQ - SYSRESETREQ - 2 - 1 - - - PRIGROUP - PRIGROUP - 8 - 3 - - - ENDIANESS - ENDIANESS - 15 - 1 - - - VECTKEYSTAT - Register key - 16 - 16 - - - - - SCR - SCR - System control register - 0x10 - 0x20 - read-write - 0x00000000 - - - SLEEPONEXIT - SLEEPONEXIT - 1 - 1 - - - SLEEPDEEP - SLEEPDEEP - 2 - 1 - - - SEVEONPEND - Send Event on Pending bit - 4 - 1 - - - - - CCR - CCR - Configuration and control register - 0x14 - 0x20 - read-write - 0x00000000 - - - NONBASETHRDENA - Configures how the processor enters Thread mode - 0 - 1 - - - USERSETMPEND - USERSETMPEND - 1 - 1 - - - UNALIGN__TRP - UNALIGN_ TRP - 3 - 1 - - - DIV_0_TRP - DIV_0_TRP - 4 - 1 - - - BFHFNMIGN - BFHFNMIGN - 8 - 1 - - - STKALIGN - STKALIGN - 9 - 1 - - - - - SHPR1 - SHPR1 - System handler priority registers - 0x18 - 0x20 - read-write - 0x00000000 - - - PRI_4 - Priority of system handler 4 - 0 - 8 - - - PRI_5 - Priority of system handler 5 - 8 - 8 - - - PRI_6 - Priority of system handler 6 - 16 - 8 - - - - - SHPR2 - SHPR2 - System handler priority registers - 0x1C - 0x20 - read-write - 0x00000000 - - - PRI_11 - Priority of system handler 11 - 24 - 8 - - - - - SHPR3 - SHPR3 - System handler priority registers - 0x20 - 0x20 - read-write - 0x00000000 - - - PRI_14 - Priority of system handler 14 - 16 - 8 - - - PRI_15 - Priority of system handler 15 - 24 - 8 - - - - - SHCSR - SHCSR - System handler control and state register - 0x24 - 0x20 - read-write - 0x00000000 - - - MEMFAULTACT - Memory management fault exception active bit - 0 - 1 - - - BUSFAULTACT - Bus fault exception active bit - 1 - 1 - - - USGFAULTACT - Usage fault exception active bit - 3 - 1 - - - SVCALLACT - SVC call active bit - 7 - 1 - - - MONITORACT - Debug monitor active bit - 8 - 1 - - - PENDSVACT - PendSV exception active bit - 10 - 1 - - - SYSTICKACT - SysTick exception active bit - 11 - 1 - - - USGFAULTPENDED - Usage fault exception pending bit - 12 - 1 - - - MEMFAULTPENDED - Memory management fault exception pending bit - 13 - 1 - - - BUSFAULTPENDED - Bus fault exception pending bit - 14 - 1 - - - SVCALLPENDED - SVC call pending bit - 15 - 1 - - - MEMFAULTENA - Memory management fault enable bit - 16 - 1 - - - BUSFAULTENA - Bus fault enable bit - 17 - 1 - - - USGFAULTENA - Usage fault enable bit - 18 - 1 - - - - - CFSR_UFSR_BFSR_MMFSR - CFSR_UFSR_BFSR_MMFSR - Configurable fault status register - 0x28 - 0x20 - read-write - 0x00000000 - - - IACCVIOL - Instruction access violation flag - 1 - 1 - - - MUNSTKERR - Memory manager fault on unstacking for a return from exception - 3 - 1 - - - MSTKERR - Memory manager fault on stacking for exception entry. - 4 - 1 - - - MLSPERR - MLSPERR - 5 - 1 - - - MMARVALID - Memory Management Fault Address Register (MMAR) valid flag - 7 - 1 - - - IBUSERR - Instruction bus error - 8 - 1 - - - PRECISERR - Precise data bus error - 9 - 1 - - - IMPRECISERR - Imprecise data bus error - 10 - 1 - - - UNSTKERR - Bus fault on unstacking for a return from exception - 11 - 1 - - - STKERR - Bus fault on stacking for exception entry - 12 - 1 - - - LSPERR - Bus fault on floating-point lazy state preservation - 13 - 1 - - - BFARVALID - Bus Fault Address Register (BFAR) valid flag - 15 - 1 - - - UNDEFINSTR - Undefined instruction usage fault - 16 - 1 - - - INVSTATE - Invalid state usage fault - 17 - 1 - - - INVPC - Invalid PC load usage fault - 18 - 1 - - - NOCP - No coprocessor usage fault. - 19 - 1 - - - UNALIGNED - Unaligned access usage fault - 24 - 1 - - - DIVBYZERO - Divide by zero usage fault - 25 - 1 - - - - - HFSR - HFSR - Hard fault status register - 0x2C - 0x20 - read-write - 0x00000000 - - - VECTTBL - Vector table hard fault - 1 - 1 - - - FORCED - Forced hard fault - 30 - 1 - - - DEBUG_VT - Reserved for Debug use - 31 - 1 - - - - - MMFAR - MMFAR - Memory management fault address register - 0x34 - 0x20 - read-write - 0x00000000 - - - MMFAR - Memory management fault address - 0 - 32 - - - - - BFAR - BFAR - Bus fault address register - 0x38 - 0x20 - read-write - 0x00000000 - - - BFAR - Bus fault address - 0 - 32 - - - - - AFSR - AFSR - Auxiliary fault status register - 0x3C - 0x20 - read-write - 0x00000000 - - - IMPDEF - Implementation defined - 0 - 32 - - - - - - - STK - SysTick timer - STK - 0xE000E010 - - 0x0 - 0x11 - registers - - - - CTRL - CTRL - SysTick control and status register - 0x0 - 0x20 - read-write - 0X00000000 - - - ENABLE - Counter enable - 0 - 1 - - - TICKINT - SysTick exception request enable - 1 - 1 - - - CLKSOURCE - Clock source selection - 2 - 1 - - - COUNTFLAG - COUNTFLAG - 16 - 1 - - - - - LOAD - LOAD - SysTick reload value register - 0x4 - 0x20 - read-write - 0X00000000 - - - RELOAD - RELOAD value - 0 - 24 - - - - - VAL - VAL - SysTick current value register - 0x8 - 0x20 - read-write - 0X00000000 - - - CURRENT - Current counter value - 0 - 24 - - - - - CALIB - CALIB - SysTick calibration value register - 0xC - 0x20 - read-write - 0X00000000 - - - TENMS - Calibration value - 0 - 24 - - - SKEW - SKEW flag: Indicates whether the TENMS value is exact - 30 - 1 - - - NOREF - NOREF flag. Reads as zero - 31 - 1 - - - - - - - MPU - Memory protection unit - MPU - 0xE000ED90 - - 0x0 - 0x15 - registers - - - - MPU_TYPER - MPU_TYPER - MPU type register - 0x0 - 0x20 - read-only - 0X00000800 - - - SEPARATE - Separate flag - 0 - 1 - - - DREGION - Number of MPU data regions - 8 - 8 - - - IREGION - Number of MPU instruction regions - 16 - 8 - - - - - MPU_CTRL - MPU_CTRL - MPU control register - 0x4 - 0x20 - read-only - 0X00000000 - - - ENABLE - Enables the MPU - 0 - 1 - - - HFNMIENA - Enables the operation of MPU during hard fault - 1 - 1 - - - PRIVDEFENA - Enable priviliged software access to default memory map - 2 - 1 - - - - - MPU_RNR - MPU_RNR - MPU region number register - 0x8 - 0x20 - read-write - 0X00000000 - - - REGION - MPU region - 0 - 8 - - - - - MPU_RBAR - MPU_RBAR - MPU region base address register - 0xC - 0x20 - read-write - 0X00000000 - - - REGION - MPU region field - 0 - 4 - - - VALID - MPU region number valid - 4 - 1 - - - ADDR - Region base address field - 5 - 27 - - - - - MPU_RASR - MPU_RASR - MPU region attribute and size register - 0x10 - 0x20 - read-write - 0X00000000 - - - ENABLE - Region enable bit. - 0 - 1 - - - SIZE - Size of the MPU protection region - 1 - 5 - - - SRD - Subregion disable bits - 8 - 8 - - - B - memory attribute - 16 - 1 - - - C - memory attribute - 17 - 1 - - - S - Shareable memory attribute - 18 - 1 - - - TEX - memory attribute - 19 - 3 - - - AP - Access permission - 24 - 3 - - - XN - Instruction access disable bit - 28 - 1 - - - - - - - FPU - Floting point unit - FPU - 0xE000EF34 - - 0x0 - 0xD - registers - - - FPU - Floating point unit interrupt - 54 - - - - FPCCR - FPCCR - Floating-point context control register - 0x0 - 0x20 - read-write - 0x00000000 - - - LSPACT - LSPACT - 0 - 1 - - - USER - USER - 1 - 1 - - - THREAD - THREAD - 3 - 1 - - - HFRDY - HFRDY - 4 - 1 - - - MMRDY - MMRDY - 5 - 1 - - - BFRDY - BFRDY - 6 - 1 - - - MONRDY - MONRDY - 8 - 1 - - - LSPEN - LSPEN - 30 - 1 - - - ASPEN - ASPEN - 31 - 1 - - - - - FPCAR - FPCAR - Floating-point context address register - 0x4 - 0x20 - read-write - 0x00000000 - - - ADDRESS - Location of unpopulated floating-point - 3 - 29 - - - - - FPSCR - FPSCR - Floating-point status control register - 0x8 - 0x20 - read-write - 0x00000000 - - - IOC - Invalid operation cumulative exception bit - 0 - 1 - - - DZC - Division by zero cumulative exception bit. - 1 - 1 - - - OFC - Overflow cumulative exception bit - 2 - 1 - - - UFC - Underflow cumulative exception bit - 3 - 1 - - - IXC - Inexact cumulative exception bit - 4 - 1 - - - IDC - Input denormal cumulative exception bit. - 7 - 1 - - - RMode - Rounding Mode control field - 22 - 2 - - - FZ - Flush-to-zero mode control bit: - 24 - 1 - - - DN - Default NaN mode control bit - 25 - 1 - - - AHP - Alternative half-precision control bit - 26 - 1 - - - V - Overflow condition code flag - 28 - 1 - - - C - Carry condition code flag - 29 - 1 - - - Z - Zero condition code flag - 30 - 1 - - - N - Negative condition code flag - 31 - 1 - - - - - - - NVIC - Nested Vectored Interrupt Controller - NVIC - 0xE000E100 - - 0x0 - 0x351 - registers - - - - ISER0 - ISER0 - Interrupt Set-Enable Register - 0x0 - 0x20 - read-write - 0x00000000 - - - SETENA - SETENA - 0 - 32 - - - - - ISER1 - ISER1 - Interrupt Set-Enable Register - 0x4 - 0x20 - read-write - 0x00000000 - - - SETENA - SETENA - 0 - 32 - - - - - ICER0 - ICER0 - Interrupt Clear-Enable Register - 0x80 - 0x20 - read-write - 0x00000000 - - - CLRENA - CLRENA - 0 - 32 - - - - - ICER1 - ICER1 - Interrupt Clear-Enable Register - 0x84 - 0x20 - read-write - 0x00000000 - - - CLRENA - CLRENA - 0 - 32 - - - - - ISPR0 - ISPR0 - Interrupt Set-Pending Register - 0x100 - 0x20 - read-write - 0x00000000 - - - SETPEND - SETPEND - 0 - 32 - - - - - ISPR1 - ISPR1 - Interrupt Set-Pending Register - 0x104 - 0x20 - read-write - 0x00000000 - - - SETPEND - SETPEND - 0 - 32 - - - - - ICPR0 - ICPR0 - Interrupt Clear-Pending Register - 0x180 - 0x20 - read-write - 0x00000000 - - - CLRPEND - CLRPEND - 0 - 32 - - - - - ICPR1 - ICPR1 - Interrupt Clear-Pending Register - 0x184 - 0x20 - read-write - 0x00000000 - - - CLRPEND - CLRPEND - 0 - 32 - - - - - IABR0 - IABR0 - Interrupt Active Bit Register - 0x200 - 0x20 - read-only - 0x00000000 - - - ACTIVE - ACTIVE - 0 - 32 - - - - - IABR1 - IABR1 - Interrupt Active Bit Register - 0x204 - 0x20 - read-only - 0x00000000 - - - ACTIVE - ACTIVE - 0 - 32 - - - - - IPR0 - IPR0 - Interrupt Priority Register - 0x300 - 0x20 - read-write - 0x00000000 - - - IPR_N0 - IPR_N0 - 0 - 8 - - - IPR_N1 - IPR_N1 - 8 - 8 - - - IPR_N2 - IPR_N2 - 16 - 8 - - - IPR_N3 - IPR_N3 - 24 - 8 - - - - - IPR1 - IPR1 - Interrupt Priority Register - 0x304 - 0x20 - read-write - 0x00000000 - - - IPR_N0 - IPR_N0 - 0 - 8 - - - IPR_N1 - IPR_N1 - 8 - 8 - - - IPR_N2 - IPR_N2 - 16 - 8 - - - IPR_N3 - IPR_N3 - 24 - 8 - - - - - IPR2 - IPR2 - Interrupt Priority Register - 0x308 - 0x20 - read-write - 0x00000000 - - - IPR_N0 - IPR_N0 - 0 - 8 - - - IPR_N1 - IPR_N1 - 8 - 8 - - - IPR_N2 - IPR_N2 - 16 - 8 - - - IPR_N3 - IPR_N3 - 24 - 8 - - - - - IPR3 - IPR3 - Interrupt Priority Register - 0x30C - 0x20 - read-write - 0x00000000 - - - IPR_N0 - IPR_N0 - 0 - 8 - - - IPR_N1 - IPR_N1 - 8 - 8 - - - IPR_N2 - IPR_N2 - 16 - 8 - - - IPR_N3 - IPR_N3 - 24 - 8 - - - - - IPR4 - IPR4 - Interrupt Priority Register - 0x310 - 0x20 - read-write - 0x00000000 - - - IPR_N0 - IPR_N0 - 0 - 8 - - - IPR_N1 - IPR_N1 - 8 - 8 - - - IPR_N2 - IPR_N2 - 16 - 8 - - - IPR_N3 - IPR_N3 - 24 - 8 - - - - - IPR5 - IPR5 - Interrupt Priority Register - 0x314 - 0x20 - read-write - 0x00000000 - - - IPR_N0 - IPR_N0 - 0 - 8 - - - IPR_N1 - IPR_N1 - 8 - 8 - - - IPR_N2 - IPR_N2 - 16 - 8 - - - IPR_N3 - IPR_N3 - 24 - 8 - - - - - IPR6 - IPR6 - Interrupt Priority Register - 0x318 - 0x20 - read-write - 0x00000000 - - - IPR_N0 - IPR_N0 - 0 - 8 - - - IPR_N1 - IPR_N1 - 8 - 8 - - - IPR_N2 - IPR_N2 - 16 - 8 - - - IPR_N3 - IPR_N3 - 24 - 8 - - - - - IPR7 - IPR7 - Interrupt Priority Register - 0x31C - 0x20 - read-write - 0x00000000 - - - IPR_N0 - IPR_N0 - 0 - 8 - - - IPR_N1 - IPR_N1 - 8 - 8 - - - IPR_N2 - IPR_N2 - 16 - 8 - - - IPR_N3 - IPR_N3 - 24 - 8 - - - - - IPR8 - IPR8 - Interrupt Priority Register - 0x320 - 0x20 - read-write - 0x00000000 - - - IPR_N0 - IPR_N0 - 0 - 8 - - - IPR_N1 - IPR_N1 - 8 - 8 - - - IPR_N2 - IPR_N2 - 16 - 8 - - - IPR_N3 - IPR_N3 - 24 - 8 - - - - - IPR9 - IPR9 - Interrupt Priority Register - 0x324 - 0x20 - read-write - 0x00000000 - - - IPR_N0 - IPR_N0 - 0 - 8 - - - IPR_N1 - IPR_N1 - 8 - 8 - - - IPR_N2 - IPR_N2 - 16 - 8 - - - IPR_N3 - IPR_N3 - 24 - 8 - - - - - IPR10 - IPR10 - Interrupt Priority Register - 0x328 - 0x20 - read-write - 0x00000000 - - - IPR_N0 - IPR_N0 - 0 - 8 - - - IPR_N1 - IPR_N1 - 8 - 8 - - - IPR_N2 - IPR_N2 - 16 - 8 - - - IPR_N3 - IPR_N3 - 24 - 8 - - - - - IPR11 - IPR11 - Interrupt Priority Register - 0x32C - 0x20 - read-write - 0x00000000 - - - IPR_N0 - IPR_N0 - 0 - 8 - - - IPR_N1 - IPR_N1 - 8 - 8 - - - IPR_N2 - IPR_N2 - 16 - 8 - - - IPR_N3 - IPR_N3 - 24 - 8 - - - - - IPR12 - IPR12 - Interrupt Priority Register - 0x330 - 0x20 - read-write - 0x00000000 - - - IPR_N0 - IPR_N0 - 0 - 8 - - - IPR_N1 - IPR_N1 - 8 - 8 - - - IPR_N2 - IPR_N2 - 16 - 8 - - - IPR_N3 - IPR_N3 - 24 - 8 - - - - - IPR13 - IPR13 - Interrupt Priority Register - 0x334 - 0x20 - read-write - 0x00000000 - - - IPR_N0 - IPR_N0 - 0 - 8 - - - IPR_N1 - IPR_N1 - 8 - 8 - - - IPR_N2 - IPR_N2 - 16 - 8 - - - IPR_N3 - IPR_N3 - 24 - 8 - - - - - IPR14 - IPR14 - Interrupt Priority Register - 0x338 - 0x20 - read-write - 0x00000000 - - - IPR_N0 - IPR_N0 - 0 - 8 - - - IPR_N1 - IPR_N1 - 8 - 8 - - - IPR_N2 - IPR_N2 - 16 - 8 - - - IPR_N3 - IPR_N3 - 24 - 8 - - - - - IPR15 - IPR15 - Interrupt Priority Register - 0x33C - 0x20 - read-write - 0x00000000 - - - IPR_N0 - IPR_N0 - 0 - 8 - - - IPR_N1 - IPR_N1 - 8 - 8 - - - IPR_N2 - IPR_N2 - 16 - 8 - - - IPR_N3 - IPR_N3 - 24 - 8 - - - - - IPR16 - IPR16 - Interrupt Priority Register - 0x340 - 0x20 - read-write - 0x00000000 - - - IPR_N0 - IPR_N0 - 0 - 8 - - - IPR_N1 - IPR_N1 - 8 - 8 - - - IPR_N2 - IPR_N2 - 16 - 8 - - - IPR_N3 - IPR_N3 - 24 - 8 - - - - - IPR17 - IPR17 - Interrupt Priority Register - 0x344 - 0x20 - read-write - 0x00000000 - - - IPR_N0 - IPR_N0 - 0 - 8 - - - IPR_N1 - IPR_N1 - 8 - 8 - - - IPR_N2 - IPR_N2 - 16 - 8 - - - IPR_N3 - IPR_N3 - 24 - 8 - - - - - - - NVIC_STIR - Nested vectored interrupt controller - NVIC - 0xE000EF00 - - 0x0 - 0x5 - registers - - - - STIR - STIR - Software trigger interrupt register - 0x0 - 0x20 - read-write - 0x00000000 - - - INTID - Software generated interrupt ID - 0 - 9 - - - - - - - SCB_ACTRL - System control block ACTLR - SCB - 0xE000E008 - - 0x0 - 0x5 - registers - - - - ACTRL - ACTRL - Auxiliary control register - 0x0 - 0x20 - read-write - 0x00000000 - - - DISMCYCINT - DISMCYCINT - 0 - 1 - - - DISDEFWBUF - DISDEFWBUF - 1 - 1 - - - DISFOLD - DISFOLD - 2 - 1 - - - DISFPCA - DISFPCA - 8 - 1 - - - DISOOFP - DISOOFP - 9 - 1 - - - - - - - FPU_CPACR - Floating point unit CPACR - FPU - 0xE000ED88 - - 0x0 - 0x5 - registers - - - - CPACR - CPACR - Coprocessor access control register - 0x0 - 0x20 - read-write - 0x0000000 - - - CP - CP - 20 - 4 - - - - - - - +STM32WB55_CM41.9STM32WB55_CM4CM4r0p1littletruetrue4false8320x200x00xFFFFFFFFDMA1Direct memory access controllerDMA0x400200000x00x400registersDMA1_Channel1DMA1 Channel1 global interrupt11DMA1_Channel2DMA1 Channel2 global interrupt12DMA1_Channel3DMA1 Channel3 interrupt13DMA1_Channel4DMA1 Channel4 interrupt14DMA1_Channel5DMA1 Channel5 interrupt15DMA1_Channel6DMA1 Channel6 interrupt16DMA1_Channel7DMA1 Channel 7 interrupt17ISRISRinterrupt status register0x00x20read-only0x00000000TEIF7Channel x transfer error flag (x = 1 ..7)271HTIF7Channel x half transfer flag (x = 1 ..7)261TCIF7Channel x transfer complete flag (x = 1 ..7)251GIF7Channel x global interrupt flag (x = 1 ..7)241TEIF6Channel x transfer error flag (x = 1 ..7)231HTIF6Channel x half transfer flag (x = 1 ..7)221TCIF6Channel x transfer complete flag (x = 1 ..7)211GIF6Channel x global interrupt flag (x = 1 ..7)201TEIF5Channel x transfer error flag (x = 1 ..7)191HTIF5Channel x half transfer flag (x = 1 ..7)181TCIF5Channel x transfer complete flag (x = 1 ..7)171GIF5Channel x global interrupt flag (x = 1 ..7)161TEIF4Channel x transfer error flag (x = 1 ..7)151HTIF4Channel x half transfer flag (x = 1 ..7)141TCIF4Channel x transfer complete flag (x = 1 ..7)131GIF4Channel x global interrupt flag (x = 1 ..7)121TEIF3Channel x transfer error flag (x = 1 ..7)111HTIF3Channel x half transfer flag (x = 1 ..7)101TCIF3Channel x transfer complete flag (x = 1 ..7)91GIF3Channel x global interrupt flag (x = 1 ..7)81TEIF2Channel x transfer error flag (x = 1 ..7)71HTIF2Channel x half transfer flag (x = 1 ..7)61TCIF2Channel x transfer complete flag (x = 1 ..7)51GIF2Channel x global interrupt flag (x = 1 ..7)41TEIF1Channel x transfer error flag (x = 1 ..7)31HTIF1Channel x half transfer flag (x = 1 ..7)21TCIF1Channel x transfer complete flag (x = 1 ..7)11GIF1Channel x global interrupt flag (x = 1 ..7)01IFCRIFCRinterrupt flag clear register0x40x20write-only0x00000000CTEIF7Channel x transfer error clear (x = 1 ..7)271CHTIF7Channel x half transfer clear (x = 1 ..7)261CTCIF7Channel x transfer complete clear (x = 1 ..7)251CGIF7Channel x global interrupt clear (x = 1 ..7)241CTEIF6Channel x transfer error clear (x = 1 ..7)231CHTIF6Channel x half transfer clear (x = 1 ..7)221CTCIF6Channel x transfer complete clear (x = 1 ..7)211CGIF6Channel x global interrupt clear (x = 1 ..7)201CTEIF5Channel x transfer error clear (x = 1 ..7)191CHTIF5Channel x half transfer clear (x = 1 ..7)181CTCIF5Channel x transfer complete clear (x = 1 ..7)171CGIF5Channel x global interrupt clear (x = 1 ..7)161CTEIF4Channel x transfer error clear (x = 1 ..7)151CHTIF4Channel x half transfer clear (x = 1 ..7)141CTCIF4Channel x transfer complete clear (x = 1 ..7)131CGIF4Channel x global interrupt clear (x = 1 ..7)121CTEIF3Channel x transfer error clear (x = 1 ..7)111CHTIF3Channel x half transfer clear (x = 1 ..7)101CTCIF3Channel x transfer complete clear (x = 1 ..7)91CGIF3Channel x global interrupt clear (x = 1 ..7)81CTEIF2Channel x transfer error clear (x = 1 ..7)71CHTIF2Channel x half transfer clear (x = 1 ..7)61CTCIF2Channel x transfer complete clear (x = 1 ..7)51CGIF2Channel x global interrupt clear (x = 1 ..7)41CTEIF1Channel x transfer error clear (x = 1 ..7)31CHTIF1Channel x half transfer clear (x = 1 ..7)21CTCIF1Channel x transfer complete clear (x = 1 ..7)11CGIF1Channel x global interrupt clear (x = 1 ..7)01CCR1CCR1channel x configuration register0x80x20read-write0x00000000MEM2MEMMemory to memory mode141PLChannel priority level122MSIZEMemory size102PSIZEPeripheral size82MINCMemory increment mode71PINCPeripheral increment mode61CIRCCircular mode51DIRData transfer direction41TEIETransfer error interrupt enable31HTIEHalf transfer interrupt enable21TCIETransfer complete interrupt enable11ENChannel enable01CNDTR1CNDTR1channel x number of data register0xC0x20read-write0x00000000NDTNumber of data to transfer016CPAR1CPAR1channel x peripheral address register0x100x20read-write0x00000000PAPeripheral address032CMAR1CMAR1channel x memory address register0x140x20read-write0x00000000MAMemory address032CCR2CCR2channel x configuration register0x1C0x20read-write0x00000000MEM2MEMMemory to memory mode141PLChannel priority level122MSIZEMemory size102PSIZEPeripheral size82MINCMemory increment mode71PINCPeripheral increment mode61CIRCCircular mode51DIRData transfer direction41TEIETransfer error interrupt enable31HTIEHalf transfer interrupt enable21TCIETransfer complete interrupt enable11ENChannel enable01CNDTR2CNDTR2channel x number of data register0x200x20read-write0x00000000NDTNumber of data to transfer016CPAR2CPAR2channel x peripheral address register0x240x20read-write0x00000000PAPeripheral address032CMAR2CMAR2channel x memory address register0x280x20read-write0x00000000MAMemory address032CCR3CCR3channel x configuration register0x300x20read-write0x00000000MEM2MEMMemory to memory mode141PLChannel priority level122MSIZEMemory size102PSIZEPeripheral size82MINCMemory increment mode71PINCPeripheral increment mode61CIRCCircular mode51DIRData transfer direction41TEIETransfer error interrupt enable31HTIEHalf transfer interrupt enable21TCIETransfer complete interrupt enable11ENChannel enable01CNDTR3CNDTR3channel x number of data register0x340x20read-write0x00000000NDTNumber of data to transfer016CPAR3CPAR3channel x peripheral address register0x380x20read-write0x00000000PAPeripheral address032CMAR3CMAR3channel x memory address register0x3C0x20read-write0x00000000MAMemory address032CCR4CCR4channel x configuration register0x440x20read-write0x00000000MEM2MEMMemory to memory mode141PLChannel priority level122MSIZEMemory size102PSIZEPeripheral size82MINCMemory increment mode71PINCPeripheral increment mode61CIRCCircular mode51DIRData transfer direction41TEIETransfer error interrupt enable31HTIEHalf transfer interrupt enable21TCIETransfer complete interrupt enable11ENChannel enable01CNDTR4CNDTR4channel x number of data register0x480x20read-write0x00000000NDTNumber of data to transfer016CPAR4CPAR4channel x peripheral address register0x4C0x20read-write0x00000000PAPeripheral address032CMAR4CMAR4channel x memory address register0x500x20read-write0x00000000MAMemory address032CCR5CCR5channel x configuration register0x580x20read-write0x00000000MEM2MEMMemory to memory mode141PLChannel priority level122MSIZEMemory size102PSIZEPeripheral size82MINCMemory increment mode71PINCPeripheral increment mode61CIRCCircular mode51DIRData transfer direction41TEIETransfer error interrupt enable31HTIEHalf transfer interrupt enable21TCIETransfer complete interrupt enable11ENChannel enable01CNDTR5CNDTR5channel x number of data register0x5C0x20read-write0x00000000NDTNumber of data to transfer016CPAR5CPAR5channel x peripheral address register0x600x20read-write0x00000000PAPeripheral address032CMAR5CMAR5channel x memory address register0x640x20read-write0x00000000MAMemory address032CCR6CCR6channel x configuration register0x6C0x20read-write0x00000000MEM2MEMMemory to memory mode141PLChannel priority level122MSIZEMemory size102PSIZEPeripheral size82MINCMemory increment mode71PINCPeripheral increment mode61CIRCCircular mode51DIRData transfer direction41TEIETransfer error interrupt enable31HTIEHalf transfer interrupt enable21TCIETransfer complete interrupt enable11ENChannel enable01CNDTR6CNDTR6channel x number of data register0x700x20read-write0x00000000NDTNumber of data to transfer016CPAR6CPAR6channel x peripheral address register0x740x20read-write0x00000000PAPeripheral address032CMAR6CMAR6channel x memory address register0x780x20read-write0x00000000MAMemory address032CCR7CCR7channel x configuration register0x800x20read-write0x00000000MEM2MEMMemory to memory mode141PLChannel priority level122MSIZEMemory size102PSIZEPeripheral size82MINCMemory increment mode71PINCPeripheral increment mode61CIRCCircular mode51DIRData transfer direction41TEIETransfer error interrupt enable31HTIEHalf transfer interrupt enable21TCIETransfer complete interrupt enable11ENChannel enable01CNDTR7CNDTR7channel x number of data register0x840x20read-write0x00000000NDTNumber of data to transfer016CPAR7CPAR7channel x peripheral address register0x880x20read-write0x00000000PAPeripheral address032CMAR7CMAR7channel x memory address register0x8C0x20read-write0x00000000MAMemory address032DMA2Direct memory access controllerDMA0x400204000x00x400registersDMA2_CH1DMA2 channel 1 interrupt55DMA2_CH2DMA2 channel 2 interrupt56DMA2_CH3DMA2 channel 3 interrupt57DMA2_CH4DMA2 channel 4 interrupt58DMA2_CH5DMA2 channel 5 interrupt59DMA2_CH6DMA2 channel 6 interrupt60DMA2_CH7DMA2 channel 7 interrupt61ISRISRinterrupt status register0x00x20read-only0x00000000TEIF7Channel x transfer error flag (x = 1 ..7)271HTIF7Channel x half transfer flag (x = 1 ..7)261TCIF7Channel x transfer complete flag (x = 1 ..7)251GIF7Channel x global interrupt flag (x = 1 ..7)241TEIF6Channel x transfer error flag (x = 1 ..7)231HTIF6Channel x half transfer flag (x = 1 ..7)221TCIF6Channel x transfer complete flag (x = 1 ..7)211GIF6Channel x global interrupt flag (x = 1 ..7)201TEIF5Channel x transfer error flag (x = 1 ..7)191HTIF5Channel x half transfer flag (x = 1 ..7)181TCIF5Channel x transfer complete flag (x = 1 ..7)171GIF5Channel x global interrupt flag (x = 1 ..7)161TEIF4Channel x transfer error flag (x = 1 ..7)151HTIF4Channel x half transfer flag (x = 1 ..7)141TCIF4Channel x transfer complete flag (x = 1 ..7)131GIF4Channel x global interrupt flag (x = 1 ..7)121TEIF3Channel x transfer error flag (x = 1 ..7)111HTIF3Channel x half transfer flag (x = 1 ..7)101TCIF3Channel x transfer complete flag (x = 1 ..7)91GIF3Channel x global interrupt flag (x = 1 ..7)81TEIF2Channel x transfer error flag (x = 1 ..7)71HTIF2Channel x half transfer flag (x = 1 ..7)61TCIF2Channel x transfer complete flag (x = 1 ..7)51GIF2Channel x global interrupt flag (x = 1 ..7)41TEIF1Channel x transfer error flag (x = 1 ..7)31HTIF1Channel x half transfer flag (x = 1 ..7)21TCIF1Channel x transfer complete flag (x = 1 ..7)11GIF1Channel x global interrupt flag (x = 1 ..7)01IFCRIFCRinterrupt flag clear register0x40x20write-only0x00000000CTEIF7Channel x transfer error clear (x = 1 ..7)271CHTIF7Channel x half transfer clear (x = 1 ..7)261CTCIF7Channel x transfer complete clear (x = 1 ..7)251CGIF7Channel x global interrupt clear (x = 1 ..7)241CTEIF6Channel x transfer error clear (x = 1 ..7)231CHTIF6Channel x half transfer clear (x = 1 ..7)221CTCIF6Channel x transfer complete clear (x = 1 ..7)211CGIF6Channel x global interrupt clear (x = 1 ..7)201CTEIF5Channel x transfer error clear (x = 1 ..7)191CHTIF5Channel x half transfer clear (x = 1 ..7)181CTCIF5Channel x transfer complete clear (x = 1 ..7)171CGIF5Channel x global interrupt clear (x = 1 ..7)161CTEIF4Channel x transfer error clear (x = 1 ..7)151CHTIF4Channel x half transfer clear (x = 1 ..7)141CTCIF4Channel x transfer complete clear (x = 1 ..7)131CGIF4Channel x global interrupt clear (x = 1 ..7)121CTEIF3Channel x transfer error clear (x = 1 ..7)111CHTIF3Channel x half transfer clear (x = 1 ..7)101CTCIF3Channel x transfer complete clear (x = 1 ..7)91CGIF3Channel x global interrupt clear (x = 1 ..7)81CTEIF2Channel x transfer error clear (x = 1 ..7)71CHTIF2Channel x half transfer clear (x = 1 ..7)61CTCIF2Channel x transfer complete clear (x = 1 ..7)51CGIF2Channel x global interrupt clear (x = 1 ..7)41CTEIF1Channel x transfer error clear (x = 1 ..7)31CHTIF1Channel x half transfer clear (x = 1 ..7)21CTCIF1Channel x transfer complete clear (x = 1 ..7)11CGIF1Channel x global interrupt clear (x = 1 ..7)01CCR1CCR1channel x configuration register0x80x20read-write0x00000000MEM2MEMMemory to memory mode141PLChannel priority level122MSIZEMemory size102PSIZEPeripheral size82MINCMemory increment mode71PINCPeripheral increment mode61CIRCCircular mode51DIRData transfer direction41TEIETransfer error interrupt enable31HTIEHalf transfer interrupt enable21TCIETransfer complete interrupt enable11ENChannel enable01CNDTR1CNDTR1channel x number of data register0xC0x20read-write0x00000000NDTNumber of data to transfer016CPAR1CPAR1channel x peripheral address register0x100x20read-write0x00000000PAPeripheral address032CMAR1CMAR1channel x memory address register0x140x20read-write0x00000000MAMemory address032CCR2CCR2channel x configuration register0x1C0x20read-write0x00000000MEM2MEMMemory to memory mode141PLChannel priority level122MSIZEMemory size102PSIZEPeripheral size82MINCMemory increment mode71PINCPeripheral increment mode61CIRCCircular mode51DIRData transfer direction41TEIETransfer error interrupt enable31HTIEHalf transfer interrupt enable21TCIETransfer complete interrupt enable11ENChannel enable01CNDTR2CNDTR2channel x number of data register0x200x20read-write0x00000000NDTNumber of data to transfer016CPAR2CPAR2channel x peripheral address register0x240x20read-write0x00000000PAPeripheral address032CMAR2CMAR2channel x memory address register0x280x20read-write0x00000000MAMemory address032CCR3CCR3channel x configuration register0x300x20read-write0x00000000MEM2MEMMemory to memory mode141PLChannel priority level122MSIZEMemory size102PSIZEPeripheral size82MINCMemory increment mode71PINCPeripheral increment mode61CIRCCircular mode51DIRData transfer direction41TEIETransfer error interrupt enable31HTIEHalf transfer interrupt enable21TCIETransfer complete interrupt enable11ENChannel enable01CNDTR3CNDTR3channel x number of data register0x340x20read-write0x00000000NDTNumber of data to transfer016CPAR3CPAR3channel x peripheral address register0x380x20read-write0x00000000PAPeripheral address032CMAR3CMAR3channel x memory address register0x3C0x20read-write0x00000000MAMemory address032CCR4CCR4channel x configuration register0x440x20read-write0x00000000MEM2MEMMemory to memory mode141PLChannel priority level122MSIZEMemory size102PSIZEPeripheral size82MINCMemory increment mode71PINCPeripheral increment mode61CIRCCircular mode51DIRData transfer direction41TEIETransfer error interrupt enable31HTIEHalf transfer interrupt enable21TCIETransfer complete interrupt enable11ENChannel enable01CNDTR4CNDTR4channel x number of data register0x480x20read-write0x00000000NDTNumber of data to transfer016CPAR4CPAR4channel x peripheral address register0x4C0x20read-write0x00000000PAPeripheral address032CMAR4CMAR4channel x memory address register0x500x20read-write0x00000000MAMemory address032CCR5CCR5channel x configuration register0x580x20read-write0x00000000MEM2MEMMemory to memory mode141PLChannel priority level122MSIZEMemory size102PSIZEPeripheral size82MINCMemory increment mode71PINCPeripheral increment mode61CIRCCircular mode51DIRData transfer direction41TEIETransfer error interrupt enable31HTIEHalf transfer interrupt enable21TCIETransfer complete interrupt enable11ENChannel enable01CNDTR5CNDTR5channel x number of data register0x5C0x20read-write0x00000000NDTNumber of data to transfer016CPAR5CPAR5channel x peripheral address register0x600x20read-write0x00000000PAPeripheral address032CMAR5CMAR5channel x memory address register0x640x20read-write0x00000000MAMemory address032CCR6CCR6channel x configuration register0x6C0x20read-write0x00000000MEM2MEMMemory to memory mode141PLChannel priority level122MSIZEMemory size102PSIZEPeripheral size82MINCMemory increment mode71PINCPeripheral increment mode61CIRCCircular mode51DIRData transfer direction41TEIETransfer error interrupt enable31HTIEHalf transfer interrupt enable21TCIETransfer complete interrupt enable11ENChannel enable01CNDTR6CNDTR6channel x number of data register0x700x20read-write0x00000000NDTNumber of data to transfer016CPAR6CPAR6channel x peripheral address register0x740x20read-write0x00000000PAPeripheral address032CMAR6CMAR6channel x memory address register0x780x20read-write0x00000000MAMemory address032CCR7CCR7channel x configuration register0x800x20read-write0x00000000MEM2MEMMemory to memory mode141PLChannel priority level122MSIZEMemory size102PSIZEPeripheral size82MINCMemory increment mode71PINCPeripheral increment mode61CIRCCircular mode51DIRData transfer direction41TEIETransfer error interrupt enable31HTIEHalf transfer interrupt enable21TCIETransfer complete interrupt enable11ENChannel enable01CNDTR7CNDTR7channel x number of data register0x840x20read-write0x00000000NDTNumber of data to transfer016CPAR7CPAR7channel x peripheral address register0x880x20read-write0x00000000PAPeripheral address032CMAR7CMAR7channel x memory address register0x8C0x20read-write0x00000000MAMemory address032CSELRCSELRchannel selection register0xA80x20read-write0x00000000C7SDMA channel 7 selection244C6SDMA channel 6 selection204C5SDMA channel 5 selection164C4SDMA channel 4 selection124C3SDMA channel 3 selection84C2SDMA channel 2 selection44C1SDMA channel 1 selection04DMAMUX1Direct memory access MultiplexerDMAMUX0x400208000x00x400registersDMAMUX_OVRDMAMUX overrun interrupt62C0CRC0CRDMA Multiplexer Channel 0 Control register0x00x20read-write0x00000000SYNC_IDSYNC_ID245NBREQNb request195SPOLSync polarity172SESynchronization enable161EGEEvent Generation Enable91SOIESynchronization Overrun Interrupt Enable81DMAREQ_IDDMA Request ID08C1CRC1CRDMA Multiplexer Channel 1 Control register0x40x20read-write0x00000000SYNC_IDSYNC_ID245NBREQNb request195SPOLSync polarity172SESynchronization enable161EGEEvent Generation Enable91SOIESynchronization Overrun Interrupt Enable81DMAREQ_IDDMA Request ID08C2CRC2CRDMA Multiplexer Channel 2 Control register0x80x20read-write0x00000000SYNC_IDSYNC_ID245NBREQNb request195SPOLSync polarity172SESynchronization enable161EGEEvent Generation Enable91SOIESynchronization Overrun Interrupt Enable81DMAREQ_IDDMA Request ID08C3CRC3CRDMA Multiplexer Channel 3 Control register0xC0x20read-write0x00000000SYNC_IDSYNC_ID245NBREQNb request195SPOLSync polarity172SESynchronization enable161EGEEvent Generation Enable91SOIESynchronization Overrun Interrupt Enable81DMAREQ_IDDMA Request ID08C4CRC4CRDMA Multiplexer Channel 4 Control register0x100x20read-write0x00000000SYNC_IDSYNC_ID245NBREQNb request195SPOLSync polarity172SESynchronization enable161EGEEvent Generation Enable91SOIESynchronization Overrun Interrupt Enable81DMAREQ_IDDMA Request ID08C5CRC5CRDMA Multiplexer Channel 5 Control register0x140x20read-write0x00000000SYNC_IDSYNC_ID245NBREQNb request195SPOLSync polarity172SESynchronization enable161EGEEvent Generation Enable91SOIESynchronization Overrun Interrupt Enable81DMAREQ_IDDMA Request ID08C6CRC6CRDMA Multiplexer Channel 6 Control register0x180x20read-write0x00000000SYNC_IDSYNC_ID245NBREQNb request195SPOLSync polarity172SESynchronization enable161EGEEvent Generation Enable91SOIESynchronization Overrun Interrupt Enable81DMAREQ_IDDMA Request ID08C7CRC7CRDMA Multiplexer Channel 7 Control register0x1C0x20read-write0x00000000SYNC_IDSYNC_ID245NBREQNb request195SPOLSync polarity172SESynchronization enable161EGEEvent Generation Enable91SOIESynchronization Overrun Interrupt Enable81DMAREQ_IDDMA Request ID08C8CRC8CRDMA Multiplexer Channel 8 Control register0x200x20read-write0x00000000SYNC_IDSYNC_ID245NBREQNb request195SPOLSync polarity172SESynchronization enable161EGEEvent Generation Enable91SOIESynchronization Overrun Interrupt Enable81DMAREQ_IDDMA Request ID08C9CRC9CRDMA Multiplexer Channel 9 Control register0x240x20read-write0x00000000SYNC_IDSYNC_ID245NBREQNb request195SPOLSync polarity172SESynchronization enable161EGEEvent Generation Enable91SOIESynchronization Overrun Interrupt Enable81DMAREQ_IDDMA Request ID08C10CRC10CRDMA Multiplexer Channel 10 Control register0x280x20read-write0x00000000SYNC_IDSYNC_ID245NBREQNb request195SPOLSync polarity172SESynchronization enable161EGEEvent Generation Enable91SOIESynchronization Overrun Interrupt Enable81DMAREQ_IDDMA Request ID08C11CRC11CRDMA Multiplexer Channel 11 Control register0x2C0x20read-write0x00000000SYNC_IDSYNC_ID245NBREQNb request195SPOLSync polarity172SESynchronization enable161EGEEvent Generation Enable91SOIESynchronization Overrun Interrupt Enable81DMAREQ_IDDMA Request ID08C12CRC12CRDMA Multiplexer Channel 12 Control register0x300x20read-write0x00000000SYNC_IDSYNC_ID245NBREQNb request195SPOLSync polarity172SESynchronization enable161EGEEvent Generation Enable91SOIESynchronization Overrun Interrupt Enable81DMAREQ_IDDMA Request ID08C13CRC13CRDMA Multiplexer Channel 13 Control register0x340x20read-write0x00000000SYNC_IDSYNC_ID245NBREQNb request195SPOLSync polarity172SESynchronization enable161EGEEvent Generation Enable91SOIESynchronization Overrun Interrupt Enable81DMAREQ_IDDMA Request ID08CSRCSRDMA Multiplexer Channel Status register0x800x20read-only0x00000000SOF0Synchronization Overrun Flag 001SOF1Synchronization Overrun Flag 111SOF2Synchronization Overrun Flag 221SOF3Synchronization Overrun Flag 331SOF4Synchronization Overrun Flag 441SOF5Synchronization Overrun Flag 551SOF6Synchronization Overrun Flag 661SOF7Synchronization Overrun Flag 771SOF8Synchronization Overrun Flag 881SOF9Synchronization Overrun Flag 991SOF10Synchronization Overrun Flag 10101SOF11Synchronization Overrun Flag 11111SOF12Synchronization Overrun Flag 12121SOF13Synchronization Overrun Flag 13131CFRCFRDMA Channel Clear Flag Register0x840x20write-only0x00000000CSOF0Synchronization Clear Overrun Flag 001CSOF1Synchronization Clear Overrun Flag 111CSOF2Synchronization Clear Overrun Flag 221CSOF3Synchronization Clear Overrun Flag 331CSOF4Synchronization Clear Overrun Flag 441CSOF5Synchronization Clear Overrun Flag 551CSOF6Synchronization Clear Overrun Flag 661CSOF7Synchronization Clear Overrun Flag 771CSOF8Synchronization Clear Overrun Flag 881CSOF9Synchronization Clear Overrun Flag 991CSOF10Synchronization Clear Overrun Flag 10101CSOF11Synchronization Clear Overrun Flag 11111CSOF12Synchronization Clear Overrun Flag 12121CSOF13Synchronization Clear Overrun Flag 13131RG0CRRG0CRDMA Request Generator 0 Control Register0x1000x20read-write0x00000000GNBREQNumber of Request195GPOLGeneration Polarity172GEGeneration Enable161OIEOverrun Interrupt Enable81SIG_IDSignal ID05RG1CRRG1CRDMA Request Generator 1 Control Register0x1040x20read-write0x00000000GNBREQNumber of Request195GPOLGeneration Polarity172GEGeneration Enable161OIEOverrun Interrupt Enable81SIG_IDSignal ID05RG2CRRG2CRDMA Request Generator 2 Control Register0x1080x20read-write0x00000000GNBREQNumber of Request195GPOLGeneration Polarity172GEGeneration Enable161OIEOverrun Interrupt Enable81SIG_IDSignal ID05RG3CRRG3CRDMA Request Generator 3 Control Register0x10C0x20read-write0x00000000GNBREQNumber of Request195GPOLGeneration Polarity172GEGeneration Enable161OIEOverrun Interrupt Enable81SIG_IDSignal ID05RGSRRGSRDMA Request Generator Status Register0x1400x20read-only0x00000000OF0Generator Overrun Flag 001OF1Generator Overrun Flag 111OF2Generator Overrun Flag 221OF3Generator Overrun Flag 331RGCFRRGCFRDMA Request Generator Clear Flag Register0x1440x20write-only0x00000000COF0Clear trigger Overrun Flag 001COF1Clear trigger Overrun Flag 111COF2Clear trigger Overrun Flag 221COF3Clear trigger Overrun Flag 331CRCCyclic redundancy check calculation unitCRC0x400230000x00x400registersDRDRData register0x00x20read-write0xFFFFFFFFDRData register bits032IDRIDRIndependent data register0x40x20read-write0x00000000IDRGeneral-purpose 32-bit data register bits032CRCRControl register0x80x20read-write0x00000000REV_OUTReverse output data71REV_INReverse input data52POLYSIZEPolynomial size32RESETRESET bit01INITINITInitial CRC value0x100x20read-write0xFFFFFFFFCRC_INITProgrammable initial CRC value032POLPOLpolynomial0x140x20read-write0x04C11DB7POLProgrammable polynomial032LCDLiquid crystal display controllerLCD0x400024000x00x400registersLCDLCD global interrupt49CRCRcontrol register0x00x20read-write0x00000000BIASBias selector52DUTYDuty selection23VSELVoltage source selection11LCDENLCD controller enable01MUX_SEGMux segment enable71BUFENVoltage output buffer enable81FCRFCRframe control register0x40x20read-write0x00000000PSPS 16-bit prescaler224DIVDIV clock divider184BLINKBlink mode selection162BLINKFBlink frequency selection133CCContrast control103DEADDead time duration73PONPulse ON duration43UDDIEUpdate display done interrupt enable31SOFIEStart of frame interrupt enable11HDHigh drive enable01SRSRstatus register0x80x200x00000020FCRSFLCD Frame Control Register Synchronization flag51read-onlyRDYReady flag41read-onlyUDDUpdate Display Done31read-onlyUDRUpdate display request21read-writeSOFStart of frame flag11read-onlyENSENS01read-onlyCLRCLRclear register0xC0x20write-only0x00000000UDDCUpdate display done clear31SOFCStart of frame flag clear11RAM_COM0RAM_COM0display memory0x140x20read-write0x00000000S31S31311S30S30301S29S29291S28S28281S27S27271S26S26261S25S25251S24S24241S23S23231S22S22221S21S21211S20S20201S19S19191S18S18181S17S17171S16S16161S15S15151S14S14141S13S13131S12S12121S11S11111S10S10101S09S0991S08S0881S07S0771S06S0661S05S0551S04S0441S03S0331S02S0221S01S0111S00S0001RAM_COM1RAM_COM1display memory0x1C0x20read-write0x00000000S31S31311S30S30301S29S29291S28S28281S27S27271S26S26261S25S25251S24S24241S23S23231S22S22221S21S21211S20S20201S19S19191S18S18181S17S17171S16S16161S15S15151S14S14141S13S13131S12S12121S11S11111S10S10101S09S0991S08S0881S07S0771S06S0661S05S0551S04S0441S03S0331S02S0221S01S0111S00S0001RAM_COM2RAM_COM2display memory0x240x20read-write0x00000000S31S31311S30S30301S29S29291S28S28281S27S27271S26S26261S25S25251S24S24241S23S23231S22S22221S21S21211S20S20201S19S19191S18S18181S17S17171S16S16161S15S15151S14S14141S13S13131S12S12121S11S11111S10S10101S09S0991S08S0881S07S0771S06S0661S05S0551S04S0441S03S0331S02S0221S01S0111S00S0001RAM_COM3RAM_COM3display memory0x2C0x20read-write0x00000000S31S31311S30S30301S29S29291S28S28281S27S27271S26S26261S25S25251S24S24241S23S23231S22S22221S21S21211S20S20201S19S19191S18S18181S17S17171S16S16161S15S15151S14S14141S13S13131S12S12121S11S11111S10S10101S09S0991S08S0881S07S0771S06S0661S05S0551S04S0441S03S0331S02S0221S01S0111S00S0001RAM_COM4RAM_COM4display memory0x340x20read-write0x00000000S31S31311S30S30301S29S29291S28S28281S27S27271S26S26261S25S25251S24S24241S23S23231S22S22221S21S21211S20S20201S19S19191S18S18181S17S17171S16S16161S15S15151S14S14141S13S13131S12S12121S11S11111S10S10101S09S0991S08S0881S07S0771S06S0661S05S0551S04S0441S03S0331S02S0221S01S0111S00S0001RAM_COM5RAM_COM5display memory0x3C0x20read-write0x00000000S31S31311S30S30301S29S29291S28S28281S27S27271S26S26261S25S25251S24S24241S23S23231S22S22221S21S21211S20S20201S19S19191S18S18181S17S17171S16S16161S15S15151S14S14141S13S13131S12S12121S11S11111S10S10101S09S0991S08S0881S07S0771S06S0661S05S0551S04S0441S03S0331S02S0221S01S0111S00S0001RAM_COM6RAM_COM6display memory0x440x20read-write0x00000000S31S31311S30S30301S29S29291S28S28281S27S27271S26S26261S25S25251S24S24241S23S23231S22S22221S21S21211S20S20201S19S19191S18S18181S17S17171S16S16161S15S15151S14S14141S13S13131S12S12121S11S11111S10S10101S09S0991S08S0881S07S0771S06S0661S05S0551S04S0441S03S0331S02S0221S01S0111S00S0001RAM_COM7RAM_COM7display memory0x4C0x20read-write0x00000000S31S31311S30S30301S29S29291S28S28281S27S27271S26S26261S25S25251S24S24241S23S23231S22S22221S21S21211S20S20201S19S19191S18S18181S17S17171S16S16161S15S15151S14S14141S13S13131S12S12121S11S11111S10S10101S09S0991S08S0881S07S0771S06S0661S05S0551S04S0441S03S0331S02S0221S01S0111S00S0001TSCTouch sensing controllerTSC0x400240000x00x400registersTSCTSC global interrupt39CRCRcontrol register0x00x20read-write0x00000000CTPHCharge transfer pulse high284CTPLCharge transfer pulse low244SSDSpread spectrum deviation177SSESpread spectrum enable161SSPSCSpread spectrum prescaler151PGPSCpulse generator prescaler123MCVMax count value53IODEFI/O Default mode41SYNCPOLSynchronization pin polarity31AMAcquisition mode21STARTStart a new acquisition11TSCETouch sensing controller enable01IERIERinterrupt enable register0x40x20read-write0x00000000MCEIEMax count error interrupt enable11EOAIEEnd of acquisition interrupt enable01ICRICRinterrupt clear register0x80x20read-write0x00000000MCEICMax count error interrupt clear11EOAICEnd of acquisition interrupt clear01ISRISRinterrupt status register0xC0x20read-write0x00000000MCEFMax count error flag11EOAFEnd of acquisition flag01IOHCRIOHCRI/O hysteresis control register0x100x20read-write0xFFFFFFFFG7_IO4G7_IO4271G7_IO3G7_IO3261G7_IO2G7_IO2251G7_IO1G7_IO1241G6_IO4G6_IO4231G6_IO3G6_IO3221G6_IO2G6_IO2211G6_IO1G6_IO1201G5_IO4G5_IO4191G5_IO3G5_IO3181G5_IO2G5_IO2171G5_IO1G5_IO1161G4_IO4G4_IO4151G4_IO3G4_IO3141G4_IO2G4_IO2131G4_IO1G4_IO1121G3_IO4G3_IO4111G3_IO3G3_IO3101G3_IO2G3_IO291G3_IO1G3_IO181G2_IO4G2_IO471G2_IO3G2_IO361G2_IO2G2_IO251G2_IO1G2_IO141G1_IO4G1_IO431G1_IO3G1_IO321G1_IO2G1_IO211G1_IO1G1_IO101IOASCRIOASCRI/O analog switch control register0x180x20read-write0x00000000G7_IO4G7_IO4271G7_IO3G7_IO3261G7_IO2G7_IO2251G7_IO1G7_IO1241G6_IO4G6_IO4231G6_IO3G6_IO3221G6_IO2G6_IO2211G6_IO1G6_IO1201G5_IO4G5_IO4191G5_IO3G5_IO3181G5_IO2G5_IO2171G5_IO1G5_IO1161G4_IO4G4_IO4151G4_IO3G4_IO3141G4_IO2G4_IO2131G4_IO1G4_IO1121G3_IO4G3_IO4111G3_IO3G3_IO3101G3_IO2G3_IO291G3_IO1G3_IO181G2_IO4G2_IO471G2_IO3G2_IO361G2_IO2G2_IO251G2_IO1G2_IO141G1_IO4G1_IO431G1_IO3G1_IO321G1_IO2G1_IO211G1_IO1G1_IO101IOSCRIOSCRI/O sampling control register0x200x20read-write0x00000000G7_IO4G7_IO4271G7_IO3G7_IO3261G7_IO2G7_IO2251G7_IO1G7_IO1241G6_IO4G6_IO4231G6_IO3G6_IO3221G6_IO2G6_IO2211G6_IO1G6_IO1201G5_IO4G5_IO4191G5_IO3G5_IO3181G5_IO2G5_IO2171G5_IO1G5_IO1161G4_IO4G4_IO4151G4_IO3G4_IO3141G4_IO2G4_IO2131G4_IO1G4_IO1121G3_IO4G3_IO4111G3_IO3G3_IO3101G3_IO2G3_IO291G3_IO1G3_IO181G2_IO4G2_IO471G2_IO3G2_IO361G2_IO2G2_IO251G2_IO1G2_IO141G1_IO4G1_IO431G1_IO3G1_IO321G1_IO2G1_IO211G1_IO1G1_IO101IOCCRIOCCRI/O channel control register0x280x20read-write0x00000000G7_IO4G7_IO4271G7_IO3G7_IO3261G7_IO2G7_IO2251G7_IO1G7_IO1241G6_IO4G6_IO4231G6_IO3G6_IO3221G6_IO2G6_IO2211G6_IO1G6_IO1201G5_IO4G5_IO4191G5_IO3G5_IO3181G5_IO2G5_IO2171G5_IO1G5_IO1161G4_IO4G4_IO4151G4_IO3G4_IO3141G4_IO2G4_IO2131G4_IO1G4_IO1121G3_IO4G3_IO4111G3_IO3G3_IO3101G3_IO2G3_IO291G3_IO1G3_IO181G2_IO4G2_IO471G2_IO3G2_IO361G2_IO2G2_IO251G2_IO1G2_IO141G1_IO4G1_IO431G1_IO3G1_IO321G1_IO2G1_IO211G1_IO1G1_IO101IOGCSRIOGCSRI/O group control status register0x300x200x00000000G7SAnalog I/O group x status221read-onlyG6SAnalog I/O group x status211read-onlyG5SAnalog I/O group x status201read-onlyG4SAnalog I/O group x status191read-onlyG3SAnalog I/O group x status181read-onlyG2SAnalog I/O group x status171read-onlyG1SAnalog I/O group x status161read-onlyG7EAnalog I/O group x enable61read-writeG6EAnalog I/O group x enable51read-writeG5EAnalog I/O group x enable41read-writeG4EAnalog I/O group x enable31read-writeG3EAnalog I/O group x enable21read-writeG2EAnalog I/O group x enable11read-writeG1EAnalog I/O group x enable01read-writeIOG1CRIOG1CRI/O group x counter register0x340x20read-only0x00000000CNTCounter value014IOG2CRIOG2CRI/O group x counter register0x380x20read-only0x00000000CNTCounter value014IOG3CRIOG3CRI/O group x counter register0x3C0x20read-only0x00000000CNTCounter value014IOG4CRIOG4CRI/O group x counter register0x400x20read-only0x00000000CNTCounter value014IOG5CRIOG5CRI/O group x counter register0x440x20read-only0x00000000CNTCounter value014IOG6CRIOG6CRI/O group x counter register0x480x20read-only0x00000000CNTCounter value014IOG7CRIOG7CRI/O group x counter register0x4C0x20read-only0x00000000CNTCounter value014IWDGIndependent watchdogIWDG0x400030000x00x400registersKRKRKey register0x00x20write-only0x00000000KEYKey value (write only, read 0x0000)016PRPRPrescaler register0x40x20read-write0x00000000PRPrescaler divider03RLRRLRReload register0x80x20read-write0x00000FFFRLWatchdog counter reload value012SRSRStatus register0xC0x20read-only0x00000000WVUWatchdog counter window value update21RVUWatchdog counter reload value update11PVUWatchdog prescaler value update01WINRWINRWindow register0x100x20read-write0x00000FFFWINWatchdog counter window value012WWDGSystem window watchdogWWDG0x40002C000x00x400registersWWDGWindow Watchdog interrupt0CRCRControl register0x00x20read-write0x0000007FWDGAActivation bit71T7-bit counter (MSB to LSB)07CFRCFRConfiguration register0x40x20read-write0x0000007FWDGTBTimer base113EWIEarly wakeup interrupt91W7-bit window value07SRSRStatus register0x80x20read-write0x00000000EWIFEarly wakeup interrupt flag01I2C1Inter-integrated circuitI2C0x400054000x00x400registersI2C1_EVI2C1 event interrupt30I2C1_ERI2C1 error interrupt31CR1CR1Control register 10x00x20read-write0x00000000PEPeripheral enable01TXIETX Interrupt enable11RXIERX Interrupt enable21ADDRIEAddress match interrupt enable (slave only)31NACKIENot acknowledge received interrupt enable41STOPIESTOP detection Interrupt enable51TCIETransfer Complete interrupt enable61ERRIEError interrupts enable71DNFDigital noise filter84ANFOFFAnalog noise filter OFF121TXDMAENDMA transmission requests enable141RXDMAENDMA reception requests enable151SBCSlave byte control161NOSTRETCHClock stretching disable171WUPENWakeup from STOP enable181GCENGeneral call enable191SMBHENSMBus Host address enable201SMBDENSMBus Device Default address enable211ALERTENSMBUS alert enable221PECENPEC enable231CR2CR2Control register 20x40x20read-write0x00000000PECBYTEPacket error checking byte261AUTOENDAutomatic end mode (master mode)251RELOADNBYTES reload mode241NBYTESNumber of bytes168NACKNACK generation (slave mode)151STOPStop generation (master mode)141STARTStart generation131HEAD10R10-bit address header only read direction (master receiver mode)121ADD1010-bit addressing mode (master mode)111RD_WRNTransfer direction (master mode)101SADDSlave address bit (master mode)010OAR1OAR1Own address register 10x80x20read-write0x00000000OA1Interface address010OA1MODEOwn Address 1 10-bit mode101OA1ENOwn Address 1 enable151OAR2OAR2Own address register 20xC0x20read-write0x00000000OA2Interface address17OA2MSKOwn Address 2 masks83OA2ENOwn Address 2 enable151TIMINGRTIMINGRTiming register0x100x20read-write0x00000000SCLLSCL low period (master mode)08SCLHSCL high period (master mode)88SDADELData hold time164SCLDELData setup time204PRESCTiming prescaler284TIMEOUTRTIMEOUTRStatus register 10x140x20read-write0x00000000TIMEOUTABus timeout A012TIDLEIdle clock timeout detection121TIMOUTENClock timeout enable151TIMEOUTBBus timeout B1612TEXTENExtended clock timeout enable311ISRISRInterrupt and Status register0x180x200x00000001ADDCODEAddress match code (Slave mode)177read-onlyDIRTransfer direction (Slave mode)161read-onlyBUSYBus busy151read-onlyALERTSMBus alert131read-onlyTIMEOUTTimeout or t_low detection flag121read-onlyPECERRPEC Error in reception111read-onlyOVROverrun/Underrun (slave mode)101read-onlyARLOArbitration lost91read-onlyBERRBus error81read-onlyTCRTransfer Complete Reload71read-onlyTCTransfer Complete (master mode)61read-onlySTOPFStop detection flag51read-onlyNACKFNot acknowledge received flag41read-onlyADDRAddress matched (slave mode)31read-onlyRXNEReceive data register not empty (receivers)21read-onlyTXISTransmit interrupt status (transmitters)11read-writeTXETransmit data register empty (transmitters)01read-writeICRICRInterrupt clear register0x1C0x20write-only0x00000000ALERTCFAlert flag clear131TIMOUTCFTimeout detection flag clear121PECCFPEC Error flag clear111OVRCFOverrun/Underrun flag clear101ARLOCFArbitration lost flag clear91BERRCFBus error flag clear81STOPCFStop detection flag clear51NACKCFNot Acknowledge flag clear41ADDRCFAddress Matched flag clear31PECRPECRPEC register0x200x20read-only0x00000000PECPacket error checking register08RXDRRXDRReceive data register0x240x20read-only0x00000000RXDATA8-bit receive data08TXDRTXDRTransmit data register0x280x20read-write0x00000000TXDATA8-bit transmit data08I2C30x40005C00I2C3_EVI2C3 event interrupt32I2C3_ERI2C3 error interrupt33FlashFlashFlash0x580040000x00x90registersFLASHFlash global interrupt4ACRACRAccess control register0x00x20read-write0x00000600LATENCYLatency03PRFTENPrefetch enable81ICENInstruction cache enable91DCENData cache enable101ICRSTInstruction cache reset111DCRSTData cache reset121PESCPU1 CortexM4 program erase suspend request151EMPTYFlash User area empty161KEYRKEYRFlash key register0x80x20write-only0x00000000KEYRKEYR032OPTKEYROPTKEYROption byte key register0xC0x20write-only0x00000000OPTKEYROption byte key032SRSRStatus register0x100x200x00000000EOPEnd of operation01read-writeOPERROperation error11read-writePROGERRProgramming error31read-writeWRPERRWrite protected error41read-writePGAERRProgramming alignment error51read-writeSIZERRSize error61read-writePGSERRProgramming sequence error71read-writeMISERRFast programming data miss error81read-writeFASTERRFast programming error91read-writeOPTNVUser Option OPTVAL indication131read-onlyRDERRPCROP read error141read-writeOPTVERROption validity error151read-writeBSYBusy161read-onlyCFGBSYProgramming or erase configuration busy181read-onlyPESDProgramming or erase operation suspended191read-onlyCRCRFlash control register0x140x20read-write0xC0000000PGProgramming01PERPage erase11MERThis bit triggers the mass erase (all user pages) when set21PNBPage number selection38STRTStart161OPTSTRTOptions modification start171FSTPGFast programming181EOPIEEnd of operation interrupt enable241ERRIEError interrupt enable251RDERRIEPCROP read error interrupt enable261OBL_LAUNCHForce the option byte loading271OPTLOCKOptions Lock301LOCKFLASH_CR Lock311ECCRECCRFlash ECC register0x180x200x00000000ADDR_ECCECC fail address017read-onlySYSF_ECCSystem Flash ECC fail201read-onlyECCCIEECC correction interrupt enable241read-writeCPUIDCPU identification263read-onlyECCCECC correction301read-writeECCDECC detection311read-writeOPTROPTRFlash option register0x200x20read-write0x10708000RDPRead protection level08ESESecurity enabled81BOR_LEVBOR reset Level93nRST_STOPnRST_STOP121nRST_STDBYnRST_STDBY131nRST_SHDWnRST_SHDW141IDWG_SWIndependent watchdog selection161IWDG_STOPIndependent watchdog counter freeze in Stop mode171IWDG_STDBYIndependent watchdog counter freeze in Standby mode181WWDG_SWWindow watchdog selection191nBOOT1Boot configuration231SRAM2_PESRAM2 parity check enable241SRAM2_RSTSRAM2 Erase when system reset251nSWBOOT0Software Boot0261nBOOT0nBoot0 option bit271AGC_TRIMRadio Automatic Gain Control Trimming293PCROP1ASRPCROP1ASRFlash Bank 1 PCROP Start address zone A register0x240x20read-write0xFFFFFE00PCROP1A_STRTBank 1 PCROPQ area start offset09PCROP1AERPCROP1AERFlash Bank 1 PCROP End address zone A register0x280x20read-write0x7FFFFE00PCROP1A_ENDBank 1 PCROP area end offset09PCROP_RDPPCROP area preserved when RDP level decreased311WRP1ARWRP1ARFlash Bank 1 WRP area A address register0x2C0x20read-write0xFF00FF00WRP1A_STRTBank 1 WRP first area A start offset08WRP1A_ENDBank 1 WRP first area A end offset168WRP1BRWRP1BRFlash Bank 1 WRP area B address register0x300x20read-write0xFF00FF00WRP1B_STRTBank 1 WRP second area B end offset168WRP1B_ENDBank 1 WRP second area B start offset08PCROP1BSRPCROP1BSRFlash Bank 1 PCROP Start address area B register0x340x20read-write0xFFFFFE00PCROP1B_STRTBank 1 PCROP area B start offset09PCROP1BERPCROP1BERFlash Bank 1 PCROP End address area B register0x380x20read-write0xFFFFFE00PCROP1B_ENDBank 1 PCROP area end area B offset09IPCCBRIPCCBRIPCC mailbox data buffer address register0x3C0x20read-write0xFFFFC000IPCCDBAPCC mailbox data buffer base address014C2ACRC2ACRCPU2 cortex M0 access control register0x5C0x20read-write0x00000600PRFTENCPU2 cortex M0 prefetch enable81ICENCPU2 cortex M0 instruction cache enable91ICRSTCPU2 cortex M0 instruction cache reset111PESCPU2 cortex M0 program erase suspend request151C2SRC2SRCPU2 cortex M0 status register0x600x20read-write0x00000000EOPEnd of operation01OPERROperation error11PROGERRProgramming error31WRPERRwrite protection error41PGAERRProgramming alignment error51SIZERRSize error61PGSERRProgramming sequence error71MISSERRFast programming data miss error81FASTERRFast programming error91RDERRPCROP read error141BSYBusy161CFGBSYProgramming or erase configuration busy181PESDProgramming or erase operation suspended191C2CRC2CRCPU2 cortex M0 control register0x640x20read-write0x00000000PGProgramming01PERPage erase11MERMasse erase21PNBPage Number selection38STRTStart161FSTPGFast programming181EOPIEEnd of operation interrupt enable241ERRIEError interrupt enable251RDERRIEPCROP read error interrupt enable261SFRSFRSecure flash start address register0x800x20read-write0xFFFFEE00SFSASecure flash start address08DDSDisable Cortex M0 debug access121FSDFlash security disable81SRRVRSRRVRSecure SRAM2 start address and cortex M0 reset vector register0x840x20read-write0x01000000SBRVcortex M0 access control register018SBRSASecure backup SRAM2a start address185BRSDbackup SRAM2a security disable231SNBRSASecure non backup SRAM2a start address255C2OPTCPU2 cortex M0 boot reset vector memory selection311NBRSDnon-backup SRAM2b security disable301QUADSPIQuadSPI interfaceQUADSPI0xA00010000x00x400registersQUADSPIQSPI global interrupt50CRCRcontrol register0x00x20read-write0x00000000PRESCALERClock prescaler248PMMPolling match mode231APMSAutomatic poll mode stop221TOIETimeOut interrupt enable201SMIEStatus match interrupt enable191FTIEFIFO threshold interrupt enable181TCIETransfer complete interrupt enable171TEIETransfer error interrupt enable161FTHRESFIFO threshold level85SSHIFTSample shift41TCENTimeout counter enable31DMAENDMA enable21ABORTAbort request11ENEnable01DCRDCRdevice configuration register0x40x20read-write0x00000000FSIZEFLASH memory size165CSHTChip select high time83CKMODEMode 0 / mode 301SRSRstatus register0x80x20read-only0x00000000FLEVELFIFO level86BUSYBusy51TOFTimeout flag41SMFStatus match flag31FTFFIFO threshold flag21TCFTransfer complete flag11TEFTransfer error flag01FCRFCRflag clear register0xC0x20read-write0x00000000CTOFClear timeout flag41CSMFClear status match flag31CTCFClear transfer complete flag11CTEFClear transfer error flag01DLRDLRdata length register0x100x20read-write0x00000000DLData length032CCRCCRcommunication configuration register0x140x20read-write0x00000000DDRMDouble data rate mode311SIOOSend instruction only once mode281FMODEFunctional mode262DMODEData mode242DCYCNumber of dummy cycles185ABSIZEAlternate bytes size162ABMODEAlternate bytes mode142ADSIZEAddress size122ADMODEAddress mode102IMODEInstruction mode82INSTRUCTIONInstruction08ARARaddress register0x180x20read-write0x00000000ADDRESSAddress032ABRABRABR0x1C0x20read-write0x00000000ALTERNATEALTERNATE032DRDRdata register0x200x20read-write0x00000000DATAData032PSMKRPSMKRpolling status mask register0x240x20read-write0x00000000MASKStatus mask032PSMARPSMARpolling status match register0x280x20read-write0x00000000MATCHStatus match032PIRPIRpolling interval register0x2C0x20read-write0x00000000INTERVALPolling interval016LPTRLPTRlow-power timeout register0x300x20read-write0x00000000TIMEOUTTimeout period016RCCReset and clock controlRCC0x580000000x00x400registersRCCRCC global interrupt5CRCRClock control register0x00x200x00000061PLLSAI1RDYSAI1 PLL clock ready flag271read-onlyPLLSAI1ONSAI1 PLL enable261read-writePLLRDYMain PLL clock ready flag251read-onlyPLLONMain PLL enable241read-writeHSEPREHSE sysclk and PLL M divider prescaler201read-writeCSSONHSE Clock security system enable191write-onlyHSEBYPHSE crystal oscillator bypass181read-writeHSERDYHSE clock ready flag171read-onlyHSEONHSE clock enabled161read-writeHSIKERDYHSI kernel clock ready flag for peripherals requests121read-onlyHSIASFSHSI automatic start from Stop111read-writeHSIRDYHSI clock ready flag101read-onlyHSIKERONHSI always enable for peripheral kernels91read-writeHSIONHSI clock enabled81read-writeMSIRANGEMSI clock ranges44read-writeMSIPLLENMSI clock PLL enable21read-writeMSIRDYMSI clock ready flag11read-onlyMSIONMSI clock enable01read-writeICSCRICSCRInternal clock sources calibration register0x40x200x40000000HSITRIMHSI clock trimming247read-writeHSICALHSI clock calibration168read-onlyMSITRIMMSI clock trimming88read-writeMSICALMSI clock calibration08read-onlyCFGRCFGRClock configuration register0x80x200x00070000MCOPREMicrocontroller clock output prescaler283read-writeMCOSELMicrocontroller clock output244read-writePPRE2FAPB2 prescaler flag181read-onlyPPRE1FAPB1 prescaler flag171read-onlyHPREFAHB prescaler flag161read-onlySTOPWUCKWakeup from Stop and CSS backup clock selection151read-writePPRE2APB high-speed prescaler (APB2)113read-writePPRE1PB low-speed prescaler (APB1)83read-writeHPREAHB prescaler44read-writeSWSSystem clock switch status22read-onlySWSystem clock switch02read-writePLLCFGRPLLCFGRPLLSYS configuration register0xC0x20read-write0x22040100PLLRMain PLLSYS division factor R for SYSCLK (system clock)293PLLRENMain PLLSYSR PLLCLK output enable281PLLQMain PLLSYS division factor Q for PLLSYSUSBCLK253PLLQENMain PLLSYSQ output enable241PLLPMain PLL division factor P for PPLSYSSAICLK175PLLPENMain PLLSYSP output enable161PLLNMain PLLSYS multiplication factor N87PLLMDivision factor M for the main PLL and audio PLL (PLLSAI1 and PLLSAI2) input clock43PLLSRCMain PLL, PLLSAI1 and PLLSAI2 entry clock source02PLLSAI1CFGRPLLSAI1CFGRPLLSAI1 configuration register0x100x20read-write0x22040100PLLRPLLSAI division factor R for PLLADC1CLK (ADC clock)293PLLRENPLLSAI PLLADC1CLK output enable281PLLQSAIPLL division factor Q for PLLSAIUSBCLK (48 MHz clock)253PLLQENSAIPLL PLLSAIUSBCLK output enable241PLLPSAI1PLL division factor P for PLLSAICLK (SAI1clock)175PLLPENSAIPLL PLLSAI1CLK output enable161PLLNSAIPLL multiplication factor for VCO87CIERCIERClock interrupt enable register0x180x20read-write0x00000000LSI2RDYIELSI2 ready interrupt enable111HSI48RDYIEHSI48 ready interrupt enable101LSECSSIELSE clock security system interrupt enable91PLLSAI1RDYIEPLLSAI1 ready interrupt enable61PLLRDYIEPLLSYS ready interrupt enable51HSERDYIEHSE ready interrupt enable41HSIRDYIEHSI ready interrupt enable31MSIRDYIEMSI ready interrupt enable21LSERDYIELSE ready interrupt enable11LSI1RDYIELSI1 ready interrupt enable01CIFRCIFRClock interrupt flag register0x1C0x20read-only0x00000000LSI2RDYFLSI2 ready interrupt flag111HSI48RDYFHSI48 ready interrupt flag101LSECSSFLSE Clock security system interrupt flag91HSECSSFHSE Clock security system interrupt flag81PLLSAI1RDYFPLLSAI1 ready interrupt flag61PLLRDYFPLL ready interrupt flag51HSERDYFHSE ready interrupt flag41HSIRDYFHSI ready interrupt flag31MSIRDYFMSI ready interrupt flag21LSERDYFLSE ready interrupt flag11LSI1RDYFLSI1 ready interrupt flag01CICRCICRClock interrupt clear register0x200x20write-only0x00000000LSI2RDYCLSI2 ready interrupt clear111HSI48RDYCHSI48 ready interrupt clear101LSECSSCLSE Clock security system interrupt clear91HSECSSCHSE Clock security system interrupt clear81PLLSAI1RDYCPLLSAI1 ready interrupt clear61PLLRDYCPLL ready interrupt clear51HSERDYCHSE ready interrupt clear41HSIRDYCHSI ready interrupt clear31MSIRDYCMSI ready interrupt clear21LSERDYCLSE ready interrupt clear11LSI1RDYCLSI1 ready interrupt clear01SMPSCRSMPSCRStep Down converter control register0x240x200x00000301SMPSSWSStep Down converter clock switch status82read-onlySMPSDIVStep Down converter clock prescaler42read-writeSMPSSELStep Down converter clock selection02read-writeAHB1RSTRAHB1RSTRAHB1 peripheral reset register0x280x20read-write0x00000000TSCRSTTouch Sensing Controller reset161CRCRSTCRC reset121DMAMUXRSTDMAMUX reset21DMA2RSTDMA2 reset11DMA1RSTDMA1 reset01AHB2RSTRAHB2RSTRAHB2 peripheral reset register0x2C0x20read-write0x00000000AES1RSTAES1 hardware accelerator reset161ADCRSTADC reset131GPIOHRSTIO port H reset71GPIOERSTIO port E reset41GPIODRSTIO port D reset31GPIOCRSTIO port C reset21GPIOBRSTIO port B reset11GPIOARSTIO port A reset01AHB3RSTRAHB3RSTRAHB3 peripheral reset register0x300x20read-write0x00000000FLASHRSTFlash interface reset251IPCCRSTIPCC interface reset201HSEMRSTHSEM interface reset191RNGRSTRNG interface reset181AES2RSTAES2 interface reset171PKARSTPKA interface reset161QSPIRSTQuad SPI memory interface reset81APB1RSTR1APB1RSTR1APB1 peripheral reset register 10x380x20read-write0x00000000LPTIM1RSTLow Power Timer 1 reset311USBFSRSTUSB FS reset261CRSRSTCRS reset241I2C3RSTI2C3 reset231I2C1RSTI2C1 reset211SPI2RSTSPI2 reset141LCDRSTLCD interface reset91TIM2RSTTIM2 timer reset01APB1RSTR2APB1RSTR2APB1 peripheral reset register 20x3C0x20read-write0x00000000LPTIM2RSTLow-power timer 2 reset51LPUART1RSTLow-power UART 1 reset01APB2RSTRAPB2RSTRAPB2 peripheral reset register0x400x20read-write0x00000000SAI1RSTSerial audio interface 1 (SAI1) reset211TIM17RSTTIM17 timer reset181TIM16RSTTIM16 timer reset171USART1RSTUSART1 reset141SPI1RSTSPI1 reset121TIM1RSTTIM1 timer reset111APB3RSTRAPB3RSTRAPB3 peripheral reset register0x440x20read-write0x00000000RFRSTRadio system BLE reset01AHB1ENRAHB1ENRAHB1 peripheral clock enable register0x480x20read-write0x00000100TSCENTouch Sensing Controller clock enable161CRCENCPU1 CRC clock enable121DMAMUXENDMAMUX clock enable21DMA2ENDMA2 clock enable11DMA1ENDMA1 clock enable01AHB2ENRAHB2ENRAHB2 peripheral clock enable register0x4C0x20read-write0x00000000AES1ENAES1 accelerator clock enable161ADCENADC clock enable131GPIOHENIO port H clock enable71GPIOEENIO port E clock enable41GPIODENIO port D clock enable31GPIOCENIO port C clock enable21GPIOBENIO port B clock enable11GPIOAENIO port A clock enable01AHB3ENRAHB3ENRAHB3 peripheral clock enable register0x500x20read-write0x02080000FLASHENFLASHEN251IPCCENIPCCEN201HSEMENHSEMEN191RNGENRNGEN181AES2ENAES2EN171PKAENPKAEN161QSPIENQSPIEN81APB1ENR1APB1ENR1APB1ENR10x580x20read-write0x00000400LPTIM1ENCPU1 Low power timer 1 clock enable311USBENCPU1 USB clock enable261CRSENCPU1 CRS clock enable241I2C3ENCPU1 I2C3 clock enable231I2C1ENCPU1 I2C1 clock enable211SPI2ENCPU1 SPI2 clock enable141WWDGENCPU1 Window watchdog clock enable111RTCAPBENCPU1 RTC APB clock enable101LCDENCPU1 LCD clock enable91TIM2ENCPU1 TIM2 timer clock enable01APB1ENR2APB1ENR2APB1 peripheral clock enable register 20x5C0x20read-write0x00000000LPTIM2ENCPU1 LPTIM2EN51LPUART1ENCPU1 Low power UART 1 clock enable01APB2ENRAPB2ENRAPB2ENR0x600x20read-write0x00000000SAI1ENCPU1 SAI1 clock enable211TIM17ENCPU1 TIM17 timer clock enable181TIM16ENCPU1 TIM16 timer clock enable171USART1ENCPU1 USART1clock enable141SPI1ENCPU1 SPI1 clock enable121TIM1ENCPU1 TIM1 timer clock enable111AHB1SMENRAHB1SMENRAHB1 peripheral clocks enable in Sleep and Stop modes register0x680x20read-write0x00011207TSCSMENCPU1 Touch Sensing Controller clocks enable during Sleep and Stop modes161CRCSMENCPU1 CRCSMEN121SRAM1SMENCPU1 SRAM1 interface clocks enable during Sleep and Stop modes91DMAMUXSMENCPU1 DMAMUX clocks enable during Sleep and Stop modes21DMA2SMENCPU1 DMA2 clocks enable during Sleep and Stop modes11DMA1SMENCPU1 DMA1 clocks enable during Sleep and Stop modes01AHB2SMENRAHB2SMENRAHB2 peripheral clocks enable in Sleep and Stop modes register0x6C0x20read-write0x0001209FAES1SMENCPU1 AES1 accelerator clocks enable during Sleep and Stop modes161ADCFSSMENCPU1 ADC clocks enable during Sleep and Stop modes131GPIOHSMENCPU1 IO port H clocks enable during Sleep and Stop modes71GPIOESMENCPU1 IO port E clocks enable during Sleep and Stop modes41GPIODSMENCPU1 IO port D clocks enable during Sleep and Stop modes31GPIOCSMENCPU1 IO port C clocks enable during Sleep and Stop modes21GPIOBSMENCPU1 IO port B clocks enable during Sleep and Stop modes11GPIOASMENCPU1 IO port A clocks enable during Sleep and Stop modes01AHB3SMENRAHB3SMENRAHB3 peripheral clocks enable in Sleep and Stop modes register0x700x20read-write0x03070100FLASHSMENFlash interface clocks enable during CPU1 sleep mode251SRAM2SMENSRAM2a and SRAM2b memory interface clocks enable during CPU1 sleep mode241RNGSMENTrue RNG clocks enable during CPU1 sleep mode181AES2SMENAES2 accelerator clocks enable during CPU1 sleep mode171PKASMENPKA accelerator clocks enable during CPU1 sleep mode161QSPISMENQSPISMEN81APB1SMENR1APB1SMENR1APB1SMENR10x780x20read-write0x85A04E01LPTIM1SMENLow power timer 1 clocks enable during CPU1 Sleep mode311USBSMENUSB FS clocks enable during CPU1 Sleep mode261CRSMENCRS clocks enable during CPU1 Sleep mode241I2C3SMENI2C3 clocks enable during CPU1 Sleep mode231I2C1SMENI2C1 clocks enable during CPU1 Sleep mode211SPI2SMENSPI2 clocks enable during CPU1 Sleep mode141WWDGSMENWindow watchdog clocks enable during CPU1 Sleep mode111RTCAPBSMENRTC APB clocks enable during CPU1 Sleep mode101LCDSMENLCD clocks enable during CPU1 Sleep mode91TIM2SMENTIM2 timer clocks enable during CPU1 Sleep mode01APB1SMENR2APB1SMENR2APB1 peripheral clocks enable in Sleep and Stop modes register 20x7C0x20read-write0x000000021LPTIM2SMENLow power timer 2 clocks enable during CPU1 Sleep mode51LPUART1SMENLow power UART 1 clocks enable during CPU1 Sleep mode01APB2SMENRAPB2SMENRAPB2SMENR0x800x20read-write0x00265800SAI1SMENSAI1 clocks enable during CPU1 Sleep mode211TIM17SMENTIM17 timer clocks enable during CPU1 Sleep mode181TIM16SMENTIM16 timer clocks enable during CPU1 Sleep mode171USART1SMENUSART1clocks enable during CPU1 Sleep mode141SPI1SMENSPI1 clocks enable during CPU1 Sleep mode121TIM1SMENTIM1 timer clocks enable during CPU1 Sleep mode111CCIPRCCIPRCCIPR0x880x20read-write0x00000000RNGSELRNG clock source selection302ADCSELADCs clock source selection282CLK48SEL48 MHz clock source selection262SAI1SELSAI1 clock source selection222LPTIM2SELLow power timer 2 clock source selection202LPTIM1SELLow power timer 1 clock source selection182I2C3SELI2C3 clock source selection162I2C1SELI2C1 clock source selection122LPUART1SELLPUART1 clock source selection102USART1SELUSART1 clock source selection02BDCRBDCRBDCR0x900x200x00000000LSCOSELLow speed clock output selection251read-writeLSCOENLow speed clock output enable241read-writeBDRSTBackup domain software reset161read-writeRTCENRTC clock enable151read-writeRTCSELRTC clock source selection82read-writeLSECSSD_CSS on LSE failure detection61read-onlyLSECSSONLSECSSON51read-writeLSEDRVSE oscillator drive capability32read-writeLSEBYPLSE oscillator bypass21read-writeLSERDYLSE oscillator ready11read-onlyLSEONLSE oscillator enable01read-writeCSRCSRCSR0x940x200x0C000000LPWRRSTFLow-power reset flag311read-onlyWWDGRSTFWindow watchdog reset flag301read-onlyIWDGRSTFIndependent window watchdog reset flag291read-onlySFTRSTFSoftware reset flag281read-onlyBORRSTFBOR flag271read-onlyPINRSTFPin reset flag261read-onlyOBLRSTFOption byte loader reset flag251read-onlyRMVFRemove reset flag231read-writeRFWKPSELRF system wakeup clock source selection142read-writeLSI2BWLSI2 oscillator bias configuration84read-writeLSI2TRIMOKLSI2 oscillator trim OK51read-onlyLSI2TRIMENLSI2 oscillator trimming enable41read-writeLSI2RDYLSI2 oscillator ready31read-onlyLSI2ONLSI2 oscillator enabled21read-writeLSI1RDYLSI1 oscillator ready11read-onlyLSI1ONLSI1 oscillator enabled01read-writeRFRSTSRadio system BLE and 802.15.4 reset status161read-onlyCRRCRCRRCRClock recovery RC register0x980x200x00000000HSI48CALHSI48 clock calibration79read-onlyHSI48RDYHSI48 clock ready11read-onlyHSI48ONHSI48 oscillator enabled01read-writeHSECRHSECRClock HSE register0x9C0x200x00000030HSETUNEHSE capacitor tuning86read-onlyHSEGMCHSE current control43read-writeHSESHSE Sense amplifier threshold31read-writeUNLOCKEDRegister lock system01read-writeEXTCFGREXTCFGRExtended clock recovery register0x1080x200x00030000RFCSSRF clock source selected201read-onlyC2HPREFCPU2 AHB prescaler flag171read-onlySHDHPREFShared AHB prescaler flag161read-onlyC2HPRECPU2 AHB prescaler44read-writeSHDHPREShared AHB prescaler04read-writeC2AHB1ENRC2AHB1ENRCPU2 AHB1 peripheral clock enable register0x1480x20read-write0x00000000TSCENCPU2 Touch Sensing Controller clock enable161CRCENCPU2 CRC clock enable121SRAM1ENCPU2 SRAM1 clock enable91DMAMUXENCPU2 DMAMUX clock enable21DMA2ENCPU2 DMA2 clock enable11DMA1ENCPU2 DMA1 clock enable01C2AHB2ENRC2AHB2ENRCPU2 AHB2 peripheral clock enable register0x14C0x20read-write0x00000000AES1ENCPU2 AES1 accelerator clock enable161ADCENCPU2 ADC clock enable131GPIOHENCPU2 IO port H clock enable71GPIOEENCPU2 IO port E clock enable41GPIODENCPU2 IO port D clock enable31GPIOCENCPU2 IO port C clock enable21GPIOBENCPU2 IO port B clock enable11GPIOAENCPU2 IO port A clock enable01C2AHB3ENRC2AHB3ENRCPU2 AHB3 peripheral clock enable register0x1500x20read-write0x02080000FLASHENCPU2 FLASHEN251IPCCENCPU2 IPCCEN201HSEMENCPU2 HSEMEN191RNGENCPU2 RNGEN181AES2ENCPU2 AES2EN171PKAENCPU2 PKAEN161C2APB1ENR1C2APB1ENR1CPU2 APB1ENR10x1580x20read-write0x00000400LPTIM1ENCPU2 Low power timer 1 clock enable311USBENCPU2 USB clock enable261CRSENCPU2 CRS clock enable241I2C3ENCPU2 I2C3 clock enable231I2C1ENCPU2 I2C1 clock enable211SPI2ENCPU2 SPI2 clock enable141RTCAPBENCPU2 RTC APB clock enable101LCDENCPU2 LCD clock enable91TIM2ENCPU2 TIM2 timer clock enable01C2APB1ENR2C2APB1ENR2CPU2 APB1 peripheral clock enable register 20x15C0x20read-write0x00000000LPTIM2ENCPU2 LPTIM2EN51LPUART1ENCPU2 Low power UART 1 clock enable01C2APB2ENRC2APB2ENRCPU2 APB2ENR0x1600x20read-write0x00000000SAI1ENCPU2 SAI1 clock enable211TIM17ENCPU2 TIM17 timer clock enable181TIM16ENCPU2 TIM16 timer clock enable171USART1ENCPU2 USART1clock enable141SPI1ENCPU2 SPI1 clock enable121TIM1ENCPU2 TIM1 timer clock enable111C2APB3ENRC2APB3ENRCPU2 APB3ENR0x1640x20read-write0x00000000EN802CPU2 802.15.4 interface clock enable11BLEENCPU2 BLE interface clock enable01C2AHB1SMENRC2AHB1SMENRCPU2 AHB1 peripheral clocks enable in Sleep and Stop modes register0x1680x20read-write0x00011207TSCSMENCPU2 Touch Sensing Controller clocks enable during Sleep and Stop modes161CRCSMENCPU2 CRCSMEN121SRAM1SMENSRAM1 interface clock enable during CPU1 CSleep mode91DMAMUXSMENCPU2 DMAMUX clocks enable during Sleep and Stop modes21DMA2SMENCPU2 DMA2 clocks enable during Sleep and Stop modes11DMA1SMENCPU2 DMA1 clocks enable during Sleep and Stop modes01C2AHB2SMENRC2AHB2SMENRCPU2 AHB2 peripheral clocks enable in Sleep and Stop modes register0x16C0x20read-write0x0001209FAES1SMENCPU2 AES1 accelerator clocks enable during Sleep and Stop modes161ADCFSSMENCPU2 ADC clocks enable during Sleep and Stop modes131GPIOHSMENCPU2 IO port H clocks enable during Sleep and Stop modes71GPIOESMENCPU2 IO port E clocks enable during Sleep and Stop modes41GPIODSMENCPU2 IO port D clocks enable during Sleep and Stop modes31GPIOCSMENCPU2 IO port C clocks enable during Sleep and Stop modes21GPIOBSMENCPU2 IO port B clocks enable during Sleep and Stop modes11GPIOASMENCPU2 IO port A clocks enable during Sleep and Stop modes01C2AHB3SMENRC2AHB3SMENRCPU2 AHB3 peripheral clocks enable in Sleep and Stop modes register0x1700x20read-write0x03070000FLASHSMENFlash interface clocks enable during CPU2 sleep modes251SRAM2SMENSRAM2a and SRAM2b memory interface clocks enable during CPU2 sleep modes241RNGSMENTrue RNG clocks enable during CPU2 sleep modes181AES2SMENAES2 accelerator clocks enable during CPU2 sleep modes171PKASMENPKA accelerator clocks enable during CPU2 sleep modes161C2APB1SMENR1C2APB1SMENR1CPU2 APB1SMENR10x1780x20read-write0x85A04601LPTIM1SMENLow power timer 1 clocks enable during CPU2 Sleep mode311USBSMENUSB FS clocks enable during CPU2 Sleep mode261CRSMENCRS clocks enable during CPU2 Sleep mode241I2C3SMENI2C3 clocks enable during CPU2 Sleep mode231I2C1SMENI2C1 clocks enable during CPU2 Sleep mode211SPI2SMENSPI2 clocks enable during CPU2 Sleep mode141RTCAPBSMENRTC APB clocks enable during CPU2 Sleep mode101LCDSMENLCD clocks enable during CPU2 Sleep mode91TIM2SMENTIM2 timer clocks enable during CPU2 Sleep mode01C2APB1SMENR2C2APB1SMENR2CPU2 APB1 peripheral clocks enable in Sleep and Stop modes register 20x17C0x20read-write0x000000021LPTIM2SMENLow power timer 2 clocks enable during CPU2 Sleep mode51LPUART1SMENLow power UART 1 clocks enable during CPU2 Sleep mode01C2APB2SMENRC2APB2SMENRCPU2 APB2SMENR0x1800x20read-write0x00265800SAI1SMENSAI1 clocks enable during CPU2 Sleep mode211TIM17SMENTIM17 timer clocks enable during CPU2 Sleep mode181TIM16SMENTIM16 timer clocks enable during CPU2 Sleep mode171USART1SMENUSART1clocks enable during CPU2 Sleep mode141SPI1SMENSPI1 clocks enable during CPU2 Sleep mode121TIM1SMENTIM1 timer clocks enable during CPU2 Sleep mode111C2APB3SMENRC2APB3SMENRCPU2 APB3SMENR0x1840x20read-write0x0000003SMEN802802.15.4 interface clocks enable during CPU2 Sleep modes11BLESMENBLE interface clocks enable during CPU2 Sleep mode01PWRPower controlPWR0x580004000x00x400registersPWR_SOTFPWR switching on the fly + interrupt43CR1CR1Power control register 10x00x20read-write0x00000200LPRLow-power run141VOSVoltage scaling range selection92DBPDisable backup domain write protection81FPDSFlash power down mode during LPsSleep for CPU151FPDRFlash power down mode during LPRun for CPU141LPMSLow-power mode selection for CPU103CR2CR2Power control register 20x40x20read-write0x00000000USVVDDUSB USB supply valid101PVME3Peripheral voltage monitoring 3 enable: VDDA vs. 1.62V61PVME1Peripheral voltage monitoring 1 enable: VDDUSB vs. 1.2V41PLSPower voltage detector level selection13PVDEPower voltage detector enable01CR3CR3Power control register 30x80x20read-write0x00008000EIWULEnable internal wakeup line for CPU1151EC2HEnable CPU2 Hold interrupt for CPU1141E802AEnable end of activity interrupt for CPU1131EBLEAEnable BLE end of activity interrupt for CPU1111ECRPEEnable critical radio phase end of activity interrupt for CPU1121APCApply pull-up and pull-down configuration101RRSSRAM2a retention in Standby mode91EBORHSDFBEnable BORH and Step Down counverter forced in Bypass interrups for CPU181EWUP5Enable Wakeup pin WKUP541EWUP4Enable Wakeup pin WKUP431EWUP3Enable Wakeup pin WKUP321EWUP2Enable Wakeup pin WKUP211EWUP1Enable Wakeup pin WKUP101CR4CR4Power control register 40xC0x20read-write0x00000000C2BOOTBOOT CPU2 after reset or wakeup from Stop or Standby modes151VBRSVBAT battery charging resistor selection91VBEVBAT battery charging enable81WP5Wakeup pin WKUP5 polarity41WP4Wakeup pin WKUP4 polarity31WP3Wakeup pin WKUP3 polarity21WP2Wakeup pin WKUP2 polarity11WP1Wakeup pin WKUP1 polarity01SR1SR1Power status register 10x100x20read-only0x00000000WUFIInternal Wakeup interrupt flag151C2HFCPU2 Hold interrupt flag141AF802802.15.4 end of activity interrupt flag131BLEAFBLE end of activity interrupt flag121CRPEFEnable critical radio phase end of activity interrupt flag111WUF802802.15.4 wakeup interrupt flag101BLEWUFBLE wakeup interrupt flag91BORHFBORH interrupt flag81SDFBFStep Down converter forced in Bypass interrupt flag71CWUF5Wakeup flag 541CWUF4Wakeup flag 431CWUF3Wakeup flag 321CWUF2Wakeup flag 211CWUF1Wakeup flag 101SR2SR2Power status register 20x140x20read-only0x00000002PVMO3Peripheral voltage monitoring output: VDDA vs. 1.62 V141PVMO1Peripheral voltage monitoring output: VDDUSB vs. 1.2 V121PVDOPower voltage detector output111VOSFVoltage scaling flag101REGLPFLow-power regulator flag91REGLPSLow-power regulator started81SDSMPSFStep Down converter SMPS mode flag11SDBFStep Down converter Bypass mode flag01SCRSCRPower status clear register0x180x20write-only0x00000000CC2HFClear CPU2 Hold interrupt flag141C802AFClear 802.15.4 end of activity interrupt flag131CBLEAFClear BLE end of activity interrupt flag121CCRPEFClear critical radio phase end of activity interrupt flag111C802WUFClear 802.15.4 wakeup interrupt flag101CBLEWUFClear BLE wakeup interrupt flag91CBORHFClear BORH interrupt flag81CSMPSFBFClear SMPS Step Down converter forced in Bypass interrupt flag71CWUF5Clear wakeup flag 541CWUF4Clear wakeup flag 431CWUF3Clear wakeup flag 321CWUF2Clear wakeup flag 211CWUF1Clear wakeup flag 101CR5CR5Power control register 50x1C0x20read-write0x00004270SDEBEnable Step Down converter SMPS mode enabled151SDBENEnable Step Down converter Bypass mode enabled141SMPSCFGVOS configuration selection (non user)91BORHCBORH configuration selection81SDSCStep Down converter supplt startup current selection43SDVOSStep Down converter voltage output scaling04PUCRAPUCRAPower Port A pull-up control register0x200x20read-write0x00000000PU15Port A pull-up bit y (y=0..15)151PU13Port A pull-up bit y (y=0..15)131PU12Port A pull-up bit y (y=0..15)121PU11Port A pull-up bit y (y=0..15)111PU10Port A pull-up bit y (y=0..15)101PU9Port A pull-up bit y (y=0..15)91PU8Port A pull-up bit y (y=0..15)81PU7Port A pull-up bit y (y=0..15)71PU6Port A pull-up bit y (y=0..15)61PU5Port A pull-up bit y (y=0..15)51PU4Port A pull-up bit y (y=0..15)41PU3Port A pull-up bit y (y=0..15)31PU2Port A pull-up bit y (y=0..15)21PU1Port A pull-up bit y (y=0..15)11PU0Port A pull-up bit y (y=0..15)01PDCRAPDCRAPower Port A pull-down control register0x240x20read-write0x00000000PD14Port A pull-down bit y (y=0..15)141PD12Port A pull-down bit y (y=0..15)121PD11Port A pull-down bit y (y=0..15)111PD10Port A pull-down bit y (y=0..15)101PD9Port A pull-down bit y (y=0..15)91PD8Port A pull-down bit y (y=0..15)81PD7Port A pull-down bit y (y=0..15)71PD6Port A pull-down bit y (y=0..15)61PD5Port A pull-down bit y (y=0..15)51PD4Port A pull-down bit y (y=0..15)41PD3Port A pull-down bit y (y=0..15)31PD2Port A pull-down bit y (y=0..15)21PD1Port A pull-down bit y (y=0..15)11PD0Port A pull-down bit y (y=0..15)01PUCRBPUCRBPower Port B pull-up control register0x280x20read-write0x00000000PU15Port B pull-up bit y (y=0..15)151PU14Port B pull-up bit y (y=0..15)141PU13Port B pull-up bit y (y=0..15)131PU12Port B pull-up bit y (y=0..15)121PU11Port B pull-up bit y (y=0..15)111PU10Port B pull-up bit y (y=0..15)101PU9Port B pull-up bit y (y=0..15)91PU8Port B pull-up bit y (y=0..15)81PU7Port B pull-up bit y (y=0..15)71PU6Port B pull-up bit y (y=0..15)61PU5Port B pull-up bit y (y=0..15)51PU4Port B pull-up bit y (y=0..15)41PU3Port B pull-up bit y (y=0..15)31PU2Port B pull-up bit y (y=0..15)21PU1Port B pull-up bit y (y=0..15)11PU0Port B pull-up bit y (y=0..15)01PDCRBPDCRBPower Port B pull-down control register0x2C0x20read-write0x00000000PD15Port B pull-down bit y (y=0..15)151PD14Port B pull-down bit y (y=0..15)141PD13Port B pull-down bit y (y=0..15)131PD12Port B pull-down bit y (y=0..15)121PD11Port B pull-down bit y (y=0..15)111PD10Port B pull-down bit y (y=0..15)101PD9Port B pull-down bit y (y=0..15)91PD8Port B pull-down bit y (y=0..15)81PD7Port B pull-down bit y (y=0..15)71PD6Port B pull-down bit y (y=0..15)61PD5Port B pull-down bit y (y=0..15)51PD3Port B pull-down bit y (y=0..15)31PD2Port B pull-down bit y (y=0..15)21PD1Port B pull-down bit y (y=0..15)11PD0Port B pull-down bit y (y=0..15)01PUCRCPUCRCPower Port C pull-up control register0x300x20read-write0x00000000PU15Port C pull-up bit y (y=0..15)151PU14Port C pull-up bit y (y=0..15)141PU13Port C pull-up bit y (y=0..15)131PU12Port C pull-up bit y (y=0..15)121PU11Port C pull-up bit y (y=0..15)111PU10Port C pull-up bit y (y=0..15)101PU9Port C pull-up bit y (y=0..15)91PU8Port C pull-up bit y (y=0..15)81PU7Port C pull-up bit y (y=0..15)71PU6Port C pull-up bit y (y=0..15)61PU5Port C pull-up bit y (y=0..15)51PU4Port C pull-up bit y (y=0..15)41PU3Port C pull-up bit y (y=0..15)31PU2Port C pull-up bit y (y=0..15)21PU1Port C pull-up bit y (y=0..15)11PU0Port C pull-up bit y (y=0..15)01PDCRCPDCRCPower Port C pull-down control register0x340x20read-write0x00000000PD15Port C pull-down bit y (y=0..15)151PD14Port C pull-down bit y (y=0..15)141PD13Port C pull-down bit y (y=0..15)131PD12Port C pull-down bit y (y=0..15)121PD11Port C pull-down bit y (y=0..15)111PD10Port C pull-down bit y (y=0..15)101PD9Port C pull-down bit y (y=0..15)91PD8Port C pull-down bit y (y=0..15)81PD7Port C pull-down bit y (y=0..15)71PD6Port C pull-down bit y (y=0..15)61PD5Port C pull-down bit y (y=0..15)51PD4Port C pull-down bit y (y=0..15)41PD3Port C pull-down bit y (y=0..15)31PD2Port C pull-down bit y (y=0..15)21PD1Port C pull-down bit y (y=0..15)11PD0Port C pull-down bit y (y=0..15)01PUCRDPUCRDPower Port D pull-up control register0x380x20read-write0x00000000PU15Port D pull-up bit y (y=0..15)151PU14Port D pull-up bit y (y=0..15)141PU13Port D pull-up bit y (y=0..15)131PU12Port D pull-up bit y (y=0..15)121PU11Port D pull-up bit y (y=0..15)111PU10Port D pull-up bit y (y=0..15)101PU9Port D pull-up bit y (y=0..15)91PU8Port D pull-up bit y (y=0..15)81PU7Port D pull-up bit y (y=0..15)71PU6Port D pull-up bit y (y=0..15)61PU5Port D pull-up bit y (y=0..15)51PU4Port D pull-up bit y (y=0..15)41PU3Port D pull-up bit y (y=0..15)31PU2Port D pull-up bit y (y=0..15)21PU1Port D pull-up bit y (y=0..15)11PU0Port D pull-up bit y (y=0..15)01PDCRDPDCRDPower Port D pull-down control register0x3C0x20read-write0x00000000PD15Port D pull-down bit y (y=0..15)151PD14Port D pull-down bit y (y=0..15)141PD13Port D pull-down bit y (y=0..15)131PD12Port D pull-down bit y (y=0..15)121PD11Port D pull-down bit y (y=0..15)111PD10Port D pull-down bit y (y=0..15)101PD9Port D pull-down bit y (y=0..15)91PD8Port D pull-down bit y (y=0..15)81PD7Port D pull-down bit y (y=0..15)71PD6Port D pull-down bit y (y=0..15)61PD5Port D pull-down bit y (y=0..15)51PD4Port D pull-down bit y (y=0..15)41PD3Port D pull-down bit y (y=0..15)31PD2Port D pull-down bit y (y=0..15)21PD1Port D pull-down bit y (y=0..15)11PD0Port D pull-down bit y (y=0..15)01PUCREPUCREPower Port E pull-up control register0x400x20read-write0x00000000PU4Port E pull-up bit y (y=0..15)41PU3Port E pull-up bit y (y=0..15)31PU2Port E pull-up bit y (y=0..15)21PU1Port E pull-up bit y (y=0..15)11PU0Port E pull-up bit y (y=0..15)01PDCREPDCREPower Port E pull-down control register0x440x20read-write0x00000000PD4Port E pull-down bit y (y=0..15)41PD3Port E pull-down bit y (y=0..15)31PD2Port E pull-down bit y (y=0..15)21PD1Port E pull-down bit y (y=0..15)11PD0Port E pull-down bit y (y=0..15)01PUCRHPUCRHPower Port H pull-up control register0x580x20read-write0x00000000PU3Port H pull-up bit y (y=0..1)31PU1Port H pull-up bit y (y=0..1)11PU0Port H pull-up bit y (y=0..1)01PDCRHPDCRHPower Port H pull-down control register0x5C0x20read-write0x00000000PD3Port H pull-down bit y (y=0..1)31PD1Port H pull-down bit y (y=0..1)11PD0Port H pull-down bit y (y=0..1)01C2CR1C2CR1CPU2 Power control register 10x800x20read-write0x00000000EWKUP802802.15.4 external wakeup signal151BLEEWKUPBLE external wakeup signal141FPDSFlash power down mode during LPSleep for CPU251FPDRFlash power down mode during LPRun for CPU241LPMSLow-power mode selection for CPU203C2CR3C2CR3CPU2 Power control register 30x840x20read-write0X00008000EIWULEnable internal wakeup line for CPU2151APCApply pull-up and pull-down configuration for CPU2121E802WUPEnable 802.15.4 host wakeup interrupt for CPU2101EBLEWUPEnable BLE host wakeup interrupt for CPU291EWUP5Enable Wakeup pin WKUP5 for CPU241EWUP4Enable Wakeup pin WKUP4 for CPU231EWUP3Enable Wakeup pin WKUP3 for CPU221EWUP2Enable Wakeup pin WKUP2 for CPU211EWUP1Enable Wakeup pin WKUP1 for CPU201EXTSCREXTSCRPower status clear register0x880x200x00000000C2DSCPU2 deepsleep mode151read-onlyC1DSCPU1 deepsleep mode141read-onlyCRPFCritical Radio system phase131read-onlyC2STOPFSystem Stop flag for CPU2111read-onlyC2SBFSystem Standby flag for CPU2101read-onlyC1STOPFSystem Stop flag for CPU191read-onlyC1SBFSystem Standby flag for CPU181read-onlyCCRPFClear Critical Radio system phase21write-onlyC2CSSFClear CPU2 Stop Standby flags11write-onlyC1CSSFClear CPU1 Stop Standby flags01write-onlySYSCFG_VREFBUFSYSCFG_VREFBUFSYSCFG_VREFBUF0x400100000x00x200registersSYSCFG_MEMRMPSYSCFG_MEMRMPmemory remap register0x00x20read-write0x00000000MEM_MODEMemory mapping selection03SYSCFG_CFGR1SYSCFG_CFGR1configuration register 10x40x20read-write0x7C000001FPU_IEFloating Point Unit interrupts enable bits266I2C3_FMPI2C3 Fast-mode Plus driving capability activation221I2C1_FMPI2C1 Fast-mode Plus driving capability activation201I2C_PB9_FMPFast-mode Plus (Fm+) driving capability activation on PB9191I2C_PB8_FMPFast-mode Plus (Fm+) driving capability activation on PB8181I2C_PB7_FMPFast-mode Plus (Fm+) driving capability activation on PB7171I2C_PB6_FMPFast-mode Plus (Fm+) driving capability activation on PB6161BOOSTENI/O analog switch voltage booster enable81SYSCFG_EXTICR1SYSCFG_EXTICR1external interrupt configuration register 10x80x20read-write0x00000000EXTI3EXTI 3 configuration bits123EXTI2EXTI 2 configuration bits83EXTI1EXTI 1 configuration bits43EXTI0EXTI 0 configuration bits03SYSCFG_EXTICR2SYSCFG_EXTICR2external interrupt configuration register 20xC0x20read-write0x00000000EXTI7EXTI 7 configuration bits123EXTI6EXTI 6 configuration bits83EXTI5EXTI 5 configuration bits43EXTI4EXTI 4 configuration bits03SYSCFG_EXTICR3SYSCFG_EXTICR3external interrupt configuration register 30x100x20read-write0x00000000EXTI11EXTI 11 configuration bits123EXTI10EXTI 10 configuration bits83EXTI9EXTI 9 configuration bits43EXTI8EXTI 8 configuration bits03SYSCFG_EXTICR4SYSCFG_EXTICR4external interrupt configuration register 40x140x20read-write0x00000000EXTI15EXTI15 configuration bits123EXTI14EXTI14 configuration bits83EXTI13EXTI13 configuration bits43EXTI12EXTI12 configuration bits03SYSCFG_SCSRSYSCFG_SCSRSCSR0x180x200x00000000SRAM2BSYSRAM2 busy by erase operation11read-onlySRAM2ERSRAM2 Erase01read-writeC2RFDCPU2 SRAM fetch (execution) disable.311read-writeSYSCFG_CFGR2SYSCFG_CFGR2CFGR20x1C0x200x00000000SPFSRAM2 parity error flag81read-writeECCLECC Lock31write-onlyPVDLPVD lock enable bit21write-onlySPLSRAM2 parity lock bit11write-onlyCLLCortex-M4 LOCKUP (Hardfault) output enable bit01write-onlySYSCFG_SWPRSYSCFG_SWPRSRAM2 write protection register0x200x20write-only0x00000000P31WPSRAM2 page 31 write protection311P30WPP30WP301P29WPP29WP291P28WPP28WP281P27WPP27WP271P26WPP26WP261P25WPP25WP251P24WPP24WP241P23WPP23WP231P22WPP22WP221P21WPP21WP211P20WPP20WP201P19WPP19WP191P18WPP18WP181P17WPP17WP171P16WPP16WP161P15WPP15WP151P14WPP14WP141P13WPP13WP131P12WPP12WP121P11WPP11WP111P10WPP10WP101P9WPP9WP91P8WPP8WP81P7WPP7WP71P6WPP6WP61P5WPP5WP51P4WPP4WP41P3WPP3WP31P2WPP2WP21P1WPP1WP11P0WPP0WP01SYSCFG_SKRSYSCFG_SKRSKR0x240x20write-only0x00000000KEYSRAM2 write protection key for software erase08SYSCFG_SWPR2SYSCFG_SWPR2SRAM2 write protection register 20x280x20write-only0x00000000P63WPSRAM2 page 63 write protection311P62WPP62WP301P61WPP61WP291P60WPP60WP281P59WPP59WP271P58WPP58WP261P57WPP57WP251P56WPP56WP241P55WPP55WP231P54WPP54WP221P53WPP53WP211P52WPP52WP201P51WPP51WP191P50WPP50WP181P49WPP49WP171P48WPP48WP161P47WPP47WP151P46WPP46WP141P45WPP45WP131P44WPP44WP121P43WPP43WP111P42WPP42WP101P41WPP41WP91P40WPP40WP81P39WPP39WP71P38WPP38WP61P37WPP37WP51P36WPP36WP41P35WPP35WP31P34WPP34WP21P33WPP33WP11P32WPP32WP01VREFBUF_CSRVREFBUF_CSRVREF control and status register0x300x200x00000002ENVRVoltage reference buffer enable01read-writeHIZHigh impedance mode11read-writeVRSVoltage reference scale21read-writeVRRVoltage reference buffer ready31read-onlyVREFBUF_CCRVREFBUF_CCRcalibration control register0x340x20read-write0x00000000TRIMTrimming code06SYSCFG_IMR1SYSCFG_IMR1CPU1 interrupt mask register 10x1000x20read-write0x00000000TIM1IMPeripheral TIM1 interrupt mask to CPU1131TIM16IMPeripheral TIM16 interrupt mask to CPU1141TIM17IMPeripheral TIM17 interrupt mask to CPU1151EXIT5IMPeripheral EXIT5 interrupt mask to CPU1211EXIT6IMPeripheral EXIT6 interrupt mask to CPU1221EXIT7IMPeripheral EXIT7 interrupt mask to CPU1231EXIT8IMPeripheral EXIT8 interrupt mask to CPU1241EXIT9IMPeripheral EXIT9 interrupt mask to CPU1251EXIT10IMPeripheral EXIT10 interrupt mask to CPU1261EXIT11IMPeripheral EXIT11 interrupt mask to CPU1271EXIT12IMPeripheral EXIT12 interrupt mask to CPU1281EXIT13IMPeripheral EXIT13 interrupt mask to CPU1291EXIT14IMPeripheral EXIT14 interrupt mask to CPU1301EXIT15IMPeripheral EXIT15 interrupt mask to CPU1311SYSCFG_IMR2SYSCFG_IMR2CPU1 interrupt mask register 20x1040x20read-write0x00000000PVM3IMPeripheral PVM3 interrupt mask to CPU1181PVM1IMPeripheral PVM1 interrupt mask to CPU1161PVDIMPeripheral PVD interrupt mask to CPU1201SYSCFG_C2IMR1SYSCFG_C2IMR1CPU2 interrupt mask register 10x1080x20read-write0x00000000RTCSTAMPPeripheral RTCSTAMP interrupt mask to CPU201RTCWKUPPeripheral RTCWKUP interrupt mask to CPU231RTCALARMPeripheral RTCALARM interrupt mask to CPU241RCCPeripheral RCC interrupt mask to CPU251FLASHPeripheral FLASH interrupt mask to CPU261PKAPeripheral PKA interrupt mask to CPU281RNGPeripheral RNG interrupt mask to CPU291AES1Peripheral AES1 interrupt mask to CPU2101COMPPeripheral COMP interrupt mask to CPU2111ADCPeripheral ADC interrupt mask to CPU2121SYSCFG_C2IMR2SYSCFG_C2IMR2CPU2 interrupt mask register 10x10C0x20read-write0x00000000DMA1_CH1_IMPeripheral DMA1 CH1 interrupt mask to CPU201DMA1_CH2_IMPeripheral DMA1 CH2 interrupt mask to CPU211DMA1_CH3_IMPeripheral DMA1 CH3 interrupt mask to CPU221DMA1_CH4_IMPeripheral DMA1 CH4 interrupt mask to CPU231DMA1_CH5_IMPeripheral DMA1 CH5 interrupt mask to CPU241DMA1_CH6_IMPeripheral DMA1 CH6 interrupt mask to CPU251DMA1_CH7_IMPeripheral DMA1 CH7 interrupt mask to CPU261DMA2_CH1_IMPeripheral DMA2 CH1 interrupt mask to CPU181DMA2_CH2_IMPeripheral DMA2 CH2 interrupt mask to CPU191DMA2_CH3_IMPeripheral DMA2 CH3 interrupt mask to CPU1101DMA2_CH4_IMPeripheral DMA2 CH4 interrupt mask to CPU1111DMA2_CH5_IMPeripheral DMA2 CH5 interrupt mask to CPU1121DMA2_CH6_IMPeripheral DMA2 CH6 interrupt mask to CPU1131DMA2_CH7_IMPeripheral DMA2 CH7 interrupt mask to CPU1141DMAM_UX1_IMPeripheral DMAM UX1 interrupt mask to CPU1151PVM1IMPeripheral PVM1IM interrupt mask to CPU1161PVM3IMPeripheral PVM3IM interrupt mask to CPU1181PVDIMPeripheral PVDIM interrupt mask to CPU1201TSCIMPeripheral TSCIM interrupt mask to CPU1211LCDIMPeripheral LCDIM interrupt mask to CPU1221SYSCFG_SIPCRSYSCFG_SIPCRsecure IP control register0x1100x20read-write0x00000000SAES1Enable AES1 KEY[7:0] security.01SAES2Enable AES2 security.11SPKAEnable PKA security21SRNGEnable True RNG security31COMPComparator instance 1COMP0x400102000x00x9registersCOMPCOMP2 & COMP1 interrupt through + AIEC[21:20]22COMP1_CSRCOMP1_CSRComparator control and status register0x00x200x00000000COMP1_ENComparator enable01read-writeCOMP1_PWRMODEComparator power mode22read-writeCOMP1_INMSELComparator input minus selection43read-writeCOMP1_INPSELComparator input plus selection72read-writeCOMP1_POLARITYComparator output polarity151read-writeCOMP1_HYSTComparator hysteresis162read-writeCOMP1_BLANKINGComparator blanking source183read-writeCOMP1_BRGENComparator voltage scaler enable221read-writeCOMP1_SCALENComparator scaler bridge enable231read-writeCOMP1_INMESELComparator input minus extended selection252read-writeCOMP1_VALUEComparator output level301read-onlyCOMP1_LOCKComparator lock311read-writeCOMP2_CSRCOMP2_CSRComparator 2 control and status register0x40x200x00000000COMP2_ENComparator 2 enable bit01read-writeCOMP2_PWRMODEPower Mode of the comparator 222read-writeCOMP2_INMSELComparator 2 input minus selection bits42read-writeCOMP2_INPSELComparator 1 input plus selection bit72read-writeCOMP2_WINMODEWindows mode selection bit91read-writeCOMP2_POLARITYComparator 2 polarity selection bit151read-writeCOMP2_HYSTComparator 2 hysteresis selection bits162read-writeCOMP2_BLANKINGComparator 2 blanking source selection bits183read-writeCOMP2_BRGENScaler bridge enable221read-writeCOMP2_SCALENVoltage scaler enable bit231read-writeCOMP2_INMESELcomparator 2 input minus extended selection bits.252read-writeCOMP2_VALUEComparator 2 output status bit301read-onlyCOMP2_LOCKCSR register lock bit311read-writeRNGRandom number generatorRNG0x580010000x00x400registersTrue_RNGTrue random number generator + interrupt53CRCRcontrol register0x00x20read-write0x00000000RNGENRandom number generator enable21IEInterrupt enable31BYPBypass mode enable61SRSRstatus register0x40x200x00000000SEISSeed error interrupt status61read-writeCEISClock error interrupt status51read-writeSECSSeed error current status21read-onlyCECSClock error current status11read-onlyDRDYData ready01read-onlyDRDRdata register0x80x20read-only0x00000000RNDATARandom data032AES1Advanced encryption standard hardware accelerator 1AES10x500600000x00x400registersAES1AES1 global interrupt51CRCRcontrol register0x00x20read-write0x00000000NPBLBNumber of padding bytes in last block of payload204KEYSIZEKey size selection181CHMOD2AES chaining mode Bit2161GCMPHUsed only for GCM, CCM and GMAC algorithms and has no effect when other algorithms are selected132DMAOUTENEnable DMA management of data output phase121DMAINENEnable DMA management of data input phase111ERRIEError interrupt enable101CCFIECCF flag interrupt enable91ERRCError clear81CCFCComputation Complete Flag Clear71CHMOD10AES chaining mode Bit1 Bit052MODEAES operating mode32DATATYPEData type selection (for data in and data out to/from the cryptographic block)12ENAES enable01SRSRstatus register0x40x20read-only0x00000000BUSYBusy flag31WRERRWrite error flag21RDERRRead error flag11CCFComputation complete flag01DINRDINRdata input register0x80x20read-write0x00000000AES_DINRData Input Register032DOUTRDOUTRdata output register0xC0x20read-only0x00000000AES_DOUTRData output register032KEYR0KEYR0key register 00x100x20read-write0x00000000AES_KEYR0Data Output Register (LSB key [31:0])032KEYR1KEYR1key register 10x140x20read-write0x00000000AES_KEYR1AES key register (key [63:32])032KEYR2KEYR2key register 20x180x20read-write0x00000000AES_KEYR2AES key register (key [95:64])032KEYR3KEYR3key register 30x1C0x20read-write0x00000000AES_KEYR3AES key register (MSB key [127:96])032IVR0IVR0initialization vector register 00x200x20read-write0x00000000AES_IVR0initialization vector register (LSB IVR [31:0])032IVR1IVR1initialization vector register 10x240x20read-write0x00000000AES_IVR1Initialization Vector Register (IVR [63:32])032IVR2IVR2initialization vector register 20x280x20read-write0x00000000AES_IVR2Initialization Vector Register (IVR [95:64])032IVR3IVR3initialization vector register 30x2C0x20read-write0x00000000AES_IVR3Initialization Vector Register (MSB IVR [127:96])032KEYR4KEYR4key register 40x300x20read-write0x00000000AES_KEYR4AES key register (MSB key [159:128])032KEYR5KEYR5key register 50x340x20read-write0x00000000AES_KEYR5AES key register (MSB key [191:160])032KEYR6KEYR6key register 60x380x20read-write0x00000000AES_KEYR6AES key register (MSB key [223:192])032KEYR7KEYR7key register 70x3C0x20read-write0x00000000AES_KEYR7AES key register (MSB key [255:224])032SUSP0RSUSP0RAES suspend register 00x400x20read-write0x00000000AES_SUSP0RAES suspend register 0032SUSP1RSUSP1RAES suspend register 10x440x20read-write0x00000000AES_SUSP1RAES suspend register 1032SUSP2RSUSP2RAES suspend register 20x480x20read-write0x00000000AES_SUSP2RAES suspend register 2032SUSP3RSUSP3RAES suspend register 30x4C0x20read-write0x00000000AES_SUSP3RAES suspend register 3032SUSP4RSUSP4RAES suspend register 40x500x20read-write0x00000000AES_SUSP4RAES suspend register 4032SUSP5RSUSP5RAES suspend register 50x540x20read-write0x00000000AES_SUSP5RAES suspend register 5032SUSP6RSUSP6RAES suspend register 60x580x20read-write0x00000000AES_SUSP6RAES suspend register 6032SUSP7RSUSP7RAES suspend register 70x5C0x20read-write0x00000000AES_SUSP7RAES suspend register 7032HWCFRHWCFRAES hardware configuration register0x3F00x20read-only0x00000002CFG4HW Generic 4124CFG3HW Generic 384CFG2HW Generic 244CFG1HW Generic 104VERRVERRAES version register0x3F40x20read-only0x00000010MAJREVMajor revision44MINREVMinor revision04IPIDRIPIDRAES identification register0x3F80x20read-only0x00170023IDIdentification code032SIDRSIDRAES size ID register0x3FC0x20read-only0xA3C5DD01IDSize Identification code032AES2Advanced encryption standard hardware accelerator 1AES10x580018000x00x400registersAES2AES2 global interrupt52CRCRcontrol register0x00x20read-write0x00000000NPBLBNumber of padding bytes in last block of payload204KEYSIZEKey size selection181CHMOD2AES chaining mode Bit2161GCMPHUsed only for GCM, CCM and GMAC algorithms and has no effect when other algorithms are selected132DMAOUTENEnable DMA management of data output phase121DMAINENEnable DMA management of data input phase111ERRIEError interrupt enable101CCFIECCF flag interrupt enable91ERRCError clear81CCFCComputation Complete Flag Clear71CHMOD10AES chaining mode Bit1 Bit052MODEAES operating mode32DATATYPEData type selection (for data in and data out to/from the cryptographic block)12ENAES enable01SRSRstatus register0x40x20read-only0x00000000BUSYBusy flag31WRERRWrite error flag21RDERRRead error flag11CCFComputation complete flag01DINRDINRdata input register0x80x20read-write0x00000000AES_DINRData Input Register032DOUTRDOUTRdata output register0xC0x20read-only0x00000000AES_DOUTRData output register032KEYR0KEYR0key register 00x100x20read-write0x00000000AES_KEYR0Data Output Register (LSB key [31:0])032KEYR1KEYR1key register 10x140x20read-write0x00000000AES_KEYR1AES key register (key [63:32])032KEYR2KEYR2key register 20x180x20read-write0x00000000AES_KEYR2AES key register (key [95:64])032KEYR3KEYR3key register 30x1C0x20read-write0x00000000AES_KEYR3AES key register (MSB key [127:96])032IVR0IVR0initialization vector register 00x200x20read-write0x00000000AES_IVR0initialization vector register (LSB IVR [31:0])032IVR1IVR1initialization vector register 10x240x20read-write0x00000000AES_IVR1Initialization Vector Register (IVR [63:32])032IVR2IVR2initialization vector register 20x280x20read-write0x00000000AES_IVR2Initialization Vector Register (IVR [95:64])032IVR3IVR3initialization vector register 30x2C0x20read-write0x00000000AES_IVR3Initialization Vector Register (MSB IVR [127:96])032KEYR4KEYR4key register 40x300x20read-write0x00000000AES_KEYR4AES key register (MSB key [159:128])032KEYR5KEYR5key register 50x340x20read-write0x00000000AES_KEYR5AES key register (MSB key [191:160])032KEYR6KEYR6key register 60x380x20read-write0x00000000AES_KEYR6AES key register (MSB key [223:192])032KEYR7KEYR7key register 70x3C0x20read-write0x00000000AES_KEYR7AES key register (MSB key [255:224])032SUSP0RSUSP0RAES suspend register 00x400x20read-write0x00000000AES_SUSP0RAES suspend register 0032SUSP1RSUSP1RAES suspend register 10x440x20read-write0x00000000AES_SUSP1RAES suspend register 1032SUSP2RSUSP2RAES suspend register 20x480x20read-write0x00000000AES_SUSP2RAES suspend register 2032SUSP3RSUSP3RAES suspend register 30x4C0x20read-write0x00000000AES_SUSP3RAES suspend register 3032SUSP4RSUSP4RAES suspend register 40x500x20read-write0x00000000AES_SUSP4RAES suspend register 4032SUSP5RSUSP5RAES suspend register 50x540x20read-write0x00000000AES_SUSP5RAES suspend register 5032SUSP6RSUSP6RAES suspend register 60x580x20read-write0x00000000AES_SUSP6RAES suspend register 6032SUSP7RSUSP7RAES suspend register 70x5C0x20read-write0x00000000AES_SUSP7RAES suspend register 7032HWCFRHWCFRAES hardware configuration register0x600x20read-only0x00000002CFG4HW Generic 4124CFG3HW Generic 384CFG2HW Generic 244CFG1HW Generic 104VERRVERRAES version register0x640x20read-only0x00000010MAJREVMajor revision44MINREVMinor revision04IPIDRIPIDRAES identification register0x680x20read-only0x00170023IDIdentification code032SIDRSIDRAES size ID register0x6C0x20read-only0x00170023IDSize Identification code032HSEMHSEMHardware_Semaphore0x580014000x00x400registersHSEMSemaphore interrupt 0 to CPU146R0R0Semaphore 0 register0x00x20read-write0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08R1R1Semaphore 1 register0x40x20read-write0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08R2R2Semaphore 2 register0x80x20read-write0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08R3R3Semaphore 3 register0xC0x20read-write0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08R4R4Semaphore 4 register0x100x20read-write0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08R5R5Semaphore 5 register0x140x20read-write0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08R6R6Semaphore 6 register0x180x20read-write0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08R7R7Semaphore 7 register0x1C0x20read-write0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08R8R8Semaphore 8 register0x200x20read-write0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08R9R9Semaphore 9 register0x240x20read-write0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08R10R10Semaphore 10 register0x280x20read-write0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08R11R11Semaphore 11 register0x2C0x20read-write0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08R12R12Semaphore 12 register0x300x20read-write0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08R13R13Semaphore 13 register0x340x20read-write0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08R14R14Semaphore 14 register0x380x20read-write0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08R15R15Semaphore 15 register0x3C0x20read-write0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08R16R16Semaphore 16 register0x400x20read-write0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08R17R17Semaphore 17 register0x440x20read-write0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08R18R18Semaphore 18 register0x480x20read-write0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08R19R19Semaphore 19 register0x4C0x20read-write0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08R20R20Semaphore 20 register0x500x20read-write0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08R21R21Semaphore 21 register0x540x20read-write0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08R22R22Semaphore 22 register0x580x20read-write0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08R23R23Semaphore 23 register0x5C0x20read-write0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08R24R24Semaphore 24 register0x600x20read-write0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08R25R25Semaphore 25 register0x640x20read-write0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08R26R26Semaphore 26 register0x680x20read-write0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08R27R27Semaphore 27 register0x6C0x20read-write0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08R28R28Semaphore 28 register0x700x20read-write0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08R29R29Semaphore 29 register0x740x20read-write0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08R30R30Semaphore 30 register0x780x20read-write0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08R31R31Semaphore 31 register0x7C0x20read-write0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08RLR0RLR0Semaphore 0 read lock register0x800x20read-only0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08RLR1RLR1Semaphore 1 read lock register0x840x20read-only0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08RLR2RLR2Semaphore 2 read lock register0x880x20read-only0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08RLR3RLR3Semaphore 3 read lock register0x8C0x20read-only0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08RLR4RLR4Semaphore 4 read lock read lock register0x900x20read-only0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08RLR5RLR5Semaphore 5 read lock register0x940x20read-only0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08RLR6RLR6Semaphore 6 read lock register0x980x20read-only0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08RLR7RLR7Semaphore 7 read lock register0x9C0x20read-only0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08RLR8RLR8Semaphore 8 read lock register0xA00x20read-only0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08RLR9RLR9Semaphore 9 read lock register0xA40x20read-only0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08RLR10RLR10Semaphore 10 read lock register0xA80x20read-only0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08RLR11RLR11Semaphore 11 read lock register0xAC0x20read-only0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08RLR12RLR12Semaphore 12 read lock register0xB00x20read-only0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08RLR13RLR13Semaphore 13 read lock register0xB40x20read-only0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08RLR14RLR14Semaphore 14 read lock register0xB80x20read-only0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08RLR15RLR15Semaphore 15 read lock register0xBC0x20read-only0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08RLR16RLR16Semaphore 16 read lock register0xC00x20read-only0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08RLR17RLR17Semaphore 17 read lock register0xC40x20read-only0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08RLR18RLR18Semaphore 18 read lock register0xC80x20read-only0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08RLR19RLR19Semaphore 19 read lock register0xCC0x20read-only0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08RLR20RLR20Semaphore 20 read lock register0xD00x20read-only0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08RLR21RLR21Semaphore 21 read lock register0xD40x20read-only0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08RLR22RLR22Semaphore 22 read lock register0xD80x20read-only0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08RLR23RLR23Semaphore 23 read lock register0xDC0x20read-only0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08RLR24RLR24Semaphore 24 read lock register0xE00x20read-only0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08RLR25RLR25Semaphore 25 read lock register0xE40x20read-only0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08RLR26RLR26Semaphore 26 read lock register0xE80x20read-only0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08RLR27RLR27Semaphore 27 read lock register0xEC0x20read-only0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08RLR28RLR28Semaphore 28 read lock register0xF00x20read-only0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08RLR29RLR29Semaphore 29 read lock register0xF40x20read-only0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08RLR30RLR30Semaphore 30 read lock register0xF80x20read-only0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08RLR31RLR31Semaphore 31 read lock register0xFC0x20read-only0x00000000LOCKlock indication311COREIDSemaphore CoreID84PROCIDSemaphore ProcessID08CRCRSemaphore Clear register0x1400x20read-write0x00000000KEYSemaphore clear Key1616COREIDCoreID of semaphore to be cleared84KEYRKEYRInterrupt clear register0x1440x20read-write0x00000000KEYSemaphore Clear Key1616HWCFGR2HWCFGR2Semaphore hardware configuration register 20x3EC0x20read-only0x00000084MASTERID4Hardware Configuration valid bus masters ID4124MASTERID3Hardware Configuration valid bus masters ID384MASTERID2Hardware Configuration valid bus masters ID244MASTERID1Hardware Configuration valid bus masters ID104HWCFGR1HWCFGR1Semaphore hardware configuration register 10x3F00x20read-only0x00000220NBINTHardware Configuration number of interrupts supported number of master IDs84NBSEMHardware Configuration number of semaphores08VERRVERRHSEM version register0x3F40x20read-only0x00000020MAJREVMajor Revision44MINREVMinor Revision04IPIDRIPIDRHSEM indentification register0x3F80x20read-only0x00100072IDIdentification Code032SIDRSIDRHSEM size indentification register0x3FC0x20read-only0xA3C5DD01SIDSize Identification Code032C1IER0C1IER0HSEM Interrupt enable register0x1000x20read-write0x00000000ISEmCPU(n) semaphore m enable bit032C1ICRC1ICRHSEM Interrupt clear register0x1040x20read-write0x00000000ISCmCPU(n) semaphore m clear bit032C1ISRC1ISRHSEM Interrupt status register0x1080x20read-only0x00000000ISFmCPU(n) semaphore m status bit before enable (mask)032C1MISRC1MISRHSEM Masked interrupt status register0x10C0x20read-only0x00000000MISFmmasked CPU(n) semaphore m status bit after enable (mask).032C2IER0C2IER0HSEM Interrupt enable register0x1100x20read-write0x00000000ISEmCPU(2) semaphore m enable bit.032C2ICRC2ICRHSEM Interrupt clear register0x1140x20read-write0x00000000ISCmCPU(2) semaphore m clear bit032C2ISRC2ISRHSEM Interrupt status register0x1180x20read-only0x00000000ISFmCPU(2) semaphore m status bit before enable (mask).032C2MISRC2MISRHSEM Masked interrupt status register0x11C0x20read-only0x00000000MISFmmasked CPU(2) semaphore m status bit after enable (mask).032ADCAnalog to Digital Converter instance 1ADC0x500400000x00x400registersADC1ADC1 global interrupt18ISRISRADC interrupt and status register0x00x20read-write0x00000000JQOVFADC group injected contexts queue overflow flag101AWD3ADC analog watchdog 3 flag91AWD2ADC analog watchdog 2 flag81AWD1ADC analog watchdog 1 flag71JEOSADC group injected end of sequence conversions flag61JEOCADC group injected end of unitary conversion flag51OVRADC group regular overrun flag41EOSADC group regular end of sequence conversions flag31EOCADC group regular end of unitary conversion flag21EOSMPADC group regular end of sampling flag11ADRDYADC ready flag01IERIERADC interrupt enable register0x40x20read-write0x00000000JQOVFIEADC group injected contexts queue overflow interrupt101AWD3IEADC analog watchdog 3 interrupt91AWD2IEADC analog watchdog 2 interrupt81AWD1IEADC analog watchdog 1 interrupt71JEOSIEADC group injected end of sequence conversions interrupt61JEOCIEADC group injected end of unitary conversion interrupt51OVRIEADC group regular overrun interrupt41EOSIEADC group regular end of sequence conversions interrupt31EOCIEADC group regular end of unitary conversion interrupt21EOSMPIEADC group regular end of sampling interrupt11ADRDYIEADC ready interrupt01CRCRADC control register0x80x20read-write0x00000000ADCALADC calibration311ADCALDIFADC differential mode for calibration301DEEPPWDADC deep power down enable291ADVREGENADC voltage regulator enable281JADSTPADC group injected conversion stop51ADSTPADC group regular conversion stop41JADSTARTADC group injected conversion start31ADSTARTADC group regular conversion start21ADDISADC disable11ADENADC enable01CFGRCFGRADC configuration register 10xC0x20read-write0x80000000JQDISADC group injected contexts queue disable311AWDCH1CHADC analog watchdog 1 monitored channel selection265JAUTOADC group injected automatic trigger mode251JAWD1ENADC analog watchdog 1 enable on scope ADC group injected241AWD1ENADC analog watchdog 1 enable on scope ADC group regular231AWD1SGLADC analog watchdog 1 monitoring a single channel or all channels221JQMADC group injected contexts queue mode211JDISCENADC group injected sequencer discontinuous mode201DISCNUMADC group regular sequencer discontinuous number of ranks173DISCENADC group regular sequencer discontinuous mode161AUTDLYADC low power auto wait141CONTADC group regular continuous conversion mode131OVRMODADC group regular overrun configuration121EXTENADC group regular external trigger polarity102EXTSELADC group regular external trigger source64ALIGNADC data alignement51RESADC data resolution32DMACFGADC DMA transfer configuration11DMAENADC DMA transfer enable01CFGR2CFGR2ADC configuration register 20x100x20read-write0x00000000ROVSMADC oversampling mode managing interlaced conversions of ADC group regular and group injected101TOVSADC oversampling discontinuous mode (triggered mode) for ADC group regular91OVSSADC oversampling shift54OVSRADC oversampling ratio23JOVSEADC oversampler enable on scope ADC group injected11ROVSEADC oversampler enable on scope ADC group regular01SMPR1SMPR1ADC sampling time register 10x140x20read-write0x00000000SMP9ADC channel 9 sampling time selection273SMP8ADC channel 8 sampling time selection243SMP7ADC channel 7 sampling time selection213SMP6ADC channel 6 sampling time selection183SMP5ADC channel 5 sampling time selection153SMP4ADC channel 4 sampling time selection123SMP3ADC channel 3 sampling time selection93SMP2ADC channel 2 sampling time selection63SMP1ADC channel 1 sampling time selection33SMPR2SMPR2ADC sampling time register 20x180x20read-write0x00000000SMP18ADC channel 18 sampling time selection243SMP17ADC channel 17 sampling time selection213SMP16ADC channel 16 sampling time selection183SMP15ADC channel 15 sampling time selection153SMP14ADC channel 14 sampling time selection123SMP13ADC channel 13 sampling time selection93SMP12ADC channel 12 sampling time selection63SMP11ADC channel 11 sampling time selection33SMP10ADC channel 10 sampling time selection03TR1TR1ADC analog watchdog 1 threshold register0x200x20read-write0x0FFF0000HT1ADC analog watchdog 1 threshold high1612LT1ADC analog watchdog 1 threshold low012TR2TR2ADC analog watchdog 2 threshold register0x240x20read-write0x0FFF0000HT2ADC analog watchdog 2 threshold high168LT2ADC analog watchdog 2 threshold low08TR3TR3ADC analog watchdog 3 threshold register0x280x20read-write0x0FFF0000HT3ADC analog watchdog 3 threshold high168LT3ADC analog watchdog 3 threshold low08SQR1SQR1ADC group regular sequencer ranks register 10x300x20read-write0x00000000SQ4ADC group regular sequencer rank 4245SQ3ADC group regular sequencer rank 3185SQ2ADC group regular sequencer rank 2125SQ1ADC group regular sequencer rank 165L3L304SQR2SQR2ADC group regular sequencer ranks register 20x340x20read-write0x00000000SQ9ADC group regular sequencer rank 9245SQ8ADC group regular sequencer rank 8185SQ7ADC group regular sequencer rank 7125SQ6ADC group regular sequencer rank 665SQ5ADC group regular sequencer rank 505SQR3SQR3ADC group regular sequencer ranks register 30x380x20read-write0x00000000SQ14ADC group regular sequencer rank 14245SQ13ADC group regular sequencer rank 13185SQ12ADC group regular sequencer rank 12125SQ11ADC group regular sequencer rank 1165SQ10ADC group regular sequencer rank 1005SQR4SQR4ADC group regular sequencer ranks register 40x3C0x20read-write0x00000000SQ16ADC group regular sequencer rank 1665SQ15ADC group regular sequencer rank 1505DRDRADC group regular conversion data register0x400x200x00000000RDATA_0_6Regular Data converted 0_606read-writeRDATA_7_151579read-onlyJSQRJSQRADC group injected sequencer register0x4C0x20read-write0x00000000JSQ4ADC group injected sequencer rank 4265JSQ3ADC group injected sequencer rank 3205JSQ2ADC group injected sequencer rank 2145JSQ1ADC group injected sequencer rank 185JEXTENADC group injected external trigger polarity62JEXTSELADC group injected external trigger source24JLADC group injected sequencer scan length02OFR1OFR1ADC offset number 1 register0x600x20read-write0x00000000OFFSET1_ENADC offset number 1 enable311OFFSET1_CHADC offset number 1 channel selection265OFFSET1ADC offset number 1 offset level012OFR2OFR2ADC offset number 2 register0x640x20read-write0x00000000OFFSET2_ENADC offset number 2 enable311OFFSET2_CHADC offset number 2 channel selection265OFFSET2ADC offset number 2 offset level012OFR3OFR3ADC offset number 3 register0x680x20read-write0x00000000OFFSET3_ENADC offset number 3 enable311OFFSET3_CHADC offset number 3 channel selection265OFFSET3ADC offset number 3 offset level012OFR4OFR4ADC offset number 4 register0x6C0x20read-write0x00000000OFFSET4_ENADC offset number 4 enable311OFFSET4_CHADC offset number 4 channel selection265OFFSET4ADC offset number 4 offset level012JDR1JDR1ADC group injected sequencer rank 1 register0x800x20read-only0x00000000JDATA1ADC group injected sequencer rank 1 conversion data016JDR2JDR2ADC group injected sequencer rank 2 register0x840x20read-only0x00000000JDATA2ADC group injected sequencer rank 2 conversion data016JDR3JDR3ADC group injected sequencer rank 3 register0x880x20read-only0x00000000JDATA3ADC group injected sequencer rank 3 conversion data016JDR4JDR4ADC group injected sequencer rank 4 register0x8C0x20read-only0x00000000JDATA4ADC group injected sequencer rank 4 conversion data016AWD2CRAWD2CRADC analog watchdog 2 configuration register0xA00x20read-write0x00000000AWD2CHADC analog watchdog 2 monitored channel selection019AWD3CRAWD3CRADC analog watchdog 3 configuration register0xA40x20read-write0x00000000AWD3CHADC analog watchdog 3 monitored channel selection019DIFSELDIFSELADC channel differential or single-ended mode selection register0xB00x200x00000000DIFSEL_0ADC channel differential or single-ended mode for channel 001read-onlyDIFSEL_1_15ADC channel differential or single-ended mode for channels 1 to 15115read-writeDIFSEL_16_18ADC channel differential or single-ended mode for channels 18 to 16163read-onlyCALFACTCALFACTADC calibration factors register0xB40x20read-write0x00000000CALFACT_DADC calibration factor in differential mode167CALFACT_SADC calibration factor in single-ended mode07CCRCCRADC common control register0x3080x20read-write0x00000000VBATENVBAT enable241TSENTemperature sensor enable231VREFENVREFEN221PRESCADC prescaler184CKMODEADC clock mode162GPIOAGeneral-purpose I/OsGPIO0x480000000x00x400registersMODERMODERGPIO port mode register0x00x20read-write0xABFFFFFFMODER15Port x configuration bits (y = 0..15)302MODER14Port x configuration bits (y = 0..15)282MODER13Port x configuration bits (y = 0..15)262MODER12Port x configuration bits (y = 0..15)242MODER11Port x configuration bits (y = 0..15)222MODER10Port x configuration bits (y = 0..15)202MODER9Port x configuration bits (y = 0..15)182MODER8Port x configuration bits (y = 0..15)162MODER7Port x configuration bits (y = 0..15)142MODER6Port x configuration bits (y = 0..15)122MODER5Port x configuration bits (y = 0..15)102MODER4Port x configuration bits (y = 0..15)82MODER3Port x configuration bits (y = 0..15)62MODER2Port x configuration bits (y = 0..15)42MODER1Port x configuration bits (y = 0..15)22MODER0Port x configuration bits (y = 0..15)02OTYPEROTYPERGPIO port output type register0x40x20read-write0x00000000OT15Port x configuration bits (y = 0..15)151OT14Port x configuration bits (y = 0..15)141OT13Port x configuration bits (y = 0..15)131OT12Port x configuration bits (y = 0..15)121OT11Port x configuration bits (y = 0..15)111OT10Port x configuration bits (y = 0..15)101OT9Port x configuration bits (y = 0..15)91OT8Port x configuration bits (y = 0..15)81OT7Port x configuration bits (y = 0..15)71OT6Port x configuration bits (y = 0..15)61OT5Port x configuration bits (y = 0..15)51OT4Port x configuration bits (y = 0..15)41OT3Port x configuration bits (y = 0..15)31OT2Port x configuration bits (y = 0..15)21OT1Port x configuration bits (y = 0..15)11OT0Port x configuration bits (y = 0..15)01OSPEEDROSPEEDRGPIO port output speed register0x80x20read-write0x0C000000OSPEEDR15Port x configuration bits (y = 0..15)302OSPEEDR14Port x configuration bits (y = 0..15)282OSPEEDR13Port x configuration bits (y = 0..15)262OSPEEDR12Port x configuration bits (y = 0..15)242OSPEEDR11Port x configuration bits (y = 0..15)222OSPEEDR10Port x configuration bits (y = 0..15)202OSPEEDR9Port x configuration bits (y = 0..15)182OSPEEDR8Port x configuration bits (y = 0..15)162OSPEEDR7Port x configuration bits (y = 0..15)142OSPEEDR6Port x configuration bits (y = 0..15)122OSPEEDR5Port x configuration bits (y = 0..15)102OSPEEDR4Port x configuration bits (y = 0..15)82OSPEEDR3Port x configuration bits (y = 0..15)62OSPEEDR2Port x configuration bits (y = 0..15)42OSPEEDR1Port x configuration bits (y = 0..15)22OSPEEDR0Port x configuration bits (y = 0..15)02PUPDRPUPDRGPIO port pull-up/pull-down register0xC0x20read-write0x64000000PUPDR15Port x configuration bits (y = 0..15)302PUPDR14Port x configuration bits (y = 0..15)282PUPDR13Port x configuration bits (y = 0..15)262PUPDR12Port x configuration bits (y = 0..15)242PUPDR11Port x configuration bits (y = 0..15)222PUPDR10Port x configuration bits (y = 0..15)202PUPDR9Port x configuration bits (y = 0..15)182PUPDR8Port x configuration bits (y = 0..15)162PUPDR7Port x configuration bits (y = 0..15)142PUPDR6Port x configuration bits (y = 0..15)122PUPDR5Port x configuration bits (y = 0..15)102PUPDR4Port x configuration bits (y = 0..15)82PUPDR3Port x configuration bits (y = 0..15)62PUPDR2Port x configuration bits (y = 0..15)42PUPDR1Port x configuration bits (y = 0..15)22PUPDR0Port x configuration bits (y = 0..15)02IDRIDRGPIO port input data register0x100x20read-only0x00000000IDR15Port input data (y = 0..15)151IDR14Port input data (y = 0..15)141IDR13Port input data (y = 0..15)131IDR12Port input data (y = 0..15)121IDR11Port input data (y = 0..15)111IDR10Port input data (y = 0..15)101IDR9Port input data (y = 0..15)91IDR8Port input data (y = 0..15)81IDR7Port input data (y = 0..15)71IDR6Port input data (y = 0..15)61IDR5Port input data (y = 0..15)51IDR4Port input data (y = 0..15)41IDR3Port input data (y = 0..15)31IDR2Port input data (y = 0..15)21IDR1Port input data (y = 0..15)11IDR0Port input data (y = 0..15)01ODRODRGPIO port output data register0x140x20read-write0x00000000ODR15Port output data (y = 0..15)151ODR14Port output data (y = 0..15)141ODR13Port output data (y = 0..15)131ODR12Port output data (y = 0..15)121ODR11Port output data (y = 0..15)111ODR10Port output data (y = 0..15)101ODR9Port output data (y = 0..15)91ODR8Port output data (y = 0..15)81ODR7Port output data (y = 0..15)71ODR6Port output data (y = 0..15)61ODR5Port output data (y = 0..15)51ODR4Port output data (y = 0..15)41ODR3Port output data (y = 0..15)31ODR2Port output data (y = 0..15)21ODR1Port output data (y = 0..15)11ODR0Port output data (y = 0..15)01BSRRBSRRGPIO port bit set/reset register0x180x20write-only0x00000000BR15Port x reset bit y (y = 0..15)311BR14Port x reset bit y (y = 0..15)301BR13Port x reset bit y (y = 0..15)291BR12Port x reset bit y (y = 0..15)281BR11Port x reset bit y (y = 0..15)271BR10Port x reset bit y (y = 0..15)261BR9Port x reset bit y (y = 0..15)251BR8Port x reset bit y (y = 0..15)241BR7Port x reset bit y (y = 0..15)231BR6Port x reset bit y (y = 0..15)221BR5Port x reset bit y (y = 0..15)211BR4Port x reset bit y (y = 0..15)201BR3Port x reset bit y (y = 0..15)191BR2Port x reset bit y (y = 0..15)181BR1Port x reset bit y (y = 0..15)171BR0Port x set bit y (y= 0..15)161BS15Port x set bit y (y= 0..15)151BS14Port x set bit y (y= 0..15)141BS13Port x set bit y (y= 0..15)131BS12Port x set bit y (y= 0..15)121BS11Port x set bit y (y= 0..15)111BS10Port x set bit y (y= 0..15)101BS9Port x set bit y (y= 0..15)91BS8Port x set bit y (y= 0..15)81BS7Port x set bit y (y= 0..15)71BS6Port x set bit y (y= 0..15)61BS5Port x set bit y (y= 0..15)51BS4Port x set bit y (y= 0..15)41BS3Port x set bit y (y= 0..15)31BS2Port x set bit y (y= 0..15)21BS1Port x set bit y (y= 0..15)11BS0Port x set bit y (y= 0..15)01LCKRLCKRGPIO port configuration lock register0x1C0x20read-write0x00000000LCKKPort x lock bit y (y= 0..15)161LCK15Port x lock bit y (y= 0..15)151LCK14Port x lock bit y (y= 0..15)141LCK13Port x lock bit y (y= 0..15)131LCK12Port x lock bit y (y= 0..15)121LCK11Port x lock bit y (y= 0..15)111LCK10Port x lock bit y (y= 0..15)101LCK9Port x lock bit y (y= 0..15)91LCK8Port x lock bit y (y= 0..15)81LCK7Port x lock bit y (y= 0..15)71LCK6Port x lock bit y (y= 0..15)61LCK5Port x lock bit y (y= 0..15)51LCK4Port x lock bit y (y= 0..15)41LCK3Port x lock bit y (y= 0..15)31LCK2Port x lock bit y (y= 0..15)21LCK1Port x lock bit y (y= 0..15)11LCK0Port x lock bit y (y= 0..15)01AFRLAFRLGPIO alternate function low register0x200x20read-write0x00000000AFSEL7Alternate function selection for port x bit y (y = 0..7)284AFSEL6Alternate function selection for port x bit y (y = 0..7)244AFSEL5Alternate function selection for port x bit y (y = 0..7)204AFSEL4Alternate function selection for port x bit y (y = 0..7)164AFSEL3Alternate function selection for port x bit y (y = 0..7)124AFSEL2Alternate function selection for port x bit y (y = 0..7)84AFSEL1Alternate function selection for port x bit y (y = 0..7)44AFSEL0Alternate function selection for port x bit y (y = 0..7)04AFRHAFRHGPIO alternate function high register0x240x20read-write0x00000000AFSEL15Alternate function selection for port x bit y (y = 8..15)284AFSEL14Alternate function selection for port x bit y (y = 8..15)244AFSEL13Alternate function selection for port x bit y (y = 8..15)204AFSEL12Alternate function selection for port x bit y (y = 8..15)164AFSEL11Alternate function selection for port x bit y (y = 8..15)124AFSEL10Alternate function selection for port x bit y (y = 8..15)84AFSEL9Alternate function selection for port x bit y (y = 8..15)44AFSEL8Alternate function selection for port x bit y (y = 8..15)04BRRBRRport bit reset register0x280x20write-only0x00000000BR0Port Reset bit01BR1Port Reset bit11BR2Port Reset bit21BR3Port Reset bit31BR4Port Reset bit41BR5Port Reset bit51BR6Port Reset bit61BR7Port Reset bit71BR8Port Reset bit81BR9Port Reset bit91BR10Port Reset bit101BR11Port Reset bit111BR12Port Reset bit121BR13Port Reset bit131BR14Port Reset bit141BR15Port Reset bit151GPIOBGeneral-purpose I/OsGPIO0x480004000x00x400registersMODERMODERGPIO port mode register0x00x20read-write0xFFFFFEBFMODER15Port x configuration bits (y = 0..15)302MODER14Port x configuration bits (y = 0..15)282MODER13Port x configuration bits (y = 0..15)262MODER12Port x configuration bits (y = 0..15)242MODER11Port x configuration bits (y = 0..15)222MODER10Port x configuration bits (y = 0..15)202MODER9Port x configuration bits (y = 0..15)182MODER8Port x configuration bits (y = 0..15)162MODER7Port x configuration bits (y = 0..15)142MODER6Port x configuration bits (y = 0..15)122MODER5Port x configuration bits (y = 0..15)102MODER4Port x configuration bits (y = 0..15)82MODER3Port x configuration bits (y = 0..15)62MODER2Port x configuration bits (y = 0..15)42MODER1Port x configuration bits (y = 0..15)22MODER0Port x configuration bits (y = 0..15)02OTYPEROTYPERGPIO port output type register0x40x20read-write0x00000000OT15Port x configuration bits (y = 0..15)151OT14Port x configuration bits (y = 0..15)141OT13Port x configuration bits (y = 0..15)131OT12Port x configuration bits (y = 0..15)121OT11Port x configuration bits (y = 0..15)111OT10Port x configuration bits (y = 0..15)101OT9Port x configuration bits (y = 0..15)91OT8Port x configuration bits (y = 0..15)81OT7Port x configuration bits (y = 0..15)71OT6Port x configuration bits (y = 0..15)61OT5Port x configuration bits (y = 0..15)51OT4Port x configuration bits (y = 0..15)41OT3Port x configuration bits (y = 0..15)31OT2Port x configuration bits (y = 0..15)21OT1Port x configuration bits (y = 0..15)11OT0Port x configuration bits (y = 0..15)01OSPEEDROSPEEDRGPIO port output speed register0x80x20read-write0x000000C0OSPEEDR15Port x configuration bits (y = 0..15)302OSPEEDR14Port x configuration bits (y = 0..15)282OSPEEDR13Port x configuration bits (y = 0..15)262OSPEEDR12Port x configuration bits (y = 0..15)242OSPEEDR11Port x configuration bits (y = 0..15)222OSPEEDR10Port x configuration bits (y = 0..15)202OSPEEDR9Port x configuration bits (y = 0..15)182OSPEEDR8Port x configuration bits (y = 0..15)162OSPEEDR7Port x configuration bits (y = 0..15)142OSPEEDR6Port x configuration bits (y = 0..15)122OSPEEDR5Port x configuration bits (y = 0..15)102OSPEEDR4Port x configuration bits (y = 0..15)82OSPEEDR3Port x configuration bits (y = 0..15)62OSPEEDR2Port x configuration bits (y = 0..15)42OSPEEDR1Port x configuration bits (y = 0..15)22OSPEEDR0Port x configuration bits (y = 0..15)02PUPDRPUPDRGPIO port pull-up/pull-down register0xC0x20read-write0x00000100PUPDR15Port x configuration bits (y = 0..15)302PUPDR14Port x configuration bits (y = 0..15)282PUPDR13Port x configuration bits (y = 0..15)262PUPDR12Port x configuration bits (y = 0..15)242PUPDR11Port x configuration bits (y = 0..15)222PUPDR10Port x configuration bits (y = 0..15)202PUPDR9Port x configuration bits (y = 0..15)182PUPDR8Port x configuration bits (y = 0..15)162PUPDR7Port x configuration bits (y = 0..15)142PUPDR6Port x configuration bits (y = 0..15)122PUPDR5Port x configuration bits (y = 0..15)102PUPDR4Port x configuration bits (y = 0..15)82PUPDR3Port x configuration bits (y = 0..15)62PUPDR2Port x configuration bits (y = 0..15)42PUPDR1Port x configuration bits (y = 0..15)22PUPDR0Port x configuration bits (y = 0..15)02IDRIDRGPIO port input data register0x100x20read-only0x00000000IDR15Port input data (y = 0..15)151IDR14Port input data (y = 0..15)141IDR13Port input data (y = 0..15)131IDR12Port input data (y = 0..15)121IDR11Port input data (y = 0..15)111IDR10Port input data (y = 0..15)101IDR9Port input data (y = 0..15)91IDR8Port input data (y = 0..15)81IDR7Port input data (y = 0..15)71IDR6Port input data (y = 0..15)61IDR5Port input data (y = 0..15)51IDR4Port input data (y = 0..15)41IDR3Port input data (y = 0..15)31IDR2Port input data (y = 0..15)21IDR1Port input data (y = 0..15)11IDR0Port input data (y = 0..15)01ODRODRGPIO port output data register0x140x20read-write0x00000000ODR15Port output data (y = 0..15)151ODR14Port output data (y = 0..15)141ODR13Port output data (y = 0..15)131ODR12Port output data (y = 0..15)121ODR11Port output data (y = 0..15)111ODR10Port output data (y = 0..15)101ODR9Port output data (y = 0..15)91ODR8Port output data (y = 0..15)81ODR7Port output data (y = 0..15)71ODR6Port output data (y = 0..15)61ODR5Port output data (y = 0..15)51ODR4Port output data (y = 0..15)41ODR3Port output data (y = 0..15)31ODR2Port output data (y = 0..15)21ODR1Port output data (y = 0..15)11ODR0Port output data (y = 0..15)01BSRRBSRRGPIO port bit set/reset register0x180x20write-only0x00000000BR15Port x reset bit y (y = 0..15)311BR14Port x reset bit y (y = 0..15)301BR13Port x reset bit y (y = 0..15)291BR12Port x reset bit y (y = 0..15)281BR11Port x reset bit y (y = 0..15)271BR10Port x reset bit y (y = 0..15)261BR9Port x reset bit y (y = 0..15)251BR8Port x reset bit y (y = 0..15)241BR7Port x reset bit y (y = 0..15)231BR6Port x reset bit y (y = 0..15)221BR5Port x reset bit y (y = 0..15)211BR4Port x reset bit y (y = 0..15)201BR3Port x reset bit y (y = 0..15)191BR2Port x reset bit y (y = 0..15)181BR1Port x reset bit y (y = 0..15)171BR0Port x set bit y (y= 0..15)161BS15Port x set bit y (y= 0..15)151BS14Port x set bit y (y= 0..15)141BS13Port x set bit y (y= 0..15)131BS12Port x set bit y (y= 0..15)121BS11Port x set bit y (y= 0..15)111BS10Port x set bit y (y= 0..15)101BS9Port x set bit y (y= 0..15)91BS8Port x set bit y (y= 0..15)81BS7Port x set bit y (y= 0..15)71BS6Port x set bit y (y= 0..15)61BS5Port x set bit y (y= 0..15)51BS4Port x set bit y (y= 0..15)41BS3Port x set bit y (y= 0..15)31BS2Port x set bit y (y= 0..15)21BS1Port x set bit y (y= 0..15)11BS0Port x set bit y (y= 0..15)01LCKRLCKRGPIO port configuration lock register0x1C0x20read-write0x00000000LCKKPort x lock bit y (y= 0..15)161LCK15Port x lock bit y (y= 0..15)151LCK14Port x lock bit y (y= 0..15)141LCK13Port x lock bit y (y= 0..15)131LCK12Port x lock bit y (y= 0..15)121LCK11Port x lock bit y (y= 0..15)111LCK10Port x lock bit y (y= 0..15)101LCK9Port x lock bit y (y= 0..15)91LCK8Port x lock bit y (y= 0..15)81LCK7Port x lock bit y (y= 0..15)71LCK6Port x lock bit y (y= 0..15)61LCK5Port x lock bit y (y= 0..15)51LCK4Port x lock bit y (y= 0..15)41LCK3Port x lock bit y (y= 0..15)31LCK2Port x lock bit y (y= 0..15)21LCK1Port x lock bit y (y= 0..15)11LCK0Port x lock bit y (y= 0..15)01AFRLAFRLGPIO alternate function low register0x200x20read-write0x00000000AFSEL7Alternate function selection for port x bit y (y = 0..7)284AFSEL6Alternate function selection for port x bit y (y = 0..7)244AFSEL5Alternate function selection for port x bit y (y = 0..7)204AFSEL4Alternate function selection for port x bit y (y = 0..7)164AFSEL3Alternate function selection for port x bit y (y = 0..7)124AFSEL2Alternate function selection for port x bit y (y = 0..7)84AFSEL1Alternate function selection for port x bit y (y = 0..7)44AFSEL0Alternate function selection for port x bit y (y = 0..7)04AFRHAFRHGPIO alternate function high register0x240x20read-write0x00000000AFSEL15Alternate function selection for port x bit y (y = 8..15)284AFSEL14Alternate function selection for port x bit y (y = 8..15)244AFSEL13Alternate function selection for port x bit y (y = 8..15)204AFSEL12Alternate function selection for port x bit y (y = 8..15)164AFSEL11Alternate function selection for port x bit y (y = 8..15)124AFSEL10Alternate function selection for port x bit y (y = 8..15)84AFSEL9Alternate function selection for port x bit y (y = 8..15)44AFSEL8Alternate function selection for port x bit y (y = 8..15)04BRRBRRport bit reset register0x280x20write-only0x00000000BR0Port Reset bit01BR1Port Reset bit11BR2Port Reset bit21BR3Port Reset bit31BR4Port Reset bit41BR5Port Reset bit51BR6Port Reset bit61BR7Port Reset bit71BR8Port Reset bit81BR9Port Reset bit91BR10Port Reset bit101BR11Port Reset bit111BR12Port Reset bit121BR13Port Reset bit131BR14Port Reset bit141BR15Port Reset bit151GPIOCGeneral-purpose I/OsGPIO0x480008000x00x400registersMODERMODERGPIO port mode register0x00x20read-write0xFFFFFFFFMODER15Port x configuration bits (y = 0..15)302MODER14Port x configuration bits (y = 0..15)282MODER13Port x configuration bits (y = 0..15)262MODER12Port x configuration bits (y = 0..15)242MODER11Port x configuration bits (y = 0..15)222MODER10Port x configuration bits (y = 0..15)202MODER9Port x configuration bits (y = 0..15)182MODER8Port x configuration bits (y = 0..15)162MODER7Port x configuration bits (y = 0..15)142MODER6Port x configuration bits (y = 0..15)122MODER5Port x configuration bits (y = 0..15)102MODER4Port x configuration bits (y = 0..15)82MODER3Port x configuration bits (y = 0..15)62MODER2Port x configuration bits (y = 0..15)42MODER1Port x configuration bits (y = 0..15)22MODER0Port x configuration bits (y = 0..15)02OTYPEROTYPERGPIO port output type register0x40x20read-write0x00000000OT15Port x configuration bits (y = 0..15)151OT14Port x configuration bits (y = 0..15)141OT13Port x configuration bits (y = 0..15)131OT12Port x configuration bits (y = 0..15)121OT11Port x configuration bits (y = 0..15)111OT10Port x configuration bits (y = 0..15)101OT9Port x configuration bits (y = 0..15)91OT8Port x configuration bits (y = 0..15)81OT7Port x configuration bits (y = 0..15)71OT6Port x configuration bits (y = 0..15)61OT5Port x configuration bits (y = 0..15)51OT4Port x configuration bits (y = 0..15)41OT3Port x configuration bits (y = 0..15)31OT2Port x configuration bits (y = 0..15)21OT1Port x configuration bits (y = 0..15)11OT0Port x configuration bits (y = 0..15)01OSPEEDROSPEEDRGPIO port output speed register0x80x20read-write0x000000C0OSPEEDR15Port x configuration bits (y = 0..15)302OSPEEDR14Port x configuration bits (y = 0..15)282OSPEEDR13Port x configuration bits (y = 0..15)262OSPEEDR12Port x configuration bits (y = 0..15)242OSPEEDR11Port x configuration bits (y = 0..15)222OSPEEDR10Port x configuration bits (y = 0..15)202OSPEEDR9Port x configuration bits (y = 0..15)182OSPEEDR8Port x configuration bits (y = 0..15)162OSPEEDR7Port x configuration bits (y = 0..15)142OSPEEDR6Port x configuration bits (y = 0..15)122OSPEEDR5Port x configuration bits (y = 0..15)102OSPEEDR4Port x configuration bits (y = 0..15)82OSPEEDR3Port x configuration bits (y = 0..15)62OSPEEDR2Port x configuration bits (y = 0..15)42OSPEEDR1Port x configuration bits (y = 0..15)22OSPEEDR0Port x configuration bits (y = 0..15)02PUPDRPUPDRGPIO port pull-up/pull-down register0xC0x20read-write0x00000100PUPDR15Port x configuration bits (y = 0..15)302PUPDR14Port x configuration bits (y = 0..15)282PUPDR13Port x configuration bits (y = 0..15)262PUPDR12Port x configuration bits (y = 0..15)242PUPDR11Port x configuration bits (y = 0..15)222PUPDR10Port x configuration bits (y = 0..15)202PUPDR9Port x configuration bits (y = 0..15)182PUPDR8Port x configuration bits (y = 0..15)162PUPDR7Port x configuration bits (y = 0..15)142PUPDR6Port x configuration bits (y = 0..15)122PUPDR5Port x configuration bits (y = 0..15)102PUPDR4Port x configuration bits (y = 0..15)82PUPDR3Port x configuration bits (y = 0..15)62PUPDR2Port x configuration bits (y = 0..15)42PUPDR1Port x configuration bits (y = 0..15)22PUPDR0Port x configuration bits (y = 0..15)02IDRIDRGPIO port input data register0x100x20read-only0x00000000IDR15Port input data (y = 0..15)151IDR14Port input data (y = 0..15)141IDR13Port input data (y = 0..15)131IDR12Port input data (y = 0..15)121IDR11Port input data (y = 0..15)111IDR10Port input data (y = 0..15)101IDR9Port input data (y = 0..15)91IDR8Port input data (y = 0..15)81IDR7Port input data (y = 0..15)71IDR6Port input data (y = 0..15)61IDR5Port input data (y = 0..15)51IDR4Port input data (y = 0..15)41IDR3Port input data (y = 0..15)31IDR2Port input data (y = 0..15)21IDR1Port input data (y = 0..15)11IDR0Port input data (y = 0..15)01ODRODRGPIO port output data register0x140x20read-write0x00000000ODR15Port output data (y = 0..15)151ODR14Port output data (y = 0..15)141ODR13Port output data (y = 0..15)131ODR12Port output data (y = 0..15)121ODR11Port output data (y = 0..15)111ODR10Port output data (y = 0..15)101ODR9Port output data (y = 0..15)91ODR8Port output data (y = 0..15)81ODR7Port output data (y = 0..15)71ODR6Port output data (y = 0..15)61ODR5Port output data (y = 0..15)51ODR4Port output data (y = 0..15)41ODR3Port output data (y = 0..15)31ODR2Port output data (y = 0..15)21ODR1Port output data (y = 0..15)11ODR0Port output data (y = 0..15)01BSRRBSRRGPIO port bit set/reset register0x180x20write-only0x00000000BR15Port x reset bit y (y = 0..15)311BR14Port x reset bit y (y = 0..15)301BR13Port x reset bit y (y = 0..15)291BR12Port x reset bit y (y = 0..15)281BR11Port x reset bit y (y = 0..15)271BR10Port x reset bit y (y = 0..15)261BR9Port x reset bit y (y = 0..15)251BR8Port x reset bit y (y = 0..15)241BR7Port x reset bit y (y = 0..15)231BR6Port x reset bit y (y = 0..15)221BR5Port x reset bit y (y = 0..15)211BR4Port x reset bit y (y = 0..15)201BR3Port x reset bit y (y = 0..15)191BR2Port x reset bit y (y = 0..15)181BR1Port x reset bit y (y = 0..15)171BR0Port x set bit y (y= 0..15)161BS15Port x set bit y (y= 0..15)151BS14Port x set bit y (y= 0..15)141BS13Port x set bit y (y= 0..15)131BS12Port x set bit y (y= 0..15)121BS11Port x set bit y (y= 0..15)111BS10Port x set bit y (y= 0..15)101BS9Port x set bit y (y= 0..15)91BS8Port x set bit y (y= 0..15)81BS7Port x set bit y (y= 0..15)71BS6Port x set bit y (y= 0..15)61BS5Port x set bit y (y= 0..15)51BS4Port x set bit y (y= 0..15)41BS3Port x set bit y (y= 0..15)31BS2Port x set bit y (y= 0..15)21BS1Port x set bit y (y= 0..15)11BS0Port x set bit y (y= 0..15)01LCKRLCKRGPIO port configuration lock register0x1C0x20read-write0x00000000LCKKPort x lock bit y (y= 0..15)161LCK15Port x lock bit y (y= 0..15)151LCK14Port x lock bit y (y= 0..15)141LCK13Port x lock bit y (y= 0..15)131LCK12Port x lock bit y (y= 0..15)121LCK11Port x lock bit y (y= 0..15)111LCK10Port x lock bit y (y= 0..15)101LCK9Port x lock bit y (y= 0..15)91LCK8Port x lock bit y (y= 0..15)81LCK7Port x lock bit y (y= 0..15)71LCK6Port x lock bit y (y= 0..15)61LCK5Port x lock bit y (y= 0..15)51LCK4Port x lock bit y (y= 0..15)41LCK3Port x lock bit y (y= 0..15)31LCK2Port x lock bit y (y= 0..15)21LCK1Port x lock bit y (y= 0..15)11LCK0Port x lock bit y (y= 0..15)01AFRLAFRLGPIO alternate function low register0x200x20read-write0x00000000AFSEL7Alternate function selection for port x bit y (y = 0..7)284AFSEL6Alternate function selection for port x bit y (y = 0..7)244AFSEL5Alternate function selection for port x bit y (y = 0..7)204AFSEL4Alternate function selection for port x bit y (y = 0..7)164AFSEL3Alternate function selection for port x bit y (y = 0..7)124AFSEL2Alternate function selection for port x bit y (y = 0..7)84AFSEL1Alternate function selection for port x bit y (y = 0..7)44AFSEL0Alternate function selection for port x bit y (y = 0..7)04AFRHAFRHGPIO alternate function high register0x240x20read-write0x00000000AFSEL15Alternate function selection for port x bit y (y = 8..15)284AFSEL14Alternate function selection for port x bit y (y = 8..15)244AFSEL13Alternate function selection for port x bit y (y = 8..15)204AFSEL12Alternate function selection for port x bit y (y = 8..15)164AFSEL11Alternate function selection for port x bit y (y = 8..15)124AFSEL10Alternate function selection for port x bit y (y = 8..15)84AFSEL9Alternate function selection for port x bit y (y = 8..15)44AFSEL8Alternate function selection for port x bit y (y = 8..15)04BRRBRRport bit reset register0x280x20write-only0x00000000BR0Port Reset bit01BR1Port Reset bit11BR2Port Reset bit21BR3Port Reset bit31BR4Port Reset bit41BR5Port Reset bit51BR6Port Reset bit61BR7Port Reset bit71BR8Port Reset bit81BR9Port Reset bit91BR10Port Reset bit101BR11Port Reset bit111BR12Port Reset bit121BR13Port Reset bit131BR14Port Reset bit141BR15Port Reset bit151GPIOD0x48000C00GPIOEGeneral-purpose I/OsGPIO0x480010000x00x400registersMODERMODERGPIO port mode register0x00x20read-write0x000003FFMODER4Port x configuration bits (y = 0..15)82MODER3Port x configuration bits (y = 0..15)62MODER2Port x configuration bits (y = 0..15)42MODER1Port x configuration bits (y = 0..15)22MODER0Port x configuration bits (y = 0..15)02OTYPEROTYPERGPIO port output type register0x40x20read-write0x00000000OT4Port x configuration bits (y = 0..15)41OT3Port x configuration bits (y = 0..15)31OT2Port x configuration bits (y = 0..15)21OT1Port x configuration bits (y = 0..15)11OT0Port x configuration bits (y = 0..15)01OSPEEDROSPEEDRGPIO port output speed register0x80x20read-write0x000000C0OSPEEDR4Port x configuration bits (y = 0..15)82OSPEEDR3Port x configuration bits (y = 0..15)62OSPEEDR2Port x configuration bits (y = 0..15)42OSPEEDR1Port x configuration bits (y = 0..15)22OSPEEDR0Port x configuration bits (y = 0..15)02PUPDRPUPDRGPIO port pull-up/pull-down register0xC0x20read-write0x00000000PUPDR4Port x configuration bits (y = 0..15)82PUPDR3Port x configuration bits (y = 0..15)62PUPDR2Port x configuration bits (y = 0..15)42PUPDR1Port x configuration bits (y = 0..15)22PUPDR0Port x configuration bits (y = 0..15)02IDRIDRGPIO port input data register0x100x20read-only0x00000000IDR4Port input data (y = 0..15)41IDR3Port input data (y = 0..15)31IDR2Port input data (y = 0..15)21IDR1Port input data (y = 0..15)11IDR0Port input data (y = 0..15)01ODRODRGPIO port output data register0x140x20read-write0x00000000ODR4Port output data (y = 0..15)41ODR3Port output data (y = 0..15)31ODR2Port output data (y = 0..15)21ODR1Port output data (y = 0..15)11ODR0Port output data (y = 0..15)01BSRRBSRRGPIO port bit set/reset register0x180x20write-only0x00000000BR4Port x reset bit y (y = 0..15)201BR3Port x reset bit y (y = 0..15)191BR2Port x reset bit y (y = 0..15)181BR1Port x reset bit y (y = 0..15)171BR0Port x set bit y (y= 0..15)161BS4Port x set bit y (y= 0..15)41BS3Port x set bit y (y= 0..15)31BS2Port x set bit y (y= 0..15)21BS1Port x set bit y (y= 0..15)11BS0Port x set bit y (y= 0..15)01LCKRLCKRGPIO port configuration lock register0x1C0x20read-write0x00000000LCKKPort x lock bit y (y= 0..15)161LCK4Port x lock bit y (y= 0..15)41LCK3Port x lock bit y (y= 0..15)31LCK2Port x lock bit y (y= 0..15)21LCK1Port x lock bit y (y= 0..15)11LCK0Port x lock bit y (y= 0..15)01AFRLAFRLGPIO alternate function low register0x200x20read-write0x00000000AFSEL4Alternate function selection for port x bit y (y = 0..7)164AFSEL3Alternate function selection for port x bit y (y = 0..7)124AFSEL2Alternate function selection for port x bit y (y = 0..7)84AFSEL1Alternate function selection for port x bit y (y = 0..7)44AFSEL0Alternate function selection for port x bit y (y = 0..7)04AFRHAFRHGPIO alternate function high register0x240x20read-write0x00000000AFSEL15Alternate function selection for port x bit y (y = 8..15)284AFSEL14Alternate function selection for port x bit y (y = 8..15)244AFSEL13Alternate function selection for port x bit y (y = 8..15)204AFSEL12Alternate function selection for port x bit y (y = 8..15)164AFSEL11Alternate function selection for port x bit y (y = 8..15)124AFSEL10Alternate function selection for port x bit y (y = 8..15)84AFSEL9Alternate function selection for port x bit y (y = 8..15)44AFSEL8Alternate function selection for port x bit y (y = 8..15)04BRRBRRport bit reset register0x280x20write-only0x00000000BR0Port Reset bit01BR1Port Reset bit11BR2Port Reset bit21BR3Port Reset bit31BR4Port Reset bit41GPIOHGeneral-purpose I/OsGPIO0x48001C000x00x400registersMODERMODERGPIO port mode register0x00x20read-write0x000000CFMODER3Port x configuration bits (y = 0..15)62MODER1Port x configuration bits (y = 0..15)22MODER0Port x configuration bits (y = 0..15)02OTYPEROTYPERGPIO port output type register0x40x20read-write0x00000000OT3Port x configuration bits (y = 0..15)31OT1Port x configuration bits (y = 0..15)11OT0Port x configuration bits (y = 0..15)01OSPEEDROSPEEDRGPIO port output speed register0x80x20read-write0x00000000OSPEEDR3Port x configuration bits (y = 0..15)62OSPEEDR1Port x configuration bits (y = 0..15)22OSPEEDR0Port x configuration bits (y = 0..15)02PUPDRPUPDRGPIO port pull-up/pull-down register0xC0x20read-write0x00000000PUPDR3Port x configuration bits (y = 0..15)62PUPDR1Port x configuration bits (y = 0..15)22PUPDR0Port x configuration bits (y = 0..15)02IDRIDRGPIO port input data register0x100x20read-only0x00000000IDR3Port input data (y = 0..15)31IDR1Port input data (y = 0..15)11IDR0Port input data (y = 0..15)01ODRODRGPIO port output data register0x140x20read-write0x00000000ODR3Port output data (y = 0..15)31ODR1Port output data (y = 0..15)11ODR0Port output data (y = 0..15)01BSRRBSRRGPIO port bit set/reset register0x180x20write-only0x00000000BR3Port x reset bit y (y = 0..15)191BR1Port x reset bit y (y = 0..15)171BR0Port x set bit y (y= 0..15)161BS3Port x set bit y (y= 0..15)31BS1Port x set bit y (y= 0..15)11BS0Port x set bit y (y= 0..15)01LCKRLCKRGPIO port configuration lock register0x1C0x20read-write0x00000000LCKKPort x lock bit y (y= 0..15)161LCK3Port x lock bit y (y= 0..15)31LCK1Port x lock bit y (y= 0..15)11LCK0Port x lock bit y (y= 0..15)01AFRLAFRLGPIO alternate function low register0x200x20read-write0x00000000AFSEL3Alternate function selection for port x bit y (y = 0..7)124AFSEL1Alternate function selection for port x bit y (y = 0..7)44AFSEL0Alternate function selection for port x bit y (y = 0..7)04AFRHAFRHGPIO alternate function high register0x240x20read-write0x00000000AFSEL15Alternate function selection for port x bit y (y = 8..15)284AFSEL14Alternate function selection for port x bit y (y = 8..15)244AFSEL13Alternate function selection for port x bit y (y = 8..15)204AFSEL12Alternate function selection for port x bit y (y = 8..15)164AFSEL11Alternate function selection for port x bit y (y = 8..15)124AFSEL10Alternate function selection for port x bit y (y = 8..15)84AFSEL9Alternate function selection for port x bit y (y = 8..15)44AFSEL8Alternate function selection for port x bit y (y = 8..15)04BRRBRRport bit reset register0x280x20write-only0x00000000BR0Port Reset bit01BR1Port Reset bit11BR3Port Reset bit31SAI1Serial audio interfaceSAI0x400154000x00x400registersSAI1SAI1 global interrupt38GCRGCRGlobal configuration register0x00x20read-write0x00000000SYNCOUTSynchronization outputs42SYNCINSynchronization inputs02BCR1BCR1BConfiguration register 10x240x20read-write0x00000040MCKENMaster clock generation enable271OSROversampling ratio for master clock261MCJDIVMaster clock divider206NODIVNo divider191DMAENDMA enable171SAIBENAudio block B enable161OutDriOutput drive131MONOMono mode121SYNCENSynchronization enable102CKSTRClock strobing edge91LSBFIRSTLeast significant bit first81DSData size53PRTCFGProtocol configuration22MODEAudio block mode02BCR2BCR2BConfiguration register 20x280x20read-write0x00000000COMPCompanding mode142CPLComplement bit131MUTECNMute counter76MUTEVALMute value61MUTEMute51TRISTristate management on data line41FFLUSFIFO flush31FTHFIFO threshold03BFRCRBFRCRBFRCR0x2C0x20read-write0x00000007FSOFFFrame synchronization offset181FSPOLFrame synchronization polarity171FSDEFFrame synchronization definition161FSALLFrame synchronization active level length87FRLFrame length08BSLOTRBSLOTRBSlot register0x300x20read-write0x00000000SLOTENSlot enable1616NBSLOTNumber of slots in an audio frame84SLOTSZSlot size62FBOFFFirst bit offset05BIMBIMBInterrupt mask register20x340x20read-write0x00000000LFSDETIELate frame synchronization detection interrupt enable61AFSDETIEAnticipated frame synchronization detection interrupt enable51CNRDYIECodec not ready interrupt enable41FREQIEFIFO request interrupt enable31WCKCFGWrong clock configuration interrupt enable21MUTEDETMute detection interrupt enable11OVRUDRIEOverrun/underrun interrupt enable01BSRBSRBStatus register0x380x20read-only0x00000008FLVLFIFO level threshold163LFSDETLate frame synchronization detection61AFSDETAnticipated frame synchronization detection51CNRDYCodec not ready41FREQFIFO request31WCKCFGWrong clock configuration flag21MUTEDETMute detection11OVRUDROverrun / underrun01BCLRFRBCLRFRBClear flag register0x3C0x20write-only0x00000000LFSDETClear late frame synchronization detection flag61CAFSDETClear anticipated frame synchronization detection flag51CNRDYClear codec not ready flag41WCKCFGClear wrong clock configuration flag21MUTEDETMute detection flag11OVRUDRClear overrun / underrun01BDRBDRBData register0x400x20read-write0x00000000DATAData032ACR1ACR1AConfiguration register 10x40x20read-write0x00000040MCKENMaster clock generation enable271OSROversampling ratio for master clock261MCJDIVMaster clock divider206NODIVNo divider191DMAENDMA enable171SAIBENAudio block B enable161OutDriOutput drive131MONOMono mode121SYNCENSynchronization enable102CKSTRClock strobing edge91LSBFIRSTLeast significant bit first81DSData size53PRTCFGProtocol configuration22MODEAudio block mode02ACR2ACR2AConfiguration register 20x80x20read-write0x00000000COMPCompanding mode142CPLComplement bit131MUTECNMute counter76MUTEVALMute value61MUTEMute51TRISTristate management on data line41FFLUSFIFO flush31FTHFIFO threshold03AFRCRAFRCRAFRCR0xC0x20read-write0x00000007FSOFFFrame synchronization offset181FSPOLFrame synchronization polarity171FSDEFFrame synchronization definition161FSALLFrame synchronization active level length87FRLFrame length08ASLOTRASLOTRASlot register0x100x20read-write0x00000000SLOTENSlot enable1616NBSLOTNumber of slots in an audio frame84SLOTSZSlot size62FBOFFFirst bit offset05AIMAIMAInterrupt mask register20x140x20read-write0x00000000LFSDETLate frame synchronization detection interrupt enable61AFSDETIEAnticipated frame synchronization detection interrupt enable51CNRDYIECodec not ready interrupt enable41FREQIEFIFO request interrupt enable31WCKCFGWrong clock configuration interrupt enable21MUTEDETMute detection interrupt enable11OVRUDRIEOverrun/underrun interrupt enable01ASRASRAStatus register0x180x20read-only0x00000008FLVLFIFO level threshold163LFSDETLate frame synchronization detection61AFSDETAnticipated frame synchronization detection51CNRDYCodec not ready41FREQFIFO request31WCKCFGWrong clock configuration flag. This bit is read only21MUTEDETMute detection11OVRUDROverrun / underrun01ACLRFRACLRFRAClear flag register0x1C0x20write-only0x00000000LFSDETClear late frame synchronization detection flag61CAFSDETClear anticipated frame synchronization detection flag51CNRDYClear codec not ready flag41WCKCFGClear wrong clock configuration flag21MUTEDETMute detection flag11OVRUDRClear overrun / underrun01ADRADRAData register0x200x20read-write0x00000000DATAData032PDMCRPDMCRPDM control register0x440x20read-write0x00000000CKEN4Clock enable of bitstream clock number 4111CKEN3Clock enable of bitstream clock number 3101CKEN2Clock enable of bitstream clock number 291CKEN1Clock enable of bitstream clock number 181MICNBRNumber of microphones42PDMENPDM enable01PDMDLYPDMDLYPDM delay register0x480x20read-write0x00000000DLYM4RDelay line for second microphone of pair 4283DLYM4LDelay line for first microphone of pair 4243DLYM3RDelay line for second microphone of pair 3203DLYM3LDelay line for first microphone of pair 3163DLYM2RDelay line for second microphone of pair 2123DLYM2LDelay line for first microphone of pair 283DLYM1RDelay line for second microphone of pair 143DLYM1LDelay line for first microphone of pair 103TIM2General-purpose-timersTIM0x400000000x00x400registersTIM2TIM2 global interrupt28CR1CR1control register 10x00x20read-write0x0000UIFREMAPUIF status bit remapping111CKDClock division82ARPEAuto-reload preload enable71CMSCenter-aligned mode selection52DIRDirection41OPMOne-pulse mode31URSUpdate request source21UDISUpdate disable11CENCounter enable01CR2CR2control register 20x40x20read-write0x0000TI1STI1 selection71MMSMaster mode selection43CCDSCapture/compare DMA selection31SMCRSMCRslave mode control register0x80x20read-write0x0000SMS_3Slave mode selection - bit 3161ETPExternal trigger polarity151ECEExternal clock enable141ETPSExternal trigger prescaler122ETFExternal trigger filter84MSMMaster/Slave mode71TSTrigger selection43OCCSOCREF clear selection31SMSSlave mode selection03DIERDIERDMA/Interrupt enable register0xC0x20read-write0x0000CC4DECapture/Compare 4 DMA request enable121CC3DECapture/Compare 3 DMA request enable111CC2DECapture/Compare 2 DMA request enable101CC1DECapture/Compare 1 DMA request enable91UDEUpdate DMA request enable81TIETrigger interrupt enable61CC4IECapture/Compare 4 interrupt enable41CC3IECapture/Compare 3 interrupt enable31CC2IECapture/Compare 2 interrupt enable21CC1IECapture/Compare 1 interrupt enable11UIEUpdate interrupt enable01SRSRstatus register0x100x20read-write0x0000CC4OFCapture/Compare 4 overcapture flag121CC3OFCapture/Compare 3 overcapture flag111CC2OFCapture/compare 2 overcapture flag101CC1OFCapture/Compare 1 overcapture flag91TIFTrigger interrupt flag61CC4IFCapture/Compare 4 interrupt flag41CC3IFCapture/Compare 3 interrupt flag31CC2IFCapture/Compare 2 interrupt flag21CC1IFCapture/compare 1 interrupt flag11UIFUpdate interrupt flag01EGREGRevent generation register0x140x20write-only0x0000TGTrigger generation61CC4GCapture/compare 4 generation41CC3GCapture/compare 3 generation31CC2GCapture/compare 2 generation21CC1GCapture/compare 1 generation11UGUpdate generation01CCMR1_OutputCCMR1_Outputcapture/compare mode register 1 (output mode)0x180x20read-write0x00000000OC2M_3Output Compare 2 mode - bit 3241OC1M_3Output Compare 1 mode - bit 3161OC2CEOutput compare 2 clear enable151OC2MOutput compare 2 mode123OC2PEOutput compare 2 preload enable111OC2FEOutput compare 2 fast enable101CC2SCapture/Compare 2 selection82OC1CEOutput compare 1 clear enable71OC1MOutput compare 1 mode43OC1PEOutput compare 1 preload enable31OC1FEOutput compare 1 fast enable21CC1SCapture/Compare 1 selection02CCMR1_InputCCMR1_Inputcapture/compare mode register 1 (input mode)CCMR1_Output0x180x20read-write0x00000000IC2FInput capture 2 filter124IC2PSCInput capture 2 prescaler102CC2SCapture/compare 2 selection82IC1FInput capture 1 filter44IC1PSCInput capture 1 prescaler22CC1SCapture/Compare 1 selection02CCMR2_OutputCCMR2_Outputcapture/compare mode register 2 (output mode)0x1C0x20read-write0x00000000OC4M_3Output Compare 4 mode - bit 3241OC3M_3Output Compare 3 mode - bit 3161OC4CEOutput compare 4 clear enable151OC4MOutput compare 4 mode123OC4PEOutput compare 4 preload enable111OC4FEOutput compare 4 fast enable101CC4SCapture/Compare 4 selection82OC3CEOutput compare 3 clear enable71OC3MOutput compare 3 mode43OC3PEOutput compare 3 preload enable31OC3FEOutput compare 3 fast enable21CC3SCapture/Compare 3 selection02CCMR2_InputCCMR2_Inputcapture/compare mode register 2 (input mode)CCMR2_Output0x1C0x20read-write0x00000000IC4FInput capture 4 filter124IC4PSCInput capture 4 prescaler102CC4SCapture/Compare 4 selection82IC3FInput capture 3 filter44IC3PSCInput capture 3 prescaler22CC3SCapture/Compare 3 selection02CCERCCERcapture/compare enable register0x200x20read-write0x0000CC4NPCapture/Compare 4 output Polarity151CC4PCapture/Compare 3 output Polarity131CC4ECapture/Compare 4 output enable121CC3NPCapture/Compare 3 output Polarity111CC3PCapture/Compare 3 output Polarity91CC3ECapture/Compare 3 output enable81CC2NPCapture/Compare 2 output Polarity71CC2PCapture/Compare 2 output Polarity51CC2ECapture/Compare 2 output enable41CC1NPCapture/Compare 1 output Polarity31CC1PCapture/Compare 1 output Polarity11CC1ECapture/Compare 1 output enable01CNTCNTcounter0x240x200x00000000CNT_HHigh counter value (TIM2 only)1615read-writeCNT_LLow counter value016read-writeUIFCPYValue depends on IUFREMAP in TIM2_CR1.311read-onlyPSCPSCprescaler0x280x20read-write0x0000PSCPrescaler value016ARRARRauto-reload register0x2C0x20read-write0x00000000ARR_HHigh Auto-reload value (TIM2 only)1616ARR_LLow Auto-reload value016CCR1CCR1capture/compare register 10x340x20read-write0x00000000CCR1_HHigh Capture/Compare 1 value (TIM2 only)1616CCR1_LLow Capture/Compare 1 value016CCR2CCR2capture/compare register 20x380x20read-write0x00000000CCR2_HHigh Capture/Compare 2 value (TIM2 only)1616CCR2_LLow Capture/Compare 2 value016CCR3CCR3capture/compare register 30x3C0x20read-write0x00000000CCR3_HHigh Capture/Compare value (TIM2 only)1616CCR3_LLow Capture/Compare value016CCR4CCR4capture/compare register 40x400x20read-write0x00000000CCR4_HHigh Capture/Compare value (TIM2 only)1616CCR4_LLow Capture/Compare value016DCRDCRDMA control register0x480x20read-write0x0000DBLDMA burst length85DBADMA base address05DMARDMARDMA address for full transfer0x4C0x20read-write0x0000DMABDMA register for burst accesses016ORORTIM2 option register0x500x20read-write0x0000TI4_RMPInput capture 4 remap22ETR_RMPExternal trigger remap11ITR_RMPInternal trigger remap01AFAFTIM2 alternate function option register 10x600x20read-write0x0000ETRSELExternal trigger source selection143TIM16General purpose timersTIM0x400144000x00x400registersCR1CR1control register 10x00x20read-write0x0000CENCounter enable01UDISUpdate disable11URSUpdate request source21OPMOne-pulse mode31ARPEAuto-reload preload enable71CKDClock division82UIFREMAPUIF status bit remapping111CR2CR2control register 20x40x20read-write0x0000OIS1NOutput Idle state 191OIS1Output Idle state 181CCDSCapture/compare DMA selection31CCUSCapture/compare control update selection21CCPCCapture/compare preloaded control01DIERDIERDMA/Interrupt enable register0xC0x20read-write0x0000UIEUpdate interrupt enable01CC1IECapture/Compare 1 interrupt enable11COMIECOM interrupt enable51BIEBreak interrupt enable71UDEUpdate DMA request enable81CC1DECapture/Compare 1 DMA request enable91SRSRstatus register0x100x20read-write0x0000CC1OFCapture/Compare 1 overcapture flag91BIFBreak interrupt flag71COMIFCOM interrupt flag51CC1IFCapture/compare 1 interrupt flag11UIFUpdate interrupt flag01EGREGRevent generation register0x140x20write-only0x0000BGBreak generation71COMGCapture/Compare control update generation51CC1GCapture/compare 1 generation11UGUpdate generation01CCMR1_OutputCCMR1_Outputcapture/compare mode register (output mode)0x180x20read-write0x00000000OC1M_3Output Compare 1 mode161OC1MOutput Compare 1 mode43OC1PEOutput Compare 1 preload enable31OC1FEOutput Compare 1 fast enable21CC1SCapture/Compare 1 selection02CCMR1_InputCCMR1_Inputcapture/compare mode register 1 (input mode)CCMR1_Output0x180x20read-write0x00000000IC1FInput capture 1 filter44IC1PSCInput capture 1 prescaler22CC1SCapture/Compare 1 selection02CCERCCERcapture/compare enable register0x200x20read-write0x0000CC1NPCapture/Compare 1 output Polarity31CC1NECapture/Compare 1 complementary output enable21CC1PCapture/Compare 1 output Polarity11CC1ECapture/Compare 1 output enable01CNTCNTcounter0x240x200x00000000CNTcounter value016read-writeUIFCPYUIF Copy311read-onlyPSCPSCprescaler0x280x20read-write0x0000PSCPrescaler value016ARRARRauto-reload register0x2C0x20read-write0xFFFFARRAuto-reload value016RCRRCRrepetition counter register0x300x20read-write0x0000REPRepetition counter value08CCR1CCR1capture/compare register 10x340x20read-write0x00000000CCR1Capture/Compare 1 value016BDTRBDTRbreak and dead-time register0x440x20read-write0x0000DTGDead-time generator setup08LOCKLock configuration82OSSIOff-state selection for Idle mode101OSSROff-state selection for Run mode111BKEBreak enable121BKPBreak polarity131AOEAutomatic output enable141MOEMain output enable151BKDSRMBreak Disarm261BKBIDBreak Bidirectional281DCRDCRDMA control register0x480x20read-write0x0000DBLDMA burst length85DBADMA base address05DMARDMARDMA address for full transfer0x4C0x20read-write0x0000DMABDMA register for burst accesses016OR1OR1TIM option register 10x500x20read-write0x0000TI1_RMPInput capture 1 remap02AF1AF1alternate function register 10x600x20read-write0x00000001BKINEBRK BKIN input enable01BKCMP1EBRK COMP1 enable11BKCMP2EBRK COMP2 enable21BKINPBRK BKIN input polarity91BKCMP1PBRK COMP1 input polarity101BKCMP2PBRK COMP2 input polarit111TISELTISELinput selection register0x680x20read-write0x00000000TI1SELselects TI1[0] to TI1[15] input04TIM17General purpose timersTIM0x400148000x00x400registersCR1CR1control register 10x00x20read-write0x0000CENCounter enable01UDISUpdate disable11URSUpdate request source21OPMOne-pulse mode31ARPEAuto-reload preload enable71CKDClock division82UIFREMAPUIF status bit remapping111CR2CR2control register 20x40x20read-write0x0000OIS1NOutput Idle state 191OIS1Output Idle state 181CCDSCapture/compare DMA selection31CCUSCapture/compare control update selection21CCPCCapture/compare preloaded control01DIERDIERDMA/Interrupt enable register0xC0x20read-write0x0000UIEUpdate interrupt enable01CC1IECapture/Compare 1 interrupt enable11COMIECOM interrupt enable51BIEBreak interrupt enable71UDEUpdate DMA request enable81CC1DECapture/Compare 1 DMA request enable91SRSRstatus register0x100x20read-write0x0000CC1OFCapture/Compare 1 overcapture flag91BIFBreak interrupt flag71COMIFCOM interrupt flag51CC1IFCapture/compare 1 interrupt flag11UIFUpdate interrupt flag01EGREGRevent generation register0x140x20write-only0x0000BGBreak generation71COMGCapture/Compare control update generation51CC1GCapture/compare 1 generation11UGUpdate generation01CCMR1_OutputCCMR1_Outputcapture/compare mode register (output mode)0x180x20read-write0x00000000OC1M_3Output Compare 1 mode161OC1MOutput Compare 1 mode43OC1PEOutput Compare 1 preload enable31OC1FEOutput Compare 1 fast enable21CC1SCapture/Compare 1 selection02CCMR1_InputCCMR1_Inputcapture/compare mode register 1 (input mode)CCMR1_Output0x180x20read-write0x00000000IC1FInput capture 1 filter44IC1PSCInput capture 1 prescaler22CC1SCapture/Compare 1 selection02CCERCCERcapture/compare enable register0x200x20read-write0x0000CC1NPCapture/Compare 1 output Polarity31CC1NECapture/Compare 1 complementary output enable21CC1PCapture/Compare 1 output Polarity11CC1ECapture/Compare 1 output enable01CNTCNTcounter0x240x200x00000000CNTcounter value016read-writeUIFCPYUIF Copy311read-onlyPSCPSCprescaler0x280x20read-write0x0000PSCPrescaler value016ARRARRauto-reload register0x2C0x20read-write0xFFFFARRAuto-reload value016RCRRCRrepetition counter register0x300x20read-write0x0000REPRepetition counter value08CCR1CCR1capture/compare register 10x340x20read-write0x00000000CCR1Capture/Compare 1 value016BDTRBDTRbreak and dead-time register0x440x20read-write0x0000DTGDead-time generator setup08LOCKLock configuration82OSSIOff-state selection for Idle mode101OSSROff-state selection for Run mode111BKEBreak enable121BKPBreak polarity131AOEAutomatic output enable141MOEMain output enable151BKDSRMBreak Disarm261BKBIDBreak Bidirectional281DCRDCRDMA control register0x480x20read-write0x0000DBLDMA burst length85DBADMA base address05DMARDMARDMA address for full transfer0x4C0x20read-write0x0000DMABDMA register for burst accesses016OR1OR1TIM option register 10x500x20read-write0x0000TI1_RMPInput capture 1 remap02AF1AF1alternate function register 10x600x20read-write0x00000001BKINEBRK BKIN input enable01BKCMP1EBRK COMP1 enable11BKCMP2EBRK COMP2 enable21BKINPBRK BKIN input polarity91BKCMP1PBRK COMP1 input polarity101BKCMP2PBRK COMP2 input polarit111TISELTISELinput selection register0x680x20read-write0x00000000TI1SELselects TI1[0] to TI1[15] input04TIM1Advanced-timersTIM0x40012C000x00x400registersTIM1_BRKTimer 1 break interrupt24TIM1_UPTimer 1 Update25TIM1_TRG_COM_TIM17TIM1 Trigger and Commutation interrupts and + TIM17 global interrupt26TIM1_CCTIM1 Capture Compare interrupt27CR1CR1control register 10x00x20read-write0x0000CENCounter enable01OPMOne-pulse mode31UDISUpdate disable11URSUpdate request source21DIRDirection41CMSCenter-aligned mode selection52ARPEAuto-reload preload enable71CKDClock division82UIFREMAPUIF status bit remapping111CR2CR2control register 20x40x20read-write0x0000MMS2Master mode selection 2204OIS6Output Idle state 6 (OC6 output)181OIS5Output Idle state 5 (OC5 output)161OIS4Output Idle state 4141OIS3NOutput Idle state 3131OIS3Output Idle state 3121OIS2NOutput Idle state 2111OIS2Output Idle state 2101OIS1NOutput Idle state 191OIS1Output Idle state 181TI1STI1 selection71MMSMaster mode selection43CCDSCapture/compare DMA selection31CCUSCapture/compare control update selection21CCPCCapture/compare preloaded control01SMCRSMCRslave mode control register0x80x20read-write0x0000SMSSlave mode selection03OCCSOCREF clear selection31TSTrigger selection43MSMMaster/Slave mode71ETFExternal trigger filter84ETPSExternal trigger prescaler122ECEExternal clock enable141ETPExternal trigger polarity151SMS_3Slave mode selection - bit 3161DIERDIERDMA/Interrupt enable register0xC0x20read-write0x0000UIEUpdate interrupt enable01CC1IECapture/Compare 1 interrupt enable11CC2IECapture/Compare 2 interrupt enable21CC3IECapture/Compare 3 interrupt enable31CC4IECapture/Compare 4 interrupt enable41COMIECOM interrupt enable51TIETrigger interrupt enable61BIEBreak interrupt enable71UDEUpdate DMA request enable81CC1DECapture/Compare 1 DMA request enable91CC2DECapture/Compare 2 DMA request enable101CC3DECapture/Compare 3 DMA request enable111CC4DECapture/Compare 4 DMA request enable121COMDECOM DMA request enable131TDETrigger DMA request enable141SRSRstatus register0x100x20read-write0x0000UIFUpdate interrupt flag01CC1IFCapture/compare 1 interrupt flag11CC2IFCapture/Compare 2 interrupt flag21CC3IFCapture/Compare 3 interrupt flag31CC4IFCapture/Compare 4 interrupt flag41COMIFCOM interrupt flag51TIFTrigger interrupt flag61BIFBreak interrupt flag71B2IFBreak 2 interrupt flag81CC1OFCapture/Compare 1 overcapture flag91CC2OFCapture/compare 2 overcapture flag101CC3OFCapture/Compare 3 overcapture flag111CC4OFCapture/Compare 4 overcapture flag121SBIFSystem Break interrupt flag131CC5IFCompare 5 interrupt flag161CC6IFCompare 6 interrupt flag171EGREGRevent generation register0x140x20write-only0x0000UGUpdate generation01CC1GCapture/compare 1 generation11CC2GCapture/compare 2 generation21CC3GCapture/compare 3 generation31CC4GCapture/compare 4 generation41COMGCapture/Compare control update generation51TGTrigger generation61BGBreak generation71B2GBreak 2 generation81CCMR1_InputCCMR1_Inputcapture/compare mode register 1 (output mode)0x180x20read-write0x00000000CC1SCapture/Compare 1 selection02IC1PSCInput capture 1 prescaler22C1FInput capture 1 filter44CC2Scapture/Compare 2 selection82IC2PSCInput capture 2 prescaler102IC2FInput capture 2 filter124CCMR1_OutputCCMR1_Outputcapture/compare mode register 1 (output mode)CCMR1_Input0x180x20read-write0x00000000CC1SCapture/Compare 1 selection02OC1FEOutput Compare 1 fast enable21OC1PEOutput Compare 1 preload enable31OC1MOutput Compare 1 mode43OC1CEOutput Compare 1 clear enable71CC2SCapture/Compare 2 selection82OC2FEOutput Compare 2 fast enable101OC2PEOutput Compare 2 preload enable111OC2MOutput Compare 2 mode123OC2CEOutput Compare 2 clear enable151OC1M_3Output Compare 1 mode - bit 3161OC2M_3Output Compare 2 mode - bit 3241CCMR2_OutputCCMR2_Outputcapture/compare mode register 2 (output mode)0x1C0x20read-write0x00000000CC3SCapture/Compare 3 selection02OC3FEOutput compare 3 fast enable21OC3PEOutput compare 3 preload enable31OC3MOutput compare 3 mode43OC3CEOutput compare 3 clear enable71CC4SCapture/Compare 4 selection82OC4FEOutput compare 4 fast enable101OC4PEOutput compare 4 preload enable111OC4MOutput compare 4 mode123OC4CEOutput compare 4 clear enable151OC3M_3Output Compare 3 mode - bit 3161OC4M_3Output Compare 4 mode - bit 3241CCMR2_InputCCMR2_Inputcapture/compare mode register 2 (output mode)CCMR2_Output0x1C0x20read-write0x00000000CC3SCapture/Compare 3 selection02C3PSCInput capture 3 prescaler22IC3FInput capture 3 filter44CC4SCapture/Compare 4 selection82IC4PSCInput capture 4 prescaler102IC4FInput capture 4 filter124CCERCCERcapture/compare enable register0x200x20read-write0x0000CC1ECapture/Compare 1 output enable01CC1PCapture/Compare 1 output Polarity11CC1NECapture/Compare 1 complementary output enable21CC1NPCapture/Compare 1 output Polarity31CC2ECapture/Compare 2 output enable41CC2PCapture/Compare 2 output Polarity51CC2NECapture/Compare 2 complementary output enable61CC2NPCapture/Compare 2 output Polarity71CC3ECapture/Compare 3 output enable81CC3PCapture/Compare 3 output Polarity91CC3NECapture/Compare 3 complementary output enable101CC3NPCapture/Compare 3 output Polarity111CC4ECapture/Compare 4 output enable121CC4PCapture/Compare 3 output Polarity131CC4NPCapture/Compare 4 complementary output polarity151CC5ECapture/Compare 5 output enable161CC5PCapture/Compare 5 output polarity171CC6ECapture/Compare 6 output enable201CC6PCapture/Compare 6 output polarity211CNTCNTcounter0x240x200x00000000CNTcounter value016read-writeUIFCPYUIF copy311read-onlyPSCPSCprescaler0x280x20read-write0x0000PSCPrescaler value016ARRARRauto-reload register0x2C0x20read-write0x0000FFFFARRAuto-reload value016RCRRCRrepetition counter register0x300x20read-write0x0000REPRepetition counter value016CCR1CCR1capture/compare register 10x340x20read-write0x00000000CCR1Capture/Compare 1 value016CCR2CCR2capture/compare register 20x380x20read-write0x00000000CCR2Capture/Compare 2 value016CCR3CCR3capture/compare register 30x3C0x20read-write0x00000000CCR3Capture/Compare value016CCR4CCR4capture/compare register 40x400x20read-write0x00000000CCR4Capture/Compare value016BDTRBDTRbreak and dead-time register0x440x20read-write0x0000DTGDead-time generator setup08LOCKLock configuration82OSSIOff-state selection for Idle mode101OSSROff-state selection for Run mode111BKEBreak enable121BKPBreak polarity131AOEAutomatic output enable141MOEMain output enable151BKFBreak filter164BK2FBreak 2 filter204BK2EBreak 2 enable241BK2PBreak 2 polarity251DCRDCRDMA control register0x480x20read-write0x0000DBLDMA burst length85DBADMA base address05DMARDMARDMA address for full transfer0x4C0x20read-write0x0000DMABDMA register for burst accesses016ORORDMA address for full transfer0x500x20read-write0x0000TIM1_ETR_ADC1_RMPTIM1_ETR_ADC1 remapping capability02TI1_RMPInput Capture 1 remap41CCMR3_OutputCCMR3_Outputcapture/compare mode register 2 (output mode)0x540x20read-write0x00000000OC6M_bit3Output Compare 6 mode bit 3241OC5M_bit3Output Compare 5 mode bit 3161OC6CEOutput compare 6 clear enable151OC6MOutput compare 6 mode123OC6PEOutput compare 6 preload enable111OC6FEOutput compare 6 fast enable101OC5CEOutput compare 5 clear enable71OC5MOutput compare 5 mode43OC5PEOutput compare 5 preload enable31OC5FEOutput compare 5 fast enable21CCR5CCR5capture/compare register 40x580x20read-write0x00000000CCR5Capture/Compare value016GC5C1Group Channel 5 and Channel 1291GC5C2Group Channel 5 and Channel 2301GC5C3Group Channel 5 and Channel 3311CCR6CCR6capture/compare register 40x5C0x20read-write0x00000000CCR6Capture/Compare value016AF1AF1DMA address for full transfer0x600x20read-write0x00000001BKINEBRK BKIN input enable01BKCMP1EBRK COMP1 enable11BKCMP2EBRK COMP2 enable21BKINPBRK BKIN input polarity91BKCMP1PBRK COMP1 input polarity101BKCMP2PBRK COMP2 input polarity111ETRSELETR source selection143AF2AF2DMA address for full transfer0x640x20read-write0x00000001BK2INEBRK2 BKIN input enable01BK2CMP1EBRK2 COMP1 enable11BK2CMP2EBRK2 COMP2 enable21BK2DFBK0EBRK2 DFSDM_BREAK0 enable81BK2INPBRK2 BKIN input polarity91BK2CMP1PBRK2 COMP1 input polarity101BK2CMP2PBRK2 COMP2 input polarity111LPTIM1Low power timerLPTIM0x40007C000x00x400registersLPTIM1LPtimer 1 global interrupt47ISRISRInterrupt and Status Register0x00x20read-only0x00000000DOWNCounter direction change up to down61UPCounter direction change down to up51ARROKAutoreload register update OK41CMPOKCompare register update OK31EXTTRIGExternal trigger edge event21ARRMAutoreload match11CMPMCompare match01ICRICRInterrupt Clear Register0x40x20write-only0x00000000DOWNCFDirection change to down Clear Flag61UPCFDirection change to UP Clear Flag51ARROKCFAutoreload register update OK Clear Flag41CMPOKCFCompare register update OK Clear Flag31EXTTRIGCFExternal trigger valid edge Clear Flag21ARRMCFAutoreload match Clear Flag11CMPMCFcompare match Clear Flag01IERIERInterrupt Enable Register0x80x20read-write0x00000000DOWNIEDirection change to down Interrupt Enable61UPIEDirection change to UP Interrupt Enable51ARROKIEAutoreload register update OK Interrupt Enable41CMPOKIECompare register update OK Interrupt Enable31EXTTRIGIEExternal trigger valid edge Interrupt Enable21ARRMIEAutoreload match Interrupt Enable11CMPMIECompare match Interrupt Enable01CFGRCFGRConfiguration Register0xC0x20read-write0x00000000ENCEncoder mode enable241COUNTMODEcounter mode enabled231PRELOADRegisters update mode221WAVPOLWaveform shape polarity211WAVEWaveform shape201TIMOUTTimeout enable191TRIGENTrigger enable and polarity172TRIGSELTrigger selector133PRESCClock prescaler93TRGFLTConfigurable digital filter for trigger62CKFLTConfigurable digital filter for external clock32CKPOLClock Polarity12CKSELClock selector01CRCRControl Register0x100x20read-write0x00000000RSTAREReset after read enable41COUNTRSTCounter reset31CNTSTRTTimer start in continuous mode21SNGSTRTLPTIM start in single mode11ENABLELPTIM Enable01CMPCMPCompare Register0x140x20read-write0x00000000CMPCompare value016ARRARRAutoreload Register0x180x20read-write0x00000001ARRAuto reload value016CNTCNTCounter Register0x1C0x20read-only0x00000000CNTCounter value016OROROption Register0x200x20read-write0x00000000OR1Option register bit 101OR2Option register bit 211LPTIM20x40009400LPTIM2LPtimer 2 global interrupt48USART1Universal synchronous asynchronous receiver transmitterUSART0x400138000x00x400registersUSART1USART1 global interrupt36CR1CR1Control register 10x00x20read-write0x0000RXFFIERXFIFO Full interrupt enable311TXFEIETXFIFO empty interrupt enable301FIFOENFIFO mode enable291M1Word length281EOBIEEnd of Block interrupt enable271RTOIEReceiver timeout interrupt enable261DEAT4Driver Enable assertion time251DEAT3DEAT3241DEAT2DEAT2231DEAT1DEAT1221DEAT0DEAT0211DEDT4Driver Enable de-assertion time201DEDT3DEDT3191DEDT2DEDT2181DEDT1DEDT1171DEDT0DEDT0161OVER8Oversampling mode151CMIECharacter match interrupt enable141MMEMute mode enable131M0Word length121WAKEReceiver wakeup method111PCEParity control enable101PSParity selection91PEIEPE interrupt enable81TXEIEinterrupt enable71TCIETransmission complete interrupt enable61RXNEIERXNE interrupt enable51IDLEIEIDLE interrupt enable41TETransmitter enable31REReceiver enable21UESMUSART enable in Stop mode11UEUSART enable01CR2CR2Control register 20x40x20read-write0x0000ADD4_7Address of the USART node284ADD0_3Address of the USART node244RTOENReceiver timeout enable231ABRMOD1Auto baud rate mode221ABRMOD0ABRMOD0211ABRENAuto baud rate enable201MSBFIRSTMost significant bit first191TAINVBinary data inversion181TXINVTX pin active level inversion171RXINVRX pin active level inversion161SWAPSwap TX/RX pins151LINENLIN mode enable141STOPSTOP bits122CLKENClock enable111CPOLClock polarity101CPHAClock phase91LBCLLast bit clock pulse81LBDIELIN break detection interrupt enable61LBDLLIN break detection length51ADDM77-bit Address Detection/4-bit Address Detection41DIS_NSSWhen the DSI_NSS bit is set, the NSS pin input will be ignored31SLVENSynchronous Slave mode enable01CR3CR3Control register 30x80x20read-write0x0000TXFTCFGTXFIFO threshold configuration293RXFTIERXFIFO threshold interrupt enable281RXFTCFGReceive FIFO threshold configuration253TCBGTIETr Complete before guard time, interrupt enable241TXFTIEthreshold interrupt enable231WUFIEWakeup from Stop mode interrupt enable221WUSWakeup from Stop mode interrupt flag selection202SCARCNTSmartcard auto-retry count173DEPDriver enable polarity selection151DEMDriver enable mode141DDREDMA Disable on Reception Error131OVRDISOverrun Disable121ONEBITOne sample bit method enable111CTSIECTS interrupt enable101CTSECTS enable91RTSERTS enable81DMATDMA enable transmitter71DMARDMA enable receiver61SCENSmartcard mode enable51NACKSmartcard NACK enable41HDSELHalf-duplex selection31IRLPIr low-power21IRENIr mode enable11EIEError interrupt enable01BRRBRRBaud rate register0xC0x20read-write0x0000BRRBRR_4_15016GTPRGTPRGuard time and prescaler register0x100x20read-write0x0000GTGuard time value88PSCPrescaler value08RTORRTORReceiver timeout register0x140x20read-write0x0000BLENBlock Length248RTOReceiver timeout value024RQRRQRRequest register0x180x20write-only0x0000TXFRQTransmit data flush request41RXFRQReceive data flush request31MMRQMute mode request21SBKRQSend break request11ABRRQAuto baud rate request01ISRISRInterrupt & status register0x1C0x20read-only0x00C0TXFTTXFIFO threshold flag271RXFTRXFIFO threshold flag261TCBGTTransmission complete before guard time flag251RXFFRXFIFO Full241TXFETXFIFO Empty231REACKREACK221TEACKTEACK211WUFWUF201RWURWU191SBKFSBKF181CMFCMF171BUSYBUSY161ABRFABRF151ABREABRE141UDRSPI slave underrun error flag131EOBFEOBF121RTOFRTOF111CTSCTS101CTSIFCTSIF91LBDFLBDF81TXETXE71TCTC61RXNERXNE51IDLEIDLE41OREORE31NFNF21FEFE11PEPE01ICRICRInterrupt flag clear register0x200x20write-only0x0000WUCFWakeup from Stop mode clear flag201CMCFCharacter match clear flag171UDRCFSPI slave underrun clear flag131EOBCFEnd of block clear flag121RTOCFReceiver timeout clear flag111CTSCFCTS clear flag91LBDCFLIN break detection clear flag81TCBGTCFTransmission complete before Guard time clear flag71TCCFTransmission complete clear flag61TXFECFTXFIFO empty clear flag51IDLECFIdle line detected clear flag41ORECFOverrun error clear flag31NCFNoise detected clear flag21FECFFraming error clear flag11PECFParity error clear flag01RDRRDRReceive data register0x240x20read-only0x0000RDRReceive data value09TDRTDRTransmit data register0x280x20read-write0x0000TDRTransmit data value09PRESCPRESCPrescaler register0x2C0x20read-write0x0000PRESCALERClock prescaler04LPUART10x40008000LPUART1LPUART1 global interrupt37SPI1Serial peripheral interface/Inter-IC soundSPI0x400130000x00x400registersSPI1SPI 1 global interrupt34CR1CR1control register 10x00x20read-write0x00000000BIDIMODEBidirectional data mode enable151BIDIOEOutput enable in bidirectional mode141CRCENHardware CRC calculation enable131CRCNEXTCRC transfer next121CRCLCRC length111RXONLYReceive only101SSMSoftware slave management91SSIInternal slave select81LSBFIRSTFrame format71SPESPI enable61BRBaud rate control33MSTRMaster selection21CPOLClock polarity11CPHAClock phase01CR2CR2control register 20x40x20read-write0x00000700RXDMAENRx buffer DMA enable01TXDMAENTx buffer DMA enable11SSOESS output enable21NSSPNSS pulse management31FRFFrame format41ERRIEError interrupt enable51RXNEIERX buffer not empty interrupt enable61TXEIETx buffer empty interrupt enable71DSData size84FRXTHFIFO reception threshold121LDMA_RXLast DMA transfer for reception131LDMA_TXLast DMA transfer for transmission141SRSRstatus register0x80x200x00000002RXNEReceive buffer not empty01read-onlyTXETransmit buffer empty11read-onlyCRCERRCRC error flag41read-writeMODFMode fault51read-onlyOVROverrun flag61read-onlyBSYBusy flag71read-onlyTIFRFETI frame format error81read-onlyFRLVLFIFO reception level92read-onlyFTLVLFIFO transmission level112read-onlyDRDRdata register0xC0x20read-write0x00000000DRData register016CRCPRCRCPRCRC polynomial register0x100x20read-write0x00000007CRCPOLYCRC polynomial register016RXCRCRRXCRCRRX CRC register0x140x20read-only0x00000000RxCRCRx CRC register016TXCRCRTXCRCRTX CRC register0x180x20read-only0x00000000TxCRCTx CRC register016SPI20x40003800SPI2SPI1 global interrupt35RTCReal-time clockRTC0x400028000x00x400registersRTC_TAMPRTC/TAMP/CSS on LSE through EXTI line 19 interrupt2RTC_WKUPRTC wakeup interrupt through EXTI[19]3RTC_ALARMRTC Alarms (A and B) interrupt through + AIEC41TRTRtime register0x00x20read-write0x00000000PMAM/PM notation221HTHour tens in BCD format202HUHour units in BCD format164MNTMinute tens in BCD format123MNUMinute units in BCD format84STSecond tens in BCD format43SUSecond units in BCD format04DRDRdate register0x40x20read-write0x00002101YTYear tens in BCD format204YUYear units in BCD format164WDUWeek day units133MTMonth tens in BCD format121MUMonth units in BCD format84DTDate tens in BCD format42DUDate units in BCD format04CRCRcontrol register0x80x20read-write0x00000000WCKSELWakeup clock selection03TSEDGETime-stamp event active edge31REFCKONReference clock detection enable (50 or 60 Hz)41BYPSHADBypass the shadow registers51FMTHour format61ALRAEAlarm A enable81ALRBEAlarm B enable91WUTEWakeup timer enable101TSETime stamp enable111ALRAIEAlarm A interrupt enable121ALRBIEAlarm B interrupt enable131WUTIEWakeup timer interrupt enable141TSIETime-stamp interrupt enable151ADD1HAdd 1 hour (summer time change)161SUB1HSubtract 1 hour (winter time change)171BKPBackup181COSELCalibration output selection191POLOutput polarity201OSELOutput selection212COECalibration output enable231ITSEtimestamp on internal event enable241ISRISRinitialization and status register0xC0x200x00000007ALRAWFAlarm A write flag01read-onlyALRBWFAlarm B write flag11read-onlyWUTWFWakeup timer write flag21read-onlySHPFShift operation pending31read-writeINITSInitialization status flag41read-onlyRSFRegisters synchronization flag51read-writeINITFInitialization flag61read-onlyINITInitialization mode71read-writeALRAFAlarm A flag81read-writeALRBFAlarm B flag91read-writeWUTFWakeup timer flag101read-writeTSFTime-stamp flag111read-writeTSOVFTime-stamp overflow flag121read-writeTAMP1FTamper detection flag131read-writeTAMP2FRTC_TAMP2 detection flag141read-writeTAMP3FRTC_TAMP3 detection flag151read-writeRECALPFRecalibration pending Flag161read-onlyITSFINTERNAL TIME-STAMP FLAG171read-writePRERPRERprescaler register0x100x20read-write0x007F00FFPREDIV_AAsynchronous prescaler factor167PREDIV_SSynchronous prescaler factor015WUTRWUTRwakeup timer register0x140x20read-write0x0000FFFFWUTWakeup auto-reload value bits016ALRMARALRMARalarm A register0x1C0x20read-write0x00000000MSK4Alarm A date mask311WDSELWeek day selection301DTDate tens in BCD format282DUDate units or day in BCD format244MSK3Alarm A hours mask231PMAM/PM notation221HTHour tens in BCD format202HUHour units in BCD format164MSK2Alarm A minutes mask151MNTMinute tens in BCD format123MNUMinute units in BCD format84MSK1Alarm A seconds mask71STSecond tens in BCD format43SUSecond units in BCD format04ALRMBRALRMBRalarm B register0x200x20read-write0x00000000MSK4Alarm B date mask311WDSELWeek day selection301DTDate tens in BCD format282DUDate units or day in BCD format244MSK3Alarm B hours mask231PMAM/PM notation221HTHour tens in BCD format202HUHour units in BCD format164MSK2Alarm B minutes mask151MNTMinute tens in BCD format123MNUMinute units in BCD format84MSK1Alarm B seconds mask71STSecond tens in BCD format43SUSecond units in BCD format04WPRWPRwrite protection register0x240x20write-only0x00000000KEYWrite protection key08SSRSSRsub second register0x280x20read-only0x00000000SSSub second value016SHIFTRSHIFTRshift control register0x2C0x20write-only0x00000000ADD1SAdd one second311SUBFSSubtract a fraction of a second015TSTRTSTRtime stamp time register0x300x20read-only0x00000000SUSecond units in BCD format04STSecond tens in BCD format43MNUMinute units in BCD format84MNTMinute tens in BCD format123HUHour units in BCD format164HTHour tens in BCD format202PMAM/PM notation221TSDRTSDRtime stamp date register0x340x20read-only0x00000000WDUWeek day units133MTMonth tens in BCD format121MUMonth units in BCD format84DTDate tens in BCD format42DUDate units in BCD format04TSSSRTSSSRtimestamp sub second register0x380x20read-only0x00000000SSSub second value016CALRCALRcalibration register0x3C0x20read-write0x00000000CALPIncrease frequency of RTC by 488.5 ppm151CALW8Use an 8-second calibration cycle period141CALW16Use a 16-second calibration cycle period131CALMCalibration minus09TAMPCRTAMPCRtamper configuration register0x400x20read-write0x00000000TAMP1ETamper 1 detection enable01TAMP1TRGActive level for tamper 111TAMPIETamper interrupt enable21TAMP2ETamper 2 detection enable31TAMP2TRGActive level for tamper 241TAMP3ETamper 3 detection enable51TAMP3TRGActive level for tamper 361TAMPTSActivate timestamp on tamper detection event71TAMPFREQTamper sampling frequency83TAMPFLTTamper filter count112TAMPPRCHTamper precharge duration132TAMPPUDISTAMPER pull-up disable151TAMP1IETamper 1 interrupt enable161TAMP1NOERASETamper 1 no erase171TAMP1MFTamper 1 mask flag181TAMP2IETamper 2 interrupt enable191TAMP2NOERASETamper 2 no erase201TAMP2MFTamper 2 mask flag211TAMP3IETamper 3 interrupt enable221TAMP3NOERASETamper 3 no erase231TAMP3MFTamper 3 mask flag241ALRMASSRALRMASSRalarm A sub second register0x440x20read-write0x00000000MASKSSMask the most-significant bits starting at this bit244SSSub seconds value015ALRMBSSRALRMBSSRalarm B sub second register0x480x20read-write0x00000000MASKSSMask the most-significant bits starting at this bit244SSSub seconds value015ORORoption register0x4C0x20read-write0x00000000RTC_ALARM_TYPERTC_ALARM on PC13 output type01RTC_OUT_RMPRTC_OUT remap11BKP0RBKP0Rbackup register0x500x20read-write0x00000000BKPBKP032BKP1RBKP1Rbackup register0x540x20read-write0x00000000BKPBKP032BKP2RBKP2Rbackup register0x580x20read-write0x00000000BKPBKP032BKP3RBKP3Rbackup register0x5C0x20read-write0x00000000BKPBKP032BKP4RBKP4Rbackup register0x600x20read-write0x00000000BKPBKP032BKP5RBKP5Rbackup register0x640x20read-write0x00000000BKPBKP032BKP6RBKP6Rbackup register0x680x20read-write0x00000000BKPBKP032BKP7RBKP7Rbackup register0x6C0x20read-write0x00000000BKPBKP032BKP8RBKP8Rbackup register0x700x20read-write0x00000000BKPBKP032BKP9RBKP9Rbackup register0x740x20read-write0x00000000BKPBKP032BKP10RBKP10Rbackup register0x780x20read-write0x00000000BKPBKP032BKP11RBKP11Rbackup register0x7C0x20read-write0x00000000BKPBKP032BKP12RBKP12Rbackup register0x800x20read-write0x00000000BKPBKP032BKP13RBKP13Rbackup register0x840x20read-write0x00000000BKPBKP032BKP14RBKP14Rbackup register0x880x20read-write0x00000000BKPBKP032BKP15RBKP15Rbackup register0x8C0x20read-write0x00000000BKPBKP032BKP16RBKP16Rbackup register0x900x20read-write0x00000000BKPBKP032BKP17RBKP17Rbackup register0x940x20read-write0x00000000BKPBKP032BKP18RBKP18Rbackup register0x980x20read-write0x00000000BKPBKP032BKP19RBKP19Rbackup register0x9C0x20read-write0x00000000BKPBKP032DBGMCUDebug supportDBGMCU0xE00420000x00x400registersIDCODEIDCODEMCU Device ID Code Register0x00x20read-only0x0DEV_IDDevice Identifier012REV_IDRevision Identifier1616CRCRDebug MCU Configuration Register0x40x20read-write0x0DBG_SLEEPDebug Sleep Mode01DBG_STOPDebug Stop Mode11DBG_STANDBYDebug Standby Mode21TRACE_IOENTrace port and clock enable51TRGOENExternal trigger output enable281APB1FZR1APB1FZR1APB1 Low Freeze Register CPU10x3C0x20read-write0x0DBG_TIMER2_STOPDebug Timer 2 stopped when Core is halted01DBG_RTC_STOPRTC counter stopped when core is halted101DBG_WWDG_STOPWWDG counter stopped when core is halted111DBG_IWDG_STOPIWDG counter stopped when core is halted121DBG_I2C1_STOPDebug I2C1 SMBUS timeout stopped when Core is halted211DBG_I2C3_STOPDebug I2C3 SMBUS timeout stopped when core is halted231DBG_LPTIM1_STOPDebug LPTIM1 stopped when Core is halted311C2AP_B1FZR1C2AP_B1FZR1APB1 Low Freeze Register CPU20x400x20read-write0x0DBG_LPTIM2_STOPLPTIM2 counter stopped when core is halted01DBG_RTC_STOPRTC counter stopped when core is halted101DBG_IWDG_STOPIWDG stopped when core is halted121DBG_I2C1_STOPI2C1 SMBUS timeout stopped when core is halted211DBG_I2C3_STOPI2C3 SMBUS timeout stopped when core is halted231DBG_LPTIM1_STOPLPTIM1 counter stopped when core is halted311APB1FZR2APB1FZR2APB1 High Freeze Register CPU10x440x20read-write0x0DBG_LPTIM2_STOPLPTIM2 counter stopped when core is halted51C2APB1FZR2C2APB1FZR2APB1 High Freeze Register CPU20x480x20read-write0x0DBG_LPTIM2_STOPLPTIM2 counter stopped when core is halted51APB2FZRAPB2FZRAPB2 Freeze Register CPU10x4C0x20read-write0x0DBG_TIM1_STOPTIM1 counter stopped when core is halted111DBG_TIM16_STOPTIM16 counter stopped when core is halted171DBG_TIM17_STOPTIM17 counter stopped when core is halted181C2APB2FZRC2APB2FZRAPB2 Freeze Register CPU2C2APB1FZR20x480x20read-write0x0DBG_TIM1_STOPTIM1 counter stopped when core is halted111DBG_TIM16_STOPTIM16 counter stopped when core is halted171DBG_TIM17_STOPTIM17 counter stopped when core is halted181PKAPKAPKA0x580020000x00x2000registersPKAPrivate key accelerator + interrupt29CRCRControl register0x00x20read-write0x00000000ADDRERRIEAddress error interrupt enable201RAMERRIERAM error interrupt enable191PROCENDIEEnd of operation interrupt enable171MODEPKA Operation Mode86SECLVLSecurity Enable21STARTStart the operation11ENPeripheral Enable01SRSRPKA status register0x40x20read-only0x00000000ADDRERRFAddress error flag201RAMERRFRAM error flag191PROCENDFPKA End of Operation flag171BUSYPKA Operation in progress161CLRFRCLRFRPKA clear flag register0x80x20read-write0x00000000ADDRERRFCClear Address error flag201RAMERRFCClear RAM error flag191PROCENDFCClear PKA End of Operation flag171VERRVERRPKA version register0x1FF40x20read-only0x00000010MINREVMinor revision04MAJREVMajor revision44IPIDRIPIDRPKA identification register0x1FF80x20read-only0x00170061IDIdentification Code032SIDRSIDRPKA size ID register0x1FFC0x20read-only0xA3C5DD08SIDSide Identification Code032IPCCIPCCIPCC0x58000C000x00x400registersIPCC_C1_RX_ITIPCC CPU1 RX occupied interrupt44IPCC_C1_TX_ITIPCC CPU1 TX free interrupt45C1CRC1CRControl register CPU10x00x20read-write0x00000000TXFIEprocessor 1 Transmit channel free interrupt enable161RXOIEprocessor 1 Receive channel occupied interrupt enable01C1MRC1MRMask register CPU10x40x20read-write0xFFFFFFFFCH6FMprocessor 1 Transmit channel 6 free interrupt mask211CH5FMprocessor 1 Transmit channel 5 free interrupt mask201CH4FMprocessor 1 Transmit channel 4 free interrupt mask191CH3FMprocessor 1 Transmit channel 3 free interrupt mask181CH2FMprocessor 1 Transmit channel 2 free interrupt mask171CH1FMprocessor 1 Transmit channel 1 free interrupt mask161CH6OMprocessor 1 Receive channel 6 occupied interrupt enable51CH5OMprocessor 1 Receive channel 5 occupied interrupt enable41CH4OMprocessor 1 Receive channel 4 occupied interrupt enable31CH3OMprocessor 1 Receive channel 3 occupied interrupt enable21CH2OMprocessor 1 Receive channel 2 occupied interrupt enable11CH1OMprocessor 1 Receive channel 1 occupied interrupt enable01C1SCRC1SCRStatus Set or Clear register CPU10x80x20write-only0x00000000CH6Sprocessor 1 Transmit channel 6 status set211CH5Sprocessor 1 Transmit channel 5 status set201CH4Sprocessor 1 Transmit channel 4 status set191CH3Sprocessor 1 Transmit channel 3 status set181CH2Sprocessor 1 Transmit channel 2 status set171CH1Sprocessor 1 Transmit channel 1 status set161CH6Cprocessor 1 Receive channel 6 status clear51CH5Cprocessor 1 Receive channel 5 status clear41CH4Cprocessor 1 Receive channel 4 status clear31CH3Cprocessor 1 Receive channel 3 status clear21CH2Cprocessor 1 Receive channel 2 status clear11CH1Cprocessor 1 Receive channel 1 status clear01C1TO2SRC1TO2SRCPU1 to CPU2 status register0xC0x20read-only0x00000000CH6Fprocessor 1 transmit to process 2 Receive channel 6 status flag51CH5Fprocessor 1 transmit to process 2 Receive channel 5 status flag41CH4Fprocessor 1 transmit to process 2 Receive channel 4 status flag31CH3Fprocessor 1 transmit to process 2 Receive channel 3 status flag21CH2Fprocessor 1 transmit to process 2 Receive channel 2 status flag11CH1Fprocessor 1 transmit to process 2 Receive channel 1 status flag01C2CRC2CRControl register CPU20x100x20read-write0x00000000TXFIEprocessor 2 Transmit channel free interrupt enable161RXOIEprocessor 2 Receive channel occupied interrupt enable01C2MRC2MRMask register CPU20x140x20read-write0xFFFFFFFFCH6FMprocessor 2 Transmit channel 6 free interrupt mask211CH5FMprocessor 2 Transmit channel 5 free interrupt mask201CH4FMprocessor 2 Transmit channel 4 free interrupt mask191CH3FMprocessor 2 Transmit channel 3 free interrupt mask181CH2FMprocessor 2 Transmit channel 2 free interrupt mask171CH1FMprocessor 2 Transmit channel 1 free interrupt mask161CH6OMprocessor 2 Receive channel 6 occupied interrupt enable51CH5OMprocessor 2 Receive channel 5 occupied interrupt enable41CH4OMprocessor 2 Receive channel 4 occupied interrupt enable31CH3OMprocessor 2 Receive channel 3 occupied interrupt enable21CH2OMprocessor 2 Receive channel 2 occupied interrupt enable11CH1OMprocessor 2 Receive channel 1 occupied interrupt enable01C2SCRC2SCRStatus Set or Clear register CPU20x180x20write-only0x00000000CH6Sprocessor 2 Transmit channel 6 status set211CH5Sprocessor 2 Transmit channel 5 status set201CH4Sprocessor 2 Transmit channel 4 status set191CH3Sprocessor 2 Transmit channel 3 status set181CH2Sprocessor 2 Transmit channel 2 status set171CH1Sprocessor 2 Transmit channel 1 status set161CH6Cprocessor 2 Receive channel 6 status clear51CH5Cprocessor 2 Receive channel 5 status clear41CH4Cprocessor 2 Receive channel 4 status clear31CH3Cprocessor 2 Receive channel 3 status clear21CH2Cprocessor 2 Receive channel 2 status clear11CH1Cprocessor 2 Receive channel 1 status clear01C2TOC1SRC2TOC1SRCPU2 to CPU1 status register0x1C0x20read-only0x00000000CH6Fprocessor 2 transmit to process 1 Receive channel 6 status flag51CH5Fprocessor 2 transmit to process 1 Receive channel 5 status flag41CH4Fprocessor 2 transmit to process 1 Receive channel 4 status flag31CH3Fprocessor 2 transmit to process 1 Receive channel 3 status flag21CH2Fprocessor 2 transmit to process 1 Receive channel 2 status flag11CH1Fprocessor 2 transmit to process 1 Receive channel 1 status flag01HWCFGRHWCFGRIPCC Hardware configuration register0x3F00x20read-only0x00000006CHANNELSNumber of channels per CPU supported by the IP, range 1 to 1608VERRVERRIPCC version register0x3F40x20read-only0x00000010MAJREVMajor Revision44MINREVMinor Revision04IPIDRIPIDRIPCC indentification register0x3F80x20read-only0x00100071IPIDIdentification Code032SIDRSIDRIPCC size indentification register0x3FC0x20read-only0xA3C5DD01SIDSize Identification Code032EXTIExternal interrupt/event controllerEXTI0x580008000x00x400registersPVDPVD through EXTI[16] (C1IMR2[20])1EXTI0EXTI line 0 interrupt through + EXTI[0]6EXTI1EXTI line 0 interrupt through + EXTI[1]7EXTI2EXTI line 0 interrupt through + EXTI[2]8EXTI3EXTI line 0 interrupt through + EXTI[3]9EXTI4EXTI line 0 interrupt through + EXTI[4]10C2SEVCPU2 SEV through EXTI[40]21EXTI5_9EXTI line [9:5] interrupt through + EXTI[9:5]23EXTI10_15EXTI line [15:10] interrupt through + EXTI[15:10]40RTSR1RTSR1rising trigger selection register0x00x20read-write0x00000000RTRising trigger event configuration bit of Configurable Event input022RT_31Rising trigger event configuration bit of Configurable Event input311FTSR1FTSR1falling trigger selection register0x40x20read-write0x00000000FTFalling trigger event configuration bit of Configurable Event input022FT_31Falling trigger event configuration bit of Configurable Event input311SWIER1SWIER1software interrupt event register0x80x20read-write0x00000000SWISoftware interrupt on event022SWI_31Software interrupt on event311PR1PR1EXTI pending register0xC0x20read-write0x00000000PIFConfigurable event inputs Pending bit022PIF_31Configurable event inputs Pending bit311RTSR2RTSR2rising trigger selection register0x200x20read-write0x00000000RT33Rising trigger event configuration bit of Configurable Event input11RT40_41Rising trigger event configuration bit of Configurable Event input82FTSR2FTSR2falling trigger selection register0x240x20read-write0x00000000FT33Falling trigger event configuration bit of Configurable Event input11FT40_41Falling trigger event configuration bit of Configurable Event input82SWIER2SWIER2software interrupt event register0x280x20read-write0x00000000SWI33Software interrupt on event11SWI40_41Software interrupt on event82PR2PR2pending register0x2C0x20read-write0x00000000PIF33Configurable event inputs x+32 Pending bit.11PIF40_41Configurable event inputs x+32 Pending bit.82C1IMR1C1IMR1CPUm wakeup with interrupt mask register0x800x20read-write0x7FC00000IMCPU(m) wakeup with interrupt Mask on Event input032C2IMR1C2IMR1CPUm wakeup with interrupt mask register0xC00x20read-write0x7FC00000IMCPU(m) wakeup with interrupt Mask on Event input032C1EMR1C1EMR1CPUm wakeup with event mask register0x840x20read-write0x00000000EM0_15CPU(m) Wakeup with event generation Mask on Event input016EM17_21CPU(m) Wakeup with event generation Mask on Event input175C2EMR1C2EMR1CPUm wakeup with event mask register0xC40x20read-write0x00000000EM0_15CPU(m) Wakeup with event generation Mask on Event input016EM17_21CPU(m) Wakeup with event generation Mask on Event input175C1IMR2C1IMR2CPUm wakeup with interrupt mask register0x900x20read-write0x0001FCFDIMCPUm Wakeup with interrupt Mask on Event input017C2IMR2C2IMR2CPUm wakeup with interrupt mask register0xD00x20read-write0x0001FCFDIMCPUm Wakeup with interrupt Mask on Event input017C1EMR2C1EMR2CPUm wakeup with event mask register0x940x20read-write0x00000000EMCPU(m) Wakeup with event generation Mask on Event input82C2EMR2C2EMR2CPUm wakeup with event mask register0xD40x20read-write0x00000000EMCPU(m) Wakeup with event generation Mask on Event input82HWCFGR5HWCFGR5Hardware configuration registers0x3E00x20read-only0x003EFFFFCPUEVENTHW configuration CPU event generation032HWCFGR6HWCFGR6Hardware configuration registers0x3DC0x20read-only0x00000300CPUEVENTHW configuration CPU event generation032HWCFGR7HWCFGR7EXTI Hardware configuration registers0x3D80x20read-only0x00000000CPUEVENTHW configuration CPU event generation032HWCFGR2HWCFGR2Hardware configuration registers0x3EC0x20read-only0x803FFFFFEVENT_TRGHW configuration event trigger type032HWCFGR3HWCFGR3Hardware configuration registers0x3E80x20read-only0x00000302EVENT_TRGHW configuration event trigger type032HWCFGR4HWCFGR4Hardware configuration registers0x3E40x20read-only0x00000000EVENT_TRGHW configuration event trigger type032HWCFGR1HWCFGR1Hardware configuration register 10x3F00x20read-only0x00003130NBEVENTSHW configuration number of event08NBCPUSHW configuration number of CPUs84CPUEVTENHW configuration of CPU(m) event output enable124VERRVERREXTI IP Version register0x3F40x20read-only0X00000020MINREVMinor Revision number04MAJREVMajor Revision number44IPIDRIPIDRIdentification register0x3F80x20read-only0x000E0001IPIDIP Identification032SIDRSIDRSize ID register0x3FC0x20read-only0xA3C5DD01SIDSize Identification032CRSClock recovery systemCRS0x400060000x00x400registersCRS_ITCRS interrupt42CRCRCRS control register0x00x20read-write0x00002000SYNCOKIESYNC event OK interrupt enable01SYNCWARNIESYNC warning interrupt enable11ERRIESynchronization or trimming error interrupt enable21ESYNCIEExpected SYNC interrupt enable31CENFrequency error counter enable51AUTOTRIMENAutomatic trimming enable61SWSYNCAutomatic trimming enable71TRIMHSI48 oscillator smooth trimming86CFGRCFGRCRS configuration register0x40x20read-write0x2022BB7FRELOADCounter reload value016FELIMFrequency error limit168SYNCDIVSYNCDIV243SYNCSRCSYNC signal source selection282SYNCPOLSYNC polarity selection311ISRISRCRS interrupt and status register0x80x20read-only0x00000000SYNCOKFSYNC event OK flag01SYNCWARNFSYNC warning flag11ERRFError flag21ESYNCFExpected SYNC flag31SYNCERRSYNC error81SYNCMISSSYNC missed91TRIMOVFTrimming overflow or underflow101FEDIRFrequency error direction151FECAPFrequency error capture1616ICRICRCRS interrupt flag clear register0xC0x20read-write0x00000000SYNCOKCSYNC event OK clear flag01SYNCWARNCwarning clear flag11ERRCError clear flag21ESYNCCExpected SYNC clear flag31USBUniversal serial bus full-speed device interfaceUSB0x400068000x00x800registersUSB_HPUSB high priority interrupt19USB_LPUSB low priority interrupt (including USB + wakeup)20EP0REP0Rendpoint 0 register0x00x10read-write0x00000000EAEndpoint address04STAT_TXStatus bits, for transmission transfers42DTOG_TXData Toggle, for transmission transfers61CTR_TXCorrect Transfer for transmission71EP_KINDEndpoint kind81EP_TYPEEndpoint type92SETUPSetup transaction completed111STAT_RXStatus bits, for reception transfers122DTOG_RXData Toggle, for reception transfers141CTR_RXCorrect transfer for reception151EP1REP1Rendpoint 1 register0x40x10read-write0x00000000EAEndpoint address04STAT_TXStatus bits, for transmission transfers42DTOG_TXData Toggle, for transmission transfers61CTR_TXCorrect Transfer for transmission71EP_KINDEndpoint kind81EP_TYPEEndpoint type92SETUPSetup transaction completed111STAT_RXStatus bits, for reception transfers122DTOG_RXData Toggle, for reception transfers141CTR_RXCorrect transfer for reception151EP2REP2Rendpoint 2 register0x80x10read-write0x00000000EAEndpoint address04STAT_TXStatus bits, for transmission transfers42DTOG_TXData Toggle, for transmission transfers61CTR_TXCorrect Transfer for transmission71EP_KINDEndpoint kind81EP_TYPEEndpoint type92SETUPSetup transaction completed111STAT_RXStatus bits, for reception transfers122DTOG_RXData Toggle, for reception transfers141CTR_RXCorrect transfer for reception151EP3REP3Rendpoint 3 register0xC0x10read-write0x00000000EAEndpoint address04STAT_TXStatus bits, for transmission transfers42DTOG_TXData Toggle, for transmission transfers61CTR_TXCorrect Transfer for transmission71EP_KINDEndpoint kind81EP_TYPEEndpoint type92SETUPSetup transaction completed111STAT_RXStatus bits, for reception transfers122DTOG_RXData Toggle, for reception transfers141CTR_RXCorrect transfer for reception151EP4REP4Rendpoint 4 register0x100x10read-write0x00000000EAEndpoint address04STAT_TXStatus bits, for transmission transfers42DTOG_TXData Toggle, for transmission transfers61CTR_TXCorrect Transfer for transmission71EP_KINDEndpoint kind81EP_TYPEEndpoint type92SETUPSetup transaction completed111STAT_RXStatus bits, for reception transfers122DTOG_RXData Toggle, for reception transfers141CTR_RXCorrect transfer for reception151EP5REP5Rendpoint 5 register0x140x10read-write0x00000000EAEndpoint address04STAT_TXStatus bits, for transmission transfers42DTOG_TXData Toggle, for transmission transfers61CTR_TXCorrect Transfer for transmission71EP_KINDEndpoint kind81EP_TYPEEndpoint type92SETUPSetup transaction completed111STAT_RXStatus bits, for reception transfers122DTOG_RXData Toggle, for reception transfers141CTR_RXCorrect transfer for reception151EP6REP6Rendpoint 6 register0x180x10read-write0x00000000EAEndpoint address04STAT_TXStatus bits, for transmission transfers42DTOG_TXData Toggle, for transmission transfers61CTR_TXCorrect Transfer for transmission71EP_KINDEndpoint kind81EP_TYPEEndpoint type92SETUPSetup transaction completed111STAT_RXStatus bits, for reception transfers122DTOG_RXData Toggle, for reception transfers141CTR_RXCorrect transfer for reception151EP7REP7Rendpoint 7 register0x1C0x10read-write0x00000000EAEndpoint address04STAT_TXStatus bits, for transmission transfers42DTOG_TXData Toggle, for transmission transfers61CTR_TXCorrect Transfer for transmission71EP_KINDEndpoint kind81EP_TYPEEndpoint type92SETUPSetup transaction completed111STAT_RXStatus bits, for reception transfers122DTOG_RXData Toggle, for reception transfers141CTR_RXCorrect transfer for reception151CNTRCNTRcontrol register0x400x10read-write0x00000003FRESForce USB Reset01PDWNPower down11LPMODELow-power mode21FSUSPForce suspend31RESUMEResume request41L1RESUMELPM L1 Resume request51L1REQMLPM L1 state request interrupt mask71ESOFMExpected start of frame interrupt mask81SOFMStart of frame interrupt mask91RESETMUSB reset interrupt mask101SUSPMSuspend mode interrupt mask111WKUPMWakeup interrupt mask121ERRMError interrupt mask131PMAOVRMPacket memory area over / underrun interrupt mask141CTRMCorrect transfer interrupt mask151ISTRISTRinterrupt status register0x440x100x00000000EP_IDEndpoint Identifier04read-onlyDIRDirection of transaction41read-onlyL1REQLPM L1 state request71read-writeESOFExpected start frame81read-writeSOFstart of frame91read-writeRESETreset request101read-writeSUSPSuspend mode request111read-writeWKUPWakeup121read-writeERRError131read-writePMAOVRPacket memory area over / underrun141read-writeCTRCorrect transfer151read-onlyFNRFNRframe number register0x480x10read-only0x0000FNFrame number011LSOFLost SOF112LCKLocked131RXDMReceive data - line status141RXDPReceive data + line status151DADDRDADDRdevice address0x4C0x10read-write0x0000ADDDevice address07EFEnable function71BTABLEBTABLEBuffer table address0x500x10read-write0x0000BTABLEBuffer table313COUNT0_TXCOUNT0_TXTransmission byte count 00x520x10read-write0x0000COUNT0_TXTransmission byte count010COUNT1_TXCOUNT1_TXTransmission byte count 00x5A0x10read-write0x0000COUNT1_TXTransmission byte count010COUNT2_TXCOUNT2_TXTransmission byte count 00x620x10read-write0x0000COUNT2_TXTransmission byte count010COUNT3_TXCOUNT3_TXTransmission byte count 00x6A0x10read-write0x0000COUNT3_TXTransmission byte count010COUNT4_TXCOUNT4_TXTransmission byte count 00x720x10read-write0x0000COUNT4_TXTransmission byte count010COUNT5_TXCOUNT5_TXTransmission byte count 00x7A0x10read-write0x0000COUNT5_TXTransmission byte count010COUNT6_TXCOUNT6_TXTransmission byte count 00x820x10read-write0x0000COUNT6_TXTransmission byte count010COUNT7_TXCOUNT7_TXTransmission byte count 00x8A0x10read-write0x0000COUNT7_TXTransmission byte count010ADDR0_RXADDR0_RXReception buffer address 00x540x10read-write0x0000ADDR0_RXReception buffer address115ADDR1_RXADDR1_RXReception buffer address 00x5C0x10read-write0x0000ADDR1_RXReception buffer address115ADDR2_RXADDR2_RXReception buffer address 00x640x10read-write0x0000ADDR2_RXReception buffer address115ADDR3_RXADDR3_RXReception buffer address 00x6C0x10read-write0x0000ADDR3_RXReception buffer address115ADDR4_RXADDR4_RXReception buffer address 00x740x10read-write0x0000ADDR4_RXReception buffer address115ADDR5_RXADDR5_RXReception buffer address 00x7C0x10read-write0x0000ADDR5_RXReception buffer address115ADDR6_RXADDR6_RXReception buffer address 00x840x10read-write0x0000ADDR6_RXReception buffer address115ADDR7_RXADDR7_RXReception buffer address 00x8C0x10read-write0x0000ADDR7_RXReception buffer address115COUNT0_RXCOUNT0_RXReception byte count 00x560x100x0000COUNT0_RXReception byte count010read-onlyNUM_BLOCKNumber of blocks105read-writeBL_SIZEBlock size151read-writeCOUNT1_RXCOUNT1_RXReception byte count 00x5E0x100x0000COUNT1_RXReception byte count010read-onlyNUM_BLOCKNumber of blocks105read-writeBL_SIZEBlock size151read-writeCOUNT2_RXCOUNT2_RXReception byte count 00x660x100x0000COUNT2_RXReception byte count010read-onlyNUM_BLOCKNumber of blocks105read-writeBL_SIZEBlock size151read-writeCOUNT3_RXCOUNT3_RXReception byte count 00x6E0x100x0000COUNT3_RXReception byte count010read-onlyNUM_BLOCKNumber of blocks105read-writeBL_SIZEBlock size151read-writeCOUNT4_RXCOUNT4_RXReception byte count 00x760x100x0000COUNT4_RXReception byte count010read-onlyNUM_BLOCKNumber of blocks105read-writeBL_SIZEBlock size151read-writeCOUNT5_RXCOUNT5_RXReception byte count 00x7E0x100x0000COUNT5_RXReception byte count010read-onlyNUM_BLOCKNumber of blocks105read-writeBL_SIZEBlock size151read-writeCOUNT6_RXCOUNT6_RXReception byte count 00x860x100x0000COUNT6_RXReception byte count010read-onlyNUM_BLOCKNumber of blocks105read-writeBL_SIZEBlock size151read-writeCOUNT7_RXCOUNT7_RXReception byte count 00x8E0x100x0000COUNT7_RXReception byte count010read-onlyNUM_BLOCKNumber of blocks105read-writeBL_SIZEBlock size151read-writeLPMCSRLPMCSRcontrol and status registerADDR0_RX0x540x100x0000LPMENLPM support enable01read-writeLPMACKLPM Token acknowledge enable11read-writeREMWAKERemoteWake value31read-writeBESLBESL value44read-onlyBCDRBCDRBattery charging detector(0x580x100x0000BCDENBattery charging detector (BCD) enable01read-writeDCDENData contact detection (DCD) mode enable11read-writePDENPrimary detection (PD) mode enable21read-writeSDENSecondary detection (SD) mode enable31read-writeDCDETData contact detection (DCD) status41read-onlyPDETPrimary detection (PD) status51read-onlySDETSecondary detection (SD) status61read-onlyPS2DETDM pull-up detection status71read-onlyDPPUDP pull-up control151read-writeSCBSystem control blockSCB0xE000ED000x00x41registersCPUIDCPUIDCPUID base register0x00x20read-only0x410FC241RevisionRevision number04PartNoPart number of the processor412ConstantReads as 0xF164VariantVariant number204ImplementerImplementer code248ICSRICSRInterrupt control and state register0x40x20read-write0x00000000VECTACTIVEActive vector09RETTOBASEReturn to base level111VECTPENDINGPending vector127ISRPENDINGInterrupt pending flag221PENDSTCLRSysTick exception clear-pending bit251PENDSTSETSysTick exception set-pending bit261PENDSVCLRPendSV clear-pending bit271PENDSVSETPendSV set-pending bit281NMIPENDSETNMI set-pending bit.311VTORVTORVector table offset register0x80x20read-write0x00000000TBLOFFVector table base offset field921AIRCRAIRCRApplication interrupt and reset control register0xC0x20read-write0x00000000VECTRESETVECTRESET01VECTCLRACTIVEVECTCLRACTIVE11SYSRESETREQSYSRESETREQ21PRIGROUPPRIGROUP83ENDIANESSENDIANESS151VECTKEYSTATRegister key1616SCRSCRSystem control register0x100x20read-write0x00000000SLEEPONEXITSLEEPONEXIT11SLEEPDEEPSLEEPDEEP21SEVEONPENDSend Event on Pending bit41CCRCCRConfiguration and control register0x140x20read-write0x00000000NONBASETHRDENAConfigures how the processor enters Thread mode01USERSETMPENDUSERSETMPEND11UNALIGN__TRPUNALIGN_ TRP31DIV_0_TRPDIV_0_TRP41BFHFNMIGNBFHFNMIGN81STKALIGNSTKALIGN91SHPR1SHPR1System handler priority registers0x180x20read-write0x00000000PRI_4Priority of system handler 408PRI_5Priority of system handler 588PRI_6Priority of system handler 6168SHPR2SHPR2System handler priority registers0x1C0x20read-write0x00000000PRI_11Priority of system handler 11248SHPR3SHPR3System handler priority registers0x200x20read-write0x00000000PRI_14Priority of system handler 14168PRI_15Priority of system handler 15248SHCSRSHCSRSystem handler control and state register0x240x20read-write0x00000000MEMFAULTACTMemory management fault exception active bit01BUSFAULTACTBus fault exception active bit11USGFAULTACTUsage fault exception active bit31SVCALLACTSVC call active bit71MONITORACTDebug monitor active bit81PENDSVACTPendSV exception active bit101SYSTICKACTSysTick exception active bit111USGFAULTPENDEDUsage fault exception pending bit121MEMFAULTPENDEDMemory management fault exception pending bit131BUSFAULTPENDEDBus fault exception pending bit141SVCALLPENDEDSVC call pending bit151MEMFAULTENAMemory management fault enable bit161BUSFAULTENABus fault enable bit171USGFAULTENAUsage fault enable bit181CFSR_UFSR_BFSR_MMFSRCFSR_UFSR_BFSR_MMFSRConfigurable fault status register0x280x20read-write0x00000000IACCVIOLInstruction access violation flag11MUNSTKERRMemory manager fault on unstacking for a return from exception31MSTKERRMemory manager fault on stacking for exception entry.41MLSPERRMLSPERR51MMARVALIDMemory Management Fault Address Register (MMAR) valid flag71IBUSERRInstruction bus error81PRECISERRPrecise data bus error91IMPRECISERRImprecise data bus error101UNSTKERRBus fault on unstacking for a return from exception111STKERRBus fault on stacking for exception entry121LSPERRBus fault on floating-point lazy state preservation131BFARVALIDBus Fault Address Register (BFAR) valid flag151UNDEFINSTRUndefined instruction usage fault161INVSTATEInvalid state usage fault171INVPCInvalid PC load usage fault181NOCPNo coprocessor usage fault.191UNALIGNEDUnaligned access usage fault241DIVBYZERODivide by zero usage fault251HFSRHFSRHard fault status register0x2C0x20read-write0x00000000VECTTBLVector table hard fault11FORCEDForced hard fault301DEBUG_VTReserved for Debug use311MMFARMMFARMemory management fault address register0x340x20read-write0x00000000MMFARMemory management fault address032BFARBFARBus fault address register0x380x20read-write0x00000000BFARBus fault address032AFSRAFSRAuxiliary fault status register0x3C0x20read-write0x00000000IMPDEFImplementation defined032STKSysTick timerSTK0xE000E0100x00x11registersCTRLCTRLSysTick control and status register0x00x20read-write0X00000000ENABLECounter enable01TICKINTSysTick exception request enable11CLKSOURCEClock source selection21COUNTFLAGCOUNTFLAG161LOADLOADSysTick reload value register0x40x20read-write0X00000000RELOADRELOAD value024VALVALSysTick current value register0x80x20read-write0X00000000CURRENTCurrent counter value024CALIBCALIBSysTick calibration value register0xC0x20read-write0X00000000TENMSCalibration value024SKEWSKEW flag: Indicates whether the TENMS value is exact301NOREFNOREF flag. Reads as zero311MPUMemory protection unitMPU0xE000ED900x00x15registersMPU_TYPERMPU_TYPERMPU type register0x00x20read-only0X00000800SEPARATESeparate flag01DREGIONNumber of MPU data regions88IREGIONNumber of MPU instruction regions168MPU_CTRLMPU_CTRLMPU control register0x40x20read-only0X00000000ENABLEEnables the MPU01HFNMIENAEnables the operation of MPU during hard fault11PRIVDEFENAEnable priviliged software access to default memory map21MPU_RNRMPU_RNRMPU region number register0x80x20read-write0X00000000REGIONMPU region08MPU_RBARMPU_RBARMPU region base address register0xC0x20read-write0X00000000REGIONMPU region field04VALIDMPU region number valid41ADDRRegion base address field527MPU_RASRMPU_RASRMPU region attribute and size register0x100x20read-write0X00000000ENABLERegion enable bit.01SIZESize of the MPU protection region15SRDSubregion disable bits88Bmemory attribute161Cmemory attribute171SShareable memory attribute181TEXmemory attribute193APAccess permission243XNInstruction access disable bit281FPUFloting point unitFPU0xE000EF340x00xDregistersFPUFloating point unit interrupt54FPCCRFPCCRFloating-point context control register0x00x20read-write0x00000000LSPACTLSPACT01USERUSER11THREADTHREAD31HFRDYHFRDY41MMRDYMMRDY51BFRDYBFRDY61MONRDYMONRDY81LSPENLSPEN301ASPENASPEN311FPCARFPCARFloating-point context address register0x40x20read-write0x00000000ADDRESSLocation of unpopulated floating-point329FPSCRFPSCRFloating-point status control register0x80x20read-write0x00000000IOCInvalid operation cumulative exception bit01DZCDivision by zero cumulative exception bit.11OFCOverflow cumulative exception bit21UFCUnderflow cumulative exception bit31IXCInexact cumulative exception bit41IDCInput denormal cumulative exception bit.71RModeRounding Mode control field222FZFlush-to-zero mode control bit:241DNDefault NaN mode control bit251AHPAlternative half-precision control bit261VOverflow condition code flag281CCarry condition code flag291ZZero condition code flag301NNegative condition code flag311NVICNested Vectored Interrupt ControllerNVIC0xE000E1000x00x351registersISER0ISER0Interrupt Set-Enable Register0x00x20read-write0x00000000SETENASETENA032ISER1ISER1Interrupt Set-Enable Register0x40x20read-write0x00000000SETENASETENA032ICER0ICER0Interrupt Clear-Enable Register0x800x20read-write0x00000000CLRENACLRENA032ICER1ICER1Interrupt Clear-Enable Register0x840x20read-write0x00000000CLRENACLRENA032ISPR0ISPR0Interrupt Set-Pending Register0x1000x20read-write0x00000000SETPENDSETPEND032ISPR1ISPR1Interrupt Set-Pending Register0x1040x20read-write0x00000000SETPENDSETPEND032ICPR0ICPR0Interrupt Clear-Pending Register0x1800x20read-write0x00000000CLRPENDCLRPEND032ICPR1ICPR1Interrupt Clear-Pending Register0x1840x20read-write0x00000000CLRPENDCLRPEND032IABR0IABR0Interrupt Active Bit Register0x2000x20read-only0x00000000ACTIVEACTIVE032IABR1IABR1Interrupt Active Bit Register0x2040x20read-only0x00000000ACTIVEACTIVE032IPR0IPR0Interrupt Priority Register0x3000x20read-write0x00000000IPR_N0IPR_N008IPR_N1IPR_N188IPR_N2IPR_N2168IPR_N3IPR_N3248IPR1IPR1Interrupt Priority Register0x3040x20read-write0x00000000IPR_N0IPR_N008IPR_N1IPR_N188IPR_N2IPR_N2168IPR_N3IPR_N3248IPR2IPR2Interrupt Priority Register0x3080x20read-write0x00000000IPR_N0IPR_N008IPR_N1IPR_N188IPR_N2IPR_N2168IPR_N3IPR_N3248IPR3IPR3Interrupt Priority Register0x30C0x20read-write0x00000000IPR_N0IPR_N008IPR_N1IPR_N188IPR_N2IPR_N2168IPR_N3IPR_N3248IPR4IPR4Interrupt Priority Register0x3100x20read-write0x00000000IPR_N0IPR_N008IPR_N1IPR_N188IPR_N2IPR_N2168IPR_N3IPR_N3248IPR5IPR5Interrupt Priority Register0x3140x20read-write0x00000000IPR_N0IPR_N008IPR_N1IPR_N188IPR_N2IPR_N2168IPR_N3IPR_N3248IPR6IPR6Interrupt Priority Register0x3180x20read-write0x00000000IPR_N0IPR_N008IPR_N1IPR_N188IPR_N2IPR_N2168IPR_N3IPR_N3248IPR7IPR7Interrupt Priority Register0x31C0x20read-write0x00000000IPR_N0IPR_N008IPR_N1IPR_N188IPR_N2IPR_N2168IPR_N3IPR_N3248IPR8IPR8Interrupt Priority Register0x3200x20read-write0x00000000IPR_N0IPR_N008IPR_N1IPR_N188IPR_N2IPR_N2168IPR_N3IPR_N3248IPR9IPR9Interrupt Priority Register0x3240x20read-write0x00000000IPR_N0IPR_N008IPR_N1IPR_N188IPR_N2IPR_N2168IPR_N3IPR_N3248IPR10IPR10Interrupt Priority Register0x3280x20read-write0x00000000IPR_N0IPR_N008IPR_N1IPR_N188IPR_N2IPR_N2168IPR_N3IPR_N3248IPR11IPR11Interrupt Priority Register0x32C0x20read-write0x00000000IPR_N0IPR_N008IPR_N1IPR_N188IPR_N2IPR_N2168IPR_N3IPR_N3248IPR12IPR12Interrupt Priority Register0x3300x20read-write0x00000000IPR_N0IPR_N008IPR_N1IPR_N188IPR_N2IPR_N2168IPR_N3IPR_N3248IPR13IPR13Interrupt Priority Register0x3340x20read-write0x00000000IPR_N0IPR_N008IPR_N1IPR_N188IPR_N2IPR_N2168IPR_N3IPR_N3248IPR14IPR14Interrupt Priority Register0x3380x20read-write0x00000000IPR_N0IPR_N008IPR_N1IPR_N188IPR_N2IPR_N2168IPR_N3IPR_N3248IPR15IPR15Interrupt Priority Register0x33C0x20read-write0x00000000IPR_N0IPR_N008IPR_N1IPR_N188IPR_N2IPR_N2168IPR_N3IPR_N3248IPR16IPR16Interrupt Priority Register0x3400x20read-write0x00000000IPR_N0IPR_N008IPR_N1IPR_N188IPR_N2IPR_N2168IPR_N3IPR_N3248IPR17IPR17Interrupt Priority Register0x3440x20read-write0x00000000IPR_N0IPR_N008IPR_N1IPR_N188IPR_N2IPR_N2168IPR_N3IPR_N3248NVIC_STIRNested vectored interrupt controllerNVIC0xE000EF000x00x5registersSTIRSTIRSoftware trigger interrupt register0x00x20read-write0x00000000INTIDSoftware generated interrupt ID09SCB_ACTRLSystem control block ACTLRSCB0xE000E0080x00x5registersACTRLACTRLAuxiliary control register0x00x20read-write0x00000000DISMCYCINTDISMCYCINT01DISDEFWBUFDISDEFWBUF11DISFOLDDISFOLD21DISFPCADISFPCA81DISOOFPDISOOFP91FPU_CPACRFloating point unit CPACRFPU0xE000ED880x00x5registersCPACRCPACRCoprocessor access control register0x00x20read-write0x0000000CPCP204 diff --git a/firmware/targets/f6/furi-hal/furi-hal-crypto.c b/firmware/targets/f6/furi-hal/furi-hal-crypto.c index 3e4ec98f..62f569f7 100644 --- a/firmware/targets/f6/furi-hal/furi-hal-crypto.c +++ b/firmware/targets/f6/furi-hal/furi-hal-crypto.c @@ -15,21 +15,21 @@ bool furi_hal_crypto_store_add_key(FuriHalCryptoKey* key, uint8_t* slot) { SHCI_C2_FUS_StoreUsrKey_Cmd_Param_t pParam; size_t key_data_size = 0; - if (key->type == FuriHalCryptoKeyTypeMaster) { + if(key->type == FuriHalCryptoKeyTypeMaster) { pParam.KeyType = KEYTYPE_MASTER; - } else if (key->type == FuriHalCryptoKeyTypeSimple) { + } else if(key->type == FuriHalCryptoKeyTypeSimple) { pParam.KeyType = KEYTYPE_SIMPLE; - } else if (key->type == FuriHalCryptoKeyTypeEncrypted) { + } else if(key->type == FuriHalCryptoKeyTypeEncrypted) { pParam.KeyType = KEYTYPE_ENCRYPTED; key_data_size += 12; } else { furi_crash("Incorrect key type"); } - if (key->size == FuriHalCryptoKeySize128) { + if(key->size == FuriHalCryptoKeySize128) { pParam.KeySize = KEYSIZE_16; key_data_size += 16; - } else if (key->size == FuriHalCryptoKeySize256) { + } else if(key->size == FuriHalCryptoKeySize256) { pParam.KeySize = KEYSIZE_32; key_data_size += 32; } else { @@ -49,11 +49,12 @@ bool furi_hal_crypto_store_load_key(uint8_t slot, const uint8_t* iv) { crypt.Init.KeySize = CRYP_KEYSIZE_256B; crypt.Init.Algorithm = CRYP_AES_CBC; crypt.Init.pInitVect = (uint32_t*)iv; + crypt.Init.KeyIVConfigSkip = CRYP_KEYIVCONFIG_ONCE; crypt.Init.pKey = NULL; furi_check(HAL_CRYP_Init(&crypt) == HAL_OK); - if (SHCI_C2_FUS_LoadUsrKey(slot) == SHCI_Success) { + if(SHCI_C2_FUS_LoadUsrKey(slot) == SHCI_Success) { return true; } else { furi_check(HAL_CRYP_DeInit(&crypt) == HAL_OK); @@ -66,10 +67,10 @@ bool furi_hal_crypto_store_unload_key(uint8_t slot) { return SHCI_C2_FUS_UnloadUsrKey(slot) == SHCI_Success; } -bool furi_hal_crypto_encrypt(const uint8_t *input, uint8_t *output, size_t size) { - return HAL_CRYP_Encrypt(&crypt, (uint32_t*)input, size/4, (uint32_t*)output, 1000) == HAL_OK; +bool furi_hal_crypto_encrypt(const uint8_t* input, uint8_t* output, size_t size) { + return HAL_CRYP_Encrypt(&crypt, (uint32_t*)input, size / 4, (uint32_t*)output, 1000) == HAL_OK; } -bool furi_hal_crypto_decrypt(const uint8_t *input, uint8_t *output, size_t size) { - return HAL_CRYP_Decrypt(&crypt, (uint32_t*)input, size/4, (uint32_t*)output, 1000) == HAL_OK; +bool furi_hal_crypto_decrypt(const uint8_t* input, uint8_t* output, size_t size) { + return HAL_CRYP_Decrypt(&crypt, (uint32_t*)input, size / 4, (uint32_t*)output, 1000) == HAL_OK; } diff --git a/firmware/targets/f7/furi-hal/furi-hal-crypto.c b/firmware/targets/f7/furi-hal/furi-hal-crypto.c index 3e4ec98f..62f569f7 100644 --- a/firmware/targets/f7/furi-hal/furi-hal-crypto.c +++ b/firmware/targets/f7/furi-hal/furi-hal-crypto.c @@ -15,21 +15,21 @@ bool furi_hal_crypto_store_add_key(FuriHalCryptoKey* key, uint8_t* slot) { SHCI_C2_FUS_StoreUsrKey_Cmd_Param_t pParam; size_t key_data_size = 0; - if (key->type == FuriHalCryptoKeyTypeMaster) { + if(key->type == FuriHalCryptoKeyTypeMaster) { pParam.KeyType = KEYTYPE_MASTER; - } else if (key->type == FuriHalCryptoKeyTypeSimple) { + } else if(key->type == FuriHalCryptoKeyTypeSimple) { pParam.KeyType = KEYTYPE_SIMPLE; - } else if (key->type == FuriHalCryptoKeyTypeEncrypted) { + } else if(key->type == FuriHalCryptoKeyTypeEncrypted) { pParam.KeyType = KEYTYPE_ENCRYPTED; key_data_size += 12; } else { furi_crash("Incorrect key type"); } - if (key->size == FuriHalCryptoKeySize128) { + if(key->size == FuriHalCryptoKeySize128) { pParam.KeySize = KEYSIZE_16; key_data_size += 16; - } else if (key->size == FuriHalCryptoKeySize256) { + } else if(key->size == FuriHalCryptoKeySize256) { pParam.KeySize = KEYSIZE_32; key_data_size += 32; } else { @@ -49,11 +49,12 @@ bool furi_hal_crypto_store_load_key(uint8_t slot, const uint8_t* iv) { crypt.Init.KeySize = CRYP_KEYSIZE_256B; crypt.Init.Algorithm = CRYP_AES_CBC; crypt.Init.pInitVect = (uint32_t*)iv; + crypt.Init.KeyIVConfigSkip = CRYP_KEYIVCONFIG_ONCE; crypt.Init.pKey = NULL; furi_check(HAL_CRYP_Init(&crypt) == HAL_OK); - if (SHCI_C2_FUS_LoadUsrKey(slot) == SHCI_Success) { + if(SHCI_C2_FUS_LoadUsrKey(slot) == SHCI_Success) { return true; } else { furi_check(HAL_CRYP_DeInit(&crypt) == HAL_OK); @@ -66,10 +67,10 @@ bool furi_hal_crypto_store_unload_key(uint8_t slot) { return SHCI_C2_FUS_UnloadUsrKey(slot) == SHCI_Success; } -bool furi_hal_crypto_encrypt(const uint8_t *input, uint8_t *output, size_t size) { - return HAL_CRYP_Encrypt(&crypt, (uint32_t*)input, size/4, (uint32_t*)output, 1000) == HAL_OK; +bool furi_hal_crypto_encrypt(const uint8_t* input, uint8_t* output, size_t size) { + return HAL_CRYP_Encrypt(&crypt, (uint32_t*)input, size / 4, (uint32_t*)output, 1000) == HAL_OK; } -bool furi_hal_crypto_decrypt(const uint8_t *input, uint8_t *output, size_t size) { - return HAL_CRYP_Decrypt(&crypt, (uint32_t*)input, size/4, (uint32_t*)output, 1000) == HAL_OK; +bool furi_hal_crypto_decrypt(const uint8_t* input, uint8_t* output, size_t size) { + return HAL_CRYP_Decrypt(&crypt, (uint32_t*)input, size / 4, (uint32_t*)output, 1000) == HAL_OK; } diff --git a/firmware/targets/furi-hal-include/furi-hal-crypto.h b/firmware/targets/furi-hal-include/furi-hal-crypto.h index 0428f781..482b3d7a 100644 --- a/firmware/targets/furi-hal-include/furi-hal-crypto.h +++ b/firmware/targets/furi-hal-include/furi-hal-crypto.h @@ -11,7 +11,7 @@ /** FuriHalCryptoKey Type */ typedef enum { FuriHalCryptoKeyTypeMaster, /**< Master key */ - FuriHalCryptoKeyTypeSimple, /**< Simple enencrypted key */ + FuriHalCryptoKeyTypeSimple, /**< Simple enencrypted key */ FuriHalCryptoKeyTypeEncrypted, /**< Encrypted with Master key */ } FuriHalCryptoKeyType; @@ -59,7 +59,6 @@ bool furi_hal_crypto_store_load_key(uint8_t slot, const uint8_t* iv); */ bool furi_hal_crypto_store_unload_key(uint8_t slot); - /** Encrypt data * * @param input pointer to input data @@ -68,7 +67,7 @@ bool furi_hal_crypto_store_unload_key(uint8_t slot); * * @return true on success */ -bool furi_hal_crypto_encrypt(const uint8_t *input, uint8_t *output, size_t size); +bool furi_hal_crypto_encrypt(const uint8_t* input, uint8_t* output, size_t size); /** Decrypt data * @@ -78,4 +77,4 @@ bool furi_hal_crypto_encrypt(const uint8_t *input, uint8_t *output, size_t size) * * @return true on success */ -bool furi_hal_crypto_decrypt(const uint8_t *input, uint8_t *output, size_t size); +bool furi_hal_crypto_decrypt(const uint8_t* input, uint8_t* output, size_t size); diff --git a/lib/subghz/subghz_keystore.c b/lib/subghz/subghz_keystore.c index dea11e0b..595304e8 100644 --- a/lib/subghz/subghz_keystore.c +++ b/lib/subghz/subghz_keystore.c @@ -1,10 +1,28 @@ #include "subghz_keystore.h" #include +#include + #include +#include +#include + +#define SUBGHZ_KEYSTORE_TAG "SubGhzParser" #define FILE_BUFFER_SIZE 64 +#define SUBGHZ_KEYSTORE_FILE_TYPE "Flipper SubGhz Keystore File" +#define SUBGHZ_KEYSTORE_FILE_VERSION 0 + +#define SUBGHZ_KEYSTORE_FILE_ENCRYPTION_KEY_SLOT 1 +#define SUBGHZ_KEYSTORE_FILE_DECRYPTED_LINE_SIZE 512 +#define SUBGHZ_KEYSTORE_FILE_ENCRYPTED_LINE_SIZE (SUBGHZ_KEYSTORE_FILE_DECRYPTED_LINE_SIZE*2) + +typedef enum { + SubGhzKeystoreEncryptionNone, + SubGhzKeystoreEncryptionAES256, +} SubGhzKeystoreEncryption; + struct SubGhzKeystore { SubGhzKeyArray_t data; }; @@ -37,46 +55,260 @@ static void subghz_keystore_add_key(SubGhzKeystore* instance, const char* name, manufacture_code->type = type; } -static void subghz_keystore_process_line(SubGhzKeystore* instance, string_t line) { +static bool subghz_keystore_process_line(SubGhzKeystore* instance, char* line) { uint64_t key = 0; uint16_t type = 0; char skey[17] = {0}; char name[65] = {0}; - int ret = sscanf(string_get_cstr(line), "%16s:%hu:%64s", skey, &type, name); + int ret = sscanf(line, "%16s:%hu:%64s", skey, &type, name); key = strtoull(skey, NULL, 16); if (ret == 3) { subghz_keystore_add_key(instance, name, key, type); + return true; } else { - printf("Failed to load line: %s\r\n", string_get_cstr(line)); + FURI_LOG_E(SUBGHZ_KEYSTORE_TAG, "Failed to load line: %s\r\n", line); + return false; } } -void subghz_keystore_load(SubGhzKeystore* instance, const char* file_name) { - File* manufacture_keys_file = storage_file_alloc(furi_record_open("storage")); - string_t line; - string_init(line); - if(storage_file_open(manufacture_keys_file, file_name, FSAM_READ, FSOM_OPEN_EXISTING)) { - printf("Loading manufacture keys file %s\r\n", file_name); - char buffer[FILE_BUFFER_SIZE]; - uint16_t ret; - do { - ret = storage_file_read(manufacture_keys_file, buffer, FILE_BUFFER_SIZE); - for (uint16_t i=0; i < ret; i++) { - if (buffer[i] == '\n' && string_size(line) > 0) { - subghz_keystore_process_line(instance, line); - string_clean(line); +static void subghz_keystore_mess_with_iv(uint8_t* iv) { + // Please do not share decrypted manufacture keys + // Sharing them will bring some discomfort to legal owners + // And potential legal action against you + // While you reading this code think about your own personal responsibility + asm volatile( + "movs r0, #0x0 \n" + "movs r1, #0x0 \n" + "movs r2, #0x0 \n" + "movs r3, #0x0 \n" + "nani: \n" + "ldrb r1, [r0, %0]\n" + "mov r2, r1 \n" + "add r1, r3 \n" + "mov r3, r2 \n" + "strb r1, [r0, %0]\n" + "adds r0, #0x1 \n" + "cmp r0, #0xF \n" + "bls nani \n" + : + : "r"(iv) + : "r0", "r1", "r2", "r3", "memory"); +} + +static bool subghz_keystore_read_file(SubGhzKeystore* instance, File* file, uint8_t* iv) { + bool result = true; + char buffer[FILE_BUFFER_SIZE]; + + char* decrypted_line = furi_alloc(SUBGHZ_KEYSTORE_FILE_DECRYPTED_LINE_SIZE); + char* encrypted_line = furi_alloc(SUBGHZ_KEYSTORE_FILE_ENCRYPTED_LINE_SIZE); + size_t encrypted_line_cursor = 0; + + if (iv) furi_hal_crypto_store_load_key(SUBGHZ_KEYSTORE_FILE_ENCRYPTION_KEY_SLOT, iv); + + size_t ret = 0; + do { + ret = storage_file_read(file, buffer, FILE_BUFFER_SIZE); + for (uint16_t i=0; i < ret; i++) { + if (buffer[i] == '\n' && encrypted_line_cursor > 0) { + // Process line + if(iv) { + // Data alignment check, 32 instead of 16 because of hex encoding + size_t len = strlen(encrypted_line); + if (len % 32 == 0) { + // Inplace hex to bin conversion + for (size_t i=0; i 0); - } else { - printf("Manufacture keys file is not found: %s\r\n", file_name); - } - string_clear(line); - storage_file_close(manufacture_keys_file); - storage_file_free(manufacture_keys_file); + } + } while(ret > 0 && result); + + if (iv) furi_hal_crypto_store_unload_key(SUBGHZ_KEYSTORE_FILE_ENCRYPTION_KEY_SLOT); + + free(encrypted_line); + free(decrypted_line); + + return result; +} + +bool subghz_keystore_load(SubGhzKeystore* instance, const char* file_name) { + furi_assert(instance); + bool result = false; + uint8_t iv[16]; + uint32_t version; + SubGhzKeystoreEncryption encryption; + + string_t filetype; + string_init(filetype); + + Storage* storage = furi_record_open("storage"); + + FlipperFile* flipper_file = flipper_file_alloc(storage); + do { + if(!flipper_file_open_read(flipper_file, file_name)) { + FURI_LOG_E(SUBGHZ_KEYSTORE_TAG, "Unable to open file for read: %s", file_name); + break; + } + if(!flipper_file_read_header(flipper_file, filetype, &version)) { + FURI_LOG_E(SUBGHZ_KEYSTORE_TAG, "Missing or incorrect header"); + break; + } + if(!flipper_file_read_uint32(flipper_file, "Encryption", (uint32_t*)&encryption)) { + FURI_LOG_E(SUBGHZ_KEYSTORE_TAG, "Missing encryption type"); + break; + } + + if (strcmp(string_get_cstr(filetype), SUBGHZ_KEYSTORE_FILE_TYPE) != 0 + || version != SUBGHZ_KEYSTORE_FILE_VERSION) { + FURI_LOG_E(SUBGHZ_KEYSTORE_TAG, "Type or version mismatch"); + break; + } + + File* file = flipper_file_get_file(flipper_file); + if (encryption == SubGhzKeystoreEncryptionNone) { + result = subghz_keystore_read_file(instance, file, NULL); + }else if (encryption == SubGhzKeystoreEncryptionAES256) { + if(!flipper_file_read_hex_array(flipper_file, "IV", iv, 16)) { + FURI_LOG_E(SUBGHZ_KEYSTORE_TAG, "Missing IV"); + break; + } + subghz_keystore_mess_with_iv(iv); + result = subghz_keystore_read_file(instance, file, iv); + } else { + FURI_LOG_E(SUBGHZ_KEYSTORE_TAG, "Unknown encryption"); + break; + } + } while(0); + flipper_file_close(flipper_file); + flipper_file_free(flipper_file); + furi_record_close("storage"); + + string_clear(filetype); + + return result; +} + +bool subghz_keystore_save(SubGhzKeystore* instance, const char* file_name, uint8_t* iv) { + furi_assert(instance); + bool result = false; + + Storage* storage = furi_record_open("storage"); + char* decrypted_line = furi_alloc(SUBGHZ_KEYSTORE_FILE_DECRYPTED_LINE_SIZE); + char* encrypted_line = furi_alloc(SUBGHZ_KEYSTORE_FILE_ENCRYPTED_LINE_SIZE); + + FlipperFile* flipper_file = flipper_file_alloc(storage); + do { + if(!flipper_file_new_write(flipper_file, file_name)) { + FURI_LOG_E(SUBGHZ_KEYSTORE_TAG, "Unable to open file for write: %s", file_name); + break; + } + if(!flipper_file_write_header_cstr(flipper_file, SUBGHZ_KEYSTORE_FILE_TYPE, SUBGHZ_KEYSTORE_FILE_VERSION)) { + FURI_LOG_E(SUBGHZ_KEYSTORE_TAG, "Unable to add header"); + break; + } + if(!flipper_file_write_uint32(flipper_file, "Encryption", SubGhzKeystoreEncryptionAES256)) { + FURI_LOG_E(SUBGHZ_KEYSTORE_TAG, "Unable to add Encryption"); + break; + } + if(!flipper_file_write_hex_array(flipper_file, "IV", iv, 16)) { + FURI_LOG_E(SUBGHZ_KEYSTORE_TAG, "Unable to add IV"); + break; + } + + subghz_keystore_mess_with_iv(iv); + + if(!furi_hal_crypto_store_load_key(SUBGHZ_KEYSTORE_FILE_ENCRYPTION_KEY_SLOT, iv)) { + FURI_LOG_E(SUBGHZ_KEYSTORE_TAG, "Unable to load encryption key"); + break; + } + + File* file = flipper_file_get_file(flipper_file); + size_t encrypted_line_count = 0; + for + M_EACH( + key, + instance->data, + SubGhzKeyArray_t) { + // Wipe buffer before packing + memset(decrypted_line, 0, SUBGHZ_KEYSTORE_FILE_DECRYPTED_LINE_SIZE); + memset(encrypted_line, 0, SUBGHZ_KEYSTORE_FILE_ENCRYPTED_LINE_SIZE); + // Form unecreypted line + int len = snprintf( + decrypted_line, SUBGHZ_KEYSTORE_FILE_DECRYPTED_LINE_SIZE, + "%08lX%08lX:%hu:%s", + (uint32_t)(key->key>>32), (uint32_t)key->key, key->type, string_get_cstr(key->name)); + // Verify length and align + furi_assert(len > 0); + if (len % 16 != 0) { + len += (16 - len % 16); + } + furi_assert(len % 16 == 0); + furi_assert(len <= SUBGHZ_KEYSTORE_FILE_DECRYPTED_LINE_SIZE); + // Form encrypted line + if(!furi_hal_crypto_encrypt((uint8_t*)decrypted_line, (uint8_t*)encrypted_line, len)) { + FURI_LOG_E(SUBGHZ_KEYSTORE_TAG, "Encryption failed"); + break; + } + // HEX Encode encrypted line + const char xx[]= "0123456789ABCDEF"; + for (size_t i=0; i>4) & 0xF]; + } + storage_file_write(file, encrypted_line, strlen(encrypted_line)); + storage_file_write(file, "\n", 1); + encrypted_line_count++; + + FURI_LOG_I(SUBGHZ_KEYSTORE_TAG, "Encrypted: `%s` -> `%s`", decrypted_line, encrypted_line); + } + furi_hal_crypto_store_unload_key(SUBGHZ_KEYSTORE_FILE_ENCRYPTION_KEY_SLOT); + result = encrypted_line_count == SubGhzKeyArray_size(instance->data); + } while(0); + flipper_file_close(flipper_file); + flipper_file_free(flipper_file); + + free(encrypted_line); + free(decrypted_line); + furi_record_close("storage"); + + return result; } SubGhzKeyArray_t* subghz_keystore_get_data(SubGhzKeystore* instance) { diff --git a/lib/subghz/subghz_keystore.h b/lib/subghz/subghz_keystore.h index 4cd388f5..77052459 100644 --- a/lib/subghz/subghz_keystore.h +++ b/lib/subghz/subghz_keystore.h @@ -33,7 +33,14 @@ void subghz_keystore_free(SubGhzKeystore* instance); * @param instance - SubGhzKeystore instance * @param filename - const char* full path to the file */ -void subghz_keystore_load(SubGhzKeystore* instance, const char* filename); +bool subghz_keystore_load(SubGhzKeystore* instance, const char* filename); + +/** Save manufacture key to file + * + * @param instance - SubGhzKeystore instance + * @param filename - const char* full path to the file + */ +bool subghz_keystore_save(SubGhzKeystore* instance, const char* filename, uint8_t* iv); /** Get array of keys and names manufacture * diff --git a/lib/subghz/subghz_parser.c b/lib/subghz/subghz_parser.c index f702dda9..93c48cb7 100644 --- a/lib/subghz/subghz_parser.c +++ b/lib/subghz/subghz_parser.c @@ -24,6 +24,8 @@ #include #include +#define SUBGHZ_PARSER_TAG "SubGhzParser" + typedef enum { SubGhzProtocolTypeCame, SubGhzProtocolTypeCameTwee, @@ -214,7 +216,11 @@ void subghz_parser_load_came_atomo_file(SubGhzParser* instance, const char* file } void subghz_parser_load_keeloq_file(SubGhzParser* instance, const char* file_name) { - subghz_keystore_load(instance->keystore, file_name); + if (subghz_keystore_load(instance->keystore, file_name)) { + FURI_LOG_I(SUBGHZ_PARSER_TAG, "Successfully loaded keeloq keys from %s", file_name); + } else { + FURI_LOG_W(SUBGHZ_PARSER_TAG, "Failed to load keeloq keysfrom %s", file_name); + } } void subghz_parser_reset(SubGhzParser* instance) { diff --git a/lib/toolbox/flipper-file.c b/lib/toolbox/flipper-file.c index e16cd868..45bcc0ed 100644 --- a/lib/toolbox/flipper-file.c +++ b/lib/toolbox/flipper-file.c @@ -461,4 +461,11 @@ bool flipper_file_read_hex_array( } } return result; -} \ No newline at end of file +} + +File* flipper_file_get_file(FlipperFile* flipper_file) { + furi_assert(flipper_file); + furi_assert(flipper_file->file); + + return flipper_file->file; +} diff --git a/lib/toolbox/flipper-file.h b/lib/toolbox/flipper-file.h index db6ad938..942ea74a 100644 --- a/lib/toolbox/flipper-file.h +++ b/lib/toolbox/flipper-file.h @@ -39,7 +39,7 @@ * Writing: * * ~~~~~~~~~~~~~~~~~~~~~ - * FlipperFile file = flipper_file_alloc(storage); + * FlipperFile* file = flipper_file_alloc(storage); * * do { * const uint32_t version = 1; @@ -65,7 +65,7 @@ * Reading: * * ~~~~~~~~~~~~~~~~~~~~~ - * FlipperFile file = flipper_file_alloc(storage); + * FlipperFile* file = flipper_file_alloc(storage); * * do { * uint32_t version = 1; @@ -262,6 +262,17 @@ bool flipper_file_write_hex_array( const uint8_t* data, const uint16_t data_size); +/** Get file descriptor. + * + * We higly don't recommend to use it. + * This instance is owned by FlipperFile. + * + * @param flipper_file pointer to FlipperFile instance + * + * @return pointer to File instance + */ +File* flipper_file_get_file(FlipperFile* flipper_file); + #ifdef __cplusplus } #endif \ No newline at end of file diff --git a/make/rules.mk b/make/rules.mk index 9f1402b9..831f9958 100644 --- a/make/rules.mk +++ b/make/rules.mk @@ -129,14 +129,6 @@ zz: clean zzz: clean $(MAKE) debug -FORMAT_SOURCES := $(shell find ../applications -iname "*.h" -o -iname "*.c" -o -iname "*.cpp") -FORMAT_SOURCES += $(shell find ../bootloader -iname "*.h" -o -iname "*.c" -o -iname "*.cpp") -FORMAT_SOURCES += $(shell find ../core -iname "*.h" -o -iname "*.c" -o -iname "*.cpp") - -format: - @echo "Formatting sources with clang-format" - @clang-format -style=file -i $(FORMAT_SOURCES) - generate_cscope_db: @echo "$(C_SOURCES) $(CPP_SOURCES) $(ASM_SOURCES)" | tr ' ' '\n' > $(OBJ_DIR)/source.list.p @cat ~/headers.list >> $(OBJ_DIR)/source.list.p