최초에 첨부한 파일중 함수 메뉴얼의 함수목록


1 Document and library rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

1.1 Acronyms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

1.2 Naming conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

1.3 Coding rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

1.3.1 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

1.3.2 Boolean type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

1.3.3 FlagStatus type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

1.3.4 FunctionalState type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

1.3.5 ErrorStatus type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

1.3.6 Peripherals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39


2 Firmware library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

2.1 Package description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

2.1.1 Examples folder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

2.1.2 Library folder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

2.1.3 Project folder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

2.2 Description of firmware library files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

2.3 Peripheral initialization and configuration . . . . . . . . . . . . . . . . . . . . . . . . . 46

2.4 Bit-Banding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

2.4.1 Mapping formula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

2.4.2 Example of implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

2.5 Run-time checking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48


3 Peripheral firmware overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51


4 Analog/digital converter (ADC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

4.1 ADC register structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

4.2 ADC library functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

4.2.1 ADC_DeInit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

4.2.2 ADC_Init function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

ADC_InitTypeDef structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

4.2.3 ADC_StructInit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

4.2.4 ADC_Cmd function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

4.2.5 ADC_DMACmd function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

4.2.6 ADC_ITConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

4.2.7 ADC_ResetCalibration function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

4.2.8 ADC_GetResetCalibrationStatus function . . . . . . . . . . . . . . . . . . . . . . . 63

4.2.9 ADC_StartCalibration function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

4.2.10 ADC_GetCalibrationStatus function . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

4.2.11 ADC_SoftwareStartConvCmd function . . . . . . . . . . . . . . . . . . . . . . . . . 65

4.2.12 ADC_GetSoftwareStartConvStatus function . . . . . . . . . . . . . . . . . . . . . 65

4.2.13 ADC_DiscModeChannelCountConfig function . . . . . . . . . . . . . . . . . . . 66

4.2.14 ADC_DiscModeCmd function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

4.2.15 ADC_RegularChannelConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . 67

4.2.16 ADC_ExternalTrigConvCmd function . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

4.2.17 ADC_GetConversionValue function . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

4.2.18 ADC_GetDualModeConversionValue function . . . . . . . . . . . . . . . . . . . 70

4.2.19 ADC_AutoInjectedConvCmd function . . . . . . . . . . . . . . . . . . . . . . . . . . 70

4.2.20 ADC_InjectedDiscModeCmd function . . . . . . . . . . . . . . . . . . . . . . . . . . 71

4.2.21 ADC_ExternalTrigInjectedConvConfig function . . . . . . . . . . . . . . . . . . . 71

4.2.22 ADC_ExternalTrigInjectedConvCmd function . . . . . . . . . . . . . . . . . . . . 73

4.2.23 ADC_SoftwareStartInjectedConvCmd function . . . . . . . . . . . . . . . . . . . 73

4.2.24 ADC_GetSoftwareStartInjectedConvStatus function . . . . . . . . . . . . . . . 74

4.2.25 ADC_InjectedChannelConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . 75

4.2.26 ADC_InjectedSequencerLengthConfig function . . . . . . . . . . . . . . . . . . 76

4.2.27 ADC_SetInjectedOffset function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

4.2.28 ADC_GetInjectedConversionValue function . . . . . . . . . . . . . . . . . . . . . 77

4.2.29 ADC_AnalogWatchdogCmd function . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

4.2.30 ADC_AnalogWatchdogThresholdsConfig function . . . . . . . . . . . . . . . . 79

4.2.31 ADC_AnalogWatchdogSingleChannelConfig function . . . . . . . . . . . . . . 79

4.2.32 ADC_TempSensorVrefintCmd function . . . . . . . . . . . . . . . . . . . . . . . . . 80

4.2.33 ADC_GetFlagStatus function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

4.2.34 ADC_ClearFlag function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

4.2.35 ADC_GetITStatus function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

4.2.36 ADC_ClearITPendingBit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82


5 Backup registers (BKP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

5.1 BKP register structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

5.2 Firmware library functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

5.2.1 BKP_DeInit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

5.2.2 BKP_TamperPinLevelConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . 87

5.2.3 BKP_TamperPinCmd function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

5.2.4 BKP_ITConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

5.2.5 BKP_RTCOutputConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

5.2.6 BKP_SetRTCCalibrationValue function . . . . . . . . . . . . . . . . . . . . . . . . . 89

5.2.7 BKP_WriteBackupRegister function . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

5.2.8 BKP_ReadBackupRegister function . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

5.2.9 BKP_GetFlagStatus function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

5.2.10 BKP_ClearFlag function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

5.2.11 BKP_GetITStatus function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

5.2.12 BKP_ClearITPendingBit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93


6 Controller area network (CAN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

6.1 CAN register structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

6.2 Firmware library functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

6.2.1 CAN_DeInit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

6.2.2 CAN_Init function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

CAN_InitTypeDef structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

6.2.3 CAN_FilterInit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

CAN_FilterInitTypeDef structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

6.2.4 CAN_StructInit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

6.2.5 CAN_ITConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

6.2.6 CAN_Transmit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

CanTxMsg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

6.2.7 CAN_TransmitStatus function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

6.2.8 CAN_CancelTransmit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

6.2.9 CAN_FIFORelease function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

6.2.10 CAN_MessagePending function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

6.2.11 CAN_Receive function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

CanRxMsg structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

6.2.12 CAN_Sleep function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

6.2.13 CAN_WakeUp function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

6.2.14 CAN_GetFlagStatus function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

6.2.15 CAN_ClearFlag function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

6.2.16 CAN_GetITStatus function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

6.2.17 CAN_ClearITPendingBit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116


7 DMA controller (DMA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

7.1 DMA register structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

7.2 Firmware library functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

7.2.1 DMA_DeInit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

7.2.2 DMA_Init function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

DMA_InitTypeDef structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

7.2.3 DMA_StructInit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

7.2.4 DMA_Cmd function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

7.2.5 DMA_ITConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

7.2.6 DMA_GetCurrDataCounter function . . . . . . . . . . . . . . . . . . . . . . . . . . 129

7.2.7 DMA_GetFlagStatus function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

7.2.8 DMA_ClearFlag function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

7.2.9 DMA_GetITStatus function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

7.2.10 DMA_ClearITPendingBit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135


8 External interrupt/event controller (EXTI) . . . . . . . . . . . . . . . . . . . . . . 136

8.1 EXTI register structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

8.2 Firmware library functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

8.2.1 EXTI_DeInit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

8.2.2 EXTI_Init function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

EXTI_InitTypeDef structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

8.2.3 EXTI_Struct function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

8.2.4 EXTI_GenerateSWInterrupt function . . . . . . . . . . . . . . . . . . . . . . . . . . 142

8.2.5 EXTI_GetFlagStatus function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

8.2.6 EXTI_ClearFlag function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

8.2.7 EXTI_GetITStatus function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

8.2.8 EXTI_ClearITPendingBit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144


9 Flash memory (FLASH) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

9.1 FLASH register structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

9.2 Firmware library functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

9.2.1 FLASH_SetLatency function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

9.2.2 FLASH_HalfCycleAccessCmd function . . . . . . . . . . . . . . . . . . . . . . . . 149

9.2.3 FLASH_PrefetchBufferCmd function . . . . . . . . . . . . . . . . . . . . . . . . . . 150

9.2.4 FLASH_Unlock function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

9.2.5 FLASH_Lock function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

9.2.6 FLASH_ErasePage function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

9.2.7 FLASH_EraseAllPages function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

9.2.8 FLASH_EraseOptionBytes function . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

9.2.9 FLASH_ProgramWord function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

9.2.10 FLASH_ProgramHalfWord function . . . . . . . . . . . . . . . . . . . . . . . . . . . 154

9.2.11 FLASH_ProgramOptionByteData function . . . . . . . . . . . . . . . . . . . . . . 154

9.2.12 FLASH_EnableWriteProtection function . . . . . . . . . . . . . . . . . . . . . . . 155

9.2.13 FLASH_ReadOutProtection function . . . . . . . . . . . . . . . . . . . . . . . . . . 157

9.2.14 FLASH_UserOptionByteConfig function . . . . . . . . . . . . . . . . . . . . . . . 158

9.2.15 FLASH_GetUserOptionByte function . . . . . . . . . . . . . . . . . . . . . . . . . 160

9.2.16 FLASH_GetWriteProtectionOptionByte function . . . . . . . . . . . . . . . . . 160

9.2.17 FLASH_GetReadOutProtectionStatus function . . . . . . . . . . . . . . . . . . 161

9.2.18 FLASH_GetPrefetchBufferStatus function . . . . . . . . . . . . . . . . . . . . . . 161

9.2.19 FLASH_ITConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

9.2.20 FLASH_GetFlagStatus function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

9.2.21 FLASH_ClearFlag function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

9.2.22 FLASH_GetStatus function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

9.2.23 FLASH_WaitForLastOperation function . . . . . . . . . . . . . . . . . . . . . . . . 165


10 General purpose I/O (GPIO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166

10.1 GPIO register structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166

10.2 Firmware library functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

10.2.1 GPIO_DeInit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

10.2.2 GPIO_AFIODeInit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

10.2.3 GPIO_Init function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

GPIO_InitTypeDef structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172

10.2.4 GPIO_StructInit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174

10.2.5 GPIO_ReadInputDataBit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175

10.2.6 GPIO_ReadInputData function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175

10.2.7 GPIO_ReadOutputDataBit function . . . . . . . . . . . . . . . . . . . . . . . . . . . 176

10.2.8 GPIO_ReadOutputData function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176

10.2.9 GPIO_SetBits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177

10.2.10 GPIO_ResetBits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177

10.2.11 GPIO_WriteBit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178

10.2.12 GPIO_Write function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178

10.2.13 GPIO_PinLockConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179

10.2.14 GPIO_EventOutputConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . 179

10.2.15 GPIO_EventOutputCmd function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180

10.2.16 GPIO_PinRemapConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181

10.2.17 GPIO_EXTILineConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182


11 Inter-integrated circuit (I2C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184

11.1 I2C register structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184

11.2 Firmware library functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186

11.2.1 I2C_DeInit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187

11.2.2 I2C_Init function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188

I2C_InitTypeDef structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188

11.2.3 I2C_StructInit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190

11.2.4 I2C_Cmd function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191

11.2.5 I2C_DMACmd function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191

11.2.6 I2C_DMALastTransferCmd function . . . . . . . . . . . . . . . . . . . . . . . . . . 192

11.2.7 I2C_GenerateSTART function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192

11.2.8 I2C_GenerateSTOP function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193

11.2.9 I2C_AcknowledgeConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193

11.2.10 I2C_OwnAddress2Config function . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194

11.2.11 I2C_DualAddressCmd function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194

11.2.12 I2C_GeneralCallCmd function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195

11.2.13 I2C_ITConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196

11.2.14 I2C_SendData function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

11.2.15 I2C_ReceiveData function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

11.2.16 I2C_Send7bitAddress function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198

11.2.17 I2C_ReadRegister function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199

11.2.18 I2C_SoftwareResetCmd function . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200

11.2.19 I2C_SMBusAlertConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201

11.2.20 I2C_TransmitPEC function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202

11.2.21 I2C_PECPositionConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202

11.2.22 I2C_CalculatePEC function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203

11.2.23 I2C_GetPEC function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204

11.2.24 I2C_ARPCmd function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204

11.2.25 I2C_StretchClockCmd function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205

11.2.26 I2C_FastModeDutyCycleConfig function . . . . . . . . . . . . . . . . . . . . . . . 205

11.2.27 I2C_GetLastEvent function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206

11.2.28 I2C_CheckEvent function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207

11.2.29 I2C_GetFlagStatus function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208

11.2.30 I2C_ClearFlag function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209

11.2.31 I2C_GetITStatus function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

11.2.32 I2C_ClearITPendingBit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212


12 Independent watchdog (IWDG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214

12.1 IWDG register structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214

12.2 Firmware library functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215

12.2.1 IWDG_WriteAccessCmd function . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215

12.2.2 IWDG_SetPrescaler function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216

12.2.3 IWDG_SetReload function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217

12.2.4 IWDG_ReloadCounter function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217

12.2.5 IWDG_Enable function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218

12.2.6 IWDG_GetFlagStatus function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218


13 Nested vectored interrupt controller (NVIC) . . . . . . . . . . . . . . . . . . . . 220

13.1 NVIC register structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220

13.2 Firmware library functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222

13.2.1 NVIC_DeInit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223

13.2.2 NVIC_SCBDeInit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224

13.2.3 NVIC_PriorityGoupConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . 224

13.2.4 NVIC_Init function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225

NVIC_InitTypeDef structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225

13.2.5 NVIC_StructInit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229

13.2.6 NVIC_SETPRIMASK function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230

13.2.7 NVIC_RESETPRIMASK function . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230

13.2.8 NVIC_SETFAULTMASK function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231

13.2.9 NVIC_RESETFAULTMASK function . . . . . . . . . . . . . . . . . . . . . . . . . . 231

13.2.10 NVIC_BASEPRICONFIG function . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232

13.2.11 NVIC_GetBASEPRI function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232

13.2.12 NVIC_GetCurrentPendingIRQChannel function . . . . . . . . . . . . . . . . . 233

13.2.13 NVIC_GetIRQChannelPendingBitStatus function . . . . . . . . . . . . . . . . 233

13.2.14 NVIC_SetIRQChannelPendingBit function . . . . . . . . . . . . . . . . . . . . . 234

13.2.15 NVIC_ClearIRQChannelPendingBit function . . . . . . . . . . . . . . . . . . . . 234

13.2.16 NVIC_GetCurrentActiveHandler function . . . . . . . . . . . . . . . . . . . . . . . 235

13.2.17 NVIC_GetIRQChannelActiveBitStatus function . . . . . . . . . . . . . . . . . . 235

13.2.18 NVIC_GetCPUID function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236

13.2.19 NVIC_SetVectorTable function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236

13.2.20 NVIC_GenerateSystemReset function . . . . . . . . . . . . . . . . . . . . . . . . 237

13.2.21 NVIC_GenerateCoreReset function . . . . . . . . . . . . . . . . . . . . . . . . . . 237

13.2.22 NVIC_SystemLPConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238

13.2.23 NVIC_SystemHandlerConfig function . . . . . . . . . . . . . . . . . . . . . . . . . 239

13.2.24 NVIC_SystemHandlerPriorityConfig function . . . . . . . . . . . . . . . . . . . 245

13.2.25 NVIC_GetSystemHandlerPendingBitStatus function . . . . . . . . . . . . . . 246

13.2.26 NVIC_SetSystemHandlerPendingBit function . . . . . . . . . . . . . . . . . . . 247

13.2.27 NVIC_ClearSystemHandlerPendingBit function . . . . . . . . . . . . . . . . . 248

13.2.28 NVIC_GetSystemHandlerActiveBitStatus function . . . . . . . . . . . . . . . 249

13.2.29 NVIC_GetFaultHandlerSources function . . . . . . . . . . . . . . . . . . . . . . . 250

13.2.30 NVIC_GetFaultAddress function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251


14 Power control (PWR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252

14.1 PWR register structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252

14.2 Firmware library functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253

14.2.1 PWR_DeInit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253

14.2.2 PWR_BackupAccessCmd function . . . . . . . . . . . . . . . . . . . . . . . . . . . 254

14.2.3 PWR_PVDCmd function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254

14.2.4 PWR_PVDLevelConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255

14.2.5 PWR_WakeUpPinCmd function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256

14.2.6 PWR_EnterSTOPMode function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256

14.2.7 PWR_EnterSTANDBYMode function . . . . . . . . . . . . . . . . . . . . . . . . . . 257

14.2.8 PWR_GetFlagStatus function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258

14.2.9 PWR_ClearFlag function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259


15 Reset and clock control (RCC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260

15.1 RCC register structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260

15.2 Firmware library functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261

15.2.1 RCC_DeInit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263

15.2.2 RCC_HSEConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263

15.2.3 RCC_WaitForHSEStartUp function . . . . . . . . . . . . . . . . . . . . . . . . . . . 264

15.2.4 RCC_AdjustHSICalibrationValue function . . . . . . . . . . . . . . . . . . . . . . 266

15.2.5 RCC_HSICmd function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266

15.2.6 RCC_PLLConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267

15.2.7 RCC_PLLCmd function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268

15.2.8 RCC_SYSCLKConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269

15.2.9 RCC_GetSYSCLKSource function . . . . . . . . . . . . . . . . . . . . . . . . . . . 270

15.2.10 RCC_HCLKConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271

15.2.11 RCC_PCLK1Config function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272

15.2.12 RCC_PCLK2Config function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273

15.2.13 RCC_ITConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274

15.2.14 RCC_USBCLKConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275

15.2.15 RCC_ADCCLKConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276

15.2.16 RCC_LSEConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277

15.2.17 RCC_LSICmd function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278

15.2.18 RCC_RTCCLKConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278

15.2.19 RCC_RTCCLKCmd function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279

15.2.20 RCC_GetClocksFreq function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280

RCC_ClocksTypeDef structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280

15.2.21 RCC_AHBPeriphClockCmd function . . . . . . . . . . . . . . . . . . . . . . . . . . 281

15.2.22 RCC_APB2PeriphClockCmd function . . . . . . . . . . . . . . . . . . . . . . . . . 282

15.2.23 RCC_APB1PeriphClockCmd function . . . . . . . . . . . . . . . . . . . . . . . . . 283

15.2.24 RCC_APB2PeriphResetCmd function . . . . . . . . . . . . . . . . . . . . . . . . . 284

15.2.25 RCC_APB1PeriphResetCmd function . . . . . . . . . . . . . . . . . . . . . . . . . 285

15.2.26 RCC_BackupResetCmd function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285

15.2.27 RCC_ClockSecuritySystemCmd function . . . . . . . . . . . . . . . . . . . . . . 286

15.2.28 RCC_MCOConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286

15.2.29 RCC_GetFlagStatus function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287

15.2.30 RCC_ClearFlag function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289

15.2.31 RCC_GetITStatus function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289

15.2.32 RCC_ClearITPendingBit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290


16 Real-time clock (RTC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292

16.1 RTC register structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292

16.2 Firmware library functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294

16.2.1 RTC_ITConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295

16.2.2 RTC_EnterConfigMode function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296

16.2.3 RTC_ExitConfigMode function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296

16.2.4 RTC_GetCounter function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297

16.2.5 RTC_SetCounter function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297

16.2.6 RTC_SetPrescaler function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298

16.2.7 RTC_SetAlarm function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298

16.2.8 RTC_GetDivider function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299

16.2.9 RTC_WaitForLastTask function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299

16.2.10 RTC_WaitForSynchro function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300

16.2.11 RTC_GetFlagStatus function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300

16.2.12 RTC_ClearFlag function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301

16.2.13 RTC_GetITStatus function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302

16.2.14 RTC_ClearITPendingBit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302


17 Serial peripheral interface (SPI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303

17.1 SPI register structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303

17.2 Firmware library functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305

17.2.1 SPI_I2S_DeInit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306

17.2.2 SPI_Init function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306

SPI_InitTypeDef structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307

17.2.3 I2S_Init function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310

17.2.4 SPI_StructInit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312

17.2.5 I2S_StructInit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313

17.2.6 SPI_Cmd function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314

17.2.7 I2S_Cmd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314

17.2.8 SPI_I2S_ITConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315

17.2.9 SPI_I2S_DMACmd function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316

17.2.10 SPI_I2S_SendData function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317

17.2.11 SPI_I2S_ReceiveData function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317

17.2.12 SPI_NSSInternalSoftwareConfig function . . . . . . . . . . . . . . . . . . . . . . 318

17.2.13 SPI_SSOutputCmd function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319

17.2.14 SPI_DataSizeConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319

17.2.15 SPI_TransmitCRC function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320

17.2.16 SPI_CalculateCRC function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321

17.2.17 SPI_GetCRC function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321

17.2.18 SPI_GetCRCPolynomial function . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322

17.2.19 SPI_BiDirectionalLineConfig function . . . . . . . . . . . . . . . . . . . . . . . . . 323

17.2.20 SPI_I2S_GetFlagStatus function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324

17.2.21 SPI_I2S_ClearFlag function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325

17.2.22 SPI_I2S_GetITStatus function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326

17.2.23 SPI_I2S_ClearITPendingBit function . . . . . . . . . . . . . . . . . . . . . . . . . . 327


18 Cortex system timer (SysTick) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328

18.1 SysTick register structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328

18.2 Firmware library functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329

18.2.1 SysTick_CLKSourceConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . 329

18.2.2 SysTick_SetReload function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330

18.2.3 SysTick_CounterCmd function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331

18.2.4 SysTick_ITConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332

18.2.5 SysTick_GetCounter function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332

18.2.6 SysTick_GetFlagStatus function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333


19 Advanced-control timer, general-purpose timer and

basic timer (TIM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334

19.1 TIM register structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334

19.2 Firmware library functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338

19.2.1 TIM_DeInit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341

19.2.2 TIM_TimeBaseInit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342

TIM_TimeBaseInitTypeDef structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342

19.2.3 TIM_OC1Init function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344

TIM_OCInitTypeDef structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344

19.2.4 TIM_OC2Init function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347

19.2.5 TIM_OC3Init function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348

19.2.6 TIM_OC4Init function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349

19.2.7 TIM_ICInit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350

TIM_ICInitTypeDef structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350

19.2.8 TIM_PWMIConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352

19.2.9 TIM_BDTRConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353

TIM_BDTRInitStruct structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353

19.2.10 TIM_TimeBaseStructInit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355

19.2.11 TIM_OCStructInit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356

19.2.12 TIM_ICStructInit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357

19.2.13 TIM_BDTRStructInit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358

19.2.14 TIM_Cmd function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359

19.2.15 TIM_CtrlPWMOutputs function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359

19.2.16 TIM_ITConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360

19.2.17 TIM_GenerateEvent function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361

19.2.18 TIM_DMAConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362

19.2.19 TIM_DMACmd function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364

19.2.20 TIM_InternalClockConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365

19.2.21 TIM_ITRxExternalClockConfig function . . . . . . . . . . . . . . . . . . . . . . . . 366

19.2.22 TIM_TIxExternalClockConfig function . . . . . . . . . . . . . . . . . . . . . . . . . 367

19.2.23 TIM_ETRClockMode1Config function . . . . . . . . . . . . . . . . . . . . . . . . . 368

19.2.24 TIM_ETRClockMode2Config function . . . . . . . . . . . . . . . . . . . . . . . . . 369

19.2.25 TIM_ETRConfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370

19.2.26 TIM_PrescalerConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371

19.2.27 TIM_CounterModeConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372

19.2.28 TIM_SelectInputTrigger function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372

19.2.29 TIM_EncoderInterfaceConfig function . . . . . . . . . . . . . . . . . . . . . . . . . 373

19.2.30 TIM_ForcedOC1Config function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374

19.2.31 TIM_ForcedOC2Config function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375

19.2.32 TIM_ForcedOC3Config function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375

19.2.33 TIM_ForcedOC4Config function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376

19.2.34 TIM_ARRPreloadConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376

19.2.35 TIM_SelectCOM function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377

19.2.36 TIM_SelectCCDMA function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377

19.2.37 TIM_CCPreloadControl function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378

19.2.38 TIM_OC1PreloadConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378

19.2.39 TIM_OC2PreloadConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379

19.2.40 TIM_OC3PreloadConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380

19.2.41 TIM_OC4PreloadConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380

19.2.42 TIM_OC1FastConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381

19.2.43 TIM_OC2FastConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382

19.2.44 TIM_OC3FastConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382

19.2.45 TIM_OC4FastConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383

19.2.46 TIM_ClearOC1Ref . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383

19.2.47 TIM_ClearOC2Ref . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384

19.2.48 TIM_ClearOC3Ref . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385

19.2.49 TIM_ClearOC4Ref . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385

19.2.50 TIM_OC1PolarityConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386

19.2.51 TIM_OC1NPolarityConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387

19.2.52 TIM_OC2PolarityConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387

19.2.53 TIM_OC2NPolarityConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388

19.2.54 TIM_OC3PolarityConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388

19.2.55 TIM_OC3NPolarityConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389

19.2.56 TIM_OC4PolarityConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389

19.2.57 TIM_CCxCmd function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390

19.2.58 TIM_CCxNCmd function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390

19.2.59 TIM_SelectOCxM function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391

19.2.60 TIM_UpdateDisableConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . 392

19.2.61 TIM_UpdateRequestConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . 392

19.2.62 TIM_SelectHallSensor function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393

19.2.63 TIM_SelectOnePulseMode function . . . . . . . . . . . . . . . . . . . . . . . . . . 394

19.2.64 TIM_SelectOutputTrigger function . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395

19.2.65 TIM_SelectSlaveMode function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396

19.2.66 TIM_SelectMasterSlaveMode function . . . . . . . . . . . . . . . . . . . . . . . . 397

19.2.67 TIM_SetCounter function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397

19.2.68 TIM_SetAutoreload function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398

19.2.69 TIM_SetCompare1 function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398

19.2.70 TIM_SetCompare2 function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399

19.2.71 TIM_SetCompare3 function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399

19.2.72 TIM_SetCompare4 function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400

19.2.73 TIM_SetIC1Prescaler function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400

19.2.74 TIM_SetIC2Prescaler function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401

19.2.75 TIM_SetIC3Prescaler function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402

19.2.76 TIM_SetIC4Prescaler function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402

19.2.77 TIM_SetClockDivision function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403

19.2.78 TIM_GetCapture1 function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403

19.2.79 TIM_GetCapture2 function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404

19.2.80 TIM_GetCapture3 function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404

19.2.81 TIM_GetCapture4 function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405

19.2.82 TIM_GetCounter function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405

19.2.83 TIM_GetPrescaler function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406

19.2.84 TIM_GetFlagStatus function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406

19.2.85 TIM_ClearFlag function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408

19.2.86 TIM_GetITStatus function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408

19.2.87 TIM_ClearITPendingBit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409


20 Universal synchronous asynchronous receiver

transmitter (USART) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410

20.1 USART register structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410

20.2 Firmware library functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413

20.2.1 USART_DeInit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414

20.2.2 USART_Init function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414

USART_InitTypeDef structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415

20.2.3 USART_StructInit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417

20.2.4 USART_ClockInit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417

USART_ClockInitTypeDef structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418

20.2.5 USART_ClockStructInit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420

20.2.6 USART_Cmd function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421

20.2.7 USART_ITConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421

20.2.8 USART_DMACmd function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422

20.2.9 USART_SetAddress function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423

20.2.10 USART_WakeUpConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424

20.2.11 USART_ReceiverWakeUpCmd function . . . . . . . . . . . . . . . . . . . . . . . 425

20.2.12 USART_LINBreakDetectLengthConfig function . . . . . . . . . . . . . . . . . 425

20.2.13 USART_LINCmd function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426

20.2.14 USART_SendData function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427

20.2.15 USART_ReceiveData function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427

20.2.16 USART_SendBreak function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428

20.2.17 USART_SetGuardTime function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428

20.2.18 USART_SetPrescaler function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429

20.2.19 USART_SmartCardCmd function . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429

20.2.20 USART_SmartCardNACKCmd function . . . . . . . . . . . . . . . . . . . . . . . 430

20.2.21 USART_HalfDuplexCmd function . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430

20.2.22 USART_IrDAConfig function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431

20.2.23 USART_IrDACmd function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432

20.2.24 USART_GetFlagStatus function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432

20.2.25 USART_ClearFlag function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433

20.2.26 USART_GetITStatus function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434

20.2.27 USART_ClearITPendingBit function . . . . . . . . . . . . . . . . . . . . . . . . . . 435


21 Window watchdog (WWDG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437

21.1 WWDG registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437

21.2 Firmware library functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438

21.2.1 WWDG_DeInit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438

21.2.2 WWDG_SetPrescaler function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439

21.2.3 WWDG_SetWindowValue function . . . . . . . . . . . . . . . . . . . . . . . . . . . 440

21.2.4 WWDG_EnableIT function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440

21.2.5 WWDG_SetCounter function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441

21.2.6 WWDG_Enable function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441

21.2.7 WWDG_GetFlagStatus function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442

21.2.8 WWDG_ClearFlag function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442


22 Digital/analog converter (DAC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443

22.1 DAC register structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443

22.2 Firmware library functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445

22.2.1 DAC_DeInit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445

22.2.2 DAC_Init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446

DAC_Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446

DAC_InitTypeDef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446

22.2.3 DAC_StructInit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449

22.2.4 DAC_Cmd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450

22.2.5 DAC_DMACmd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450

22.2.6 DAC_SoftwareTriggerCmd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451

22.2.7 DAC_DualSoftwareTriggerCmd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451

22.2.8 DAC_WaveGenerationCmd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452

22.2.9 DAC_SetChannel1Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453

22.2.10 DAC_SetChannel2Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454

22.2.11 DAC_SetDualChannelData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455

22.2.12 DAC_GetDataOutputValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456


23 Flexible static memory controller (FSMC) . . . . . . . . . . . . . . . . . . . . . 457

23.1 FSMC register structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457

23.2 Firmware library functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460

23.2.1 FSMC_NORSRAMDeInit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461

23.2.2 FSMC_NANDDeInit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462

23.2.3 FSMC_PCCARDDeInit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463

23.2.4 FSMC_NORSRAMInit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463

FSMC_NORSRAMTimingInitTypeDef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464

FSMC_NORSRAMInitTypeDef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465

23.2.5 FSMC_NANDInit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470

FSMC_NAND_PCCARDTimingInitTypeDef . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470

FSMC_NANDInitTypeDef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471

23.2.6 FSMC_PCCARDInit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474

FSMC_NAND_PCCARDTimingInitTypeDef . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474

FSMC_PCCARDInitTypeDef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475

23.2.7 FSMC_NORSRAMStructInit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477

23.2.8 FSMC_NANDStructInit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478

23.2.9 FSMC_PCCARDStructInit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479

23.2.10 FSMC_NORSRAMCmd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481

23.2.11 FSMC_NANDCmd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481

23.2.12 FSMC_PCCARDCmd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482

23.2.13 FSMC_PCCARDCmd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482

23.2.14 FSMC_NANDECCCmd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483

23.2.15 FSMC_ITConfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483

23.2.16 FSMC_GetFlagStatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484

23.2.17 FSMC_ClearFlag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485

23.2.18 FSMC_GetITStatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486

23.2.19 FSMC_ClearITPendingBit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486


24 SDIO interface (SDIO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487

24.1 SDIO register structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487

24.2 Firmware library functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489

24.2.1 SDIO_DeInit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490

24.2.2 SDIO_Init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490

SDIO_InitTypeDef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491

24.2.3 SDIO_StructInit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493

24.2.4 SDIO_ClockCmd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494

24.2.5 SDIO_SetPowerState . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494

24.2.6 SDIO_GetPowerState . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495

24.2.7 SDIO_ITConfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495

24.2.8 SDIO_DMACmd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497

24.2.9 SDIO_SendCommand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497

SDIO_CmdInitTypeDef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498

24.2.10 SDIO_CmdStructInit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499

24.2.11 SDIO_GetCommandResponse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500

24.2.12 SDIO_GetResponse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500

24.2.13 SDIO_DataConfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501

SDIO_DataInitTypeDef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501

24.2.14 SDIO_DataStructInit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503

24.2.15 SDIO_GetDataCounter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504

24.2.16 SDIO_ReadData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505

24.2.17 SDIO_WriteData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505

24.2.18 SDIO_GetFIFOCount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506

24.2.19 SDIO_StartSDIOReadWait . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506

24.2.20 SDIO_StopSDIOReadWait . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507

24.2.21 SDIO_SetSDIOReadWaitMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507

24.2.22 SDIO_SetSDIOOperation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508

24.2.23 SDIO_SendSDIOSuspendCmd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508

24.2.24 SDIO_CommandCompletionCmd . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509

24.2.25 SDIO_CEATAITCmd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509

24.2.26 SDIO_SendCEATACmd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510

24.2.27 SDIO_GetFlagStatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510

24.2.28 SDIO_ClearFlag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512

24.2.29 SDIO_GetITStatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513

24.2.30 SDIO_ClearITPendingBit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513


25 Debug MCU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515

25.1 DBGMCU register structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515

25.2 Firmware library functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516

25.2.1 DBGMCU_GetREVID function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516

25.2.2 DBGMCU_GetDEVID function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517

25.2.3 DBGMCU_Config function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517


26 CRC calculation unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519

26.1 CRC register structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519

26.2 Firmware library functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520

26.2.1 CRC_ResetDR function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520

26.2.2 CRC_CalcCRC function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521

26.3 CRC_CalcBlockCRC function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521

26.3.1 CRC_GetCRC function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522

26.3.2 CRC_SetIDRegister function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522

26.3.3 CRC_GetIDRegister function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523

'중도연재종료 > CORTEX M3' 카테고리의 다른 글

진행방식을 바꾼다...  (0) 2013.06.23
함수표 참조 설명  (0) 2013.06.23
정확한 1초 Delay 구현  (0) 2013.06.23
RCC_GetClockFreq  (0) 2013.06.23
Clock Control  (0) 2013.06.23
Posted by 십자성군