diff --git a/Docs/PY32F003 Reference manual v1.1.pdf b/Docs/PY32F003 Reference manual v1.1.pdf old mode 100755 new mode 100644 diff --git a/Docs/PY32F003 datasheet 105℃ Rev.1.0_EN.pdf b/Docs/PY32F003 datasheet 105℃ Rev.1.0_EN.pdf old mode 100755 new mode 100644 diff --git a/Docs/PY32F003 datasheet Rev.1.2_EN.pdf b/Docs/PY32F003 datasheet Rev.1.2_EN.pdf old mode 100755 new mode 100644 diff --git a/Docs/PY32F030 Reference manual v1.1_EN_Final.pdf b/Docs/PY32F030 Reference manual v1.1_EN_Final.pdf old mode 100755 new mode 100644 diff --git a/Docs/PY32F030 datasheet 105℃ Rev.1.0_EN.pdf b/Docs/PY32F030 datasheet 105℃ Rev.1.0_EN.pdf old mode 100755 new mode 100644 diff --git a/Docs/PY32F030 datasheet Rev.1.4_EN.pdf b/Docs/PY32F030 datasheet Rev.1.4_EN.pdf old mode 100755 new mode 100644 diff --git a/Examples/Raw/ADC/ContinuousConversion_DMA/main.c b/Examples/Raw/ADC/ContinuousConversion_DMA/main.c old mode 100755 new mode 100644 diff --git a/Examples/Raw/ADC/ContinuousConversion_DMA/py32f0xx_hal_conf.h b/Examples/Raw/ADC/ContinuousConversion_DMA/py32f0xx_hal_conf.h old mode 100755 new mode 100644 diff --git a/Examples/Raw/ADC/ContinuousConversion_DMA/py32f0xx_hal_msp.c b/Examples/Raw/ADC/ContinuousConversion_DMA/py32f0xx_hal_msp.c old mode 100755 new mode 100644 diff --git a/Examples/Raw/ADC/ContinuousConversion_DMA/py32f0xx_it.c b/Examples/Raw/ADC/ContinuousConversion_DMA/py32f0xx_it.c old mode 100755 new mode 100644 diff --git a/Examples/Raw/ADC/ContinuousConversion_DMA/py32f0xx_it.h b/Examples/Raw/ADC/ContinuousConversion_DMA/py32f0xx_it.h old mode 100755 new mode 100644 diff --git a/Examples/Raw/ADC/SingleConversion_TriggerTimer_IT/main.c b/Examples/Raw/ADC/SingleConversion_TriggerTimer_IT/main.c old mode 100755 new mode 100644 diff --git a/Examples/Raw/ADC/SingleConversion_TriggerTimer_IT/py32f0xx_hal_conf.h b/Examples/Raw/ADC/SingleConversion_TriggerTimer_IT/py32f0xx_hal_conf.h old mode 100755 new mode 100644 diff --git a/Examples/Raw/ADC/SingleConversion_TriggerTimer_IT/py32f0xx_hal_msp.c b/Examples/Raw/ADC/SingleConversion_TriggerTimer_IT/py32f0xx_hal_msp.c old mode 100755 new mode 100644 diff --git a/Examples/Raw/ADC/SingleConversion_TriggerTimer_IT/py32f0xx_it.c b/Examples/Raw/ADC/SingleConversion_TriggerTimer_IT/py32f0xx_it.c old mode 100755 new mode 100644 diff --git a/Examples/Raw/ADC/SingleConversion_TriggerTimer_IT/py32f0xx_it.h b/Examples/Raw/ADC/SingleConversion_TriggerTimer_IT/py32f0xx_it.h old mode 100755 new mode 100644 diff --git a/Examples/Raw/DSP/Matrix_Calc/main.c b/Examples/Raw/DSP/Matrix_Calc/main.c old mode 100755 new mode 100644 diff --git a/Examples/Raw/DSP/Matrix_Calc/py32f0xx_hal_conf.h b/Examples/Raw/DSP/Matrix_Calc/py32f0xx_hal_conf.h old mode 100755 new mode 100644 diff --git a/Examples/Raw/DSP/Matrix_Calc/py32f0xx_hal_msp.c b/Examples/Raw/DSP/Matrix_Calc/py32f0xx_hal_msp.c old mode 100755 new mode 100644 diff --git a/Examples/Raw/DSP/Matrix_Calc/py32f0xx_it.c b/Examples/Raw/DSP/Matrix_Calc/py32f0xx_it.c old mode 100755 new mode 100644 diff --git a/Examples/Raw/DSP/Matrix_Calc/py32f0xx_it.h b/Examples/Raw/DSP/Matrix_Calc/py32f0xx_it.h old mode 100755 new mode 100644 diff --git a/Examples/Raw/GPIO/LED_Toggle/main.c b/Examples/Raw/GPIO/LED_Toggle/main.c old mode 100755 new mode 100644 diff --git a/Examples/Raw/GPIO/LED_Toggle/py32f0xx_hal_conf.h b/Examples/Raw/GPIO/LED_Toggle/py32f0xx_hal_conf.h old mode 100755 new mode 100644 diff --git a/Examples/Raw/GPIO/LED_Toggle/py32f0xx_hal_msp.c b/Examples/Raw/GPIO/LED_Toggle/py32f0xx_hal_msp.c old mode 100755 new mode 100644 diff --git a/Examples/Raw/GPIO/LED_Toggle/py32f0xx_it.c b/Examples/Raw/GPIO/LED_Toggle/py32f0xx_it.c old mode 100755 new mode 100644 diff --git a/Examples/Raw/GPIO/LED_Toggle/py32f0xx_it.h b/Examples/Raw/GPIO/LED_Toggle/py32f0xx_it.h old mode 100755 new mode 100644 diff --git a/Examples/Raw/RCC/HSE_ClockConfigurate/main.c b/Examples/Raw/RCC/HSE_ClockConfigurate/main.c old mode 100755 new mode 100644 diff --git a/Examples/Raw/RCC/HSE_ClockConfigurate/py32f0xx_hal_conf.h b/Examples/Raw/RCC/HSE_ClockConfigurate/py32f0xx_hal_conf.h old mode 100755 new mode 100644 diff --git a/Examples/Raw/RCC/HSE_ClockConfigurate/py32f0xx_hal_msp.c b/Examples/Raw/RCC/HSE_ClockConfigurate/py32f0xx_hal_msp.c old mode 100755 new mode 100644 diff --git a/Examples/Raw/RCC/HSE_ClockConfigurate/py32f0xx_it.c b/Examples/Raw/RCC/HSE_ClockConfigurate/py32f0xx_it.c old mode 100755 new mode 100644 diff --git a/Examples/Raw/RCC/HSE_ClockConfigurate/py32f0xx_it.h b/Examples/Raw/RCC/HSE_ClockConfigurate/py32f0xx_it.h old mode 100755 new mode 100644 diff --git a/Examples/Raw/RCC/HSE_PLL_ClockConfigurate/main.c b/Examples/Raw/RCC/HSE_PLL_ClockConfigurate/main.c old mode 100755 new mode 100644 diff --git a/Examples/Raw/RCC/HSE_PLL_ClockConfigurate/py32f0xx_hal_conf.h b/Examples/Raw/RCC/HSE_PLL_ClockConfigurate/py32f0xx_hal_conf.h old mode 100755 new mode 100644 diff --git a/Examples/Raw/RCC/HSE_PLL_ClockConfigurate/py32f0xx_hal_msp.c b/Examples/Raw/RCC/HSE_PLL_ClockConfigurate/py32f0xx_hal_msp.c old mode 100755 new mode 100644 diff --git a/Examples/Raw/RCC/HSE_PLL_ClockConfigurate/py32f0xx_it.c b/Examples/Raw/RCC/HSE_PLL_ClockConfigurate/py32f0xx_it.c old mode 100755 new mode 100644 diff --git a/Examples/Raw/RCC/HSE_PLL_ClockConfigurate/py32f0xx_it.h b/Examples/Raw/RCC/HSE_PLL_ClockConfigurate/py32f0xx_it.h old mode 100755 new mode 100644 diff --git a/Examples/Raw/RCC/HSI_ClockConfigurate/main.c b/Examples/Raw/RCC/HSI_ClockConfigurate/main.c old mode 100755 new mode 100644 diff --git a/Examples/Raw/RCC/HSI_ClockConfigurate/py32f0xx_hal_conf.h b/Examples/Raw/RCC/HSI_ClockConfigurate/py32f0xx_hal_conf.h old mode 100755 new mode 100644 diff --git a/Examples/Raw/RCC/HSI_ClockConfigurate/py32f0xx_hal_msp.c b/Examples/Raw/RCC/HSI_ClockConfigurate/py32f0xx_hal_msp.c old mode 100755 new mode 100644 diff --git a/Examples/Raw/RCC/HSI_ClockConfigurate/py32f0xx_it.c b/Examples/Raw/RCC/HSI_ClockConfigurate/py32f0xx_it.c old mode 100755 new mode 100644 diff --git a/Examples/Raw/RCC/HSI_ClockConfigurate/py32f0xx_it.h b/Examples/Raw/RCC/HSI_ClockConfigurate/py32f0xx_it.h old mode 100755 new mode 100644 diff --git a/Examples/Raw/RCC/HSI_PLL_Output/main.c b/Examples/Raw/RCC/HSI_PLL_Output/main.c old mode 100755 new mode 100644 diff --git a/Examples/Raw/RCC/HSI_PLL_Output/py32f0xx_hal_conf.h b/Examples/Raw/RCC/HSI_PLL_Output/py32f0xx_hal_conf.h old mode 100755 new mode 100644 diff --git a/Examples/Raw/RCC/HSI_PLL_Output/py32f0xx_hal_msp.c b/Examples/Raw/RCC/HSI_PLL_Output/py32f0xx_hal_msp.c old mode 100755 new mode 100644 diff --git a/Examples/Raw/RCC/HSI_PLL_Output/py32f0xx_it.c b/Examples/Raw/RCC/HSI_PLL_Output/py32f0xx_it.c old mode 100755 new mode 100644 diff --git a/Examples/Raw/RCC/HSI_PLL_Output/py32f0xx_it.h b/Examples/Raw/RCC/HSI_PLL_Output/py32f0xx_it.h old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_abs_f32.c b/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_abs_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_abs_q15.c b/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_abs_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_abs_q31.c b/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_abs_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_abs_q7.c b/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_abs_q7.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_add_f32.c b/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_add_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_add_q15.c b/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_add_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_add_q31.c b/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_add_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_add_q7.c b/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_add_q7.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_dot_prod_f32.c b/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_dot_prod_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_dot_prod_q15.c b/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_dot_prod_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_dot_prod_q31.c b/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_dot_prod_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_dot_prod_q7.c b/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_dot_prod_q7.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_mult_f32.c b/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_mult_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_mult_q15.c b/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_mult_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_mult_q31.c b/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_mult_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_mult_q7.c b/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_mult_q7.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_negate_f32.c b/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_negate_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_negate_q15.c b/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_negate_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_negate_q31.c b/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_negate_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_negate_q7.c b/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_negate_q7.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_offset_f32.c b/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_offset_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_offset_q15.c b/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_offset_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_offset_q31.c b/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_offset_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_offset_q7.c b/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_offset_q7.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_scale_f32.c b/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_scale_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_scale_q15.c b/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_scale_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_scale_q31.c b/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_scale_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_scale_q7.c b/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_scale_q7.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_shift_q15.c b/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_shift_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_shift_q31.c b/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_shift_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_shift_q7.c b/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_shift_q7.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_sub_f32.c b/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_sub_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_sub_q15.c b/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_sub_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_sub_q31.c b/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_sub_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_sub_q7.c b/Libraries/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_sub_q7.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/CommonTables/arm_common_tables.c b/Libraries/CMSIS/DSP_Lib/Source/CommonTables/arm_common_tables.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/CommonTables/arm_const_structs.c b/Libraries/CMSIS/DSP_Lib/Source/CommonTables/arm_const_structs.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_conj_f32.c b/Libraries/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_conj_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_conj_q15.c b/Libraries/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_conj_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_conj_q31.c b/Libraries/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_conj_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_dot_prod_f32.c b/Libraries/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_dot_prod_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_dot_prod_q15.c b/Libraries/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_dot_prod_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_dot_prod_q31.c b/Libraries/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_dot_prod_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_f32.c b/Libraries/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_q15.c b/Libraries/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_q31.c b/Libraries/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_squared_f32.c b/Libraries/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_squared_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_squared_q15.c b/Libraries/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_squared_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_squared_q31.c b/Libraries/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_squared_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_f32.c b/Libraries/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_q15.c b/Libraries/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_q31.c b/Libraries/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_real_f32.c b/Libraries/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_real_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_real_q15.c b/Libraries/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_real_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_real_q31.c b/Libraries/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_real_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_pid_init_f32.c b/Libraries/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_pid_init_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_pid_init_q15.c b/Libraries/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_pid_init_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_pid_init_q31.c b/Libraries/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_pid_init_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_pid_reset_f32.c b/Libraries/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_pid_reset_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_pid_reset_q15.c b/Libraries/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_pid_reset_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_pid_reset_q31.c b/Libraries/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_pid_reset_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_sin_cos_f32.c b/Libraries/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_sin_cos_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_sin_cos_q31.c b/Libraries/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_sin_cos_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_cos_f32.c b/Libraries/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_cos_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_cos_q15.c b/Libraries/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_cos_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_cos_q31.c b/Libraries/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_cos_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_sin_f32.c b/Libraries/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_sin_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_sin_q15.c b/Libraries/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_sin_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_sin_q31.c b/Libraries/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_sin_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_sqrt_q15.c b/Libraries/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_sqrt_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_sqrt_q31.c b/Libraries/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_sqrt_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_32x64_init_q31.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_32x64_init_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_32x64_q31.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_32x64_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_f32.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_fast_q15.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_fast_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_fast_q31.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_fast_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_init_f32.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_init_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_init_q15.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_init_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_init_q31.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_init_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_q15.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_q31.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df2T_f32.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df2T_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df2T_f64.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df2T_f64.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df2T_init_f32.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df2T_init_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df2T_init_f64.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df2T_init_f64.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_stereo_df2T_f32.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_stereo_df2T_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_stereo_df2T_init_f32.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_stereo_df2T_init_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_f32.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_fast_opt_q15.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_fast_opt_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_fast_q15.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_fast_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_fast_q31.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_fast_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_opt_q15.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_opt_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_opt_q7.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_opt_q7.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_f32.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_fast_opt_q15.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_fast_opt_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_fast_q15.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_fast_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_fast_q31.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_fast_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_opt_q15.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_opt_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_opt_q7.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_opt_q7.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_q15.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_q31.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_q7.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_q7.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_q15.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_q31.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_q7.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_q7.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_f32.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_fast_opt_q15.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_fast_opt_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_fast_q15.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_fast_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_fast_q31.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_fast_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_opt_q15.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_opt_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_opt_q7.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_opt_q7.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_q15.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_q31.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_q7.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_q7.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_f32.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_fast_q15.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_fast_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_fast_q31.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_fast_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_init_f32.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_init_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_init_q15.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_init_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_init_q31.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_init_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_q15.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_q31.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_f32.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_fast_q15.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_fast_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_fast_q31.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_fast_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_init_f32.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_init_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_init_q15.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_init_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_init_q31.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_init_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_init_q7.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_init_q7.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_f32.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_init_f32.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_init_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_init_q15.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_init_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_init_q31.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_init_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_q15.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_q31.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_f32.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_init_f32.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_init_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_init_q15.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_init_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_init_q31.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_init_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_q15.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_q31.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_q15.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_q31.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_q7.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_q7.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_f32.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_init_f32.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_init_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_init_q15.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_init_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_init_q31.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_init_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_init_q7.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_init_q7.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_q15.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_q31.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_q7.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_q7.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_f32.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_init_f32.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_init_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_init_q15.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_init_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_init_q31.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_init_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_q15.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_q31.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_f32.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_init_f32.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_init_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_init_q15.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_init_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_init_q31.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_init_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_f32.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_init_f32.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_init_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_init_q15.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_init_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_init_q31.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_init_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_q15.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_q31.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_q15.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_q31.c b/Libraries/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_add_f32.c b/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_add_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_add_q15.c b/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_add_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_add_q31.c b/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_add_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_cmplx_mult_f32.c b/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_cmplx_mult_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_cmplx_mult_q15.c b/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_cmplx_mult_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_cmplx_mult_q31.c b/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_cmplx_mult_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_init_f32.c b/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_init_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_init_q15.c b/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_init_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_init_q31.c b/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_init_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_inverse_f32.c b/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_inverse_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_inverse_f64.c b/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_inverse_f64.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_mult_f32.c b/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_mult_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_mult_fast_q15.c b/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_mult_fast_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_mult_fast_q31.c b/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_mult_fast_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_mult_q15.c b/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_mult_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_mult_q31.c b/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_mult_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_scale_f32.c b/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_scale_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_scale_q15.c b/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_scale_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_scale_q31.c b/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_scale_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_sub_f32.c b/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_sub_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_sub_q15.c b/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_sub_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_sub_q31.c b/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_sub_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_trans_f32.c b/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_trans_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_trans_q15.c b/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_trans_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_trans_q31.c b/Libraries/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_trans_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_max_f32.c b/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_max_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_max_q15.c b/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_max_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_max_q31.c b/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_max_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_max_q7.c b/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_max_q7.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_mean_f32.c b/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_mean_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_mean_q15.c b/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_mean_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_mean_q31.c b/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_mean_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_mean_q7.c b/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_mean_q7.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_min_f32.c b/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_min_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_min_q15.c b/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_min_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_min_q31.c b/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_min_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_min_q7.c b/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_min_q7.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_power_f32.c b/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_power_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_power_q15.c b/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_power_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_power_q31.c b/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_power_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_power_q7.c b/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_power_q7.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_rms_f32.c b/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_rms_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_rms_q15.c b/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_rms_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_rms_q31.c b/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_rms_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_std_f32.c b/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_std_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_std_q15.c b/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_std_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_std_q31.c b/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_std_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_var_f32.c b/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_var_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_var_q15.c b/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_var_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_var_q31.c b/Libraries/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_var_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/SupportFunctions/arm_copy_f32.c b/Libraries/CMSIS/DSP_Lib/Source/SupportFunctions/arm_copy_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/SupportFunctions/arm_copy_q15.c b/Libraries/CMSIS/DSP_Lib/Source/SupportFunctions/arm_copy_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/SupportFunctions/arm_copy_q31.c b/Libraries/CMSIS/DSP_Lib/Source/SupportFunctions/arm_copy_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/SupportFunctions/arm_copy_q7.c b/Libraries/CMSIS/DSP_Lib/Source/SupportFunctions/arm_copy_q7.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/SupportFunctions/arm_fill_f32.c b/Libraries/CMSIS/DSP_Lib/Source/SupportFunctions/arm_fill_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/SupportFunctions/arm_fill_q15.c b/Libraries/CMSIS/DSP_Lib/Source/SupportFunctions/arm_fill_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/SupportFunctions/arm_fill_q31.c b/Libraries/CMSIS/DSP_Lib/Source/SupportFunctions/arm_fill_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/SupportFunctions/arm_fill_q7.c b/Libraries/CMSIS/DSP_Lib/Source/SupportFunctions/arm_fill_q7.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/SupportFunctions/arm_float_to_q15.c b/Libraries/CMSIS/DSP_Lib/Source/SupportFunctions/arm_float_to_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/SupportFunctions/arm_float_to_q31.c b/Libraries/CMSIS/DSP_Lib/Source/SupportFunctions/arm_float_to_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/SupportFunctions/arm_float_to_q7.c b/Libraries/CMSIS/DSP_Lib/Source/SupportFunctions/arm_float_to_q7.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q15_to_float.c b/Libraries/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q15_to_float.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q15_to_q31.c b/Libraries/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q15_to_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q15_to_q7.c b/Libraries/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q15_to_q7.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q31_to_float.c b/Libraries/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q31_to_float.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q31_to_q15.c b/Libraries/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q31_to_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q31_to_q7.c b/Libraries/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q31_to_q7.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q7_to_float.c b/Libraries/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q7_to_float.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q7_to_q15.c b/Libraries/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q7_to_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q7_to_q31.c b/Libraries/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q7_to_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_bitreversal.c b/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_bitreversal.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_f32.c b/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_q15.c b/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_q31.c b/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_f32.c b/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_init_f32.c b/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_init_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_init_q15.c b/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_init_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_init_q31.c b/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_init_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_q15.c b/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_q31.c b/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_f32.c b/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_init_f32.c b/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_init_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_init_q15.c b/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_init_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_init_q31.c b/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_init_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_q15.c b/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_q31.c b/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix8_f32.c b/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix8_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_dct4_f32.c b/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_dct4_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_dct4_init_f32.c b/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_dct4_init_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_dct4_init_q15.c b/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_dct4_init_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_dct4_init_q31.c b/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_dct4_init_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_dct4_q15.c b/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_dct4_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_dct4_q31.c b/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_dct4_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_rfft_f32.c b/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_rfft_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_rfft_fast_f32.c b/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_rfft_fast_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_rfft_fast_init_f32.c b/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_rfft_fast_init_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_rfft_init_f32.c b/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_rfft_init_f32.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_rfft_init_q15.c b/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_rfft_init_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_rfft_init_q31.c b/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_rfft_init_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_rfft_q15.c b/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_rfft_q15.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_rfft_q31.c b/Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_rfft_q31.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/Device/PY32F0xx/Include/py32f002ax5.h b/Libraries/CMSIS/Device/PY32F0xx/Include/py32f002ax5.h old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/Device/PY32F0xx/Include/py32f002x5.h b/Libraries/CMSIS/Device/PY32F0xx/Include/py32f002x5.h new file mode 100644 index 0000000..510b7b8 --- /dev/null +++ b/Libraries/CMSIS/Device/PY32F0xx/Include/py32f002x5.h @@ -0,0 +1,3860 @@ +/** + ****************************************************************************** + * @file py32f002x5.h + * @brief CMSIS Cortex-M0+ Device Peripheral Access Layer Header File. + * This file contains all the peripheral register's definitions, bits + * definitions and memory mapping for PY32F0xx devices. + * @version v1.0.1 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) Puya Semiconductor Co. + * All rights reserved.

+ * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + + +/** @addtogroup CMSIS_Device + * @{ + */ + +/** @addtogroup py32f002x5 + * @{ + */ + +#ifndef __PY32F002X5_H +#define __PY32F002X5_H + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/** @addtogroup Configuration_section_for_CMSIS + * @{ + */ + +/** + * @brief Configuration of the Cortex-M0+ Processor and Core Peripherals + */ +#define __CM0PLUS_REV 0 /*!< Core Revision r0p0 */ +#define __MPU_PRESENT 0 /*!< PY32F0xx do not provide MPU */ +#define __VTOR_PRESENT 1 /*!< Vector Table Register supported */ +#define __NVIC_PRIO_BITS 2 /*!< PY32F0xx uses 2 Bits for the Priority Levels */ +#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ + +/** + * @} + */ + +/** @addtogroup Peripheral_interrupt_number_definition + * @{ + */ + +/** + * @brief PY32F0xx Interrupt Number Definition, according to the selected device + * in @ref Library_configuration_section + */ + +/*!< Interrupt Number Definition */ +typedef enum +{ + /****** Cortex-M0+ Processor Exceptions Numbers *************************************************************/ + NonMaskableInt_IRQn = -14, /*!< 2 Non Maskable Interrupt */ + HardFault_IRQn = -13, /*!< 3 Cortex-M Hard Fault Interrupt */ + SVC_IRQn = -5, /*!< 11 Cortex-M SV Call Interrupt */ + PendSV_IRQn = -2, /*!< 14 Cortex-M Pend SV Interrupt */ + SysTick_IRQn = -1, /*!< 15 Cortex-M System Tick Interrupt */ + /****** PY32F0 specific Interrupt Numbers *******************************************************************/ + FLASH_IRQn = 3, /*!< FLASH global Interrupt */ + RCC_IRQn = 4, /*!< RCC global Interrupt */ + EXTI0_1_IRQn = 5, /*!< EXTI 0 and 1 Interrupts */ + EXTI2_3_IRQn = 6, /*!< EXTI Line 2 and 3 Interrupts */ + EXTI4_15_IRQn = 7, /*!< EXTI Line 4 to 15 Interrupts */ + ADC_IRQn = 12, /*!< ADC Interrupts */ + TIM1_BRK_UP_TRG_COM_IRQn = 13, /*!< TIM1 Break, Update, Trigger and Commutation Interrupts */ + TIM1_CC_IRQn = 14, /*!< TIM1 Capture Compare Interrupt */ + TIM6_LPTIM1_IRQn = 17, /*!< TIM6 LPTIM1 global Interrupts */ + I2C1_IRQn = 23, /*!< I2C1 Interrupt (combined with EXTI 23) */ + SPI1_IRQn = 25, /*!< SPI1 Interrupt */ + USART1_IRQn = 27, /*!< USART1 Interrupt */ +} IRQn_Type; + +/** + * @} + */ + +#include "core_cm0plus.h" /* Cortex-M0+ processor and core peripherals */ +#include "system_py32f0xx.h" /* PY32F0xx System Header */ +#include + +/** @addtogroup Peripheral_registers_structures + * @{ + */ + +/** + * @brief Analog to Digital Converter + */ +typedef struct +{ + __IO uint32_t ISR; /*!< ADC interrupt and status register, Address offset: 0x00 */ + __IO uint32_t IER; /*!< ADC interrupt enable register, Address offset: 0x04 */ + __IO uint32_t CR; /*!< ADC control register, Address offset: 0x08 */ + __IO uint32_t CFGR1; /*!< ADC configuration register 1, Address offset: 0x0C */ + __IO uint32_t CFGR2; /*!< ADC configuration register 2, Address offset: 0x10 */ + __IO uint32_t SMPR; /*!< ADC sampling time register, Address offset: 0x14 */ + uint32_t RESERVED1[2]; /*!< Reserved, 0x18-0x1C */ + __IO uint32_t TR; /*!< ADC analog watchdog 1 threshold register, Address offset: 0x20 */ + uint32_t RESERVED2; /*!< Reserved, 0x24 */ + __IO uint32_t CHSELR; /*!< ADC group regular sequencer register, Address offset: 0x28 */ + uint32_t RESERVED3[5]; /*!< Reserved, 0x2C */ + __IO uint32_t DR; /*!< ADC group regular data register, Address offset: 0x40 */ + __IO uint32_t CCSR; /*!< ADC calibration configuration&status register Address offset: 0x44 */ +} ADC_TypeDef; + +typedef struct +{ + __IO uint32_t CCR; /*!< ADC common configuration register, Address offset: ADC1 base address + 0x308 */ +} ADC_Common_TypeDef; + +/** + * @brief CRC calculation unit + */ +typedef struct +{ + __IO uint32_t DR; /*!< CRC Data register, Address offset: 0x00 */ + __IO uint32_t IDR; /*!< CRC Independent data register, Address offset: 0x04 */ + __IO uint32_t CR; /*!< CRC Control register, Address offset: 0x08 */ +} CRC_TypeDef; + +/** + * @brief Debug MCU + */ +typedef struct +{ + __IO uint32_t IDCODE; /*!< MCU device ID code, Address offset: 0x00 */ + __IO uint32_t CR; /*!< Debug configuration register, Address offset: 0x04 */ + __IO uint32_t APBFZ1; /*!< Debug APB freeze register 1, Address offset: 0x08 */ + __IO uint32_t APBFZ2; /*!< Debug APB freeze register 2, Address offset: 0x0C */ +} DBGMCU_TypeDef; + + +/** + * @brief Asynch Interrupt/Event Controller (EXTI) + */ +typedef struct +{ + __IO uint32_t RTSR; /*!< EXTI Rising Trigger Selection Register 1, Address offset: 0x00 */ + __IO uint32_t FTSR; /*!< EXTI Falling Trigger Selection Register 1, Address offset: 0x04 */ + __IO uint32_t SWIER; /*!< EXTI Software Interrupt event Register 1, Address offset: 0x08 */ + __IO uint32_t PR; /*!< EXTI Pending Register 1 Address offset: 0x0C */ + __IO uint32_t RESERVED1[4]; /*!< Reserved 1, 0x10 -- 0x1C */ + __IO uint32_t RESERVED2[5]; /*!< Reserved 2, 0x20 -- 0x30 */ + __IO uint32_t RESERVED3[11]; /*!< Reserved 3, 0x34 -- 0x5C */ + __IO uint32_t EXTICR[2]; /*!< EXTI External Interrupt Configuration Register, 0x60 -- 0x68 */ + __IO uint32_t RESERVED4[6]; /*!< Reserved 5, 0x6C -- 0x7C */ + __IO uint32_t IMR; /*!< EXTI Interrupt Mask Register , Address offset: 0x80 */ + __IO uint32_t EMR; /*!< EXTI Event Mask Register , Address offset: 0x84 */ +} EXTI_TypeDef; + +/** + * @brief FLASH Registers + */ +typedef struct +{ + __IO uint32_t ACR; /*!< FLASH Access Control register, Address offset: 0x00 */ + __IO uint32_t RESERVED1; /*!< Reserved1, Address offset: 0x04 */ + __IO uint32_t KEYR; /*!< FLASH Key register, Address offset: 0x08 */ + __IO uint32_t OPTKEYR; /*!< FLASH Option Key register, Address offset: 0x0C */ + __IO uint32_t SR; /*!< FLASH Status register, Address offset: 0x10 */ + __IO uint32_t CR; /*!< FLASH Control register, Address offset: 0x14 */ + __IO uint32_t RESERVED2[2]; /*!< Reserved2, Address offset: 0x18-0x1C */ + __IO uint32_t OPTR; /*!< FLASH Option register, Address offset: 0x20 */ + __IO uint32_t SDKR; /*!< FLASH SDK address register, Address offset: 0x24 */ + __IO uint32_t BTCR; /*!< desc BTCR, Address offset: 0x28 */ + __IO uint32_t WRPR; /*!< FLASH WRP address register, Address offset: 0x2C */ + __IO uint32_t RESERVED3[(0x90 - 0x2C) / 4 - 1]; + __IO uint32_t STCR; /*!< FLASH sleep time config register, Address offset: 0x90 */ + __IO uint32_t RESERVED4[(0x100 - 0x90) / 4 - 1]; + __IO uint32_t TS0; /*!< FLASH TS0 register, Address offset: 0x100 */ + __IO uint32_t TS1; /*!< FLASH TS1 register, Address offset: 0x104 */ + __IO uint32_t TS2P; /*!< FLASH TS2P register, Address offset: 0x108 */ + __IO uint32_t TPS3; /*!< FLASH TPS3 register, Address offset: 0x10C */ + __IO uint32_t TS3; /*!< FLASH TS3 register, Address offset: 0x110 */ + __IO uint32_t PERTPE; /*!< FLASH PERTPE register, Address offset: 0x114 */ + __IO uint32_t SMERTPE; /*!< FLASH SMERTPE register, Address offset: 0x118 */ + __IO uint32_t PRGTPE; /*!< FLASH PRGTPE register, Address offset: 0x11C */ + __IO uint32_t PRETPE; /*!< FLASH PRETPE register, Address offset: 0x120 */ +} FLASH_TypeDef; + +/** + * @brief Option Bytes + */ +typedef struct +{ + __IO uint8_t RDP; /*!< FLASH option byte Read protection, Address offset: 0x00 */ + __IO uint8_t USER; /*!< FLASH option byte user options, Address offset: 0x01 */ + __IO uint8_t nRDP; /*!< Complemented FLASH option byte Read protection,Address offset: 0x02 */ + __IO uint8_t nUSER; /*!< Complemented FLASH option byte user options, Address offset: 0x03 */ + __IO uint8_t SDK_STRT; /*!< SDK area start address(stored in SDK[4:0]), Address offset: 0x04 */ + __IO uint8_t SDK_END; /*!< SDK area end address(stored in SDK[12:8]), Address offset: 0x05 */ + __IO uint8_t nSDK_STRT; /*!< Complemented SDK area start address, Address offset: 0x06 */ + __IO uint8_t nSDK_END; /*!< Complemented SDK area end address, Address offset: 0x07 */ + uint32_t RESERVED1; /*!< RESERVED1, Address offset: 0x08 */ + __IO uint16_t WRP; /*!< FLASH option byte write protection, Address offset: 0x0C */ + __IO uint16_t nWRP; /*!< Complemented FLASH option byte write protection,Address offset: 0x0E */ +} OB_TypeDef; + +/** + * @brief General Purpose I/O + */ +typedef struct +{ + __IO uint32_t MODER; /*!< GPIO port mode register, Address offset: 0x00 */ + __IO uint32_t OTYPER; /*!< GPIO port output type register, Address offset: 0x04 */ + __IO uint32_t OSPEEDR; /*!< GPIO port output speed register, Address offset: 0x08 */ + __IO uint32_t PUPDR; /*!< GPIO port pull-up/pull-down register, Address offset: 0x0C */ + __IO uint32_t IDR; /*!< GPIO port input data register, Address offset: 0x10 */ + __IO uint32_t ODR; /*!< GPIO port output data register, Address offset: 0x14 */ + __IO uint32_t BSRR; /*!< GPIO port bit set/reset register, Address offset: 0x18 */ + __IO uint32_t LCKR; /*!< GPIO port configuration lock register, Address offset: 0x1C */ + __IO uint32_t AFR[2]; /*!< GPIO alternate function registers, Address offset: 0x20-0x24 */ + __IO uint32_t BRR; /*!< GPIO Bit Reset register, Address offset: 0x28 */ +} GPIO_TypeDef; + +/** + * @brief Inter-integrated Circuit Interface + */ +typedef struct +{ + __IO uint32_t CR1; + __IO uint32_t CR2; + __IO uint32_t OAR1; + __IO uint32_t OAR2; + __IO uint32_t DR; + __IO uint32_t SR1; + __IO uint32_t SR2; + __IO uint32_t CCR; + __IO uint32_t TRISE; +} I2C_TypeDef; + +/** + * @brief Independent WATCHDOG + */ +typedef struct +{ + __IO uint32_t KR; /*!< IWDG Key register, Address offset: 0x00 */ + __IO uint32_t PR; /*!< IWDG Prescaler register, Address offset: 0x04 */ + __IO uint32_t RLR; /*!< IWDG Reload register, Address offset: 0x08 */ + __IO uint32_t SR; /*!< IWDG Status register, Address offset: 0x0C */ + //__IO uint32_t WINR; /*!< IWDG Window register, Address offset: 0x10 */ +} IWDG_TypeDef; + +/** + * @brief LPTIMER + */ +typedef struct +{ + __IO uint32_t ISR; /*!< LPTIM Interrupt and Status register, Address offset: 0x00 */ + __IO uint32_t ICR; /*!< LPTIM Interrupt Clear register, Address offset: 0x04 */ + __IO uint32_t IER; /*!< LPTIM Interrupt Enable register, Address offset: 0x08 */ + __IO uint32_t CFGR; /*!< LPTIM Configuration register, Address offset: 0x0C */ + __IO uint32_t CR; /*!< LPTIM Control register, Address offset: 0x10 */ + __IO uint32_t RESERVED1; /*!< RESERVED1, Address offset: 0x14 */ + __IO uint32_t ARR; /*!< LPTIM Autoreload register, Address offset: 0x18 */ + __IO uint32_t CNT; /*!< LPTIM Counter register, Address offset: 0x1C */ +} LPTIM_TypeDef; + +/** + * @brief Power Control + */ +typedef struct +{ + __IO uint32_t CR1; /*!< PWR Power Control Register 1, Address offset: 0x00 */ + __IO uint32_t CR2; /*!< PWR Power Control Register 2, Address offset: 0x04 */ +} PWR_TypeDef; + +/** + * @brief Reset and Clock Control + */ +typedef struct +{ + __IO uint32_t CR; /*!< RCC Clock Sources Control Register, Address offset: 0x00 */ + __IO uint32_t ICSCR; /*!< RCC Internal Clock Sources Calibration Register, Address offset: 0x04 */ + __IO uint32_t CFGR; /*!< RCC Regulated Domain Clocks Configuration Register, Address offset: 0x08 */ + __IO uint32_t RESERVED0; /*!< Reserved, Address offset: 0x0C */ + __IO uint32_t ECSCR; /*!< RCC External clock source control register, Address offset: 0x10 */ + __IO uint32_t RESERVED1; /*!< Reserved, Address offset: 0x14 */ + __IO uint32_t CIER; /*!< RCC Clock Interrupt Enable Register, Address offset: 0x18 */ + __IO uint32_t CIFR; /*!< RCC Clock Interrupt Flag Register, Address offset: 0x1C */ + __IO uint32_t CICR; /*!< RCC Clock Interrupt Clear Register, Address offset: 0x20 */ + __IO uint32_t IOPRSTR; /*!< RCC IO port reset register, Address offset: 0x24 */ + __IO uint32_t AHBRSTR; /*!< RCC AHB peripherals reset register, Address offset: 0x28 */ + __IO uint32_t APBRSTR1; /*!< RCC APB peripherals reset register 1, Address offset: 0x2C */ + __IO uint32_t APBRSTR2; /*!< RCC APB peripherals reset register 2, Address offset: 0x30 */ + __IO uint32_t IOPENR; /*!< RCC IO port enable register, Address offset: 0x34 */ + __IO uint32_t AHBENR; /*!< RCC AHB peripherals clock enable register, Address offset: 0x38 */ + __IO uint32_t APBENR1; /*!< RCC APB peripherals clock enable register1, Address offset: 0x3C */ + __IO uint32_t APBENR2; /*!< RCC APB peripherals clock enable register2, Address offset: 0x40 */ + __IO uint32_t RESERVED2[4];/*!< Reserved, Address offset: 0x44-0x50 */ + __IO uint32_t CCIPR; /*!< RCC Peripherals Independent Clocks Configuration Register, Address offset: 0x54 */ + __IO uint32_t RESERVED3; /*!< Reserved, Address offset: 0x58 */ + __IO uint32_t BDCR; /*!< RCC Backup Domain Control Register, Address offset: 0x5C */ + __IO uint32_t CSR; /*!< RCC Unregulated Domain Clock Control and Status Register, Address offset: 0x60 */ +} RCC_TypeDef; + +/** + * @brief Serial Peripheral Interface + */ +typedef struct +{ + __IO uint32_t CR1; /*!< SPI desc CR1, Address offset: 0x00 */ + __IO uint32_t CR2; /*!< SPI desc CR2, Address offset: 0x04 */ + __IO uint32_t SR; /*!< SPI desc SR, Address offset: 0x08 */ + __IO uint32_t DR; /*!< SPI desc DR, Address offset: 0x0C */ + // __IO uint32_t CRCPR; /*!< SPI desc CRCPR, Address offset: 0x10 */ + // __IO uint32_t RXCRCR; /*!< SPI desc RXCRCR, Address offset: 0x14 */ + // __IO uint32_t TXCRCR; /*!< SPI desc TXCRCR, Address offset: 0x18 */ + // __IO uint32_t I2SCFGR; /*!< SPI desc I2SCFGR, Address offset: 0x1C */ + // __IO uint32_t I2SPR; /*!< SPI desc I2SPR, Address offset: 0x20 */ +} SPI_TypeDef; + +/** + * @brief System configuration controller + */ +typedef struct +{ + __IO uint32_t CFGR1; /*!< SYSCFG configuration register 1, Address offset: 0x00 */ + __IO uint32_t RESERVED1[5]; /*!< Reserved, Address offset: 0x04 - 0x14 */ + __IO uint32_t CFGR2; /*!< SYSCFG configuration register 2, Address offset: 0x18 */ + __IO uint32_t GPIO_ENS; /*!< GPIO Filter Enable, Address offset: 0x1C */ +} SYSCFG_TypeDef; + +/** + * @brief TIM + */ +typedef struct +{ + __IO uint32_t CR1; /*!< TIM control register 1, Address offset: 0x00 */ + __IO uint32_t CR2; /*!< TIM control register 2, Address offset: 0x04 */ + __IO uint32_t SMCR; /*!< TIM slave mode control register, Address offset: 0x08 */ + __IO uint32_t DIER; /*!< TIM DMA/interrupt enable register, Address offset: 0x0C */ + __IO uint32_t SR; /*!< TIM status register, Address offset: 0x10 */ + __IO uint32_t EGR; /*!< TIM event generation register, Address offset: 0x14 */ + __IO uint32_t CCMR1; /*!< TIM capture/compare mode register 1, Address offset: 0x18 */ + __IO uint32_t CCMR2; /*!< TIM capture/compare mode register 2, Address offset: 0x1C */ + __IO uint32_t CCER; /*!< TIM capture/compare enable register, Address offset: 0x20 */ + __IO uint32_t CNT; /*!< TIM counter register, Address offset: 0x24 */ + __IO uint32_t PSC; /*!< TIM prescaler register, Address offset: 0x28 */ + __IO uint32_t ARR; /*!< TIM auto-reload register, Address offset: 0x2C */ + __IO uint32_t RCR; /*!< TIM repetition counter register, Address offset: 0x30 */ + __IO uint32_t CCR1; /*!< TIM capture/compare register 1, Address offset: 0x34 */ + __IO uint32_t CCR2; /*!< TIM capture/compare register 2, Address offset: 0x38 */ + __IO uint32_t CCR3; /*!< TIM capture/compare register 3, Address offset: 0x3C */ + __IO uint32_t CCR4; /*!< TIM capture/compare register 4, Address offset: 0x40 */ + __IO uint32_t BDTR; /*!< TIM break and dead-time register, Address offset: 0x44 */ +// __IO uint32_t RESERVED[2]; /*!< Reserved, Address offset: 0x48 - 0x4F */ +// __IO uint32_t OR; /*!< TIM option register, Address offset: 0x50 */ +} TIM_TypeDef; + +/** + * @brief Universal Synchronous Asynchronous Receiver Transmitter + */ +typedef struct +{ + __IO uint32_t SR; /*!< USART Status register , Address offset: 0x00 */ + __IO uint32_t DR; /*!< USART Data register, Address offset: 0x04 */ + __IO uint32_t BRR; /*!< USART Baud rate register, Address offset: 0x08 */ + __IO uint32_t CR1; /*!< USART Control register 1, Address offset: 0x0C */ + __IO uint32_t CR2; /*!< USART Control register 2, Address offset: 0x10 */ + __IO uint32_t CR3; /*!< USART Control register 3, Address offset: 0x14 */ +} USART_TypeDef; + +/** @addtogroup Peripheral_memory_map + * @{ + */ +#define FLASH_BASE (0x08000000UL) /*!< FLASH base address */ +#define FLASH_END (0x08004FFFUL) /*!< FLASH end address */ +#define FLASH_SIZE (FLASH_END - FLASH_BASE + 1) +#define FLASH_PAGE_SIZE 0x00000080U /*!< FLASH Page Size, 128 Bytes */ +#define FLASH_PAGE_NB (FLASH_SIZE / FLASH_PAGE_SIZE) +#define FLASH_SECTOR_SIZE 0x00001000U /*!< FLASH Sector Size, 4096 Bytes */ +#define FLASH_SECTOR_NB (FLASH_SIZE / FLASH_SECTOR_SIZE) +#define SRAM_BASE (0x20000000UL) /*!< SRAM base address */ +#define SRAM_END (0x20000BFFUL) /*!< SRAM end address */ +#define PERIPH_BASE (0x40000000UL) /*!< Peripheral base address */ +#define IOPORT_BASE (0x50000000UL) /*!< IOPORT base address */ + +/*!< Peripheral memory map */ +#define APBPERIPH_BASE (PERIPH_BASE) +#define AHBPERIPH_BASE (PERIPH_BASE + 0x00020000UL) + +/*!< APB peripherals */ +#define TIM6_BASE (APBPERIPH_BASE + 0x00001000UL) +#define IWDG_BASE (APBPERIPH_BASE + 0x00003000UL) +#define I2C_BASE (APBPERIPH_BASE + 0x00005400UL) +#define PWR_BASE (APBPERIPH_BASE + 0x00007000UL) +#define LPTIM_BASE (APBPERIPH_BASE + 0x00007C00UL) +#define SYSCFG_BASE (APBPERIPH_BASE + 0x00010000UL) +#define ADC1_BASE (APBPERIPH_BASE + 0x00012400UL) +#define ADC_BASE (APBPERIPH_BASE + 0x00012708UL) +#define TIM1_BASE (APBPERIPH_BASE + 0x00012C00UL) +#define SPI1_BASE (APBPERIPH_BASE + 0x00013000UL) +#define USART1_BASE (APBPERIPH_BASE + 0x00013800UL) +#define DBGMCU_BASE (APBPERIPH_BASE + 0x00015800UL) + + +/*!< AHB peripherals */ +#define RCC_BASE (AHBPERIPH_BASE + 0x00001000UL) +#define EXTI_BASE (AHBPERIPH_BASE + 0x00001800UL) +#define FLASH_R_BASE (AHBPERIPH_BASE + 0x00002000UL) /*!< FLASH registers base address */ +#define OB_BASE 0x1FFF0E80UL /*!< FLASH Option Bytes base address */ +#define FLASHSIZE_BASE 0x1FFF0FFCUL /*!< FLASH Size register base address */ +#define UID_BASE 0x1FFF0E00UL /*!< Unique device ID register base address */ +#define CRC_BASE (AHBPERIPH_BASE + 0x00003000UL) + +/*!< IOPORT */ +#define GPIOA_BASE (IOPORT_BASE + 0x00000000UL) +#define GPIOB_BASE (IOPORT_BASE + 0x00000400UL) +#define GPIOC_BASE (IOPORT_BASE + 0x00000800UL) + +/** + * @} + */ + +/** @addtogroup Peripheral_declaration + * @{ + */ +#define TIM6 ((TIM_TypeDef *) TIM6_BASE) +#define IWDG ((IWDG_TypeDef *) IWDG_BASE) +#define I2C1 ((I2C_TypeDef *) I2C_BASE) +#define I2C ((I2C_TypeDef *) I2C_BASE) /* Kept for legacy purpose */ +#define PWR ((PWR_TypeDef *) PWR_BASE) +#define LPTIM1 ((LPTIM_TypeDef *) LPTIM_BASE) +#define LPTIM ((LPTIM_TypeDef *) LPTIM_BASE) /* Kept for legacy purpose */ +#define SYSCFG ((SYSCFG_TypeDef *) SYSCFG_BASE) +#define ADC1 ((ADC_TypeDef *) ADC1_BASE) +#define ADC1_COMMON ((ADC_Common_TypeDef *) ADC_BASE) +#define ADC ((ADC_Common_TypeDef *) ADC_BASE) /* Kept for legacy purpose */ +#define TIM1 ((TIM_TypeDef *) TIM1_BASE) +#define SPI1 ((SPI_TypeDef *) SPI1_BASE) +#define USART1 ((USART_TypeDef *) USART1_BASE) +#define DBGMCU ((DBGMCU_TypeDef *) DBGMCU_BASE) +#define RCC ((RCC_TypeDef *) RCC_BASE) +#define EXTI ((EXTI_TypeDef *) EXTI_BASE) +#define FLASH ((FLASH_TypeDef *) FLASH_R_BASE) +#define OB ((OB_TypeDef *) OB_BASE) +#define CRC ((CRC_TypeDef *) CRC_BASE) +#define GPIOA ((GPIO_TypeDef *) GPIOA_BASE) +#define GPIOB ((GPIO_TypeDef *) GPIOB_BASE) +#define GPIOC ((GPIO_TypeDef *) GPIOC_BASE) + +/** + * @} + */ + +/** @addtogroup Exported_constants + * @{ + */ + +/** @addtogroup Peripheral_Registers_Bits_Definition +* @{ +*/ + +/******************************************************************************/ +/* Peripheral Registers Bits Definition */ +/******************************************************************************/ + +/******************************************************************************/ +/* */ +/* Analog to Digital Converter (ADC) */ +/* */ +/******************************************************************************/ +/******************** Bits definition for ADC_ISR register ******************/ +#define ADC_ISR_EOSMP_Pos (1U) +#define ADC_ISR_EOSMP_Msk (0x1UL << ADC_ISR_EOSMP_Pos) /*!< 0x00000002 */ +#define ADC_ISR_EOSMP ADC_ISR_EOSMP_Msk /*!< ADC group regular end of sampling flag */ +#define ADC_ISR_EOC_Pos (2U) +#define ADC_ISR_EOC_Msk (0x1UL << ADC_ISR_EOC_Pos) /*!< 0x00000004 */ +#define ADC_ISR_EOC ADC_ISR_EOC_Msk /*!< ADC group regular end of unitary conversion flag */ +#define ADC_ISR_EOSEQ_Pos (3U) +#define ADC_ISR_EOSEQ_Msk (0x1UL << ADC_ISR_EOSEQ_Pos) /*!< 0x00000008 */ +#define ADC_ISR_EOSEQ ADC_ISR_EOSEQ_Msk /*!< ADC group regular end of sequence conversions flag */ +#define ADC_ISR_OVR_Pos (4U) +#define ADC_ISR_OVR_Msk (0x1UL << ADC_ISR_OVR_Pos) /*!< 0x00000010 */ +#define ADC_ISR_OVR ADC_ISR_OVR_Msk /*!< ADC group regular overrun flag */ +#define ADC_ISR_AWD_Pos (7U) +#define ADC_ISR_AWD_Msk (0x1UL << ADC_ISR_AWD_Pos) /*!< 0x00000080 */ +#define ADC_ISR_AWD ADC_ISR_AWD_Msk /*!< ADC analog watchdog 1 flag */ + +/******************** Bits definition for ADC_IER register ******************/ +#define ADC_IER_EOSMPIE_Pos (1U) +#define ADC_IER_EOSMPIE_Msk (0x1UL << ADC_IER_EOSMPIE_Pos) /*!< 0x00000002 */ +#define ADC_IER_EOSMPIE ADC_IER_EOSMPIE_Msk /*!< ADC group regular end of sampling interrupt */ +#define ADC_IER_EOCIE_Pos (2U) +#define ADC_IER_EOCIE_Msk (0x1UL << ADC_IER_EOCIE_Pos) /*!< 0x00000004 */ +#define ADC_IER_EOCIE ADC_IER_EOCIE_Msk /*!< ADC group regular end of unitary conversion interrupt */ +#define ADC_IER_EOSEQIE_Pos (3U) +#define ADC_IER_EOSEQIE_Msk (0x1UL << ADC_IER_EOSEQIE_Pos) /*!< 0x00000008 */ +#define ADC_IER_EOSEQIE ADC_IER_EOSEQIE_Msk /*!< ADC group regular end of sequence conversions interrupt */ +#define ADC_IER_OVRIE_Pos (4U) +#define ADC_IER_OVRIE_Msk (0x1UL << ADC_IER_OVRIE_Pos) /*!< 0x00000010 */ +#define ADC_IER_OVRIE ADC_IER_OVRIE_Msk /*!< ADC group regular overrun interrupt */ +#define ADC_IER_AWDIE_Pos (7U) +#define ADC_IER_AWDIE_Msk (0x1UL << ADC_IER_AWDIE_Pos) /*!< 0x00000080 */ +#define ADC_IER_AWDIE ADC_IER_AWDIE_Msk /*!< ADC analog watchdog 1 interrupt */ + +/******************** Bits definition for ADC_CR register *******************/ +#define ADC_CR_ADEN_Pos (0U) +#define ADC_CR_ADEN_Msk (0x1UL << ADC_CR_ADEN_Pos) /*!< 0x00000001 */ +#define ADC_CR_ADEN ADC_CR_ADEN_Msk /*!< ADC enable */ +#define ADC_CR_ADDIS_Pos (1U) +#define ADC_CR_ADDIS_Msk (0x1UL << ADC_CR_ADDIS_Pos) /*!< 0x00000002 */ +#define ADC_CR_ADDIS ADC_CR_ADDIS_Msk +#define ADC_CR_ADSTART_Pos (2U) +#define ADC_CR_ADSTART_Msk (0x1UL << ADC_CR_ADSTART_Pos) /*!< 0x00000004 */ +#define ADC_CR_ADSTART ADC_CR_ADSTART_Msk /*!< ADC group regular conversion start */ +#define ADC_CR_ADSTP_Pos (4U) +#define ADC_CR_ADSTP_Msk (0x1UL << ADC_CR_ADSTP_Pos) /*!< 0x00000010 */ +#define ADC_CR_ADSTP ADC_CR_ADSTP_Msk /*!< ADC group regular conversion stop */ +#define ADC_CR_VREF_BUFFERE_Pos (5U) +#define ADC_CR_VREF_BUFFERE_Msk (0x1UL << ADC_CR_VREF_BUFFERE_Pos) /*!< 0x00000020 */ +#define ADC_CR_VREF_BUFFERE ADC_CR_VREF_BUFFERE_Msk /*!< ADC group regular conversion stop */ +#define ADC_CR_VERBUFF_SEL_Pos (6U) +#define ADC_CR_VERBUFF_SEL_Msk (0x3UL << ADC_CR_VERBUFF_SEL_Pos) /*!< 0x000000C0 */ +#define ADC_CR_VERBUFF_SEL ADC_CR_VERBUFF_SEL_Msk /*!< ADC group regular conversion stop */ +#define ADC_CR_ADCAL_Pos (31U) +#define ADC_CR_ADCAL_Msk (0x1UL << ADC_CR_VREF_BUFFERE_Pos) /*!< 0x80000000 */ +#define ADC_CR_ADCAL ADC_CR_ADCAL_Msk /*!< ADC calibration */ + +/******************* Bits definition for ADC_CFGR1 register *****************/ +#define ADC_CFGR1_SCANDIR_Pos (2U) +#define ADC_CFGR1_SCANDIR_Msk (0x1UL << ADC_CFGR1_SCANDIR_Pos) /*!< 0x00000004 */ +#define ADC_CFGR1_SCANDIR ADC_CFGR1_SCANDIR_Msk /*!< ADC group regular sequencer scan direction */ +#define ADC_CFGR1_RESSEL_Pos (3U) +#define ADC_CFGR1_RESSEL_Msk (0x3UL << ADC_CFGR1_RESSEL_Pos) /*!< 0x00000018 */ +#define ADC_CFGR1_RESSEL ADC_CFGR1_RESSEL_Msk /*!< ADC data resolution */ +#define ADC_CFGR1_RESSEL_0 (0x1UL << ADC_CFGR1_RESSEL_Pos) /*!< 0x00000008 */ +#define ADC_CFGR1_RESSEL_1 (0x2UL << ADC_CFGR1_RESSEL_Pos) /*!< 0x00000010 */ +#define ADC_CFGR1_ALIGN_Pos (5U) +#define ADC_CFGR1_ALIGN_Msk (0x1UL << ADC_CFGR1_ALIGN_Pos) /*!< 0x00000020 */ +#define ADC_CFGR1_ALIGN ADC_CFGR1_ALIGN_Msk /*!< ADC data alignement */ +#define ADC_CFGR1_EXTSEL_Pos (6U) +#define ADC_CFGR1_EXTSEL_Msk (0x7UL << ADC_CFGR1_EXTSEL_Pos) /*!< 0x000001C0 */ +#define ADC_CFGR1_EXTSEL ADC_CFGR1_EXTSEL_Msk /*!< ADC group regular external trigger source */ +#define ADC_CFGR1_EXTSEL_0 (0x1UL << ADC_CFGR1_EXTSEL_Pos) /*!< 0x00000040 */ +#define ADC_CFGR1_EXTSEL_1 (0x2UL << ADC_CFGR1_EXTSEL_Pos) /*!< 0x00000080 */ +#define ADC_CFGR1_EXTSEL_2 (0x4UL << ADC_CFGR1_EXTSEL_Pos) /*!< 0x00000100 */ +#define ADC_CFGR1_EXTEN_Pos (10U) +#define ADC_CFGR1_EXTEN_Msk (0x3UL << ADC_CFGR1_EXTEN_Pos) /*!< 0x00000C00 */ +#define ADC_CFGR1_EXTEN ADC_CFGR1_EXTEN_Msk /*!< ADC group regular external trigger polarity */ +#define ADC_CFGR1_EXTEN_0 (0x1UL << ADC_CFGR1_EXTEN_Pos) /*!< 0x00000400 */ +#define ADC_CFGR1_EXTEN_1 (0x2UL << ADC_CFGR1_EXTEN_Pos) /*!< 0x00000800 */ +#define ADC_CFGR1_OVRMOD_Pos (12U) +#define ADC_CFGR1_OVRMOD_Msk (0x1UL << ADC_CFGR1_OVRMOD_Pos) /*!< 0x00001000 */ +#define ADC_CFGR1_OVRMOD ADC_CFGR1_OVRMOD_Msk /*!< ADC group regular overrun configuration */ +#define ADC_CFGR1_CONT_Pos (13U) +#define ADC_CFGR1_CONT_Msk (0x1UL << ADC_CFGR1_CONT_Pos) /*!< 0x00002000 */ +#define ADC_CFGR1_CONT ADC_CFGR1_CONT_Msk /*!< ADC group regular continuous conversion mode */ +#define ADC_CFGR1_WAIT_Pos (14U) +#define ADC_CFGR1_WAIT_Msk (0x1UL << ADC_CFGR1_WAIT_Pos) /*!< 0x00004000 */ +#define ADC_CFGR1_WAIT ADC_CFGR1_WAIT_Msk /*!< ADC low power auto wait */ +#define ADC_CFGR1_DISCEN_Pos (16U) +#define ADC_CFGR1_DISCEN_Msk (0x1UL << ADC_CFGR1_DISCEN_Pos) /*!< 0x00010000 */ +#define ADC_CFGR1_DISCEN ADC_CFGR1_DISCEN_Msk /*!< ADC group regular sequencer discontinuous mode */ +#define ADC_CFGR1_AWDSGL_Pos (22U) +#define ADC_CFGR1_AWDSGL_Msk (0x1UL << ADC_CFGR1_AWDSGL_Pos) /*!< 0x00400000 */ +#define ADC_CFGR1_AWDSGL ADC_CFGR1_AWDSGL_Msk /*!< ADC analog watchdog 1 monitoring a single channel or all channels */ +#define ADC_CFGR1_AWDEN_Pos (23U) +#define ADC_CFGR1_AWDEN_Msk (0x1UL << ADC_CFGR1_AWDEN_Pos) /*!< 0x00800000 */ +#define ADC_CFGR1_AWDEN ADC_CFGR1_AWDEN_Msk /*!< ADC analog watchdog 1 enable on scope ADC group regular */ +#define ADC_CFGR1_AWDCH_Pos (26U) +#define ADC_CFGR1_AWDCH_Msk (0xFUL << ADC_CFGR1_AWDCH_Pos) /*!< 0x2C000000 */ +#define ADC_CFGR1_AWDCH ADC_CFGR1_AWDCH_Msk /*!< ADC analog watchdog 1 monitored channel selection */ +#define ADC_CFGR1_AWDCH_0 (0x01UL << ADC_CFGR1_AWDCH_Pos) /*!< 0x04000000 */ +#define ADC_CFGR1_AWDCH_1 (0x02UL << ADC_CFGR1_AWDCH_Pos) /*!< 0x08000000 */ +#define ADC_CFGR1_AWDCH_2 (0x04UL << ADC_CFGR1_AWDCH_Pos) /*!< 0x10000000 */ +#define ADC_CFGR1_AWDCH_3 (0x08UL << ADC_CFGR1_AWDCH_Pos) /*!< 0x20000000 */ + +/******************* Bits definition for ADC_CFGR2 register *****************/ +#define ADC_CFGR2_CKMODE_Pos (28U) +#define ADC_CFGR2_CKMODE_Msk (0xFUL << ADC_CFGR2_CKMODE_Pos) /*!< 0xC0000000 */ +#define ADC_CFGR2_CKMODE ADC_CFGR2_CKMODE_Msk /*!< ADC clock source and prescaler (prescaler only for clock source synchronous) */ +#define ADC_CFGR2_CKMODE_0 (0x1UL << ADC_CFGR2_CKMODE_Pos) /*!< 0x10000000 */ +#define ADC_CFGR2_CKMODE_1 (0x2UL << ADC_CFGR2_CKMODE_Pos) /*!< 0x20000000 */ +#define ADC_CFGR2_CKMODE_2 (0x4UL << ADC_CFGR2_CKMODE_Pos) /*!< 0x40000000 */ +#define ADC_CFGR2_CKMODE_3 (0x8UL << ADC_CFGR2_CKMODE_Pos) /*!< 0x80000000 */ + +/****************** Bit definition for ADC_SMPR register ********************/ +#define ADC_SMPR_SMP_Pos (0U) +#define ADC_SMPR_SMP_Msk (0x7UL << ADC_SMPR_SMP_Pos) /*!< 0x00000007 */ +#define ADC_SMPR_SMP ADC_SMPR_SMP_Msk /*!< ADC group of channels sampling time 2 */ +#define ADC_SMPR_SMP_0 (0x1UL << ADC_SMPR_SMP_Pos) /*!< 0x00000001 */ +#define ADC_SMPR_SMP_1 (0x2UL << ADC_SMPR_SMP_Pos) /*!< 0x00000002 */ +#define ADC_SMPR_SMP_2 (0x4UL << ADC_SMPR_SMP_Pos) /*!< 0x00000004 */ + +/******************* Bit definition for ADC_TR register ********************/ +#define ADC_TR_LT_Pos (0U) +#define ADC_TR_LT_Msk (0xFFFUL << ADC_TR_LT_Pos) /*!< 0x00000FFF */ +#define ADC_TR_LT ADC_TR_LT_Msk /*!< ADC analog watchdog 1 threshold low */ +#define ADC_TR_LT_0 (0x001UL << ADC_TR_LT_Pos) /*!< 0x00000001 */ +#define ADC_TR_LT_1 (0x002UL << ADC_TR_LT_Pos) /*!< 0x00000002 */ +#define ADC_TR_LT_2 (0x004UL << ADC_TR_LT_Pos) /*!< 0x00000004 */ +#define ADC_TR_LT_3 (0x008UL << ADC_TR_LT_Pos) /*!< 0x00000008 */ +#define ADC_TR_LT_4 (0x010UL << ADC_TR_LT_Pos) /*!< 0x00000010 */ +#define ADC_TR_LT_5 (0x020UL << ADC_TR_LT_Pos) /*!< 0x00000020 */ +#define ADC_TR_LT_6 (0x040UL << ADC_TR_LT_Pos) /*!< 0x00000040 */ +#define ADC_TR_LT_7 (0x080UL << ADC_TR_LT_Pos) /*!< 0x00000080 */ +#define ADC_TR_LT_8 (0x100UL << ADC_TR_LT_Pos) /*!< 0x00000100 */ +#define ADC_TR_LT_9 (0x200UL << ADC_TR_LT_Pos) /*!< 0x00000200 */ +#define ADC_TR_LT_10 (0x400UL << ADC_TR_LT_Pos) /*!< 0x00000400 */ +#define ADC_TR_LT_11 (0x800UL << ADC_TR_LT_Pos) /*!< 0x00000800 */ +#define ADC_TR_HT_Pos (16U) +#define ADC_TR_HT_Msk (0xFFFUL << ADC_TR_HT_Pos) /*!< 0x0FFF0000 */ +#define ADC_TR_HT ADC_TR_HT_Msk /*!< ADC Analog watchdog 1 threshold high */ +#define ADC_TR_HT_0 (0x001UL << ADC_TR_HT_Pos) /*!< 0x00010000 */ +#define ADC_TR_HT_1 (0x002UL << ADC_TR_HT_Pos) /*!< 0x00020000 */ +#define ADC_TR_HT_2 (0x004UL << ADC_TR_HT_Pos) /*!< 0x00040000 */ +#define ADC_TR_HT_3 (0x008UL << ADC_TR_HT_Pos) /*!< 0x00080000 */ +#define ADC_TR_HT_4 (0x010UL << ADC_TR_HT_Pos) /*!< 0x00100000 */ +#define ADC_TR_HT_5 (0x020UL << ADC_TR_HT_Pos) /*!< 0x00200000 */ +#define ADC_TR_HT_6 (0x040UL << ADC_TR_HT_Pos) /*!< 0x00400000 */ +#define ADC_TR_HT_7 (0x080UL << ADC_TR_HT_Pos) /*!< 0x00800000 */ +#define ADC_TR_HT_8 (0x100UL << ADC_TR_HT_Pos) /*!< 0x01000000 */ +#define ADC_TR_HT_9 (0x200UL << ADC_TR_HT_Pos) /*!< 0x02000000 */ +#define ADC_TR_HT_10 (0x400UL << ADC_TR_HT_Pos) /*!< 0x04000000 */ +#define ADC_TR_HT_11 (0x800UL << ADC_TR_HT_Pos) /*!< 0x08000000 */ + +/****************** Bit definition for ADC_CHSELR register ******************/ +#define ADC_CHSELR_CHSEL_Pos (0U) +#define ADC_CHSELR_CHSEL_Msk (0x1BFFUL << ADC_CHSELR_CHSEL_Pos) /*!< 0x00001BFF */ +#define ADC_CHSELR_CHSEL ADC_CHSELR_CHSEL_Msk /*!< ADC group regular sequencer channels, available when ADC_CFGR1_CHSELRMOD is reset */ +#define ADC_CHSELR_CHSEL12_Pos (12U) +#define ADC_CHSELR_CHSEL12_Msk (0x1UL << ADC_CHSELR_CHSEL12_Pos) /*!< 0x00001000 */ +#define ADC_CHSELR_CHSEL12 ADC_CHSELR_CHSEL12_Msk /*!< ADC group regular sequencer channel 12, available when ADC_CFGR1_CHSELRMOD is reset */ +#define ADC_CHSELR_CHSEL11_Pos (11U) +#define ADC_CHSELR_CHSEL11_Msk (0x1UL << ADC_CHSELR_CHSEL11_Pos) /*!< 0x00000800 */ +#define ADC_CHSELR_CHSEL11 ADC_CHSELR_CHSEL11_Msk /*!< ADC group regular sequencer channel 11, available when ADC_CFGR1_CHSELRMOD is reset */ +#define ADC_CHSELR_CHSEL9_Pos (9U) +#define ADC_CHSELR_CHSEL9_Msk (0x1UL << ADC_CHSELR_CHSEL9_Pos) /*!< 0x00000200 */ +#define ADC_CHSELR_CHSEL9 ADC_CHSELR_CHSEL9_Msk /*!< ADC group regular sequencer channel 9, available when ADC_CFGR1_CHSELRMOD is reset */ +#define ADC_CHSELR_CHSEL8_Pos (8U) +#define ADC_CHSELR_CHSEL8_Msk (0x1UL << ADC_CHSELR_CHSEL8_Pos) /*!< 0x00000100 */ +#define ADC_CHSELR_CHSEL8 ADC_CHSELR_CHSEL8_Msk /*!< ADC group regular sequencer channel 8, available when ADC_CFGR1_CHSELRMOD is reset */ +#define ADC_CHSELR_CHSEL7_Pos (7U) +#define ADC_CHSELR_CHSEL7_Msk (0x1UL << ADC_CHSELR_CHSEL7_Pos) /*!< 0x00000080 */ +#define ADC_CHSELR_CHSEL7 ADC_CHSELR_CHSEL7_Msk /*!< ADC group regular sequencer channel 7, available when ADC_CFGR1_CHSELRMOD is reset */ +#define ADC_CHSELR_CHSEL6_Pos (6U) +#define ADC_CHSELR_CHSEL6_Msk (0x1UL << ADC_CHSELR_CHSEL6_Pos) /*!< 0x00000040 */ +#define ADC_CHSELR_CHSEL6 ADC_CHSELR_CHSEL6_Msk /*!< ADC group regular sequencer channel 6, available when ADC_CFGR1_CHSELRMOD is reset */ +#define ADC_CHSELR_CHSEL5_Pos (5U) +#define ADC_CHSELR_CHSEL5_Msk (0x1UL << ADC_CHSELR_CHSEL5_Pos) /*!< 0x00000020 */ +#define ADC_CHSELR_CHSEL5 ADC_CHSELR_CHSEL5_Msk /*!< ADC group regular sequencer channel 5, available when ADC_CFGR1_CHSELRMOD is reset */ +#define ADC_CHSELR_CHSEL4_Pos (4U) +#define ADC_CHSELR_CHSEL4_Msk (0x1UL << ADC_CHSELR_CHSEL4_Pos) /*!< 0x00000010 */ +#define ADC_CHSELR_CHSEL4 ADC_CHSELR_CHSEL4_Msk /*!< ADC group regular sequencer channel 4, available when ADC_CFGR1_CHSELRMOD is reset */ +#define ADC_CHSELR_CHSEL3_Pos (3U) +#define ADC_CHSELR_CHSEL3_Msk (0x1UL << ADC_CHSELR_CHSEL3_Pos) /*!< 0x00000008 */ +#define ADC_CHSELR_CHSEL3 ADC_CHSELR_CHSEL3_Msk /*!< ADC group regular sequencer channel 3, available when ADC_CFGR1_CHSELRMOD is reset */ +#define ADC_CHSELR_CHSEL2_Pos (2U) +#define ADC_CHSELR_CHSEL2_Msk (0x1UL << ADC_CHSELR_CHSEL2_Pos) /*!< 0x00000004 */ +#define ADC_CHSELR_CHSEL2 ADC_CHSELR_CHSEL2_Msk /*!< ADC group regular sequencer channel 2, available when ADC_CFGR1_CHSELRMOD is reset */ +#define ADC_CHSELR_CHSEL1_Pos (1U) +#define ADC_CHSELR_CHSEL1_Msk (0x1UL << ADC_CHSELR_CHSEL1_Pos) /*!< 0x00000002 */ +#define ADC_CHSELR_CHSEL1 ADC_CHSELR_CHSEL1_Msk /*!< ADC group regular sequencer channel 1, available when ADC_CFGR1_CHSELRMOD is reset */ +#define ADC_CHSELR_CHSEL0_Pos (0U) +#define ADC_CHSELR_CHSEL0_Msk (0x1UL << ADC_CHSELR_CHSEL0_Pos) /*!< 0x00000001 */ +#define ADC_CHSELR_CHSEL0 ADC_CHSELR_CHSEL0_Msk /*!< ADC group regular sequencer channel 0, available when ADC_CFGR1_CHSELRMOD is reset */ + +/******************** Bit definition for ADC_DR register ********************/ +#define ADC_DR_DATA_Pos (0U) +#define ADC_DR_DATA_Msk (0xFFFFUL << ADC_DR_DATA_Pos) /*!< 0x0000FFFF */ +#define ADC_DR_DATA ADC_DR_DATA_Msk /*!< ADC group regular conversion data */ +#define ADC_DR_DATA_0 (0x0001UL << ADC_DR_DATA_Pos) /*!< 0x00000001 */ +#define ADC_DR_DATA_1 (0x0002UL << ADC_DR_DATA_Pos) /*!< 0x00000002 */ +#define ADC_DR_DATA_2 (0x0004UL << ADC_DR_DATA_Pos) /*!< 0x00000004 */ +#define ADC_DR_DATA_3 (0x0008UL << ADC_DR_DATA_Pos) /*!< 0x00000008 */ +#define ADC_DR_DATA_4 (0x0010UL << ADC_DR_DATA_Pos) /*!< 0x00000010 */ +#define ADC_DR_DATA_5 (0x0020UL << ADC_DR_DATA_Pos) /*!< 0x00000020 */ +#define ADC_DR_DATA_6 (0x0040UL << ADC_DR_DATA_Pos) /*!< 0x00000040 */ +#define ADC_DR_DATA_7 (0x0080UL << ADC_DR_DATA_Pos) /*!< 0x00000080 */ +#define ADC_DR_DATA_8 (0x0100UL << ADC_DR_DATA_Pos) /*!< 0x00000100 */ +#define ADC_DR_DATA_9 (0x0200UL << ADC_DR_DATA_Pos) /*!< 0x00000200 */ +#define ADC_DR_DATA_10 (0x0400UL << ADC_DR_DATA_Pos) /*!< 0x00000400 */ +#define ADC_DR_DATA_11 (0x0800UL << ADC_DR_DATA_Pos) /*!< 0x00000800 */ +#define ADC_DR_DATA_12 (0x1000UL << ADC_DR_DATA_Pos) /*!< 0x00001000 */ +#define ADC_DR_DATA_13 (0x2000UL << ADC_DR_DATA_Pos) /*!< 0x00002000 */ +#define ADC_DR_DATA_14 (0x4000UL << ADC_DR_DATA_Pos) /*!< 0x00004000 */ +#define ADC_DR_DATA_15 (0x8000UL << ADC_DR_DATA_Pos) /*!< 0x00008000 */ + +/******************** Bit definition for ADC_CCSR register ********************/ +#define ADC_CCSR_CALSEL_Pos (11U) +#define ADC_CCSR_CALSEL_Msk (0x1UL << ADC_CCSR_CALSEL_Pos) /*!< 0x00000800 */ +#define ADC_CCSR_CALSEL ADC_CCSR_CALSEL_Msk /*!< ADC calibration context selection */ +#define ADC_CCSR_CALSMP_Pos (12U) +#define ADC_CCSR_CALSMP_Msk (0x3UL << ADC_CCSR_CALSMP_Pos) /*!< 0x00003000 */ +#define ADC_CCSR_CALSMP ADC_CCSR_CALSMP_Msk /*!< ADC calibration sample time selection */ +#define ADC_CCSR_CALSMP_0 (0x1UL << ADC_CCSR_CALSMP_Pos) /*!< 0x00001000 */ +#define ADC_CCSR_CALSMP_1 (0x2UL << ADC_CCSR_CALSMP_Pos) /*!< 0x00002000 */ +#define ADC_CCSR_CALBYP_Pos (14U) +#define ADC_CCSR_CALBYP_Msk (0x1UL << ADC_CCSR_CALBYP_Pos) /*!< 0x00004000 */ +#define ADC_CCSR_CALBYP ADC_CCSR_CALBYP_Msk +#define ADC_CCSR_CALSET_Pos (15U) +#define ADC_CCSR_CALSET_Msk (0x1UL << ADC_CCSR_CALSET_Pos) /*!< 0x00008000 */ +#define ADC_CCSR_CALSET ADC_CCSR_CALSET_Msk +#define ADC_CCSR_OFFSUC_Pos (29U) +#define ADC_CCSR_OFFSUC_Msk (0x1UL << ADC_CCSR_OFFSUC_Pos) /*!< 0x20000000 */ +#define ADC_CCSR_OFFSUC ADC_CCSR_OFFSUC_Msk +#define ADC_CCSR_CALFAIL_Pos (30U) +#define ADC_CCSR_CALFAIL_Msk (0x1UL << ADC_CCSR_CALFAIL_Pos) /*!< 0x40000000 */ +#define ADC_CCSR_CALFAIL ADC_CCSR_CALFAIL_Msk /*!< ADC calibration fail flag */ +#define ADC_CCSR_CALON_Pos (31U) +#define ADC_CCSR_CALON_Msk (0x1UL << ADC_CCSR_CALON_Pos) /*!< 0x80000000 */ +#define ADC_CCSR_CALON ADC_CCSR_CALON_Msk /*!< ADC calibration flag */ + +/************************* ADC Common registers *****************************/ +/******************* Bit definition for ADC_CCR register ********************/ +#define ADC_CCR_VREFEN_Pos (22U) +#define ADC_CCR_VREFEN_Msk (0x1UL << ADC_CCR_VREFEN_Pos) /*!< 0x00400000 */ +#define ADC_CCR_VREFEN ADC_CCR_VREFEN_Msk /*!< ADC internal path to VrefInt enable */ +#define ADC_CCR_TSEN_Pos (23U) +#define ADC_CCR_TSEN_Msk (0x1UL << ADC_CCR_TSEN_Pos) /*!< 0x00800000 */ +#define ADC_CCR_TSEN ADC_CCR_TSEN_Msk /*!< ADC internal path to temperature sensor enable */ + + +/******************************************************************************/ +/* */ +/* CRC calculation unit (CRC) */ +/* */ +/******************************************************************************/ +/******************* Bit definition for CRC_DR register *********************/ +#define CRC_DR_DR_Pos (0U) +#define CRC_DR_DR_Msk (0xFFFFFFFFUL << CRC_DR_DR_Pos) /*!< 0xFFFFFFFF */ +#define CRC_DR_DR CRC_DR_DR_Msk /*!< Data register bits */ + +/******************* Bit definition for CRC_IDR register ********************/ +#define CRC_IDR_IDR_Pos (0U) +#define CRC_IDR_IDR_Msk (0xFFUL << CRC_IDR_IDR_Pos) /*!< 0xFFFFFFFF */ +#define CRC_IDR_IDR CRC_IDR_IDR_Msk /*!< General-purpose 8-bit data register bits */ + +/******************** Bit definition for CRC_CR register ********************/ +#define CRC_CR_RESET_Pos (0U) +#define CRC_CR_RESET_Msk (0x1UL << CRC_CR_RESET_Pos) /*!< 0x00000001 */ +#define CRC_CR_RESET CRC_CR_RESET_Msk /*!< RESET the CRC computation unit bit */ + +/******************************************************************************/ +/* */ +/* Debug MCU (DBGMCU) */ +/* */ +/******************************************************************************/ +/******************** Bit definition for DBG_IDCODE register *************/ +// #define DBGMCU_IDCODE_DEV_ID_Pos (0U) +// #define DBGMCU_IDCODE_DEV_ID_Msk (0xFFFUL << DBGMCU_IDCODE_DEV_ID_Pos) /*!< 0x00000FFF */ +// #define DBGMCU_IDCODE_DEV_ID DBGMCU_IDCODE_DEV_ID_Msk +#define DBGMCU_IDCODE_REV_ID_Pos (0U) +#define DBGMCU_IDCODE_REV_ID_Msk (0xFFFFFFFFUL << DBGMCU_IDCODE_REV_ID_Pos) /*!< 0xFFFFFFFF */ +#define DBGMCU_IDCODE_REV_ID DBGMCU_IDCODE_REV_ID_Msk + +/******************** Bit definition for DBGMCU_CR register *****************/ +#define DBGMCU_CR_DBG_STOP_Pos (1U) +#define DBGMCU_CR_DBG_STOP_Msk (0x1UL << DBGMCU_CR_DBG_STOP_Pos) /*!< 0x00000002 */ +#define DBGMCU_CR_DBG_STOP DBGMCU_CR_DBG_STOP_Msk + +/******************** Bit definition for DBGMCU_APB_FZ1 register ***********/ +#define DBGMCU_APB_FZ1_DBG_TIM6_STOP_Pos (4U) +#define DBGMCU_APB_FZ1_DBG_TIM6_STOP_Msk (0x1UL << DBGMCU_APB_FZ1_DBG_TIM6_STOP_Pos) /*!< 0x00000010 */ +#define DBGMCU_APB_FZ1_DBG_TIM6_STOP DBGMCU_APB_FZ1_DBG_TIM6_STOP_Msk +#define DBGMCU_APB_FZ1_DBG_IWDG_STOP_Pos (12U) +#define DBGMCU_APB_FZ1_DBG_IWDG_STOP_Msk (0x1UL << DBGMCU_APB_FZ1_DBG_IWDG_STOP_Pos) /*!< 0x00001000 */ +#define DBGMCU_APB_FZ1_DBG_IWDG_STOP DBGMCU_APB_FZ1_DBG_IWDG_STOP_Msk +#define DBGMCU_APB_FZ1_DBG_I2C1_TIMEOUT_Pos (21U) +#define DBGMCU_APB_FZ1_DBG_I2C1_TIMEOUT_Msk (0x1UL << DBGMCU_APB_FZ1_DBG_I2C1_TIMEOUT_Pos) /*!< 0x00200000 */ +#define DBGMCU_APB_FZ1_DBG_I2C1_TIMEOUT DBGMCU_APB_FZ1_DBG_I2C1_TIMEOUT_Msk +#define DBGMCU_APB_FZ1_DBG_LPTIM_STOP_Pos (31U) +#define DBGMCU_APB_FZ1_DBG_LPTIM_STOP_Msk (0x1UL << DBGMCU_APB_FZ1_DBG_LPTIM_STOP_Pos) /*!< 0x80000000 */ +#define DBGMCU_APB_FZ1_DBG_LPTIM_STOP DBGMCU_APB_FZ1_DBG_LPTIM_STOP_Msk + +/******************** Bit definition for DBGMCU_APB_FZ2 register ************/ +#define DBGMCU_APB_FZ2_DBG_TIM1_STOP_Pos (11U) +#define DBGMCU_APB_FZ2_DBG_TIM1_STOP_Msk (0x1UL << DBGMCU_APB_FZ2_DBG_TIM1_STOP_Pos) /*!< 0x00000800 */ +#define DBGMCU_APB_FZ2_DBG_TIM1_STOP DBGMCU_APB_FZ2_DBG_TIM1_STOP_Msk + +/******************************************************************************/ +/* */ +/* External Interrupt/Event Controller (EXTI) */ +/* */ +/******************************************************************************/ +/****************** Bit definition for EXTI_RTSR register ******************/ +#define EXTI_RTSR_RT0_Pos (0U) +#define EXTI_RTSR_RT0_Msk (0x1UL << EXTI_RTSR_RT0_Pos) /*!< 0x00000001 */ +#define EXTI_RTSR_RT0 EXTI_RTSR_RT0_Msk /*!< Rising trigger configuration for input line 0 */ +#define EXTI_RTSR_RT1_Pos (1U) +#define EXTI_RTSR_RT1_Msk (0x1UL << EXTI_RTSR_RT1_Pos) /*!< 0x00000002 */ +#define EXTI_RTSR_RT1 EXTI_RTSR_RT1_Msk /*!< Rising trigger configuration for input line 1 */ +#define EXTI_RTSR_RT2_Pos (2U) +#define EXTI_RTSR_RT2_Msk (0x1UL << EXTI_RTSR_RT2_Pos) /*!< 0x00000004 */ +#define EXTI_RTSR_RT2 EXTI_RTSR_RT2_Msk /*!< Rising trigger configuration for input line 2 */ +#define EXTI_RTSR_RT3_Pos (3U) +#define EXTI_RTSR_RT3_Msk (0x1UL << EXTI_RTSR_RT3_Pos) /*!< 0x00000008 */ +#define EXTI_RTSR_RT3 EXTI_RTSR_RT3_Msk /*!< Rising trigger configuration for input line 3 */ +#define EXTI_RTSR_RT4_Pos (4U) +#define EXTI_RTSR_RT4_Msk (0x1UL << EXTI_RTSR_RT4_Pos) /*!< 0x00000010 */ +#define EXTI_RTSR_RT4 EXTI_RTSR_RT4_Msk /*!< Rising trigger configuration for input line 4 */ +#define EXTI_RTSR_RT5_Pos (5U) +#define EXTI_RTSR_RT5_Msk (0x1UL << EXTI_RTSR_RT5_Pos) /*!< 0x00000020 */ +#define EXTI_RTSR_RT5 EXTI_RTSR_RT5_Msk /*!< Rising trigger configuration for input line 5 */ +#define EXTI_RTSR_RT6_Pos (6U) +#define EXTI_RTSR_RT6_Msk (0x1UL << EXTI_RTSR_RT6_Pos) /*!< 0x00000040 */ +#define EXTI_RTSR_RT6 EXTI_RTSR_RT6_Msk /*!< Rising trigger configuration for input line 6 */ +#define EXTI_RTSR_RT7_Pos (7U) +#define EXTI_RTSR_RT7_Msk (0x1UL << EXTI_RTSR_RT7_Pos) /*!< 0x00000080 */ +#define EXTI_RTSR_RT7 EXTI_RTSR_RT7_Msk /*!< Rising trigger configuration for input line 7 */ + +/****************** Bit definition for EXTI_FTSR register ******************/ +#define EXTI_FTSR_FT0_Pos (0U) +#define EXTI_FTSR_FT0_Msk (0x1UL << EXTI_FTSR_FT0_Pos) /*!< 0x00000001 */ +#define EXTI_FTSR_FT0 EXTI_FTSR_FT0_Msk /*!< Falling trigger configuration for input line 0 */ +#define EXTI_FTSR_FT1_Pos (1U) +#define EXTI_FTSR_FT1_Msk (0x1UL << EXTI_FTSR_FT1_Pos) /*!< 0x00000002 */ +#define EXTI_FTSR_FT1 EXTI_FTSR_FT1_Msk /*!< Falling trigger configuration for input line 1 */ +#define EXTI_FTSR_FT2_Pos (2U) +#define EXTI_FTSR_FT2_Msk (0x1UL << EXTI_FTSR_FT2_Pos) /*!< 0x00000004 */ +#define EXTI_FTSR_FT2 EXTI_FTSR_FT2_Msk /*!< Falling trigger configuration for input line 2 */ +#define EXTI_FTSR_FT3_Pos (3U) +#define EXTI_FTSR_FT3_Msk (0x1UL << EXTI_FTSR_FT3_Pos) /*!< 0x00000008 */ +#define EXTI_FTSR_FT3 EXTI_FTSR_FT3_Msk /*!< Falling trigger configuration for input line 3 */ +#define EXTI_FTSR_FT4_Pos (4U) +#define EXTI_FTSR_FT4_Msk (0x1UL << EXTI_FTSR_FT4_Pos) /*!< 0x00000010 */ +#define EXTI_FTSR_FT4 EXTI_FTSR_FT4_Msk /*!< Falling trigger configuration for input line 4 */ +#define EXTI_FTSR_FT5_Pos (5U) +#define EXTI_FTSR_FT5_Msk (0x1UL << EXTI_FTSR_FT5_Pos) /*!< 0x00000020 */ +#define EXTI_FTSR_FT5 EXTI_FTSR_FT5_Msk /*!< Falling trigger configuration for input line 5 */ +#define EXTI_FTSR_FT6_Pos (6U) +#define EXTI_FTSR_FT6_Msk (0x1UL << EXTI_FTSR_FT6_Pos) /*!< 0x00000040 */ +#define EXTI_FTSR_FT6 EXTI_FTSR_FT6_Msk /*!< Falling trigger configuration for input line 6 */ +#define EXTI_FTSR_FT7_Pos (7U) +#define EXTI_FTSR_FT7_Msk (0x1UL << EXTI_FTSR_FT7_Pos) /*!< 0x00000080 */ +#define EXTI_FTSR_FT7 EXTI_FTSR_FT7_Msk /*!< Falling trigger configuration for input line 7 */ + +/****************** Bit definition for EXTI_SWIER register *****************/ +#define EXTI_SWIER_SWI0_Pos (0U) +#define EXTI_SWIER_SWI0_Msk (0x1UL << EXTI_SWIER_SWI0_Pos) /*!< 0x00000001 */ +#define EXTI_SWIER_SWI0 EXTI_SWIER_SWI0_Msk /*!< Software Interrupt on line 0 */ +#define EXTI_SWIER_SWI1_Pos (1U) +#define EXTI_SWIER_SWI1_Msk (0x1UL << EXTI_SWIER_SWI1_Pos) /*!< 0x00000002 */ +#define EXTI_SWIER_SWI1 EXTI_SWIER_SWI1_Msk /*!< Software Interrupt on line 1 */ +#define EXTI_SWIER_SWI2_Pos (2U) +#define EXTI_SWIER_SWI2_Msk (0x1UL << EXTI_SWIER_SWI2_Pos) /*!< 0x00000004 */ +#define EXTI_SWIER_SWI2 EXTI_SWIER_SWI2_Msk /*!< Software Interrupt on line 2 */ +#define EXTI_SWIER_SWI3_Pos (3U) +#define EXTI_SWIER_SWI3_Msk (0x1UL << EXTI_SWIER_SWI3_Pos) /*!< 0x00000008 */ +#define EXTI_SWIER_SWI3 EXTI_SWIER_SWI3_Msk /*!< Software Interrupt on line 3 */ +#define EXTI_SWIER_SWI4_Pos (4U) +#define EXTI_SWIER_SWI4_Msk (0x1UL << EXTI_SWIER_SWI4_Pos) /*!< 0x00000010 */ +#define EXTI_SWIER_SWI4 EXTI_SWIER_SWI4_Msk /*!< Software Interrupt on line 4 */ +#define EXTI_SWIER_SWI5_Pos (5U) +#define EXTI_SWIER_SWI5_Msk (0x1UL << EXTI_SWIER_SWI5_Pos) /*!< 0x00000020 */ +#define EXTI_SWIER_SWI5 EXTI_SWIER_SWI5_Msk /*!< Software Interrupt on line 5 */ +#define EXTI_SWIER_SWI6_Pos (6U) +#define EXTI_SWIER_SWI6_Msk (0x1UL << EXTI_SWIER_SWI6_Pos) /*!< 0x00000040 */ +#define EXTI_SWIER_SWI6 EXTI_SWIER_SWI6_Msk /*!< Software Interrupt on line 6 */ +#define EXTI_SWIER_SWI7_Pos (7U) +#define EXTI_SWIER_SWI7_Msk (0x1UL << EXTI_SWIER_SWI7_Pos) /*!< 0x00000080 */ +#define EXTI_SWIER_SWI7 EXTI_SWIER_SWI7_Msk /*!< Software Interrupt on line 7 */ + +/******************* Bit definition for EXTI_PR register ******************/ +#define EXTI_PR_PR0_Pos (0U) +#define EXTI_PR_PR0_Msk (0x1UL << EXTI_PR_PR0_Pos) /*!< 0x00000001 */ +#define EXTI_PR_PR0 EXTI_PR_PR0_Msk /*!< Rising Pending Interrupt Flag on line 0 */ +#define EXTI_PR_PR1_Pos (1U) +#define EXTI_PR_PR1_Msk (0x1UL << EXTI_PR_PR1_Pos) /*!< 0x00000002 */ +#define EXTI_PR_PR1 EXTI_PR_PR1_Msk /*!< Rising Pending Interrupt Flag on line 1 */ +#define EXTI_PR_PR2_Pos (2U) +#define EXTI_PR_PR2_Msk (0x1UL << EXTI_PR_PR2_Pos) /*!< 0x00000004 */ +#define EXTI_PR_PR2 EXTI_PR_PR2_Msk /*!< Rising Pending Interrupt Flag on line 2 */ +#define EXTI_PR_PR3_Pos (3U) +#define EXTI_PR_PR3_Msk (0x1UL << EXTI_PR_PR3_Pos) /*!< 0x00000008 */ +#define EXTI_PR_PR3 EXTI_PR_PR3_Msk /*!< Rising Pending Interrupt Flag on line 3 */ +#define EXTI_PR_PR_Pos (4U) +#define EXTI_PR_PR_Msk (0x1UL <
© Copyright (c) Puya Semiconductor Co. + * All rights reserved.
+ * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/** @addtogroup CMSIS_Device + * @{ + */ + +/** @addtogroup py32f072xb + * @{ + */ + +#ifndef __PY32F072XB_H +#define __PY32F072XB_H + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/** @addtogroup Configuration_section_for_CMSIS + * @{ + */ + +/** + * @brief Configuration of the Cortex-M0+ Processor and Core Peripherals + */ +#define __CM0PLUS_REV 0 /*!< Core Revision r0p0 */ +#define __MPU_PRESENT 0 /*!< PY32F0xx do not provide MPU */ +#define __VTOR_PRESENT 1 /*!< Vector Table Register supported */ +#define __NVIC_PRIO_BITS 2 /*!< PY32F0xx uses 2 Bits for the Priority Levels */ +#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ + +/** + * @} + */ + +/** @addtogroup Peripheral_interrupt_number_definition + * @{ + */ + +/** + * @brief PY32F0xx Interrupt Number Definition, according to the selected device + * in @ref Library_configuration_section + */ + +/*!< Interrupt Number Definition */ +typedef enum +{ + /****** Cortex-M0+ Processor Exceptions Numbers ***************************************************************/ + NonMaskableInt_IRQn = -14, /*!< 2 Non Maskable Interrupt */ + HardFault_IRQn = -13, /*!< 3 Cortex-M Hard Fault Interrupt */ + SVC_IRQn = -5, /*!< 11 Cortex-M SV Call Interrupt */ + PendSV_IRQn = -2, /*!< 14 Cortex-M Pend SV Interrupt */ + SysTick_IRQn = -1, /*!< 15 Cortex-M System Tick Interrupt */ + /****** PY32F0 specific Interrupt Numbers *********************************************************************/ + WWDG_IRQn = 0, /*!< Window WatchDog Interrupt */ + PVD_IRQn = 1, /*!< PVD through EXTI Line detection Interrupt(EXTI line 16) */ + RTC_IRQn = 2, /*!< RTC interrupt through the EXTI line 19 */ + FLASH_IRQn = 3, /*!< FLASH global Interrupt */ + RCC_CTC_IRQn = 4, /*!< RCC and CTC global Interrupts */ + EXTI0_1_IRQn = 5, /*!< EXTI 0 and 1 Interrupts */ + EXTI2_3_IRQn = 6, /*!< EXTI Line 2 and 3 Interrupts */ + EXTI4_15_IRQn = 7, /*!< EXTI Line 4 to 15 Interrupts */ + LCD_IRQn = 8, /*!< LCD global Interrupt */ + DMA1_Channel1_IRQn = 9, /*!< DMA1 Channel 1 Interrupt */ + DMA1_Channel2_3_IRQn = 10, /*!< DMA1 Channel 2 and Channel 3 Interrupts */ + DMA1_Channel4_5_6_7_IRQn = 11, /*!< DMA1 Channel 4, 5, 6, 7 Interrupts */ + ADC_COMP_IRQn = 12, /*!< ADC&COMP Interrupts */ + TIM1_BRK_UP_TRG_COM_IRQn = 13, /*!< TIM1 Break, Update, Trigger and Commutation Interrupts */ + TIM1_CC_IRQn = 14, /*!< TIM1 Capture Compare Interrupt */ + TIM2_IRQn = 15, /*!< TIM2 global Interrupt */ + TIM3_IRQn = 16, /*!< TIM3 global Interrupt */ + TIM6_LPTIM1_DAC_IRQn = 17, /*!< TIM6, LPTIM1, DAC global Interrupts */ + TIM7_IRQn = 18, /*!< TIM7 global Interrupt */ + TIM14_IRQn = 19, /*!< TIM14 global Interrupt */ + TIM15_IRQn = 20, /*!< TIM15 global Interrupt */ + TIM16_IRQn = 21, /*!< TIM16 global Interrupt */ + TIM17_IRQn = 22, /*!< TIM17 global Interrupt */ + I2C1_IRQn = 23, /*!< I2C1 global Interrupt */ + I2C2_IRQn = 24, /*!< I2C2 global Interrupt */ + SPI1_IRQn = 25, /*!< SPI1 global Interrupt */ + SPI2_IRQn = 26, /*!< SPI2 global Interrupt */ + USART1_IRQn = 27, /*!< USART1 global Interrupt */ + USART2_IRQn = 28, /*!< USART2 global Interrupt */ + USART3_4_IRQn = 29, /*!< USART3, 4 global Interrupts */ + CAN_IRQn = 30, /*!< CAN global Interrupt */ + USB_IRQn = 31, /*!< USB global Interrupt */ +} IRQn_Type; + +/** + * @} + */ + +#include "core_cm0plus.h" /* Cortex-M0+ processor and core peripherals */ +#include "system_py32f0xx.h" /* PY32F0xx System Header */ +#include + +/** @addtogroup Peripheral_registers_structures + * @{ + */ + +/** +* @brief ADC Registers +*/ +typedef struct +{ + __IO uint32_t SR; /*!< ADC desc SR, Address offset: 0x00 */ + __IO uint32_t CR1; /*!< ADC desc CR1, Address offset: 0x04 */ + __IO uint32_t CR2; /*!< ADC desc CR2, Address offset: 0x08 */ + __IO uint32_t SMPR1; /*!< ADC desc SMPR1, Address offset: 0x0C */ + __IO uint32_t SMPR2; /*!< ADC desc SMPR2, Address offset: 0x10 */ + __IO uint32_t SMPR3; /*!< ADC desc SMPR3, Address offset: 0x14 */ + __IO uint32_t JOFR1; /*!< ADC desc JOFR1, Address offset: 0x18 */ + __IO uint32_t JOFR2; /*!< ADC desc JOFR2, Address offset: 0x1C */ + __IO uint32_t JOFR3; /*!< ADC desc JOFR3, Address offset: 0x20 */ + __IO uint32_t JOFR4; /*!< ADC desc JOFR4, Address offset: 0x24 */ + __IO uint32_t HTR; /*!< ADC desc HTR, Address offset: 0x28 */ + __IO uint32_t LTR; /*!< ADC desc LTR, Address offset: 0x2C */ + __IO uint32_t SQR1; /*!< ADC desc SQR1, Address offset: 0x30 */ + __IO uint32_t SQR2; /*!< ADC desc SQR2, Address offset: 0x34 */ + __IO uint32_t SQR3; /*!< ADC desc SQR3, Address offset: 0x38 */ + __IO uint32_t JSQR; /*!< ADC desc JSQR, Address offset: 0x3C */ + __IO uint32_t JDR1; /*!< ADC desc JDR1, Address offset: 0x40 */ + __IO uint32_t JDR2; /*!< ADC desc JDR2, Address offset: 0x44 */ + __IO uint32_t JDR3; /*!< ADC desc JDR3, Address offset: 0x48 */ + __IO uint32_t JDR4; /*!< ADC desc JDR4, Address offset: 0x4C */ + __IO uint32_t DR; /*!< ADC desc DR, Address offset: 0x50 */ + __IO uint32_t CCSR; /*!< ADC desc CCSR, Address offset: 0x54 */ + __IO uint32_t CALRR1; /*!< ADC desc CALRR1, Address offset: 0x58 */ + __IO uint32_t CALRR2; /*!< ADC desc CALRR2, Address offset: 0x5C */ + __IO uint32_t CALFIR1; /*!< ADC desc CALFIR1, Address offset: 0x60 */ + __IO uint32_t CALFIR2; /*!< ADC desc CALFIR2, Address offset: 0x64 */ +} ADC_TypeDef; + +/** +* @brief CAN LLC Acceptance filters Registers +*/ +typedef struct +{ + __IO uint32_t ID; + __IO uint32_t FORMAT; + __IO uint32_t TYPE; + __IO uint32_t AF; +} CAN_LLC_AC_TypeDef; + +/** +* @brief CAN LLC Acceptance filters Registers +*/ +typedef struct +{ + __IO uint32_t ID; + __IO uint32_t FORMAT; + __IO uint32_t TYPE; + __IO uint32_t AF; + __IO uint32_t RTSL; + __IO uint32_t RTSH; + __IO uint32_t TTCAN; + __IO uint32_t DATA[2]; +} CAN_LLC_TypeDef; + +/** +* @brief CAN Registers +*/ +typedef struct +{ + __IO uint32_t TSNCR; /*!< CAN desc TSNCR, Address offset: 0x00 */ + __IO uint32_t ACBTR; /*!< CAN desc ACBTR, Address offset: 0x04 */ + __IO uint32_t FDBTR; /*!< CAN desc FDBTR, Address offset: 0x08 */ + __IO uint32_t XLBTR; /*!< CAN desc XLBTR, Address offset: 0x0C */ + __IO uint32_t RLSSP; /*!< CAN desc RLSSP, Address offset: 0x10 */ + __IO uint32_t IFR; /*!< CAN desc IFR, Address offset: 0x14 */ + __IO uint32_t IER; /*!< CAN desc IER, Address offset: 0x18 */ + __IO uint32_t TSR; /*!< CAN desc TSR, Address offset: 0x1C */ + __IO uint32_t TTSL; /*!< CAN desc TTSL, Address offset: 0x20 */ + __IO uint32_t TTSH; /*!< CAN desc TTSH, Address offset: 0x24 */ + __IO uint32_t MCR; /*!< CAN desc MCR, Address offset: 0x28 */ + __IO uint32_t WECR; /*!< CAN desc WECR, Address offset: 0x2C */ + __IO uint32_t REFMSG; /*!< CAN desc REFMSG, Address offset: 0x30 */ + __IO uint32_t TTCR; /*!< CAN desc TTCR, Address offset: 0x34 */ + __IO uint32_t TTTR; /*!< CAN desc TTTR, Address offset: 0x38 */ + __IO uint32_t SCMS; /*!< CAN desc SCMS, Address offset: 0x3C */ + __IO uint32_t MESR; /*!< CAN desc MESR, Address offset: 0x40 */ + __IO uint32_t ACFCR; /*!< CAN desc ACFCR, Address offset: 0x44 */ + CAN_LLC_AC_TypeDef ACFC; /*!< CAN desc ACFC, Address offset: 0x48 - 0x57 */ + CAN_LLC_AC_TypeDef ACFM; /*!< CAN desc ACFM, Address offset: 0x58 - 0x67 */ + uint8_t RESERVED18[8]; /*!< Reserved, Address offset: 0x68 - 0x6F */ + CAN_LLC_TypeDef RBUF; /*!< CAN desc RBUF, Address offset: 0x70 - 0x93 */ + CAN_LLC_TypeDef TBUF; /*!< CAN desc TBUF, Address offset: 0x94 - 0xB7 */ + __IO uint32_t PWMCR; /*!< CAN desc PWMCR, Address offset: 0xB8 */ +} CAN_TypeDef; + +/** + * @brief CRC calculation unit + */ +typedef struct +{ + __IO uint32_t DR; /*!< CRC Data register, Address offset: 0x00 */ + __IO uint32_t IDR; /*!< CRC Independent data register, Address offset: 0x04 */ + __IO uint32_t CR; /*!< CRC Control register, Address offset: 0x08 */ +} CRC_TypeDef; + +/** + * @brief Comparator + */ +typedef struct +{ + __IO uint32_t CSR; /*!< COMP control and status register, Address offset: 0x00 */ + __IO uint32_t FR; /*!< COMP filter register, Address offset: 0x04 */ +} COMP_TypeDef; + +typedef struct +{ + __IO uint32_t CSR_ODD; /*!< COMP control and status register located in register of comparator instance odd, used for bits common to several COMP instances, Address offset: 0x00 */ + __IO uint32_t FR_ODD; + __IO uint32_t CSR_EVEN; /*!< COMP control and status register located in register of comparator instance even, used for bits common to several COMP instances, Address offset: 0x04 */ + __IO uint32_t FR_EVEN; +} COMP_Common_TypeDef; + +/** +* @brief CTC Registers +*/ +typedef struct +{ + __IO uint32_t CTL0; /*!< CTC desc CTL0, Address offset: 0x00 */ + __IO uint32_t CTL1; /*!< CTC desc CTL1, Address offset: 0x04 */ + __IO uint32_t SR; /*!< CTC desc SR, Address offset: 0x08 */ + __IO uint32_t INTC; /*!< CTC desc INTC, Address offset: 0x0C */ +} CTC_TypeDef; + +/** +* @brief DAC Registers +*/ +typedef struct +{ + __IO uint32_t CR; /*!< DAC desc CR, Address offset: 0x00 */ + __IO uint32_t SWTRIGR; /*!< DAC desc SWTRIGR, Address offset: 0x04 */ + __IO uint32_t DHR12R1; /*!< DAC desc DHR12R1, Address offset: 0x08 */ + __IO uint32_t DHR12L1; /*!< DAC desc DHR12L1, Address offset: 0x0C */ + __IO uint32_t DHR8R1; /*!< DAC desc DHR8R1, Address offset: 0x10 */ + __IO uint32_t DHR12R2; /*!< DAC desc DHR12R2, Address offset: 0x14 */ + __IO uint32_t DHR12L2; /*!< DAC desc DHR12L2, Address offset: 0x18 */ + __IO uint32_t DHR8R2; /*!< DAC desc DHR8R2, Address offset: 0x1C */ + __IO uint32_t DHR12RD; /*!< DAC desc DHR12RD, Address offset: 0x20 */ + __IO uint32_t DHR12LD; /*!< DAC desc DHR12LD, Address offset: 0x24 */ + __IO uint32_t DHR8RD; /*!< DAC desc DHR8RD, Address offset: 0x28 */ + __IO uint32_t DOR1; /*!< DAC desc DOR1, Address offset: 0x2C */ + __IO uint32_t DOR2; /*!< DAC desc DOR2, Address offset: 0x30 */ + __IO uint32_t SR; /*!< DAC desc SR, Address offset: 0x34 */ +} DAC_TypeDef; + +/** + * @brief Debug MCU + */ +typedef struct +{ + __IO uint32_t IDCODE; /*!< MCU device ID code, Address offset: 0x00 */ + __IO uint32_t CR; /*!< Debug configuration register, Address offset: 0x04 */ + __IO uint32_t APBFZ1; /*!< Debug APB freeze register 1, Address offset: 0x08 */ + __IO uint32_t APBFZ2; /*!< Debug APB freeze register 2, Address offset: 0x0C */ +} DBGMCU_TypeDef; + +/** +* @brief HDIV Registers +*/ +typedef struct +{ + __IO uint32_t DEND; /*!< HDIV desc DEND, Address offset: 0x00 */ + __IO uint32_t SOR; /*!< HDIV desc SOR, Address offset: 0x04 */ + __IO uint32_t QUOT; /*!< HDIV desc REMA, Address offset: 0x08 */ + __IO uint32_t REMA; /*!< HDIV desc QUOT, Address offset: 0x0C */ + __IO uint32_t SIGN; /*!< HDIV desc SIGN, Address offset: 0x10 */ + __IO uint32_t STAT; /*!< HDIV desc STAT, Address offset: 0x1C */ +} DIV_TypeDef; + +/** + * @brief DMA Controller + */ +typedef struct +{ + __IO uint32_t ISR; /*!< DMA interrupt status register, Address offset: 0x00 */ + __IO uint32_t IFCR; /*!< DMA interrupt flag clear register, Address offset: 0x04 */ +} DMA_TypeDef; + +typedef struct +{ + __IO uint32_t CCR; /*!< DMA channel x configuration register */ + __IO uint32_t CNDTR; /*!< DMA channel x number of data register */ + __IO uint32_t CPAR; /*!< DMA channel x peripheral address register */ + __IO uint32_t CMAR; /*!< DMA channel x memory address register */ +} DMA_Channel_TypeDef; + +/** + * @brief Asynch Interrupt/Event Controller (EXTI) + */ +typedef struct +{ + __IO uint32_t RTSR; /*!< EXTI Rising Trigger Selection Register 1, Address offset: 0x00 */ + __IO uint32_t FTSR; /*!< EXTI Falling Trigger Selection Register 1, Address offset: 0x04 */ + __IO uint32_t SWIER; /*!< EXTI Software Interrupt event Register 1, Address offset: 0x08 */ + __IO uint32_t PR; /*!< EXTI Pending Register 1 Address offset: 0x0C */ + uint32_t RESERVED1[20]; /*!< Reserved 1, Address offset: 0x10 -- 0x5C */ + __IO uint32_t EXTICR[4]; /*!< EXTI External Interrupt Configuration Register, Address offset: 0x60 -- 0x6C */ + uint32_t RESERVED2[4]; /*!< Reserved 2, Address offset: 0x70 -- 0x7C */ + __IO uint32_t IMR; /*!< EXTI Interrupt Mask Register, Address offset: 0x80 */ + __IO uint32_t EMR; /*!< EXTI Event Mask Register, Address offset: 0x84 */ +} EXTI_TypeDef; + +/** + * @brief FLASH Registers + */ +typedef struct +{ + __IO uint32_t ACR; /*!< FLASH Access Control register, Address offset: 0x00 */ + uint32_t RESERVED1; /*!< Reserved1, Address offset: 0x04 */ + __IO uint32_t KEYR; /*!< FLASH Key register, Address offset: 0x08 */ + __IO uint32_t OPTKEYR; /*!< FLASH Option Key register, Address offset: 0x0C */ + __IO uint32_t SR; /*!< FLASH Status register, Address offset: 0x10 */ + __IO uint32_t CR; /*!< FLASH Control register, Address offset: 0x14 */ + uint32_t RESERVED2[2]; /*!< Reserved2, Address offset: 0x18-0x1C */ + __IO uint32_t OPTR; /*!< FLASH Option register, Address offset: 0x20 */ + __IO uint32_t SDKR; /*!< FLASH SDK address register, Address offset: 0x24 */ + __IO uint32_t PCK_EN; /*!< FLASH PCK_EN address register, Address offset: 0x28 */ + __IO uint32_t WRPR; /*!< FLASH WRP address register, Address offset: 0x2C */ + uint32_t RESERVED3[(0x90 - 0x2C) / 4 - 1]; /*!< RESERVED3, Address offset: 0x30-0x8C */ + __IO uint32_t STCR; /*!< FLASH sleep time config register, Address offset: 0x90 */ + uint32_t RESERVED4[(0x100 - 0x90) / 4 - 1]; /*!< RESERVED4, Address offset: 0x94-0xFC */ + __IO uint32_t TS0; /*!< FLASH TS0 register, Address offset: 0x100 */ + __IO uint32_t TS1; /*!< FLASH TS1 register, Address offset: 0x104 */ + __IO uint32_t TS2P; /*!< FLASH TS2P register, Address offset: 0x108 */ + __IO uint32_t TPS3; /*!< FLASH TPS3 register, Address offset: 0x10C */ + __IO uint32_t TS3; /*!< FLASH TS3 register, Address offset: 0x110 */ + __IO uint32_t PERTPE; /*!< FLASH PERTPE register, Address offset: 0x114 */ + __IO uint32_t SMERTPE; /*!< FLASH SMERTPE register, Address offset: 0x118 */ + __IO uint32_t PRGTPE; /*!< FLASH PRGTPE register, Address offset: 0x11C */ + __IO uint32_t PRETPE; /*!< FLASH PRETPE register, Address offset: 0x120 */ + uint32_t RESERVED5[(0x290 - 0x120) / 4 - 1]; /*!< RESERVED4, Address offset: 0x124-0x28C */ + __IO uint32_t TRMLSR; /*!< FLASH TRMLSR register, Address offset: 0x290 */ + __IO uint32_t TRMDR[9]; /*!< FLASH TRMDR register, Address offset: 0x294 - 0x2B7 */ +} FLASH_TypeDef; + +/** + * @brief Option Bytes + */ +typedef struct +{ + __IO uint8_t RDP; /*!< FLASH option byte Read protection, Address offset: 0x00 */ + __IO uint8_t USER; /*!< FLASH option byte user options, Address offset: 0x01 */ + __IO uint8_t nRDP; /*!< Complemented FLASH option byte Read protection, Address offset: 0x02 */ + __IO uint8_t nUSER; /*!< Complemented FLASH option byte user options, Address offset: 0x03 */ + __IO uint8_t SDK_STRT; /*!< SDK area start address(stored in SDK[4:0]), Address offset: 0x04 */ + __IO uint8_t SDK_END; /*!< SDK area end address(stored in SDK[12:8]), Address offset: 0x05 */ + __IO uint8_t nSDK_STRT; /*!< Complemented SDK area start address, Address offset: 0x06 */ + __IO uint8_t nSDK_END; /*!< Complemented SDK area end address, Address offset: 0x07 */ + uint32_t RESERVED1; /*!< RESERVED1, Address offset: 0x08 */ + __IO uint16_t WRP; /*!< FLASH option byte write protection, Address offset: 0x0C */ + __IO uint16_t nWRP; /*!< Complemented FLASH option byte write protection, Address offset: 0x0E */ +} OB_TypeDef; + +/** + * @brief General Purpose I/O + */ +typedef struct +{ + __IO uint32_t MODER; /*!< GPIO port mode register, Address offset: 0x00 */ + __IO uint32_t OTYPER; /*!< GPIO port output type register, Address offset: 0x04 */ + __IO uint32_t OSPEEDR; /*!< GPIO port output speed register, Address offset: 0x08 */ + __IO uint32_t PUPDR; /*!< GPIO port pull-up/pull-down register, Address offset: 0x0C */ + __IO uint32_t IDR; /*!< GPIO port input data register, Address offset: 0x10 */ + __IO uint32_t ODR; /*!< GPIO port output data register, Address offset: 0x14 */ + __IO uint32_t BSRR; /*!< GPIO port bit set/reset register, Address offset: 0x18 */ + __IO uint32_t LCKR; /*!< GPIO port configuration lock register, Address offset: 0x1C */ + __IO uint32_t AFR[2]; /*!< GPIO alternate function registers, Address offset: 0x20-0x24 */ + __IO uint32_t BRR; /*!< GPIO Bit Reset register, Address offset: 0x28 */ +} GPIO_TypeDef; + +/** +* @brief I2C Registers +*/ +typedef struct +{ + __IO uint32_t CR1; /*!< I2C desc CR1, Address offset: 0x00 */ + __IO uint32_t CR2; /*!< I2C desc CR2, Address offset: 0x04 */ + __IO uint32_t OAR1; /*!< I2C desc OAR1, Address offset: 0x08 */ + __IO uint32_t OAR2; /*!< I2C desc OAR2, Address offset: 0x0C */ + __IO uint32_t DR; /*!< I2C desc DR, Address offset: 0x10 */ + __IO uint32_t SR1; /*!< I2C desc SR1, Address offset: 0x14 */ + __IO uint32_t SR2; /*!< I2C desc SR2, Address offset: 0x18 */ + __IO uint32_t CCR; /*!< I2C desc CCR, Address offset: 0x1C */ + __IO uint32_t TRISE; /*!< I2C desc TRISE, Address offset: 0x20 */ +} I2C_TypeDef; + +/** + * @brief Independent WATCHDOG + */ +typedef struct +{ + __IO uint32_t KR; /*!< IWDG Key register, Address offset: 0x00 */ + __IO uint32_t PR; /*!< IWDG Prescaler register, Address offset: 0x04 */ + __IO uint32_t RLR; /*!< IWDG Reload register, Address offset: 0x08 */ + __IO uint32_t SR; /*!< IWDG Status register, Address offset: 0x0C */ +} IWDG_TypeDef; + +/** + * @brief LCD + */ +typedef struct +{ + __IO uint32_t CR0; /*!< LCD desc CR0, Address offset: 0x00 */ + __IO uint32_t CR1; /*!< LCD desc CR1, Address offset: 0x04 */ + __IO uint32_t INTCLR; /*!< LCD desc INTCLR, Address offset: 0x08 */ + __IO uint32_t POEN0; /*!< LCD desc POEN0, Address offset: 0x0C */ + __IO uint32_t POEN1; /*!< LCD desc POEN1, Address offset: 0x10 */ + __IO uint32_t RAM[16]; /*!< LCD desc RAM0~F, Address offset: 0x14-0x53 */ +} LCD_TypeDef; + +/** + * @brief LPTIMER + */ +typedef struct +{ + __IO uint32_t ISR; /*!< LPTIM Interrupt and Status register, Address offset: 0x00 */ + __IO uint32_t ICR; /*!< LPTIM Interrupt Clear register, Address offset: 0x04 */ + __IO uint32_t IER; /*!< LPTIM Interrupt Enable register, Address offset: 0x08 */ + __IO uint32_t CFGR; /*!< LPTIM Configuration register, Address offset: 0x0C */ + __IO uint32_t CR; /*!< LPTIM Control register, Address offset: 0x10 */ + __IO uint32_t RESERVED1; /*!< RESERVED1, Address offset: 0x14 */ + __IO uint32_t ARR; /*!< LPTIM Autoreload register, Address offset: 0x18 */ + __IO uint32_t CNT; /*!< LPTIM Counter register, Address offset: 0x1C */ +} LPTIM_TypeDef; + +/** + * @brief OPA Registers + */ +typedef struct +{ + __IO uint32_t RESERVED1[0x30 / 4]; /*!< RESERVED1, Address offset: 0x0-0x2C */ + __IO uint32_t CR0; /*!< OPA desc CR0, Address offset: 0x30 */ + __IO uint32_t CR1; /*!< OPA desc CR1, Address offset: 0x34 */ + __IO uint32_t CR2; /*!< OPA desc CR2, Address offset: 0x38 */ + __IO uint32_t CR; /*!< OPA desc CR, Address offset: 0x3C */ +} OPA_TypeDef; + +/** + * @brief Power Control + */ +typedef struct +{ + __IO uint32_t CR1; /*!< PWR Power Control Register 1, Address offset: 0x00 */ + __IO uint32_t CR2; /*!< PWR Power Control Register 2, Address offset: 0x04 */ + uint32_t RESERVED1[3]; /*!< Reserved1, Address offset: 0x08-0x10 */ + __IO uint32_t SR; /*!< PWR Power Status Register, Address offset: 0x14 */ +} PWR_TypeDef; + +/** + * @brief Reset and Clock Control + */ +typedef struct +{ + __IO uint32_t CR; /*!< RCC Clock Sources Control Register, Address offset: 0x00 */ + __IO uint32_t ICSCR; /*!< RCC Internal Clock Sources Calibration Register, Address offset: 0x04 */ + __IO uint32_t CFGR; /*!< RCC Regulated Domain Clocks Configuration Register, Address offset: 0x08 */ + __IO uint32_t PLLCFGR; /*!< RCC System PLL configuration Register, Address offset: 0x0C */ + __IO uint32_t ECSCR; /*!< RCC External clock source control register, Address offset: 0x10 */ + __IO uint32_t RESERVED1; /*!< Reserved, Address offset: 0x14 */ + __IO uint32_t CIER; /*!< RCC Clock Interrupt Enable Register, Address offset: 0x18 */ + __IO uint32_t CIFR; /*!< RCC Clock Interrupt Flag Register, Address offset: 0x1C */ + __IO uint32_t CICR; /*!< RCC Clock Interrupt Clear Register, Address offset: 0x20 */ + __IO uint32_t IOPRSTR; /*!< RCC IO port reset register, Address offset: 0x24 */ + __IO uint32_t AHBRSTR; /*!< RCC AHB peripherals reset register, Address offset: 0x28 */ + __IO uint32_t APBRSTR1; /*!< RCC APB peripherals reset register 1, Address offset: 0x2C */ + __IO uint32_t APBRSTR2; /*!< RCC APB peripherals reset register 2, Address offset: 0x30 */ + __IO uint32_t IOPENR; /*!< RCC IO port enable register, Address offset: 0x34 */ + __IO uint32_t AHBENR; /*!< RCC AHB peripherals clock enable register, Address offset: 0x38 */ + __IO uint32_t APBENR1; /*!< RCC APB peripherals clock enable register1, Address offset: 0x3C */ + __IO uint32_t APBENR2; /*!< RCC APB peripherals clock enable register2, Address offset: 0x40 */ + uint32_t RESERVED2[4]; /*!< Reserved, Address offset: 0x44-0x50 */ + __IO uint32_t CCIPR; /*!< RCC Peripherals Independent Clocks Configuration Register, Address offset: 0x54 */ + __IO uint32_t RESERVED3; /*!< Reserved, Address offset: 0x58 */ + __IO uint32_t BDCR; /*!< RCC Backup Domain Control Register, Address offset: 0x5C */ + __IO uint32_t CSR; /*!< RCC Unregulated Domain Clock Control and Status Register, Address offset: 0x60 */ +} RCC_TypeDef; + +/** +* @brief RTC Registers +*/ +typedef struct +{ + __IO uint32_t CRH; /*!< RTC desc CRH, Address offset: 0x00 */ + __IO uint32_t CRL; /*!< RTC desc CRL, Address offset: 0x04 */ + __IO uint32_t PRLH; /*!< RTC desc PRLH, Address offset: 0x08 */ + __IO uint32_t PRLL; /*!< RTC desc PRLL, Address offset: 0x0C */ + __IO uint32_t DIVH; /*!< RTC desc DIVH, Address offset: 0x10 */ + __IO uint32_t DIVL; /*!< RTC desc DIVL, Address offset: 0x14 */ + __IO uint32_t CNTH; /*!< RTC desc CNTH, Address offset: 0x18 */ + __IO uint32_t CNTL; /*!< RTC desc CNTL, Address offset: 0x1C */ + __IO uint32_t ALRH; /*!< RTC desc ALRH, Address offset: 0x20 */ + __IO uint32_t ALRL; /*!< RTC desc ALRL, Address offset: 0x24 */ + uint32_t RESERVED1; + __IO uint32_t BKP_RTCCR; /*!< RTC desc BKP_RTCCR, Address offset: 0x2C */ +} RTC_TypeDef; + +/** +* @brief SPI Registers +*/ +typedef struct +{ + __IO uint32_t CR1; /*!< SPI desc CR1, Address offset: 0x00 */ + __IO uint32_t CR2; /*!< SPI desc CR2, Address offset: 0x04 */ + __IO uint32_t SR; /*!< SPI desc SR, Address offset: 0x08 */ + __IO uint32_t DR; /*!< SPI desc DR, Address offset: 0x0C */ + __IO uint32_t CRCPR; /*!< SPI desc CRCPR, Address offset: 0x10 */ + __IO uint32_t RXCRCR; /*!< SPI desc RXCRCR, Address offset: 0x14 */ + __IO uint32_t TXCRCR; /*!< SPI desc TXCRCR, Address offset: 0x18 */ + __IO uint32_t I2SCFGR; /*!< SPI desc I2SCFGR, Address offset: 0x1C */ + __IO uint32_t I2SPR; /*!< SPI desc I2SPR, Address offset: 0x20 */ +} SPI_TypeDef; + +/** + * @brief System configuration controller + */ +typedef struct +{ + //__IO uint32_t CFGR[4]; /*!< SYSCFG configuration registers, Address offset: 0x00 - 0x0F */ + __IO uint32_t CFGR1; /*!< SYSCFG desc CFGR1, Address offset: 0x00 */ + __IO uint32_t CFGR2; /*!< SYSCFG desc CFGR2, Address offset: 0x04 */ + __IO uint32_t CFGR3; /*!< SYSCFG desc CFGR3, Address offset: 0x08 */ + __IO uint32_t CFGR4; /*!< SYSCFG desc CFGR4, Address offset: 0x0C */ + __IO uint32_t PAENS; /*!< SYSCFG desc PAENS, Address offset: 0x10 */ + __IO uint32_t PBENS; /*!< SYSCFG desc PBENS, Address offset: 0x14 */ + __IO uint32_t PCENS; /*!< SYSCFG desc PCENS, Address offset: 0x18 */ + __IO uint32_t PFENS; /*!< SYSCFG desc PFENS, Address offset: 0x1C */ + __IO uint32_t EIIC; /*!< SYSCFG desc PEENS, Address offset: 0x20 */ +} SYSCFG_TypeDef; + +/** + * @brief TIM + */ +typedef struct +{ + __IO uint32_t CR1; /*!< TIM control register 1, Address offset: 0x00 */ + __IO uint32_t CR2; /*!< TIM control register 2, Address offset: 0x04 */ + __IO uint32_t SMCR; /*!< TIM slave mode control register, Address offset: 0x08 */ + __IO uint32_t DIER; /*!< TIM DMA/interrupt enable register, Address offset: 0x0C */ + __IO uint32_t SR; /*!< TIM status register, Address offset: 0x10 */ + __IO uint32_t EGR; /*!< TIM event generation register, Address offset: 0x14 */ + __IO uint32_t CCMR1; /*!< TIM capture/compare mode register 1, Address offset: 0x18 */ + __IO uint32_t CCMR2; /*!< TIM capture/compare mode register 2, Address offset: 0x1C */ + __IO uint32_t CCER; /*!< TIM capture/compare enable register, Address offset: 0x20 */ + __IO uint32_t CNT; /*!< TIM counter register, Address offset: 0x24 */ + __IO uint32_t PSC; /*!< TIM prescaler register, Address offset: 0x28 */ + __IO uint32_t ARR; /*!< TIM auto-reload register, Address offset: 0x2C */ + __IO uint32_t RCR; /*!< TIM repetition counter register, Address offset: 0x30 */ + __IO uint32_t CCR1; /*!< TIM capture/compare register 1, Address offset: 0x34 */ + __IO uint32_t CCR2; /*!< TIM capture/compare register 2, Address offset: 0x38 */ + __IO uint32_t CCR3; /*!< TIM capture/compare register 3, Address offset: 0x3C */ + __IO uint32_t CCR4; /*!< TIM capture/compare register 4, Address offset: 0x40 */ + __IO uint32_t BDTR; /*!< TIM break and dead-time register, Address offset: 0x44 */ + __IO uint32_t DCR; /*!< TIM DMA control register, Address offset: 0x48 */ + __IO uint32_t DMAR; /*!< TIM DMA address for full transfer, Address offset: 0x4C */ + __IO uint32_t OR; /*!< TIM option register, Address offset: 0x50 */ +} TIM_TypeDef; + +/** + * @brief Universal Synchronous Asynchronous Receiver Transmitter + */ +typedef struct +{ + __IO uint32_t SR; /*!< USART Status register , Address offset: 0x00 */ + __IO uint32_t DR; /*!< USART Data register, Address offset: 0x04 */ + __IO uint32_t BRR; /*!< USART Baud rate register, Address offset: 0x08 */ + __IO uint32_t CR1; /*!< USART Control register 1, Address offset: 0x0C */ + __IO uint32_t CR2; /*!< USART Control register 2, Address offset: 0x10 */ + __IO uint32_t CR3; /*!< USART Control register 3, Address offset: 0x14 */ + __IO uint32_t GTPR; /*!< USART Guard time and prescaler register, Address offset: 0x18 */ +} USART_TypeDef; + +/** +* @brief USB Registers +*/ +typedef struct +{ + __IO uint32_t CR; /*!< USB desc CR, Address offset: 0x00 */ + __IO uint32_t INTR; /*!< USB desc INTR, Address offset: 0x04 */ + __IO uint32_t INTRE; /*!< USB desc INTRE, Address offset: 0x08 */ + __IO uint32_t FRAME; /*!< USB desc FRAME, Address offset: 0x0C */ + __IO uint32_t EP0CSR; /*!< USB desc EP0CSR, Address offset: 0x10 */ + __IO uint32_t INEPxCSR; /*!< USB desc INEPxCSR, Address offset: 0x14 */ + __IO uint32_t OUTEPxCSR; /*!< USB desc OUTEPxCSR, Address offset: 0x18 */ + __IO uint32_t OUTCOUNT; /*!< USB desc OUTCOUNT, Address offset: 0x1C */ + __IO uint32_t FIFODATA[16]; /*!< USB desc FIFODATA, Address offset: 0x20 - 0x3F */ +} USB_TypeDef; + +/** + * @brief Window WATCHDOG + */ +typedef struct +{ + __IO uint32_t CR; /*!< WWDG Control register, Address offset: 0x00 */ + __IO uint32_t CFR; /*!< WWDG Configuration register, Address offset: 0x04 */ + __IO uint32_t SR; /*!< WWDG Status register, Address offset: 0x08 */ +} WWDG_TypeDef; + +/** @addtogroup Peripheral_memory_map + * @{ + */ +#define FLASH_BASE (0x08000000UL) /*!< FLASH base address */ +#define FLASH_END (0x0801FFFFUL) /*!< FLASH end address */ +#define FLASH_SIZE (FLASH_END - FLASH_BASE + 1) +#define FLASH_PAGE_SIZE 0x00000100U /*!< FLASH Page Size, 256 Bytes */ +#define FLASH_PAGE_NB (FLASH_SIZE / FLASH_PAGE_SIZE) +#define FLASH_SECTOR_SIZE 0x00002000U /*!< FLASH Sector Size, 8192 Bytes */ +#define FLASH_SECTOR_NB (FLASH_SIZE / FLASH_SECTOR_SIZE) +#define SRAM_BASE (0x20000000UL) /*!< SRAM base address */ +#define SRAM_END (0x20003FFFUL) /*!< SRAM end address */ +#define PERIPH_BASE (0x40000000UL) /*!< Peripheral base address */ +#define IOPORT_BASE (0x50000000UL) /*!< IOPORT base address */ + +/*!< Peripheral memory map */ +#define APBPERIPH_BASE (PERIPH_BASE) +#define AHBPERIPH_BASE (PERIPH_BASE + 0x00020000UL) + +/*!< APB peripherals */ +#define TIM2_BASE (APBPERIPH_BASE + 0x00000000UL) +#define TIM3_BASE (APBPERIPH_BASE + 0x00000400UL) +#define TIM6_BASE (APBPERIPH_BASE + 0x00001000UL) +#define TIM7_BASE (APBPERIPH_BASE + 0x00001400UL) +#define TIM14_BASE (APBPERIPH_BASE + 0x00002000UL) +#define LCD_BASE (APBPERIPH_BASE + 0x00002400UL) +#define RTC_BASE (APBPERIPH_BASE + 0x00002800UL) +#define WWDG_BASE (APBPERIPH_BASE + 0x00002C00UL) +#define IWDG_BASE (APBPERIPH_BASE + 0x00003000UL) +#define SPI2_BASE (APBPERIPH_BASE + 0x00003800UL) +#define USART2_BASE (APBPERIPH_BASE + 0x00004400UL) +#define USART3_BASE (APBPERIPH_BASE + 0x00004800UL) +#define USART4_BASE (APBPERIPH_BASE + 0x00004C00UL) +#define I2C1_BASE (APBPERIPH_BASE + 0x00005400UL) +#define I2C2_BASE (APBPERIPH_BASE + 0x00005800UL) +#define USB_BASE (APBPERIPH_BASE + 0x00005C00UL) +#define USB_SRAM_BASE (APBPERIPH_BASE + 0x00006000UL) +#define CAN1_BASE (APBPERIPH_BASE + 0x00006400UL) +#define CTC_BASE (APBPERIPH_BASE + 0x00006C00UL) +#define PWR_BASE (APBPERIPH_BASE + 0x00007000UL) +#define DAC1_BASE (APBPERIPH_BASE + 0x00007400UL) +#define LPTIM1_BASE (APBPERIPH_BASE + 0x00007C00UL) +#define SYSCFG_BASE (APBPERIPH_BASE + 0x00010000UL) +#define COMP1_BASE (APBPERIPH_BASE + 0x00010200UL) +#define COMP2_BASE (APBPERIPH_BASE + 0x00010210UL) +#define COMP3_BASE (APBPERIPH_BASE + 0x00010220UL) +#define ADC1_BASE (APBPERIPH_BASE + 0x00012400UL) +#define OPA_BASE (APBPERIPH_BASE + 0x00010300UL) +#define TIM1_BASE (APBPERIPH_BASE + 0x00012C00UL) +#define SPI1_BASE (APBPERIPH_BASE + 0x00013000UL) +#define USART1_BASE (APBPERIPH_BASE + 0x00013800UL) +#define TIM15_BASE (APBPERIPH_BASE + 0x00014000UL) +#define TIM16_BASE (APBPERIPH_BASE + 0x00014400UL) +#define TIM17_BASE (APBPERIPH_BASE + 0x00014800UL) +#define DBGMCU_BASE (APBPERIPH_BASE + 0x00015800UL) + +/*!< AHB peripherals */ +#define DMA1_BASE (AHBPERIPH_BASE + 0x00000000UL) +#define DMA1_Channel1_BASE (DMA1_BASE + 0x00000008UL) +#define DMA1_Channel2_BASE (DMA1_BASE + 0x0000001CUL) +#define DMA1_Channel3_BASE (DMA1_BASE + 0x00000030UL) +#define DMA1_Channel4_BASE (DMA1_BASE + 0x00000044UL) +#define DMA1_Channel5_BASE (DMA1_BASE + 0x00000058UL) +#define DMA1_Channel6_BASE (DMA1_BASE + 0x0000006CUL) +#define DMA1_Channel7_BASE (DMA1_BASE + 0x00000080UL) +#define RCC_BASE (AHBPERIPH_BASE + 0x00001000UL) +#define EXTI_BASE (AHBPERIPH_BASE + 0x00001800UL) +#define FLASH_R_BASE (AHBPERIPH_BASE + 0x00002000UL) /*!< FLASH registers base address */ +#define OB_BASE 0x1FFF3100UL /*!< FLASH Option Bytes base address */ +#define FLASHSIZE_BASE 0x1FFF31FCUL /*!< FLASH Size register base address */ +#define UID_BASE 0x1FFF3000UL /*!< Unique device ID register base address */ +#define CRC_BASE (AHBPERIPH_BASE + 0x00003000UL) +#define DIV_BASE (AHBPERIPH_BASE + 0x00003800UL) + +/*!< IOPORT */ +#define GPIOA_BASE (IOPORT_BASE + 0x00000000UL) +#define GPIOB_BASE (IOPORT_BASE + 0x00000400UL) +#define GPIOC_BASE (IOPORT_BASE + 0x00000800UL) +#define GPIOF_BASE (IOPORT_BASE + 0x00001400UL) + +/** + * @} + */ + +/** @addtogroup Peripheral_declaration + * @{ + */ +#define TIM2 ((TIM_TypeDef *) TIM2_BASE) +#define TIM3 ((TIM_TypeDef *) TIM3_BASE) +#define TIM6 ((TIM_TypeDef *) TIM6_BASE) +#define TIM7 ((TIM_TypeDef *) TIM7_BASE) +#define TIM14 ((TIM_TypeDef *) TIM14_BASE) +#define LCD ((LCD_TypeDef *) LCD_BASE) +#define RTC ((RTC_TypeDef *) RTC_BASE) +#define WWDG ((WWDG_TypeDef *) WWDG_BASE) +#define IWDG ((IWDG_TypeDef *) IWDG_BASE) +#define SPI2 ((SPI_TypeDef *) SPI2_BASE) +#define USART2 ((USART_TypeDef *) USART2_BASE) +#define USART3 ((USART_TypeDef *) USART3_BASE) +#define USART4 ((USART_TypeDef *) USART4_BASE) +#define I2C1 ((I2C_TypeDef *) I2C1_BASE) +#define I2C2 ((I2C_TypeDef *) I2C2_BASE) +#define USB ((USB_TypeDef *) USB_BASE) +#define USB_SRAM ((USB_SRAM_TypeDef *) USB_SRAM_BASE) +#define CAN1 ((CAN_TypeDef *) CAN1_BASE) +#define CTC ((CTC_TypeDef *) CTC_BASE) +#define PWR ((PWR_TypeDef *) PWR_BASE) +#define DAC1 ((DAC_TypeDef *) DAC1_BASE) +#define LPTIM1 ((LPTIM_TypeDef *) LPTIM1_BASE) +#define SYSCFG ((SYSCFG_TypeDef *) SYSCFG_BASE) +#define COMP1 ((COMP_TypeDef *) COMP1_BASE) +#define COMP2 ((COMP_TypeDef *) COMP2_BASE) +#define COMP3 ((COMP_TypeDef *) COMP3_BASE) +#define COMP12_COMMON ((COMP_Common_TypeDef *) COMP1_BASE) +#define OPA ((OPA_TypeDef *) OPA_BASE) +#define ADC1 ((ADC_TypeDef *) ADC1_BASE) +#define TIM1 ((TIM_TypeDef *) TIM1_BASE) +#define SPI1 ((SPI_TypeDef *) SPI1_BASE) +#define USART1 ((USART_TypeDef *) USART1_BASE) +#define TIM15 ((TIM_TypeDef *) TIM15_BASE) +#define TIM16 ((TIM_TypeDef *) TIM16_BASE) +#define TIM17 ((TIM_TypeDef *) TIM17_BASE) +#define DBGMCU ((DBGMCU_TypeDef *) DBGMCU_BASE) +#define DMA1 ((DMA_TypeDef *) DMA1_BASE) +#define DMA1_Channel1 ((DMA_Channel_TypeDef *) DMA1_Channel1_BASE) +#define DMA1_Channel2 ((DMA_Channel_TypeDef *) DMA1_Channel2_BASE) +#define DMA1_Channel3 ((DMA_Channel_TypeDef *) DMA1_Channel3_BASE) +#define DMA1_Channel4 ((DMA_Channel_TypeDef *) DMA1_Channel4_BASE) +#define DMA1_Channel5 ((DMA_Channel_TypeDef *) DMA1_Channel5_BASE) +#define DMA1_Channel6 ((DMA_Channel_TypeDef *) DMA1_Channel6_BASE) +#define DMA1_Channel7 ((DMA_Channel_TypeDef *) DMA1_Channel7_BASE) +#define RCC ((RCC_TypeDef *) RCC_BASE) +#define EXTI ((EXTI_TypeDef *) EXTI_BASE) +#define FLASH ((FLASH_TypeDef *) FLASH_R_BASE) +#define OB ((OB_TypeDef *) OB_BASE) +#define CRC ((CRC_TypeDef *) CRC_BASE) +#define DIV ((DIV_TypeDef *) DIV_BASE) +#define GPIOA ((GPIO_TypeDef *) GPIOA_BASE) +#define GPIOB ((GPIO_TypeDef *) GPIOB_BASE) +#define GPIOC ((GPIO_TypeDef *) GPIOC_BASE) +#define GPIOF ((GPIO_TypeDef *) GPIOF_BASE) + +/** + * @} + */ + +/** @addtogroup Exported_constants + * @{ + */ + +/** @addtogroup Peripheral_Registers_Bits_Definition +* @{ +*/ + +/******************************************************************************/ +/* Peripheral Registers Bits Definition */ +/******************************************************************************/ + +/******************************************************************************/ +/* */ +/* Analog to Digital Converter (ADC) */ +/* */ +/******************************************************************************/ +/******************** Bits definition for ADC_SR register *******************/ +#define ADC_SR_AWD_Pos (0U) +#define ADC_SR_AWD_Msk (0x1UL << ADC_SR_AWD_Pos) /*!< 0x00000080 */ +#define ADC_SR_AWD ADC_SR_AWD_Msk +#define ADC_SR_EOC_Pos (1U) +#define ADC_SR_EOC_Msk (0x1UL << ADC_SR_EOC_Pos) /*!< 0x00000004 */ +#define ADC_SR_EOC ADC_SR_EOC_Msk +#define ADC_SR_JEOC_Pos (2U) +#define ADC_SR_JEOC_Msk (0x1UL << ADC_SR_JEOC_Pos) /*!< 0x00000004 */ +#define ADC_SR_JEOC ADC_SR_JEOC_Msk +#define ADC_SR_JSTRT_Pos (3U) +#define ADC_SR_JSTRT_Msk (0x1UL << ADC_SR_JSTRT_Pos) /*!< 0x00000004 */ +#define ADC_SR_JSTRT ADC_SR_JSTRT_Msk +#define ADC_SR_STRT_Pos (4U) +#define ADC_SR_STRT_Msk (0x1UL << ADC_SR_STRT_Pos) /*!< 0x00000004 */ +#define ADC_SR_STRT ADC_SR_STRT_Msk +#define ADC_SR_OVER_Pos (5U) +#define ADC_SR_OVER_Msk (0x1UL << ADC_SR_OVER_Pos) /*!< 0x00000004 */ +#define ADC_SR_OVER ADC_SR_OVER_Msk + +/*!< ADC_CR1 */ +#define ADC_CR1_AWDCH_Pos (0U) +#define ADC_CR1_AWDCH_Msk (0x1FUL << ADC_CR1_AWDCH_Pos) /*!< 0x0000001F */ +#define ADC_CR1_AWDCH ADC_CR1_AWDCH_Msk /*!< AWDCH[4:0] bits (desc AWDCH) */ +#define ADC_CR1_AWDCH_0 (0x1UL << ADC_CR1_AWDCH_Pos) /*!< 0x00000001 */ +#define ADC_CR1_AWDCH_1 (0x2UL << ADC_CR1_AWDCH_Pos) /*!< 0x00000002 */ +#define ADC_CR1_AWDCH_2 (0x4UL << ADC_CR1_AWDCH_Pos) /*!< 0x00000004 */ +#define ADC_CR1_AWDCH_3 (0x8UL << ADC_CR1_AWDCH_Pos) /*!< 0x00000008 */ +#define ADC_CR1_AWDCH_4 (0x10UL << ADC_CR1_AWDCH_Pos) /*!< 0x00000010 */ +#define ADC_CR1_EOCIE_Pos (5U) +#define ADC_CR1_EOCIE_Msk (0x1UL << ADC_CR1_EOCIE_Pos) /*!< 0x00000020 */ +#define ADC_CR1_EOCIE ADC_CR1_EOCIE_Msk +#define ADC_CR1_AWDIE_Pos (6U) +#define ADC_CR1_AWDIE_Msk (0x1UL << ADC_CR1_AWDIE_Pos) /*!< 0x00000040 */ +#define ADC_CR1_AWDIE ADC_CR1_AWDIE_Msk /*!< desc AWDIE */ +#define ADC_CR1_JEOCIE_Pos (7U) +#define ADC_CR1_JEOCIE_Msk (0x1UL << ADC_CR1_JEOCIE_Pos) /*!< 0x00000080 */ +#define ADC_CR1_JEOCIE ADC_CR1_JEOCIE_Msk /*!< desc JEOCIE */ +#define ADC_CR1_SCAN_Pos (8U) +#define ADC_CR1_SCAN_Msk (0x1UL << ADC_CR1_SCAN_Pos) /*!< 0x00000100 */ +#define ADC_CR1_SCAN ADC_CR1_SCAN_Msk /*!< desc SCAN */ +#define ADC_CR1_AWDSGL_Pos (9U) +#define ADC_CR1_AWDSGL_Msk (0x1UL << ADC_CR1_AWDSGL_Pos) /*!< 0x00000200 */ +#define ADC_CR1_AWDSGL ADC_CR1_AWDSGL_Msk /*!< desc AWDSGL */ +#define ADC_CR1_JAUTO_Pos (10U) +#define ADC_CR1_JAUTO_Msk (0x1UL << ADC_CR1_JAUTO_Pos) /*!< 0x00000400 */ +#define ADC_CR1_JAUTO ADC_CR1_JAUTO_Msk /*!< desc JAUTO */ +#define ADC_CR1_DISCEN_Pos (11U) +#define ADC_CR1_DISCEN_Msk (0x1UL << ADC_CR1_DISCEN_Pos) /*!< 0x00000800 */ +#define ADC_CR1_DISCEN ADC_CR1_DISCEN_Msk /*!< desc DISCEN */ +#define ADC_CR1_JDISCEN_Pos (12U) +#define ADC_CR1_JDISCEN_Msk (0x1UL << ADC_CR1_JDISCEN_Pos) /*!< 0x00001000 */ +#define ADC_CR1_JDISCEN ADC_CR1_JDISCEN_Msk /*!< desc JDISCEN */ +#define ADC_CR1_DISCNUM_Pos (13U) +#define ADC_CR1_DISCNUM_Msk (0x7UL << ADC_CR1_DISCNUM_Pos) /*!< 0x0000E000 */ +#define ADC_CR1_DISCNUM ADC_CR1_DISCNUM_Msk /*!< DISCNUM[15:13] bits (desc DISCNUM) */ +#define ADC_CR1_DISCNUM_0 (0x1UL << ADC_CR1_DISCNUM_Pos) /*!< 0x00002000 */ +#define ADC_CR1_DISCNUM_1 (0x2UL << ADC_CR1_DISCNUM_Pos) /*!< 0x00004000 */ +#define ADC_CR1_DISCNUM_2 (0x4UL << ADC_CR1_DISCNUM_Pos) /*!< 0x00008000 */ +#define ADC_CR1_JAWDEN_Pos (22U) +#define ADC_CR1_JAWDEN_Msk (0x1UL << ADC_CR1_JAWDEN_Pos) /*!< 0x00400000 */ +#define ADC_CR1_JAWDEN ADC_CR1_JAWDEN_Msk +#define ADC_CR1_AWDEN_Pos (23U) +#define ADC_CR1_AWDEN_Msk (0x1UL << ADC_CR1_AWDEN_Pos) /*!< 0x00800000 */ +#define ADC_CR1_AWDEN ADC_CR1_AWDEN_Msk +#define ADC_CR1_RESSEL_Pos (24U) +#define ADC_CR1_RESSEL_Msk (0x3UL << ADC_CR1_RESSEL_Pos) /*!< 0x03000000 */ +#define ADC_CR1_RESSEL ADC_CR1_RESSEL_Msk +#define ADC_CR1_RESSEL_0 (0x1UL << ADC_CR1_RESSEL_Pos) /*!< 0x01000000 */ +#define ADC_CR1_RESSEL_1 (0x2UL << ADC_CR1_RESSEL_Pos) +#define ADC_CR1_ADSTP_Pos (27U) +#define ADC_CR1_ADSTP_Msk (0x1UL << ADC_CR1_ADSTP_Pos) /*!< 0x08000000 */ +#define ADC_CR1_ADSTP ADC_CR1_ADSTP_Msk +#define ADC_CR1_MSBSEL_Pos (28U) +#define ADC_CR1_MSBSEL_Msk (0x1UL << ADC_CR1_MSBSEL_Pos) /*!< 0x10000000 */ +#define ADC_CR1_MSBSEL ADC_CR1_MSBSEL_Msk +#define ADC_CR1_OVETIE_Pos (29U) +#define ADC_CR1_OVETIE_Msk (0x1UL << ADC_CR1_OVETIE_Pos) /*!< 0x10000000 */ +#define ADC_CR1_OVETIE ADC_CR1_OVETIE_Msk + +/*!< ADC_CR2 */ +#define ADC_CR2_ADON_Pos (0U) +#define ADC_CR2_ADON_Msk (0x1UL << ADC_CR2_ADON_Pos) /*!< 0x00000001 */ +#define ADC_CR2_ADON ADC_CR2_ADON_Msk /*!< desc ADON */ +#define ADC_CR2_CONT_Pos (1U) +#define ADC_CR2_CONT_Msk (0x1UL << ADC_CR2_CONT_Pos) /*!< 0x00000002 */ +#define ADC_CR2_CONT ADC_CR2_CONT_Msk /*!< desc CONT */ +#define ADC_CR2_CAL_Pos (2U) +#define ADC_CR2_CAL_Msk (0x1UL << ADC_CR2_CAL_Pos) /*!< 0x00000004 */ +#define ADC_CR2_CAL ADC_CR2_CAL_Msk /*!< desc CAL */ +#define ADC_CR2_RSTCAL_Pos (3U) +#define ADC_CR2_RSTCAL_Msk (0x1UL << ADC_CR2_RSTCAL_Pos) /*!< 0x00000008 */ +#define ADC_CR2_RSTCAL ADC_CR2_RSTCAL_Msk +#define ADC_CR2_DMA_Pos (8U) +#define ADC_CR2_DMA_Msk (0x1UL << ADC_CR2_DMA_Pos) /*!< 0x00000100 */ +#define ADC_CR2_DMA ADC_CR2_DMA_Msk +#define ADC_CR2_ALIGN_Pos (11U) +#define ADC_CR2_ALIGN_Msk (0x1UL << ADC_CR2_ALIGN_Pos) /*!< 0x00000800 */ +#define ADC_CR2_ALIGN ADC_CR2_ALIGN_Msk /*!< desc ALIGN */ +#define ADC_CR2_JEXTSEL_Pos (12U) +#define ADC_CR2_JEXTSEL_Msk (0x7UL << ADC_CR2_JEXTSEL_Pos) /*!< 0x00007000 */ +#define ADC_CR2_JEXTSEL ADC_CR2_JEXTSEL_Msk /*!< JEXTSEL[14:12] bits (desc JEXTSEL) */ +#define ADC_CR2_JEXTSEL_0 (0x1UL << ADC_CR2_JEXTSEL_Pos) /*!< 0x00001000 */ +#define ADC_CR2_JEXTSEL_1 (0x2UL << ADC_CR2_JEXTSEL_Pos) /*!< 0x00002000 */ +#define ADC_CR2_JEXTSEL_2 (0x4UL << ADC_CR2_JEXTSEL_Pos) /*!< 0x00004000 */ +#define ADC_CR2_JEXTTRIG_Pos (15U) +#define ADC_CR2_JEXTTRIG_Msk (0x1UL << ADC_CR2_JEXTTRIG_Pos) /*!< 0x00008000 */ +#define ADC_CR2_JEXTTRIG ADC_CR2_JEXTTRIG_Msk /*!< desc JEXTTRIG */ +#define ADC_CR2_EXTSEL_Pos (17U) +#define ADC_CR2_EXTSEL_Msk (0x7UL << ADC_CR2_EXTSEL_Pos) /*!< 0x000E0000 */ +#define ADC_CR2_EXTSEL ADC_CR2_EXTSEL_Msk /*!< EXTSEL[19:17] bits (desc EXTSEL) */ +#define ADC_CR2_EXTSEL_0 (0x1UL << ADC_CR2_EXTSEL_Pos) /*!< 0x00020000 */ +#define ADC_CR2_EXTSEL_1 (0x2UL << ADC_CR2_EXTSEL_Pos) /*!< 0x00040000 */ +#define ADC_CR2_EXTSEL_2 (0x4UL << ADC_CR2_EXTSEL_Pos) /*!< 0x00080000 */ +#define ADC_CR2_EXTTRIG_Pos (20U) +#define ADC_CR2_EXTTRIG_Msk (0x1UL << ADC_CR2_EXTTRIG_Pos) /*!< 0x00100000 */ +#define ADC_CR2_EXTTRIG ADC_CR2_EXTTRIG_Msk /*!< desc EXTTRIG */ +#define ADC_CR2_JSWSTART_Pos (21U) +#define ADC_CR2_JSWSTART_Msk (0x1UL << ADC_CR2_JSWSTART_Pos) /*!< 0x00200000 */ +#define ADC_CR2_JSWSTART ADC_CR2_JSWSTART_Msk /*!< desc JSWSTART */ +#define ADC_CR2_SWSTART_Pos (22U) +#define ADC_CR2_SWSTART_Msk (0x1UL << ADC_CR2_SWSTART_Pos) /*!< 0x00400000 */ +#define ADC_CR2_SWSTART ADC_CR2_SWSTART_Msk /*!< desc SWSTART */ +#define ADC_CR2_TSVREFE_Pos (23U) +#define ADC_CR2_TSVREFE_Msk (0x1UL << ADC_CR2_TSVREFE_Pos) /*!< 0x00800000 */ +#define ADC_CR2_TSVREFE ADC_CR2_TSVREFE_Msk +#define ADC_CR2_VERFBUFFEREN_Pos (25U) +#define ADC_CR2_VERFBUFFEREN_Msk (0x1UL << ADC_CR2_VERFBUFFEREN_Pos) /*!< 0x00800000 */ +#define ADC_CR2_VERFBUFFEREN ADC_CR2_VERFBUFFEREN_Msk +#define ADC_CR2_VERFBUFFERSEL_Pos (26U) +#define ADC_CR2_VERFBUFFERSEL_Msk (0x3UL << ADC_CR2_VERFBUFFERSEL_Pos) /*!< 0x00800000 */ +#define ADC_CR2_VERFBUFFERSELE ADC_CR2_VERFBUFFERSEL_Msk +#define ADC_CR2_VERFBUFFERSELE_0 (0x1UL << ADC_CR2_VERFBUFFERSEL_Pos) /*!< 0x00001000 */ +#define ADC_CR2_VERFBUFFERSELE_1 (0x2UL << ADC_CR2_VERFBUFFERSEL_Pos) + +/*!< ADC_SMPR1 */ +#define ADC_SMPR1_SMP20_Pos (0U) +#define ADC_SMPR1_SMP20_Msk (0x7UL << ADC_SMPR1_SMP20_Pos) /*!< 0x00000007 */ +#define ADC_SMPR1_SMP20 ADC_SMPR1_SMP20_Msk /*!< SMP10[2:0] bits (desc SMP10) */ +#define ADC_SMPR1_SMP20_0 (0x1UL << ADC_SMPR1_SMP20_Pos) /*!< 0x00000001 */ +#define ADC_SMPR1_SMP20_1 (0x2UL << ADC_SMPR1_SMP20_Pos) /*!< 0x00000002 */ +#define ADC_SMPR1_SMP20_2 (0x4UL << ADC_SMPR1_SMP20_Pos) /*!< 0x00000004 */ +#define ADC_SMPR1_SMP21_Pos (3U) +#define ADC_SMPR1_SMP21_Msk (0x7UL << ADC_SMPR1_SMP21_Pos) /*!< 0x00000038 */ +#define ADC_SMPR1_SMP21 ADC_SMPR1_SMP21_Msk /*!< SMP11[5:3] bits (desc SMP11) */ +#define ADC_SMPR1_SMP21_0 (0x1UL << ADC_SMPR1_SMP21_Pos) /*!< 0x00000008 */ +#define ADC_SMPR1_SMP21_1 (0x2UL << ADC_SMPR1_SMP21_Pos) /*!< 0x00000010 */ +#define ADC_SMPR1_SMP21_2 (0x4UL << ADC_SMPR1_SMP21_Pos) /*!< 0x00000020 */ +#define ADC_SMPR1_SMP22_Pos (6U) +#define ADC_SMPR1_SMP22_Msk (0x7UL << ADC_SMPR1_SMP22_Pos) /*!< 0x000001C0 */ +#define ADC_SMPR1_SMP22 ADC_SMPR1_SMP22_Msk /*!< SMP12[8:6] bits (desc SMP12) */ +#define ADC_SMPR1_SMP22_0 (0x1UL << ADC_SMPR1_SMP22_Pos) /*!< 0x00000040 */ +#define ADC_SMPR1_SMP22_1 (0x2UL << ADC_SMPR1_SMP22_Pos) /*!< 0x00000080 */ +#define ADC_SMPR1_SMP22_2 (0x4UL << ADC_SMPR1_SMP22_Pos) /*!< 0x00000100 */ +#define ADC_SMPR1_SMP23_Pos (9U) +#define ADC_SMPR1_SMP23_Msk (0x7UL << ADC_SMPR1_SMP23_Pos) /*!< 0x00000E00 */ +#define ADC_SMPR1_SMP23 ADC_SMPR1_SMP23_Msk /*!< SMP13[11:9] bits (desc SMP13) */ +#define ADC_SMPR1_SMP23_0 (0x1UL << ADC_SMPR1_SMP23_Pos) /*!< 0x00000200 */ +#define ADC_SMPR1_SMP23_1 (0x2UL << ADC_SMPR1_SMP23_Pos) /*!< 0x00000400 */ +#define ADC_SMPR1_SMP23_2 (0x4UL << ADC_SMPR1_SMP23_Pos) /*!< 0x00000800 */ + +/*!< ADC_SMPR2 */ +#define ADC_SMPR2_SMP10_Pos (0U) +#define ADC_SMPR2_SMP10_Msk (0x7UL << ADC_SMPR2_SMP10_Pos) /*!< 0x00000007 */ +#define ADC_SMPR2_SMP10 ADC_SMPR2_SMP10_Msk /*!< SMP0[2:0] bits (desc SMP0) */ +#define ADC_SMPR2_SMP10_0 (0x1UL << ADC_SMPR2_SMP10_Pos) /*!< 0x00000001 */ +#define ADC_SMPR2_SMP10_1 (0x2UL << ADC_SMPR2_SMP10_Pos) /*!< 0x00000002 */ +#define ADC_SMPR2_SMP10_2 (0x4UL << ADC_SMPR2_SMP10_Pos) +#define ADC_SMPR2_SMP11_Pos (3U) +#define ADC_SMPR2_SMP11_Msk (0x7UL << ADC_SMPR2_SMP11_Pos) /*!< 0x00000007 */ +#define ADC_SMPR2_SMP11 ADC_SMPR2_SMP11_Msk /*!< SMP0[2:0] bits (desc SMP0) */ +#define ADC_SMPR2_SMP11_0 (0x1UL << ADC_SMPR2_SMP11_Pos) /*!< 0x00000001 */ +#define ADC_SMPR2_SMP11_1 (0x2UL << ADC_SMPR2_SMP11_Pos) /*!< 0x00000002 */ +#define ADC_SMPR2_SMP11_2 (0x4UL << ADC_SMPR2_SMP11_Pos) +#define ADC_SMPR2_SMP12_Pos (6U) +#define ADC_SMPR2_SMP12_Msk (0x7UL << ADC_SMPR2_SMP12_Pos) /*!< 0x00000007 */ +#define ADC_SMPR2_SMP12 ADC_SMPR2_SMP12_Msk /*!< SMP0[2:0] bits (desc SMP0) */ +#define ADC_SMPR2_SMP12_0 (0x1UL << ADC_SMPR2_SMP12_Pos) /*!< 0x00000001 */ +#define ADC_SMPR2_SMP12_1 (0x2UL << ADC_SMPR2_SMP12_Pos) /*!< 0x00000002 */ +#define ADC_SMPR2_SMP12_2 (0x4UL << ADC_SMPR2_SMP12_Pos) +#define ADC_SMPR2_SMP13_Pos (9U) +#define ADC_SMPR2_SMP13_Msk (0x7UL << ADC_SMPR2_SMP13_Pos) /*!< 0x00000007 */ +#define ADC_SMPR2_SMP13 ADC_SMPR2_SMP13_Msk /*!< SMP0[2:0] bits (desc SMP0) */ +#define ADC_SMPR2_SMP13_0 (0x1UL << ADC_SMPR2_SMP13_Pos) /*!< 0x00000001 */ +#define ADC_SMPR2_SMP13_1 (0x2UL << ADC_SMPR2_SMP13_Pos) /*!< 0x00000002 */ +#define ADC_SMPR2_SMP13_2 (0x4UL << ADC_SMPR2_SMP13_Pos) +#define ADC_SMPR2_SMP14_Pos (12U) +#define ADC_SMPR2_SMP14_Msk (0x7UL << ADC_SMPR2_SMP14_Pos) /*!< 0x00000007 */ +#define ADC_SMPR2_SMP14 ADC_SMPR2_SMP14_Msk /*!< SMP0[2:0] bits (desc SMP0) */ +#define ADC_SMPR2_SMP14_0 (0x1UL << ADC_SMPR2_SMP14_Pos) /*!< 0x00000001 */ +#define ADC_SMPR2_SMP14_1 (0x2UL << ADC_SMPR2_SMP14_Pos) /*!< 0x00000002 */ +#define ADC_SMPR2_SMP14_2 (0x4UL << ADC_SMPR2_SMP14_Pos) +#define ADC_SMPR2_SMP15_Pos (15U) +#define ADC_SMPR2_SMP15_Msk (0x7UL << ADC_SMPR2_SMP15_Pos) /*!< 0x00038000 */ +#define ADC_SMPR2_SMP15 ADC_SMPR2_SMP15_Msk /*!< SMP15[17:15] bits (desc SMP15) */ +#define ADC_SMPR2_SMP15_0 (0x1UL << ADC_SMPR2_SMP15_Pos) /*!< 0x00008000 */ +#define ADC_SMPR2_SMP15_1 (0x2UL << ADC_SMPR2_SMP15_Pos) /*!< 0x00010000 */ +#define ADC_SMPR2_SMP15_2 (0x4UL << ADC_SMPR2_SMP15_Pos) /*!< 0x00020000 */ +#define ADC_SMPR2_SMP16_Pos (18U) +#define ADC_SMPR2_SMP16_Msk (0x7UL << ADC_SMPR2_SMP16_Pos) /*!< 0x00038000 */ +#define ADC_SMPR2_SMP16 ADC_SMPR2_SMP16_Msk /*!< SMP15[17:15] bits (desc SMP15) */ +#define ADC_SMPR2_SMP16_0 (0x1UL << ADC_SMPR2_SMP16_Pos) /*!< 0x00008000 */ +#define ADC_SMPR2_SMP16_1 (0x2UL << ADC_SMPR2_SMP16_Pos) /*!< 0x00010000 */ +#define ADC_SMPR2_SMP16_2 (0x4UL << ADC_SMPR2_SMP16_Pos) +#define ADC_SMPR2_SMP17_Pos (21U) +#define ADC_SMPR2_SMP17_Msk (0x7UL << ADC_SMPR2_SMP17_Pos) /*!< 0x00038000 */ +#define ADC_SMPR2_SMP17 ADC_SMPR2_SMP17_Msk /*!< SMP15[17:15] bits (desc SMP15) */ +#define ADC_SMPR2_SMP17_0 (0x1UL << ADC_SMPR2_SMP17_Pos) /*!< 0x00008000 */ +#define ADC_SMPR2_SMP17_1 (0x2UL << ADC_SMPR2_SMP17_Pos) /*!< 0x00010000 */ +#define ADC_SMPR2_SMP17_2 (0x4UL << ADC_SMPR2_SMP17_Pos) +#define ADC_SMPR2_SMP18_Pos (24U) +#define ADC_SMPR2_SMP18_Msk (0x7UL << ADC_SMPR2_SMP18_Pos) /*!< 0x00038000 */ +#define ADC_SMPR2_SMP18 ADC_SMPR2_SMP18_Msk /*!< SMP15[17:15] bits (desc SMP15) */ +#define ADC_SMPR2_SMP18_0 (0x1UL << ADC_SMPR2_SMP18_Pos) /*!< 0x00008000 */ +#define ADC_SMPR2_SMP18_1 (0x2UL << ADC_SMPR2_SMP18_Pos) /*!< 0x00010000 */ +#define ADC_SMPR2_SMP18_2 (0x4UL << ADC_SMPR2_SMP18_Pos) +#define ADC_SMPR2_SMP19_Pos (27U) +#define ADC_SMPR2_SMP19_Msk (0x7UL << ADC_SMPR2_SMP19_Pos) /*!< 0x00038000 */ +#define ADC_SMPR2_SMP19 ADC_SMPR2_SMP19_Msk /*!< SMP15[17:15] bits (desc SMP15) */ +#define ADC_SMPR2_SMP19_0 (0x1UL << ADC_SMPR2_SMP19_Pos) /*!< 0x00008000 */ +#define ADC_SMPR2_SMP19_1 (0x2UL << ADC_SMPR2_SMP19_Pos) /*!< 0x00010000 */ +#define ADC_SMPR2_SMP19_2 (0x4UL << ADC_SMPR2_SMP19_Pos) +#define ADC_SMPR3_SMP0_Pos (0U) +#define ADC_SMPR3_SMP0_Msk (0x7UL << ADC_SMPR3_SMP0_Pos) /*!< 0x00038000 */ +#define ADC_SMPR3_SMP0 ADC_SMPR3_SMP0_Msk /*!< SMP15[17:15] bits (desc SMP15) */ +#define ADC_SMPR3_SMP0_0 (0x1UL << ADC_SMPR3_SMP0_Pos) /*!< 0x00008000 */ +#define ADC_SMPR3_SMP0_1 (0x2UL << ADC_SMPR3_SMP0_Pos) /*!< 0x00010000 */ +#define ADC_SMPR3_SMP0_2 (0x4UL << ADC_SMPR3_SMP0_Pos) +#define ADC_SMPR3_SMP1_Pos (3U) +#define ADC_SMPR3_SMP1_Msk (0x7UL << ADC_SMPR3_SMP1_Pos) /*!< 0x00038000 */ +#define ADC_SMPR3_SMP1 ADC_SMPR3_SMP1_Msk /*!< SMP15[17:15] bits (desc SMP15) */ +#define ADC_SMPR3_SMP1_0 (0x1UL << ADC_SMPR3_SMP1_Pos) /*!< 0x00008000 */ +#define ADC_SMPR3_SMP1_1 (0x2UL << ADC_SMPR3_SMP1_Pos) /*!< 0x00010000 */ +#define ADC_SMPR3_SMP1_2 (0x4UL << ADC_SMPR3_SMP1_Pos) +#define ADC_SMPR3_SMP2_Pos (6U) +#define ADC_SMPR3_SMP2_Msk (0x7UL << ADC_SMPR3_SMP2_Pos) /*!< 0x00038000 */ +#define ADC_SMPR3_SMP2 ADC_SMPR3_SMP2_Msk /*!< SMP15[17:15] bits (desc SMP15) */ +#define ADC_SMPR3_SMP2_0 (0x1UL << ADC_SMPR3_SMP2_Pos) /*!< 0x00008000 */ +#define ADC_SMPR3_SMP2_1 (0x2UL << ADC_SMPR3_SMP2_Pos) /*!< 0x00010000 */ +#define ADC_SMPR3_SMP2_2 (0x4UL << ADC_SMPR3_SMP2_Pos) +#define ADC_SMPR3_SMP3_Pos (9U) +#define ADC_SMPR3_SMP3_Msk (0x7UL << ADC_SMPR3_SMP3_Pos) /*!< 0x00038000 */ +#define ADC_SMPR3_SMP3 ADC_SMPR3_SMP3_Msk /*!< SMP15[17:15] bits (desc SMP15) */ +#define ADC_SMPR3_SMP3_0 (0x1UL << ADC_SMPR3_SMP3_Pos) /*!< 0x00008000 */ +#define ADC_SMPR3_SMP3_1 (0x2UL << ADC_SMPR3_SMP3_Pos) /*!< 0x00010000 */ +#define ADC_SMPR3_SMP3_2 (0x4UL << ADC_SMPR3_SMP3_Pos) +#define ADC_SMPR3_SMP4_Pos (12U) +#define ADC_SMPR3_SMP4_Msk (0x7UL << ADC_SMPR3_SMP4_Pos) /*!< 0x00038000 */ +#define ADC_SMPR3_SMP4 ADC_SMPR3_SMP4_Msk /*!< SMP15[17:15] bits (desc SMP15) */ +#define ADC_SMPR3_SMP4_0 (0x1UL << ADC_SMPR3_SMP4_Pos) /*!< 0x00008000 */ +#define ADC_SMPR3_SMP4_1 (0x2UL << ADC_SMPR3_SMP4_Pos) /*!< 0x00010000 */ +#define ADC_SMPR3_SMP4_2 (0x4UL << ADC_SMPR3_SMP4_Pos) +#define ADC_SMPR3_SMP5_Pos (15U) +#define ADC_SMPR3_SMP5_Msk (0x7UL << ADC_SMPR3_SMP5_Pos) /*!< 0x00038000 */ +#define ADC_SMPR3_SMP5 ADC_SMPR3_SMP5_Msk /*!< SMP15[17:15] bits (desc SMP15) */ +#define ADC_SMPR3_SMP5_0 (0x1UL << ADC_SMPR3_SMP5_Pos) /*!< 0x00008000 */ +#define ADC_SMPR3_SMP5_1 (0x2UL << ADC_SMPR3_SMP5_Pos) /*!< 0x00010000 */ +#define ADC_SMPR3_SMP5_2 (0x4UL << ADC_SMPR3_SMP5_Pos) +#define ADC_SMPR3_SMP6_Pos (18U) +#define ADC_SMPR3_SMP6_Msk (0x7UL << ADC_SMPR3_SMP6_Pos) /*!< 0x00038000 */ +#define ADC_SMPR3_SMP6 ADC_SMPR3_SMP6_Msk /*!< SMP15[17:15] bits (desc SMP15) */ +#define ADC_SMPR3_SMP6_0 (0x1UL << ADC_SMPR3_SMP6_Pos) /*!< 0x00008000 */ +#define ADC_SMPR3_SMP6_1 (0x2UL << ADC_SMPR3_SMP6_Pos) /*!< 0x00010000 */ +#define ADC_SMPR3_SMP6_2 (0x4UL << ADC_SMPR3_SMP6_Pos) +#define ADC_SMPR3_SMP7_Pos (21U) +#define ADC_SMPR3_SMP7_Msk (0x7UL << ADC_SMPR3_SMP7_Pos) /*!< 0x00038000 */ +#define ADC_SMPR3_SMP7 ADC_SMPR3_SMP7_Msk /*!< SMP15[17:15] bits (desc SMP15) */ +#define ADC_SMPR3_SMP7_0 (0x1UL << ADC_SMPR3_SMP7_Pos) /*!< 0x00008000 */ +#define ADC_SMPR3_SMP7_1 (0x2UL << ADC_SMPR3_SMP7_Pos) /*!< 0x00010000 */ +#define ADC_SMPR3_SMP7_2 (0x4UL << ADC_SMPR3_SMP7_Pos) +#define ADC_SMPR3_SMP8_Pos (24U) +#define ADC_SMPR3_SMP8_Msk (0x7UL << ADC_SMPR3_SMP8_Pos) /*!< 0x00038000 */ +#define ADC_SMPR3_SMP8 ADC_SMPR3_SMP8_Msk /*!< SMP15[17:15] bits (desc SMP15) */ +#define ADC_SMPR3_SMP8_0 (0x1UL << ADC_SMPR3_SMP8_Pos) /*!< 0x00008000 */ +#define ADC_SMPR3_SMP8_1 (0x2UL << ADC_SMPR3_SMP8_Pos) /*!< 0x00010000 */ +#define ADC_SMPR3_SMP8_2 (0x4UL << ADC_SMPR3_SMP8_Pos) +#define ADC_SMPR3_SMP9_Pos (27U) +#define ADC_SMPR3_SMP9_Msk (0x7UL << ADC_SMPR3_SMP9_Pos) /*!< 0x00038000 */ +#define ADC_SMPR3_SMP9 ADC_SMPR3_SMP9_Msk /*!< SMP15[17:15] bits (desc SMP15) */ +#define ADC_SMPR3_SMP9_0 (0x1UL << ADC_SMPR3_SMP9_Pos) /*!< 0x00008000 */ +#define ADC_SMPR3_SMP9_1 (0x2UL << ADC_SMPR3_SMP9_Pos) /*!< 0x00010000 */ +#define ADC_SMPR3_SMP9_2 (0x4UL << ADC_SMPR3_SMP9_Pos) + +/*!< ADC_JOFR1 */ +#define ADC_JOFR1_JOFFSET1_Pos (0U) +#define ADC_JOFR1_JOFFSET1_Msk (0xFFFUL << ADC_JOFR1_JOFFSET1_Pos) /*!< 0x00000FFF */ +#define ADC_JOFR1_JOFFSET1 ADC_JOFR1_JOFFSET1_Msk /*!< JOFFSET1[11:0] bits (desc JOFFSET1) */ + +/*!< ADC_JOFR2 */ +#define ADC_JOFR2_JOFFSET2_Pos (0U) +#define ADC_JOFR2_JOFFSET2_Msk (0xFFFUL << ADC_JOFR2_JOFFSET2_Pos) /*!< 0x00000FFF */ +#define ADC_JOFR2_JOFFSET2 ADC_JOFR2_JOFFSET2_Msk /*!< JOFFSET2[11:0] bits (desc JOFFSET2) */ + +/*!< ADC_JOFR3 */ +#define ADC_JOFR3_JOFFSET3_Pos (0U) +#define ADC_JOFR3_JOFFSET3_Msk (0xFFFUL << ADC_JOFR3_JOFFSET3_Pos) /*!< 0x00000FFF */ +#define ADC_JOFR3_JOFFSET3 ADC_JOFR3_JOFFSET3_Msk /*!< JOFFSET3[11:0] bits (desc JOFFSET3) */ + +/*!< ADC_JOFR4 */ +#define ADC_JOFR4_JOFFSET4_Pos (0U) +#define ADC_JOFR4_JOFFSET4_Msk (0xFFFUL << ADC_JOFR4_JOFFSET4_Pos) /*!< 0x00000FFF */ +#define ADC_JOFR4_JOFFSET4 ADC_JOFR4_JOFFSET4_Msk /*!< JOFFSET4[11:0] bits (desc JOFFSET4) */ + +/*!< ADC_HTR */ +#define ADC_HTR_HT_Pos (0U) +#define ADC_HTR_HT_Msk (0xFFFUL << ADC_HTR_HT_Pos) /*!< 0x00000FFF */ +#define ADC_HTR_HT ADC_HTR_HT_Msk /*!< HT[11:0] bits (desc HT) */ + +/*!< ADC_LTR */ +#define ADC_LTR_LT_Pos (0U) +#define ADC_LTR_LT_Msk (0xFFFUL << ADC_LTR_LT_Pos) /*!< 0x00000FFF */ +#define ADC_LTR_LT ADC_LTR_LT_Msk + +/*!< ADC_SQR1 */ +#define ADC_SQR1_SQ13_Pos (0U) +#define ADC_SQR1_SQ13_Msk (0x1FUL << ADC_SQR1_SQ13_Pos) /*!< 0x0000001F */ +#define ADC_SQR1_SQ13 ADC_SQR1_SQ13_Msk /*!< SQ13[4:0] bits (desc SQ13) */ +#define ADC_SQR1_SQ13_0 (0x1UL << ADC_SQR1_SQ13_Pos) /*!< 0x00000001 */ +#define ADC_SQR1_SQ13_1 (0x2UL << ADC_SQR1_SQ13_Pos) /*!< 0x00000002 */ +#define ADC_SQR1_SQ13_2 (0x4UL << ADC_SQR1_SQ13_Pos) /*!< 0x00000004 */ +#define ADC_SQR1_SQ13_3 (0x8UL << ADC_SQR1_SQ13_Pos) /*!< 0x00000008 */ +#define ADC_SQR1_SQ13_4 (0x10UL << ADC_SQR1_SQ13_Pos) /*!< 0x00000010 */ +#define ADC_SQR1_SQ14_Pos (5U) +#define ADC_SQR1_SQ14_Msk (0x1FUL << ADC_SQR1_SQ14_Pos) /*!< 0x000003E0 */ +#define ADC_SQR1_SQ14 ADC_SQR1_SQ14_Msk /*!< SQ14[9:5] bits (desc SQ14) */ +#define ADC_SQR1_SQ14_0 (0x1UL << ADC_SQR1_SQ14_Pos) /*!< 0x00000020 */ +#define ADC_SQR1_SQ14_1 (0x2UL << ADC_SQR1_SQ14_Pos) /*!< 0x00000040 */ +#define ADC_SQR1_SQ14_2 (0x4UL << ADC_SQR1_SQ14_Pos) /*!< 0x00000080 */ +#define ADC_SQR1_SQ14_3 (0x8UL << ADC_SQR1_SQ14_Pos) /*!< 0x00000100 */ +#define ADC_SQR1_SQ14_4 (0x10UL << ADC_SQR1_SQ14_Pos) /*!< 0x00000200 */ +#define ADC_SQR1_SQ15_Pos (10U) +#define ADC_SQR1_SQ15_Msk (0x1FUL << ADC_SQR1_SQ15_Pos) /*!< 0x00007C00 */ +#define ADC_SQR1_SQ15 ADC_SQR1_SQ15_Msk /*!< SQ15[14:10] bits (desc SQ15) */ +#define ADC_SQR1_SQ15_0 (0x1UL << ADC_SQR1_SQ15_Pos) /*!< 0x00000400 */ +#define ADC_SQR1_SQ15_1 (0x2UL << ADC_SQR1_SQ15_Pos) /*!< 0x00000800 */ +#define ADC_SQR1_SQ15_2 (0x4UL << ADC_SQR1_SQ15_Pos) /*!< 0x00001000 */ +#define ADC_SQR1_SQ15_3 (0x8UL << ADC_SQR1_SQ15_Pos) /*!< 0x00002000 */ +#define ADC_SQR1_SQ15_4 (0x10UL << ADC_SQR1_SQ15_Pos) /*!< 0x00004000 */ +#define ADC_SQR1_SQ16_Pos (15U) +#define ADC_SQR1_SQ16_Msk (0x1FUL << ADC_SQR1_SQ16_Pos) /*!< 0x000F8000 */ +#define ADC_SQR1_SQ16 ADC_SQR1_SQ16_Msk /*!< SQ16[19:15] bits (desc SQ16) */ +#define ADC_SQR1_SQ16_0 (0x1UL << ADC_SQR1_SQ16_Pos) /*!< 0x00008000 */ +#define ADC_SQR1_SQ16_1 (0x2UL << ADC_SQR1_SQ16_Pos) /*!< 0x00010000 */ +#define ADC_SQR1_SQ16_2 (0x4UL << ADC_SQR1_SQ16_Pos) /*!< 0x00020000 */ +#define ADC_SQR1_SQ16_3 (0x8UL << ADC_SQR1_SQ16_Pos) /*!< 0x00040000 */ +#define ADC_SQR1_SQ16_4 (0x10UL << ADC_SQR1_SQ16_Pos) /*!< 0x00080000 */ +#define ADC_SQR1_L_Pos (20U) +#define ADC_SQR1_L_Msk (0xFUL << ADC_SQR1_L_Pos) /*!< 0x00F00000 */ +#define ADC_SQR1_L ADC_SQR1_L_Msk /*!< L[23:20] bits (desc L) */ +#define ADC_SQR1_L_0 (0x1UL << ADC_SQR1_L_Pos) /*!< 0x00100000 */ +#define ADC_SQR1_L_1 (0x2UL << ADC_SQR1_L_Pos) /*!< 0x00200000 */ +#define ADC_SQR1_L_2 (0x4UL << ADC_SQR1_L_Pos) /*!< 0x00400000 */ +#define ADC_SQR1_L_3 (0x8UL << ADC_SQR1_L_Pos) + +/*!< ADC_SQR2 */ +#define ADC_SQR2_SQ7_Pos (0U) +#define ADC_SQR2_SQ7_Msk (0x1FUL << ADC_SQR2_SQ7_Pos) /*!< 0x0000001F */ +#define ADC_SQR2_SQ7 ADC_SQR2_SQ7_Msk /*!< SQ7[4:0] bits (desc SQ7) */ +#define ADC_SQR2_SQ7_0 (0x1UL << ADC_SQR2_SQ7_Pos) /*!< 0x00000001 */ +#define ADC_SQR2_SQ7_1 (0x2UL << ADC_SQR2_SQ7_Pos) /*!< 0x00000002 */ +#define ADC_SQR2_SQ7_2 (0x4UL << ADC_SQR2_SQ7_Pos) /*!< 0x00000004 */ +#define ADC_SQR2_SQ7_3 (0x8UL << ADC_SQR2_SQ7_Pos) /*!< 0x00000008 */ +#define ADC_SQR2_SQ7_4 (0x10UL << ADC_SQR2_SQ7_Pos) /*!< 0x00000010 */ +#define ADC_SQR2_SQ8_Pos (5U) +#define ADC_SQR2_SQ8_Msk (0x1FUL << ADC_SQR2_SQ8_Pos) /*!< 0x000003E0 */ +#define ADC_SQR2_SQ8 ADC_SQR2_SQ8_Msk /*!< SQ8[9:5] bits (desc SQ8) */ +#define ADC_SQR2_SQ8_0 (0x1UL << ADC_SQR2_SQ8_Pos) /*!< 0x00000020 */ +#define ADC_SQR2_SQ8_1 (0x2UL << ADC_SQR2_SQ8_Pos) /*!< 0x00000040 */ +#define ADC_SQR2_SQ8_2 (0x4UL << ADC_SQR2_SQ8_Pos) /*!< 0x00000080 */ +#define ADC_SQR2_SQ8_3 (0x8UL << ADC_SQR2_SQ8_Pos) /*!< 0x00000100 */ +#define ADC_SQR2_SQ8_4 (0x10UL << ADC_SQR2_SQ8_Pos) /*!< 0x00000200 */ +#define ADC_SQR2_SQ9_Pos (10U) +#define ADC_SQR2_SQ9_Msk (0x1FUL << ADC_SQR2_SQ9_Pos) /*!< 0x00007C00 */ +#define ADC_SQR2_SQ9 ADC_SQR2_SQ9_Msk /*!< SQ9[14:10] bits (desc SQ9) */ +#define ADC_SQR2_SQ9_0 (0x1UL << ADC_SQR2_SQ9_Pos) /*!< 0x00000400 */ +#define ADC_SQR2_SQ9_1 (0x2UL << ADC_SQR2_SQ9_Pos) /*!< 0x00000800 */ +#define ADC_SQR2_SQ9_2 (0x4UL << ADC_SQR2_SQ9_Pos) /*!< 0x00001000 */ +#define ADC_SQR2_SQ9_3 (0x8UL << ADC_SQR2_SQ9_Pos) /*!< 0x00002000 */ +#define ADC_SQR2_SQ9_4 (0x10UL << ADC_SQR2_SQ9_Pos) /*!< 0x00004000 */ +#define ADC_SQR2_SQ10_Pos (15U) +#define ADC_SQR2_SQ10_Msk (0x1FUL << ADC_SQR2_SQ10_Pos) /*!< 0x000F8000 */ +#define ADC_SQR2_SQ10 ADC_SQR2_SQ10_Msk /*!< SQ10[19:15] bits (desc SQ10) */ +#define ADC_SQR2_SQ10_0 (0x1UL << ADC_SQR2_SQ10_Pos) /*!< 0x00008000 */ +#define ADC_SQR2_SQ10_1 (0x2UL << ADC_SQR2_SQ10_Pos) /*!< 0x00010000 */ +#define ADC_SQR2_SQ10_2 (0x4UL << ADC_SQR2_SQ10_Pos) /*!< 0x00020000 */ +#define ADC_SQR2_SQ10_3 (0x8UL << ADC_SQR2_SQ10_Pos) /*!< 0x00040000 */ +#define ADC_SQR2_SQ10_4 (0x10UL << ADC_SQR2_SQ10_Pos) /*!< 0x00080000 */ +#define ADC_SQR2_SQ11_Pos (20U) +#define ADC_SQR2_SQ11_Msk (0x1FUL << ADC_SQR2_SQ11_Pos) /*!< 0x01F00000 */ +#define ADC_SQR2_SQ11 ADC_SQR2_SQ11_Msk /*!< SQ11[24:20] bits (desc SQ11) */ +#define ADC_SQR2_SQ11_0 (0x1UL << ADC_SQR2_SQ11_Pos) /*!< 0x00100000 */ +#define ADC_SQR2_SQ11_1 (0x2UL << ADC_SQR2_SQ11_Pos) /*!< 0x00200000 */ +#define ADC_SQR2_SQ11_2 (0x4UL << ADC_SQR2_SQ11_Pos) /*!< 0x00400000 */ +#define ADC_SQR2_SQ11_3 (0x8UL << ADC_SQR2_SQ11_Pos) /*!< 0x00800000 */ +#define ADC_SQR2_SQ11_4 (0x10UL << ADC_SQR2_SQ11_Pos) /*!< 0x01000000 */ +#define ADC_SQR2_SQ12_Pos (25U) +#define ADC_SQR2_SQ12_Msk (0x1FUL << ADC_SQR2_SQ12_Pos) /*!< 0x3E000000 */ +#define ADC_SQR2_SQ12 ADC_SQR2_SQ12_Msk /*!< SQ12[29:25] bits (desc SQ12) */ +#define ADC_SQR2_SQ12_0 (0x1UL << ADC_SQR2_SQ12_Pos) /*!< 0x02000000 */ +#define ADC_SQR2_SQ12_1 (0x2UL << ADC_SQR2_SQ12_Pos) /*!< 0x04000000 */ +#define ADC_SQR2_SQ12_2 (0x4UL << ADC_SQR2_SQ12_Pos) /*!< 0x08000000 */ +#define ADC_SQR2_SQ12_3 (0x8UL << ADC_SQR2_SQ12_Pos) /*!< 0x10000000 */ +#define ADC_SQR2_SQ12_4 (0x10UL << ADC_SQR2_SQ12_Pos) /*!< 0x20000000 */ + +/*!< ADC_SQR3 */ +#define ADC_SQR3_SQ1_Pos (0U) +#define ADC_SQR3_SQ1_Msk (0x1FUL << ADC_SQR3_SQ1_Pos) /*!< 0x0000001F */ +#define ADC_SQR3_SQ1 ADC_SQR3_SQ1_Msk /*!< SQ1[4:0] bits (desc SQ1) */ +#define ADC_SQR3_SQ1_0 (0x1UL << ADC_SQR3_SQ1_Pos) /*!< 0x00000001 */ +#define ADC_SQR3_SQ1_1 (0x2UL << ADC_SQR3_SQ1_Pos) /*!< 0x00000002 */ +#define ADC_SQR3_SQ1_2 (0x4UL << ADC_SQR3_SQ1_Pos) /*!< 0x00000004 */ +#define ADC_SQR3_SQ1_3 (0x8UL << ADC_SQR3_SQ1_Pos) /*!< 0x00000008 */ +#define ADC_SQR3_SQ1_4 (0x10UL << ADC_SQR3_SQ1_Pos) /*!< 0x00000010 */ +#define ADC_SQR3_SQ2_Pos (5U) +#define ADC_SQR3_SQ2_Msk (0x1FUL << ADC_SQR3_SQ2_Pos) /*!< 0x000003E0 */ +#define ADC_SQR3_SQ2 ADC_SQR3_SQ2_Msk /*!< SQ2[9:5] bits (desc SQ2) */ +#define ADC_SQR3_SQ2_0 (0x1UL << ADC_SQR3_SQ2_Pos) /*!< 0x00000020 */ +#define ADC_SQR3_SQ2_1 (0x2UL << ADC_SQR3_SQ2_Pos) /*!< 0x00000040 */ +#define ADC_SQR3_SQ2_2 (0x4UL << ADC_SQR3_SQ2_Pos) /*!< 0x00000080 */ +#define ADC_SQR3_SQ2_3 (0x8UL << ADC_SQR3_SQ2_Pos) /*!< 0x00000100 */ +#define ADC_SQR3_SQ2_4 (0x10UL << ADC_SQR3_SQ2_Pos) /*!< 0x00000200 */ +#define ADC_SQR3_SQ3_Pos (10U) +#define ADC_SQR3_SQ3_Msk (0x1FUL << ADC_SQR3_SQ3_Pos) /*!< 0x00007C00 */ +#define ADC_SQR3_SQ3 ADC_SQR3_SQ3_Msk /*!< SQ3[14:10] bits (desc SQ3) */ +#define ADC_SQR3_SQ3_0 (0x1UL << ADC_SQR3_SQ3_Pos) /*!< 0x00000400 */ +#define ADC_SQR3_SQ3_1 (0x2UL << ADC_SQR3_SQ3_Pos) /*!< 0x00000800 */ +#define ADC_SQR3_SQ3_2 (0x4UL << ADC_SQR3_SQ3_Pos) /*!< 0x00001000 */ +#define ADC_SQR3_SQ3_3 (0x8UL << ADC_SQR3_SQ3_Pos) /*!< 0x00002000 */ +#define ADC_SQR3_SQ3_4 (0x10UL << ADC_SQR3_SQ3_Pos) /*!< 0x00004000 */ +#define ADC_SQR3_SQ4_Pos (15U) +#define ADC_SQR3_SQ4_Msk (0x1FUL << ADC_SQR3_SQ4_Pos) /*!< 0x000F8000 */ +#define ADC_SQR3_SQ4 ADC_SQR3_SQ4_Msk /*!< SQ4[19:15] bits (desc SQ4) */ +#define ADC_SQR3_SQ4_0 (0x1UL << ADC_SQR3_SQ4_Pos) /*!< 0x00008000 */ +#define ADC_SQR3_SQ4_1 (0x2UL << ADC_SQR3_SQ4_Pos) /*!< 0x00010000 */ +#define ADC_SQR3_SQ4_2 (0x4UL << ADC_SQR3_SQ4_Pos) /*!< 0x00020000 */ +#define ADC_SQR3_SQ4_3 (0x8UL << ADC_SQR3_SQ4_Pos) /*!< 0x00040000 */ +#define ADC_SQR3_SQ4_4 (0x10UL << ADC_SQR3_SQ4_Pos) +#define ADC_SQR3_SQ5_Pos (20U) +#define ADC_SQR3_SQ5_Msk (0x1UL << ADC_SQR3_SQ5_Pos) /*!< 0x01000000 */ +#define ADC_SQR3_SQ5 ADC_SQR3_SQ5_Msk +#define ADC_SQR3_SQ5_0 (0x1UL << ADC_SQR3_SQ5_Pos) /*!< 0x00008000 */ +#define ADC_SQR3_SQ5_1 (0x2UL << ADC_SQR3_SQ5_Pos) /*!< 0x00010000 */ +#define ADC_SQR3_SQ5_2 (0x4UL << ADC_SQR3_SQ5_Pos) /*!< 0x00020000 */ +#define ADC_SQR3_SQ5_3 (0x8UL << ADC_SQR3_SQ5_Pos) /*!< 0x00040000 */ +#define ADC_SQR3_SQ5_4 (0x10UL << ADC_SQR3_SQ5_Pos) +#define ADC_SQR3_SQ6_Pos (25U) +#define ADC_SQR3_SQ6_Msk (0x1FUL << ADC_SQR3_SQ6_Pos) /*!< 0x3E000000 */ +#define ADC_SQR3_SQ6 ADC_SQR3_SQ6_Msk /*!< SQ6[29:25] bits (desc SQ6) */ +#define ADC_SQR3_SQ6_0 (0x1UL << ADC_SQR3_SQ6_Pos) /*!< 0x02000000 */ +#define ADC_SQR3_SQ6_1 (0x2UL << ADC_SQR3_SQ6_Pos) /*!< 0x04000000 */ +#define ADC_SQR3_SQ6_2 (0x4UL << ADC_SQR3_SQ6_Pos) /*!< 0x08000000 */ +#define ADC_SQR3_SQ6_3 (0x8UL << ADC_SQR3_SQ6_Pos) /*!< 0x10000000 */ +#define ADC_SQR3_SQ6_4 (0x10UL << ADC_SQR3_SQ6_Pos) + +/*!< ADC_JSQR */ +#define ADC_JSQR_JSQ1_Pos (0U) +#define ADC_JSQR_JSQ1_Msk (0x1FUL << ADC_JSQR_JSQ1_Pos) /*!< 0x0000001F */ +#define ADC_JSQR_JSQ1 ADC_JSQR_JSQ1_Msk /*!< JSQ1[4:0] bits (desc JSQ1) */ +#define ADC_JSQR_JSQ1_0 (0x1UL << ADC_JSQR_JSQ1_Pos) /*!< 0x00000001 */ +#define ADC_JSQR_JSQ1_1 (0x2UL << ADC_JSQR_JSQ1_Pos) /*!< 0x00000002 */ +#define ADC_JSQR_JSQ1_2 (0x4UL << ADC_JSQR_JSQ1_Pos) /*!< 0x00000004 */ +#define ADC_JSQR_JSQ1_3 (0x8UL << ADC_JSQR_JSQ1_Pos) /*!< 0x00000008 */ +#define ADC_JSQR_JSQ1_4 (0x10UL << ADC_JSQR_JSQ1_Pos) /*!< 0x00000010 */ +#define ADC_JSQR_JSQ2_Pos (5U) +#define ADC_JSQR_JSQ2_Msk (0x1FUL << ADC_JSQR_JSQ2_Pos) /*!< 0x000003E0 */ +#define ADC_JSQR_JSQ2 ADC_JSQR_JSQ2_Msk /*!< JSQ2[9:5] bits (desc JSQ2) */ +#define ADC_JSQR_JSQ2_0 (0x1UL << ADC_JSQR_JSQ2_Pos) /*!< 0x00000020 */ +#define ADC_JSQR_JSQ2_1 (0x2UL << ADC_JSQR_JSQ2_Pos) /*!< 0x00000040 */ +#define ADC_JSQR_JSQ2_2 (0x4UL << ADC_JSQR_JSQ2_Pos) /*!< 0x00000080 */ +#define ADC_JSQR_JSQ2_3 (0x8UL << ADC_JSQR_JSQ2_Pos) /*!< 0x00000100 */ +#define ADC_JSQR_JSQ2_4 (0x10UL << ADC_JSQR_JSQ2_Pos) /*!< 0x00000200 */ +#define ADC_JSQR_JSQ3_Pos (10U) +#define ADC_JSQR_JSQ3_Msk (0x1FUL << ADC_JSQR_JSQ3_Pos) /*!< 0x00007C00 */ +#define ADC_JSQR_JSQ3 ADC_JSQR_JSQ3_Msk /*!< JSQ3[14:10] bits (desc JSQ3) */ +#define ADC_JSQR_JSQ3_0 (0x1UL << ADC_JSQR_JSQ3_Pos) /*!< 0x00000400 */ +#define ADC_JSQR_JSQ3_1 (0x2UL << ADC_JSQR_JSQ3_Pos) /*!< 0x00000800 */ +#define ADC_JSQR_JSQ3_2 (0x4UL << ADC_JSQR_JSQ3_Pos) /*!< 0x00001000 */ +#define ADC_JSQR_JSQ3_3 (0x8UL << ADC_JSQR_JSQ3_Pos) /*!< 0x00002000 */ +#define ADC_JSQR_JSQ3_4 (0x10UL << ADC_JSQR_JSQ3_Pos) /*!< 0x00004000 */ +#define ADC_JSQR_JSQ4_Pos (15U) +#define ADC_JSQR_JSQ4_Msk (0x1FUL << ADC_JSQR_JSQ4_Pos) /*!< 0x000F8000 */ +#define ADC_JSQR_JSQ4 ADC_JSQR_JSQ4_Msk /*!< JSQ4[19:15] bits (desc JSQ4) */ +#define ADC_JSQR_JSQ4_0 (0x1UL << ADC_JSQR_JSQ4_Pos) /*!< 0x00008000 */ +#define ADC_JSQR_JSQ4_1 (0x2UL << ADC_JSQR_JSQ4_Pos) /*!< 0x00010000 */ +#define ADC_JSQR_JSQ4_2 (0x4UL << ADC_JSQR_JSQ4_Pos) /*!< 0x00020000 */ +#define ADC_JSQR_JSQ4_3 (0x8UL << ADC_JSQR_JSQ4_Pos) /*!< 0x00040000 */ +#define ADC_JSQR_JSQ4_4 (0x10UL << ADC_JSQR_JSQ4_Pos) /*!< 0x00080000 */ +#define ADC_JSQR_JL_Pos (20U) +#define ADC_JSQR_JL_Msk (0x3UL << ADC_JSQR_JL_Pos) /*!< 0x00300000 */ +#define ADC_JSQR_JL ADC_JSQR_JL_Msk /*!< JL[21:20] bits (desc JL) */ +#define ADC_JSQR_JL_0 (0x1UL << ADC_JSQR_JL_Pos) /*!< 0x00100000 */ +#define ADC_JSQR_JL_1 (0x2UL << ADC_JSQR_JL_Pos) /*!< 0x00200000 */ + +/*!< ADC_JDR1 */ +#define ADC_JDR1_JDR1_Pos (0U) +#define ADC_JDR1_JDR1_Msk (0xFFFFUL << ADC_JDR1_JDR1_Pos) /*!< 0x0000FFFF */ +#define ADC_JDR1_JDR1 ADC_JDR1_JDR1_Msk /*!< JDR1[15:0] bits (desc JDR1) */ + +/*!< ADC_JDR2 */ +#define ADC_JDR2_JDR2_Pos (0U) +#define ADC_JDR2_JDR2_Msk (0xFFFFUL << ADC_JDR2_JDR2_Pos) /*!< 0x0000FFFF */ +#define ADC_JDR2_JDR2 ADC_JDR2_JDR2_Msk /*!< JDR2[15:0] bits (desc JDR2) */ + +/*!< ADC_JDR3 */ +#define ADC_JDR3_JDR3_Pos (0U) +#define ADC_JDR3_JDR3_Msk (0xFFFFUL << ADC_JDR3_JDR3_Pos) /*!< 0x0000FFFF */ +#define ADC_JDR3_JDR3 ADC_JDR3_JDR3_Msk /*!< JDR3[15:0] bits (desc JDR3) */ + +/*!< ADC_JDR4 */ +#define ADC_JDR4_JDR4_Pos (0U) +#define ADC_JDR4_JDR4_Msk (0xFFFFUL << ADC_JDR4_JDR4_Pos) /*!< 0x0000FFFF */ +#define ADC_JDR4_JDR4 ADC_JDR4_JDR4_Msk + +/*!< ADC_DR */ +#define ADC_DR_DATA_Pos (0U) +#define ADC_DR_DATA_Msk (0xFFFFUL << ADC_DR_DATA_Pos) /*!< 0x0000FFFF */ +#define ADC_DR_DATA ADC_DR_DATA_Msk + +/*!< ADC_CCSR */ +#define ADC_CCSR_CALSEL_Pos (11U) +#define ADC_CCSR_CALSEL_Msk (0x1UL << ADC_CCSR_CALSEL_Pos) /*!< 0x00000800 */ +#define ADC_CCSR_CALSEL ADC_CCSR_CALSEL_Msk /*!< desc CALSEL */ +#define ADC_CCSR_CALSMP_Pos (12U) +#define ADC_CCSR_CALSMP_Msk (0x3UL << ADC_CCSR_CALSMP_Pos) /*!< 0x00003000 */ +#define ADC_CCSR_CALSMP ADC_CCSR_CALSMP_Msk /*!< CALSMP[13:12] bits (desc CALSMP) */ +#define ADC_CCSR_CALSMP_0 (0x1UL << ADC_CCSR_CALSMP_Pos) /*!< 0x00001000 */ +#define ADC_CCSR_CALSMP_1 (0x2UL << ADC_CCSR_CALSMP_Pos) /*!< 0x00002000 */ +#define ADC_CCSR_CALBYP_Pos (14U) +#define ADC_CCSR_CALBYP_Msk (0x1UL << ADC_CCSR_CALBYP_Pos) /*!< 0x00004000 */ +#define ADC_CCSR_CALBYP ADC_CCSR_CALBYP_Msk /*!< desc CALBYP */ +#define ADC_CCSR_CALSET_Pos (15U) +#define ADC_CCSR_CALSET_Msk (0x1UL << ADC_CCSR_CALSET_Pos) /*!< 0x00008000 */ +#define ADC_CCSR_CALSET ADC_CCSR_CALSET_Msk /*!< desc CALSET */ +#define ADC_CCSR_CALFAIL_Pos (30U) +#define ADC_CCSR_CALFAIL_Msk (0x1UL << ADC_CCSR_CALFAIL_Pos) /*!< 0x40000000 */ +#define ADC_CCSR_CALFAIL ADC_CCSR_CALFAIL_Msk /*!< desc CALFAIL */ +#define ADC_CCSR_CALON_Pos (31U) +#define ADC_CCSR_CALON_Msk (0x1UL << ADC_CCSR_CALON_Pos) /*!< 0x80000000 */ +#define ADC_CCSR_CALON ADC_CCSR_CALON_Msk + +/*!< ADC_CALRR1 */ +#define ADC_CALRR1_CALC10OUT_Pos (0U) +#define ADC_CALRR1_CALC10OUT_Msk (0xFFUL << ADC_CALRR1_CALC10OUT_Pos) /*!< 0x000000FF */ +#define ADC_CALRR1_CALC10OUT ADC_CALRR1_CALC10OUT_Msk /*!< CALC10OUT[7:0] bits (desc CALC10OUT) */ +#define ADC_CALRR1_CALC11OUT_Pos (8U) +#define ADC_CALRR1_CALC11OUT_Msk (0xFFUL << ADC_CALRR1_CALC11OUT_Pos) /*!< 0x0000FF00 */ +#define ADC_CALRR1_CALC11OUT ADC_CALRR1_CALC11OUT_Msk /*!< CALC11OUT[15:8] bits (desc CALC11OUT) */ +#define ADC_CALRR1_CALBOUT_Pos (16U) +#define ADC_CALRR1_CALBOUT_Msk (0x1FFUL << ADC_CALRR1_CALBOUT_Pos) /*!< 0x00FF0000 */ +#define ADC_CALRR1_CALBOUT ADC_CALRR1_CALBOUT_Msk + +/*!< ADC_CALRR2 */ +#define ADC_CALRR2_CALC6OUT_Pos (0U) +#define ADC_CALRR2_CALC6OUT_Msk (0xFFUL << ADC_CALRR2_CALC6OUT_Pos) /*!< 0x000000FF */ +#define ADC_CALRR2_CALC6OUT ADC_CALRR2_CALC6OUT_Msk /*!< CALC6OUT[7:0] bits (desc CALC6OUT) */ +#define ADC_CALRR2_CALC7OUT_Pos (8U) +#define ADC_CALRR2_CALC7OUT_Msk (0xFFUL << ADC_CALRR2_CALC7OUT_Pos) /*!< 0x0000FF00 */ +#define ADC_CALRR2_CALC7OUT ADC_CALRR2_CALC7OUT_Msk /*!< CALC7OUT[15:8] bits (desc CALC7OUT) */ +#define ADC_CALRR2_CALC8OUT_Pos (16U) +#define ADC_CALRR2_CALC8OUT_Msk (0xFFUL << ADC_CALRR2_CALC8OUT_Pos) /*!< 0x00FF0000 */ +#define ADC_CALRR2_CALC8OUT ADC_CALRR2_CALC8OUT_Msk /*!< CALC8OUT[23:16] bits (desc CALC8OUT) */ +#define ADC_CALRR2_CALC9OUT_Pos (24U) +#define ADC_CALRR2_CALC9OUT_Msk (0xFFUL << ADC_CALRR2_CALC9OUT_Pos) /*!< 0xFF000000 */ +#define ADC_CALRR2_CALC9OUT ADC_CALRR2_CALC9OUT_Msk /*!< CALC9OUT[31:24] bits (desc CALC9OUT) */ + +/*!< ADC_CALFIR1 */ +#define ADC_CALFIR1_CALC10IO_Pos (0U) +#define ADC_CALFIR1_CALC10IO_Msk (0xFFUL << ADC_CALFIR1_CALC10IO_Pos) /*!< 0x000000FF */ +#define ADC_CALFIR1_CALC10IO ADC_CALFIR1_CALC10IO_Msk /*!< CALC10IO[7:0] bits (desc CALC10IO) */ +#define ADC_CALFIR1_CALC11IO_Pos (8U) +#define ADC_CALFIR1_CALC11IO_Msk (0xFFUL << ADC_CALFIR1_CALC11IO_Pos) /*!< 0x0000FF00 */ +#define ADC_CALFIR1_CALC11IO ADC_CALFIR1_CALC11IO_Msk /*!< CALC11IO[15:8] bits (desc CALC11IO) */ +#define ADC_CALFIR1_CALBIO_Pos (16U) +#define ADC_CALFIR1_CALBIO_Msk (0x1FFUL << ADC_CALFIR1_CALBIO_Pos) /*!< 0x00FF0000 */ +#define ADC_CALFIR1_CALBIO ADC_CALFIR1_CALBIO_Msk + +/*!< ADC_CALFIR2 */ +#define ADC_CALFIR2_CALC6IO_Pos (0U) +#define ADC_CALFIR2_CALC6IO_Msk (0xFFUL << ADC_CALFIR2_CALC6IO_Pos) /*!< 0x000000FF */ +#define ADC_CALFIR2_CALC6IO ADC_CALFIR2_CALC6IO_Msk /*!< CALC6IO[7:0] bits (desc CALC6IO) */ +#define ADC_CALFIR2_CALC7IO_Pos (8U) +#define ADC_CALFIR2_CALC7IO_Msk (0xFFUL << ADC_CALFIR2_CALC7IO_Pos) /*!< 0x0000FF00 */ +#define ADC_CALFIR2_CALC7IO ADC_CALFIR2_CALC7IO_Msk /*!< CALC7IO[15:8] bits (desc CALC7IO) */ +#define ADC_CALFIR2_CALC8IO_Pos (16U) +#define ADC_CALFIR2_CALC8IO_Msk (0xFFUL << ADC_CALFIR2_CALC8IO_Pos) /*!< 0x00FF0000 */ +#define ADC_CALFIR2_CALC8IO ADC_CALFIR2_CALC8IO_Msk /*!< CALC8IO[23:16] bits (desc CALC8IO) */ +#define ADC_CALFIR2_CALC9IO_Pos (24U) +#define ADC_CALFIR2_CALC9IO_Msk (0xFFUL << ADC_CALFIR2_CALC9IO_Pos) /*!< 0xFF000000 */ +#define ADC_CALFIR2_CALC9IO ADC_CALFIR2_CALC9IO_Msk + +/****************************************************************************/ +/* */ +/* Controller Area Network(CAN) */ +/* */ +/****************************************************************************/ +/********************* Bits Define For Peripheral CAN *********************/ +/*!< CAN_TSNCR */ +#define CAN_TSNCR_VERSION_Pos (0U) +#define CAN_TSNCR_VERSION_Msk (0xFFFFUL << CAN_TSNCR_VERSION_Pos) /*!< 0x0000FFFF */ +#define CAN_TSNCR_VERSION CAN_TSNCR_VERSION_Msk /*!< VERSION[15:0] bits (desc VERSION) */ +#define CAN_TSNCR_CES_Pos (16U) +#define CAN_TSNCR_CES_Msk (0x1UL << CAN_TSNCR_CES_Pos) /*!< 0x00010000 */ +#define CAN_TSNCR_CES CAN_TSNCR_CES_Msk /*!< desc CES */ +#define CAN_TSNCR_ROP_Pos (17U) +#define CAN_TSNCR_ROP_Msk (0x1UL << CAN_TSNCR_ROP_Pos) /*!< 0x00020000 */ +#define CAN_TSNCR_ROP CAN_TSNCR_ROP_Msk /*!< desc ROP */ +#define CAN_TSNCR_TMSE_Pos (18U) +#define CAN_TSNCR_TMSE_Msk (0x1UL << CAN_TSNCR_TMSE_Pos) /*!< 0x00040000 */ +#define CAN_TSNCR_TMSE CAN_TSNCR_TMSE_Msk /*!< desc TMSE */ +#define CAN_TSNCR_TSEN_Pos (24U) +#define CAN_TSNCR_TSEN_Msk (0x1UL << CAN_TSNCR_TSEN_Pos) /*!< 0x01000000 */ +#define CAN_TSNCR_TSEN CAN_TSNCR_TSEN_Msk /*!< desc TSEN */ +#define CAN_TSNCR_TSPOS_Pos (25U) +#define CAN_TSNCR_TSPOS_Msk (0x1UL << CAN_TSNCR_TSPOS_Pos) /*!< 0x02000000 */ +#define CAN_TSNCR_TSPOS CAN_TSNCR_TSPOS_Msk /*!< desc TSPOS */ + +/*!< CAN_ACBTR */ +#define CAN_ACBTR_AC_SEG_1_Pos (0U) +#define CAN_ACBTR_AC_SEG_1_Msk (0x1FFUL << CAN_ACBTR_AC_SEG_1_Pos) /*!< 0x000001FF */ +#define CAN_ACBTR_AC_SEG_1 CAN_ACBTR_AC_SEG_1_Msk /*!< AC_SEG_1[8:0] bits (desc AC_SEG_1) */ +#define CAN_ACBTR_AC_SEG_2_Pos (16U) +#define CAN_ACBTR_AC_SEG_2_Msk (0x7FUL << CAN_ACBTR_AC_SEG_2_Pos) /*!< 0x007F0000 */ +#define CAN_ACBTR_AC_SEG_2 CAN_ACBTR_AC_SEG_2_Msk /*!< AC_SEG_2[22:16] bits (desc AC_SEG_2) */ +#define CAN_ACBTR_AC_SEG_2_0 (0x1UL << CAN_ACBTR_AC_SEG_2_Pos) /*!< 0x00010000 */ +#define CAN_ACBTR_AC_SEG_2_1 (0x2UL << CAN_ACBTR_AC_SEG_2_Pos) /*!< 0x00020000 */ +#define CAN_ACBTR_AC_SEG_2_2 (0x4UL << CAN_ACBTR_AC_SEG_2_Pos) /*!< 0x00040000 */ +#define CAN_ACBTR_AC_SEG_2_3 (0x8UL << CAN_ACBTR_AC_SEG_2_Pos) /*!< 0x00080000 */ +#define CAN_ACBTR_AC_SEG_2_4 (0x10UL << CAN_ACBTR_AC_SEG_2_Pos) /*!< 0x00100000 */ +#define CAN_ACBTR_AC_SEG_2_5 (0x20UL << CAN_ACBTR_AC_SEG_2_Pos) /*!< 0x00200000 */ +#define CAN_ACBTR_AC_SEG_2_6 (0x40UL << CAN_ACBTR_AC_SEG_2_Pos) /*!< 0x00400000 */ +#define CAN_ACBTR_AC_SJW_Pos (24U) +#define CAN_ACBTR_AC_SJW_Msk (0x7FUL << CAN_ACBTR_AC_SJW_Pos) /*!< 0x7F000000 */ +#define CAN_ACBTR_AC_SJW CAN_ACBTR_AC_SJW_Msk /*!< AC_SJW[30:24] bits (desc AC_SJW) */ +#define CAN_ACBTR_AC_SJW_0 (0x1UL << CAN_ACBTR_AC_SJW_Pos) /*!< 0x01000000 */ +#define CAN_ACBTR_AC_SJW_1 (0x2UL << CAN_ACBTR_AC_SJW_Pos) /*!< 0x02000000 */ +#define CAN_ACBTR_AC_SJW_2 (0x4UL << CAN_ACBTR_AC_SJW_Pos) /*!< 0x04000000 */ +#define CAN_ACBTR_AC_SJW_3 (0x8UL << CAN_ACBTR_AC_SJW_Pos) /*!< 0x08000000 */ +#define CAN_ACBTR_AC_SJW_4 (0x10UL << CAN_ACBTR_AC_SJW_Pos) /*!< 0x10000000 */ +#define CAN_ACBTR_AC_SJW_5 (0x20UL << CAN_ACBTR_AC_SJW_Pos) /*!< 0x20000000 */ +#define CAN_ACBTR_AC_SJW_6 (0x40UL << CAN_ACBTR_AC_SJW_Pos) /*!< 0x40000000 */ + +/*!< CAN_FDBTR */ +#define CAN_FDBTR_FD_SEG_1_Pos (0U) +#define CAN_FDBTR_FD_SEG_1_Msk (0xFFUL << CAN_FDBTR_FD_SEG_1_Pos) /*!< 0x000000FF */ +#define CAN_FDBTR_FD_SEG_1 CAN_FDBTR_FD_SEG_1_Msk /*!< FD_SEG_1[7:0] bits (desc FD_SEG_1) */ +#define CAN_FDBTR_FD_SEG_2_Pos (16U) +#define CAN_FDBTR_FD_SEG_2_Msk (0x7FUL << CAN_FDBTR_FD_SEG_2_Pos) /*!< 0x007F0000 */ +#define CAN_FDBTR_FD_SEG_2 CAN_FDBTR_FD_SEG_2_Msk /*!< FD_SEG_2[22:16] bits (desc FD_SEG_2) */ +#define CAN_FDBTR_FD_SEG_2_0 (0x1UL << CAN_FDBTR_FD_SEG_2_Pos) /*!< 0x00010000 */ +#define CAN_FDBTR_FD_SEG_2_1 (0x2UL << CAN_FDBTR_FD_SEG_2_Pos) /*!< 0x00020000 */ +#define CAN_FDBTR_FD_SEG_2_2 (0x4UL << CAN_FDBTR_FD_SEG_2_Pos) /*!< 0x00040000 */ +#define CAN_FDBTR_FD_SEG_2_3 (0x8UL << CAN_FDBTR_FD_SEG_2_Pos) /*!< 0x00080000 */ +#define CAN_FDBTR_FD_SEG_2_4 (0x10UL << CAN_FDBTR_FD_SEG_2_Pos) /*!< 0x00100000 */ +#define CAN_FDBTR_FD_SEG_2_5 (0x20UL << CAN_FDBTR_FD_SEG_2_Pos) /*!< 0x00200000 */ +#define CAN_FDBTR_FD_SEG_2_6 (0x40UL << CAN_FDBTR_FD_SEG_2_Pos) /*!< 0x00400000 */ +#define CAN_FDBTR_FD_SJW_Pos (24U) +#define CAN_FDBTR_FD_SJW_Msk (0x7FUL << CAN_FDBTR_FD_SJW_Pos) /*!< 0x7F000000 */ +#define CAN_FDBTR_FD_SJW CAN_FDBTR_FD_SJW_Msk /*!< FD_SJW[30:24] bits (desc FD_SJW) */ +#define CAN_FDBTR_FD_SJW_0 (0x1UL << CAN_FDBTR_FD_SJW_Pos) /*!< 0x01000000 */ +#define CAN_FDBTR_FD_SJW_1 (0x2UL << CAN_FDBTR_FD_SJW_Pos) /*!< 0x02000000 */ +#define CAN_FDBTR_FD_SJW_2 (0x4UL << CAN_FDBTR_FD_SJW_Pos) /*!< 0x04000000 */ +#define CAN_FDBTR_FD_SJW_3 (0x8UL << CAN_FDBTR_FD_SJW_Pos) /*!< 0x08000000 */ +#define CAN_FDBTR_FD_SJW_4 (0x10UL << CAN_FDBTR_FD_SJW_Pos) /*!< 0x10000000 */ +#define CAN_FDBTR_FD_SJW_5 (0x20UL << CAN_FDBTR_FD_SJW_Pos) /*!< 0x20000000 */ +#define CAN_FDBTR_FD_SJW_6 (0x40UL << CAN_FDBTR_FD_SJW_Pos) /*!< 0x40000000 */ + +/*!< CAN_XLBTR */ +#define CAN_XLBTR_XL_SEG_1_Pos (0U) +#define CAN_XLBTR_XL_SEG_1_Msk (0xFFUL << CAN_XLBTR_XL_SEG_1_Pos) /*!< 0x000000FF */ +#define CAN_XLBTR_XL_SEG_1 CAN_XLBTR_XL_SEG_1_Msk /*!< XL_SEG_1[7:0] bits (desc XL_SEG_1) */ +#define CAN_XLBTR_XL_SEG_2_Pos (16U) +#define CAN_XLBTR_XL_SEG_2_Msk (0x7FUL << CAN_XLBTR_XL_SEG_2_Pos) /*!< 0x007F0000 */ +#define CAN_XLBTR_XL_SEG_2 CAN_XLBTR_XL_SEG_2_Msk /*!< XL_SEG_2[22:16] bits (desc XL_SEG_2) */ +#define CAN_XLBTR_XL_SEG_2_0 (0x1UL << CAN_XLBTR_XL_SEG_2_Pos) /*!< 0x00010000 */ +#define CAN_XLBTR_XL_SEG_2_1 (0x2UL << CAN_XLBTR_XL_SEG_2_Pos) /*!< 0x00020000 */ +#define CAN_XLBTR_XL_SEG_2_2 (0x4UL << CAN_XLBTR_XL_SEG_2_Pos) /*!< 0x00040000 */ +#define CAN_XLBTR_XL_SEG_2_3 (0x8UL << CAN_XLBTR_XL_SEG_2_Pos) /*!< 0x00080000 */ +#define CAN_XLBTR_XL_SEG_2_4 (0x10UL << CAN_XLBTR_XL_SEG_2_Pos) /*!< 0x00100000 */ +#define CAN_XLBTR_XL_SEG_2_5 (0x20UL << CAN_XLBTR_XL_SEG_2_Pos) /*!< 0x00200000 */ +#define CAN_XLBTR_XL_SEG_2_6 (0x40UL << CAN_XLBTR_XL_SEG_2_Pos) /*!< 0x00400000 */ +#define CAN_XLBTR_XL_SJW_Pos (24U) +#define CAN_XLBTR_XL_SJW_Msk (0x7FUL << CAN_XLBTR_XL_SJW_Pos) /*!< 0x7F000000 */ +#define CAN_XLBTR_XL_SJW CAN_XLBTR_XL_SJW_Msk /*!< XL_SJW[30:24] bits (desc XL_SJW) */ +#define CAN_XLBTR_XL_SJW_0 (0x1UL << CAN_XLBTR_XL_SJW_Pos) /*!< 0x01000000 */ +#define CAN_XLBTR_XL_SJW_1 (0x2UL << CAN_XLBTR_XL_SJW_Pos) /*!< 0x02000000 */ +#define CAN_XLBTR_XL_SJW_2 (0x4UL << CAN_XLBTR_XL_SJW_Pos) /*!< 0x04000000 */ +#define CAN_XLBTR_XL_SJW_3 (0x8UL << CAN_XLBTR_XL_SJW_Pos) /*!< 0x08000000 */ +#define CAN_XLBTR_XL_SJW_4 (0x10UL << CAN_XLBTR_XL_SJW_Pos) /*!< 0x10000000 */ +#define CAN_XLBTR_XL_SJW_5 (0x20UL << CAN_XLBTR_XL_SJW_Pos) /*!< 0x20000000 */ +#define CAN_XLBTR_XL_SJW_6 (0x40UL << CAN_XLBTR_XL_SJW_Pos) /*!< 0x40000000 */ + +/*!< CAN_RLSSP */ +#define CAN_RLSSP_PRESC_Pos (0U) +#define CAN_RLSSP_PRESC_Msk (0x1FUL << CAN_RLSSP_PRESC_Pos) /*!< 0x0000001F */ +#define CAN_RLSSP_PRESC CAN_RLSSP_PRESC_Msk /*!< PRESC[4:0] bits (desc PRESC) */ +#define CAN_RLSSP_PRESC_0 (0x1UL << CAN_RLSSP_PRESC_Pos) /*!< 0x00000001 */ +#define CAN_RLSSP_PRESC_1 (0x2UL << CAN_RLSSP_PRESC_Pos) /*!< 0x00000002 */ +#define CAN_RLSSP_PRESC_2 (0x4UL << CAN_RLSSP_PRESC_Pos) /*!< 0x00000004 */ +#define CAN_RLSSP_PRESC_3 (0x8UL << CAN_RLSSP_PRESC_Pos) /*!< 0x00000008 */ +#define CAN_RLSSP_PRESC_4 (0x10UL << CAN_RLSSP_PRESC_Pos) /*!< 0x00000010 */ +#define CAN_RLSSP_FD_SSPOFF_Pos (8U) +#define CAN_RLSSP_FD_SSPOFF_Msk (0xFFUL << CAN_RLSSP_FD_SSPOFF_Pos) /*!< 0x0000FF00 */ +#define CAN_RLSSP_FD_SSPOFF CAN_RLSSP_FD_SSPOFF_Msk /*!< FD_SSPOFF[15:8] bits (desc FD_SSPOFF) */ +#define CAN_RLSSP_XL_SSPOFF_Pos (16U) +#define CAN_RLSSP_XL_SSPOFF_Msk (0xFFUL << CAN_RLSSP_XL_SSPOFF_Pos) /*!< 0x00FF0000 */ +#define CAN_RLSSP_XL_SSPOFF CAN_RLSSP_XL_SSPOFF_Msk /*!< XL_SSPOFF[23:16] bits (desc XL_SSPOFF) */ +#define CAN_RLSSP_REALIM_Pos (24U) +#define CAN_RLSSP_REALIM_Msk (0x7UL << CAN_RLSSP_REALIM_Pos) /*!< 0x07000000 */ +#define CAN_RLSSP_REALIM CAN_RLSSP_REALIM_Msk /*!< REALIM[26:24] bits (desc REALIM) */ +#define CAN_RLSSP_REALIM_0 (0x1UL << CAN_RLSSP_REALIM_Pos) /*!< 0x01000000 */ +#define CAN_RLSSP_REALIM_1 (0x2UL << CAN_RLSSP_REALIM_Pos) /*!< 0x02000000 */ +#define CAN_RLSSP_REALIM_2 (0x4UL << CAN_RLSSP_REALIM_Pos) /*!< 0x04000000 */ +#define CAN_RLSSP_RETLIM_Pos (28U) +#define CAN_RLSSP_RETLIM_Msk (0x7UL << CAN_RLSSP_RETLIM_Pos) /*!< 0x70000000 */ +#define CAN_RLSSP_RETLIM CAN_RLSSP_RETLIM_Msk /*!< RETLIM[30:28] bits (desc RETLIM) */ +#define CAN_RLSSP_RETLIM_0 (0x1UL << CAN_RLSSP_RETLIM_Pos) /*!< 0x10000000 */ +#define CAN_RLSSP_RETLIM_1 (0x2UL << CAN_RLSSP_RETLIM_Pos) /*!< 0x20000000 */ +#define CAN_RLSSP_RETLIM_2 (0x4UL << CAN_RLSSP_RETLIM_Pos) /*!< 0x40000000 */ + +/*!< CAN_IFR */ +#define CAN_IFR_AIF_Pos (0U) +#define CAN_IFR_AIF_Msk (0x1UL << CAN_IFR_AIF_Pos) /*!< 0x00000001 */ +#define CAN_IFR_AIF CAN_IFR_AIF_Msk /*!< desc AIF */ +#define CAN_IFR_EIF_Pos (1U) +#define CAN_IFR_EIF_Msk (0x1UL << CAN_IFR_EIF_Pos) /*!< 0x00000002 */ +#define CAN_IFR_EIF CAN_IFR_EIF_Msk /*!< desc EIF */ +#define CAN_IFR_TSIF_Pos (2U) +#define CAN_IFR_TSIF_Msk (0x1UL << CAN_IFR_TSIF_Pos) /*!< 0x00000004 */ +#define CAN_IFR_TSIF CAN_IFR_TSIF_Msk /*!< desc TSIF */ +#define CAN_IFR_TPIF_Pos (3U) +#define CAN_IFR_TPIF_Msk (0x1UL << CAN_IFR_TPIF_Pos) /*!< 0x00000008 */ +#define CAN_IFR_TPIF CAN_IFR_TPIF_Msk /*!< desc TPIF */ +#define CAN_IFR_RAFIF_Pos (4U) +#define CAN_IFR_RAFIF_Msk (0x1UL << CAN_IFR_RAFIF_Pos) /*!< 0x00000010 */ +#define CAN_IFR_RAFIF CAN_IFR_RAFIF_Msk /*!< desc RAFIF */ +#define CAN_IFR_RFIF_Pos (5U) +#define CAN_IFR_RFIF_Msk (0x1UL << CAN_IFR_RFIF_Pos) /*!< 0x00000020 */ +#define CAN_IFR_RFIF CAN_IFR_RFIF_Msk /*!< desc RFIF */ +#define CAN_IFR_ROIF_Pos (6U) +#define CAN_IFR_ROIF_Msk (0x1UL << CAN_IFR_ROIF_Pos) /*!< 0x00000040 */ +#define CAN_IFR_ROIF CAN_IFR_ROIF_Msk /*!< desc ROIF */ +#define CAN_IFR_RIF_Pos (7U) +#define CAN_IFR_RIF_Msk (0x1UL << CAN_IFR_RIF_Pos) /*!< 0x00000080 */ +#define CAN_IFR_RIF CAN_IFR_RIF_Msk /*!< desc RIF */ +#define CAN_IFR_BEIF_Pos (8U) +#define CAN_IFR_BEIF_Msk (0x1UL << CAN_IFR_BEIF_Pos) /*!< 0x00000100 */ +#define CAN_IFR_BEIF CAN_IFR_BEIF_Msk /*!< desc BEIF */ +#define CAN_IFR_ALIF_Pos (9U) +#define CAN_IFR_ALIF_Msk (0x1UL << CAN_IFR_ALIF_Pos) /*!< 0x00000200 */ +#define CAN_IFR_ALIF CAN_IFR_ALIF_Msk /*!< desc ALIF */ +#define CAN_IFR_EPIF_Pos (10U) +#define CAN_IFR_EPIF_Msk (0x1UL << CAN_IFR_EPIF_Pos) /*!< 0x00000400 */ +#define CAN_IFR_EPIF CAN_IFR_EPIF_Msk /*!< desc EPIF */ +#define CAN_IFR_TTIF_Pos (11U) +#define CAN_IFR_TTIF_Msk (0x1UL << CAN_IFR_TTIF_Pos) /*!< 0x00000800 */ +#define CAN_IFR_TTIF CAN_IFR_TTIF_Msk /*!< desc TTIF */ +#define CAN_IFR_TEIF_Pos (12U) +#define CAN_IFR_TEIF_Msk (0x1UL << CAN_IFR_TEIF_Pos) /*!< 0x00001000 */ +#define CAN_IFR_TEIF CAN_IFR_TEIF_Msk /*!< desc TEIF */ +#define CAN_IFR_WTIF_Pos (13U) +#define CAN_IFR_WTIF_Msk (0x1UL << CAN_IFR_WTIF_Pos) /*!< 0x00002000 */ +#define CAN_IFR_WTIF CAN_IFR_WTIF_Msk /*!< desc WTIF */ +#define CAN_IFR_MDWIF_Pos (14U) +#define CAN_IFR_MDWIF_Msk (0x1UL << CAN_IFR_MDWIF_Pos) /*!< 0x00004000 */ +#define CAN_IFR_MDWIF CAN_IFR_MDWIF_Msk /*!< desc MDWIF */ +#define CAN_IFR_MDEIF_Pos (15U) +#define CAN_IFR_MDEIF_Msk (0x1UL << CAN_IFR_MDEIF_Pos) /*!< 0x00008000 */ +#define CAN_IFR_MDEIF CAN_IFR_MDEIF_Msk /*!< desc MDEIF */ +#define CAN_IFR_MAEIF_Pos (16U) +#define CAN_IFR_MAEIF_Msk (0x1UL << CAN_IFR_MAEIF_Pos) /*!< 0x00010000 */ +#define CAN_IFR_MAEIF CAN_IFR_MAEIF_Msk /*!< desc MAEIF */ +#define CAN_IFR_SEIF_Pos (17U) +#define CAN_IFR_SEIF_Msk (0x1UL << CAN_IFR_SEIF_Pos) /*!< 0x00020000 */ +#define CAN_IFR_SEIF CAN_IFR_SEIF_Msk /*!< desc SEIF */ +#define CAN_IFR_SWIF_Pos (18U) +#define CAN_IFR_SWIF_Msk (0x1UL << CAN_IFR_SWIF_Pos) /*!< 0x00040000 */ +#define CAN_IFR_SWIF CAN_IFR_SWIF_Msk /*!< desc SWIF */ +#define CAN_IFR_EPASS_Pos (30U) +#define CAN_IFR_EPASS_Msk (0x1UL << CAN_IFR_EPASS_Pos) /*!< 0x40000000 */ +#define CAN_IFR_EPASS CAN_IFR_EPASS_Msk /*!< desc EPASS */ +#define CAN_IFR_EWARN_Pos (31U) +#define CAN_IFR_EWARN_Msk (0x1UL << CAN_IFR_EWARN_Pos) /*!< 0x80000000 */ +#define CAN_IFR_EWARN CAN_IFR_EWARN_Msk /*!< desc EWARN */ + +/*!< CAN_IER */ +#define CAN_IER_EIE_Pos (1U) +#define CAN_IER_EIE_Msk (0x1UL << CAN_IER_EIE_Pos) /*!< 0x00000002 */ +#define CAN_IER_EIE CAN_IER_EIE_Msk /*!< desc EIE */ +#define CAN_IER_TSIE_Pos (2U) +#define CAN_IER_TSIE_Msk (0x1UL << CAN_IER_TSIE_Pos) /*!< 0x00000004 */ +#define CAN_IER_TSIE CAN_IER_TSIE_Msk /*!< desc TSIE */ +#define CAN_IER_TPIE_Pos (3U) +#define CAN_IER_TPIE_Msk (0x1UL << CAN_IER_TPIE_Pos) /*!< 0x00000008 */ +#define CAN_IER_TPIE CAN_IER_TPIE_Msk /*!< desc TPIE */ +#define CAN_IER_RAFIE_Pos (4U) +#define CAN_IER_RAFIE_Msk (0x1UL << CAN_IER_RAFIE_Pos) /*!< 0x00000010 */ +#define CAN_IER_RAFIE CAN_IER_RAFIE_Msk /*!< desc RAFIE */ +#define CAN_IER_RFIE_Pos (5U) +#define CAN_IER_RFIE_Msk (0x1UL << CAN_IER_RFIE_Pos) /*!< 0x00000020 */ +#define CAN_IER_RFIE CAN_IER_RFIE_Msk /*!< desc RFIE */ +#define CAN_IER_ROIE_Pos (6U) +#define CAN_IER_ROIE_Msk (0x1UL << CAN_IER_ROIE_Pos) /*!< 0x00000040 */ +#define CAN_IER_ROIE CAN_IER_ROIE_Msk /*!< desc ROIE */ +#define CAN_IER_RIE_Pos (7U) +#define CAN_IER_RIE_Msk (0x1UL << CAN_IER_RIE_Pos) /*!< 0x00000080 */ +#define CAN_IER_RIE CAN_IER_RIE_Msk /*!< desc RIE */ +#define CAN_IER_BEIE_Pos (8U) +#define CAN_IER_BEIE_Msk (0x1UL << CAN_IER_BEIE_Pos) /*!< 0x00000100 */ +#define CAN_IER_BEIE CAN_IER_BEIE_Msk /*!< desc BEIE */ +#define CAN_IER_ALIE_Pos (9U) +#define CAN_IER_ALIE_Msk (0x1UL << CAN_IER_ALIE_Pos) /*!< 0x00000200 */ +#define CAN_IER_ALIE CAN_IER_ALIE_Msk /*!< desc ALIE */ +#define CAN_IER_EPIE_Pos (10U) +#define CAN_IER_EPIE_Msk (0x1UL << CAN_IER_EPIE_Pos) /*!< 0x00000400 */ +#define CAN_IER_EPIE CAN_IER_EPIE_Msk /*!< desc EPIE */ +#define CAN_IER_TTIE_Pos (11U) +#define CAN_IER_TTIE_Msk (0x1UL << CAN_IER_TTIE_Pos) /*!< 0x00000800 */ +#define CAN_IER_TTIE CAN_IER_TTIE_Msk /*!< desc TTIE */ +#define CAN_IER_WTIE_Pos (13U) +#define CAN_IER_WTIE_Msk (0x1UL << CAN_IER_WTIE_Pos) /*!< 0x00002000 */ +#define CAN_IER_WTIE CAN_IER_WTIE_Msk /*!< desc WTIE */ +#define CAN_IER_MDWIE_Pos (14U) +#define CAN_IER_MDWIE_Msk (0x1UL << CAN_IER_MDWIE_Pos) /*!< 0x00004000 */ +#define CAN_IER_MDWIE CAN_IER_MDWIE_Msk /*!< desc MDWIE */ +#define CAN_IER_SWIE_Pos (18U) +#define CAN_IER_SWIE_Msk (0x1UL << CAN_IER_SWIE_Pos) /*!< 0x00040000 */ +#define CAN_IER_SWIE CAN_IER_SWIE_Msk /*!< desc SWIE */ + +/*!< CAN_TSR */ +#define CAN_TSR_HANDLE_L_Pos (0U) +#define CAN_TSR_HANDLE_L_Msk (0xFFUL << CAN_TSR_HANDLE_L_Pos) /*!< 0x000000FF */ +#define CAN_TSR_HANDLE_L CAN_TSR_HANDLE_L_Msk /*!< HANDLE_L[7:0] bits (desc HANDLE_L) */ +#define CAN_TSR_TSTAT_L_Pos (8U) +#define CAN_TSR_TSTAT_L_Msk (0x7UL << CAN_TSR_TSTAT_L_Pos) /*!< 0x00000700 */ +#define CAN_TSR_TSTAT_L CAN_TSR_TSTAT_L_Msk /*!< TSTAT_L[10:8] bits (desc TSTAT_L) */ +#define CAN_TSR_TSTAT_L_0 (0x1UL << CAN_TSR_TSTAT_L_Pos) /*!< 0x00000100 */ +#define CAN_TSR_TSTAT_L_1 (0x2UL << CAN_TSR_TSTAT_L_Pos) /*!< 0x00000200 */ +#define CAN_TSR_TSTAT_L_2 (0x4UL << CAN_TSR_TSTAT_L_Pos) /*!< 0x00000400 */ +#define CAN_TSR_HANDLE_H_Pos (16U) +#define CAN_TSR_HANDLE_H_Msk (0xFFUL << CAN_TSR_HANDLE_H_Pos) /*!< 0x00FF0000 */ +#define CAN_TSR_HANDLE_H CAN_TSR_HANDLE_H_Msk /*!< HANDLE_H[23:16] bits (desc HANDLE_H) */ +#define CAN_TSR_TSTAT_H_Pos (24U) +#define CAN_TSR_TSTAT_H_Msk (0x7UL << CAN_TSR_TSTAT_H_Pos) /*!< 0x07000000 */ +#define CAN_TSR_TSTAT_H CAN_TSR_TSTAT_H_Msk /*!< TSTAT_H[26:24] bits (desc TSTAT_H) */ +#define CAN_TSR_TSTAT_H_0 (0x1UL << CAN_TSR_TSTAT_H_Pos) /*!< 0x01000000 */ +#define CAN_TSR_TSTAT_H_1 (0x2UL << CAN_TSR_TSTAT_H_Pos) /*!< 0x02000000 */ +#define CAN_TSR_TSTAT_H_2 (0x4UL << CAN_TSR_TSTAT_H_Pos) /*!< 0x04000000 */ + +/*!< CAN_TTSL */ +#define CAN_TTSL_TTS_Pos (0U) +#define CAN_TTSL_TTS_Msk (0xFFFFFFFFUL << CAN_TTSL_TTS_Pos) /*!< 0xFFFFFFFF */ +#define CAN_TTSL_TTS CAN_TTSL_TTS_Msk /*!< TTS[31:0] bits (desc TTS) */ + +/*!< CAN_TTSH */ +#define CAN_TTSH_TTS_Pos (0U) +#define CAN_TTSH_TTS_Msk (0xFFFFFFFFUL << CAN_TTSH_TTS_Pos) /*!< 0xFFFFFFFF */ +#define CAN_TTSH_TTS CAN_TTSH_TTS_Msk /*!< TTS[31:0] bits (desc TTS) */ + +/*!< CAN_MCR */ +#define CAN_MCR_BUSOFF_Pos (0U) +#define CAN_MCR_BUSOFF_Msk (0x1UL << CAN_MCR_BUSOFF_Pos) /*!< 0x00000001 */ +#define CAN_MCR_BUSOFF CAN_MCR_BUSOFF_Msk /*!< desc BUSOFF */ +#define CAN_MCR_LBMI_Pos (5U) +#define CAN_MCR_LBMI_Msk (0x1UL << CAN_MCR_LBMI_Pos) /*!< 0x00000020 */ +#define CAN_MCR_LBMI CAN_MCR_LBMI_Msk /*!< desc LBMI */ +#define CAN_MCR_LBME_Pos (6U) +#define CAN_MCR_LBME_Msk (0x1UL << CAN_MCR_LBME_Pos) /*!< 0x00000040 */ +#define CAN_MCR_LBME CAN_MCR_LBME_Msk /*!< desc LBME */ +#define CAN_MCR_RESET_Pos (7U) +#define CAN_MCR_RESET_Msk (0x1UL << CAN_MCR_RESET_Pos) /*!< 0x00000080 */ +#define CAN_MCR_RESET CAN_MCR_RESET_Msk /*!< desc RESET */ +#define CAN_MCR_TSA_Pos (8U) +#define CAN_MCR_TSA_Msk (0x1UL << CAN_MCR_TSA_Pos) /*!< 0x00000100 */ +#define CAN_MCR_TSA CAN_MCR_TSA_Msk /*!< desc TSA */ +#define CAN_MCR_TSALL_Pos (9U) +#define CAN_MCR_TSALL_Msk (0x1UL << CAN_MCR_TSALL_Pos) /*!< 0x00000200 */ +#define CAN_MCR_TSALL CAN_MCR_TSALL_Msk /*!< desc TSALL */ +#define CAN_MCR_TSONE_Pos (10U) +#define CAN_MCR_TSONE_Msk (0x1UL << CAN_MCR_TSONE_Pos) /*!< 0x00000400 */ +#define CAN_MCR_TSONE CAN_MCR_TSONE_Msk /*!< desc TSONE */ +#define CAN_MCR_TPA_Pos (11U) +#define CAN_MCR_TPA_Msk (0x1UL << CAN_MCR_TPA_Pos) /*!< 0x00000800 */ +#define CAN_MCR_TPA CAN_MCR_TPA_Msk /*!< desc TPA */ +#define CAN_MCR_TPE_Pos (12U) +#define CAN_MCR_TPE_Msk (0x1UL << CAN_MCR_TPE_Pos) /*!< 0x00001000 */ +#define CAN_MCR_TPE CAN_MCR_TPE_Msk /*!< desc TPE */ +#define CAN_MCR_STBY_Pos (13U) +#define CAN_MCR_STBY_Msk (0x1UL << CAN_MCR_STBY_Pos) /*!< 0x00002000 */ +#define CAN_MCR_STBY CAN_MCR_STBY_Msk /*!< desc STBY */ +#define CAN_MCR_LOM_Pos (14U) +#define CAN_MCR_LOM_Msk (0x1UL << CAN_MCR_LOM_Pos) /*!< 0x00004000 */ +#define CAN_MCR_LOM CAN_MCR_LOM_Msk /*!< desc LOM */ +#define CAN_MCR_TBSEL_Pos (15U) +#define CAN_MCR_TBSEL_Msk (0x1UL << CAN_MCR_TBSEL_Pos) /*!< 0x00008000 */ +#define CAN_MCR_TBSEL CAN_MCR_TBSEL_Msk /*!< desc TBSEL */ +#define CAN_MCR_TSSTAT_Pos (16U) +#define CAN_MCR_TSSTAT_Msk (0x3UL << CAN_MCR_TSSTAT_Pos) /*!< 0x00030000 */ +#define CAN_MCR_TSSTAT CAN_MCR_TSSTAT_Msk /*!< TSSTAT[17:16] bits (desc TSSTAT) */ +#define CAN_MCR_TSSTAT_0 (0x1UL << CAN_MCR_TSSTAT_Pos) /*!< 0x00010000 */ +#define CAN_MCR_TSSTAT_1 (0x2UL << CAN_MCR_TSSTAT_Pos) /*!< 0x00020000 */ +#define CAN_MCR_TSFF_Pos (18U) +#define CAN_MCR_TSFF_Msk (0x1UL << CAN_MCR_TSFF_Pos) /*!< 0x00040000 */ +#define CAN_MCR_TSFF CAN_MCR_TSFF_Msk /*!< desc TSFF */ +#define CAN_MCR_TTTBM_Pos (20U) +#define CAN_MCR_TTTBM_Msk (0x1UL << CAN_MCR_TTTBM_Pos) /*!< 0x00100000 */ +#define CAN_MCR_TTTBM CAN_MCR_TTTBM_Msk /*!< desc TTTBM */ +#define CAN_MCR_TSMODE_Pos (21U) +#define CAN_MCR_TSMODE_Msk (0x1UL << CAN_MCR_TSMODE_Pos) /*!< 0x00200000 */ +#define CAN_MCR_TSMODE CAN_MCR_TSMODE_Msk /*!< desc TSMODE */ +#define CAN_MCR_TSNEXT_Pos (22U) +#define CAN_MCR_TSNEXT_Msk (0x1UL << CAN_MCR_TSNEXT_Pos) /*!< 0x00400000 */ +#define CAN_MCR_TSNEXT CAN_MCR_TSNEXT_Msk /*!< desc TSNEXT */ +#define CAN_MCR_FD_ISO_Pos (23U) +#define CAN_MCR_FD_ISO_Msk (0x1UL << CAN_MCR_FD_ISO_Pos) /*!< 0x00800000 */ +#define CAN_MCR_FD_ISO CAN_MCR_FD_ISO_Msk /*!< desc FD_ISO */ +#define CAN_MCR_RSTAT_Pos (24U) +#define CAN_MCR_RSTAT_Msk (0x3UL << CAN_MCR_RSTAT_Pos) /*!< 0x03000000 */ +#define CAN_MCR_RSTAT CAN_MCR_RSTAT_Msk /*!< RSTAT[25:24] bits (desc RSTAT) */ +#define CAN_MCR_RSTAT_0 (0x1UL << CAN_MCR_RSTAT_Pos) /*!< 0x01000000 */ +#define CAN_MCR_RSTAT_1 (0x2UL << CAN_MCR_RSTAT_Pos) /*!< 0x02000000 */ +#define CAN_MCR_RBALL_Pos (27U) +#define CAN_MCR_RBALL_Msk (0x1UL << CAN_MCR_RBALL_Pos) /*!< 0x08000000 */ +#define CAN_MCR_RBALL CAN_MCR_RBALL_Msk /*!< desc RBALL */ +#define CAN_MCR_RREL_Pos (28U) +#define CAN_MCR_RREL_Msk (0x1UL << CAN_MCR_RREL_Pos) /*!< 0x10000000 */ +#define CAN_MCR_RREL CAN_MCR_RREL_Msk /*!< desc RREL */ +#define CAN_MCR_ROV_Pos (29U) +#define CAN_MCR_ROV_Msk (0x1UL << CAN_MCR_ROV_Pos) /*!< 0x20000000 */ +#define CAN_MCR_ROV CAN_MCR_ROV_Msk /*!< desc ROV */ +#define CAN_MCR_ROM_Pos (30U) +#define CAN_MCR_ROM_Msk (0x1UL << CAN_MCR_ROM_Pos) /*!< 0x40000000 */ +#define CAN_MCR_ROM CAN_MCR_ROM_Msk /*!< desc ROM */ +#define CAN_MCR_SACK_Pos (31U) +#define CAN_MCR_SACK_Msk (0x1UL << CAN_MCR_SACK_Pos) /*!< 0x80000000 */ +#define CAN_MCR_SACK CAN_MCR_SACK_Msk /*!< desc SACK */ + +/*!< CAN_WECR */ +#define CAN_WECR_EWL_Pos (0U) +#define CAN_WECR_EWL_Msk (0xFUL << CAN_WECR_EWL_Pos) /*!< 0x0000000F */ +#define CAN_WECR_EWL CAN_WECR_EWL_Msk /*!< EWL[3:0] bits (desc EWL) */ +#define CAN_WECR_EWL_0 (0x1UL << CAN_WECR_EWL_Pos) /*!< 0x00000001 */ +#define CAN_WECR_EWL_1 (0x2UL << CAN_WECR_EWL_Pos) /*!< 0x00000002 */ +#define CAN_WECR_EWL_2 (0x4UL << CAN_WECR_EWL_Pos) /*!< 0x00000004 */ +#define CAN_WECR_EWL_3 (0x8UL << CAN_WECR_EWL_Pos) /*!< 0x00000008 */ +#define CAN_WECR_AFWL_Pos (4U) +#define CAN_WECR_AFWL_Msk (0xFUL << CAN_WECR_AFWL_Pos) /*!< 0x000000F0 */ +#define CAN_WECR_AFWL CAN_WECR_AFWL_Msk /*!< AFWL[7:4] bits (desc AFWL) */ +#define CAN_WECR_AFWL_0 (0x1UL << CAN_WECR_AFWL_Pos) /*!< 0x00000010 */ +#define CAN_WECR_AFWL_1 (0x2UL << CAN_WECR_AFWL_Pos) /*!< 0x00000020 */ +#define CAN_WECR_AFWL_2 (0x4UL << CAN_WECR_AFWL_Pos) /*!< 0x00000040 */ +#define CAN_WECR_AFWL_3 (0x8UL << CAN_WECR_AFWL_Pos) /*!< 0x00000080 */ +#define CAN_WECR_ALC_Pos (8U) +#define CAN_WECR_ALC_Msk (0x1FUL << CAN_WECR_ALC_Pos) /*!< 0x00001F00 */ +#define CAN_WECR_ALC CAN_WECR_ALC_Msk /*!< ALC[12:8] bits (desc ALC) */ +#define CAN_WECR_ALC_0 (0x1UL << CAN_WECR_ALC_Pos) /*!< 0x00000100 */ +#define CAN_WECR_ALC_1 (0x2UL << CAN_WECR_ALC_Pos) /*!< 0x00000200 */ +#define CAN_WECR_ALC_2 (0x4UL << CAN_WECR_ALC_Pos) /*!< 0x00000400 */ +#define CAN_WECR_ALC_3 (0x8UL << CAN_WECR_ALC_Pos) /*!< 0x00000800 */ +#define CAN_WECR_ALC_4 (0x10UL << CAN_WECR_ALC_Pos) /*!< 0x00001000 */ +#define CAN_WECR_KOER_Pos (13U) +#define CAN_WECR_KOER_Msk (0x7UL << CAN_WECR_KOER_Pos) /*!< 0x0000E000 */ +#define CAN_WECR_KOER CAN_WECR_KOER_Msk /*!< KOER[15:13] bits (desc KOER) */ +#define CAN_WECR_KOER_0 (0x1UL << CAN_WECR_KOER_Pos) /*!< 0x00002000 */ +#define CAN_WECR_KOER_1 (0x2UL << CAN_WECR_KOER_Pos) /*!< 0x00004000 */ +#define CAN_WECR_KOER_2 (0x4UL << CAN_WECR_KOER_Pos) /*!< 0x00008000 */ +#define CAN_WECR_RECNT_Pos (16U) +#define CAN_WECR_RECNT_Msk (0xFFUL << CAN_WECR_RECNT_Pos) /*!< 0x00FF0000 */ +#define CAN_WECR_RECNT CAN_WECR_RECNT_Msk /*!< RECNT[23:16] bits (desc RECNT) */ +#define CAN_WECR_TECNT_Pos (24U) +#define CAN_WECR_TECNT_Msk (0xFFUL << CAN_WECR_TECNT_Pos) /*!< 0xFF000000 */ +#define CAN_WECR_TECNT CAN_WECR_TECNT_Msk /*!< TECNT[31:24] bits (desc TECNT) */ + +/*!< CAN_REFMSG */ +#define CAN_REFMSG_REF_ID_Pos (0U) +#define CAN_REFMSG_REF_ID_Msk (0x1FFFFFFFUL << CAN_REFMSG_REF_ID_Pos) /*!< 0x1FFFFFFF */ +#define CAN_REFMSG_REF_ID CAN_REFMSG_REF_ID_Msk /*!< REF_ID[28:0] bits (desc REF_ID) */ +#define CAN_REFMSG_REF_IDE_Pos (31U) +#define CAN_REFMSG_REF_IDE_Msk (0x1UL << CAN_REFMSG_REF_IDE_Pos) /*!< 0x80000000 */ +#define CAN_REFMSG_REF_IDE CAN_REFMSG_REF_IDE_Msk /*!< desc REF_IDE */ + +/*!< CAN_TTCR */ +#define CAN_TTCR_TTPTR_Pos (0U) +#define CAN_TTCR_TTPTR_Msk (0x3FUL << CAN_TTCR_TTPTR_Pos) /*!< 0x0000003F */ +#define CAN_TTCR_TTPTR CAN_TTCR_TTPTR_Msk /*!< TTPTR[5:0] bits (desc TTPTR) */ +#define CAN_TTCR_TTPTR_0 (0x1UL << CAN_TTCR_TTPTR_Pos) /*!< 0x00000001 */ +#define CAN_TTCR_TTPTR_1 (0x2UL << CAN_TTCR_TTPTR_Pos) /*!< 0x00000002 */ +#define CAN_TTCR_TTPTR_2 (0x4UL << CAN_TTCR_TTPTR_Pos) /*!< 0x00000004 */ +#define CAN_TTCR_TTPTR_3 (0x8UL << CAN_TTCR_TTPTR_Pos) /*!< 0x00000008 */ +#define CAN_TTCR_TTPTR_4 (0x10UL << CAN_TTCR_TTPTR_Pos) /*!< 0x00000010 */ +#define CAN_TTCR_TTPTR_5 (0x20UL << CAN_TTCR_TTPTR_Pos) /*!< 0x00000020 */ +#define CAN_TTCR_TTYPE_Pos (8U) +#define CAN_TTCR_TTYPE_Msk (0x7UL << CAN_TTCR_TTYPE_Pos) /*!< 0x00000700 */ +#define CAN_TTCR_TTYPE CAN_TTCR_TTYPE_Msk /*!< TTYPE[10:8] bits (desc TTYPE) */ +#define CAN_TTCR_TTYPE_0 (0x1UL << CAN_TTCR_TTYPE_Pos) /*!< 0x00000100 */ +#define CAN_TTCR_TTYPE_1 (0x2UL << CAN_TTCR_TTYPE_Pos) /*!< 0x00000200 */ +#define CAN_TTCR_TTYPE_2 (0x4UL << CAN_TTCR_TTYPE_Pos) /*!< 0x00000400 */ +#define CAN_TTCR_TEW_Pos (12U) +#define CAN_TTCR_TEW_Msk (0xFUL << CAN_TTCR_TEW_Pos) /*!< 0x0000F000 */ +#define CAN_TTCR_TEW CAN_TTCR_TEW_Msk /*!< TEW[15:12] bits (desc TEW) */ +#define CAN_TTCR_TEW_0 (0x1UL << CAN_TTCR_TEW_Pos) /*!< 0x00001000 */ +#define CAN_TTCR_TEW_1 (0x2UL << CAN_TTCR_TEW_Pos) /*!< 0x00002000 */ +#define CAN_TTCR_TEW_2 (0x4UL << CAN_TTCR_TEW_Pos) /*!< 0x00004000 */ +#define CAN_TTCR_TEW_3 (0x8UL << CAN_TTCR_TEW_Pos) /*!< 0x00008000 */ +#define CAN_TTCR_TBPTR_Pos (16U) +#define CAN_TTCR_TBPTR_Msk (0x3FUL << CAN_TTCR_TBPTR_Pos) /*!< 0x003F0000 */ +#define CAN_TTCR_TBPTR CAN_TTCR_TBPTR_Msk /*!< TBPTR[21:16] bits (desc TBPTR) */ +#define CAN_TTCR_TBPTR_0 (0x1UL << CAN_TTCR_TBPTR_Pos) /*!< 0x00010000 */ +#define CAN_TTCR_TBPTR_1 (0x2UL << CAN_TTCR_TBPTR_Pos) /*!< 0x00020000 */ +#define CAN_TTCR_TBPTR_2 (0x4UL << CAN_TTCR_TBPTR_Pos) /*!< 0x00040000 */ +#define CAN_TTCR_TBPTR_3 (0x8UL << CAN_TTCR_TBPTR_Pos) /*!< 0x00080000 */ +#define CAN_TTCR_TBPTR_4 (0x10UL << CAN_TTCR_TBPTR_Pos) /*!< 0x00100000 */ +#define CAN_TTCR_TBPTR_5 (0x20UL << CAN_TTCR_TBPTR_Pos) /*!< 0x00200000 */ +#define CAN_TTCR_TBF_Pos (22U) +#define CAN_TTCR_TBF_Msk (0x1UL << CAN_TTCR_TBF_Pos) /*!< 0x00400000 */ +#define CAN_TTCR_TBF CAN_TTCR_TBF_Msk /*!< desc TBF */ +#define CAN_TTCR_TBE_Pos (23U) +#define CAN_TTCR_TBE_Msk (0x1UL << CAN_TTCR_TBE_Pos) /*!< 0x00800000 */ +#define CAN_TTCR_TBE CAN_TTCR_TBE_Msk /*!< desc TBE */ +#define CAN_TTCR_TTEN_Pos (24U) +#define CAN_TTCR_TTEN_Msk (0x1UL << CAN_TTCR_TTEN_Pos) /*!< 0x01000000 */ +#define CAN_TTCR_TTEN CAN_TTCR_TTEN_Msk /*!< desc TTEN */ +#define CAN_TTCR_T_PRESC_Pos (25U) +#define CAN_TTCR_T_PRESC_Msk (0x3UL << CAN_TTCR_T_PRESC_Pos) /*!< 0x06000000 */ +#define CAN_TTCR_T_PRESC CAN_TTCR_T_PRESC_Msk /*!< T_PRESC[26:25] bits (desc T_PRESC) */ +#define CAN_TTCR_T_PRESC_0 (0x1UL << CAN_TTCR_T_PRESC_Pos) /*!< 0x02000000 */ +#define CAN_TTCR_T_PRESC_1 (0x2UL << CAN_TTCR_T_PRESC_Pos) /*!< 0x04000000 */ + +/*!< CAN_TTTR */ +#define CAN_TTTR_TT_TRIG_Pos (0U) +#define CAN_TTTR_TT_TRIG_Msk (0xFFFFUL << CAN_TTTR_TT_TRIG_Pos) /*!< 0x0000FFFF */ +#define CAN_TTTR_TT_TRIG CAN_TTTR_TT_TRIG_Msk /*!< TT_TRIG[15:0] bits (desc TT_TRIG) */ +#define CAN_TTTR_TT_WTRIG_Pos (16U) +#define CAN_TTTR_TT_WTRIG_Msk (0xFFFFUL << CAN_TTTR_TT_WTRIG_Pos) /*!< 0xFFFF0000 */ +#define CAN_TTTR_TT_WTRIG CAN_TTTR_TT_WTRIG_Msk /*!< TT_WTRIG[31:16] bits (desc TT_WTRIG) */ + +/*!< CAN_SCMS */ +#define CAN_SCMS_XMREN_Pos (0U) +#define CAN_SCMS_XMREN_Msk (0x1UL << CAN_SCMS_XMREN_Pos) /*!< 0x00000001 */ +#define CAN_SCMS_XMREN CAN_SCMS_XMREN_Msk /*!< desc XMREN */ +#define CAN_SCMS_FSTIM_Pos (1U) +#define CAN_SCMS_FSTIM_Msk (0x7UL << CAN_SCMS_FSTIM_Pos) /*!< 0x0000000E */ +#define CAN_SCMS_FSTIM CAN_SCMS_FSTIM_Msk /*!< FSTIM[3:1] bits (desc FSTIM) */ +#define CAN_SCMS_FSTIM_0 (0x1UL << CAN_SCMS_FSTIM_Pos) /*!< 0x00000002 */ +#define CAN_SCMS_FSTIM_1 (0x2UL << CAN_SCMS_FSTIM_Pos) /*!< 0x00000004 */ +#define CAN_SCMS_FSTIM_2 (0x4UL << CAN_SCMS_FSTIM_Pos) /*!< 0x00000008 */ +#define CAN_SCMS_ACFA_Pos (24U) +#define CAN_SCMS_ACFA_Msk (0x1UL << CAN_SCMS_ACFA_Pos) /*!< 0x01000000 */ +#define CAN_SCMS_ACFA CAN_SCMS_ACFA_Msk /*!< desc ACFA */ +#define CAN_SCMS_TXS_Pos (25U) +#define CAN_SCMS_TXS_Msk (0x1UL << CAN_SCMS_TXS_Pos) /*!< 0x02000000 */ +#define CAN_SCMS_TXS CAN_SCMS_TXS_Msk /*!< desc TXS */ +#define CAN_SCMS_TXB_Pos (26U) +#define CAN_SCMS_TXB_Msk (0x1UL << CAN_SCMS_TXB_Pos) /*!< 0x04000000 */ +#define CAN_SCMS_TXB CAN_SCMS_TXB_Msk /*!< desc TXB */ +#define CAN_SCMS_HELOC_Pos (27U) +#define CAN_SCMS_HELOC_Msk (0x3UL << CAN_SCMS_HELOC_Pos) /*!< 0x18000000 */ +#define CAN_SCMS_HELOC CAN_SCMS_HELOC_Msk /*!< HELOC[28:27] bits (desc HELOC) */ +#define CAN_SCMS_HELOC_0 (0x1UL << CAN_SCMS_HELOC_Pos) /*!< 0x08000000 */ +#define CAN_SCMS_HELOC_1 (0x2UL << CAN_SCMS_HELOC_Pos) /*!< 0x10000000 */ +#define CAN_SCMS_MPEN_Pos (31U) +#define CAN_SCMS_MPEN_Msk (0x1UL << CAN_SCMS_MPEN_Pos) /*!< 0x80000000 */ +#define CAN_SCMS_MPEN CAN_SCMS_MPEN_Msk /*!< desc MPEN */ + +/*!< CAN_MESR */ +#define CAN_MESR_MEBP1_Pos (0U) +#define CAN_MESR_MEBP1_Msk (0x3FUL << CAN_MESR_MEBP1_Pos) /*!< 0x0000003F */ +#define CAN_MESR_MEBP1 CAN_MESR_MEBP1_Msk /*!< MEBP1[5:0] bits (desc MEBP1) */ +#define CAN_MESR_MEBP1_0 (0x1UL << CAN_MESR_MEBP1_Pos) /*!< 0x00000001 */ +#define CAN_MESR_MEBP1_1 (0x2UL << CAN_MESR_MEBP1_Pos) /*!< 0x00000002 */ +#define CAN_MESR_MEBP1_2 (0x4UL << CAN_MESR_MEBP1_Pos) /*!< 0x00000004 */ +#define CAN_MESR_MEBP1_3 (0x8UL << CAN_MESR_MEBP1_Pos) /*!< 0x00000008 */ +#define CAN_MESR_MEBP1_4 (0x10UL << CAN_MESR_MEBP1_Pos) /*!< 0x00000010 */ +#define CAN_MESR_MEBP1_5 (0x20UL << CAN_MESR_MEBP1_Pos) /*!< 0x00000020 */ +#define CAN_MESR_ME1EE_Pos (6U) +#define CAN_MESR_ME1EE_Msk (0x1UL << CAN_MESR_ME1EE_Pos) /*!< 0x00000040 */ +#define CAN_MESR_ME1EE CAN_MESR_ME1EE_Msk /*!< desc ME1EE */ +#define CAN_MESR_MEAEE_Pos (7U) +#define CAN_MESR_MEAEE_Msk (0x1UL << CAN_MESR_MEAEE_Pos) /*!< 0x00000080 */ +#define CAN_MESR_MEAEE CAN_MESR_MEAEE_Msk /*!< desc MEAEE */ +#define CAN_MESR_MEBP2_Pos (8U) +#define CAN_MESR_MEBP2_Msk (0x3FUL << CAN_MESR_MEBP2_Pos) /*!< 0x00003F00 */ +#define CAN_MESR_MEBP2 CAN_MESR_MEBP2_Msk /*!< MEBP2[13:8] bits (desc MEBP2) */ +#define CAN_MESR_MEBP2_0 (0x1UL << CAN_MESR_MEBP2_Pos) /*!< 0x00000100 */ +#define CAN_MESR_MEBP2_1 (0x2UL << CAN_MESR_MEBP2_Pos) /*!< 0x00000200 */ +#define CAN_MESR_MEBP2_2 (0x4UL << CAN_MESR_MEBP2_Pos) /*!< 0x00000400 */ +#define CAN_MESR_MEBP2_3 (0x8UL << CAN_MESR_MEBP2_Pos) /*!< 0x00000800 */ +#define CAN_MESR_MEBP2_4 (0x10UL << CAN_MESR_MEBP2_Pos) /*!< 0x00001000 */ +#define CAN_MESR_MEBP2_5 (0x20UL << CAN_MESR_MEBP2_Pos) /*!< 0x00002000 */ +#define CAN_MESR_ME2EE_Pos (14U) +#define CAN_MESR_ME2EE_Msk (0x1UL << CAN_MESR_ME2EE_Pos) /*!< 0x00004000 */ +#define CAN_MESR_ME2EE CAN_MESR_ME2EE_Msk /*!< desc ME2EE */ +#define CAN_MESR_MEEEC_Pos (16U) +#define CAN_MESR_MEEEC_Msk (0xFUL << CAN_MESR_MEEEC_Pos) /*!< 0x000F0000 */ +#define CAN_MESR_MEEEC CAN_MESR_MEEEC_Msk /*!< MEEEC[19:16] bits (desc MEEEC) */ +#define CAN_MESR_MEEEC_0 (0x1UL << CAN_MESR_MEEEC_Pos) /*!< 0x00010000 */ +#define CAN_MESR_MEEEC_1 (0x2UL << CAN_MESR_MEEEC_Pos) /*!< 0x00020000 */ +#define CAN_MESR_MEEEC_2 (0x4UL << CAN_MESR_MEEEC_Pos) /*!< 0x00040000 */ +#define CAN_MESR_MEEEC_3 (0x8UL << CAN_MESR_MEEEC_Pos) /*!< 0x00080000 */ +#define CAN_MESR_MENEC_Pos (20U) +#define CAN_MESR_MENEC_Msk (0xFUL << CAN_MESR_MENEC_Pos) /*!< 0x00F00000 */ +#define CAN_MESR_MENEC CAN_MESR_MENEC_Msk /*!< MENEC[23:20] bits (desc MENEC) */ +#define CAN_MESR_MENEC_0 (0x1UL << CAN_MESR_MENEC_Pos) /*!< 0x00100000 */ +#define CAN_MESR_MENEC_1 (0x2UL << CAN_MESR_MENEC_Pos) /*!< 0x00200000 */ +#define CAN_MESR_MENEC_2 (0x4UL << CAN_MESR_MENEC_Pos) /*!< 0x00400000 */ +#define CAN_MESR_MENEC_3 (0x8UL << CAN_MESR_MENEC_Pos) /*!< 0x00800000 */ +#define CAN_MESR_MEL_Pos (24U) +#define CAN_MESR_MEL_Msk (0x3UL << CAN_MESR_MEL_Pos) /*!< 0x03000000 */ +#define CAN_MESR_MEL CAN_MESR_MEL_Msk /*!< MEL[25:24] bits (desc MEL) */ +#define CAN_MESR_MEL_0 (0x1UL << CAN_MESR_MEL_Pos) /*!< 0x01000000 */ +#define CAN_MESR_MEL_1 (0x2UL << CAN_MESR_MEL_Pos) /*!< 0x02000000 */ +#define CAN_MESR_MES_Pos (26U) +#define CAN_MESR_MES_Msk (0x1UL << CAN_MESR_MES_Pos) /*!< 0x04000000 */ +#define CAN_MESR_MES CAN_MESR_MES_Msk /*!< desc MES */ + +/*!< CAN_ACFCR */ +#define CAN_ACFCR_ACFADR_Pos (0U) +#define CAN_ACFCR_ACFADR_Msk (0xFUL << CAN_ACFCR_ACFADR_Pos) /*!< 0x0000000F */ +#define CAN_ACFCR_ACFADR CAN_ACFCR_ACFADR_Msk /*!< ACFADR[3:0] bits (desc ACFADR) */ +#define CAN_ACFCR_ACFADR_0 (0x1UL << CAN_ACFCR_ACFADR_Pos) /*!< 0x00000001 */ +#define CAN_ACFCR_ACFADR_1 (0x2UL << CAN_ACFCR_ACFADR_Pos) /*!< 0x00000002 */ +#define CAN_ACFCR_ACFADR_2 (0x4UL << CAN_ACFCR_ACFADR_Pos) /*!< 0x00000004 */ +#define CAN_ACFCR_ACFADR_3 (0x8UL << CAN_ACFCR_ACFADR_Pos) /*!< 0x00000008 */ +#define CAN_ACFCR_AE_0_Pos (16U) +#define CAN_ACFCR_AE_0_Msk (0x1UL << CAN_ACFCR_AE_0_Pos) /*!< 0x00010000 */ +#define CAN_ACFCR_AE_0 CAN_ACFCR_AE_0_Msk /*!< desc AE_0 */ +#define CAN_ACFCR_AE_1_Pos (17U) +#define CAN_ACFCR_AE_1_Msk (0x1UL << CAN_ACFCR_AE_1_Pos) /*!< 0x00020000 */ +#define CAN_ACFCR_AE_1 CAN_ACFCR_AE_1_Msk /*!< desc AE_1 */ +#define CAN_ACFCR_AE_2_Pos (18U) +#define CAN_ACFCR_AE_2_Msk (0x1UL << CAN_ACFCR_AE_2_Pos) /*!< 0x00040000 */ +#define CAN_ACFCR_AE_2 CAN_ACFCR_AE_2_Msk /*!< desc AE_2 */ +#define CAN_ACFCR_AE_3_Pos (19U) +#define CAN_ACFCR_AE_3_Msk (0x1UL << CAN_ACFCR_AE_3_Pos) /*!< 0x00080000 */ +#define CAN_ACFCR_AE_3 CAN_ACFCR_AE_3_Msk /*!< desc AE_3 */ +#define CAN_ACFCR_AE_4_Pos (20U) +#define CAN_ACFCR_AE_4_Msk (0x1UL << CAN_ACFCR_AE_4_Pos) /*!< 0x00100000 */ +#define CAN_ACFCR_AE_4 CAN_ACFCR_AE_4_Msk /*!< desc AE_4 */ +#define CAN_ACFCR_AE_5_Pos (21U) +#define CAN_ACFCR_AE_5_Msk (0x1UL << CAN_ACFCR_AE_5_Pos) /*!< 0x00200000 */ +#define CAN_ACFCR_AE_5 CAN_ACFCR_AE_5_Msk /*!< desc AE_5 */ +#define CAN_ACFCR_AE_6_Pos (22U) +#define CAN_ACFCR_AE_6_Msk (0x1UL << CAN_ACFCR_AE_6_Pos) /*!< 0x00400000 */ +#define CAN_ACFCR_AE_6 CAN_ACFCR_AE_6_Msk /*!< desc AE_6 */ +#define CAN_ACFCR_AE_7_Pos (23U) +#define CAN_ACFCR_AE_7_Msk (0x1UL << CAN_ACFCR_AE_7_Pos) /*!< 0x00800000 */ +#define CAN_ACFCR_AE_7 CAN_ACFCR_AE_7_Msk /*!< desc AE_7 */ +#define CAN_ACFCR_AE_8_Pos (24U) +#define CAN_ACFCR_AE_8_Msk (0x1UL << CAN_ACFCR_AE_8_Pos) /*!< 0x01000000 */ +#define CAN_ACFCR_AE_8 CAN_ACFCR_AE_8_Msk /*!< desc AE_8 */ +#define CAN_ACFCR_AE_9_Pos (25U) +#define CAN_ACFCR_AE_9_Msk (0x1UL << CAN_ACFCR_AE_9_Pos) /*!< 0x02000000 */ +#define CAN_ACFCR_AE_9 CAN_ACFCR_AE_9_Msk /*!< desc AE_9 */ +#define CAN_ACFCR_AE_10_Pos (26U) +#define CAN_ACFCR_AE_10_Msk (0x1UL << CAN_ACFCR_AE_10_Pos) /*!< 0x04000000 */ +#define CAN_ACFCR_AE_10 CAN_ACFCR_AE_10_Msk /*!< desc AE_10 */ +#define CAN_ACFCR_AE_11_Pos (27U) +#define CAN_ACFCR_AE_11_Msk (0x1UL << CAN_ACFCR_AE_11_Pos) /*!< 0x08000000 */ +#define CAN_ACFCR_AE_11 CAN_ACFCR_AE_11_Msk /*!< desc AE_11 */ +#define CAN_ACFCR_AE_12_Pos (28U) +#define CAN_ACFCR_AE_12_Msk (0x1UL << CAN_ACFCR_AE_12_Pos) /*!< 0x10000000 */ +#define CAN_ACFCR_AE_12 CAN_ACFCR_AE_12_Msk /*!< desc AE_12 */ +#define CAN_ACFCR_AE_13_Pos (29U) +#define CAN_ACFCR_AE_13_Msk (0x1UL << CAN_ACFCR_AE_13_Pos) /*!< 0x20000000 */ +#define CAN_ACFCR_AE_13 CAN_ACFCR_AE_13_Msk /*!< desc AE_13 */ +#define CAN_ACFCR_AE_14_Pos (30U) +#define CAN_ACFCR_AE_14_Msk (0x1UL << CAN_ACFCR_AE_14_Pos) /*!< 0x40000000 */ +#define CAN_ACFCR_AE_14 CAN_ACFCR_AE_14_Msk /*!< desc AE_14 */ +#define CAN_ACFCR_AE_15_Pos (31U) +#define CAN_ACFCR_AE_15_Msk (0x1UL << CAN_ACFCR_AE_15_Pos) /*!< 0x80000000 */ +#define CAN_ACFCR_AE_15 CAN_ACFCR_AE_15_Msk /*!< desc AE_15 */ + +/*!< CAN_PWMCR */ +#define CAN_PWMCR_PWMO_Pos (0U) +#define CAN_PWMCR_PWMO_Msk (0x3FUL << CAN_PWMCR_PWMO_Pos) /*!< 0x0000003F */ +#define CAN_PWMCR_PWMO CAN_PWMCR_PWMO_Msk /*!< PWMO[5:0] bits (desc PWMO) */ +#define CAN_PWMCR_PWMO_0 (0x1UL << CAN_PWMCR_PWMO_Pos) /*!< 0x00000001 */ +#define CAN_PWMCR_PWMO_1 (0x2UL << CAN_PWMCR_PWMO_Pos) /*!< 0x00000002 */ +#define CAN_PWMCR_PWMO_2 (0x4UL << CAN_PWMCR_PWMO_Pos) /*!< 0x00000004 */ +#define CAN_PWMCR_PWMO_3 (0x8UL << CAN_PWMCR_PWMO_Pos) /*!< 0x00000008 */ +#define CAN_PWMCR_PWMO_4 (0x10UL << CAN_PWMCR_PWMO_Pos) /*!< 0x00000010 */ +#define CAN_PWMCR_PWMO_5 (0x20UL << CAN_PWMCR_PWMO_Pos) /*!< 0x00000020 */ +#define CAN_PWMCR_PWMS_Pos (8U) +#define CAN_PWMCR_PWMS_Msk (0x3FUL << CAN_PWMCR_PWMS_Pos) /*!< 0x00003F00 */ +#define CAN_PWMCR_PWMS CAN_PWMCR_PWMS_Msk /*!< PWMS[13:8] bits (desc PWMS) */ +#define CAN_PWMCR_PWMS_0 (0x1UL << CAN_PWMCR_PWMS_Pos) /*!< 0x00000100 */ +#define CAN_PWMCR_PWMS_1 (0x2UL << CAN_PWMCR_PWMS_Pos) /*!< 0x00000200 */ +#define CAN_PWMCR_PWMS_2 (0x4UL << CAN_PWMCR_PWMS_Pos) /*!< 0x00000400 */ +#define CAN_PWMCR_PWMS_3 (0x8UL << CAN_PWMCR_PWMS_Pos) /*!< 0x00000800 */ +#define CAN_PWMCR_PWMS_4 (0x10UL << CAN_PWMCR_PWMS_Pos) /*!< 0x00001000 */ +#define CAN_PWMCR_PWMS_5 (0x20UL << CAN_PWMCR_PWMS_Pos) /*!< 0x00002000 */ +#define CAN_PWMCR_PWML_Pos (16U) +#define CAN_PWMCR_PWML_Msk (0x3FUL << CAN_PWMCR_PWML_Pos) /*!< 0x003F0000 */ +#define CAN_PWMCR_PWML CAN_PWMCR_PWML_Msk /*!< PWML[21:16] bits (desc PWML) */ +#define CAN_PWMCR_PWML_0 (0x1UL << CAN_PWMCR_PWML_Pos) /*!< 0x00010000 */ +#define CAN_PWMCR_PWML_1 (0x2UL << CAN_PWMCR_PWML_Pos) /*!< 0x00020000 */ +#define CAN_PWMCR_PWML_2 (0x4UL << CAN_PWMCR_PWML_Pos) /*!< 0x00040000 */ +#define CAN_PWMCR_PWML_3 (0x8UL << CAN_PWMCR_PWML_Pos) /*!< 0x00080000 */ +#define CAN_PWMCR_PWML_4 (0x10UL << CAN_PWMCR_PWML_Pos) /*!< 0x00100000 */ +#define CAN_PWMCR_PWML_5 (0x20UL << CAN_PWMCR_PWML_Pos) /*!< 0x00200000 */ + +/****************************************************************************/ +/* */ +/* Analog Comparators (COMP) */ +/* */ +/****************************************************************************/ +/********************** Bit definition for COMP_CSR register **************/ +#define COMP_CSR_EN_Pos (0U) +#define COMP_CSR_EN_Msk (0x1UL << COMP_CSR_EN_Pos) /*!< 0x00000001 */ +#define COMP_CSR_EN COMP_CSR_EN_Msk /*!< Comparator enable */ +#define COMP_CSR_COMP1_EN COMP_CSR_EN +#define COMP_CSR_COMP2_EN COMP_CSR_EN + +//#define COMP_CSR_SCALER_EN_Pos (1U) +//#define COMP_CSR_SCALER_EN_Msk (0x1UL << COMP_CSR_SCALER_EN_Pos) /*!< 0x00000001 */ +//#define COMP_CSR_SCALER_EN COMP_CSR_SCALER_EN_Msk /*!< Comparator enable */ + +//#define COMP_CSR_INMSEL_Pos (4U) +//#define COMP_CSR_INMSEL_Msk (0xFUL << COMP_CSR_INMSEL_Pos) /*!< 0x000000F0 */ +//#define COMP_CSR_INMSEL COMP_CSR_INMSEL_Msk /*!< Comparator input minus selection */ +//#define COMP_CSR_INMSEL_0 (0x1UL << COMP_CSR_INMSEL_Pos) /*!< 0x00000010 */ +//#define COMP_CSR_INMSEL_1 (0x2UL << COMP_CSR_INMSEL_Pos) /*!< 0x00000020 */ +//#define COMP_CSR_INMSEL_2 (0x4UL << COMP_CSR_INMSEL_Pos) /*!< 0x00000040 */ +//#define COMP_CSR_INMSEL_3 (0x8UL << COMP_CSR_INMSEL_Pos) /*!< 0x00000080 */ + +#define COMP_CSR_INNSEL_Pos (2U) +#define COMP_CSR_INNSEL_Msk (0xFUL << COMP_CSR_INNSEL_Pos) /*!< 0x0000003C */ +#define COMP_CSR_INNSEL COMP_CSR_INNSEL_Msk /*!< desc INNSEL */ +#define COMP_CSR_INNSEL_0 (0x1UL << COMP_CSR_INNSEL_Pos) /*!< 0x00000004 */ +#define COMP_CSR_INNSEL_1 (0x2UL << COMP_CSR_INNSEL_Pos) /*!< 0x00000008 */ +#define COMP_CSR_INNSEL_2 (0x4UL << COMP_CSR_INNSEL_Pos) /*!< 0x00000010 */ +#define COMP_CSR_INNSEL_3 (0x8UL << COMP_CSR_INNSEL_Pos) /*!< 0x00000020 */ + +#define COMP_CSR_INPSEL_Pos (6U) +#define COMP_CSR_INPSEL_Msk (0xFUL << COMP_CSR_INPSEL_Pos) /*!< 0x000003C0 */ +#define COMP_CSR_INPSEL COMP_CSR_INPSEL_Msk /*!< Comparator plus minus selection */ +#define COMP_CSR_INPSEL_0 (0x1UL << COMP_CSR_INPSEL_Pos) /*!< 0x00000040 */ +#define COMP_CSR_INPSEL_1 (0x2UL << COMP_CSR_INPSEL_Pos) /*!< 0x00000080 */ +#define COMP_CSR_INPSEL_2 (0x4UL << COMP_CSR_INPSEL_Pos) /*!< 0x00000100 */ +#define COMP_CSR_INPSEL_3 (0x8UL << COMP_CSR_INPSEL_Pos) /*!< 0x00000200 */ + +#define COMP_CSR_WINMODE_Pos (11U) +#define COMP_CSR_WINMODE_Msk (0x1UL << COMP_CSR_WINMODE_Pos) /*!< 0x00000800 */ +#define COMP_CSR_WINMODE COMP_CSR_WINMODE_Msk /*!< Pair of comparators window mode. Bit intended to be used with COMP common instance (COMP_Common_TypeDef) */ +//#define COMP_CSR_WINOUT_Pos (14U) +//#define COMP_CSR_WINOUT_Msk (0x1UL << COMP_CSR_WINOUT_Pos) /*!< 0x00004000 */ +//#define COMP_CSR_WINOUT COMP_CSR_WINOUT_Msk /*!< Pair of comparators window output level. Bit intended to be used with COMP common instance (COMP_Common_TypeDef) */ + +#define COMP_CSR_POLARITY_Pos (15U) +#define COMP_CSR_POLARITY_Msk (0x1UL << COMP_CSR_POLARITY_Pos) /*!< 0x00008000 */ +#define COMP_CSR_POLARITY COMP_CSR_POLARITY_Msk /*!< Comparator output polarity */ + +#define COMP_CSR_HYST_Pos (16U) +#define COMP_CSR_HYST_Msk (0x1UL << COMP_CSR_HYST_Pos) /*!< 0x00010000 */ +#define COMP_CSR_HYST COMP_CSR_HYST_Msk /*!< Comparator hysteresis enable */ + +#define COMP_CSR_PWRMODE_Pos (18U) +#define COMP_CSR_PWRMODE_Msk (0x3UL << COMP_CSR_PWRMODE_Pos) /*!< 0x000C0000 */ +#define COMP_CSR_PWRMODE COMP_CSR_PWRMODE_Msk /*!< Comparator power mode */ +#define COMP_CSR_PWRMODE_0 (0x1UL << COMP_CSR_PWRMODE_Pos) /*!< 0x00040000 */ +#define COMP_CSR_PWRMODE_1 (0x2UL << COMP_CSR_PWRMODE_Pos) /*!< 0x00080000 */ + +#define COMP_CSR_VCDIV_Pos (20U) +#define COMP_CSR_VCDIV_Msk (0x3FUL << COMP_CSR_VCDIV_Pos) /*!< 0x03F00000 */ +#define COMP_CSR_VCDIV COMP_CSR_VCDIV_Msk /*!< VCDIV[25:20] bits (desc VCDIV) */ +#define COMP_CSR_VCDIV_0 (0x1UL << COMP_CSR_VCDIV_Pos) /*!< 0x00100000 */ +#define COMP_CSR_VCDIV_1 (0x2UL << COMP_CSR_VCDIV_Pos) /*!< 0x00200000 */ +#define COMP_CSR_VCDIV_2 (0x4UL << COMP_CSR_VCDIV_Pos) /*!< 0x00400000 */ +#define COMP_CSR_VCDIV_3 (0x8UL << COMP_CSR_VCDIV_Pos) /*!< 0x00800000 */ +#define COMP_CSR_VCDIV_4 (0x10UL << COMP_CSR_VCDIV_Pos) /*!< 0x01000000 */ +#define COMP_CSR_VCDIV_5 (0x20UL << COMP_CSR_VCDIV_Pos) /*!< 0x02000000 */ + +#define COMP_CSR_VCDIV_EN_Pos (26U) +#define COMP_CSR_VCDIV_EN_Msk (0x1UL << COMP_CSR_VCDIV_EN_Pos) /*!< 0x04000000 */ +#define COMP_CSR_VCDIV_EN COMP_CSR_VCDIV_EN_Msk /*!< desc VCDIV_EN */ + +#define COMP_CSR_VCSEL_Pos (27U) +#define COMP_CSR_VCSEL_Msk (0x1UL << COMP_CSR_VCSEL_Pos) /*!< 0x08000000 */ +#define COMP_CSR_VCSEL COMP_CSR_VCSEL_Msk /*!< desc VCSEL */ + +#define COMP_CSR_COMP_OUT_Pos (30U) +#define COMP_CSR_COMP_OUT_Msk (0x1UL << COMP_CSR_COMP_OUT_Pos) /*!< 0x40000000 */ +#define COMP_CSR_COMP_OUT COMP_CSR_COMP_OUT_Msk /*!< desc COMP_OUT */ + +//#define COMP_CSR_LOCK_Pos (31U) +//#define COMP_CSR_LOCK_Msk (0x1UL << COMP_CSR_LOCK_Pos) /*!< 0x80000000 */ +//#define COMP_CSR_LOCK COMP_CSR_LOCK_Msk /*!< Comparator lock */ + +/********************** Bit definition for COMP_FR register ***************/ +#define COMP_FR_FLTEN_Pos (0U) +#define COMP_FR_FLTEN_Msk (0x1UL << COMP_FR_FLTEN_Pos) /*!< 0x00000001 */ +#define COMP_FR_FLTEN COMP_FR_FLTEN_Msk /*!< Comparator filter enable */ +#define COMP_FR_FLTCNT_Pos (16U) +#define COMP_FR_FLTCNT_Msk (0xFFFFUL << COMP_FR_FLTCNT_Pos) /*!< 0xFFFF0000 */ +#define COMP_FR_FLTCNT COMP_FR_FLTCNT_Msk /*!< Comparator filter counter */ + +/****************************************************************************/ +/* */ +/* CRC calculation unit (CRC) */ +/* */ +/****************************************************************************/ +/******************* Bit definition for CRC_DR register *******************/ +#define CRC_DR_DR_Pos (0U) +#define CRC_DR_DR_Msk (0xFFFFFFFFUL << CRC_DR_DR_Pos) /*!< 0xFFFFFFFF */ +#define CRC_DR_DR CRC_DR_DR_Msk /*!< Data register bits */ + +/******************* Bit definition for CRC_IDR register ******************/ +#define CRC_IDR_IDR_Pos (0U) +#define CRC_IDR_IDR_Msk (0xFFUL << CRC_IDR_IDR_Pos) /*!< 0xFFFFFFFF */ +#define CRC_IDR_IDR CRC_IDR_IDR_Msk /*!< General-purpose 8-bit data register bits */ + +/******************** Bit definition for CRC_CR register ******************/ +#define CRC_CR_RESET_Pos (0U) +#define CRC_CR_RESET_Msk (0x1UL << CRC_CR_RESET_Pos) /*!< 0x00000001 */ +#define CRC_CR_RESET CRC_CR_RESET_Msk /*!< RESET the CRC computation unit bit */ + +/****************************************************************************/ +/* */ +/* Clock Triming Controller(CTC) */ +/* */ +/****************************************************************************/ +/********************* Bits Define For Peripheral CTC *********************/ +/*!< CTC_CTL0 */ +#define CTC_CTL0_CKOKIE_Pos (0U) +#define CTC_CTL0_CKOKIE_Msk (0x1UL << CTC_CTL0_CKOKIE_Pos) /*!< 0x00000001 */ +#define CTC_CTL0_CKOKIE CTC_CTL0_CKOKIE_Msk /*!< desc CKOKIE */ +#define CTC_CTL0_CKWARNIE_Pos (1U) +#define CTC_CTL0_CKWARNIE_Msk (0x1UL << CTC_CTL0_CKWARNIE_Pos) /*!< 0x00000002 */ +#define CTC_CTL0_CKWARNIE CTC_CTL0_CKWARNIE_Msk /*!< desc CKWARNIE */ +#define CTC_CTL0_ERRIE_Pos (2U) +#define CTC_CTL0_ERRIE_Msk (0x1UL << CTC_CTL0_ERRIE_Pos) /*!< 0x00000004 */ +#define CTC_CTL0_ERRIE CTC_CTL0_ERRIE_Msk /*!< desc ERRIE */ +#define CTC_CTL0_EREFIE_Pos (3U) +#define CTC_CTL0_EREFIE_Msk (0x1UL << CTC_CTL0_EREFIE_Pos) /*!< 0x00000008 */ +#define CTC_CTL0_EREFIE CTC_CTL0_EREFIE_Msk /*!< desc EREFIE */ +#define CTC_CTL0_CNTEN_Pos (5U) +#define CTC_CTL0_CNTEN_Msk (0x1UL << CTC_CTL0_CNTEN_Pos) /*!< 0x00000020 */ +#define CTC_CTL0_CNTEN CTC_CTL0_CNTEN_Msk /*!< desc CNTEN */ +#define CTC_CTL0_AUTOTRIM_Pos (6U) +#define CTC_CTL0_AUTOTRIM_Msk (0x1UL << CTC_CTL0_AUTOTRIM_Pos) /*!< 0x00000040 */ +#define CTC_CTL0_AUTOTRIM CTC_CTL0_AUTOTRIM_Msk /*!< desc AUTOTRIM */ +#define CTC_CTL0_SWREFPUL_Pos (7U) +#define CTC_CTL0_SWREFPUL_Msk (0x1UL << CTC_CTL0_SWREFPUL_Pos) /*!< 0x00000080 */ +#define CTC_CTL0_SWREFPUL CTC_CTL0_SWREFPUL_Msk /*!< desc SWREFPUL */ +#define CTC_CTL0_TRIMVALUE_Pos (8U) +#define CTC_CTL0_TRIMVALUE_Msk (0x3FUL << CTC_CTL0_TRIMVALUE_Pos) /*!< 0x00003F00 */ +#define CTC_CTL0_TRIMVALUE CTC_CTL0_TRIMVALUE_Msk /*!< TRIMVALUE[13:8] bits (desc TRIMVALUE) */ +#define CTC_CTL0_TRIMVALUE_0 (0x1UL << CTC_CTL0_TRIMVALUE_Pos) /*!< 0x00000100 */ +#define CTC_CTL0_TRIMVALUE_1 (0x2UL << CTC_CTL0_TRIMVALUE_Pos) /*!< 0x00000200 */ +#define CTC_CTL0_TRIMVALUE_2 (0x4UL << CTC_CTL0_TRIMVALUE_Pos) /*!< 0x00000400 */ +#define CTC_CTL0_TRIMVALUE_3 (0x8UL << CTC_CTL0_TRIMVALUE_Pos) /*!< 0x00000800 */ +#define CTC_CTL0_TRIMVALUE_4 (0x10UL << CTC_CTL0_TRIMVALUE_Pos) /*!< 0x00001000 */ +#define CTC_CTL0_TRIMVALUE_5 (0x20UL << CTC_CTL0_TRIMVALUE_Pos) /*!< 0x00002000 */ + + +/*!< CTC_CTL1 */ +#define CTC_CTL1_RLVALUE_Pos (0U) +#define CTC_CTL1_RLVALUE_Msk (0xFFFFUL << CTC_CTL1_RLVALUE_Pos) /*!< 0x0000FFFF */ +#define CTC_CTL1_RLVALUE CTC_CTL1_RLVALUE_Msk /*!< RLVALUE[15:0] bits (desc RLVALUE) */ +#define CTC_CTL1_CKLIM_Pos (16U) +#define CTC_CTL1_CKLIM_Msk (0xFFUL << CTC_CTL1_CKLIM_Pos) /*!< 0x00FF0000 */ +#define CTC_CTL1_CKLIM CTC_CTL1_CKLIM_Msk /*!< CKLIM[23:16] bits (desc CKLIM) */ +#define CTC_CTL1_REFPSC_Pos (24U) +#define CTC_CTL1_REFPSC_Msk (0x7UL << CTC_CTL1_REFPSC_Pos) /*!< 0x07000000 */ +#define CTC_CTL1_REFPSC CTC_CTL1_REFPSC_Msk /*!< REFPSC[26:24] bits (desc REFPSC) */ +#define CTC_CTL1_REFPSC_0 (0x1UL << CTC_CTL1_REFPSC_Pos) /*!< 0x01000000 */ +#define CTC_CTL1_REFPSC_1 (0x2UL << CTC_CTL1_REFPSC_Pos) /*!< 0x02000000 */ +#define CTC_CTL1_REFPSC_2 (0x4UL << CTC_CTL1_REFPSC_Pos) /*!< 0x04000000 */ +#define CTC_CTL1_REFSEL_Pos (28U) +#define CTC_CTL1_REFSEL_Msk (0x3UL << CTC_CTL1_REFSEL_Pos) /*!< 0x30000000 */ +#define CTC_CTL1_REFSEL CTC_CTL1_REFSEL_Msk /*!< REFSEL[29:28] bits (desc REFSEL) */ +#define CTC_CTL1_REFSEL_0 (0x1UL << CTC_CTL1_REFSEL_Pos) /*!< 0x10000000 */ +#define CTC_CTL1_REFSEL_1 (0x2UL << CTC_CTL1_REFSEL_Pos) /*!< 0x20000000 */ +#define CTC_CTL1_REFPOL_Pos (31U) +#define CTC_CTL1_REFPOL_Msk (0x1UL << CTC_CTL1_REFPOL_Pos) /*!< 0x80000000 */ +#define CTC_CTL1_REFPOL CTC_CTL1_REFPOL_Msk /*!< desc REFPOL */ + +/*!< CTC_SR */ +#define CTC_SR_CKOKIF_Pos (0U) +#define CTC_SR_CKOKIF_Msk (0x1UL << CTC_SR_CKOKIF_Pos) /*!< 0x00000001 */ +#define CTC_SR_CKOKIF CTC_SR_CKOKIF_Msk /*!< desc CKOKIF */ +#define CTC_SR_CKWARNIF_Pos (1U) +#define CTC_SR_CKWARNIF_Msk (0x1UL << CTC_SR_CKWARNIF_Pos) /*!< 0x00000002 */ +#define CTC_SR_CKWARNIF CTC_SR_CKWARNIF_Msk /*!< desc CKWARNIF */ +#define CTC_SR_ERRIF_Pos (2U) +#define CTC_SR_ERRIF_Msk (0x1UL << CTC_SR_ERRIF_Pos) /*!< 0x00000004 */ +#define CTC_SR_ERRIF CTC_SR_ERRIF_Msk /*!< desc ERRIF */ +#define CTC_SR_EREFIF_Pos (3U) +#define CTC_SR_EREFIF_Msk (0x1UL << CTC_SR_EREFIF_Pos) /*!< 0x00000008 */ +#define CTC_SR_EREFIF CTC_SR_EREFIF_Msk /*!< desc EREFIF */ +#define CTC_SR_CKERR_Pos (8U) +#define CTC_SR_CKERR_Msk (0x1UL << CTC_SR_CKERR_Pos) /*!< 0x00000100 */ +#define CTC_SR_CKERR CTC_SR_CKERR_Msk /*!< desc CKERR */ +#define CTC_SR_REFMISS_Pos (9U) +#define CTC_SR_REFMISS_Msk (0x1UL << CTC_SR_REFMISS_Pos) /*!< 0x00000200 */ +#define CTC_SR_REFMISS CTC_SR_REFMISS_Msk /*!< desc REFMISS */ +#define CTC_SR_TRIMERR_Pos (10U) +#define CTC_SR_TRIMERR_Msk (0x1UL << CTC_SR_TRIMERR_Pos) /*!< 0x00000400 */ +#define CTC_SR_TRIMERR CTC_SR_TRIMERR_Msk /*!< desc TRIMERR */ +#define CTC_SR_REFDIR_Pos (15U) +#define CTC_SR_REFDIR_Msk (0x1UL << CTC_SR_REFDIR_Pos) /*!< 0x00008000 */ +#define CTC_SR_REFDIR CTC_SR_REFDIR_Msk /*!< desc REFDIR */ +#define CTC_SR_REFCAP_Pos (16U) +#define CTC_SR_REFCAP_Msk (0xFFFFUL << CTC_SR_REFCAP_Pos) /*!< 0xFFFF0000 */ +#define CTC_SR_REFCAP CTC_SR_REFCAP_Msk /*!< REFCAP[31:16] bits (desc REFCAP) */ + +/*!< CTC_INTC */ +#define CTC_INTC_CKOKIC_Pos (0U) +#define CTC_INTC_CKOKIC_Msk (0x1UL << CTC_INTC_CKOKIC_Pos) /*!< 0x00000001 */ +#define CTC_INTC_CKOKIC CTC_INTC_CKOKIC_Msk /*!< desc CKOKIC */ +#define CTC_INTC_CKWARNIC_Pos (1U) +#define CTC_INTC_CKWARNIC_Msk (0x1UL << CTC_INTC_CKWARNIC_Pos) /*!< 0x00000002 */ +#define CTC_INTC_CKWARNIC CTC_INTC_CKWARNIC_Msk /*!< desc CKWARNIC */ +#define CTC_INTC_ERRIC_Pos (2U) +#define CTC_INTC_ERRIC_Msk (0x1UL << CTC_INTC_ERRIC_Pos) /*!< 0x00000004 */ +#define CTC_INTC_ERRIC CTC_INTC_ERRIC_Msk /*!< desc ERRIC */ +#define CTC_INTC_EREFIC_Pos (3U) +#define CTC_INTC_EREFIC_Msk (0x1UL << CTC_INTC_EREFIC_Pos) /*!< 0x00000008 */ +#define CTC_INTC_EREFIC CTC_INTC_EREFIC_Msk /*!< desc EREFIC */ + +/****************************************************************************/ +/* */ +/* Digital to Analog Converter(DAC) */ +/* */ +/****************************************************************************/ +/********************* Bits Define For Peripheral DAC *********************/ +/*!< DAC_CR */ +#define DAC_CR_EN1_Pos (0U) +#define DAC_CR_EN1_Msk (0x1UL << DAC_CR_EN1_Pos) /*!< 0x00000001 */ +#define DAC_CR_EN1 DAC_CR_EN1_Msk /*!< desc EN1 */ +#define DAC_CR_BOFF1_Pos (1U) +#define DAC_CR_BOFF1_Msk (0x1UL << DAC_CR_BOFF1_Pos) /*!< 0x00000002 */ +#define DAC_CR_BOFF1 DAC_CR_BOFF1_Msk /*!< desc BOFF1 */ +#define DAC_CR_TEN1_Pos (2U) +#define DAC_CR_TEN1_Msk (0x1UL << DAC_CR_TEN1_Pos) /*!< 0x00000004 */ +#define DAC_CR_TEN1 DAC_CR_TEN1_Msk /*!< desc TEN1 */ +#define DAC_CR_TSEL1_Pos (3U) +#define DAC_CR_TSEL1_Msk (0x7UL << DAC_CR_TSEL1_Pos) /*!< 0x00000038 */ +#define DAC_CR_TSEL1 DAC_CR_TSEL1_Msk /*!< TSEL1[5:3] bits (desc TSEL1) */ +#define DAC_CR_TSEL1_0 (0x1UL << DAC_CR_TSEL1_Pos) /*!< 0x00000008 */ +#define DAC_CR_TSEL1_1 (0x2UL << DAC_CR_TSEL1_Pos) /*!< 0x00000010 */ +#define DAC_CR_TSEL1_2 (0x4UL << DAC_CR_TSEL1_Pos) /*!< 0x00000020 */ +#define DAC_CR_WAVE1_Pos (6U) +#define DAC_CR_WAVE1_Msk (0x3UL << DAC_CR_WAVE1_Pos) /*!< 0x000000C0 */ +#define DAC_CR_WAVE1 DAC_CR_WAVE1_Msk /*!< WAVE1[7:6] bits (desc WAVE1) */ +#define DAC_CR_WAVE1_0 (0x1UL << DAC_CR_WAVE1_Pos) /*!< 0x00000040 */ +#define DAC_CR_WAVE1_1 (0x2UL << DAC_CR_WAVE1_Pos) /*!< 0x00000080 */ +#define DAC_CR_MAMP1_Pos (8U) +#define DAC_CR_MAMP1_Msk (0xFUL << DAC_CR_MAMP1_Pos) /*!< 0x00000F00 */ +#define DAC_CR_MAMP1 DAC_CR_MAMP1_Msk /*!< MAMP1[11:8] bits (desc MAMP1) */ +#define DAC_CR_MAMP1_0 (0x1UL << DAC_CR_MAMP1_Pos) /*!< 0x00000100 */ +#define DAC_CR_MAMP1_1 (0x2UL << DAC_CR_MAMP1_Pos) /*!< 0x00000200 */ +#define DAC_CR_MAMP1_2 (0x4UL << DAC_CR_MAMP1_Pos) /*!< 0x00000400 */ +#define DAC_CR_MAMP1_3 (0x8UL << DAC_CR_MAMP1_Pos) /*!< 0x00000800 */ +#define DAC_CR_DMAEN1_Pos (12U) +#define DAC_CR_DMAEN1_Msk (0x1UL << DAC_CR_DMAEN1_Pos) /*!< 0x00001000 */ +#define DAC_CR_DMAEN1 DAC_CR_DMAEN1_Msk /*!< desc DMAEN1 */ +#define DAC_CR_DMAUDRIE1_Pos (13U) +#define DAC_CR_DMAUDRIE1_Msk (0x1UL << DAC_CR_DMAUDRIE1_Pos) /*!< 0x00002000 */ +#define DAC_CR_DMAUDRIE1 DAC_CR_DMAUDRIE1_Msk /*!< desc DMAUDRIE1 */ +#define DAC_CR_DAC1CEN_Pos (14U) +#define DAC_CR_DAC1CEN_Msk (0x1UL << DAC_CR_DAC1CEN_Pos) /*!< 0x00004000 */ +#define DAC_CR_DAC1CEN DAC_CR_DAC1CEN_Msk /*!< desc DAC1CEN */ +#define DAC_CR_EN2_Pos (16U) +#define DAC_CR_EN2_Msk (0x1UL << DAC_CR_EN2_Pos) /*!< 0x00010000 */ +#define DAC_CR_EN2 DAC_CR_EN2_Msk /*!< desc EN2 */ +#define DAC_CR_BOFF2_Pos (17U) +#define DAC_CR_BOFF2_Msk (0x1UL << DAC_CR_BOFF2_Pos) /*!< 0x00020000 */ +#define DAC_CR_BOFF2 DAC_CR_BOFF2_Msk /*!< desc BOFF2 */ +#define DAC_CR_TEN2_Pos (18U) +#define DAC_CR_TEN2_Msk (0x1UL << DAC_CR_TEN2_Pos) /*!< 0x00040000 */ +#define DAC_CR_TEN2 DAC_CR_TEN2_Msk /*!< desc TEN2 */ +#define DAC_CR_TSEL2_Pos (19U) +#define DAC_CR_TSEL2_Msk (0x7UL << DAC_CR_TSEL2_Pos) /*!< 0x00380000 */ +#define DAC_CR_TSEL2 DAC_CR_TSEL2_Msk /*!< TSEL2[21:19] bits (desc TSEL2) */ +#define DAC_CR_TSEL2_0 (0x1UL << DAC_CR_TSEL2_Pos) /*!< 0x00080000 */ +#define DAC_CR_TSEL2_1 (0x2UL << DAC_CR_TSEL2_Pos) /*!< 0x00100000 */ +#define DAC_CR_TSEL2_2 (0x4UL << DAC_CR_TSEL2_Pos) /*!< 0x00200000 */ +#define DAC_CR_WAVE2_Pos (22U) +#define DAC_CR_WAVE2_Msk (0x3UL << DAC_CR_WAVE2_Pos) /*!< 0x00C00000 */ +#define DAC_CR_WAVE2 DAC_CR_WAVE2_Msk /*!< WAVE2[23:22] bits (desc WAVE2) */ +#define DAC_CR_WAVE2_0 (0x1UL << DAC_CR_WAVE2_Pos) /*!< 0x00400000 */ +#define DAC_CR_WAVE2_1 (0x2UL << DAC_CR_WAVE2_Pos) /*!< 0x00800000 */ +#define DAC_CR_MAMP2_Pos (24U) +#define DAC_CR_MAMP2_Msk (0xFUL << DAC_CR_MAMP2_Pos) /*!< 0x0F000000 */ +#define DAC_CR_MAMP2 DAC_CR_MAMP2_Msk /*!< MAMP2[27:24] bits (desc MAMP2) */ +#define DAC_CR_MAMP2_0 (0x1UL << DAC_CR_MAMP2_Pos) /*!< 0x01000000 */ +#define DAC_CR_MAMP2_1 (0x2UL << DAC_CR_MAMP2_Pos) /*!< 0x02000000 */ +#define DAC_CR_MAMP2_2 (0x4UL << DAC_CR_MAMP2_Pos) /*!< 0x04000000 */ +#define DAC_CR_MAMP2_3 (0x8UL << DAC_CR_MAMP2_Pos) /*!< 0x08000000 */ +#define DAC_CR_DMAEN2_Pos (28U) +#define DAC_CR_DMAEN2_Msk (0x1UL << DAC_CR_DMAEN2_Pos) /*!< 0x10000000 */ +#define DAC_CR_DMAEN2 DAC_CR_DMAEN2_Msk /*!< desc DMAEN2 */ +#define DAC_CR_DMAUDRIE2_Pos (29U) +#define DAC_CR_DMAUDRIE2_Msk (0x1UL << DAC_CR_DMAUDRIE2_Pos) /*!< 0x20000000 */ +#define DAC_CR_DMAUDRIE2 DAC_CR_DMAUDRIE2_Msk /*!< desc DMAUDRIE2 */ +#define DAC_CR_DAC2CEN_Pos (30U) +#define DAC_CR_DAC2CEN_Msk (0x1UL << DAC_CR_DAC2CEN_Pos) /*!< 0x40000000 */ +#define DAC_CR_DAC2CEN DAC_CR_DAC2CEN_Msk /*!< desc DAC2CEN */ + +/*!< DAC_SWTRIGR */ +#define DAC_SWTRIGR_SWTRIG1_Pos (0U) +#define DAC_SWTRIGR_SWTRIG1_Msk (0x1UL << DAC_SWTRIGR_SWTRIG1_Pos) /*!< 0x00000001 */ +#define DAC_SWTRIGR_SWTRIG1 DAC_SWTRIGR_SWTRIG1_Msk /*!< desc SWTRIG1 */ +#define DAC_SWTRIGR_SWTRIG2_Pos (1U) +#define DAC_SWTRIGR_SWTRIG2_Msk (0x1UL << DAC_SWTRIGR_SWTRIG2_Pos) /*!< 0x00000002 */ +#define DAC_SWTRIGR_SWTRIG2 DAC_SWTRIGR_SWTRIG2_Msk /*!< desc SWTRIG2 */ + +/*!< DAC_DHR12R1 */ +#define DAC_DHR12R1_DACC1DHR_Pos (0U) +#define DAC_DHR12R1_DACC1DHR_Msk (0xFFFUL << DAC_DHR12R1_DACC1DHR_Pos) /*!< 0x00000FFF */ +#define DAC_DHR12R1_DACC1DHR DAC_DHR12R1_DACC1DHR_Msk /*!< DACC1DHR[11:0] bits (desc DACC1DHR) */ + +/*!< DAC_DHR12L1 */ +#define DAC_DHR12L1_DACC1DHR_Pos (3U) +#define DAC_DHR12L1_DACC1DHR_Msk (0xFFFUL << DAC_DHR12L1_DACC1DHR_Pos) /*!< 0x00007FF8 */ +#define DAC_DHR12L1_DACC1DHR DAC_DHR12L1_DACC1DHR_Msk /*!< DACC1DHR[14:3] bits (desc DACC1DHR) */ + +/*!< DAC_DHR8R1 */ +#define DAC_DHR8R1_DACC1DHR_Pos (0U) +#define DAC_DHR8R1_DACC1DHR_Msk (0xFFUL << DAC_DHR8R1_DACC1DHR_Pos) /*!< 0x000000FF */ +#define DAC_DHR8R1_DACC1DHR DAC_DHR8R1_DACC1DHR_Msk /*!< DACC1DHR[7:0] bits (desc DACC1DHR) */ + +/*!< DAC_DHR12R2 */ +#define DAC_DHR12R2_DACC2DHR_Pos (0U) +#define DAC_DHR12R2_DACC2DHR_Msk (0xFFFUL << DAC_DHR12R2_DACC2DHR_Pos) /*!< 0x00000FFF */ +#define DAC_DHR12R2_DACC2DHR DAC_DHR12R2_DACC2DHR_Msk /*!< DACC2DHR[11:0] bits (desc DACC2DHR) */ + +/*!< DAC_DHR12L2 */ +#define DAC_DHR12L2_DACC2DHR_Pos (4U) +#define DAC_DHR12L2_DACC2DHR_Msk (0xFFFUL << DAC_DHR12L2_DACC2DHR_Pos) /*!< 0x0000FFF0 */ +#define DAC_DHR12L2_DACC2DHR DAC_DHR12L2_DACC2DHR_Msk /*!< DACC2DHR[15:4] bits (desc DACC2DHR) */ + +/*!< DAC_DHR8R2 */ +#define DAC_DHR8R2_DACC2DHR_Pos (0U) +#define DAC_DHR8R2_DACC2DHR_Msk (0xFFUL << DAC_DHR8R2_DACC2DHR_Pos) /*!< 0x000000FF */ +#define DAC_DHR8R2_DACC2DHR DAC_DHR8R2_DACC2DHR_Msk /*!< DACC2DHR[7:0] bits (desc DACC2DHR) */ + +/*!< DAC_DHR12RD */ +#define DAC_DHR12RD_DACC1DHR_Pos (0U) +#define DAC_DHR12RD_DACC1DHR_Msk (0xFFFUL << DAC_DHR12RD_DACC1DHR_Pos) /*!< 0x00000FFF */ +#define DAC_DHR12RD_DACC1DHR DAC_DHR12RD_DACC1DHR_Msk /*!< DACC1DHR[11:0] bits (desc DACC1DHR) */ +#define DAC_DHR12RD_DACC2DHR_Pos (16U) +#define DAC_DHR12RD_DACC2DHR_Msk (0xFFFUL << DAC_DHR12RD_DACC2DHR_Pos) /*!< 0x0FFF0000 */ +#define DAC_DHR12RD_DACC2DHR DAC_DHR12RD_DACC2DHR_Msk /*!< DACC2DHR[27:16] bits (desc DACC2DHR) */ + +/*!< DAC_DHR12LD */ +#define DAC_DHR12LD_DACC1DHR_Pos (4U) +#define DAC_DHR12LD_DACC1DHR_Msk (0xFFFUL << DAC_DHR12LD_DACC1DHR_Pos) /*!< 0x0000FFF0 */ +#define DAC_DHR12LD_DACC1DHR DAC_DHR12LD_DACC1DHR_Msk /*!< DACC1DHR[15:4] bits (desc DACC1DHR) */ +#define DAC_DHR12LD_DACC2DHR_Pos (20U) +#define DAC_DHR12LD_DACC2DHR_Msk (0xFFFUL << DAC_DHR12LD_DACC2DHR_Pos) /*!< 0xFFF00000 */ +#define DAC_DHR12LD_DACC2DHR DAC_DHR12LD_DACC2DHR_Msk /*!< DACC2DHR[31:20] bits (desc DACC2DHR) */ + +/*!< DAC_DHR8RD */ +#define DAC_DHR8RD_DACC1DHR_Pos (0U) +#define DAC_DHR8RD_DACC1DHR_Msk (0xFFUL << DAC_DHR8RD_DACC1DHR_Pos) /*!< 0x000000FF */ +#define DAC_DHR8RD_DACC1DHR DAC_DHR8RD_DACC1DHR_Msk /*!< DACC1DHR[7:0] bits (desc DACC1DHR) */ +#define DAC_DHR8RD_DACC2DHR_Pos (8U) +#define DAC_DHR8RD_DACC2DHR_Msk (0xFFUL << DAC_DHR8RD_DACC2DHR_Pos) /*!< 0x0000FF00 */ +#define DAC_DHR8RD_DACC2DHR DAC_DHR8RD_DACC2DHR_Msk /*!< DACC2DHR[15:8] bits (desc DACC2DHR) */ + +/*!< DAC_DOR1 */ +#define DAC_DOR1_DACC1DOR_Pos (0U) +#define DAC_DOR1_DACC1DOR_Msk (0xFFFUL << DAC_DOR1_DACC1DOR_Pos) /*!< 0x00000FFF */ +#define DAC_DOR1_DACC1DOR DAC_DOR1_DACC1DOR_Msk /*!< DACC1DOR[11:0] bits (desc DACC1DOR) */ + +/*!< DAC_DOR2 */ +#define DAC_DOR2_DACC2DOR_Pos (0U) +#define DAC_DOR2_DACC2DOR_Msk (0xFFFUL << DAC_DOR2_DACC2DOR_Pos) /*!< 0x00000FFF */ +#define DAC_DOR2_DACC2DOR DAC_DOR2_DACC2DOR_Msk /*!< DACC2DOR[11:0] bits (desc DACC2DOR) */ + +/*!< DAC_SR */ +#define DAC_SR_DMAUDR1_Pos (13U) +#define DAC_SR_DMAUDR1_Msk (0x1UL << DAC_SR_DMAUDR1_Pos) /*!< 0x00002000 */ +#define DAC_SR_DMAUDR1 DAC_SR_DMAUDR1_Msk /*!< desc DMAUDR1 */ +#define DAC_SR_DMAUDR2_Pos (29U) +#define DAC_SR_DMAUDR2_Msk (0x1UL << DAC_SR_DMAUDR2_Pos) /*!< 0x20000000 */ +#define DAC_SR_DMAUDR2 DAC_SR_DMAUDR2_Msk /*!< desc DMAUDR2 */ + +/****************************************************************************/ +/* */ +/* Debug MCU (DBGMCU) */ +/* */ +/****************************************************************************/ +/******************** Bit definition for DBG_IDCODE register **************/ +#define DBGMCU_IDCODE_DEV_ID_Pos (0U) +#define DBGMCU_IDCODE_DEV_ID_Msk (0xFFFUL << DBGMCU_IDCODE_DEV_ID_Pos) /*!< 0x00000FFF */ +#define DBGMCU_IDCODE_DEV_ID DBGMCU_IDCODE_DEV_ID_Msk +#define DBGMCU_IDCODE_REV_ID_Pos (16U) +#define DBGMCU_IDCODE_REV_ID_Msk (0xFFFFUL << DBGMCU_IDCODE_REV_ID_Pos) /*!< 0xFFFF0000 */ +#define DBGMCU_IDCODE_REV_ID DBGMCU_IDCODE_REV_ID_Msk +#define DBGMCU_IDCODE_DBG_ID_Pos (0U) +#define DBGMCU_IDCODE_DBG_ID_Msk (0xFFFFUL << DBGMCU_IDCODE_DBG_ID_Pos) /*!< 0xFFFFFFFF */ +#define DBGMCU_IDCODE_DBG_ID DBGMCU_IDCODE_DBG_ID_Msk + +/******************** Bit definition for DBGMCU_CR register ***************/ +#define DBGMCU_CR_DBG_SLEEP_Pos (0U) +#define DBGMCU_CR_DBG_SLEEP_Msk (0x1UL << DBGMCU_CR_DBG_SLEEP_Pos) /*!< 0x00000001 */ +#define DBGMCU_CR_DBG_SLEEP DBGMCU_CR_DBG_SLEEP_Msk +#define DBGMCU_CR_DBG_STOP_Pos (1U) +#define DBGMCU_CR_DBG_STOP_Msk (0x1UL << DBGMCU_CR_DBG_STOP_Pos) /*!< 0x00000002 */ +#define DBGMCU_CR_DBG_STOP DBGMCU_CR_DBG_STOP_Msk + +/******************** Bit definition for DBGMCU_APB_FZ1 register **********/ +#define DBGMCU_APB_FZ1_DBG_TIM2_STOP_Pos (0U) +#define DBGMCU_APB_FZ1_DBG_TIM2_STOP_Msk (0x1UL << DBGMCU_APB_FZ1_DBG_TIM2_STOP_Pos) /*!< 0x00000001 */ +#define DBGMCU_APB_FZ1_DBG_TIM2_STOP DBGMCU_APB_FZ1_DBG_TIM2_STOP_Msk +#define DBGMCU_APB_FZ1_DBG_TIM3_STOP_Pos (1U) +#define DBGMCU_APB_FZ1_DBG_TIM3_STOP_Msk (0x1UL << DBGMCU_APB_FZ1_DBG_TIM3_STOP_Pos) /*!< 0x00000002 */ +#define DBGMCU_APB_FZ1_DBG_TIM3_STOP DBGMCU_APB_FZ1_DBG_TIM3_STOP_Msk +#define DBGMCU_APB_FZ1_DBG_TIM6_STOP_Pos (4U) +#define DBGMCU_APB_FZ1_DBG_TIM6_STOP_Msk (0x1UL << DBGMCU_APB_FZ1_DBG_TIM6_STOP_Pos) /*!< 0x00000010 */ +#define DBGMCU_APB_FZ1_DBG_TIM6_STOP DBGMCU_APB_FZ1_DBG_TIM6_STOP_Msk +#define DBGMCU_APB_FZ1_DBG_TIM7_STOP_Pos (5U) +#define DBGMCU_APB_FZ1_DBG_TIM7_STOP_Msk (0x1UL << DBGMCU_APB_FZ1_DBG_TIM7_STOP_Pos) /*!< 0x00000020 */ +#define DBGMCU_APB_FZ1_DBG_TIM7_STOP DBGMCU_APB_FZ1_DBG_TIM7_STOP_Msk +#define DBGMCU_APB_FZ1_DBG_RTC_STOP_Pos (10U) +#define DBGMCU_APB_FZ1_DBG_RTC_STOP_Msk (0x1UL << DBGMCU_APB_FZ1_DBG_RTC_STOP_Pos) /*!< 0x00000400 */ +#define DBGMCU_APB_FZ1_DBG_RTC_STOP DBGMCU_APB_FZ1_DBG_RTC_STOP_Msk +#define DBGMCU_APB_FZ1_DBG_WWDG_STOP_Pos (11U) +#define DBGMCU_APB_FZ1_DBG_WWDG_STOP_Msk (0x1UL << DBGMCU_APB_FZ1_DBG_WWDG_STOP_Pos) /*!< 0x00000800 */ +#define DBGMCU_APB_FZ1_DBG_WWDG_STOP DBGMCU_APB_FZ1_DBG_WWDG_STOP_Msk +#define DBGMCU_APB_FZ1_DBG_IWDG_STOP_Pos (12U) +#define DBGMCU_APB_FZ1_DBG_IWDG_STOP_Msk (0x1UL << DBGMCU_APB_FZ1_DBG_IWDG_STOP_Pos) /*!< 0x00001000 */ +#define DBGMCU_APB_FZ1_DBG_IWDG_STOP DBGMCU_APB_FZ1_DBG_IWDG_STOP_Msk +#define DBGMCU_APB_FZ1_DBG_CAN_STOP_Pos (19U) +#define DBGMCU_APB_FZ1_DBG_CAN_STOP_Msk (0x1UL << DBGMCU_APB_FZ1_DBG_CAN_STOP_Pos) /*!< 0x00080000 */ +#define DBGMCU_APB_FZ1_DBG_CAN_STOP DBGMCU_APB_FZ1_DBG_CAN_STOP_Msk +#define DBGMCU_APB_FZ1_DBG_I2C1_SMBUS_TIMEOUT_Pos (21U) +#define DBGMCU_APB_FZ1_DBG_I2C1_SMBUS_TIMEOUT_Msk (0x1UL << DBGMCU_APB_FZ1_DBG_I2C1_SMBUS_TIMEOUT_Pos) /*!< 0x00200000 */ +#define DBGMCU_APB_FZ1_DBG_I2C1_SMBUS_TIMEOUT DBGMCU_APB_FZ1_DBG_I2C1_SMBUS_TIMEOUT_Msk +#define DBGMCU_APB_FZ1_DBG_I2C2_SMBUS_TIMEOUT_Pos (22U) +#define DBGMCU_APB_FZ1_DBG_I2C2_SMBUS_TIMEOUT_Msk (0x1UL << DBGMCU_APB_FZ1_DBG_I2C2_SMBUS_TIMEOUT_Pos) /*!< 0x00400000 */ +#define DBGMCU_APB_FZ1_DBG_I2C2_SMBUS_TIMEOUT DBGMCU_APB_FZ1_DBG_I2C2_SMBUS_TIMEOUT_Msk +#define DBGMCU_APB_FZ1_DBG_LPTIM_STOP_Pos (31U) +#define DBGMCU_APB_FZ1_DBG_LPTIM_STOP_Msk (0x1UL << DBGMCU_APB_FZ1_DBG_LPTIM_STOP_Pos) /*!< 0x00001000 */ +#define DBGMCU_APB_FZ1_DBG_LPTIM_STOP DBGMCU_APB_FZ1_DBG_LPTIM_STOP_Msk + +/******************** Bit definition for DBGMCU_APB_FZ2 register **********/ +#define DBGMCU_APB_FZ2_DBG_TIM1_STOP_Pos (11U) +#define DBGMCU_APB_FZ2_DBG_TIM1_STOP_Msk (0x1UL << DBGMCU_APB_FZ2_DBG_TIM1_STOP_Pos) /*!< 0x00000800 */ +#define DBGMCU_APB_FZ2_DBG_TIM1_STOP DBGMCU_APB_FZ2_DBG_TIM1_STOP_Msk +#define DBGMCU_APB_FZ2_DBG_TIM14_STOP_Pos (15U) +#define DBGMCU_APB_FZ2_DBG_TIM14_STOP_Msk (0x1UL << DBGMCU_APB_FZ2_DBG_TIM14_STOP_Pos) /*!< 0x00008000 */ +#define DBGMCU_APB_FZ2_DBG_TIM14_STOP DBGMCU_APB_FZ2_DBG_TIM14_STOP_Msk +#define DBGMCU_APB_FZ2_DBG_TIM15_STOP_Pos (16U) +#define DBGMCU_APB_FZ2_DBG_TIM15_STOP_Msk (0x1UL << DBGMCU_APB_FZ2_DBG_TIM15_STOP_Pos) /*!< 0x00010000 */ +#define DBGMCU_APB_FZ2_DBG_TIM15_STOP DBGMCU_APB_FZ2_DBG_TIM15_STOP_Msk +#define DBGMCU_APB_FZ2_DBG_TIM16_STOP_Pos (17U) +#define DBGMCU_APB_FZ2_DBG_TIM16_STOP_Msk (0x1UL << DBGMCU_APB_FZ2_DBG_TIM16_STOP_Pos) /*!< 0x00020000 */ +#define DBGMCU_APB_FZ2_DBG_TIM16_STOP DBGMCU_APB_FZ2_DBG_TIM16_STOP_Msk +#define DBGMCU_APB_FZ2_DBG_TIM17_STOP_Pos (18U) +#define DBGMCU_APB_FZ2_DBG_TIM17_STOP_Msk (0x1UL << DBGMCU_APB_FZ2_DBG_TIM17_STOP_Pos) /*!< 0x00040000 */ +#define DBGMCU_APB_FZ2_DBG_TIM17_STOP DBGMCU_APB_FZ2_DBG_TIM17_STOP_Msk + +/****************************************************************************/ +/* */ +/* DMA Controller (DMA) */ +/* */ +/****************************************************************************/ +/******************* Bit definition for DMA_ISR register ******************/ +#define DMA_ISR_GIF1_Pos (0U) +#define DMA_ISR_GIF1_Msk (0x1UL << DMA_ISR_GIF1_Pos) /*!< 0x00000001 */ +#define DMA_ISR_GIF1 DMA_ISR_GIF1_Msk /*!< Channel 1 Global interrupt flag */ +#define DMA_ISR_TCIF1_Pos (1U) +#define DMA_ISR_TCIF1_Msk (0x1UL << DMA_ISR_TCIF1_Pos) /*!< 0x00000002 */ +#define DMA_ISR_TCIF1 DMA_ISR_TCIF1_Msk /*!< Channel 1 Transfer Complete flag */ +#define DMA_ISR_HTIF1_Pos (2U) +#define DMA_ISR_HTIF1_Msk (0x1UL << DMA_ISR_HTIF1_Pos) /*!< 0x00000004 */ +#define DMA_ISR_HTIF1 DMA_ISR_HTIF1_Msk /*!< Channel 1 Half Transfer flag */ +#define DMA_ISR_TEIF1_Pos (3U) +#define DMA_ISR_TEIF1_Msk (0x1UL << DMA_ISR_TEIF1_Pos) /*!< 0x00000008 */ +#define DMA_ISR_TEIF1 DMA_ISR_TEIF1_Msk /*!< Channel 1 Transfer Error flag */ +#define DMA_ISR_GIF2_Pos (4U) +#define DMA_ISR_GIF2_Msk (0x1UL << DMA_ISR_GIF2_Pos) /*!< 0x00000010 */ +#define DMA_ISR_GIF2 DMA_ISR_GIF2_Msk /*!< Channel 2 Global interrupt flag */ +#define DMA_ISR_TCIF2_Pos (5U) +#define DMA_ISR_TCIF2_Msk (0x1UL << DMA_ISR_TCIF2_Pos) /*!< 0x00000020 */ +#define DMA_ISR_TCIF2 DMA_ISR_TCIF2_Msk /*!< Channel 2 Transfer Complete flag */ +#define DMA_ISR_HTIF2_Pos (6U) +#define DMA_ISR_HTIF2_Msk (0x1UL << DMA_ISR_HTIF2_Pos) /*!< 0x00000040 */ +#define DMA_ISR_HTIF2 DMA_ISR_HTIF2_Msk /*!< Channel 2 Half Transfer flag */ +#define DMA_ISR_TEIF2_Pos (7U) +#define DMA_ISR_TEIF2_Msk (0x1UL << DMA_ISR_TEIF2_Pos) /*!< 0x00000080 */ +#define DMA_ISR_TEIF2 DMA_ISR_TEIF2_Msk /*!< Channel 2 Transfer Error flag */ +#define DMA_ISR_GIF3_Pos (8U) +#define DMA_ISR_GIF3_Msk (0x1UL << DMA_ISR_GIF3_Pos) /*!< 0x00000100 */ +#define DMA_ISR_GIF3 DMA_ISR_GIF3_Msk /*!< Channel 3 Global interrupt flag */ +#define DMA_ISR_TCIF3_Pos (9U) +#define DMA_ISR_TCIF3_Msk (0x1UL << DMA_ISR_TCIF3_Pos) /*!< 0x00000200 */ +#define DMA_ISR_TCIF3 DMA_ISR_TCIF3_Msk /*!< Channel 3 Transfer Complete flag */ +#define DMA_ISR_HTIF3_Pos (10U) +#define DMA_ISR_HTIF3_Msk (0x1UL << DMA_ISR_HTIF3_Pos) /*!< 0x00000400 */ +#define DMA_ISR_HTIF3 DMA_ISR_HTIF3_Msk /*!< Channel 3 Half Transfer flag */ +#define DMA_ISR_TEIF3_Pos (11U) +#define DMA_ISR_TEIF3_Msk (0x1UL << DMA_ISR_TEIF3_Pos) /*!< 0x00000800 */ +#define DMA_ISR_TEIF3 DMA_ISR_TEIF3_Msk /*!< Channel 3 Transfer Error flag */ +#define DMA_ISR_GIF4_Pos (12U) +#define DMA_ISR_GIF4_Msk (0x1UL << DMA_ISR_GIF4_Pos) /*!< 0x00001000 */ +#define DMA_ISR_GIF4 DMA_ISR_GIF4_Msk /*!< Channel 4 Global interrupt flag */ +#define DMA_ISR_TCIF4_Pos (13U) +#define DMA_ISR_TCIF4_Msk (0x1UL << DMA_ISR_TCIF4_Pos) /*!< 0x00002000 */ +#define DMA_ISR_TCIF4 DMA_ISR_TCIF4_Msk /*!< Channel 4 Transfer Complete flag */ +#define DMA_ISR_HTIF4_Pos (14U) +#define DMA_ISR_HTIF4_Msk (0x1UL << DMA_ISR_HTIF4_Pos) /*!< 0x00004000 */ +#define DMA_ISR_HTIF4 DMA_ISR_HTIF4_Msk /*!< Channel 4 Half Transfer flag */ +#define DMA_ISR_TEIF4_Pos (15U) +#define DMA_ISR_TEIF4_Msk (0x1UL << DMA_ISR_TEIF4_Pos) /*!< 0x00008000 */ +#define DMA_ISR_TEIF4 DMA_ISR_TEIF4_Msk /*!< Channel 4 Transfer Error flag */ +#define DMA_ISR_GIF5_Pos (16U) +#define DMA_ISR_GIF5_Msk (0x1UL << DMA_ISR_GIF5_Pos) /*!< 0x00010000 */ +#define DMA_ISR_GIF5 DMA_ISR_GIF5_Msk /*!< Channel 5 Global interrupt flag */ +#define DMA_ISR_TCIF5_Pos (17U) +#define DMA_ISR_TCIF5_Msk (0x1UL << DMA_ISR_TCIF5_Pos) /*!< 0x00020000 */ +#define DMA_ISR_TCIF5 DMA_ISR_TCIF5_Msk /*!< Channel 5 Transfer Complete flag */ +#define DMA_ISR_HTIF5_Pos (18U) +#define DMA_ISR_HTIF5_Msk (0x1UL << DMA_ISR_HTIF5_Pos) /*!< 0x00040000 */ +#define DMA_ISR_HTIF5 DMA_ISR_HTIF5_Msk /*!< Channel 5 Half Transfer flag */ +#define DMA_ISR_TEIF5_Pos (19U) +#define DMA_ISR_TEIF5_Msk (0x1UL << DMA_ISR_TEIF5_Pos) /*!< 0x00080000 */ +#define DMA_ISR_TEIF5 DMA_ISR_TEIF5_Msk /*!< Channel 5 Transfer Error flag */ +#define DMA_ISR_GIF6_Pos (20U) +#define DMA_ISR_GIF6_Msk (0x1UL << DMA_ISR_GIF6_Pos) /*!< 0x00100000 */ +#define DMA_ISR_GIF6 DMA_ISR_GIF6_Msk /*!< Channel 6 Global interrupt flag */ +#define DMA_ISR_TCIF6_Pos (21U) +#define DMA_ISR_TCIF6_Msk (0x1UL << DMA_ISR_TCIF6_Pos) /*!< 0x00200000 */ +#define DMA_ISR_TCIF6 DMA_ISR_TCIF6_Msk /*!< Channel 6 Transfer Complete flag */ +#define DMA_ISR_HTIF6_Pos (22U) +#define DMA_ISR_HTIF6_Msk (0x1UL << DMA_ISR_HTIF6_Pos) /*!< 0x00400000 */ +#define DMA_ISR_HTIF6 DMA_ISR_HTIF6_Msk /*!< Channel 6 Half Transfer flag */ +#define DMA_ISR_TEIF6_Pos (23U) +#define DMA_ISR_TEIF6_Msk (0x1UL << DMA_ISR_TEIF6_Pos) /*!< 0x00800000 */ +#define DMA_ISR_TEIF6 DMA_ISR_TEIF6_Msk /*!< Channel 6 Transfer Error flag */ +#define DMA_ISR_GIF7_Pos (24U) +#define DMA_ISR_GIF7_Msk (0x1UL << DMA_ISR_GIF7_Pos) /*!< 0x01000000 */ +#define DMA_ISR_GIF7 DMA_ISR_GIF7_Msk /*!< Channel 7 Global interrupt flag */ +#define DMA_ISR_TCIF7_Pos (25U) +#define DMA_ISR_TCIF7_Msk (0x1UL << DMA_ISR_TCIF7_Pos) /*!< 0x02000000 */ +#define DMA_ISR_TCIF7 DMA_ISR_TCIF7_Msk /*!< Channel 7 Transfer Complete flag */ +#define DMA_ISR_HTIF7_Pos (26U) +#define DMA_ISR_HTIF7_Msk (0x1UL << DMA_ISR_HTIF7_Pos) /*!< 0x04000000 */ +#define DMA_ISR_HTIF7 DMA_ISR_HTIF7_Msk /*!< Channel 7 Half Transfer flag */ +#define DMA_ISR_TEIF7_Pos (27U) +#define DMA_ISR_TEIF7_Msk (0x1UL << DMA_ISR_TEIF7_Pos) /*!< 0x08000000 */ +#define DMA_ISR_TEIF7 DMA_ISR_TEIF7_Msk /*!< Channel 7 Transfer Error flag */ + +/******************* Bit definition for DMA_IFCR register *****************/ +#define DMA_IFCR_CGIF1_Pos (0U) +#define DMA_IFCR_CGIF1_Msk (0x1UL << DMA_IFCR_CGIF1_Pos) /*!< 0x00000001 */ +#define DMA_IFCR_CGIF1 DMA_IFCR_CGIF1_Msk /*!< Channel 1 Global interrupt clear */ +#define DMA_IFCR_CTCIF1_Pos (1U) +#define DMA_IFCR_CTCIF1_Msk (0x1UL << DMA_IFCR_CTCIF1_Pos) /*!< 0x00000002 */ +#define DMA_IFCR_CTCIF1 DMA_IFCR_CTCIF1_Msk /*!< Channel 1 Transfer Complete clear */ +#define DMA_IFCR_CHTIF1_Pos (2U) +#define DMA_IFCR_CHTIF1_Msk (0x1UL << DMA_IFCR_CHTIF1_Pos) /*!< 0x00000004 */ +#define DMA_IFCR_CHTIF1 DMA_IFCR_CHTIF1_Msk /*!< Channel 1 Half Transfer clear */ +#define DMA_IFCR_CTEIF1_Pos (3U) +#define DMA_IFCR_CTEIF1_Msk (0x1UL << DMA_IFCR_CTEIF1_Pos) /*!< 0x00000008 */ +#define DMA_IFCR_CTEIF1 DMA_IFCR_CTEIF1_Msk /*!< Channel 1 Transfer Error clear */ +#define DMA_IFCR_CGIF2_Pos (4U) +#define DMA_IFCR_CGIF2_Msk (0x1UL << DMA_IFCR_CGIF2_Pos) /*!< 0x00000010 */ +#define DMA_IFCR_CGIF2 DMA_IFCR_CGIF2_Msk /*!< Channel 2 Global interrupt clear */ +#define DMA_IFCR_CTCIF2_Pos (5U) +#define DMA_IFCR_CTCIF2_Msk (0x1UL << DMA_IFCR_CTCIF2_Pos) /*!< 0x00000020 */ +#define DMA_IFCR_CTCIF2 DMA_IFCR_CTCIF2_Msk /*!< Channel 2 Transfer Complete clear */ +#define DMA_IFCR_CHTIF2_Pos (6U) +#define DMA_IFCR_CHTIF2_Msk (0x1UL << DMA_IFCR_CHTIF2_Pos) /*!< 0x00000040 */ +#define DMA_IFCR_CHTIF2 DMA_IFCR_CHTIF2_Msk /*!< Channel 2 Half Transfer clear */ +#define DMA_IFCR_CTEIF2_Pos (7U) +#define DMA_IFCR_CTEIF2_Msk (0x1UL << DMA_IFCR_CTEIF2_Pos) /*!< 0x00000080 */ +#define DMA_IFCR_CTEIF2 DMA_IFCR_CTEIF2_Msk /*!< Channel 2 Transfer Error clear */ +#define DMA_IFCR_CGIF3_Pos (8U) +#define DMA_IFCR_CGIF3_Msk (0x1UL << DMA_IFCR_CGIF3_Pos) /*!< 0x00000100 */ +#define DMA_IFCR_CGIF3 DMA_IFCR_CGIF3_Msk /*!< Channel 3 Global interrupt clear */ +#define DMA_IFCR_CTCIF3_Pos (9U) +#define DMA_IFCR_CTCIF3_Msk (0x1UL << DMA_IFCR_CTCIF3_Pos) /*!< 0x00000200 */ +#define DMA_IFCR_CTCIF3 DMA_IFCR_CTCIF3_Msk /*!< Channel 3 Transfer Complete clear */ +#define DMA_IFCR_CHTIF3_Pos (10U) +#define DMA_IFCR_CHTIF3_Msk (0x1UL << DMA_IFCR_CHTIF3_Pos) /*!< 0x00000400 */ +#define DMA_IFCR_CHTIF3 DMA_IFCR_CHTIF3_Msk /*!< Channel 3 Half Transfer clear */ +#define DMA_IFCR_CTEIF3_Pos (11U) +#define DMA_IFCR_CTEIF3_Msk (0x1UL << DMA_IFCR_CTEIF3_Pos) /*!< 0x00000800 */ +#define DMA_IFCR_CTEIF3 DMA_IFCR_CTEIF3_Msk /*!< Channel 3 Transfer Error clear */ +#define DMA_IFCR_CGIF4_Pos (12U) +#define DMA_IFCR_CGIF4_Msk (0x1UL << DMA_IFCR_CGIF4_Pos) /*!< 0x00001000 */ +#define DMA_IFCR_CGIF4 DMA_IFCR_CGIF4_Msk /*!< Channel 4 Global interrupt clear */ +#define DMA_IFCR_CTCIF4_Pos (13U) +#define DMA_IFCR_CTCIF4_Msk (0x1UL << DMA_IFCR_CTCIF4_Pos) /*!< 0x00002000 */ +#define DMA_IFCR_CTCIF4 DMA_IFCR_CTCIF4_Msk /*!< Channel 4 Transfer Complete clear */ +#define DMA_IFCR_CHTIF4_Pos (14U) +#define DMA_IFCR_CHTIF4_Msk (0x1UL << DMA_IFCR_CHTIF4_Pos) /*!< 0x00004000 */ +#define DMA_IFCR_CHTIF4 DMA_IFCR_CHTIF4_Msk /*!< Channel 4 Half Transfer clear */ +#define DMA_IFCR_CTEIF4_Pos (15U) +#define DMA_IFCR_CTEIF4_Msk (0x1UL << DMA_IFCR_CTEIF4_Pos) /*!< 0x00008000 */ +#define DMA_IFCR_CTEIF4 DMA_IFCR_CTEIF4_Msk /*!< Channel 4 Transfer Error clear */ +#define DMA_IFCR_CGIF5_Pos (16U) +#define DMA_IFCR_CGIF5_Msk (0x1UL << DMA_IFCR_CGIF5_Pos) /*!< 0x00010000 */ +#define DMA_IFCR_CGIF5 DMA_IFCR_CGIF5_Msk /*!< Channel 5 Global interrupt clear */ +#define DMA_IFCR_CTCIF5_Pos (17U) +#define DMA_IFCR_CTCIF5_Msk (0x1UL << DMA_IFCR_CTCIF5_Pos) /*!< 0x00020000 */ +#define DMA_IFCR_CTCIF5 DMA_IFCR_CTCIF5_Msk /*!< Channel 5 Transfer Complete clear */ +#define DMA_IFCR_CHTIF5_Pos (18U) +#define DMA_IFCR_CHTIF5_Msk (0x1UL << DMA_IFCR_CHTIF5_Pos) /*!< 0x00040000 */ +#define DMA_IFCR_CHTIF5 DMA_IFCR_CHTIF5_Msk /*!< Channel 5 Half Transfer clear */ +#define DMA_IFCR_CTEIF5_Pos (19U) +#define DMA_IFCR_CTEIF5_Msk (0x1UL << DMA_IFCR_CTEIF5_Pos) /*!< 0x00080000 */ +#define DMA_IFCR_CTEIF5 DMA_IFCR_CTEIF5_Msk /*!< Channel 5 Transfer Error clear */ +#define DMA_IFCR_CGIF6_Pos (20U) +#define DMA_IFCR_CGIF6_Msk (0x1UL << DMA_IFCR_CGIF6_Pos) /*!< 0x00100000 */ +#define DMA_IFCR_CGIF6 DMA_IFCR_CGIF6_Msk /*!< Channel 6 Global interrupt clear */ +#define DMA_IFCR_CTCIF6_Pos (21U) +#define DMA_IFCR_CTCIF6_Msk (0x1UL << DMA_IFCR_CTCIF6_Pos) /*!< 0x00200000 */ +#define DMA_IFCR_CTCIF6 DMA_IFCR_CTCIF6_Msk /*!< Channel 6 Transfer Complete clear */ +#define DMA_IFCR_CHTIF6_Pos (22U) +#define DMA_IFCR_CHTIF6_Msk (0x1UL << DMA_IFCR_CHTIF6_Pos) /*!< 0x00400000 */ +#define DMA_IFCR_CHTIF6 DMA_IFCR_CHTIF6_Msk /*!< Channel 6 Half Transfer clear */ +#define DMA_IFCR_CTEIF6_Pos (23U) +#define DMA_IFCR_CTEIF6_Msk (0x1UL << DMA_IFCR_CTEIF6_Pos) /*!< 0x00800000 */ +#define DMA_IFCR_CTEIF6 DMA_IFCR_CTEIF6_Msk /*!< Channel 6 Transfer Error clear */ +#define DMA_IFCR_CGIF7_Pos (24U) +#define DMA_IFCR_CGIF7_Msk (0x1UL << DMA_IFCR_CGIF7_Pos) /*!< 0x01000000 */ +#define DMA_IFCR_CGIF7 DMA_IFCR_CGIF7_Msk /*!< Channel 7 Global interrupt clear */ +#define DMA_IFCR_CTCIF7_Pos (25U) +#define DMA_IFCR_CTCIF7_Msk (0x1UL << DMA_IFCR_CTCIF7_Pos) /*!< 0x02000000 */ +#define DMA_IFCR_CTCIF7 DMA_IFCR_CTCIF7_Msk /*!< Channel 7 Transfer Complete clear */ +#define DMA_IFCR_CHTIF7_Pos (26U) +#define DMA_IFCR_CHTIF7_Msk (0x1UL << DMA_IFCR_CHTIF7_Pos) /*!< 0x04000000 */ +#define DMA_IFCR_CHTIF7 DMA_IFCR_CHTIF7_Msk /*!< Channel 7 Half Transfer clear */ +#define DMA_IFCR_CTEIF7_Pos (27U) +#define DMA_IFCR_CTEIF7_Msk (0x1UL << DMA_IFCR_CTEIF7_Pos) /*!< 0x08000000 */ +#define DMA_IFCR_CTEIF7 DMA_IFCR_CTEIF7_Msk /*!< Channel 7 Transfer Error clear */ + +/******************* Bit definition for DMA_CCR register ******************/ +#define DMA_CCR_EN_Pos (0U) +#define DMA_CCR_EN_Msk (0x1UL << DMA_CCR_EN_Pos) /*!< 0x00000001 */ +#define DMA_CCR_EN DMA_CCR_EN_Msk /*!< Channel enable */ +#define DMA_CCR_TCIE_Pos (1U) +#define DMA_CCR_TCIE_Msk (0x1UL << DMA_CCR_TCIE_Pos) /*!< 0x00000002 */ +#define DMA_CCR_TCIE DMA_CCR_TCIE_Msk /*!< Transfer complete interrupt enable */ +#define DMA_CCR_HTIE_Pos (2U) +#define DMA_CCR_HTIE_Msk (0x1UL << DMA_CCR_HTIE_Pos) /*!< 0x00000004 */ +#define DMA_CCR_HTIE DMA_CCR_HTIE_Msk /*!< Half Transfer interrupt enable */ +#define DMA_CCR_TEIE_Pos (3U) +#define DMA_CCR_TEIE_Msk (0x1UL << DMA_CCR_TEIE_Pos) /*!< 0x00000008 */ +#define DMA_CCR_TEIE DMA_CCR_TEIE_Msk /*!< Transfer error interrupt enable */ +#define DMA_CCR_DIR_Pos (4U) +#define DMA_CCR_DIR_Msk (0x1UL << DMA_CCR_DIR_Pos) /*!< 0x00000010 */ +#define DMA_CCR_DIR DMA_CCR_DIR_Msk /*!< Data transfer direction */ +#define DMA_CCR_CIRC_Pos (5U) +#define DMA_CCR_CIRC_Msk (0x1UL << DMA_CCR_CIRC_Pos) /*!< 0x00000020 */ +#define DMA_CCR_CIRC DMA_CCR_CIRC_Msk /*!< Circular mode */ +#define DMA_CCR_PINC_Pos (6U) +#define DMA_CCR_PINC_Msk (0x1UL << DMA_CCR_PINC_Pos) /*!< 0x00000040 */ +#define DMA_CCR_PINC DMA_CCR_PINC_Msk /*!< Peripheral increment mode */ +#define DMA_CCR_MINC_Pos (7U) +#define DMA_CCR_MINC_Msk (0x1UL << DMA_CCR_MINC_Pos) /*!< 0x00000080 */ +#define DMA_CCR_MINC DMA_CCR_MINC_Msk /*!< Memory increment mode */ +#define DMA_CCR_PSIZE_Pos (8U) +#define DMA_CCR_PSIZE_Msk (0x3UL << DMA_CCR_PSIZE_Pos) /*!< 0x00000300 */ +#define DMA_CCR_PSIZE DMA_CCR_PSIZE_Msk /*!< PSIZE[1:0] bits (Peripheral size) */ +#define DMA_CCR_PSIZE_0 (0x1UL << DMA_CCR_PSIZE_Pos) /*!< 0x00000100 */ +#define DMA_CCR_PSIZE_1 (0x2UL << DMA_CCR_PSIZE_Pos) /*!< 0x00000200 */ +#define DMA_CCR_MSIZE_Pos (10U) +#define DMA_CCR_MSIZE_Msk (0x3UL << DMA_CCR_MSIZE_Pos) /*!< 0x00000C00 */ +#define DMA_CCR_MSIZE DMA_CCR_MSIZE_Msk /*!< MSIZE[1:0] bits (Memory size) */ +#define DMA_CCR_MSIZE_0 (0x1UL << DMA_CCR_MSIZE_Pos) /*!< 0x00000400 */ +#define DMA_CCR_MSIZE_1 (0x2UL << DMA_CCR_MSIZE_Pos) /*!< 0x00000800 */ +#define DMA_CCR_PL_Pos (12U) +#define DMA_CCR_PL_Msk (0x3UL << DMA_CCR_PL_Pos) /*!< 0x00003000 */ +#define DMA_CCR_PL DMA_CCR_PL_Msk /*!< PL[1:0] bits(Channel Priority level)*/ +#define DMA_CCR_PL_0 (0x1UL << DMA_CCR_PL_Pos) /*!< 0x00001000 */ +#define DMA_CCR_PL_1 (0x2UL << DMA_CCR_PL_Pos) /*!< 0x00002000 */ +#define DMA_CCR_MEM2MEM_Pos (14U) +#define DMA_CCR_MEM2MEM_Msk (0x1UL << DMA_CCR_MEM2MEM_Pos) /*!< 0x00004000 */ +#define DMA_CCR_MEM2MEM DMA_CCR_MEM2MEM_Msk /*!< Memory to memory mode */ + +/****************** Bit definition for DMA_CNDTR register *****************/ +#define DMA_CNDTR_NDT_Pos (0U) +#define DMA_CNDTR_NDT_Msk (0xFFFFUL << DMA_CNDTR_NDT_Pos) /*!< 0x0000FFFF */ +#define DMA_CNDTR_NDT DMA_CNDTR_NDT_Msk /*!< Number of data to Transfer */ + +/****************** Bit definition for DMA_CPAR register ******************/ +#define DMA_CPAR_PA_Pos (0U) +#define DMA_CPAR_PA_Msk (0xFFFFFFFFUL << DMA_CPAR_PA_Pos) /*!< 0xFFFFFFFF */ +#define DMA_CPAR_PA DMA_CPAR_PA_Msk /*!< Peripheral Address */ + +/****************** Bit definition for DMA_CMAR register ******************/ +#define DMA_CMAR_MA_Pos (0U) +#define DMA_CMAR_MA_Msk (0xFFFFFFFFUL << DMA_CMAR_MA_Pos) /*!< 0xFFFFFFFF */ +#define DMA_CMAR_MA DMA_CMAR_MA_Msk /*!< Memory Address */ + +/****************************************************************************/ +/* */ +/* External Interrupt/Event Controller (EXTI) */ +/* */ +/****************************************************************************/ +/****************** Bit definition for EXTI_RTSR register *****************/ +#define EXTI_RTSR_RT0_Pos (0U) +#define EXTI_RTSR_RT0_Msk (0x1UL << EXTI_RTSR_RT0_Pos) /*!< 0x00000001 */ +#define EXTI_RTSR_RT0 EXTI_RTSR_RT0_Msk /*!< Rising trigger configuration for input line 0 */ +#define EXTI_RTSR_RT1_Pos (1U) +#define EXTI_RTSR_RT1_Msk (0x1UL << EXTI_RTSR_RT1_Pos) /*!< 0x00000002 */ +#define EXTI_RTSR_RT1 EXTI_RTSR_RT1_Msk /*!< Rising trigger configuration for input line 1 */ +#define EXTI_RTSR_RT2_Pos (2U) +#define EXTI_RTSR_RT2_Msk (0x1UL << EXTI_RTSR_RT2_Pos) /*!< 0x00000004 */ +#define EXTI_RTSR_RT2 EXTI_RTSR_RT2_Msk /*!< Rising trigger configuration for input line 2 */ +#define EXTI_RTSR_RT3_Pos (3U) +#define EXTI_RTSR_RT3_Msk (0x1UL << EXTI_RTSR_RT3_Pos) /*!< 0x00000008 */ +#define EXTI_RTSR_RT3 EXTI_RTSR_RT3_Msk /*!< Rising trigger configuration for input line 3 */ +#define EXTI_RTSR_RT4_Pos (4U) +#define EXTI_RTSR_RT4_Msk (0x1UL << EXTI_RTSR_RT4_Pos) /*!< 0x00000010 */ +#define EXTI_RTSR_RT4 EXTI_RTSR_RT4_Msk /*!< Rising trigger configuration for input line 4 */ +#define EXTI_RTSR_RT5_Pos (5U) +#define EXTI_RTSR_RT5_Msk (0x1UL << EXTI_RTSR_RT5_Pos) /*!< 0x00000020 */ +#define EXTI_RTSR_RT5 EXTI_RTSR_RT5_Msk /*!< Rising trigger configuration for input line 5 */ +#define EXTI_RTSR_RT6_Pos (6U) +#define EXTI_RTSR_RT6_Msk (0x1UL << EXTI_RTSR_RT6_Pos) /*!< 0x00000040 */ +#define EXTI_RTSR_RT6 EXTI_RTSR_RT6_Msk /*!< Rising trigger configuration for input line 6 */ +#define EXTI_RTSR_RT7_Pos (7U) +#define EXTI_RTSR_RT7_Msk (0x1UL << EXTI_RTSR_RT7_Pos) /*!< 0x00000080 */ +#define EXTI_RTSR_RT7 EXTI_RTSR_RT7_Msk /*!< Rising trigger configuration for input line 7 */ +#define EXTI_RTSR_RT8_Pos (8U) +#define EXTI_RTSR_RT8_Msk (0x1UL << EXTI_RTSR_RT8_Pos) /*!< 0x00000100 */ +#define EXTI_RTSR_RT8 EXTI_RTSR_RT8_Msk /*!< Rising trigger configuration for input line 8 */ +#define EXTI_RTSR_RT9_Pos (9U) +#define EXTI_RTSR_RT9_Msk (0x1UL << EXTI_RTSR_RT9_Pos) /*!< 0x00000200 */ +#define EXTI_RTSR_RT9 EXTI_RTSR_RT9_Msk /*!< Rising trigger configuration for input line 9 */ +#define EXTI_RTSR_RT10_Pos (10U) +#define EXTI_RTSR_RT10_Msk (0x1UL << EXTI_RTSR_RT10_Pos) /*!< 0x00000400 */ +#define EXTI_RTSR_RT10 EXTI_RTSR_RT10_Msk /*!< Rising trigger configuration for input line 10 */ +#define EXTI_RTSR_RT11_Pos (11U) +#define EXTI_RTSR_RT11_Msk (0x1UL << EXTI_RTSR_RT11_Pos) /*!< 0x00000800 */ +#define EXTI_RTSR_RT11 EXTI_RTSR_RT11_Msk /*!< Rising trigger configuration for input line 11 */ +#define EXTI_RTSR_RT12_Pos (12U) +#define EXTI_RTSR_RT12_Msk (0x1UL << EXTI_RTSR_RT12_Pos) /*!< 0x00001000 */ +#define EXTI_RTSR_RT12 EXTI_RTSR_RT12_Msk /*!< Rising trigger configuration for input line 12 */ +#define EXTI_RTSR_RT13_Pos (13U) +#define EXTI_RTSR_RT13_Msk (0x1UL << EXTI_RTSR_RT13_Pos) /*!< 0x00002000 */ +#define EXTI_RTSR_RT13 EXTI_RTSR_RT13_Msk /*!< Rising trigger configuration for input line 13 */ +#define EXTI_RTSR_RT14_Pos (14U) +#define EXTI_RTSR_RT14_Msk (0x1UL << EXTI_RTSR_RT14_Pos) /*!< 0x00004000 */ +#define EXTI_RTSR_RT14 EXTI_RTSR_RT14_Msk /*!< Rising trigger configuration for input line 14 */ +#define EXTI_RTSR_RT15_Pos (15U) +#define EXTI_RTSR_RT15_Msk (0x1UL << EXTI_RTSR_RT15_Pos) /*!< 0x00008000 */ +#define EXTI_RTSR_RT15 EXTI_RTSR_RT15_Msk /*!< Rising trigger configuration for input line 15 */ +#define EXTI_RTSR_RT16_Pos (16U) +#define EXTI_RTSR_RT16_Msk (0x1UL << EXTI_RTSR_RT16_Pos) /*!< 0x00010000 */ +#define EXTI_RTSR_RT16 EXTI_RTSR_RT16_Msk /*!< Rising trigger configuration for input line 16 */ +#define EXTI_RTSR_RT17_Pos (17U) +#define EXTI_RTSR_RT17_Msk (0x1UL << EXTI_RTSR_RT16_Pos) /*!< 0x00020000 */ +#define EXTI_RTSR_RT17 EXTI_RTSR_RT17_Msk /*!< Rising trigger configuration for input line 17 */ +#define EXTI_RTSR_RT18_Pos (18U) +#define EXTI_RTSR_RT18_Msk (0x1UL << EXTI_RTSR_RT18_Pos) /*!< 0x00040000 */ +#define EXTI_RTSR_RT18 EXTI_RTSR_RT18_Msk /*!< Rising trigger configuration for input line 18 */ +#define EXTI_RTSR_RT20_Pos (20U) +#define EXTI_RTSR_RT20_Msk (0x1UL << EXTI_RTSR_RT20_Pos) /*!< 0x00040000 */ +#define EXTI_RTSR_RT20 EXTI_RTSR_RT20_Msk /*!< Rising trigger configuration for input line 20 */ + +/****************** Bit definition for EXTI_FTSR register *****************/ +#define EXTI_FTSR_FT0_Pos (0U) +#define EXTI_FTSR_FT0_Msk (0x1UL << EXTI_FTSR_FT0_Pos) /*!< 0x00000001 */ +#define EXTI_FTSR_FT0 EXTI_FTSR_FT0_Msk /*!< Falling trigger configuration for input line 0 */ +#define EXTI_FTSR_FT1_Pos (1U) +#define EXTI_FTSR_FT1_Msk (0x1UL << EXTI_FTSR_FT1_Pos) /*!< 0x00000002 */ +#define EXTI_FTSR_FT1 EXTI_FTSR_FT1_Msk /*!< Falling trigger configuration for input line 1 */ +#define EXTI_FTSR_FT2_Pos (2U) +#define EXTI_FTSR_FT2_Msk (0x1UL << EXTI_FTSR_FT2_Pos) /*!< 0x00000004 */ +#define EXTI_FTSR_FT2 EXTI_FTSR_FT2_Msk /*!< Falling trigger configuration for input line 2 */ +#define EXTI_FTSR_FT3_Pos (3U) +#define EXTI_FTSR_FT3_Msk (0x1UL << EXTI_FTSR_FT3_Pos) /*!< 0x00000008 */ +#define EXTI_FTSR_FT3 EXTI_FTSR_FT3_Msk /*!< Falling trigger configuration for input line 3 */ +#define EXTI_FTSR_FT4_Pos (4U) +#define EXTI_FTSR_FT4_Msk (0x1UL << EXTI_FTSR_FT4_Pos) /*!< 0x00000010 */ +#define EXTI_FTSR_FT4 EXTI_FTSR_FT4_Msk /*!< Falling trigger configuration for input line 4 */ +#define EXTI_FTSR_FT5_Pos (5U) +#define EXTI_FTSR_FT5_Msk (0x1UL << EXTI_FTSR_FT5_Pos) /*!< 0x00000020 */ +#define EXTI_FTSR_FT5 EXTI_FTSR_FT5_Msk /*!< Falling trigger configuration for input line 5 */ +#define EXTI_FTSR_FT6_Pos (6U) +#define EXTI_FTSR_FT6_Msk (0x1UL << EXTI_FTSR_FT6_Pos) /*!< 0x00000040 */ +#define EXTI_FTSR_FT6 EXTI_FTSR_FT6_Msk /*!< Falling trigger configuration for input line 6 */ +#define EXTI_FTSR_FT7_Pos (7U) +#define EXTI_FTSR_FT7_Msk (0x1UL << EXTI_FTSR_FT7_Pos) /*!< 0x00000080 */ +#define EXTI_FTSR_FT7 EXTI_FTSR_FT7_Msk /*!< Falling trigger configuration for input line 7 */ +#define EXTI_FTSR_FT8_Pos (8U) +#define EXTI_FTSR_FT8_Msk (0x1UL << EXTI_FTSR_FT8_Pos) /*!< 0x00000100 */ +#define EXTI_FTSR_FT8 EXTI_FTSR_FT8_Msk /*!< Falling trigger configuration for input line 8 */ +#define EXTI_FTSR_FT9_Pos (9U) +#define EXTI_FTSR_FT9_Msk (0x1UL << EXTI_FTSR_FT9_Pos) /*!< 0x00000200 */ +#define EXTI_FTSR_FT9 EXTI_FTSR_FT9_Msk /*!< Falling trigger configuration for input line 9 */ +#define EXTI_FTSR_FT10_Pos (10U) +#define EXTI_FTSR_FT10_Msk (0x1UL << EXTI_FTSR_FT10_Pos) /*!< 0x00000400 */ +#define EXTI_FTSR_FT10 EXTI_FTSR_FT10_Msk /*!< Falling trigger configuration for input line 10 */ +#define EXTI_FTSR_FT11_Pos (11U) +#define EXTI_FTSR_FT11_Msk (0x1UL << EXTI_FTSR_FT11_Pos) /*!< 0x00000800 */ +#define EXTI_FTSR_FT11 EXTI_FTSR_FT11_Msk /*!< Falling trigger configuration for input line 11 */ +#define EXTI_FTSR_FT12_Pos (12U) +#define EXTI_FTSR_FT12_Msk (0x1UL << EXTI_FTSR_FT12_Pos) /*!< 0x00001000 */ +#define EXTI_FTSR_FT12 EXTI_FTSR_FT12_Msk /*!< Falling trigger configuration for input line 12 */ +#define EXTI_FTSR_FT13_Pos (13U) +#define EXTI_FTSR_FT13_Msk (0x1UL << EXTI_FTSR_FT13_Pos) /*!< 0x00002000 */ +#define EXTI_FTSR_FT13 EXTI_FTSR_FT13_Msk /*!< Falling trigger configuration for input line 13 */ +#define EXTI_FTSR_FT14_Pos (14U) +#define EXTI_FTSR_FT14_Msk (0x1UL << EXTI_FTSR_FT14_Pos) /*!< 0x00004000 */ +#define EXTI_FTSR_FT14 EXTI_FTSR_FT14_Msk /*!< Falling trigger configuration for input line 14 */ +#define EXTI_FTSR_FT15_Pos (15U) +#define EXTI_FTSR_FT15_Msk (0x1UL << EXTI_FTSR_FT15_Pos) /*!< 0x00008000 */ +#define EXTI_FTSR_FT15 EXTI_FTSR_FT15_Msk /*!< Falling trigger configuration for input line 15 */ +#define EXTI_FTSR_FT16_Pos (16U) +#define EXTI_FTSR_FT16_Msk (0x1UL << EXTI_FTSR_FT16_Pos) /*!< 0x00010000 */ +#define EXTI_FTSR_FT16 EXTI_FTSR_FT16_Msk /*!< Falling trigger configuration for input line 16 */ +#define EXTI_FTSR_FT17_Pos (17U) +#define EXTI_FTSR_FT17_Msk (0x1UL << EXTI_FTSR_FT17_Pos) /*!< 0x00020000 */ +#define EXTI_FTSR_FT17 EXTI_FTSR_FT17_Msk /*!< Falling trigger configuration for input line 17 */ +#define EXTI_FTSR_FT18_Pos (18U) +#define EXTI_FTSR_FT18_Msk (0x1UL << EXTI_FTSR_FT18_Pos) /*!< 0x00040000 */ +#define EXTI_FTSR_FT18 EXTI_FTSR_FT18_Msk /*!< Falling trigger configuration for input line 18 */ +#define EXTI_FTSR_FT20_Pos (20U) +#define EXTI_FTSR_FT20_Msk (0x1UL << EXTI_FTSR_FT20_Pos) /*!< 0x00040000 */ +#define EXTI_FTSR_FT20 EXTI_FTSR_FT20_Msk /*!< Falling trigger configuration for input line 20 */ + +/****************** Bit definition for EXTI_SWIER register ****************/ +#define EXTI_SWIER_SWI0_Pos (0U) +#define EXTI_SWIER_SWI0_Msk (0x1UL << EXTI_SWIER_SWI0_Pos) /*!< 0x00000001 */ +#define EXTI_SWIER_SWI0 EXTI_SWIER_SWI0_Msk /*!< Software Interrupt on line 0 */ +#define EXTI_SWIER_SWI1_Pos (1U) +#define EXTI_SWIER_SWI1_Msk (0x1UL << EXTI_SWIER_SWI1_Pos) /*!< 0x00000002 */ +#define EXTI_SWIER_SWI1 EXTI_SWIER_SWI1_Msk /*!< Software Interrupt on line 1 */ +#define EXTI_SWIER_SWI2_Pos (2U) +#define EXTI_SWIER_SWI2_Msk (0x1UL << EXTI_SWIER_SWI2_Pos) /*!< 0x00000004 */ +#define EXTI_SWIER_SWI2 EXTI_SWIER_SWI2_Msk /*!< Software Interrupt on line 2 */ +#define EXTI_SWIER_SWI3_Pos (3U) +#define EXTI_SWIER_SWI3_Msk (0x1UL << EXTI_SWIER_SWI3_Pos) /*!< 0x00000008 */ +#define EXTI_SWIER_SWI3 EXTI_SWIER_SWI3_Msk /*!< Software Interrupt on line 3 */ +#define EXTI_SWIER_SWI4_Pos (4U) +#define EXTI_SWIER_SWI4_Msk (0x1UL << EXTI_SWIER_SWI4_Pos) /*!< 0x00000010 */ +#define EXTI_SWIER_SWI4 EXTI_SWIER_SWI4_Msk /*!< Software Interrupt on line 4 */ +#define EXTI_SWIER_SWI5_Pos (5U) +#define EXTI_SWIER_SWI5_Msk (0x1UL << EXTI_SWIER_SWI5_Pos) /*!< 0x00000020 */ +#define EXTI_SWIER_SWI5 EXTI_SWIER_SWI5_Msk /*!< Software Interrupt on line 5 */ +#define EXTI_SWIER_SWI6_Pos (6U) +#define EXTI_SWIER_SWI6_Msk (0x1UL << EXTI_SWIER_SWI6_Pos) /*!< 0x00000040 */ +#define EXTI_SWIER_SWI6 EXTI_SWIER_SWI6_Msk /*!< Software Interrupt on line 6 */ +#define EXTI_SWIER_SWI7_Pos (7U) +#define EXTI_SWIER_SWI7_Msk (0x1UL << EXTI_SWIER_SWI7_Pos) /*!< 0x00000080 */ +#define EXTI_SWIER_SWI7 EXTI_SWIER_SWI7_Msk /*!< Software Interrupt on line 7 */ +#define EXTI_SWIER_SWI8_Pos (8U) +#define EXTI_SWIER_SWI8_Msk (0x1UL << EXTI_SWIER_SWI8_Pos) /*!< 0x00000100 */ +#define EXTI_SWIER_SWI8 EXTI_SWIER_SWI8_Msk /*!< Software Interrupt on line 8 */ +#define EXTI_SWIER_SWI9_Pos (9U) +#define EXTI_SWIER_SWI9_Msk (0x1UL << EXTI_SWIER_SWI9_Pos) /*!< 0x00000200 */ +#define EXTI_SWIER_SWI9 EXTI_SWIER_SWI9_Msk /*!< Software Interrupt on line 9 */ +#define EXTI_SWIER_SWI10_Pos (10U) +#define EXTI_SWIER_SWI10_Msk (0x1UL << EXTI_SWIER_SWI10_Pos) /*!< 0x00000400 */ +#define EXTI_SWIER_SWI10 EXTI_SWIER_SWI10_Msk /*!< Software Interrupt on line 10 */ +#define EXTI_SWIER_SWI11_Pos (11U) +#define EXTI_SWIER_SWI11_Msk (0x1UL << EXTI_SWIER_SWI11_Pos) /*!< 0x00000800 */ +#define EXTI_SWIER_SWI11 EXTI_SWIER_SWI11_Msk /*!< Software Interrupt on line 11 */ +#define EXTI_SWIER_SWI12_Pos (12U) +#define EXTI_SWIER_SWI12_Msk (0x1UL << EXTI_SWIER_SWI12_Pos) /*!< 0x00001000 */ +#define EXTI_SWIER_SWI12 EXTI_SWIER_SWI12_Msk /*!< Software Interrupt on line 12 */ +#define EXTI_SWIER_SWI13_Pos (13U) +#define EXTI_SWIER_SWI13_Msk (0x1UL << EXTI_SWIER_SWI13_Pos) /*!< 0x00002000 */ +#define EXTI_SWIER_SWI13 EXTI_SWIER_SWI13_Msk /*!< Software Interrupt on line 13 */ +#define EXTI_SWIER_SWI14_Pos (14U) +#define EXTI_SWIER_SWI14_Msk (0x1UL << EXTI_SWIER_SWI14_Pos) /*!< 0x00004000 */ +#define EXTI_SWIER_SWI14 EXTI_SWIER_SWI14_Msk /*!< Software Interrupt on line 14 */ +#define EXTI_SWIER_SWI15_Pos (15U) +#define EXTI_SWIER_SWI15_Msk (0x1UL << EXTI_SWIER_SWI15_Pos) /*!< 0x00008000 */ +#define EXTI_SWIER_SWI15 EXTI_SWIER_SWI15_Msk /*!< Software Interrupt on line 15 */ +#define EXTI_SWIER_SWI16_Pos (16U) +#define EXTI_SWIER_SWI16_Msk (0x1UL << EXTI_SWIER_SWI16_Pos) /*!< 0x00010000 */ +#define EXTI_SWIER_SWI16 EXTI_SWIER_SWI16_Msk /*!< Software Interrupt on line 16 */ +#define EXTI_SWIER_SWI17_Pos (17U) +#define EXTI_SWIER_SWI17_Msk (0x1UL << EXTI_SWIER_SWI17_Pos) /*!< 0x00020000 */ +#define EXTI_SWIER_SWI17 EXTI_SWIER_SWI17_Msk /*!< Software Interrupt on line 17 */ +#define EXTI_SWIER_SWI18_Pos (18U) +#define EXTI_SWIER_SWI18_Msk (0x1UL << EXTI_SWIER_SWI18_Pos) /*!< 0x00040000 */ +#define EXTI_SWIER_SWI18 EXTI_SWIER_SWI18_Msk /*!< Software Interrupt on line 18*/ +#define EXTI_SWIER_SWI20_Pos (20U) +#define EXTI_SWIER_SWI20_Msk (0x1UL << EXTI_SWIER_SWI20_Pos) /*!< 0x00040000 */ +#define EXTI_SWIER_SWI20 EXTI_SWIER_SWI20_Msk /*!< Software Interrupt on line 20*/ + +/******************* Bit definition for EXTI_PR register ******************/ +#define EXTI_PR_PR0_Pos (0U) +#define EXTI_PR_PR0_Msk (0x1UL << EXTI_PR_PR0_Pos) /*!< 0x00000001 */ +#define EXTI_PR_PR0 EXTI_PR_PR0_Msk /*!< Rising Pending Interrupt Flag on line 0 */ +#define EXTI_PR_PR1_Pos (1U) +#define EXTI_PR_PR1_Msk (0x1UL << EXTI_PR_PR1_Pos) /*!< 0x00000002 */ +#define EXTI_PR_PR1 EXTI_PR_PR1_Msk /*!< Rising Pending Interrupt Flag on line 1 */ +#define EXTI_PR_PR2_Pos (2U) +#define EXTI_PR_PR2_Msk (0x1UL << EXTI_PR_PR2_Pos) /*!< 0x00000004 */ +#define EXTI_PR_PR2 EXTI_PR_PR2_Msk /*!< Rising Pending Interrupt Flag on line 2 */ +#define EXTI_PR_PR3_Pos (3U) +#define EXTI_PR_PR3_Msk (0x1UL << EXTI_PR_PR3_Pos) /*!< 0x00000008 */ +#define EXTI_PR_PR3 EXTI_PR_PR3_Msk /*!< Rising Pending Interrupt Flag on line 3 */ +#define EXTI_PR_PR_Pos (4U) +#define EXTI_PR_PR_Msk (0x1UL <
© Copyright (c) Puya Semiconductor Co. + * All rights reserved.
+ * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* This file refers the CMSIS standard, some adjustments are made according to Puya chips */ +#ifndef SYSTEM_PY32F003XX_H +#define SYSTEM_PY32F003XX_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include + +/* Exported variables --------------------------------------------------------*/ +extern uint32_t SystemCoreClock; /*!< System Clock Frequency (Core Clock) */ + +/* Exported constants --------------------------------------------------------*/ +extern const uint32_t AHBPrescTable[16]; /*!< AHB prescalers table values */ +extern const uint32_t APBPrescTable[8]; /*!< APB prescalers table values */ +extern const uint32_t HSIFreqTable[8]; /*!< HSI frequency table values */ + +/** + * Initialize the system + * @param none + * @return none + * @brief Setup the microcontroller system. + * Initialize the System and update the SystemCoreClock variable. + */ +extern void SystemInit(void); + +/** + * Update SystemCoreClock variable + * @param none + * @return none + * @brief Updates the SystemCoreClock with current core Clock + * retrieved from cpu registers. + */ +extern void SystemCoreClockUpdate(void); + +#ifdef __cplusplus +} +#endif + +#endif /* SYSTEM_PY32F003XX_H */ diff --git a/Libraries/CMSIS/Device/PY32F0xx/Include/system_py32f030xx.h b/Libraries/CMSIS/Device/PY32F0xx/Include/system_py32f030xx.h new file mode 100644 index 0000000..6ec4262 --- /dev/null +++ b/Libraries/CMSIS/Device/PY32F0xx/Include/system_py32f030xx.h @@ -0,0 +1,66 @@ +/** + ****************************************************************************** + * @file system_py32f030xx.h + * @brief CMSIS Cortex-M0+ Device Peripheral Access Layer Header File for + * PY32F030xx Device Series + * @version v1.0.0 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) Puya Semiconductor Co. + * All rights reserved.

+ * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* This file refers the CMSIS standard, some adjustments are made according to Puya chips */ +#ifndef SYSTEM_PY32F030XX_H +#define SYSTEM_PY32F030XX_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include + +/* Exported variables --------------------------------------------------------*/ +extern uint32_t SystemCoreClock; /*!< System Clock Frequency (Core Clock) */ + +/* Exported constants --------------------------------------------------------*/ +extern const uint32_t AHBPrescTable[16]; /*!< AHB prescalers table values */ +extern const uint32_t APBPrescTable[8]; /*!< APB prescalers table values */ +extern const uint32_t HSIFreqTable[8]; /*!< HSI frequency table values */ + +/** + * Initialize the system + * @param none + * @return none + * @brief Setup the microcontroller system. + * Initialize the System and update the SystemCoreClock variable. + */ +extern void SystemInit(void); + +/** + * Update SystemCoreClock variable + * @param none + * @return none + * @brief Updates the SystemCoreClock with current core Clock + * retrieved from cpu registers. + */ +extern void SystemCoreClockUpdate(void); + +#ifdef __cplusplus +} +#endif + +#endif /* SYSTEM_PY32F030XX_H */ diff --git a/Libraries/CMSIS/Device/PY32F0xx/Include/system_py32f072xx.h b/Libraries/CMSIS/Device/PY32F0xx/Include/system_py32f072xx.h new file mode 100644 index 0000000..08b8385 --- /dev/null +++ b/Libraries/CMSIS/Device/PY32F0xx/Include/system_py32f072xx.h @@ -0,0 +1,67 @@ +/** + ****************************************************************************** + * @file system_py32f072xx.h + * @brief CMSIS Cortex-M0+ Device Peripheral Access Layer Header File for + * PY32F072xx Device Series + * @version v1.0.0 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) Puya Semiconductor Co. + * All rights reserved.

+ * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* This file refers the CMSIS standard, some adjustments are made according to Puya chips */ + +#ifndef SYSTEM_PY32F072XX_H +#define SYSTEM_PY32F072XX_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +extern uint32_t SystemCoreClock; /*!< System Clock Frequency (Core Clock) */ + +extern const uint32_t AHBPrescTable[16]; /*!< AHB prescalers table values */ +extern const uint32_t APBPrescTable[8]; /*!< APB prescalers table values */ + +/** + * Initialize the system + * + * @param none + * @return none + * + * @brief Setup the microcontroller system. + * Initialize the System and update the SystemCoreClock variable. + */ +extern void SystemInit(void); + +/** + * Update SystemCoreClock variable + * + * @param none + * @return none + * + * @brief Updates the SystemCoreClock with current core Clock + * retrieved from cpu registers. + */ +extern void SystemCoreClockUpdate(void); + +#ifdef __cplusplus +} +#endif + +#endif /* SYSTEM_PY32F072XX_H */ diff --git a/Libraries/CMSIS/Device/PY32F0xx/Include/system_py32f0xx.h b/Libraries/CMSIS/Device/PY32F0xx/Include/system_py32f0xx.h old mode 100755 new mode 100644 index 1242576..4f088a1 --- a/Libraries/CMSIS/Device/PY32F0xx/Include/system_py32f0xx.h +++ b/Libraries/CMSIS/Device/PY32F0xx/Include/system_py32f0xx.h @@ -2,7 +2,7 @@ ****************************************************************************** * @file system_py32f0xx.h * @brief CMSIS Cortex-M0+ Device Peripheral Access Layer Header File for - * PY32F0xx Device Series + * PY32F030xx Device Series * @version v1.0.0 * ****************************************************************************** diff --git a/Libraries/CMSIS/Device/PY32F0xx/Source/arm/startup_py32f002ax5.s b/Libraries/CMSIS/Device/PY32F0xx/Source/arm/startup_py32f002ax5.s old mode 100755 new mode 100644 index 72a3ff8..7a80da8 --- a/Libraries/CMSIS/Device/PY32F0xx/Source/arm/startup_py32f002ax5.s +++ b/Libraries/CMSIS/Device/PY32F0xx/Source/arm/startup_py32f002ax5.s @@ -9,22 +9,38 @@ ;* calls main()). ;* After Reset the CortexM0+ processor is in Thread mode, ;* priority is Privileged, and the Stack is set to Main. +;* <<< Use Configuration Wizard in Context Menu >>> ;****************************************************************************** ;* @attention ;* -;*

© Copyright (c) Puya Semiconductor Co. -;* All rights reserved.

+;* Copyright (c) 2021, Puya Semiconductor Inc. ;* -;*

© Copyright (c) 2016 STMicroelectronics. -;* All rights reserved.

+;* All rights reserved. ;* -;* This software component is licensed by ST under BSD 3-Clause license, -;* the "License"; You may not use this file except in compliance with the -;* License. You may obtain a copy of the License at: -;* opensource.org/licenses/BSD-3-Clause +;* Redistribution and use in source and binary forms, with or without modification, +;* are permitted provided that the following conditions are met: +;* +;* 1. Redistributions of source code must retain the above copyright notice, +;* this list of conditions and the following disclaimer. +;* 2. Redistributions in binary form must reproduce the above copyright notice, +;* this list of conditions and the following disclaimer in the documentation +;* and/or other materials provided with the distribution. +;* 3. Neither the name of the copyright holder nor the names of its contributors +;* may be used to endorse or promote products derived from this software +;* without specific prior written permission. +;* +;* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +;* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +;* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +;* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +;* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +;* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +;* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +;* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +;* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +;* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ;* ;****************************************************************************** -;* <<< Use Configuration Wizard in Context Menu >>> ; Amount of memory (in bytes) allocated for Stack ; Tailor this value to your application needs diff --git a/Libraries/CMSIS/Device/PY32F0xx/Source/arm/startup_py32f002x5.s b/Libraries/CMSIS/Device/PY32F0xx/Source/arm/startup_py32f002x5.s new file mode 100644 index 0000000..09f1989 --- /dev/null +++ b/Libraries/CMSIS/Device/PY32F0xx/Source/arm/startup_py32f002x5.s @@ -0,0 +1,233 @@ +;****************************************************************************** +;* @file : startup_py32f002x5.s +;* @brief : PY32F002xx devices vector table for MDK-ARM toolchain. +;* This module performs: +;* - Set the initial SP +;* - Set the initial PC == Reset_Handler +;* - Set the vector table entries with the exceptions ISR address +;* - Branches to __main in the C library (which eventually +;* calls main()). +;* After Reset the CortexM0+ processor is in Thread mode, +;* priority is Privileged, and the Stack is set to Main. +;* <<< Use Configuration Wizard in Context Menu >>> +;****************************************************************************** +;* @attention +;* +;* Copyright (c) 2021, Puya Semiconductor Inc. +;* +;* All rights reserved. +;* +;* Redistribution and use in source and binary forms, with or without modification, +;* are permitted provided that the following conditions are met: +;* +;* 1. Redistributions of source code must retain the above copyright notice, +;* this list of conditions and the following disclaimer. +;* 2. Redistributions in binary form must reproduce the above copyright notice, +;* this list of conditions and the following disclaimer in the documentation +;* and/or other materials provided with the distribution. +;* 3. Neither the name of the copyright holder nor the names of its contributors +;* may be used to endorse or promote products derived from this software +;* without specific prior written permission. +;* +;* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +;* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +;* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +;* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +;* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +;* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +;* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +;* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +;* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +;* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +;* +;****************************************************************************** + +; Amount of memory (in bytes) allocated for Stack +; Tailor this value to your application needs +; Stack Configuration +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Stack_Size EQU 0x00000400 + + AREA STACK, NOINIT, READWRITE, ALIGN=3 +Stack_Mem SPACE Stack_Size +__initial_sp + + +; Heap Configuration +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Heap_Size EQU 0x00000000 + + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +Heap_Mem SPACE Heap_Size +__heap_limit + + + PRESERVE8 + THUMB + + +; Vector Table Mapped to Address 0 at Reset + AREA RESET, DATA, READONLY + EXPORT __Vectors + EXPORT __Vectors_End + EXPORT __Vectors_Size + +__Vectors DCD __initial_sp ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NMI_Handler ; NMI Handler + DCD HardFault_Handler ; Hard Fault Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD SVC_Handler ; SVCall Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD PendSV_Handler ; PendSV Handler + DCD SysTick_Handler ; SysTick Handler + + ; External Interrupts + DCD 0 ; 0Reserved + DCD 0 ; 1Reserved + DCD 0 ; 2Reserved + DCD FLASH_IRQHandler ; 3FLASH + DCD RCC_IRQHandler ; 4RCC + DCD EXTI0_1_IRQHandler ; 5EXTI Line 0 and 1 + DCD EXTI2_3_IRQHandler ; 6EXTI Line 2 and 3 + DCD EXTI4_15_IRQHandler ; 7EXTI Line 4 to 15 + DCD 0 ; 8Reserved + DCD 0 ; 9Reserved + DCD 0 ; 10Reserved + DCD 0 ; 11Reserved + DCD ADC_IRQHandler ; 12ADC + DCD TIM1_BRK_UP_TRG_COM_IRQHandler ; 13TIM1 Break, Update, Trigger and Commutation + DCD TIM1_CC_IRQHandler ; 14TIM1 Capture Compare + DCD 0 ; 15Reserved + DCD 0 ; 16Reserved + DCD LPTIM1_IRQHandler ; 17LPTIM1 + DCD 0 ; 18Reserved + DCD 0 ; 19Reserved + DCD 0 ; 20Reserved + DCD TIM16_IRQHandler ; 21TIM16 + DCD 0 ; 22Reserved + DCD I2C1_IRQHandler ; 23I2C1 + DCD 0 ; 24Reserved + DCD SPI1_IRQHandler ; 25SPI1 + DCD 0 ; 26Reserved + DCD USART1_IRQHandler ; 27USART1 + DCD 0 ; 28Reserved + DCD 0 ; 29Reserved + DCD 0 ; 30Reserved + DCD 0 ; 31Reserved +__Vectors_End + +__Vectors_Size EQU __Vectors_End - __Vectors + + AREA |.text|, CODE, READONLY + + +; Reset Handler + +Reset_Handler PROC + EXPORT Reset_Handler [WEAK] + IMPORT SystemInit + IMPORT __main + LDR R0, =SystemInit + BLX R0 + LDR R0, =__main + BX R0 + ENDP + + +; Dummy Exception Handlers (infinite loops which can be modified) + +NMI_Handler PROC + EXPORT NMI_Handler [WEAK] + B . + ENDP +HardFault_Handler\ + PROC + EXPORT HardFault_Handler [WEAK] + B . + ENDP +SVC_Handler PROC + EXPORT SVC_Handler [WEAK] + B . + ENDP +PendSV_Handler PROC + EXPORT PendSV_Handler [WEAK] + B . + ENDP +SysTick_Handler PROC + EXPORT SysTick_Handler [WEAK] + B . + ENDP + +Default_Handler PROC + + EXPORT FLASH_IRQHandler [WEAK] + EXPORT RCC_IRQHandler [WEAK] + EXPORT EXTI0_1_IRQHandler [WEAK] + EXPORT EXTI2_3_IRQHandler [WEAK] + EXPORT EXTI4_15_IRQHandler [WEAK] + EXPORT ADC_IRQHandler [WEAK] + EXPORT TIM1_BRK_UP_TRG_COM_IRQHandler [WEAK] + EXPORT TIM1_CC_IRQHandler [WEAK] + EXPORT LPTIM1_IRQHandler [WEAK] + EXPORT TIM16_IRQHandler [WEAK] + EXPORT I2C1_IRQHandler [WEAK] + EXPORT SPI1_IRQHandler [WEAK] + EXPORT USART1_IRQHandler [WEAK] + +FLASH_IRQHandler +RCC_IRQHandler +EXTI0_1_IRQHandler +EXTI2_3_IRQHandler +EXTI4_15_IRQHandler +ADC_IRQHandler +TIM1_BRK_UP_TRG_COM_IRQHandler +TIM1_CC_IRQHandler +LPTIM1_IRQHandler +TIM16_IRQHandler +I2C1_IRQHandler +SPI1_IRQHandler +USART1_IRQHandler + B . + ENDP + + ALIGN + +; User Initial Stack & Heap + + IF :DEF:__MICROLIB + + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + + ELSE + + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap + +__user_initial_stackheap + + LDR R0, = Heap_Mem + LDR R1, =(Stack_Mem + Stack_Size) + LDR R2, = (Heap_Mem + Heap_Size) + LDR R3, = Stack_Mem + BX LR + + ALIGN + + ENDIF + + END diff --git a/Libraries/CMSIS/Device/PY32F0xx/Source/arm/startup_py32f003x4.s b/Libraries/CMSIS/Device/PY32F0xx/Source/arm/startup_py32f003x4.s old mode 100755 new mode 100644 index 9e59d9b..c941281 --- a/Libraries/CMSIS/Device/PY32F0xx/Source/arm/startup_py32f003x4.s +++ b/Libraries/CMSIS/Device/PY32F0xx/Source/arm/startup_py32f003x4.s @@ -9,22 +9,38 @@ ;* calls main()). ;* After Reset the CortexM0+ processor is in Thread mode, ;* priority is Privileged, and the Stack is set to Main. +;* <<< Use Configuration Wizard in Context Menu >>> ;****************************************************************************** ;* @attention ;* -;*

© Copyright (c) Puya Semiconductor Co. -;* All rights reserved.

+;* Copyright (c) 2021, Puya Semiconductor Inc. ;* -;*

© Copyright (c) 2016 STMicroelectronics. -;* All rights reserved.

+;* All rights reserved. ;* -;* This software component is licensed by ST under BSD 3-Clause license, -;* the "License"; You may not use this file except in compliance with the -;* License. You may obtain a copy of the License at: -;* opensource.org/licenses/BSD-3-Clause +;* Redistribution and use in source and binary forms, with or without modification, +;* are permitted provided that the following conditions are met: +;* +;* 1. Redistributions of source code must retain the above copyright notice, +;* this list of conditions and the following disclaimer. +;* 2. Redistributions in binary form must reproduce the above copyright notice, +;* this list of conditions and the following disclaimer in the documentation +;* and/or other materials provided with the distribution. +;* 3. Neither the name of the copyright holder nor the names of its contributors +;* may be used to endorse or promote products derived from this software +;* without specific prior written permission. +;* +;* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +;* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +;* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +;* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +;* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +;* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +;* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +;* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +;* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +;* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ;* ;****************************************************************************** -;* <<< Use Configuration Wizard in Context Menu >>> ; Amount of memory (in bytes) allocated for Stack ; Tailor this value to your application needs diff --git a/Libraries/CMSIS/Device/PY32F0xx/Source/arm/startup_py32f003x6.s b/Libraries/CMSIS/Device/PY32F0xx/Source/arm/startup_py32f003x6.s old mode 100755 new mode 100644 index 9e59d9b..c941281 --- a/Libraries/CMSIS/Device/PY32F0xx/Source/arm/startup_py32f003x6.s +++ b/Libraries/CMSIS/Device/PY32F0xx/Source/arm/startup_py32f003x6.s @@ -9,22 +9,38 @@ ;* calls main()). ;* After Reset the CortexM0+ processor is in Thread mode, ;* priority is Privileged, and the Stack is set to Main. +;* <<< Use Configuration Wizard in Context Menu >>> ;****************************************************************************** ;* @attention ;* -;*

© Copyright (c) Puya Semiconductor Co. -;* All rights reserved.

+;* Copyright (c) 2021, Puya Semiconductor Inc. ;* -;*

© Copyright (c) 2016 STMicroelectronics. -;* All rights reserved.

+;* All rights reserved. ;* -;* This software component is licensed by ST under BSD 3-Clause license, -;* the "License"; You may not use this file except in compliance with the -;* License. You may obtain a copy of the License at: -;* opensource.org/licenses/BSD-3-Clause +;* Redistribution and use in source and binary forms, with or without modification, +;* are permitted provided that the following conditions are met: +;* +;* 1. Redistributions of source code must retain the above copyright notice, +;* this list of conditions and the following disclaimer. +;* 2. Redistributions in binary form must reproduce the above copyright notice, +;* this list of conditions and the following disclaimer in the documentation +;* and/or other materials provided with the distribution. +;* 3. Neither the name of the copyright holder nor the names of its contributors +;* may be used to endorse or promote products derived from this software +;* without specific prior written permission. +;* +;* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +;* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +;* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +;* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +;* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +;* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +;* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +;* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +;* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +;* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ;* ;****************************************************************************** -;* <<< Use Configuration Wizard in Context Menu >>> ; Amount of memory (in bytes) allocated for Stack ; Tailor this value to your application needs diff --git a/Libraries/CMSIS/Device/PY32F0xx/Source/arm/startup_py32f003x8.s b/Libraries/CMSIS/Device/PY32F0xx/Source/arm/startup_py32f003x8.s old mode 100755 new mode 100644 index 9e59d9b..c941281 --- a/Libraries/CMSIS/Device/PY32F0xx/Source/arm/startup_py32f003x8.s +++ b/Libraries/CMSIS/Device/PY32F0xx/Source/arm/startup_py32f003x8.s @@ -9,22 +9,38 @@ ;* calls main()). ;* After Reset the CortexM0+ processor is in Thread mode, ;* priority is Privileged, and the Stack is set to Main. +;* <<< Use Configuration Wizard in Context Menu >>> ;****************************************************************************** ;* @attention ;* -;*

© Copyright (c) Puya Semiconductor Co. -;* All rights reserved.

+;* Copyright (c) 2021, Puya Semiconductor Inc. ;* -;*

© Copyright (c) 2016 STMicroelectronics. -;* All rights reserved.

+;* All rights reserved. ;* -;* This software component is licensed by ST under BSD 3-Clause license, -;* the "License"; You may not use this file except in compliance with the -;* License. You may obtain a copy of the License at: -;* opensource.org/licenses/BSD-3-Clause +;* Redistribution and use in source and binary forms, with or without modification, +;* are permitted provided that the following conditions are met: +;* +;* 1. Redistributions of source code must retain the above copyright notice, +;* this list of conditions and the following disclaimer. +;* 2. Redistributions in binary form must reproduce the above copyright notice, +;* this list of conditions and the following disclaimer in the documentation +;* and/or other materials provided with the distribution. +;* 3. Neither the name of the copyright holder nor the names of its contributors +;* may be used to endorse or promote products derived from this software +;* without specific prior written permission. +;* +;* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +;* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +;* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +;* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +;* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +;* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +;* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +;* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +;* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +;* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ;* ;****************************************************************************** -;* <<< Use Configuration Wizard in Context Menu >>> ; Amount of memory (in bytes) allocated for Stack ; Tailor this value to your application needs diff --git a/Libraries/CMSIS/Device/PY32F0xx/Source/arm/startup_py32f030x3.s b/Libraries/CMSIS/Device/PY32F0xx/Source/arm/startup_py32f030x3.s old mode 100755 new mode 100644 index 5645f94..3b4953d --- a/Libraries/CMSIS/Device/PY32F0xx/Source/arm/startup_py32f030x3.s +++ b/Libraries/CMSIS/Device/PY32F0xx/Source/arm/startup_py32f030x3.s @@ -9,22 +9,38 @@ ;* calls main()). ;* After Reset the CortexM0+ processor is in Thread mode, ;* priority is Privileged, and the Stack is set to Main. +;* <<< Use Configuration Wizard in Context Menu >>> ;****************************************************************************** ;* @attention ;* -;*

© Copyright (c) Puya Semiconductor Co. -;* All rights reserved.

+;* Copyright (c) 2021, Puya Semiconductor Inc. ;* -;*

© Copyright (c) 2016 STMicroelectronics. -;* All rights reserved.

+;* All rights reserved. ;* -;* This software component is licensed by ST under BSD 3-Clause license, -;* the "License"; You may not use this file except in compliance with the -;* License. You may obtain a copy of the License at: -;* opensource.org/licenses/BSD-3-Clause +;* Redistribution and use in source and binary forms, with or without modification, +;* are permitted provided that the following conditions are met: +;* +;* 1. Redistributions of source code must retain the above copyright notice, +;* this list of conditions and the following disclaimer. +;* 2. Redistributions in binary form must reproduce the above copyright notice, +;* this list of conditions and the following disclaimer in the documentation +;* and/or other materials provided with the distribution. +;* 3. Neither the name of the copyright holder nor the names of its contributors +;* may be used to endorse or promote products derived from this software +;* without specific prior written permission. +;* +;* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +;* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +;* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +;* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +;* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +;* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +;* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +;* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +;* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +;* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ;* ;****************************************************************************** -;* <<< Use Configuration Wizard in Context Menu >>> ; Amount of memory (in bytes) allocated for Stack ; Tailor this value to your application needs diff --git a/Libraries/CMSIS/Device/PY32F0xx/Source/arm/startup_py32f030x4.s b/Libraries/CMSIS/Device/PY32F0xx/Source/arm/startup_py32f030x4.s old mode 100755 new mode 100644 index 5645f94..3b4953d --- a/Libraries/CMSIS/Device/PY32F0xx/Source/arm/startup_py32f030x4.s +++ b/Libraries/CMSIS/Device/PY32F0xx/Source/arm/startup_py32f030x4.s @@ -9,22 +9,38 @@ ;* calls main()). ;* After Reset the CortexM0+ processor is in Thread mode, ;* priority is Privileged, and the Stack is set to Main. +;* <<< Use Configuration Wizard in Context Menu >>> ;****************************************************************************** ;* @attention ;* -;*

© Copyright (c) Puya Semiconductor Co. -;* All rights reserved.

+;* Copyright (c) 2021, Puya Semiconductor Inc. ;* -;*

© Copyright (c) 2016 STMicroelectronics. -;* All rights reserved.

+;* All rights reserved. ;* -;* This software component is licensed by ST under BSD 3-Clause license, -;* the "License"; You may not use this file except in compliance with the -;* License. You may obtain a copy of the License at: -;* opensource.org/licenses/BSD-3-Clause +;* Redistribution and use in source and binary forms, with or without modification, +;* are permitted provided that the following conditions are met: +;* +;* 1. Redistributions of source code must retain the above copyright notice, +;* this list of conditions and the following disclaimer. +;* 2. Redistributions in binary form must reproduce the above copyright notice, +;* this list of conditions and the following disclaimer in the documentation +;* and/or other materials provided with the distribution. +;* 3. Neither the name of the copyright holder nor the names of its contributors +;* may be used to endorse or promote products derived from this software +;* without specific prior written permission. +;* +;* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +;* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +;* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +;* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +;* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +;* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +;* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +;* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +;* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +;* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ;* ;****************************************************************************** -;* <<< Use Configuration Wizard in Context Menu >>> ; Amount of memory (in bytes) allocated for Stack ; Tailor this value to your application needs diff --git a/Libraries/CMSIS/Device/PY32F0xx/Source/arm/startup_py32f030x6.s b/Libraries/CMSIS/Device/PY32F0xx/Source/arm/startup_py32f030x6.s old mode 100755 new mode 100644 index 5645f94..3b4953d --- a/Libraries/CMSIS/Device/PY32F0xx/Source/arm/startup_py32f030x6.s +++ b/Libraries/CMSIS/Device/PY32F0xx/Source/arm/startup_py32f030x6.s @@ -9,22 +9,38 @@ ;* calls main()). ;* After Reset the CortexM0+ processor is in Thread mode, ;* priority is Privileged, and the Stack is set to Main. +;* <<< Use Configuration Wizard in Context Menu >>> ;****************************************************************************** ;* @attention ;* -;*

© Copyright (c) Puya Semiconductor Co. -;* All rights reserved.

+;* Copyright (c) 2021, Puya Semiconductor Inc. ;* -;*

© Copyright (c) 2016 STMicroelectronics. -;* All rights reserved.

+;* All rights reserved. ;* -;* This software component is licensed by ST under BSD 3-Clause license, -;* the "License"; You may not use this file except in compliance with the -;* License. You may obtain a copy of the License at: -;* opensource.org/licenses/BSD-3-Clause +;* Redistribution and use in source and binary forms, with or without modification, +;* are permitted provided that the following conditions are met: +;* +;* 1. Redistributions of source code must retain the above copyright notice, +;* this list of conditions and the following disclaimer. +;* 2. Redistributions in binary form must reproduce the above copyright notice, +;* this list of conditions and the following disclaimer in the documentation +;* and/or other materials provided with the distribution. +;* 3. Neither the name of the copyright holder nor the names of its contributors +;* may be used to endorse or promote products derived from this software +;* without specific prior written permission. +;* +;* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +;* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +;* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +;* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +;* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +;* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +;* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +;* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +;* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +;* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ;* ;****************************************************************************** -;* <<< Use Configuration Wizard in Context Menu >>> ; Amount of memory (in bytes) allocated for Stack ; Tailor this value to your application needs diff --git a/Libraries/CMSIS/Device/PY32F0xx/Source/arm/startup_py32f030x7.s b/Libraries/CMSIS/Device/PY32F0xx/Source/arm/startup_py32f030x7.s old mode 100755 new mode 100644 index 5645f94..3b4953d --- a/Libraries/CMSIS/Device/PY32F0xx/Source/arm/startup_py32f030x7.s +++ b/Libraries/CMSIS/Device/PY32F0xx/Source/arm/startup_py32f030x7.s @@ -9,22 +9,38 @@ ;* calls main()). ;* After Reset the CortexM0+ processor is in Thread mode, ;* priority is Privileged, and the Stack is set to Main. +;* <<< Use Configuration Wizard in Context Menu >>> ;****************************************************************************** ;* @attention ;* -;*

© Copyright (c) Puya Semiconductor Co. -;* All rights reserved.

+;* Copyright (c) 2021, Puya Semiconductor Inc. ;* -;*

© Copyright (c) 2016 STMicroelectronics. -;* All rights reserved.

+;* All rights reserved. ;* -;* This software component is licensed by ST under BSD 3-Clause license, -;* the "License"; You may not use this file except in compliance with the -;* License. You may obtain a copy of the License at: -;* opensource.org/licenses/BSD-3-Clause +;* Redistribution and use in source and binary forms, with or without modification, +;* are permitted provided that the following conditions are met: +;* +;* 1. Redistributions of source code must retain the above copyright notice, +;* this list of conditions and the following disclaimer. +;* 2. Redistributions in binary form must reproduce the above copyright notice, +;* this list of conditions and the following disclaimer in the documentation +;* and/or other materials provided with the distribution. +;* 3. Neither the name of the copyright holder nor the names of its contributors +;* may be used to endorse or promote products derived from this software +;* without specific prior written permission. +;* +;* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +;* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +;* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +;* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +;* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +;* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +;* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +;* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +;* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +;* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ;* ;****************************************************************************** -;* <<< Use Configuration Wizard in Context Menu >>> ; Amount of memory (in bytes) allocated for Stack ; Tailor this value to your application needs diff --git a/Libraries/CMSIS/Device/PY32F0xx/Source/arm/startup_py32f030x8.s b/Libraries/CMSIS/Device/PY32F0xx/Source/arm/startup_py32f030x8.s old mode 100755 new mode 100644 index 5645f94..3b4953d --- a/Libraries/CMSIS/Device/PY32F0xx/Source/arm/startup_py32f030x8.s +++ b/Libraries/CMSIS/Device/PY32F0xx/Source/arm/startup_py32f030x8.s @@ -9,22 +9,38 @@ ;* calls main()). ;* After Reset the CortexM0+ processor is in Thread mode, ;* priority is Privileged, and the Stack is set to Main. +;* <<< Use Configuration Wizard in Context Menu >>> ;****************************************************************************** ;* @attention ;* -;*

© Copyright (c) Puya Semiconductor Co. -;* All rights reserved.

+;* Copyright (c) 2021, Puya Semiconductor Inc. ;* -;*

© Copyright (c) 2016 STMicroelectronics. -;* All rights reserved.

+;* All rights reserved. ;* -;* This software component is licensed by ST under BSD 3-Clause license, -;* the "License"; You may not use this file except in compliance with the -;* License. You may obtain a copy of the License at: -;* opensource.org/licenses/BSD-3-Clause +;* Redistribution and use in source and binary forms, with or without modification, +;* are permitted provided that the following conditions are met: +;* +;* 1. Redistributions of source code must retain the above copyright notice, +;* this list of conditions and the following disclaimer. +;* 2. Redistributions in binary form must reproduce the above copyright notice, +;* this list of conditions and the following disclaimer in the documentation +;* and/or other materials provided with the distribution. +;* 3. Neither the name of the copyright holder nor the names of its contributors +;* may be used to endorse or promote products derived from this software +;* without specific prior written permission. +;* +;* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +;* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +;* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +;* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +;* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +;* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +;* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +;* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +;* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +;* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ;* ;****************************************************************************** -;* <<< Use Configuration Wizard in Context Menu >>> ; Amount of memory (in bytes) allocated for Stack ; Tailor this value to your application needs diff --git a/Libraries/CMSIS/Device/PY32F0xx/Source/arm/startup_py32f072xB.s b/Libraries/CMSIS/Device/PY32F0xx/Source/arm/startup_py32f072xB.s new file mode 100644 index 0000000..4d66e03 --- /dev/null +++ b/Libraries/CMSIS/Device/PY32F0xx/Source/arm/startup_py32f072xB.s @@ -0,0 +1,268 @@ +;****************************************************************************** +;* @file : startup_py32f030xx.s +;* @brief : P32F030xx devices vector table for MDK-ARM toolchain. +;* This module performs: +;* - Set the initial SP +;* - Set the initial PC == Reset_Handler +;* - Set the vector table entries with the exceptions ISR address +;* - Branches to __main in the C library (which eventually +;* calls main()). +;* After Reset the CortexM0+ processor is in Thread mode, +;* priority is Privileged, and the Stack is set to Main. +;* <<< Use Configuration Wizard in Context Menu >>> +;****************************************************************************** +;* @attention +;* +;* Copyright (c) 2021, Puya Semiconductor Inc. +;* +;* All rights reserved. +;* +;* Redistribution and use in source and binary forms, with or without modification, +;* are permitted provided that the following conditions are met: +;* +;* 1. Redistributions of source code must retain the above copyright notice, +;* this list of conditions and the following disclaimer. +;* 2. Redistributions in binary form must reproduce the above copyright notice, +;* this list of conditions and the following disclaimer in the documentation +;* and/or other materials provided with the distribution. +;* 3. Neither the name of the copyright holder nor the names of its contributors +;* may be used to endorse or promote products derived from this software +;* without specific prior written permission. +;* +;* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +;* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +;* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +;* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +;* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +;* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +;* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +;* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +;* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +;* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +;* +;****************************************************************************** + +; Amount of memory (in bytes) allocated for Stack +; Tailor this value to your application needs +; Stack Configuration +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Stack_Size EQU 0x00000400 + + AREA STACK, NOINIT, READWRITE, ALIGN=3 +Stack_Mem SPACE Stack_Size +__initial_sp + + +; Heap Configuration +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Heap_Size EQU 0x00000000 + + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +Heap_Mem SPACE Heap_Size +__heap_limit + + + PRESERVE8 + THUMB + + +; Vector Table Mapped to Address 0 at Reset + AREA RESET, DATA, READONLY + EXPORT __Vectors + EXPORT __Vectors_End + EXPORT __Vectors_Size + +__Vectors DCD __initial_sp ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NMI_Handler ; NMI Handler + DCD HardFault_Handler ; Hard Fault Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD SVC_Handler ; SVCall Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD PendSV_Handler ; PendSV Handler + DCD SysTick_Handler ; SysTick Handler + + ; External Interrupts + DCD WWDG_IRQHandler ; 0Window Watchdog + DCD PVD_IRQHandler ; 1PVD through EXTI Line detect + DCD RTC_IRQHandler ; 2RTC through EXTI Line + DCD FLASH_IRQHandler ; 3FLASH + DCD RCC_CTC_IRQHandler ; 4RCC, CTC + DCD EXTI0_1_IRQHandler ; 5EXTI Line 0 and 1 + DCD EXTI2_3_IRQHandler ; 6EXTI Line 2 and 3 + DCD EXTI4_15_IRQHandler ; 7EXTI Line 4 to 15 + DCD LCD_IRQHandler ; 8LCD + DCD DMA1_Channel1_IRQHandler ; 9DMA1 Channel 1 + DCD DMA1_Channel2_3_IRQHandler ; 10DMA1 Channel 2 and Channel 3 + DCD DMA1_Channel4_5_6_7_IRQHandler ; 11DMA1 Channel 4, 5, 6, 7 + DCD ADC_COMP_IRQHandler ; 12ADC&COMP1 + DCD TIM1_BRK_UP_TRG_COM_IRQHandler ; 13TIM1 Break, Update, Trigger and Commutation + DCD TIM1_CC_IRQHandler ; 14TIM1 Capture Compare + DCD TIM2_IRQHandler ; 15TIM2 + DCD TIM3_IRQHandler ; 16TIM3 + DCD TIM6_LPTIM1_DAC_IRQHandler ; 17TIM6, LPTIM1, DAC + DCD TIM7_IRQHandler ; 18TIM7 + DCD TIM14_IRQHandler ; 19TIM14 + DCD TIM15_IRQHandler ; 20TIM15 + DCD TIM16_IRQHandler ; 21TIM16 + DCD TIM17_IRQHandler ; 22TIM17 + DCD I2C1_IRQHandler ; 23I2C1 + DCD I2C2_IRQHandler ; 24I2C2 + DCD SPI1_IRQHandler ; 25SPI1 + DCD SPI2_IRQHandler ; 26SPI2 + DCD USART1_IRQHandler ; 27USART1 + DCD USART2_IRQHandler ; 28USART2 + DCD USART3_4_IRQHandler ; 29USART3, USART4 + DCD 0 ; 30Reserved + DCD USB_IRQHandler ; 31Reserved +__Vectors_End + +__Vectors_Size EQU __Vectors_End - __Vectors + + AREA |.text|, CODE, READONLY + + +; Reset Handler + +Reset_Handler PROC + EXPORT Reset_Handler [WEAK] + IMPORT SystemInit + IMPORT __main + LDR R0, =SystemInit + BLX R0 + LDR R0, =__main + BX R0 + ENDP + + +; Dummy Exception Handlers (infinite loops which can be modified) + +NMI_Handler PROC + EXPORT NMI_Handler [WEAK] + B . + ENDP +HardFault_Handler\ + PROC + EXPORT HardFault_Handler [WEAK] + B . + ENDP +SVC_Handler PROC + EXPORT SVC_Handler [WEAK] + B . + ENDP +PendSV_Handler PROC + EXPORT PendSV_Handler [WEAK] + B . + ENDP +SysTick_Handler PROC + EXPORT SysTick_Handler [WEAK] + B . + ENDP + +Default_Handler PROC + + EXPORT WWDG_IRQHandler [WEAK] + EXPORT PVD_IRQHandler [WEAK] + EXPORT RTC_IRQHandler [WEAK] + EXPORT FLASH_IRQHandler [WEAK] + EXPORT RCC_CTC_IRQHandler [WEAK] + EXPORT EXTI0_1_IRQHandler [WEAK] + EXPORT EXTI2_3_IRQHandler [WEAK] + EXPORT EXTI4_15_IRQHandler [WEAK] + EXPORT LCD_IRQHandler [WEAK] + EXPORT DMA1_Channel1_IRQHandler [WEAK] + EXPORT DMA1_Channel2_3_IRQHandler [WEAK] + EXPORT DMA1_Channel4_5_6_7_IRQHandler [WEAK] + EXPORT ADC_COMP_IRQHandler [WEAK] + EXPORT TIM1_BRK_UP_TRG_COM_IRQHandler [WEAK] + EXPORT TIM1_CC_IRQHandler [WEAK] + EXPORT TIM2_IRQHandler [WEAK] + EXPORT TIM3_IRQHandler [WEAK] + EXPORT TIM6_LPTIM1_DAC_IRQHandler [WEAK] + EXPORT TIM14_IRQHandler [WEAK] + EXPORT TIM15_IRQHandler [WEAK] + EXPORT TIM16_IRQHandler [WEAK] + EXPORT TIM17_IRQHandler [WEAK] + EXPORT I2C1_IRQHandler [WEAK] + EXPORT I2C2_IRQHandler [WEAK] + EXPORT SPI1_IRQHandler [WEAK] + EXPORT SPI2_IRQHandler [WEAK] + EXPORT USART1_IRQHandler [WEAK] + EXPORT USART2_IRQHandler [WEAK] + EXPORT USART3_4_IRQHandler [WEAK] + EXPORT USB_IRQHandler [WEAK] + +WWDG_IRQHandler +PVD_IRQHandler +RTC_IRQHandler +FLASH_IRQHandler +RCC_CTC_IRQHandler +EXTI0_1_IRQHandler +EXTI2_3_IRQHandler +EXTI4_15_IRQHandler +LCD_IRQHandler +DMA1_Channel1_IRQHandler +DMA1_Channel2_3_IRQHandler +DMA1_Channel4_5_6_7_IRQHandler +ADC_COMP_IRQHandler +TIM1_BRK_UP_TRG_COM_IRQHandler +TIM1_CC_IRQHandler +TIM2_IRQHandler +TIM3_IRQHandler +TIM6_LPTIM1_DAC_IRQHandler +TIM7_IRQHandler +TIM14_IRQHandler +TIM15_IRQHandler +TIM16_IRQHandler +TIM17_IRQHandler +I2C1_IRQHandler +I2C2_IRQHandler +SPI1_IRQHandler +SPI2_IRQHandler +USART1_IRQHandler +USART2_IRQHandler +USART3_4_IRQHandler +USB_IRQHandler + B . + ENDP + + ALIGN + +; User Initial Stack & Heap + + IF :DEF:__MICROLIB + + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + + ELSE + + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap + +__user_initial_stackheap + + LDR R0, = Heap_Mem + LDR R1, =(Stack_Mem + Stack_Size) + LDR R2, = (Heap_Mem + Heap_Size) + LDR R3, = Stack_Mem + BX LR + + ALIGN + + ENDIF + + END diff --git a/Libraries/CMSIS/Device/PY32F0xx/Source/iar/startup_py32f002axx.s b/Libraries/CMSIS/Device/PY32F0xx/Source/iar/startup_py32f002axx.s old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/Device/PY32F0xx/Source/iar/startup_py32f003xx.s b/Libraries/CMSIS/Device/PY32F0xx/Source/iar/startup_py32f003xx.s old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/Device/PY32F0xx/Source/iar/startup_py32f030xx.s b/Libraries/CMSIS/Device/PY32F0xx/Source/iar/startup_py32f030xx.s old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/Device/PY32F0xx/Source/system_py32f0xx.c b/Libraries/CMSIS/Device/PY32F0xx/Source/system_py32f0xx.c old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/Include/arm_common_tables.h b/Libraries/CMSIS/Include/arm_common_tables.h old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/Include/arm_const_structs.h b/Libraries/CMSIS/Include/arm_const_structs.h old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/Include/arm_math.h b/Libraries/CMSIS/Include/arm_math.h old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/Include/cmsis_armcc.h b/Libraries/CMSIS/Include/cmsis_armcc.h old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/Include/cmsis_armcc_V6.h b/Libraries/CMSIS/Include/cmsis_armcc_V6.h old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/Include/cmsis_gcc.h b/Libraries/CMSIS/Include/cmsis_gcc.h old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/Include/core_cm0.h b/Libraries/CMSIS/Include/core_cm0.h old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/Include/core_cm0plus.h b/Libraries/CMSIS/Include/core_cm0plus.h old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/Include/core_cm3.h b/Libraries/CMSIS/Include/core_cm3.h old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/Include/core_cm4.h b/Libraries/CMSIS/Include/core_cm4.h old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/Include/core_cm7.h b/Libraries/CMSIS/Include/core_cm7.h old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/Include/core_cmFunc.h b/Libraries/CMSIS/Include/core_cmFunc.h old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/Include/core_cmInstr.h b/Libraries/CMSIS/Include/core_cmInstr.h old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/Include/core_cmSimd.h b/Libraries/CMSIS/Include/core_cmSimd.h old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/Include/core_sc000.h b/Libraries/CMSIS/Include/core_sc000.h old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/Include/core_sc300.h b/Libraries/CMSIS/Include/core_sc300.h old mode 100755 new mode 100644 diff --git a/Libraries/CMSIS/RTOS/Template/cmsis_os.h b/Libraries/CMSIS/RTOS/Template/cmsis_os.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal.h b/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_adc.h b/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_adc.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_adc_ex.h b/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_adc_ex.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_comp.h b/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_comp.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_cortex.h b/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_cortex.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_crc.h b/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_crc.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_def.h b/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_def.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_dma.h b/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_dma.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_dma_ex.h b/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_dma_ex.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_exti.h b/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_exti.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_flash.h b/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_flash.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_flash_ex.h b/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_flash_ex.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_gpio.h b/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_gpio.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_gpio_ex.h b/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_gpio_ex.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_i2c.h b/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_i2c.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_irda.h b/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_irda.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_iwdg.h b/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_iwdg.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_led.h b/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_led.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_lptim.h b/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_lptim.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_pwr.h b/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_pwr.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_rcc.h b/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_rcc.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_rcc_ex.h b/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_rcc_ex.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_rtc.h b/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_rtc.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_rtc_ex.h b/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_rtc_ex.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_spi.h b/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_spi.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_tim.h b/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_tim.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_tim_ex.h b/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_tim_ex.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_uart.h b/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_uart.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_usart.h b/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_usart.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_wwdg.h b/Libraries/PY32F0xx_HAL_Driver/Inc/py32f0xx_hal_wwdg.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal.c b/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal.c old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_adc.c b/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_adc.c old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_adc_ex.c b/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_adc_ex.c old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_comp.c b/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_comp.c old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_cortex.c b/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_cortex.c old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_crc.c b/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_crc.c old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_dma.c b/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_dma.c old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_exti.c b/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_exti.c old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_flash.c b/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_flash.c old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_gpio.c b/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_gpio.c old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_i2c.c b/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_i2c.c old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_irda.c b/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_irda.c old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_iwdg.c b/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_iwdg.c old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_led.c b/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_led.c old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_lptim.c b/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_lptim.c old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_pwr.c b/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_pwr.c old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_rcc.c b/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_rcc.c old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_rcc_ex.c b/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_rcc_ex.c old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_rtc.c b/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_rtc.c old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_rtc_ex.c b/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_rtc_ex.c old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_spi.c b/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_spi.c old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_tim.c b/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_tim.c old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_tim_ex.c b/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_tim_ex.c old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_uart.c b/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_uart.c old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_usart.c b/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_usart.c old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_wwdg.c b/Libraries/PY32F0xx_HAL_Driver/Src/py32f0xx_hal_wwdg.c old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_LL_Driver/Inc/py32f0xx_ll_adc.h b/Libraries/PY32F0xx_LL_Driver/Inc/py32f0xx_ll_adc.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_LL_Driver/Inc/py32f0xx_ll_bus.h b/Libraries/PY32F0xx_LL_Driver/Inc/py32f0xx_ll_bus.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_LL_Driver/Inc/py32f0xx_ll_comp.h b/Libraries/PY32F0xx_LL_Driver/Inc/py32f0xx_ll_comp.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_LL_Driver/Inc/py32f0xx_ll_cortex.h b/Libraries/PY32F0xx_LL_Driver/Inc/py32f0xx_ll_cortex.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_LL_Driver/Inc/py32f0xx_ll_crc.h b/Libraries/PY32F0xx_LL_Driver/Inc/py32f0xx_ll_crc.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_LL_Driver/Inc/py32f0xx_ll_dma.h b/Libraries/PY32F0xx_LL_Driver/Inc/py32f0xx_ll_dma.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_LL_Driver/Inc/py32f0xx_ll_exti.h b/Libraries/PY32F0xx_LL_Driver/Inc/py32f0xx_ll_exti.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_LL_Driver/Inc/py32f0xx_ll_gpio.h b/Libraries/PY32F0xx_LL_Driver/Inc/py32f0xx_ll_gpio.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_LL_Driver/Inc/py32f0xx_ll_i2c.h b/Libraries/PY32F0xx_LL_Driver/Inc/py32f0xx_ll_i2c.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_LL_Driver/Inc/py32f0xx_ll_iwdg.h b/Libraries/PY32F0xx_LL_Driver/Inc/py32f0xx_ll_iwdg.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_LL_Driver/Inc/py32f0xx_ll_led.h b/Libraries/PY32F0xx_LL_Driver/Inc/py32f0xx_ll_led.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_LL_Driver/Inc/py32f0xx_ll_lptim.h b/Libraries/PY32F0xx_LL_Driver/Inc/py32f0xx_ll_lptim.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_LL_Driver/Inc/py32f0xx_ll_pwr.h b/Libraries/PY32F0xx_LL_Driver/Inc/py32f0xx_ll_pwr.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_LL_Driver/Inc/py32f0xx_ll_rcc.h b/Libraries/PY32F0xx_LL_Driver/Inc/py32f0xx_ll_rcc.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_LL_Driver/Inc/py32f0xx_ll_rtc.h b/Libraries/PY32F0xx_LL_Driver/Inc/py32f0xx_ll_rtc.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_LL_Driver/Inc/py32f0xx_ll_spi.h b/Libraries/PY32F0xx_LL_Driver/Inc/py32f0xx_ll_spi.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_LL_Driver/Inc/py32f0xx_ll_system.h b/Libraries/PY32F0xx_LL_Driver/Inc/py32f0xx_ll_system.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_LL_Driver/Inc/py32f0xx_ll_tim.h b/Libraries/PY32F0xx_LL_Driver/Inc/py32f0xx_ll_tim.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_LL_Driver/Inc/py32f0xx_ll_usart.h b/Libraries/PY32F0xx_LL_Driver/Inc/py32f0xx_ll_usart.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_LL_Driver/Inc/py32f0xx_ll_utils.h b/Libraries/PY32F0xx_LL_Driver/Inc/py32f0xx_ll_utils.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_LL_Driver/Inc/py32f0xx_ll_wwdg.h b/Libraries/PY32F0xx_LL_Driver/Inc/py32f0xx_ll_wwdg.h old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_LL_Driver/Src/py32f0xx_ll_adc.c b/Libraries/PY32F0xx_LL_Driver/Src/py32f0xx_ll_adc.c old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_LL_Driver/Src/py32f0xx_ll_comp.c b/Libraries/PY32F0xx_LL_Driver/Src/py32f0xx_ll_comp.c old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_LL_Driver/Src/py32f0xx_ll_crc.c b/Libraries/PY32F0xx_LL_Driver/Src/py32f0xx_ll_crc.c old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_LL_Driver/Src/py32f0xx_ll_dma.c b/Libraries/PY32F0xx_LL_Driver/Src/py32f0xx_ll_dma.c old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_LL_Driver/Src/py32f0xx_ll_exti.c b/Libraries/PY32F0xx_LL_Driver/Src/py32f0xx_ll_exti.c old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_LL_Driver/Src/py32f0xx_ll_gpio.c b/Libraries/PY32F0xx_LL_Driver/Src/py32f0xx_ll_gpio.c old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_LL_Driver/Src/py32f0xx_ll_i2c.c b/Libraries/PY32F0xx_LL_Driver/Src/py32f0xx_ll_i2c.c old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_LL_Driver/Src/py32f0xx_ll_led.c b/Libraries/PY32F0xx_LL_Driver/Src/py32f0xx_ll_led.c old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_LL_Driver/Src/py32f0xx_ll_lptim.c b/Libraries/PY32F0xx_LL_Driver/Src/py32f0xx_ll_lptim.c old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_LL_Driver/Src/py32f0xx_ll_pwr.c b/Libraries/PY32F0xx_LL_Driver/Src/py32f0xx_ll_pwr.c old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_LL_Driver/Src/py32f0xx_ll_rcc.c b/Libraries/PY32F0xx_LL_Driver/Src/py32f0xx_ll_rcc.c old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_LL_Driver/Src/py32f0xx_ll_rtc.c b/Libraries/PY32F0xx_LL_Driver/Src/py32f0xx_ll_rtc.c old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_LL_Driver/Src/py32f0xx_ll_spi.c b/Libraries/PY32F0xx_LL_Driver/Src/py32f0xx_ll_spi.c old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_LL_Driver/Src/py32f0xx_ll_tim.c b/Libraries/PY32F0xx_LL_Driver/Src/py32f0xx_ll_tim.c old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_LL_Driver/Src/py32f0xx_ll_usart.c b/Libraries/PY32F0xx_LL_Driver/Src/py32f0xx_ll_usart.c old mode 100755 new mode 100644 diff --git a/Libraries/PY32F0xx_LL_Driver/Src/py32f0xx_ll_utils.c b/Libraries/PY32F0xx_LL_Driver/Src/py32f0xx_ll_utils.c old mode 100755 new mode 100644 diff --git a/Misc/Devices/Puya/PY32F003xx_16.FLM b/Misc/Flash/Devices/Puya/PY32F003xx_16.FLM similarity index 100% rename from Misc/Devices/Puya/PY32F003xx_16.FLM rename to Misc/Flash/Devices/Puya/PY32F003xx_16.FLM diff --git a/Misc/Devices/Puya/PY32F003xx_32.FLM b/Misc/Flash/Devices/Puya/PY32F003xx_32.FLM similarity index 100% rename from Misc/Devices/Puya/PY32F003xx_32.FLM rename to Misc/Flash/Devices/Puya/PY32F003xx_32.FLM diff --git a/Misc/Devices/Puya/PY32F003xx_64.FLM b/Misc/Flash/Devices/Puya/PY32F003xx_64.FLM similarity index 100% rename from Misc/Devices/Puya/PY32F003xx_64.FLM rename to Misc/Flash/Devices/Puya/PY32F003xx_64.FLM diff --git a/Misc/Devices/Puya/PY32F003xx_OPT.FLM b/Misc/Flash/Devices/Puya/PY32F003xx_OPT.FLM similarity index 100% rename from Misc/Devices/Puya/PY32F003xx_OPT.FLM rename to Misc/Flash/Devices/Puya/PY32F003xx_OPT.FLM diff --git a/Misc/Devices/Puya/PY32F030xx_16.FLM b/Misc/Flash/Devices/Puya/PY32F030xx_16.FLM similarity index 100% rename from Misc/Devices/Puya/PY32F030xx_16.FLM rename to Misc/Flash/Devices/Puya/PY32F030xx_16.FLM diff --git a/Misc/Devices/Puya/PY32F030xx_32.FLM b/Misc/Flash/Devices/Puya/PY32F030xx_32.FLM similarity index 100% rename from Misc/Devices/Puya/PY32F030xx_32.FLM rename to Misc/Flash/Devices/Puya/PY32F030xx_32.FLM diff --git a/Misc/Devices/Puya/PY32F030xx_48.FLM b/Misc/Flash/Devices/Puya/PY32F030xx_48.FLM similarity index 100% rename from Misc/Devices/Puya/PY32F030xx_48.FLM rename to Misc/Flash/Devices/Puya/PY32F030xx_48.FLM diff --git a/Misc/Devices/Puya/PY32F030xx_64.FLM b/Misc/Flash/Devices/Puya/PY32F030xx_64.FLM similarity index 100% rename from Misc/Devices/Puya/PY32F030xx_64.FLM rename to Misc/Flash/Devices/Puya/PY32F030xx_64.FLM diff --git a/Misc/Devices/Puya/PY32F030xx_8.FLM b/Misc/Flash/Devices/Puya/PY32F030xx_8.FLM similarity index 100% rename from Misc/Devices/Puya/PY32F030xx_8.FLM rename to Misc/Flash/Devices/Puya/PY32F030xx_8.FLM diff --git a/Misc/Devices/Puya/PY32F030xx_OPT.FLM b/Misc/Flash/Devices/Puya/PY32F030xx_OPT.FLM similarity index 100% rename from Misc/Devices/Puya/PY32F030xx_OPT.FLM rename to Misc/Flash/Devices/Puya/PY32F030xx_OPT.FLM diff --git a/Misc/Devices/Puya/PY32F072xx_128.FLM b/Misc/Flash/Devices/Puya/PY32F072xx_128.FLM similarity index 100% rename from Misc/Devices/Puya/PY32F072xx_128.FLM rename to Misc/Flash/Devices/Puya/PY32F072xx_128.FLM diff --git a/Misc/Devices/Puya/PY32F072xx_OPT.FLM b/Misc/Flash/Devices/Puya/PY32F072xx_OPT.FLM similarity index 100% rename from Misc/Devices/Puya/PY32F072xx_OPT.FLM rename to Misc/Flash/Devices/Puya/PY32F072xx_OPT.FLM diff --git a/Misc/Devices/Puya/PY32F0xx_16.FLM b/Misc/Flash/Devices/Puya/PY32F0xx_16.FLM similarity index 100% rename from Misc/Devices/Puya/PY32F0xx_16.FLM rename to Misc/Flash/Devices/Puya/PY32F0xx_16.FLM diff --git a/Misc/Devices/Puya/PY32F0xx_20.FLM b/Misc/Flash/Devices/Puya/PY32F0xx_20.FLM similarity index 100% rename from Misc/Devices/Puya/PY32F0xx_20.FLM rename to Misc/Flash/Devices/Puya/PY32F0xx_20.FLM diff --git a/Misc/Devices/Puya/PY32F0xx_32.FLM b/Misc/Flash/Devices/Puya/PY32F0xx_32.FLM similarity index 100% rename from Misc/Devices/Puya/PY32F0xx_32.FLM rename to Misc/Flash/Devices/Puya/PY32F0xx_32.FLM diff --git a/Misc/Devices/Puya/PY32F0xx_48.FLM b/Misc/Flash/Devices/Puya/PY32F0xx_48.FLM similarity index 100% rename from Misc/Devices/Puya/PY32F0xx_48.FLM rename to Misc/Flash/Devices/Puya/PY32F0xx_48.FLM diff --git a/Misc/Devices/Puya/PY32F0xx_64.FLM b/Misc/Flash/Devices/Puya/PY32F0xx_64.FLM similarity index 100% rename from Misc/Devices/Puya/PY32F0xx_64.FLM rename to Misc/Flash/Devices/Puya/PY32F0xx_64.FLM diff --git a/Misc/Devices/Puya/PY32F0xx_8.FLM b/Misc/Flash/Devices/Puya/PY32F0xx_8.FLM similarity index 100% rename from Misc/Devices/Puya/PY32F0xx_8.FLM rename to Misc/Flash/Devices/Puya/PY32F0xx_8.FLM diff --git a/Misc/Devices/Puya/PY32F0xx_OPT.FLM b/Misc/Flash/Devices/Puya/PY32F0xx_OPT.FLM similarity index 100% rename from Misc/Devices/Puya/PY32F0xx_OPT.FLM rename to Misc/Flash/Devices/Puya/PY32F0xx_OPT.FLM diff --git a/Misc/Flash/Sources/PY32F072xx/FlashDev.c b/Misc/Flash/Sources/PY32F072xx/FlashDev.c new file mode 100644 index 0000000..3347166 --- /dev/null +++ b/Misc/Flash/Sources/PY32F072xx/FlashDev.c @@ -0,0 +1,175 @@ +/* ----------------------------------------------------------------------------- + * Copyright (c) 2014 - 2019 ARM Ltd. + * + * This software is provided 'as-is', without any express or implied warranty. + * In no event will the authors be held liable for any damages arising from + * the use of this software. Permission is granted to anyone to use this + * software for any purpose, including commercial applications, and to alter + * it and redistribute it freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software in + * a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * + * 3. This notice may not be removed or altered from any source distribution. + * + * + * $Date: 2021-7-1 + * $Revision: V1.0.0 + * + * Project: Flash Device Description for Puya PY32F030xx Flash + * --------------------------------------------------------------------------- */ + +/* History: + * Version 1.0.0 + * Initial release + */ +#include "FlashOS.h" // FlashOS Structures + +#ifdef FLASH_MEM + +#ifdef PY32F072xB +struct FlashDevice const FlashDevice = +{ + FLASH_DRV_VERS, // Driver Version, do not modify! + "PY32F072xx 128kB Flash", // Device Name (128kB) + ONCHIP, // Device Type + 0x08000000, // Device Start Address + 0x00020000, // Device Size in Bytes (128kB) + 0x100, // Programming Page Size + 0, // Reserved, must be 0 + 0xFF, // Initial Content of Erased Memory + 600, // Program Page Timeout 600 mSec + 6000, // Erase Sector Timeout 6000 mSec + +//Specify Size and Address of Sectors + 0x2000, 0x000000, // Sector Size 4kB (2 sectors) + SECTOR_END +}; +#endif // PY32F072xB + +#ifdef PY32F030xx_8 +struct FlashDevice const FlashDevice = +{ + FLASH_DRV_VERS, // Driver Version, do not modify! + "PY32F030xx 8kB Flash", // Device Name (8kB) + ONCHIP, // Device Type + 0x08000000, // Device Start Address + 0x00002000, // Device Size in Bytes (8kB) + 0x80, // Programming Page Size + 0, // Reserved, must be 0 + 0xFF, // Initial Content of Erased Memory + 600, // Program Page Timeout 600 mSec + 6000, // Erase Sector Timeout 6000 mSec + +//Specify Size and Address of Sectors + 0x1000, 0x000000, // Sector Size 4kB (2 sectors) + SECTOR_END +}; +#endif // PY32F030xx_8 + +#ifdef PY32F030xx_16 +struct FlashDevice const FlashDevice = +{ + FLASH_DRV_VERS, // Driver Version, do not modify! + "PY32F030xx 16kB Flash", // Device Name (16kB) + ONCHIP, // Device Type + 0x08000000, // Device Start Address + 0x00004000, // Device Size in Bytes (16kB) + 0x80, // Programming Page Size + 0, // Reserved, must be 0 + 0xFF, // Initial Content of Erased Memory + 600, // Program Page Timeout 600 mSec + 6000, // Erase Sector Timeout 6000 mSec + +//Specify Size and Address of Sectors + 0x1000, 0x000000, // Sector Size 4kB (4 sectors) + SECTOR_END +}; +#endif // PY32F030xx_16 + +#ifdef PY32F030xx_32 +struct FlashDevice const FlashDevice = +{ + FLASH_DRV_VERS, // Driver Version, do not modify! + "PY32F030xx 32kB Flash", // Device Name (32kB) + ONCHIP, // Device Type + 0x08000000, // Device Start Address + 0x00008000, // Device Size in Bytes (32kB) + 0x80, // Programming Page Size + 0, // Reserved, must be 0 + 0xFF, // Initial Content of Erased Memory + 600, // Program Page Timeout 600 mSec + 6000, // Erase Sector Timeout 6000 mSec + +//Specify Size and Address of Sectors + 0x1000, 0x000000, // Sector Size 4kB (8 sectors) + SECTOR_END +}; +#endif // PY32F030xx_32 + +#ifdef PY32F030xx_48 +struct FlashDevice const FlashDevice = +{ + FLASH_DRV_VERS, // Driver Version, do not modify! + "PY32F030xx 48kB Flash", // Device Name (48kB) + ONCHIP, // Device Type + 0x08000000, // Device Start Address + 0x0000C000, // Device Size in Bytes (48kB) + 0x80, // Programming Page Size + 0, // Reserved, must be 0 + 0xFF, // Initial Content of Erased Memory + 600, // Program Page Timeout 600 mSec + 6000, // Erase Sector Timeout 6000 mSec + +//Specify Size and Address of Sectors + 0x1000, 0x000000, // Sector Size 4kB (12 sectors) + SECTOR_END +}; +#endif // PY32F030xx_48 + +#ifdef PY32F030xx_64 +struct FlashDevice const FlashDevice = +{ + FLASH_DRV_VERS, // Driver Version, do not modify! + "PY32F030xx 64kB Flash", // Device Name (64kB) + ONCHIP, // Device Type + 0x08000000, // Device Start Address + 0x00010000, // Device Size in Bytes (64kB) + 0x80, // Programming Page Size + 0, // Reserved, must be 0 + 0xFF, // Initial Content of Erased Memory + 600, // Program Page Timeout 600 mSec + 6000, // Erase Sector Timeout 6000 mSec + +//Specify Size and Address of Sectors + 0x1000, 0x000000, // Sector Size 4kB (16 sectors) + SECTOR_END +}; +#endif // PY32F030xx_64 + +#endif // FLASH_MEM + +#ifdef FLASH_OPT +struct FlashDevice const FlashDevice = +{ + FLASH_DRV_VERS, // Driver Version, do not modify! + "PY32F030xx Flash Options", // Device Name + ONCHIP, // Device Type + 0x1FFF0E80, // Device Start Address + 0x00000010, // Device Size in Bytes (16) + 0x10, // Programming Page Size + 0, // Reserved, must be 0 + 0xFF, // Initial Content of Erased Memory + 3000, // Program Page Timeout 3 Sec + 3000, // Erase Sector Timeout 3 Sec + +//Specify Size and Address of Sectors + 0x00010, 0x000000, // Sector Size 16B (1 sectors) + SECTOR_END +}; +#endif // FLASH_OPT diff --git a/Misc/Flash/Sources/PY32F072xx/FlashOS.h b/Misc/Flash/Sources/PY32F072xx/FlashOS.h new file mode 100644 index 0000000..87e97f6 --- /dev/null +++ b/Misc/Flash/Sources/PY32F072xx/FlashOS.h @@ -0,0 +1,84 @@ +/* ----------------------------------------------------------------------------- + * Copyright (c) 2014 ARM Ltd. + * + * This software is provided 'as-is', without any express or implied warranty. + * In no event will the authors be held liable for any damages arising from + * the use of this software. Permission is granted to anyone to use this + * software for any purpose, including commercial applications, and to alter + * it and redistribute it freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software in + * a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * + * 3. This notice may not be removed or altered from any source distribution. + * + * + * $Date: 14. Jan 2014 + * $Revision: V1.00 + * + * Project: FlashOS Headerfile for Flash drivers + * --------------------------------------------------------------------------- */ + +/* History: + * Version 1.00 + * Initial release + */ + +#define VERS 1 // Interface Version 1.01 + +#define UNKNOWN 0 // Unknown +#define ONCHIP 1 // On-chip Flash Memory +#define EXT8BIT 2 // External Flash Device on 8-bit Bus +#define EXT16BIT 3 // External Flash Device on 16-bit Bus +#define EXT32BIT 4 // External Flash Device on 32-bit Bus +#define EXTSPI 5 // External Flash Device on SPI + +#define SECTOR_NUM 512 // Max Number of Sector Items +#define PAGE_MAX 65536 // Max Page Size for Programming + +struct FlashSectors { + unsigned long szSector; // Sector Size in Bytes + unsigned long AddrSector; // Address of Sector +}; + +#define SECTOR_END 0xFFFFFFFF, 0xFFFFFFFF + +struct FlashDevice { + unsigned short Vers; // Version Number and Architecture + char DevName[128]; // Device Name and Description + unsigned short DevType; // Device Type: ONCHIP, EXT8BIT, EXT16BIT, ... + unsigned long DevAdr; // Default Device Start Address + unsigned long szDev; // Total Size of Device + unsigned long szPage; // Programming Page Size + unsigned long Res; // Reserved for future Extension + unsigned char valEmpty; // Content of Erased Memory + + unsigned long toProg; // Time Out of Program Page Function + unsigned long toErase; // Time Out of Erase Sector Function + + struct FlashSectors sectors[SECTOR_NUM]; +}; + +#define FLASH_DRV_VERS (0x0100+VERS) // Driver Version, do not modify! + +// Flash Programming Functions (Called by FlashOS) +extern int Init (unsigned long adr, // Initialize Flash + unsigned long clk, + unsigned long fnc); +extern int UnInit (unsigned long fnc); // De-initialize Flash +extern int BlankCheck (unsigned long adr, // Blank Check + unsigned long sz, + unsigned char pat); +extern int EraseChip (void); // Erase complete Device +extern int EraseSector (unsigned long adr); // Erase Sector Function +extern int ProgramPage (unsigned long adr, // Program Page Function + unsigned long sz, + unsigned char *buf); +extern unsigned long Verify (unsigned long adr, // Verify Function + unsigned long sz, + unsigned char *buf); diff --git a/Misc/Flash/Sources/PY32F072xx/FlashPrg.c b/Misc/Flash/Sources/PY32F072xx/FlashPrg.c new file mode 100644 index 0000000..fbdbc1e --- /dev/null +++ b/Misc/Flash/Sources/PY32F072xx/FlashPrg.c @@ -0,0 +1,452 @@ +/* ----------------------------------------------------------------------------- + * Copyright (c) 2014 - 2019 ARM Ltd. + * + * This software is provided 'as-is', without any express or implied warranty. + * In no event will the authors be held liable for any damages arising from + * the use of this software. Permission is granted to anyone to use this + * software for any purpose, including commercial applications, and to alter + * it and redistribute it freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software in + * a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * + * 3. This notice may not be removed or altered from any source distribution. + * + * + * $Date: 2021-7-1 + * $Revision: V1.0.0 + * + * Project: Flash Programming Functions for Puya PY32F030xx Flash + * --------------------------------------------------------------------------- */ + +/* History: + * Version 1.0.0 + * Initial release + */ + +#include "FlashOS.h" // FlashOS Structures +#include "py32f0xx.h" + +typedef volatile unsigned char vu8; +typedef unsigned char u8; +typedef volatile unsigned short vu16; +typedef unsigned short u16; +typedef volatile unsigned long vu32; +typedef unsigned long u32; + +#define M8(adr) (*((vu8 *) (adr))) +#define M16(adr) (*((vu16 *) (adr))) +#define M32(adr) (*((vu32 *) (adr))) + +//uint32_t gdw_HSI_FS; + +//#define USE_HSI_24MHZ + +////uiOffset = 0(4MHz), 1(8MHz), 2(16MHz), 3(22.12MHz), 4(24MHz) +//void SetFlashParameter(uint32_t uiOffset) +//{ +// FLASH->TS0 = ((M32(0x1FFF0F1C + uiOffset * 0x14) >> 0) & 0x000000FF); +// FLASH->TS3 = ((M32(0x1FFF0F1C + uiOffset * 0x14) >> 8) & 0x000000FF); +// FLASH->TS1 = ((M32(0x1FFF0F1C + uiOffset * 0x14) >> 16) & 0x000001FF); +// FLASH->TS2P = ((M32(0x1FFF0F20 + uiOffset * 0x14) >> 0) & 0x000000FF); +// FLASH->TPS3 = ((M32(0x1FFF0F20 + uiOffset * 0x14) >> 16) & 0x000007FF); +// FLASH->PERTPE = ((M32(0x1FFF0F24 + uiOffset * 0x14) >> 0) & 0x0001FFFF); +// FLASH->SMERTPE = ((M32(0x1FFF0F28 + uiOffset * 0x14) >> 0) & 0x0001FFFF); +// FLASH->PRGTPE = ((M32(0x1FFF0F2C + uiOffset * 0x14) >> 0) & 0x0000FFFF); +// FLASH->PRETPE = ((M32(0x1FFF0F2C + uiOffset * 0x14) >> 16) & 0x0000FFFF); +//} + +//void InitRccAndFlashParam(void) +//{ +//#ifdef USE_HSI_24MHZ +// gdw_HSI_FS = READ_BIT(RCC->ICSCR, RCC_ICSCR_HSI_FS); +// MODIFY_REG(RCC->ICSCR, RCC_ICSCR_HSI_FS, RCC_ICSCR_HSI_FS_2);//HSI_24MHz +// MODIFY_REG(RCC->ICSCR, RCC_ICSCR_HSI_TRIM, M32(0x1FFF0F10)&RCC_ICSCR_HSI_TRIM); +// while (RCC_CR_HSIRDY != READ_BIT(RCC->CR, RCC_CR_HSIRDY)); +// SetFlashParameter(4); +//#else +// uint32_t dwOffset; +// switch (READ_BIT(RCC->ICSCR, RCC_ICSCR_HSI_FS)) +// { +// default://4MHz +// dwOffset = 0x00; +// break; +// case RCC_ICSCR_HSI_FS_0://8MHz +// dwOffset = 0x01; +// break; +// case RCC_ICSCR_HSI_FS_1://16MHz +// dwOffset = 0x02; +// break; +// case (RCC_ICSCR_HSI_FS_1|RCC_ICSCR_HSI_FS_0)://22.12MHz +// dwOffset = 0x03; +// break; +// case RCC_ICSCR_HSI_FS_2://24MHz +// dwOffset = 0x04; +// break; +// } +// MODIFY_REG(RCC->ICSCR, RCC_ICSCR_HSI_TRIM, M32(0x1FFF0F00 + dwOffset * 4)&RCC_ICSCR_HSI_TRIM); +// WRITE_REG(FLASH->TS0, ((M32(0x1FFF0F1C + dwOffset * 0x14) >> 0) & 0x000000FF)); +// WRITE_REG(FLASH->TS1, ((M32(0x1FFF0F1C + dwOffset * 0x14) >> 8) & 0x000000FF)); +// WRITE_REG(FLASH->TS3, ((M32(0x1FFF0F1C + dwOffset * 0x14) >> 16) & 0x000001FF)); +// WRITE_REG(FLASH->TS2P, ((M32(0x1FFF0F20 + dwOffset * 0x14) >> 0) & 0x000000FF)); +// WRITE_REG(FLASH->TPS3, ((M32(0x1FFF0F20 + dwOffset * 0x14) >> 16) & 0x000007FF)); +// WRITE_REG(FLASH->PERTPE, ((M32(0x1FFF0F24 + dwOffset * 0x14) >> 0) & 0x0001FFFF)); +// WRITE_REG(FLASH->SMERTPE, ((M32(0x1FFF0F28 + dwOffset * 0x14) >> 0) & 0x0001FFFF)); +// WRITE_REG(FLASH->PRGTPE, ((M32(0x1FFF0F2C + dwOffset * 0x14) >> 0) & 0x0000FFFF)); +// WRITE_REG(FLASH->PRETPE, ((M32(0x1FFF0F2C + dwOffset * 0x14) >> 16) & 0x00000FFF)); +//#endif +//} + +//void UnInitRccAndFlashParam(void) +//{ +//#ifdef USE_HSI_24MHZ +// MODIFY_REG(RCC->ICSCR, RCC_ICSCR_HSI_FS, gdw_HSI_FS); +// switch (gdw_HSI_FS) +// { +// case RCC_ICSCR_HSI_FS_2://24MHz +// MODIFY_REG(RCC->ICSCR, RCC_ICSCR_HSI_TRIM, M32(0x1FFF0F10)&RCC_ICSCR_HSI_TRIM); +// break; +// case (RCC_ICSCR_HSI_FS_1|RCC_ICSCR_HSI_FS_0)://22.12MHz +// MODIFY_REG(RCC->ICSCR, RCC_ICSCR_HSI_TRIM, M32(0x1FFF0F0C)&RCC_ICSCR_HSI_TRIM); +// break; +// case RCC_ICSCR_HSI_FS_1://16MHz +// MODIFY_REG(RCC->ICSCR, RCC_ICSCR_HSI_TRIM, M32(0x1FFF0F08)&RCC_ICSCR_HSI_TRIM); +// break; +// case RCC_ICSCR_HSI_FS_0://8MHz +// MODIFY_REG(RCC->ICSCR, RCC_ICSCR_HSI_TRIM, M32(0x1FFF0F04)&RCC_ICSCR_HSI_TRIM); +// break; +// default://4MHz +// MODIFY_REG(RCC->ICSCR, RCC_ICSCR_HSI_TRIM, M32(0x1FFF0F00)&RCC_ICSCR_HSI_TRIM); +// break; +// } +// while (RCC_CR_HSIRDY != READ_BIT(RCC->CR, RCC_CR_HSIRDY)); +//#endif +//} + +/* + * Initialize Flash Programming Functions + * Parameter: adr: Device Base Address + * clk: Clock Frequency (Hz) + * fnc: Function Code (1 - Erase, 2 - Program, 3 - Verify) + * Return Value: 0 - OK, 1 - Failed + */ + +#ifdef FLASH_MEM +int Init(unsigned long adr, unsigned long clk, unsigned long fnc) +{ + +// InitRccAndFlashParam(); + + FLASH->KEYR = FLASH_KEY1; // Unlock Flash + FLASH->KEYR = FLASH_KEY2; + + FLASH->ACR = 0x00000000; // Zero Wait State, no Prefetch + FLASH->SR |= FLASH_SR_EOP; // Reset FLASH_EOP + + if ((FLASH->OPTR & FLASH_OPTR_IWDG_SW) == 0x00) // Test if IWDG is running (IWDG in HW mode) + { + // Set IWDG time out to ~32.768 second + IWDG->KR = 0x5555; // Enable write access to IWDG_PR and IWDG_RLR + IWDG->PR = 0x06; // Set prescaler to 256 + IWDG->RLR = 0xFFF; // Set reload value to 4095 + } + + return (0); +} +#endif + +#ifdef FLASH_OPT +int Init(unsigned long adr, unsigned long clk, unsigned long fnc) +{ + + InitRccAndFlashParam(); + + FLASH->KEYR = FLASH_KEY1; // Unlock Flash + FLASH->KEYR = FLASH_KEY2; + + FLASH->OPTKEYR = FLASH_OPTKEY1; // Unlock Option Bytes + FLASH->OPTKEYR = FLASH_OPTKEY2; + + FLASH->ACR = 0x00000000; // Zero Wait State, no Prefetch + FLASH->SR |= FLASH_SR_EOP; // Reset FLASH_EOP + + + if ((FLASH->OPTR & 0x1000) == 0x00) // Test if IWDG is running (IWDG in HW mode) + { + // Set IWDG time out to ~32.768 second + IWDG->KR = 0x5555; // Enable write access to IWDG_PR and IWDG_RLR + IWDG->PR = 0x06; // Set prescaler to 256 + IWDG->RLR = 0xFFF; // Set reload value to 4095 + } + + return (0); +} +#endif + + +/* + * De-Initialize Flash Programming Functions + * Parameter: fnc: Function Code (1 - Erase, 2 - Program, 3 - Verify) + * Return Value: 0 - OK, 1 - Failed + */ + +#ifdef FLASH_MEM +int UnInit(unsigned long fnc) +{ + +// UnInitRccAndFlashParam(); + + FLASH->CR |= FLASH_CR_LOCK; // Lock Flash + + return (0); +} +#endif + +#ifdef FLASH_OPT +int UnInit(unsigned long fnc) +{ + + UnInitRccAndFlashParam(); + + FLASH->CR |= FLASH_CR_LOCK; // Lock Flash + FLASH->CR |= FLASH_CR_OPTLOCK; // Lock Option Bytes + + return (0); +} +#endif + +/* + * Erase complete Flash Memory + * Return Value: 0 - OK, 1 - Failed + */ + +#ifdef FLASH_MEM +int EraseChip(void) +{ + FLASH->SR |= FLASH_SR_EOP; // Reset FLASH_EOP + + FLASH->CR |= FLASH_CR_MER; // Mass Erase Enabled + FLASH->CR |= FLASH_CR_EOPIE; + M32(0x08000000) = 0xFF; + __asm("DSB"); + + while (FLASH->SR & FLASH_SR_BSY) + { + IWDG->KR = 0xAAAA; // Reload IWDG + } + + FLASH->CR &= ~FLASH_CR_MER; // Mass Erase Disabled + FLASH->CR &= ~FLASH_CR_EOPIE; // Reset FLASH_EOPIE + + if (FLASH_SR_EOP != (FLASH->SR & FLASH_SR_EOP)) // Check for FLASH_SR_EOP + { + FLASH->SR |= FLASH_SR_EOP; + return (1); // Failed + } + + return (0); // Done +} +#endif + +#ifdef FLASH_OPT +int EraseChip(void) +{ + + /* erase chip is not needed for + - Flash Option bytes + - Flash One Time Programmable bytes + */ + return (0); // Done +} +#endif + +/* + * Erase Sector in Flash Memory + * Parameter: adr: Sector Address + * Return Value: 0 - OK, 1 - Failed + */ + +#ifdef FLASH_MEM +int EraseSector(unsigned long adr) +{ + + FLASH->SR |= FLASH_SR_EOP; // Reset FLASH_EOP + + FLASH->CR |= FLASH_CR_SER; // Sector Erase Enabled + FLASH->CR |= FLASH_CR_EOPIE; + M32(adr) = 0xFF; // Sector Address + __asm("DSB"); + + while (FLASH->SR & FLASH_SR_BSY) + { + IWDG->KR = 0xAAAA; // Reload IWDG + } + + FLASH->CR &= ~FLASH_CR_SER; // Sector Erase Disabled + FLASH->CR &= ~FLASH_CR_EOPIE; // Reset FLASH_EOPIE + +// if (FLASH_EOP != (FLASH->SR & FLASH_EOP)) { // Check for FLASH_SR_EOP +// FLASH->SR |= FLASH_EOP; +// return (1); // Failed +// } + + return (0); // Done +} +#endif + + +#ifdef FLASH_OPT +int EraseSector(unsigned long adr) +{ + /* erase sector is not needed for + - Flash Option bytes + - Flash One Time Programmable bytes + */ + return (0); // Done +} +#endif + +/* + * Blank Check Checks if Memory is Blank + * Parameter: adr: Block Start Address + * sz: Block Size (in bytes) + * pat: Block Pattern + * Return Value: 0 - OK, 1 - Failed + */ + +int BlankCheck(unsigned long adr, unsigned long sz, unsigned char pat) +{ + return (1); // Always Force Erase +} + + +/* + * Program Page in Flash Memory + * Parameter: adr: Page Start Address + * sz: Page Size + * buf: Page Data + * Return Value: 0 - OK, 1 - Failed + */ + +#ifdef FLASH_MEM +int ProgramPage(unsigned long adr, unsigned long sz, unsigned char *buf) +{ + + sz = (sz + 127) & ~127; // Adjust size for 32 Words + + FLASH->SR |= FLASH_SR_EOP; // Reset FLASH_EOP + + while (sz) + { + FLASH->CR |= FLASH_CR_PG; // Programming Enabled + FLASH->CR |= FLASH_CR_EOPIE; + + for (u8 i = 0; i < 32; i++) + { + + M32(adr + i * 4) = *((u32 *)(buf + i * 4)); // Program the first word of the Double Word + if (i == 30) + { + FLASH->CR |= FLASH_CR_PGSTRT; + } + } + __asm("DSB"); + + while (FLASH->SR & FLASH_SR_BSY) + { + IWDG->KR = 0xAAAA; // Reload IWDG + } + + FLASH->CR &= ~FLASH_CR_PG; // Programming Disabled + FLASH->CR &= ~FLASH_CR_EOPIE; // Reset FLASH_EOPIE + + //ΪÁËÄܹ»Program SRAM£¬ÆÁ±ÎÏÂÃæµÄEOP¼ì²é +// if (FLASH_EOP != (FLASH->SR & FLASH_EOP)) { // Check for FLASH_SR_EOP +// FLASH->SR |= FLASH_EOP; +// return (1); // Failed +// } + + adr += 128; // Go to next Page + buf += 128; + sz -= 128; + } + + return (0); // Done +} +#endif // PY32F030xx_64 || FLASH_OTP + +#ifdef FLASH_OPT +int ProgramPage(unsigned long adr, unsigned long sz, unsigned char *buf) +{ + + u32 optr; + u32 sdkr; + u32 wrpr; + + optr = *((u32 *)(buf + 0x00)); + sdkr = *((u32 *)(buf + 0x04)); + wrpr = *((u32 *)(buf + 0x0C)); + + FLASH->SR |= FLASH_SR_EOP; // Reset FLASH_EOP + + FLASH->OPTR = (optr & 0x0000FFFF); // Write OPTR values + FLASH->SDKR = (sdkr & 0x0000FFFF); // Write SDKR values + FLASH->WRPR = (wrpr & 0x0000FFFF); // Write WRPR values + + FLASH->CR |= FLASH_CR_OPTSTRT; + FLASH->CR |= FLASH_CR_EOPIE; + M32(0x40022080) = 0xFF; + __asm("DSB"); + + FLASH->CR &= ~FLASH_CR_OPTSTRT; // Programming Disabled + FLASH->CR &= ~FLASH_CR_EOPIE; // Reset FLASH_EOPIE + +#ifdef FLASH_OPT_OBL_LAUNCH + FLASH->CR |= FLASH_CR_OBL_LAUNCH; +#endif + + return (0); // Done +} +#endif // FLASH_OPT + + +/* + * Verify Flash Contents + * Parameter: adr: Start Address + * sz: Size (in bytes) + * buf: Data + * Return Value: (adr+sz) - OK, Failed Address + */ + +#ifdef FLASH_OPT +unsigned long Verify(unsigned long adr, unsigned long sz, unsigned char *buf) +{ + u32 optr; + u32 sdkr; + u32 wrpr; + + optr = *((u32 *)(buf + 0x00)); + sdkr = *((u32 *)(buf + 0x04)); + wrpr = *((u32 *)(buf + 0x0C)); + + if (M32(adr + 0x00) != optr) + { + return (adr + 0x00); + } + if (M32(adr + 0x04) != sdkr) + { + return (adr + 0x04); + } + if (M32(adr + 0x0C) != wrpr) + { + return (adr + 0x0C); + } + + return (adr + sz); +} +#endif // FLASH_OPT diff --git a/Misc/Flash/Sources/PY32F072xx/PY32F072xx.uvoptx b/Misc/Flash/Sources/PY32F072xx/PY32F072xx.uvoptx new file mode 100644 index 0000000..3f81e1b --- /dev/null +++ b/Misc/Flash/Sources/PY32F072xx/PY32F072xx.uvoptx @@ -0,0 +1,1254 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj; *.o + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + PY32F030xx_8 + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\Out\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 0 + + 255 + + 1 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 0 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + + + + + + + + + + + BIN\UL2CM3.DLL + + + + 0 + UL2CM3 + -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FN1 -FC800 -FD20000000 -FF0PY32F030xx_8 -FL02000 -FS08000000 -FP0($$Device:PY32F030x3$Flash\PY32F030xx_8.FLM) + + + 0 + ARMRTXEVENTFLAGS + -L70 -Z18 -C0 -M0 -T1 + + + 0 + DLGDARM + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0) + + + 0 + ARMDBGFLAGS + -T0 + + + + + 0 + + + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + 1 + 1 + 0 + 2 + 10000000 + + + + + + PY32F030xx_16 + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\Out\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 0 + + 255 + + 1 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 0 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + + + + + + + + + + + BIN\UL2CM3.DLL + + + + 0 + UL2CM3 + -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FN1 -FC800 -FD20000000 -FF0PY32F030xx_16 -FL04000 -FS08000000 -FP0($$Device:PY32F030x4$Flash\PY32F030xx_16.FLM) + + + 0 + ARMRTXEVENTFLAGS + -L70 -Z18 -C0 -M0 -T1 + + + 0 + DLGDARM + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0) + + + 0 + ARMDBGFLAGS + -T0 + + + + + 0 + + + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + 1 + 1 + 0 + 2 + 10000000 + + + + + + PY32F030xx_32 + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\Out\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 0 + + 255 + + 1 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 0 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + + + + + + + + + + + BIN\UL2CM3.DLL + + + + 0 + UL2CM3 + -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FN1 -FC1000 -FD20000000 -FF0PY32F030xx_32 -FL08000 -FS08000000 -FP0($$Device:PY32F030x6$Flash\PY32F030xx_32.FLM) + + + 0 + ARMRTXEVENTFLAGS + -L70 -Z18 -C0 -M0 -T1 + + + 0 + DLGDARM + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0) + + + 0 + ARMDBGFLAGS + -T0 + + + + + 0 + + + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + 1 + 1 + 0 + 2 + 10000000 + + + + + + PY32F030xx_48 + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\Out\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 0 + + 255 + + 1 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 0 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + + + + + + + + + + + BIN\UL2CM3.DLL + + + + 0 + UL2CM3 + -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FN1 -FC1000 -FD20000000 -FF0PY32F030xx_48 -FL0C000 -FS08000000 -FP0($$Device:PY32F030x7$Flash\PY32F030xx_48.FLM) + + + 0 + ARMRTXEVENTFLAGS + -L70 -Z18 -C0 -M0 -T1 + + + 0 + DLGDARM + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0) + + + 0 + ARMDBGFLAGS + -T0 + + + + + 0 + + + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + 1 + 1 + 0 + 2 + 10000000 + + + + + + PY32F030xx_64 + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\Out\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 0 + + 255 + + 1 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 0 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + + + + + + + + + + + BIN\UL2CM3.DLL + + + + 0 + UL2CM3 + -UAny -O206 -S8 -C0 -P00 -N00("") -D00(00000000) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC1000 -FN1 -FF0PY32F030xx_64 -FS08000000 -FL010000 -FP0($$Device:PY32F030x8$Flash\PY32F030xx_64.FLM) + + + 0 + ARMRTXEVENTFLAGS + -L70 -Z18 -C0 -M0 -T1 + + + 0 + DLGDARM + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0) + + + 0 + ARMDBGFLAGS + -T0 + + + + + 0 + + + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + 1 + 1 + 0 + 2 + 10000000 + + + + + + FLASH_OPT + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\Out\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 0 + + 255 + + 1 + 0 + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 0 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + + + + + + + + + + + BIN\UL2CM3.DLL + + + + 0 + UL2CM3 + -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FN1 -FC800 -FD20000000 -FF0PY32F030xx_8 -FL02000 -FS08000000 -FP0($$Device:PY32F030x3$Flash\PY32F030xx_8.FLM) + + + 0 + ARMRTXEVENTFLAGS + -L70 -Z18 -C0 -M0 -T1 + + + 0 + DLGDARM + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0) + + + 0 + ARMDBGFLAGS + -T0 + + + + + 0 + + + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + 1 + 1 + 0 + 2 + 10000000 + + + + + + PY32F072xx_128 + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\Out\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + 1 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 0 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + + + + + + + + + + + BIN\UL2CM3.DLL + + + + 0 + UL2CM3 + -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FN1 -FC1000 -FD20000000 -FF0PY32F030xx_64 -FL010000 -FS08000000 -FP0($$Device:PY32F030x8$Flash\PY32F030xx_64.FLM) + + + 0 + ARMRTXEVENTFLAGS + -L70 -Z18 -C0 -M0 -T1 + + + 0 + DLGDARM + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0) + + + 0 + ARMDBGFLAGS + -T0 + + + + + 0 + + + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + 1 + 1 + 0 + 2 + 10000000 + + + + + + Program Functions + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + .\FlashPrg.c + FlashPrg.c + 0 + 0 + + + + + Device Description + 1 + 0 + 0 + 0 + + 2 + 2 + 1 + 0 + 0 + 0 + .\FlashDev.c + FlashDev.c + 0 + 0 + + + +
diff --git a/Misc/Flash/Sources/PY32F072xx/PY32F072xx.uvprojx b/Misc/Flash/Sources/PY32F072xx/PY32F072xx.uvprojx new file mode 100644 index 0000000..2e9ca1f --- /dev/null +++ b/Misc/Flash/Sources/PY32F072xx/PY32F072xx.uvprojx @@ -0,0 +1,2789 @@ + + + + 2.1 + +
### uVision Project, (C) Keil Software
+ + + + PY32F030xx_8 + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::ARMCC + 5060750::V5.06 update 6 (build 750)::ARMCC + 0 + + + PY32F030x3 + Puya + Puya.PY32F0xx_DFP.1.0.3 + http://www.keil.com/pack/ + IRAM(0x20000000,0x00000800) IROM(0x08000000,0x00002000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F030xx_8 -FS08000000 -FL02000 -FP0($$Device:PY32F030x3$Flash\PY32F030xx_8.FLM)) + 0 + $$Device:PY32F030x3$Device\Include\py32f0xx.h + + + + + + + + + + $$Device:PY32F030x3$SVD\py32f030xx.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\Out\ + PY32F030xx_8 + 1 + 0 + 1 + 1 + 1 + .\Out\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 1 + 0 + cmd.exe /C copy "!L" ".\Out\@L.FLM" + + 0 + 0 + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + -REMAP + DARMCM1.DLL + -pCM0+ + SARMCM3.DLL + + TARMCM1.DLL + -pCM0+ + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + "Cortex-M0+" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 8 + 0 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x800 + + + 1 + 0x8000000 + 0x2000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x2000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x800 + + + 0 + 0x0 + 0x0 + + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 2 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + FLASH_MEM PY32F030xx_8 PY32F030x8 + + + + + + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + + + + .\Target.lin + + + --diag_suppress L6305 + + + + + + + + Program Functions + + + FlashPrg.c + 1 + .\FlashPrg.c + + + + + Device Description + + + FlashDev.c + 1 + .\FlashDev.c + + + + + + + PY32F030xx_16 + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::ARMCC + 5060750::V5.06 update 6 (build 750)::ARMCC + 0 + + + PY32F030x4 + Puya + Puya.PY32F0xx_DFP.1.0.3 + http://www.keil.com/pack/ + IRAM(0x20000000,0x00000800) IROM(0x08000000,0x00004000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F030xx_16 -FS08000000 -FL04000 -FP0($$Device:PY32F030x4$Flash\PY32F030xx_16.FLM)) + 0 + $$Device:PY32F030x4$Device\Include\py32f0xx.h + + + + + + + + + + $$Device:PY32F030x4$SVD\py32f030xx.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\Out\ + PY32F030xx_16 + 1 + 0 + 1 + 1 + 1 + .\Out\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 1 + 0 + cmd.exe /C copy "!L" ".\Out\@L.FLM" + + 0 + 0 + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + -REMAP + DARMCM1.DLL + -pCM0+ + SARMCM3.DLL + + TARMCM1.DLL + -pCM0+ + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + "Cortex-M0+" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 8 + 0 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x800 + + + 1 + 0x8000000 + 0x4000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x4000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x800 + + + 0 + 0x0 + 0x0 + + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 2 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + FLASH_MEM PY32F030xx_16 PY32F030x8 + + + + + + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + + + + .\Target.lin + + + --diag_suppress L6305 + + + + + + + + Program Functions + + + FlashPrg.c + 1 + .\FlashPrg.c + + + + + Device Description + + + FlashDev.c + 1 + .\FlashDev.c + + + + + + + PY32F030xx_32 + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::ARMCC + 5060750::V5.06 update 6 (build 750)::ARMCC + 0 + + + PY32F030x6 + Puya + Puya.PY32F0xx_DFP.1.0.3 + http://www.keil.com/pack/ + IRAM(0x20000000,0x00001000) IROM(0x08000000,0x00008000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0PY32F030xx_32 -FS08000000 -FL08000 -FP0($$Device:PY32F030x6$Flash\PY32F030xx_32.FLM)) + 0 + $$Device:PY32F030x6$Device\Include\py32f0xx.h + + + + + + + + + + $$Device:PY32F030x6$SVD\py32f030xx.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\Out\ + PY32F030xx_32 + 1 + 0 + 0 + 1 + 1 + .\Out\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 1 + 0 + cmd.exe /C copy "!L" ".\Out\@L.FLM" + + 0 + 0 + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + -REMAP + DARMCM1.DLL + -pCM0+ + SARMCM3.DLL + + TARMCM1.DLL + -pCM0+ + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + "Cortex-M0+" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 8 + 0 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x1000 + + + 1 + 0x8000000 + 0x8000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x8000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x1000 + + + 0 + 0x0 + 0x0 + + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 2 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + FLASH_MEM PY32F030xx_32 PY32F030x8 + + + + + + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + + + + .\Target.lin + + + --diag_suppress L6305 + + + + + + + + Program Functions + + + FlashPrg.c + 1 + .\FlashPrg.c + + + + + Device Description + + + FlashDev.c + 1 + .\FlashDev.c + + + + + + + PY32F030xx_48 + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::ARMCC + 5060750::V5.06 update 6 (build 750)::ARMCC + 0 + + + PY32F030x7 + Puya + Puya.PY32F0xx_DFP.1.0.3 + http://www.keil.com/pack/ + IRAM(0x20000000,0x00001800) IROM(0x08000000,0x0000C000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0PY32F030xx_48 -FS08000000 -FL0C000 -FP0($$Device:PY32F030x7$Flash\PY32F030xx_48.FLM)) + 0 + $$Device:PY32F030x7$Device\Include\py32f0xx.h + + + + + + + + + + $$Device:PY32F030x7$SVD\py32f030xx.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\Out\ + PY32F030xx_48 + 1 + 0 + 0 + 1 + 1 + .\Out\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 1 + 0 + cmd.exe /C copy "!L" ".\Out\@L.FLM" + + 0 + 0 + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + -REMAP + DARMCM1.DLL + -pCM0+ + SARMCM3.DLL + + TARMCM1.DLL + -pCM0+ + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + "Cortex-M0+" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 8 + 0 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x1800 + + + 1 + 0x8000000 + 0xc000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0xc000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x1800 + + + 0 + 0x0 + 0x0 + + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 2 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + FLASH_MEM PY32F030xx_48 PY32F030x8 + + + + + + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + + + + .\Target.lin + + + --diag_suppress L6305 + + + + + + + + Program Functions + + + FlashPrg.c + 1 + .\FlashPrg.c + + + + + Device Description + + + FlashDev.c + 1 + .\FlashDev.c + + + + + + + PY32F030xx_64 + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::ARMCC + 5060750::V5.06 update 6 (build 750)::ARMCC + 0 + + + PY32F030x8 + Puya + Puya.PY32F0xx_DFP.1.0.3 + http://www.keil.com/pack/ + IRAM(0x20000000,0x00002000) IROM(0x08000000,0x00010000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0PY32F030xx_64 -FS08000000 -FL010000 -FP0($$Device:PY32F030x8$Flash\PY32F030xx_64.FLM)) + 0 + $$Device:PY32F030x8$Device\Include\py32f0xx.h + + + + + + + + + + $$Device:PY32F030x8$SVD\py32f030xx.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\Out\ + PY32F030xx_64 + 1 + 0 + 0 + 1 + 1 + .\Out\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 1 + 0 + cmd.exe /C copy "!L" ".\Out\@L.FLM" + + 0 + 0 + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + -REMAP + DARMCM1.DLL + -pCM0+ + SARMCM3.DLL + + TARMCM1.DLL + -pCM0+ + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + "" () + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + "Cortex-M0+" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 8 + 0 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x2000 + + + 1 + 0x8000000 + 0x10000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x20000000 + 0x1000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20001000 + 0x1000 + + + 0 + 0x0 + 0x0 + + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 2 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + FLASH_MEM PY32F030xx_64 PY32F030x8 + + + + + + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + + + + .\Target.lin + + + --diag_suppress L6305 + + + + + + + + Program Functions + + + FlashPrg.c + 1 + .\FlashPrg.c + + + + + Device Description + + + FlashDev.c + 1 + .\FlashDev.c + + + + + + + FLASH_OPT + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::ARMCC + 5060750::V5.06 update 6 (build 750)::ARMCC + 0 + + + PY32F030x3 + Puya + Puya.PY32F0xx_DFP.1.0.3 + http://www.keil.com/pack/ + IRAM(0x20000000,0x00000800) IROM(0x08000000,0x00002000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F030xx_8 -FS08000000 -FL02000 -FP0($$Device:PY32F030x3$Flash\PY32F030xx_8.FLM)) + 0 + $$Device:PY32F030x3$Device\Include\py32f0xx.h + + + + + + + + + + $$Device:PY32F030x3$SVD\py32f030xx.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\Out\ + PY32F030xx_OPT + 1 + 0 + 0 + 1 + 1 + .\Out\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 1 + 0 + cmd.exe /C copy "!L" ".\Out\@L.FLM" + + 0 + 0 + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + -REMAP + DARMCM1.DLL + -pCM0+ + SARMCM3.DLL + + TARMCM1.DLL + -pCM0+ + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + "Cortex-M0+" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 8 + 0 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x800 + + + 1 + 0x8000000 + 0x2000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x2000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x800 + + + 0 + 0x0 + 0x0 + + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 2 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + FLASH_OPT PY32F030x8 + + + + + + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + + + + .\Target.lin + + + --diag_suppress L6305 + + + + + + + + Program Functions + + + FlashPrg.c + 1 + .\FlashPrg.c + + + + + Device Description + + + FlashDev.c + 1 + .\FlashDev.c + + + + + + + PY32F072xx_128 + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::ARMCC + 5060750::V5.06 update 6 (build 750)::ARMCC + 0 + + + PY32F030x8 + Puya + Puya.PY32F0xx_DFP.1.0.3 + http://www.keil.com/pack/ + IRAM(0x20000000,0x00002000) IROM(0x08000000,0x00010000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0PY32F030xx_64 -FS08000000 -FL010000 -FP0($$Device:PY32F030x8$Flash\PY32F030xx_64.FLM)) + 0 + $$Device:PY32F030x8$Device\Include\py32f0xx.h + + + + + + + + + + $$Device:PY32F030x8$SVD\py32f030xx.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\Out\ + PY32F030xx_8 + 1 + 0 + 1 + 1 + 1 + .\Out\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 1 + 0 + cmd.exe /C copy "!L" ".\Out\@L.FLM" + + 0 + 0 + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + -REMAP + DARMCM1.DLL + -pCM0+ + SARMCM3.DLL + + TARMCM1.DLL + -pCM0+ + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + "Cortex-M0+" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 8 + 0 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x2000 + + + 1 + 0x8000000 + 0x10000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x20000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x4000 + + + 0 + 0x0 + 0x0 + + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 2 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + FLASH_MEM PY32F072xB + + + + + + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + + + + .\Target.lin + + + --diag_suppress L6305 + + + + + + + + Program Functions + + + FlashPrg.c + 1 + .\FlashPrg.c + + + + + Device Description + + + FlashDev.c + 1 + .\FlashDev.c + + + + + + + + + + + + + +
diff --git a/Misc/Flash/Sources/PY32F072xx/Target.lin b/Misc/Flash/Sources/PY32F072xx/Target.lin new file mode 100644 index 0000000..3190469 --- /dev/null +++ b/Misc/Flash/Sources/PY32F072xx/Target.lin @@ -0,0 +1,22 @@ +; Linker Control File (scatter-loading) +; + +PRG 0 PI ; Programming Functions +{ + PrgCode +0 ; Code + { + * (+RO) + } + PrgData +0 ; Data + { + * (+RW,+ZI) + } +} + +DSCR +0 ; Device Description +{ + DevDscr +0 + { + FlashDev.o + } +} diff --git a/Misc/Flash/Sources/PY32F0xx/FlashDev.c b/Misc/Flash/Sources/PY32F0xx/FlashDev.c new file mode 100644 index 0000000..ce279a2 --- /dev/null +++ b/Misc/Flash/Sources/PY32F0xx/FlashDev.c @@ -0,0 +1,175 @@ +/* ----------------------------------------------------------------------------- + * Copyright (c) 2014 - 2019 ARM Ltd. + * + * This software is provided 'as-is', without any express or implied warranty. + * In no event will the authors be held liable for any damages arising from + * the use of this software. Permission is granted to anyone to use this + * software for any purpose, including commercial applications, and to alter + * it and redistribute it freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software in + * a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * + * 3. This notice may not be removed or altered from any source distribution. + * + * + * $Date: 2021-7-1 + * $Revision: V1.0.0 + * + * Project: Flash Device Description for Puya PY32F0xx Flash + * --------------------------------------------------------------------------- */ + +/* History: + * Version 1.0.0 + * Initial release + */ +#include "FlashOS.h" // FlashOS Structures + +#ifdef FLASH_MEM + +#ifdef PY32F0xx_8 +struct FlashDevice const FlashDevice = +{ + FLASH_DRV_VERS, // Driver Version, do not modify! + "PY32F0xx 8kB Flash", // Device Name (8kB) + ONCHIP, // Device Type + 0x08000000, // Device Start Address + 0x00002000, // Device Size in Bytes (8kB) + 0x80, // Programming Page Size + 0, // Reserved, must be 0 + 0xFF, // Initial Content of Erased Memory + 600, // Program Page Timeout 600 mSec + 6000, // Erase Sector Timeout 6000 mSec + +//Specify Size and Address of Sectors + 0x1000, 0x000000, // Sector Size 4kB (2 sectors) + SECTOR_END +}; +#endif // PY32F0xx_8 + +#ifdef PY32F0xx_16 +struct FlashDevice const FlashDevice = +{ + FLASH_DRV_VERS, // Driver Version, do not modify! + "PY32F0xx 16kB Flash", // Device Name (16kB) + ONCHIP, // Device Type + 0x08000000, // Device Start Address + 0x00004000, // Device Size in Bytes (16kB) + 0x80, // Programming Page Size + 0, // Reserved, must be 0 + 0xFF, // Initial Content of Erased Memory + 600, // Program Page Timeout 600 mSec + 6000, // Erase Sector Timeout 6000 mSec + +//Specify Size and Address of Sectors + 0x1000, 0x000000, // Sector Size 4kB (4 sectors) + SECTOR_END +}; +#endif // PY32F0xx_16 + +#ifdef PY32F0xx_20 +struct FlashDevice const FlashDevice = +{ + FLASH_DRV_VERS, // Driver Version, do not modify! + "PY32F0xx 20kB Flash", // Device Name (20kB) + ONCHIP, // Device Type + 0x08000000, // Device Start Address + 0x00005000, // Device Size in Bytes (20kB) + 0x80, // Programming Page Size + 0, // Reserved, must be 0 + 0xFF, // Initial Content of Erased Memory + 600, // Program Page Timeout 600 mSec + 6000, // Erase Sector Timeout 6000 mSec + +//Specify Size and Address of Sectors + 0x1000, 0x000000, // Sector Size 4kB (5 sectors) + SECTOR_END +}; +#endif // PY32F0xx_20 + +#ifdef PY32F0xx_32 +struct FlashDevice const FlashDevice = +{ + FLASH_DRV_VERS, // Driver Version, do not modify! + "PY32F0xx 32kB Flash", // Device Name (32kB) + ONCHIP, // Device Type + 0x08000000, // Device Start Address + 0x00008000, // Device Size in Bytes (32kB) + 0x80, // Programming Page Size + 0, // Reserved, must be 0 + 0xFF, // Initial Content of Erased Memory + 600, // Program Page Timeout 600 mSec + 6000, // Erase Sector Timeout 6000 mSec + +//Specify Size and Address of Sectors + 0x1000, 0x000000, // Sector Size 4kB (8 sectors) + SECTOR_END +}; +#endif // PY32F0xx_32 + +#ifdef PY32F0xx_48 +struct FlashDevice const FlashDevice = +{ + FLASH_DRV_VERS, // Driver Version, do not modify! + "PY32F0xx 48kB Flash", // Device Name (48kB) + ONCHIP, // Device Type + 0x08000000, // Device Start Address + 0x0000C000, // Device Size in Bytes (48kB) + 0x80, // Programming Page Size + 0, // Reserved, must be 0 + 0xFF, // Initial Content of Erased Memory + 600, // Program Page Timeout 600 mSec + 6000, // Erase Sector Timeout 6000 mSec + +//Specify Size and Address of Sectors + 0x1000, 0x000000, // Sector Size 4kB (12 sectors) + SECTOR_END +}; +#endif // PY32F0xx_48 + +#ifdef PY32F0xx_64 +struct FlashDevice const FlashDevice = +{ + FLASH_DRV_VERS, // Driver Version, do not modify! + "PY32F0xx 64kB Flash", // Device Name (64kB) + ONCHIP, // Device Type + 0x08000000, // Device Start Address + 0x00010000, // Device Size in Bytes (64kB) + 0x80, // Programming Page Size + 0, // Reserved, must be 0 + 0xFF, // Initial Content of Erased Memory + 600, // Program Page Timeout 600 mSec + 6000, // Erase Sector Timeout 6000 mSec + +//Specify Size and Address of Sectors + 0x1000, 0x000000, // Sector Size 4kB (16 sectors) + SECTOR_END +}; +#endif // PY32F0xx_64 + +#endif // FLASH_MEM + +#ifdef FLASH_OPT +struct FlashDevice const FlashDevice = +{ + FLASH_DRV_VERS, // Driver Version, do not modify! + "PY32F0xx Flash Options", // Device Name + ONCHIP, // Device Type + 0x1FFF0E80, // Device Start Address + 0x00000010, // Device Size in Bytes (16) + 0x10, // Programming Page Size + 0, // Reserved, must be 0 + 0xFF, // Initial Content of Erased Memory + 3000, // Program Page Timeout 3 Sec + 3000, // Erase Sector Timeout 3 Sec + +//Specify Size and Address of Sectors + 0x00010, 0x000000, // Sector Size 16B (1 sectors) + SECTOR_END +}; +#endif // FLASH_OPT diff --git a/Misc/Flash/Sources/PY32F0xx/FlashOS.h b/Misc/Flash/Sources/PY32F0xx/FlashOS.h new file mode 100644 index 0000000..87e97f6 --- /dev/null +++ b/Misc/Flash/Sources/PY32F0xx/FlashOS.h @@ -0,0 +1,84 @@ +/* ----------------------------------------------------------------------------- + * Copyright (c) 2014 ARM Ltd. + * + * This software is provided 'as-is', without any express or implied warranty. + * In no event will the authors be held liable for any damages arising from + * the use of this software. Permission is granted to anyone to use this + * software for any purpose, including commercial applications, and to alter + * it and redistribute it freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software in + * a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * + * 3. This notice may not be removed or altered from any source distribution. + * + * + * $Date: 14. Jan 2014 + * $Revision: V1.00 + * + * Project: FlashOS Headerfile for Flash drivers + * --------------------------------------------------------------------------- */ + +/* History: + * Version 1.00 + * Initial release + */ + +#define VERS 1 // Interface Version 1.01 + +#define UNKNOWN 0 // Unknown +#define ONCHIP 1 // On-chip Flash Memory +#define EXT8BIT 2 // External Flash Device on 8-bit Bus +#define EXT16BIT 3 // External Flash Device on 16-bit Bus +#define EXT32BIT 4 // External Flash Device on 32-bit Bus +#define EXTSPI 5 // External Flash Device on SPI + +#define SECTOR_NUM 512 // Max Number of Sector Items +#define PAGE_MAX 65536 // Max Page Size for Programming + +struct FlashSectors { + unsigned long szSector; // Sector Size in Bytes + unsigned long AddrSector; // Address of Sector +}; + +#define SECTOR_END 0xFFFFFFFF, 0xFFFFFFFF + +struct FlashDevice { + unsigned short Vers; // Version Number and Architecture + char DevName[128]; // Device Name and Description + unsigned short DevType; // Device Type: ONCHIP, EXT8BIT, EXT16BIT, ... + unsigned long DevAdr; // Default Device Start Address + unsigned long szDev; // Total Size of Device + unsigned long szPage; // Programming Page Size + unsigned long Res; // Reserved for future Extension + unsigned char valEmpty; // Content of Erased Memory + + unsigned long toProg; // Time Out of Program Page Function + unsigned long toErase; // Time Out of Erase Sector Function + + struct FlashSectors sectors[SECTOR_NUM]; +}; + +#define FLASH_DRV_VERS (0x0100+VERS) // Driver Version, do not modify! + +// Flash Programming Functions (Called by FlashOS) +extern int Init (unsigned long adr, // Initialize Flash + unsigned long clk, + unsigned long fnc); +extern int UnInit (unsigned long fnc); // De-initialize Flash +extern int BlankCheck (unsigned long adr, // Blank Check + unsigned long sz, + unsigned char pat); +extern int EraseChip (void); // Erase complete Device +extern int EraseSector (unsigned long adr); // Erase Sector Function +extern int ProgramPage (unsigned long adr, // Program Page Function + unsigned long sz, + unsigned char *buf); +extern unsigned long Verify (unsigned long adr, // Verify Function + unsigned long sz, + unsigned char *buf); diff --git a/Misc/Flash/Sources/PY32F0xx/FlashPrg.c b/Misc/Flash/Sources/PY32F0xx/FlashPrg.c new file mode 100644 index 0000000..a731782 --- /dev/null +++ b/Misc/Flash/Sources/PY32F0xx/FlashPrg.c @@ -0,0 +1,542 @@ +/* ----------------------------------------------------------------------------- + * Copyright (c) 2014 - 2019 ARM Ltd. + * + * This software is provided 'as-is', without any express or implied warranty. + * In no event will the authors be held liable for any damages arising from + * the use of this software. Permission is granted to anyone to use this + * software for any purpose, including commercial applications, and to alter + * it and redistribute it freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software in + * a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * + * 3. This notice may not be removed or altered from any source distribution. + * + * + * $Date: 2021-7-1 + * $Revision: V1.0.0 + * + * Project: Flash Programming Functions for Puya PY32F0xx Flash + * --------------------------------------------------------------------------- */ + +/* History: + * Version 1.0.0 + * Initial release + */ + +#include "FlashOS.h" // FlashOS Structures + +typedef volatile unsigned char vu8; +typedef unsigned char u8; +typedef volatile unsigned short vu16; +typedef unsigned short u16; +typedef volatile unsigned long vu32; +typedef unsigned long u32; + +#define M8(adr) (*((vu8 *) (adr))) +#define M16(adr) (*((vu16 *) (adr))) +#define M32(adr) (*((vu32 *) (adr))) + +#define SET_BIT(REG, BIT) ((REG) |= (BIT)) +#define CLEAR_BIT(REG, BIT) ((REG) &= ~(BIT)) +#define READ_BIT(REG, BIT) ((REG) & (BIT)) +#define CLEAR_REG(REG) ((REG) = (0x0)) +#define WRITE_REG(REG, VAL) ((REG) = (VAL)) +#define READ_REG(REG) ((REG)) +#define MODIFY_REG(REG, CLEARMASK, SETMASK) WRITE_REG((REG), (((READ_REG(REG)) & (~(CLEARMASK))) | (SETMASK))) + +// Peripheral Memory Map +#define RCC_BASE 0x40021000 +#define IWDG_BASE 0x40003000 +#define FLASH_BASE 0x40022000 + +#define RCC ((RCC_TypeDef*) RCC_BASE) +#define IWDG ((IWDG_TypeDef *) IWDG_BASE) +#define FLASH ((FLASH_TypeDef*) FLASH_BASE) + +typedef struct +{ + vu32 CR; /*!< RCC Clock Sources Control Register, Address offset: 0x00 */ + vu32 ICSCR; /*!< RCC Internal Clock Sources Calibration Register, Address offset: 0x04 */ +} RCC_TypeDef; + +// Independent WATCHDOG +typedef struct { + vu32 KR; /*!< IWDG Key register, Address offset: 0x00 */ + vu32 PR; /*!< IWDG Prescaler register, Address offset: 0x04 */ + vu32 RLR; /*!< IWDG Reload register, Address offset: 0x08 */ + vu32 SR; /*!< IWDG Status register, Address offset: 0x0C */ +} IWDG_TypeDef; + +// Flash Registers +typedef struct { + vu32 ACR; /*!< FLASH Access Control register, Address offset: 0x00 */ + vu32 RESERVED1; /*!< Reserved1, Address offset: 0x04 */ + vu32 KEYR; /*!< FLASH Key register, Address offset: 0x08 */ + vu32 OPTKEYR; /*!< FLASH Option Key register, Address offset: 0x0C */ + vu32 SR; /*!< FLASH Status register, Address offset: 0x10 */ + vu32 CR; /*!< FLASH Control register, Address offset: 0x14 */ + vu32 RESERVED2[2]; /*!< Reserved2, Address offset: 0x18-0x1C */ + vu32 OPTR; /*!< FLASH Option register, Address offset: 0x20 */ + vu32 SDKR; /*!< FLASH SDK address register, Address offset: 0x24 */ + vu32 RESERVED3; /*!< Reserved2, Address offset: 0x28 */ + vu32 WRPR; /*!< FLASH WRP address register, Address offset: 0x2C */ + vu32 RESERVED4[(0x90 - 0x2C) / 4 - 1]; + vu32 STCR; /*!< FLASH sleep time config register, Address offset: 0x90 */ + vu32 RESERVED5[(0x100 - 0x90) / 4 - 1]; + vu32 TS0; /*!< FLASH TS0 register, Address offset: 0x100 */ + vu32 TS1; /*!< FLASH TS1 register, Address offset: 0x104 */ + vu32 TS2P; /*!< FLASH TS2P register, Address offset: 0x108 */ + vu32 TPS3; /*!< FLASH TPS3 register, Address offset: 0x10C */ + vu32 TS3; /*!< FLASH TS3 register, Address offset: 0x110 */ + vu32 PERTPE; /*!< FLASH PERTPE register, Address offset: 0x114 */ + vu32 SMERTPE; /*!< FLASH SMERTPE register, Address offset: 0x118 */ + vu32 PRGTPE; /*!< FLASH PRGTPE register, Address offset: 0x11C */ + vu32 PRETPE; /*!< FLASH PRETPE register, Address offset: 0x120 */ +} FLASH_TypeDef; + + +// Flash Keys +#define FLASH_KEY1 ((unsigned int)0x45670123) +#define FLASH_KEY2 ((unsigned int)0xCDEF89AB) +#define FLASH_OPTKEY1 ((unsigned int)0x08192A3B) +#define FLASH_OPTKEY2 ((unsigned int)0x4C5D6E7F) + +// Flash Control Register definitions +#define FLASH_CR_PG_Pos (0U) +#define FLASH_CR_PG_Msk (0x1UL << FLASH_CR_PG_Pos) /*!< 0x00000001 */ +#define FLASH_CR_PG FLASH_CR_PG_Msk +#define FLASH_CR_PER_Pos (1U) +#define FLASH_CR_PER_Msk (0x1UL << FLASH_CR_PER_Pos) /*!< 0x00000002 */ +#define FLASH_CR_PER FLASH_CR_PER_Msk +#define FLASH_CR_MER_Pos (2U) +#define FLASH_CR_MER_Msk (0x1UL << FLASH_CR_MER_Pos) /*!< 0x00000004 */ +#define FLASH_CR_MER FLASH_CR_MER_Msk +#define FLASH_CR_SER_Pos (11U) +#define FLASH_CR_SER_Msk (0x1UL << FLASH_CR_SER_Pos) /*!< 0x00000800 */ +#define FLASH_CR_SER FLASH_CR_SER_Msk +#define FLASH_CR_OPTSTRT_Pos (17U) +#define FLASH_CR_OPTSTRT_Msk (0x1UL << FLASH_CR_OPTSTRT_Pos) /*!< 0x00020000 */ +#define FLASH_CR_OPTSTRT FLASH_CR_OPTSTRT_Msk +#define FLASH_CR_PGSTRT_Pos (19U) +#define FLASH_CR_PGSTRT_Msk (0x1UL << FLASH_CR_PGSTRT_Pos) /*!< 0x00080000 */ +#define FLASH_CR_PGSTRT FLASH_CR_PGSTRT_Msk +#define FLASH_CR_EOPIE_Pos (24U) +#define FLASH_CR_EOPIE_Msk (0x1UL << FLASH_CR_EOPIE_Pos) /*!< 0x01000000 */ +#define FLASH_CR_EOPIE FLASH_CR_EOPIE_Msk +#define FLASH_CR_ERRIE_Pos (25U) +#define FLASH_CR_ERRIE_Msk (0x1UL << FLASH_CR_ERRIE_Pos) /*!< 0x02000000 */ +#define FLASH_CR_ERRIE FLASH_CR_ERRIE_Msk +#define FLASH_CR_OBL_LAUNCH_Pos (27U) +#define FLASH_CR_OBL_LAUNCH_Msk (0x1UL << FLASH_CR_OBL_LAUNCH_Pos) /*!< 0x08000000 */ +#define FLASH_CR_OBL_LAUNCH FLASH_CR_OBL_LAUNCH_Msk +#define FLASH_CR_OPTLOCK_Pos (30U) +#define FLASH_CR_OPTLOCK_Msk (0x1UL << FLASH_CR_OPTLOCK_Pos) /*!< 0x40000000 */ +#define FLASH_CR_OPTLOCK FLASH_CR_OPTLOCK_Msk +#define FLASH_CR_LOCK_Pos (31U) +#define FLASH_CR_LOCK_Msk (0x1UL << FLASH_CR_LOCK_Pos) /*!< 0x80000000 */ +#define FLASH_CR_LOCK FLASH_CR_LOCK_Msk + +// Flash Status Register definitions +#define FLASH_SR_EOP_Pos (0U) +#define FLASH_SR_EOP_Msk (0x1UL << FLASH_SR_EOP_Pos) /*!< 0x00000001 */ +#define FLASH_SR_EOP FLASH_SR_EOP_Msk +#define FLASH_SR_WRPERR_Pos (4U) +#define FLASH_SR_WRPERR_Msk (0x1UL << FLASH_SR_WRPERR_Pos) /*!< 0x00000010 */ +#define FLASH_SR_WRPERR FLASH_SR_WRPERR_Msk +#define FLASH_SR_OPTVERR_Pos (15U) +#define FLASH_SR_OPTVERR_Msk (0x1UL << FLASH_SR_OPTVERR_Pos) /*!< 0x00008000 */ +#define FLASH_SR_OPTVERR FLASH_SR_OPTVERR_Msk +#define FLASH_SR_BSY_Pos (16U) +#define FLASH_SR_BSY_Msk (0x1UL << FLASH_SR_BSY_Pos) /*!< 0x00010000 */ +#define FLASH_SR_BSY FLASH_SR_BSY_Msk + +#define FLASH_OPTR_IWDG_SW_Pos (12U) +#define FLASH_OPTR_IWDG_SW_Msk (0x1UL << FLASH_OPTR_IWDG_SW_Pos) /*!< 0x00010000 */ +#define FLASH_OPTR_IWDG_SW FLASH_OPTR_IWDG_SW_Msk +#define FLASH_OPTR_WWDG_SW_Pos (13U) +#define FLASH_OPTR_WWDG_SW_Msk (0x1UL << FLASH_OPTR_WWDG_SW_Pos) /*!< 0x00080000 */ +#define FLASH_OPTR_WWDG_SW FLASH_OPTR_WWDG_SW_Msk + +u32 RCC_ICSCR_HSI_FS_RESTORE; +void InitRccAndFlashParam(void); +void UnInitRccAndFlashParam(void); + +/* + * Initialize Flash Programming Functions + * Parameter: adr: Device Base Address + * clk: Clock Frequency (Hz) + * fnc: Function Code (1 - Erase, 2 - Program, 3 - Verify) + * Return Value: 0 - OK, 1 - Failed + */ + +#ifdef FLASH_MEM +int Init(unsigned long adr, unsigned long clk, unsigned long fnc) +{ + FLASH->KEYR = FLASH_KEY1; // Unlock Flash + FLASH->KEYR = FLASH_KEY2; + + InitRccAndFlashParam(); + + FLASH->ACR = 0x00000000; // Zero Wait State, no Prefetch + FLASH->SR |= FLASH_SR_EOP; // Reset FLASH_EOP + + if ((FLASH->OPTR & FLASH_OPTR_IWDG_SW) == 0x00) // Test if IWDG is running (IWDG in HW mode) + { + // Set IWDG time out to ~32.768 second + IWDG->KR = 0x5555; // Enable write access to IWDG_PR and IWDG_RLR + IWDG->PR = 0x06; // Set prescaler to 256 + IWDG->RLR = 0xFFF; // Set reload value to 4095 + } + + return (0); +} +#endif + +#ifdef FLASH_OPT +int Init(unsigned long adr, unsigned long clk, unsigned long fnc) +{ + FLASH->KEYR = FLASH_KEY1; // Unlock Flash + FLASH->KEYR = FLASH_KEY2; + + InitRccAndFlashParam(); + + FLASH->OPTKEYR = FLASH_OPTKEY1; // Unlock Option Bytes + FLASH->OPTKEYR = FLASH_OPTKEY2; + + FLASH->ACR = 0x00000000; // Zero Wait State, no Prefetch + FLASH->SR |= FLASH_SR_EOP; // Reset FLASH_EOP + + + if ((FLASH->OPTR & 0x1000) == 0x00) // Test if IWDG is running (IWDG in HW mode) + { + // Set IWDG time out to ~32.768 second + IWDG->KR = 0x5555; // Enable write access to IWDG_PR and IWDG_RLR + IWDG->PR = 0x06; // Set prescaler to 256 + IWDG->RLR = 0xFFF; // Set reload value to 4095 + } + + return (0); +} +#endif + + +/* + * De-Initialize Flash Programming Functions + * Parameter: fnc: Function Code (1 - Erase, 2 - Program, 3 - Verify) + * Return Value: 0 - OK, 1 - Failed + */ + +#ifdef FLASH_MEM +int UnInit(unsigned long fnc) +{ + + UnInitRccAndFlashParam(); + + FLASH->CR |= FLASH_CR_LOCK; // Lock Flash + + return (0); +} +#endif + +#ifdef FLASH_OPT +int UnInit(unsigned long fnc) +{ + + UnInitRccAndFlashParam(); + + FLASH->CR |= FLASH_CR_LOCK; // Lock Flash + FLASH->CR |= FLASH_CR_OPTLOCK; // Lock Option Bytes + + return (0); +} +#endif + +/* + * Erase complete Flash Memory + * Return Value: 0 - OK, 1 - Failed + */ + +#ifdef FLASH_MEM +int EraseChip(void) +{ + + FLASH->SR |= FLASH_SR_EOP; // Reset FLASH_EOP + + FLASH->CR |= FLASH_CR_MER; // Mass Erase Enabled + FLASH->CR |= FLASH_CR_EOPIE; + M32(0x08000000) = 0xFF; + __asm("DSB"); + + while (FLASH->SR & FLASH_SR_BSY) + { + IWDG->KR = 0xAAAA; // Reload IWDG + } + + FLASH->CR &= ~FLASH_CR_MER; // Mass Erase Disabled + FLASH->CR &= ~FLASH_CR_EOPIE; // Reset FLASH_EOPIE + + if (FLASH_SR_EOP != (FLASH->SR & FLASH_SR_EOP)) // Check for FLASH_SR_EOP + { + FLASH->SR |= FLASH_SR_EOP; + return (1); // Failed + } + + return (0); // Done +} +#endif + +#ifdef FLASH_OPT +int EraseChip(void) +{ + + /* erase chip is not needed for + - Flash Option bytes + - Flash One Time Programmable bytes + */ + return (0); // Done +} +#endif + +/* + * Erase Sector in Flash Memory + * Parameter: adr: Sector Address + * Return Value: 0 - OK, 1 - Failed + */ + +#ifdef FLASH_MEM +int EraseSector(unsigned long adr) +{ + + FLASH->SR |= FLASH_SR_EOP; // Reset FLASH_EOP + + FLASH->CR |= FLASH_CR_SER; // Sector Erase Enabled + FLASH->CR |= FLASH_CR_EOPIE; + M32(adr) = 0xFF; // Sector Address + __asm("DSB"); + + while (FLASH->SR & FLASH_SR_BSY) + { + IWDG->KR = 0xAAAA; // Reload IWDG + } + + FLASH->CR &= ~FLASH_CR_SER; // Sector Erase Disabled + FLASH->CR &= ~FLASH_CR_EOPIE; // Reset FLASH_EOPIE + +// if (FLASH_EOP != (FLASH->SR & FLASH_EOP)) { // Check for FLASH_SR_EOP +// FLASH->SR |= FLASH_EOP; +// return (1); // Failed +// } + + return (0); // Done +} +#endif + + +#ifdef FLASH_OPT +int EraseSector(unsigned long adr) +{ + /* erase sector is not needed for + - Flash Option bytes + - Flash One Time Programmable bytes + */ + return (0); // Done +} +#endif + +/* + * Blank Check Checks if Memory is Blank + * Parameter: adr: Block Start Address + * sz: Block Size (in bytes) + * pat: Block Pattern + * Return Value: 0 - OK, 1 - Failed + */ + +int BlankCheck(unsigned long adr, unsigned long sz, unsigned char pat) +{ + return (1); // Always Force Erase +} + + +/* + * Program Page in Flash Memory + * Parameter: adr: Page Start Address + * sz: Page Size + * buf: Page Data + * Return Value: 0 - OK, 1 - Failed + */ + +#ifdef FLASH_MEM +int ProgramPage(unsigned long adr, unsigned long sz, unsigned char *buf) +{ + + sz = (sz + 127) & ~127; // Adjust size for 32 Words + + FLASH->SR |= FLASH_SR_EOP; // Reset FLASH_EOP + + while (sz) + { + FLASH->CR |= FLASH_CR_PG; // Programming Enabled + FLASH->CR |= FLASH_CR_EOPIE; + + for (u8 i = 0; i < 32; i++) + { + + M32(adr + i * 4) = *((u32 *)(buf + i * 4)); // Program the first word of the Double Word + if (i == 30) + { + FLASH->CR |= FLASH_CR_PGSTRT; + } + } + __asm("DSB"); + + while (FLASH->SR & FLASH_SR_BSY) + { + IWDG->KR = 0xAAAA; // Reload IWDG + } + + FLASH->CR &= ~FLASH_CR_PG; // Programming Disabled + FLASH->CR &= ~FLASH_CR_EOPIE; // Reset FLASH_EOPIE + +// if (FLASH_EOP != (FLASH->SR & FLASH_EOP)) { // Check for FLASH_SR_EOP +// FLASH->SR |= FLASH_EOP; +// return (1); // Failed +// } + + adr += 128; // Go to next Page + buf += 128; + sz -= 128; + } + + return (0); // Done +} +#endif // FLASH_MEM + +#ifdef FLASH_OPT +int ProgramPage(unsigned long adr, unsigned long sz, unsigned char *buf) +{ + u32 optr; + u32 sdkr; + u32 wrpr; + + optr = *((u32 *)(buf + 0x00)); + sdkr = *((u32 *)(buf + 0x04)); + wrpr = *((u32 *)(buf + 0x0C)); + + FLASH->SR |= FLASH_SR_EOP; // Reset FLASH_EOP + + FLASH->OPTR = (optr & 0x0000FFFF); // Write OPTR values + FLASH->SDKR = (sdkr & 0x0000FFFF); // Write SDKR values + FLASH->WRPR = (wrpr & 0x0000FFFF); // Write WRPR values + + FLASH->CR |= FLASH_CR_OPTSTRT; + FLASH->CR |= FLASH_CR_EOPIE; + M32(0x40022080) = 0xFF; + __asm("DSB"); + + FLASH->CR &= ~FLASH_CR_OPTSTRT; // Programming Disabled + FLASH->CR &= ~FLASH_CR_EOPIE; // Reset FLASH_EOPIE + + //FLASH->CR |= FLASH_CR_OBL_LAUNCH; + + return (0); // Done +} +#endif // FLASH_OPT + + +/* + * Verify Flash Contents + * Parameter: adr: Start Address + * sz: Size (in bytes) + * buf: Data + * Return Value: (adr+sz) - OK, Failed Address + */ + +#ifdef FLASH_OPT +unsigned long Verify(unsigned long adr, unsigned long sz, unsigned char *buf) +{ + u32 optr; + u32 sdkr; + u32 wrpr; + + optr = *((u32 *)(buf + 0x00)); + sdkr = *((u32 *)(buf + 0x04)); + wrpr = *((u32 *)(buf + 0x0C)); + + if (M32(adr + 0x00) != optr) + { + return (adr + 0x00); + } + if (M32(adr + 0x04) != sdkr) + { + return (adr + 0x04); + } + if (M32(adr + 0x0C) != wrpr) + { + return (adr + 0x0C); + } + + return (adr + sz); +} +#endif // FLASH_OPT + + +#define RCC_CR_HSIRDY_Pos (10U) +#define RCC_CR_HSIRDY_Msk (0x1UL << RCC_CR_HSIRDY_Pos) /*!< 0x00000400 */ +#define RCC_CR_HSIRDY RCC_CR_HSIRDY_Msk /*!< Internal High Speed clock ready flag */ +#define RCC_ICSCR_HSI_TRIM_Pos (0U) +#define RCC_ICSCR_HSI_TRIM_Msk (0x1FFFUL << RCC_ICSCR_HSI_TRIM_Pos) /*!< 0x00001FFF */ +#define RCC_ICSCR_HSI_TRIM RCC_ICSCR_HSI_TRIM_Msk /*!< HSITRIM[14:8] bits */ +#define RCC_ICSCR_HSI_FS_Pos (13U) +#define RCC_ICSCR_HSI_FS_Msk (0x7UL << RCC_ICSCR_HSI_FS_Pos) /*!< 0x0000E000 */ +#define RCC_ICSCR_HSI_FS RCC_ICSCR_HSI_FS_Msk /*!< HSIFS[15:13] bits */ +#define RCC_ICSCR_HSI_FS_0 (0x01UL << RCC_ICSCR_HSI_FS_Pos) /*!< 0x00002000 */ +#define RCC_ICSCR_HSI_FS_1 (0x02UL << RCC_ICSCR_HSI_FS_Pos) /*!< 0x00004000 */ +#define RCC_ICSCR_HSI_FS_2 (0x04UL << RCC_ICSCR_HSI_FS_Pos) /*!< 0x00008000 */ + +void InitRccAndFlashParam(void) +{ + RCC_ICSCR_HSI_FS_RESTORE = READ_BIT(RCC->ICSCR, RCC_ICSCR_HSI_FS); + MODIFY_REG(RCC->ICSCR, RCC_ICSCR_HSI_FS, RCC_ICSCR_HSI_FS_2);//HSI_24MHz + MODIFY_REG(RCC->ICSCR, RCC_ICSCR_HSI_TRIM, M32(0x1FFF0F10)&RCC_ICSCR_HSI_TRIM); + while (RCC_CR_HSIRDY != READ_BIT(RCC->CR, RCC_CR_HSIRDY)); + + FLASH->TS0 = ((M32(0x1FFF0F1C + 4 * 0x14) >> 0) & 0x000000FF); + FLASH->TS3 = ((M32(0x1FFF0F1C + 4 * 0x14) >> 8) & 0x000000FF); + FLASH->TS1 = ((M32(0x1FFF0F1C + 4 * 0x14) >> 16) & 0x000001FF); + FLASH->TS2P = ((M32(0x1FFF0F20 + 4 * 0x14) >> 0) & 0x000000FF); + FLASH->TPS3 = ((M32(0x1FFF0F20 + 4 * 0x14) >> 16) & 0x000007FF); + FLASH->PERTPE = ((M32(0x1FFF0F24 + 4 * 0x14) >> 0) & 0x0001FFFF); + FLASH->SMERTPE = ((M32(0x1FFF0F28 + 4 * 0x14) >> 0) & 0x0001FFFF); + FLASH->PRGTPE = ((M32(0x1FFF0F2C + 4 * 0x14) >> 0) & 0x0000FFFF); + FLASH->PRETPE = ((M32(0x1FFF0F2C + 4 * 0x14) >> 16) & 0x0000FFFF); +} + +void UnInitRccAndFlashParam(void) +{ + MODIFY_REG(RCC->ICSCR, RCC_ICSCR_HSI_FS, RCC_ICSCR_HSI_FS_RESTORE); + switch (RCC_ICSCR_HSI_FS_RESTORE) + { + case RCC_ICSCR_HSI_FS_2://24MHz + MODIFY_REG(RCC->ICSCR, RCC_ICSCR_HSI_TRIM, M32(0x1FFF0F10)&RCC_ICSCR_HSI_TRIM); + break; + case (RCC_ICSCR_HSI_FS_1|RCC_ICSCR_HSI_FS_0)://22.12MHz + MODIFY_REG(RCC->ICSCR, RCC_ICSCR_HSI_TRIM, M32(0x1FFF0F0C)&RCC_ICSCR_HSI_TRIM); + break; + case RCC_ICSCR_HSI_FS_1://16MHz + MODIFY_REG(RCC->ICSCR, RCC_ICSCR_HSI_TRIM, M32(0x1FFF0F08)&RCC_ICSCR_HSI_TRIM); + break; + case RCC_ICSCR_HSI_FS_0://8MHz + MODIFY_REG(RCC->ICSCR, RCC_ICSCR_HSI_TRIM, M32(0x1FFF0F04)&RCC_ICSCR_HSI_TRIM); + break; + default://4MHz + MODIFY_REG(RCC->ICSCR, RCC_ICSCR_HSI_TRIM, M32(0x1FFF0F00)&RCC_ICSCR_HSI_TRIM); + break; + } + while (RCC_CR_HSIRDY != READ_BIT(RCC->CR, RCC_CR_HSIRDY)); +} diff --git a/Misc/Flash/Sources/PY32F0xx/PY32F0xx.uvoptx b/Misc/Flash/Sources/PY32F0xx/PY32F0xx.uvoptx new file mode 100644 index 0000000..6f8bd7c --- /dev/null +++ b/Misc/Flash/Sources/PY32F0xx/PY32F0xx.uvoptx @@ -0,0 +1,1205 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj; *.o + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + PY32F0xx_8 + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\Out\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 7 + + 1 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 0 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + + + + + + + + + + + BIN\UL2CM3.DLL + + + + 0 + UL2CM3 + -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FC1000 -FD20000000 + + + 0 + ARMRTXEVENTFLAGS + -L70 -Z18 -C0 -M0 -T1 + + + 0 + DLGDARM + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0) + + + 0 + ARMDBGFLAGS + -T0 + + + + + 0 + + + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + + + + PY32F0xx_16 + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\Out\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 0 + + 7 + + 1 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 0 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + + + + + + + + + + + BIN\UL2CM3.DLL + + + + 0 + UL2CM3 + -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FC1000 -FD20000000 + + + 0 + ARMRTXEVENTFLAGS + -L70 -Z18 -C0 -M0 -T1 + + + 0 + DLGDARM + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0) + + + 0 + ARMDBGFLAGS + -T0 + + + + + 0 + + + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + + + + PY32F0xx_20 + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\Out\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 0 + + 7 + + 1 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 0 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + + + + + + + + + + + BIN\UL2CM3.DLL + + + + 0 + UL2CM3 + -UAny -O206 -S8 -C0 -P00 -N00("") -D00(00000000) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FC1000 -FD20000000 + + + 0 + ARMRTXEVENTFLAGS + -L70 -Z18 -C0 -M0 -T1 + + + 0 + DLGDARM + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0) + + + 0 + ARMDBGFLAGS + -T0 + + + + + 0 + + + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + + + + PY32F0xx_32 + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\Out\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 0 + + 7 + + 1 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 0 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + + + + + + + + + + + BIN\UL2CM3.DLL + + + + 0 + UL2CM3 + -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FC1000 -FD20000000 + + + 0 + ARMRTXEVENTFLAGS + -L70 -Z18 -C0 -M0 -T1 + + + 0 + DLGDARM + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0) + + + 0 + ARMDBGFLAGS + -T0 + + + + + 0 + + + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + + + + PY32F0xx_48 + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\Out\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 0 + + 7 + + 1 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 0 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + + + + + + + + + + + BIN\UL2CM3.DLL + + + + 0 + UL2CM3 + -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FC1000 -FD20000000 + + + 0 + ARMRTXEVENTFLAGS + -L70 -Z18 -C0 -M0 -T1 + + + 0 + DLGDARM + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0) + + + 0 + ARMDBGFLAGS + -T0 + + + + + 0 + + + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + + + + PY32F0xx_64 + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\Out\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 0 + + 7 + + 1 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 0 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + + + + + + + + + + + BIN\UL2CM3.DLL + + + + 0 + UL2CM3 + -UAny -O206 -S8 -C0 -P00 -N00("") -D00(00000000) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FC1000 -FD20000000 + + + 0 + ARMRTXEVENTFLAGS + -L70 -Z18 -C0 -M0 -T1 + + + 0 + DLGDARM + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0) + + + 0 + ARMDBGFLAGS + -T0 + + + + + 0 + + + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + + + + FLASH_OPT + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\Out\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 0 + + 7 + + 1 + 0 + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 0 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + + + + + + + + + + + BIN\UL2CM3.DLL + + + + 0 + UL2CM3 + -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FC1000 -FD20000000 + + + 0 + ARMRTXEVENTFLAGS + -L70 -Z18 -C0 -M0 -T1 + + + 0 + DLGDARM + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0) + + + 0 + ARMDBGFLAGS + -T0 + + + + + 0 + + + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + + + + Program Functions + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + .\FlashPrg.c + FlashPrg.c + 0 + 0 + + + + + Device Description + 1 + 0 + 0 + 0 + + 2 + 2 + 1 + 1 + 0 + 0 + .\FlashDev.c + FlashDev.c + 0 + 0 + + + +
diff --git a/Misc/Flash/Sources/PY32F0xx/PY32F0xx.uvprojx b/Misc/Flash/Sources/PY32F0xx/PY32F0xx.uvprojx new file mode 100644 index 0000000..6d6e718 --- /dev/null +++ b/Misc/Flash/Sources/PY32F0xx/PY32F0xx.uvprojx @@ -0,0 +1,2782 @@ + + + + 2.1 + +
### uVision Project, (C) Keil Software
+ + + + PY32F0xx_8 + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::ARMCC + 0 + + + ARMCM0P + ARM + ARM.CMSIS.5.5.1 + http://www.keil.com/pack/ + IRAM(0x20000000,0x00020000) IROM(0x00000000,0x00040000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ESEL ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000) + 0 + $$Device:ARMCM0P$Device\ARM\ARMCM0plus\Include\ARMCM0plus.h + + + + + + + + + + + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\Out\ + PY32F0xx_8 + 1 + 0 + 0 + 1 + 1 + .\Out\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 1 + 0 + cmd.exe /C copy "!L" ".\Out\@L.FLM" + + 0 + 0 + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + + DARMCM1.DLL + -pCM0+ + SARMCM3.DLL + + TARMCM1.DLL + -pCM0+ + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + "Cortex-M0+" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 8 + 0 + 1 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x20000 + + + 1 + 0x0 + 0x40000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x40000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x20000 + + + 0 + 0x0 + 0x0 + + + + + + 0 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 2 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + FLASH_MEM PY32F0xx_8 + + + + + + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + + + + .\Target.lin + + + --diag_suppress L6305 + + + + + + + + Program Functions + + + FlashPrg.c + 1 + .\FlashPrg.c + + + + + Device Description + + + FlashDev.c + 1 + .\FlashDev.c + + + + + + + PY32F0xx_16 + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::ARMCC + 0 + + + ARMCM0P + ARM + ARM.CMSIS.5.5.1 + http://www.keil.com/pack/ + IRAM(0x20000000,0x00020000) IROM(0x00000000,0x00040000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ESEL ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000) + 0 + $$Device:ARMCM0P$Device\ARM\ARMCM0plus\Include\ARMCM0plus.h + + + + + + + + + + + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\Out\ + PY32F0xx_16 + 1 + 0 + 0 + 1 + 1 + .\Out\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 1 + 0 + cmd.exe /C copy "!L" ".\Out\@L.FLM" + + 0 + 0 + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + + DARMCM1.DLL + -pCM0+ + SARMCM3.DLL + + TARMCM1.DLL + -pCM0+ + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + "Cortex-M0+" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 8 + 0 + 1 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x20000 + + + 1 + 0x0 + 0x40000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x40000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x20000 + + + 0 + 0x0 + 0x0 + + + + + + 0 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 2 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + FLASH_MEM PY32F0xx_16 + + + + + + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + + + + .\Target.lin + + + --diag_suppress L6305 + + + + + + + + Program Functions + + + FlashPrg.c + 1 + .\FlashPrg.c + + + + + Device Description + + + FlashDev.c + 1 + .\FlashDev.c + + + + + + + PY32F0xx_20 + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::ARMCC + 0 + + + ARMCM0P + ARM + ARM.CMSIS.5.5.1 + http://www.keil.com/pack/ + IRAM(0x20000000,0x00020000) IROM(0x00000000,0x00040000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ESEL ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000) + 0 + $$Device:ARMCM0P$Device\ARM\ARMCM0plus\Include\ARMCM0plus.h + + + + + + + + + + + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\Out\ + PY32F0xx_20 + 1 + 0 + 0 + 1 + 1 + .\Out\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 1 + 0 + cmd.exe /C copy "!L" ".\Out\@L.FLM" + + 0 + 0 + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + + DARMCM1.DLL + -pCM0+ + SARMCM3.DLL + + TARMCM1.DLL + -pCM0+ + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + "Cortex-M0+" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 8 + 0 + 1 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x20000 + + + 1 + 0x0 + 0x40000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x40000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x20000 + + + 0 + 0x0 + 0x0 + + + + + + 0 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 2 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + FLASH_MEM PY32F0xx_20 + + + + + + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + + + + .\Target.lin + + + --diag_suppress L6305 + + + + + + + + Program Functions + + + FlashPrg.c + 1 + .\FlashPrg.c + + + + + Device Description + + + FlashDev.c + 1 + .\FlashDev.c + + + + + + + PY32F0xx_32 + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::ARMCC + 0 + + + ARMCM0P + ARM + ARM.CMSIS.5.5.1 + http://www.keil.com/pack/ + IRAM(0x20000000,0x00020000) IROM(0x00000000,0x00040000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ESEL ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000) + 0 + $$Device:ARMCM0P$Device\ARM\ARMCM0plus\Include\ARMCM0plus.h + + + + + + + + + + + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\Out\ + PY32F0xx_32 + 1 + 0 + 0 + 1 + 1 + .\Out\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 1 + 0 + cmd.exe /C copy "!L" ".\Out\@L.FLM" + + 0 + 0 + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + + DARMCM1.DLL + -pCM0+ + SARMCM3.DLL + + TARMCM1.DLL + -pCM0+ + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + "Cortex-M0+" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 8 + 0 + 1 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x20000 + + + 1 + 0x0 + 0x40000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x40000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x20000 + + + 0 + 0x0 + 0x0 + + + + + + 0 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 2 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + FLASH_MEM PY32F0xx_32 + + + + + + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + + + + .\Target.lin + + + --diag_suppress L6305 + + + + + + + + Program Functions + + + FlashPrg.c + 1 + .\FlashPrg.c + + + + + Device Description + + + FlashDev.c + 1 + .\FlashDev.c + + + + + + + PY32F0xx_48 + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::ARMCC + 0 + + + ARMCM0P + ARM + ARM.CMSIS.5.5.1 + http://www.keil.com/pack/ + IRAM(0x20000000,0x00020000) IROM(0x00000000,0x00040000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ESEL ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000) + 0 + $$Device:ARMCM0P$Device\ARM\ARMCM0plus\Include\ARMCM0plus.h + + + + + + + + + + + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\Out\ + PY32F0xx_48 + 1 + 0 + 0 + 1 + 1 + .\Out\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 1 + 0 + cmd.exe /C copy "!L" ".\Out\@L.FLM" + + 0 + 0 + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + + DARMCM1.DLL + -pCM0+ + SARMCM3.DLL + + TARMCM1.DLL + -pCM0+ + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + "Cortex-M0+" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 8 + 0 + 1 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x20000 + + + 1 + 0x0 + 0x40000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x40000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x20000 + + + 0 + 0x0 + 0x0 + + + + + + 0 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 2 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + FLASH_MEM PY32F0xx_48 + + + + + + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + + + + .\Target.lin + + + --diag_suppress L6305 + + + + + + + + Program Functions + + + FlashPrg.c + 1 + .\FlashPrg.c + + + + + Device Description + + + FlashDev.c + 1 + .\FlashDev.c + + + + + + + PY32F0xx_64 + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::ARMCC + 0 + + + ARMCM0P + ARM + ARM.CMSIS.5.5.1 + http://www.keil.com/pack/ + IRAM(0x20000000,0x00020000) IROM(0x00000000,0x00040000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ESEL ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000) + 0 + $$Device:ARMCM0P$Device\ARM\ARMCM0plus\Include\ARMCM0plus.h + + + + + + + + + + + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\Out\ + PY32F0xx_64 + 1 + 0 + 0 + 1 + 1 + .\Out\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 1 + 0 + cmd.exe /C copy "!L" ".\Out\@L.FLM" + + 0 + 0 + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + + DARMCM1.DLL + -pCM0+ + SARMCM3.DLL + + TARMCM1.DLL + -pCM0+ + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + "Cortex-M0+" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 8 + 0 + 1 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x20000 + + + 1 + 0x0 + 0x40000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x40000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x20000 + + + 0 + 0x0 + 0x0 + + + + + + 0 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 2 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + FLASH_MEM PY32F0xx_64 + + + + + + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + + + + .\Target.lin + + + --diag_suppress L6305 + + + + + + + + Program Functions + + + FlashPrg.c + 1 + .\FlashPrg.c + + + + + Device Description + + + FlashDev.c + 1 + .\FlashDev.c + + + + + + + FLASH_OPT + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::ARMCC + 0 + + + ARMCM0P + ARM + ARM.CMSIS.5.5.1 + http://www.keil.com/pack/ + IRAM(0x20000000,0x00020000) IROM(0x00000000,0x00040000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ESEL ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000) + 0 + $$Device:ARMCM0P$Device\ARM\ARMCM0plus\Include\ARMCM0plus.h + + + + + + + + + + + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\Out\ + PY32F0xx_OPT + 1 + 0 + 0 + 1 + 1 + .\Out\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 1 + 0 + cmd.exe /C copy "!L" ".\Out\@L.FLM" + + 0 + 0 + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + + DARMCM1.DLL + -pCM0+ + SARMCM3.DLL + + TARMCM1.DLL + -pCM0+ + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + "Cortex-M0+" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 8 + 0 + 1 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x20000 + + + 1 + 0x0 + 0x40000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x40000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x20000 + + + 0 + 0x0 + 0x0 + + + + + + 0 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 2 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + FLASH_OPT + + + + + + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + + + + .\Target.lin + + + --diag_suppress L6305 + + + + + + + + Program Functions + + + FlashPrg.c + 1 + .\FlashPrg.c + + + + + Device Description + + + FlashDev.c + 1 + .\FlashDev.c + + + + + + + + + + + + + +
diff --git a/Misc/Flash/Sources/PY32F0xx/Target.lin b/Misc/Flash/Sources/PY32F0xx/Target.lin new file mode 100644 index 0000000..3190469 --- /dev/null +++ b/Misc/Flash/Sources/PY32F0xx/Target.lin @@ -0,0 +1,22 @@ +; Linker Control File (scatter-loading) +; + +PRG 0 PI ; Programming Functions +{ + PrgCode +0 ; Code + { + * (+RO) + } + PrgData +0 ; Data + { + * (+RW,+ZI) + } +} + +DSCR +0 ; Device Description +{ + DevDscr +0 + { + FlashDev.o + } +} diff --git a/Misc/JLinkDevices.xml b/Misc/JLinkDevices.xml old mode 100755 new mode 100644 diff --git a/Misc/Puya.PY32F0xx_DFP.1.1.0.pack b/Misc/Puya.PY32F0xx_DFP.1.1.3.pack old mode 100755 new mode 100644 similarity index 99% rename from Misc/Puya.PY32F0xx_DFP.1.1.0.pack rename to Misc/Puya.PY32F0xx_DFP.1.1.3.pack index 19c1de6..ae8e53c Binary files a/Misc/Puya.PY32F0xx_DFP.1.1.0.pack and b/Misc/Puya.PY32F0xx_DFP.1.1.3.pack differ diff --git a/Misc/py32f002axx.svd b/Misc/SVD/py32f002axx.svd similarity index 96% rename from Misc/py32f002axx.svd rename to Misc/SVD/py32f002axx.svd index 1679653..9db4822 100644 --- a/Misc/py32f002axx.svd +++ b/Misc/SVD/py32f002axx.svd @@ -1,7707 +1,7978 @@ - - - - Puya - Puya - PY32F0xx_DFP - - PY32F0 - 1.0.0 - Arm 32-bit Cortex-M0+ Microcontroller based device, CPU clock up to 48 MHz. - - - - CM0+ - r0p1 - little - false - false - 4 - false - - - - 8 - 32 - 32 - read-write - 0x00000000 - 0xFFFFFFFF - - - ADC - Analog to Digital Converter - ADC - 0x40012400 - - 0x0 - 0x400 - registers - - - ADC - ADC Interrupt through EXTI Lines 17 and 18 - 12 - - - - ISR - ISR - ADC interrupt and status register - 0x0 - 0x20 - read-write - 0x00000000 - - - AWD - ADC analog watchdog flag - 7 - 1 - - - OVR - ADC group regular overrun - flag - 4 - 1 - - - EOSEQ - 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 - - - - - IER - IER - ADC interrupt enable register - 0x4 - 0x20 - read-write - 0x00000000 - - - AWDIE - ADC analog watchdog - interrupt - 7 - 1 - - - OVRIE - ADC group regular overrun - interrupt - 4 - 1 - - - EOSEQIE - 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 - - - - - CR - CR - ADC control register - 0x8 - 0x20 - read-write - 0x00000000 - - - ADCAL - ADC group regular conversion - calibration - 31 - 1 - - - ADSTP - ADC group regular conversion - stop - 4 - 1 - - - ADSTART - ADC group regular conversion - start - 2 - 1 - - - ADEN - ADC enable - 0 - 1 - - - - - CFGR1 - CFGR1 - ADC configuration register 1 - 0xC - 0x20 - read-write - 0x00000000 - - - AWDCH - ADC analog watchdog monitored channel - selection - 26 - 4 - - - AWDEN - ADC analog watchdog enable on scope - ADC group regular - 23 - 1 - - - AWDSGL - ADC analog watchdog monitoring a - single channel or all channels - 22 - 1 - - - DISCEN - ADC group regular sequencer - discontinuous mode - 16 - 1 - - - WAIT - Wait conversion mode - 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 - 3 - - - ALIGN - ADC data alignement - 5 - 1 - - - RESSEL - ADC data resolution - 3 - 2 - - - SCANDIR - Scan sequence direction - 2 - 1 - - - - - CFGR2 - CFGR2 - ADC configuration register 2 - 0x10 - 0x20 - read-write - 0x00000000 - - - CKMODE - ADC clock mode - 28 - 4 - - - - - SMPR - SMPR - ADC sampling time register - 0x14 - 0x20 - read-write - 0x00000000 - - - SMP - Sampling time selection - 0 - 3 - - - - - TR - TR - ADC analog watchdog 1 threshold register - 0x20 - 0x20 - read-write - 0x0FFF0000 - - - HT - ADC analog watchdog threshold - high - 16 - 12 - - - LT - ADC analog watchdog threshold - low - 0 - 12 - - - - - CHSELR - CHSELR - ADC group regular sequencer register - 0x28 - 0x20 - read-write - 0x0FFF0000 - - - CHSEL12 - Channel-12 selection - 12 - 1 - - - CHSEL11 - Channel-11 selection - 11 - 1 - - - CHSEL9 - Channel-9 selection - 9 - 1 - - - CHSEL8 - Channel-8 selection - 8 - 1 - - - CHSEL7 - Channel-7 selection - 7 - 1 - - - CHSEL6 - Channel-6 selection - 6 - 1 - - - CHSEL5 - Channel-5 selection - 5 - 1 - - - CHSEL4 - Channel-4 selection - 4 - 1 - - - CHSEL3 - Channel-3 selection - 3 - 1 - - - CHSEL2 - Channel-2 selection - 2 - 1 - - - CHSEL1 - Channel-1 selection - 1 - 1 - - - CHSEL0 - Channel-0 selection - 0 - 1 - - - - - DR - DR - ADC group regular data register - 0x40 - 0x20 - read-only - 0x00000000 - - - DATA - ADC group regular conversion - data - 0 - 16 - - - - - CCSR - CCSR - ADC calibration configuration and status register - 0x44 - 0x20 - read-write - 0x00000000 - - - CALON - Calibration flag - 31 - 1 - read-only - - - CALFAIL - Calibration fail flag - 30 - 1 - - - CALSET - Calibration factor selection - 15 - 1 - - - CALSMP - Calibration sample time selection - 12 - 2 - - - CALSEL - Calibration contents selection - 11 - 1 - - - - - CALRR1 - CALRR1 - ADC calibration result register 1 - 0x48 - 0x20 - read-only - 0x00000000 - - - CALBOUT - offset result - 16 - 7 - - - CALC5OUT - C5 result - 8 - 8 - - - CALC4OUT - C4 result - 0 - 8 - - - - - CALRR2 - CALRR2 - ADC calibration result register 2 - 0x4C - 0x20 - read-only - 0x00000000 - - - CALC3OUT - C3 result - 24 - 8 - - - CALC2OUT - C2 result - 16 - 8 - - - CALC1OUT - C1 result - 8 - 8 - - - CALC0OUT - C0 result - 0 - 8 - - - - - CALFIR1 - CALFIR1 - ADC calibration factor input register 1 - 0x50 - 0x20 - read-write - 0x00000000 - - - CALBIO - Calibration offset factor input - 16 - 7 - - - CALC5IO - Calibration C5 factor input - 8 - 8 - - - CALC4IO - Calibration C4 factor input - 0 - 8 - - - - - CALFIR2 - CALFIR2 - ADC calibration factor input register 2 - 0x54 - 0x20 - read-write - 0x00000000 - - - CALC3IO - Calibration C3 factor input - 24 - 8 - - - CALC2IO - Calibration C2 factor input - 16 - 8 - - - CALC1IO - Calibration C1 factor input - 8 - 8 - - - CALC0IO - Calibration C0 factor input - 0 - 8 - - - - - CCR - CCR - ADC common configuration register - 0x308 - 0x20 - read-write - 0x00000000 - - - TSEN - Temperature sensor enable - 23 - 1 - - - VREFEN - VREFINT enable - 22 - 1 - - - - - - - RCC - Reset and clock control - RCC - 0x40021000 - - 0x0 - 0x400 - registers - - - RCC - RCC global Interrupt - 4 - - - - CR - CR - Clock control register - 0x0 - 0x20 - read-write - 0x00000100 - - - CSSON - Clock security system - enable - 19 - 1 - - - HSEBYP - HSE crystal oscillator - bypass - 18 - 1 - - - HSERDY - HSE clock ready flag - 17 - 1 - - - HSEON - HSE clock enable - 16 - 1 - - - HSIDIV - HSI16 clock division - factor - 11 - 3 - - - HSIRDY - HSI16 clock ready flag - 10 - 1 - - - HSIKERON - HSI16 always enable for peripheral - kernels - 9 - 1 - - - HSION - HSI16 clock enable - 8 - 1 - - - - - ICSCR - ICSCR - Internal clock sources calibration - register - 0x4 - 0x20 - 0x10000000 - - - LSI_STARTUP - LSI startup time - 26 - 2 - read-write - - - LSI_TRIM - LSI clock trimming - 16 - 9 - read-write - - - HSI_FS - HSI frequency selection - 13 - 3 - read-write - - - HSI_TRIM - HSI clock trimming - 0 - 13 - read-write - - - - - CFGR - CFGR - Clock configuration register - 0x8 - 0x20 - 0x00000000 - - - MCOPRE - Microcontroller clock output - prescaler - 28 - 3 - read-write - - - MCOSEL - Microcontroller clock - output - 24 - 3 - read-write - - - PPRE - APB prescaler - 12 - 3 - read-write - - - HPRE - AHB prescaler - 8 - 4 - read-write - - - SWS - System clock switch status - 3 - 3 - read-only - - - SW - System clock switch - 0 - 3 - read-write - - - - - ECSCR - ECSCR - External clock source control register - 0x10 - 0x20 - 0x00000000 - - - HSE_FREQ - HSE clock freqency selection - 2 - 2 - read-write - - - - - CIER - CIER - Clock interrupt enable - register - 0x18 - 0x20 - read-write - 0x00000000 - - - HSERDYIE - HSE ready interrupt enable - 4 - 1 - - - HSIRDYIE - HSI ready interrupt enable - 3 - 1 - - - LSIRDYIE - LSI ready interrupt enable - 0 - 1 - - - - - CIFR - CIFR - Clock interrupt flag register - 0x1C - 0x20 - read-only - 0x00000000 - - - CSSF - HSE clock secure system interrupt flag - 8 - 1 - - - HSERDYF - HSE ready interrupt flag - 4 - 1 - - - HSIRDYF - HSI ready interrupt flag - 3 - 1 - - - LSIRDYF - LSI ready interrupt flag - 0 - 1 - - - - - CICR - CICR - Clock interrupt clear register - 0x20 - 0x20 - write-only - 0x00000000 - - - CSSC - clock secure system interrupt flag clear - 8 - 1 - - - HSERDYC - HSE ready interrupt clear - 4 - 1 - - - HSIRDYC - HSI ready interrupt clear - 3 - 1 - - - LSIRDYC - LSI ready interrupt clear - 0 - 1 - - - - - IOPRSTR - IOPRSTR - GPIO reset register - 0x24 - 0x20 - read-write - 0x00000000 - - - GPIOFRST - I/O port F reset - 5 - 1 - - - GPIOBRST - I/O port B reset - 1 - 1 - - - GPIOARST - I/O port A reset - 0 - 1 - - - - - AHBRSTR - AHBRSTR - AHB peripheral reset register - 0x28 - 0x20 - read-write - 0x00000000 - - - CRCRST - CRC reset - 12 - 1 - - - - - APBRSTR1 - APBRSTR1 - APB peripheral reset register - 1 - 0x2C - 0x20 - read-write - 0x00000000 - - - LPTIMRST - Low Power Timer reset - 31 - 1 - - - PWRRST - Power interface reset - 28 - 1 - - - DBGRST - Debug support reset - 27 - 1 - - - I2CRST - I2C reset - 21 - 1 - - - - - APBRSTR2 - APBRSTR2 - APB peripheral reset register - 2 - 0x30 - 0x20 - read-write - 0x00000000 - - - ADCRST - ADC reset - 20 - 1 - - - TIM16RST - TIM16 timer reset - 17 - 1 - - - USART1RST - USART1 reset - 14 - 1 - - - SPI1RST - SPI1 reset - 12 - 1 - - - TIM1RST - TIM1 timer reset - 11 - 1 - - - SYSCFGRST - SYSCFG and COMP - reset - 0 - 1 - - - - - IOPENR - IOPENR - GPIO clock enable register - 0x34 - 0x20 - read-write - 0x00000000 - - - GPIOFEN - I/O port F clock enable - 5 - 1 - - - GPIOBEN - I/O port B clock enable - 1 - 1 - - - GPIOAEN - I/O port A clock enable - 0 - 1 - - - - - AHBENR - AHBENR - AHB peripheral clock enable - register - 0x38 - 0x20 - read-write - 0x00000000 - - - CRCEN - CRC clock enable - 12 - 1 - - - SRAMEN - SRAM memory interface clock - enable - 9 - 1 - - - FLASHEN - Flash memory interface clock - enable - 8 - 1 - - - - - APBENR1 - APBENR1 - APB peripheral clock enable register - 1 - 0x3C - 0x20 - read-write - 0x00000000 - - - LPTIMEN - LPTIM clock enable - 31 - 1 - - - PWREN - Power interface clock - enable - 28 - 1 - - - DBGEN - Debug support clock enable - 27 - 1 - - - I2CEN - I2C clock enable - 21 - 1 - - - - - APBENR2 - APBENR2 - APB peripheral clock enable register - 2 - 0x40 - 0x20 - read-write - 0x00000000 - - - ADCEN - ADC clock enable - 20 - 1 - - - TIM16EN - TIM16 timer clock enable - 17 - 1 - - - USART1EN - USART1 clock enable - 14 - 1 - - - SPI1EN - SPI1 clock enable - 12 - 1 - - - TIM1EN - TIM1 timer clock enable - 11 - 1 - - - SYSCFGEN - SYSCFG, COMP and VREFBUF clock - enable - 0 - 1 - - - - - CCIPR - CCIPR - Peripherals independent clock configuration - register - 0x54 - 0x20 - read-write - 0x00000000 - - - LPTIM1SEL - LPTIM1 clock source - selection - 18 - 2 - - - - - CSR - CSR - Control/status register - 0x60 - 0x20 - read-write - 0x00000000 - - - IWDGRSTF - Independent window watchdog reset - flag - 29 - 1 - - - SFTRSTF - Software reset flag - 28 - 1 - - - PWRRSTF - BOR or POR/PDR flag - 27 - 1 - - - PINRSTF - Pin reset flag - 26 - 1 - - - OBLRSTF - Option byte loader reset - flag - 25 - 1 - - - RMVF - Remove reset flags - 23 - 1 - - - LSIRDY - LSI oscillator ready - 1 - 1 - - - LSION - LSI oscillator enable - 0 - 1 - - - - - - - GPIOA - General-purpose I/Os - GPIO - 0x50000000 - - 0x0 - 0x400 - registers - - - - MODER - MODER - GPIO port mode register - 0x0 - 0x20 - read-write - 0xEBFFFFFF - - - MODE15 - Port x configuration bits (y = - 0..15) - 30 - 2 - - - MODE14 - Port x configuration bits (y = - 0..15) - 28 - 2 - - - MODE13 - Port x configuration bits (y = - 0..15) - 26 - 2 - - - MODE12 - Port x configuration bits (y = - 0..15) - 24 - 2 - - - MODE11 - Port x configuration bits (y = - 0..15) - 22 - 2 - - - MODE10 - Port x configuration bits (y = - 0..15) - 20 - 2 - - - MODE9 - Port x configuration bits (y = - 0..15) - 18 - 2 - - - MODE8 - Port x configuration bits (y = - 0..15) - 16 - 2 - - - MODE7 - Port x configuration bits (y = - 0..15) - 14 - 2 - - - MODE6 - Port x configuration bits (y = - 0..15) - 12 - 2 - - - MODE5 - Port x configuration bits (y = - 0..15) - 10 - 2 - - - MODE4 - Port x configuration bits (y = - 0..15) - 8 - 2 - - - MODE3 - Port x configuration bits (y = - 0..15) - 6 - 2 - - - MODE2 - Port x configuration bits (y = - 0..15) - 4 - 2 - - - MODE1 - Port x configuration bits (y = - 0..15) - 2 - 2 - - - MODE0 - 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 - - - OSPEED15 - Port x configuration bits (y = - 0..15) - 30 - 2 - - - OSPEED14 - Port x configuration bits (y = - 0..15) - 28 - 2 - - - OSPEED13 - Port x configuration bits (y = - 0..15) - 26 - 2 - - - OSPEED12 - Port x configuration bits (y = - 0..15) - 24 - 2 - - - OSPEED11 - Port x configuration bits (y = - 0..15) - 22 - 2 - - - OSPEED10 - Port x configuration bits (y = - 0..15) - 20 - 2 - - - OSPEED9 - Port x configuration bits (y = - 0..15) - 18 - 2 - - - OSPEED8 - Port x configuration bits (y = - 0..15) - 16 - 2 - - - OSPEED7 - Port x configuration bits (y = - 0..15) - 14 - 2 - - - OSPEED6 - Port x configuration bits (y = - 0..15) - 12 - 2 - - - OSPEED5 - Port x configuration bits (y = - 0..15) - 10 - 2 - - - OSPEED4 - Port x configuration bits (y = - 0..15) - 8 - 2 - - - OSPEED3 - Port x configuration bits (y = - 0..15) - 6 - 2 - - - OSPEED2 - Port x configuration bits (y = - 0..15) - 4 - 2 - - - OSPEED1 - Port x configuration bits (y = - 0..15) - 2 - 2 - - - OSPEED0 - Port x configuration bits (y = - 0..15) - 0 - 2 - - - - - PUPDR - PUPDR - GPIO port pull-up/pull-down - register - 0xC - 0x20 - read-write - 0x24000000 - - - PUPD15 - Port x configuration bits (y = - 0..15) - 30 - 2 - - - PUPD14 - Port x configuration bits (y = - 0..15) - 28 - 2 - - - PUPD13 - Port x configuration bits (y = - 0..15) - 26 - 2 - - - PUPD12 - Port x configuration bits (y = - 0..15) - 24 - 2 - - - PUPD11 - Port x configuration bits (y = - 0..15) - 22 - 2 - - - PUPD10 - Port x configuration bits (y = - 0..15) - 20 - 2 - - - PUPD9 - Port x configuration bits (y = - 0..15) - 18 - 2 - - - PUPD8 - Port x configuration bits (y = - 0..15) - 16 - 2 - - - PUPD7 - Port x configuration bits (y = - 0..15) - 14 - 2 - - - PUPD6 - Port x configuration bits (y = - 0..15) - 12 - 2 - - - PUPD5 - Port x configuration bits (y = - 0..15) - 10 - 2 - - - PUPD4 - Port x configuration bits (y = - 0..15) - 8 - 2 - - - PUPD3 - Port x configuration bits (y = - 0..15) - 6 - 2 - - - PUPD2 - Port x configuration bits (y = - 0..15) - 4 - 2 - - - PUPD1 - Port x configuration bits (y = - 0..15) - 2 - 2 - - - PUPD0 - Port x configuration bits (y = - 0..15) - 0 - 2 - - - - - IDR - IDR - GPIO port input data register - 0x10 - 0x20 - read-only - 0x00000000 - - - ID15 - Port input data (y = - 0..15) - 15 - 1 - - - ID14 - Port input data (y = - 0..15) - 14 - 1 - - - ID13 - Port input data (y = - 0..15) - 13 - 1 - - - ID12 - Port input data (y = - 0..15) - 12 - 1 - - - ID11 - Port input data (y = - 0..15) - 11 - 1 - - - ID10 - Port input data (y = - 0..15) - 10 - 1 - - - ID9 - Port input data (y = - 0..15) - 9 - 1 - - - ID8 - Port input data (y = - 0..15) - 8 - 1 - - - ID7 - Port input data (y = - 0..15) - 7 - 1 - - - ID6 - Port input data (y = - 0..15) - 6 - 1 - - - ID5 - Port input data (y = - 0..15) - 5 - 1 - - - ID4 - Port input data (y = - 0..15) - 4 - 1 - - - ID3 - Port input data (y = - 0..15) - 3 - 1 - - - ID2 - Port input data (y = - 0..15) - 2 - 1 - - - ID1 - Port input data (y = - 0..15) - 1 - 1 - - - ID0 - Port input data (y = - 0..15) - 0 - 1 - - - - - ODR - ODR - GPIO port output data register - 0x14 - 0x20 - read-write - 0x00000000 - - - OD15 - Port output data (y = - 0..15) - 15 - 1 - - - OD14 - Port output data (y = - 0..15) - 14 - 1 - - - OD13 - Port output data (y = - 0..15) - 13 - 1 - - - OD12 - Port output data (y = - 0..15) - 12 - 1 - - - OD11 - Port output data (y = - 0..15) - 11 - 1 - - - OD10 - Port output data (y = - 0..15) - 10 - 1 - - - OD9 - Port output data (y = - 0..15) - 9 - 1 - - - OD8 - Port output data (y = - 0..15) - 8 - 1 - - - OD7 - Port output data (y = - 0..15) - 7 - 1 - - - OD6 - Port output data (y = - 0..15) - 6 - 1 - - - OD5 - Port output data (y = - 0..15) - 5 - 1 - - - OD4 - Port output data (y = - 0..15) - 4 - 1 - - - OD3 - Port output data (y = - 0..15) - 3 - 1 - - - OD2 - Port output data (y = - 0..15) - 2 - 1 - - - OD1 - Port output data (y = - 0..15) - 1 - 1 - - - OD0 - 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 - - - BR15 - Port Reset bit - 15 - 1 - - - BR14 - Port Reset bit - 14 - 1 - - - BR13 - Port Reset bit - 13 - 1 - - - BR12 - Port Reset bit - 12 - 1 - - - BR11 - Port Reset bit - 11 - 1 - - - BR10 - Port Reset bit - 10 - 1 - - - BR9 - Port Reset bit - 9 - 1 - - - BR8 - Port Reset bit - 8 - 1 - - - BR7 - Port Reset bit - 7 - 1 - - - BR6 - Port Reset bit - 6 - 1 - - - BR5 - Port Reset bit - 5 - 1 - - - BR4 - Port Reset bit - 4 - 1 - - - BR3 - Port Reset bit - 3 - 1 - - - BR2 - Port Reset bit - 2 - 1 - - - BR1 - Port Reset bit - 1 - 1 - - - BR0 - Port Reset bit - 0 - 1 - - - - - - - GPIOB - General-purpose I/Os - GPIO - 0x50000400 - - 0x0 - 0x400 - registers - - - - MODER - MODER - GPIO port mode register - 0x0 - 0x20 - read-write - 0xFFFFFFFF - - - MODE8 - Port x configuration bits (y = - 0..15) - 16 - 2 - - - MODE7 - Port x configuration bits (y = - 0..15) - 14 - 2 - - - MODE6 - Port x configuration bits (y = - 0..15) - 12 - 2 - - - MODE5 - Port x configuration bits (y = - 0..15) - 10 - 2 - - - MODE4 - Port x configuration bits (y = - 0..15) - 8 - 2 - - - MODE3 - Port x configuration bits (y = - 0..15) - 6 - 2 - - - MODE2 - Port x configuration bits (y = - 0..15) - 4 - 2 - - - MODE1 - Port x configuration bits (y = - 0..15) - 2 - 2 - - - MODE0 - Port x configuration bits (y = - 0..15) - 0 - 2 - - - - - OTYPER - OTYPER - GPIO port output type register - 0x4 - 0x20 - read-write - 0x00000000 - - - 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 - 0x00000000 - - - OSPEED8 - Port x configuration bits (y = - 0..15) - 16 - 2 - - - OSPEED7 - Port x configuration bits (y = - 0..15) - 14 - 2 - - - OSPEED6 - Port x configuration bits (y = - 0..15) - 12 - 2 - - - OSPEED5 - Port x configuration bits (y = - 0..15) - 10 - 2 - - - OSPEED4 - Port x configuration bits (y = - 0..15) - 8 - 2 - - - OSPEED3 - Port x configuration bits (y = - 0..15) - 6 - 2 - - - OSPEED2 - Port x configuration bits (y = - 0..15) - 4 - 2 - - - OSPEED1 - Port x configuration bits (y = - 0..15) - 2 - 2 - - - OSPEED0 - Port x configuration bits (y = - 0..15) - 0 - 2 - - - - - PUPDR - PUPDR - GPIO port pull-up/pull-down - register - 0xC - 0x20 - read-write - 0x00000000 - - - PUPD8 - Port x configuration bits (y = - 0..15) - 16 - 2 - - - PUPD7 - Port x configuration bits (y = - 0..15) - 14 - 2 - - - PUPD6 - Port x configuration bits (y = - 0..15) - 12 - 2 - - - PUPD5 - Port x configuration bits (y = - 0..15) - 10 - 2 - - - PUPD4 - Port x configuration bits (y = - 0..15) - 8 - 2 - - - PUPD3 - Port x configuration bits (y = - 0..15) - 6 - 2 - - - PUPD2 - Port x configuration bits (y = - 0..15) - 4 - 2 - - - PUPD1 - Port x configuration bits (y = - 0..15) - 2 - 2 - - - PUPD0 - Port x configuration bits (y = - 0..15) - 0 - 2 - - - - - IDR - IDR - GPIO port input data register - 0x10 - 0x20 - read-only - 0x00000000 - - - ID8 - Port input data (y = - 0..15) - 8 - 1 - - - ID7 - Port input data (y = - 0..15) - 7 - 1 - - - ID6 - Port input data (y = - 0..15) - 6 - 1 - - - ID5 - Port input data (y = - 0..15) - 5 - 1 - - - ID4 - Port input data (y = - 0..15) - 4 - 1 - - - ID3 - Port input data (y = - 0..15) - 3 - 1 - - - ID2 - Port input data (y = - 0..15) - 2 - 1 - - - ID1 - Port input data (y = - 0..15) - 1 - 1 - - - ID0 - Port input data (y = - 0..15) - 0 - 1 - - - - - ODR - ODR - GPIO port output data register - 0x14 - 0x20 - read-write - 0x00000000 - - - OD8 - Port output data (y = - 0..15) - 8 - 1 - - - OD7 - Port output data (y = - 0..15) - 7 - 1 - - - OD6 - Port output data (y = - 0..15) - 6 - 1 - - - OD5 - Port output data (y = - 0..15) - 5 - 1 - - - OD4 - Port output data (y = - 0..15) - 4 - 1 - - - OD3 - Port output data (y = - 0..15) - 3 - 1 - - - OD2 - Port output data (y = - 0..15) - 2 - 1 - - - OD1 - Port output data (y = - 0..15) - 1 - 1 - - - OD0 - Port output data (y = - 0..15) - 0 - 1 - - - - - BSRR - BSRR - GPIO port bit set/reset - register - 0x18 - 0x20 - write-only - 0x00000000 - - - 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 - - - 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 - - - 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 - - - BR8 - Port Reset bit - 8 - 1 - - - BR7 - Port Reset bit - 7 - 1 - - - BR6 - Port Reset bit - 6 - 1 - - - BR5 - Port Reset bit - 5 - 1 - - - BR4 - Port Reset bit - 4 - 1 - - - BR3 - Port Reset bit - 3 - 1 - - - BR2 - Port Reset bit - 2 - 1 - - - BR1 - Port Reset bit - 1 - 1 - - - BR0 - Port Reset bit - 0 - 1 - - - - - - - GPIOF - 0x50001400 - - - EXTI - External interrupt/event - controller - EXTI - 0x40021800 - - 0x0 - 0x400 - registers - - - EXTI0_1 - EXTI Line 0 and 1 Interrupt - 5 - - - EXTI2_3 - EXTI Line 2 and 3 Interrupt - 6 - - - EXTI4_15 - EXTI Line 4 to 15 Interrupt - 7 - - - - RTSR - RTSR - EXTI rising trigger selection - register - 0x0 - 0x20 - read-write - 0x00000000 - - - RT18 - Rising trigger event configuration bit - of Configurable Event input - 18 - 1 - - - RT17 - Rising trigger event configuration bit - of Configurable Event input - 17 - 1 - - - RT16 - Rising trigger event configuration bit - of Configurable Event input - 16 - 1 - - - RT15 - Rising trigger event configuration bit - of Configurable Event input - 15 - 1 - - - RT14 - Rising trigger event configuration bit - of Configurable Event input - 14 - 1 - - - RT13 - Rising trigger event configuration bit - of Configurable Event input - 13 - 1 - - - RT12 - Rising trigger event configuration bit - of Configurable Event input - 12 - 1 - - - RT11 - Rising trigger event configuration bit - of Configurable Event input - 11 - 1 - - - RT10 - Rising trigger event configuration bit - of Configurable Event input - 10 - 1 - - - RT9 - Rising trigger event configuration bit - of Configurable Event input - 9 - 1 - - - RT8 - Rising trigger event configuration bit - of Configurable Event input - 8 - 1 - - - RT7 - Rising trigger event configuration bit - of Configurable Event input - 7 - 1 - - - RT6 - Rising trigger event configuration bit - of Configurable Event input - 6 - 1 - - - RT5 - Rising trigger event configuration bit - of Configurable Event input - 5 - 1 - - - RT4 - Rising trigger event configuration bit - of Configurable Event input - 4 - 1 - - - RT3 - Rising trigger event configuration bit - of Configurable Event input - 3 - 1 - - - RT2 - Rising trigger event configuration bit - of Configurable Event input - 2 - 1 - - - RT1 - Rising trigger event configuration bit - of Configurable Event input - 1 - 1 - - - RT0 - Rising trigger event configuration bit - of Configurable Event input - 0 - 1 - - - - - FTSR - FTSR - EXTI falling trigger selection - register - 0x4 - 0x20 - read-write - 0x00000000 - - - FT18 - Falling trigger event configuration bit - of Configurable Event input - 18 - 1 - - - FT17 - Falling trigger event configuration bit - of Configurable Event input - 17 - 1 - - - FT16 - Falling trigger event configuration bit - of Configurable Event input - 16 - 1 - - - FT15 - Falling trigger event configuration bit - of Configurable Event input - 15 - 1 - - - FT14 - Falling trigger event configuration bit - of Configurable Event input - 14 - 1 - - - FT13 - Falling trigger event configuration bit - of Configurable Event input - 13 - 1 - - - FT12 - Falling trigger event configuration bit - of Configurable Event input - 12 - 1 - - - FT11 - Falling trigger event configuration bit - of Configurable Event input - 11 - 1 - - - FT10 - Falling trigger event configuration bit - of Configurable Event input - 10 - 1 - - - FT9 - Falling trigger event configuration bit - of Configurable Event input - 9 - 1 - - - FT8 - Falling trigger event configuration bit - of Configurable Event input - 8 - 1 - - - FT7 - Falling trigger event configuration bit - of Configurable Event input - 7 - 1 - - - FT6 - Falling trigger event configuration bit - of Configurable Event input - 6 - 1 - - - FT5 - Falling trigger event configuration bit - of Configurable Event input - 5 - 1 - - - FT4 - Falling trigger event configuration bit - of Configurable Event input - 4 - 1 - - - FT3 - Falling trigger event configuration bit - of Configurable Event input - 3 - 1 - - - FT2 - Falling trigger event configuration bit - of Configurable Event input - 2 - 1 - - - FT1 - Falling trigger event configuration bit - of Configurable Event input - 1 - 1 - - - FT0 - Falling trigger event configuration bit - of Configurable Event input - 0 - 1 - - - - - SWIER - SWIER - EXTI software interrupt event - register - 0x8 - 0x20 - read-write - 0x00000000 - - - SWI18 - Rising trigger event configuration bit - of Configurable Event input - 18 - 1 - - - SWI17 - Rising trigger event configuration bit - of Configurable Event input - 17 - 1 - - - SWI16 - Rising trigger event configuration bit - of Configurable Event input - 16 - 1 - - - SWI15 - Rising trigger event configuration bit - of Configurable Event input - 15 - 1 - - - SWI14 - Rising trigger event configuration bit - of Configurable Event input - 14 - 1 - - - SWI13 - Rising trigger event configuration bit - of Configurable Event input - 13 - 1 - - - SWI12 - Rising trigger event configuration bit - of Configurable Event input - 12 - 1 - - - SWI11 - Rising trigger event configuration bit - of Configurable Event input - 11 - 1 - - - SWI10 - Rising trigger event configuration bit - of Configurable Event input - 10 - 1 - - - SWI9 - Rising trigger event configuration bit - of Configurable Event input - 9 - 1 - - - SWI8 - Rising trigger event configuration bit - of Configurable Event input - 8 - 1 - - - SWI7 - Rising trigger event configuration bit - of Configurable Event input - 7 - 1 - - - SWI6 - Rising trigger event configuration bit - of Configurable Event input - 6 - 1 - - - SWI5 - Rising trigger event configuration bit - of Configurable Event input - 5 - 1 - - - SWI4 - Rising trigger event configuration bit - of Configurable Event input - 4 - 1 - - - SWI3 - Rising trigger event configuration bit - of Configurable Event input - 3 - 1 - - - SWI2 - Rising trigger event configuration bit - of Configurable Event input - 2 - 1 - - - SWI1 - Rising trigger event configuration bit - of Configurable Event input - 1 - 1 - - - SWI0 - Rising trigger event configuration bit - of Configurable Event input - 0 - 1 - - - - - PR - PR - EXTI pending - register - 0xC - 0x20 - read-write - 0x00000000 - - - PR18 - configurable event inputs x rising edge - Pending bit. - 18 - 1 - - - PR17 - configurable event inputs x rising edge - Pending bit. - 17 - 1 - - - PR16 - configurable event inputs x rising edge - Pending bit. - 16 - 1 - - - PR15 - configurable event inputs x rising edge - Pending bit. - 15 - 1 - - - PR14 - configurable event inputs x rising edge - Pending bit. - 14 - 1 - - - PR13 - configurable event inputs x rising edge - Pending bit - 13 - 1 - - - PR12 - configurable event inputs x rising edge - Pending bit. - 12 - 1 - - - PR11 - configurable event inputs x rising edge - Pending bit. - 11 - 1 - - - PR10 - configurable event inputs x rising edge - Pending bit. - 10 - 1 - - - PR9 - configurable event inputs x rising edge - Pending bit. - 9 - 1 - - - PR8 - configurable event inputs x rising edge - Pending bit. - 8 - 1 - - - PR7 - configurable event inputs x rising edge - Pending bit. - 7 - 1 - - - PR6 - configurable event inputs x rising edge - Pending bit. - 6 - 1 - - - PR5 - configurable event inputs x rising edge - Pending bit. - 5 - 1 - - - PR4 - configurable event inputs x rising edge - Pending bit. - 4 - 1 - - - PR3 - configurable event inputs x rising edge - Pending bit. - 3 - 1 - - - PR2 - configurable event inputs x rising edge - Pending bit. - 2 - 1 - - - PR1 - configurable event inputs x rising edge - Pending bit. - 1 - 1 - - - PR0 - configurable event inputs x rising edge - Pending bit. - 0 - 1 - - - - - EXTICR1 - EXTICR1 - EXTI external interrupt selection - register - 0x60 - 0x20 - read-write - 0x00000000 - - - EXTI3 - GPIO port selection - 24 - 2 - - - EXTI2 - GPIO port selection - 16 - 2 - - - EXTI1 - GPIO port selection - 8 - 2 - - - EXTI0 - GPIO port selection - 0 - 2 - - - - - EXTICR2 - EXTICR2 - EXTI external interrupt selection - register - 0x64 - 0x20 - read-write - 0x00000000 - - - EXTI7 - GPIO port selection - 24 - 1 - - - EXTI6 - GPIO port selection - 16 - 1 - - - EXTI5 - GPIO port selection - 8 - 1 - - - EXTI4 - GPIO port selection - 0 - 2 - - - - - EXTICR3 - EXTICR3 - EXTI external interrupt selection - register - 0x68 - 0x20 - read-write - 0x00000000 - - - EXTI8 - GPIO port selection - 0 - 1 - - - - - IMR - IMR - EXTI CPU wakeup with interrupt mask - register - 0x80 - 0x20 - read-write - 0xFFF80000 - - - IM29 - CPU wakeup with interrupt mask on event - input - 29 - 1 - - - IM19 - CPU wakeup with interrupt mask on event - input - 19 - 1 - - - IM18 - CPU wakeup with interrupt mask on event - input - 18 - 1 - - - IM17 - CPU wakeup with interrupt mask on event - input - 17 - 1 - - - IM16 - CPU wakeup with interrupt mask on event - input - 16 - 1 - - - IM15 - CPU wakeup with interrupt mask on event - input - 15 - 1 - - - IM14 - CPU wakeup with interrupt mask on event - input - 14 - 1 - - - IM13 - CPU wakeup with interrupt mask on event - input - 13 - 1 - - - IM12 - CPU wakeup with interrupt mask on event - input - 12 - 1 - - - IM11 - CPU wakeup with interrupt mask on event - input - 11 - 1 - - - IM10 - CPU wakeup with interrupt mask on event - input - 10 - 1 - - - IM9 - CPU wakeup with interrupt mask on event - input - 9 - 1 - - - IM8 - CPU wakeup with interrupt mask on event - input - 8 - 1 - - - IM7 - CPU wakeup with interrupt mask on event - input - 7 - 1 - - - IM6 - CPU wakeup with interrupt mask on event - input - 6 - 1 - - - IM5 - CPU wakeup with interrupt mask on event - input - 5 - 1 - - - IM4 - CPU wakeup with interrupt mask on event - input - 4 - 1 - - - IM3 - CPU wakeup with interrupt mask on event - input - 3 - 1 - - - IM2 - CPU wakeup with interrupt mask on event - input - 2 - 1 - - - IM1 - CPU wakeup with interrupt mask on event - input - 1 - 1 - - - IM0 - CPU wakeup with interrupt mask on event - input - 0 - 1 - - - - - EMR - EMR - EXTI CPU wakeup with event mask - register - 0x84 - 0x20 - read-write - 0x00000000 - - - EM29 - CPU wakeup with event mask on event - input - 29 - 1 - - - EM19 - CPU wakeup with event mask on event - input - 19 - 1 - - - EM18 - CPU wakeup with event mask on event - input - 18 - 1 - - - EM17 - CPU wakeup with event mask on event - input - 17 - 1 - - - EM16 - CPU wakeup with event mask on event - input - 16 - 1 - - - EM15 - CPU wakeup with event mask on event - input - 15 - 1 - - - EM14 - CPU wakeup with event mask on event - input - 14 - 1 - - - EM13 - CPU wakeup with event mask on event - input - 13 - 1 - - - EM12 - CPU wakeup with event mask on event - input - 12 - 1 - - - EM11 - CPU wakeup with event mask on event - input - 11 - 1 - - - EM10 - CPU wakeup with event mask on event - input - 10 - 1 - - - EM9 - CPU wakeup with event mask on event - input - 9 - 1 - - - EM8 - CPU wakeup with event mask on event - input - 8 - 1 - - - EM7 - CPU wakeup with event mask on event - input - 7 - 1 - - - EM6 - CPU wakeup with event mask on event - input - 6 - 1 - - - EM5 - CPU wakeup with event mask on event - input - 5 - 1 - - - EM4 - CPU wakeup with event mask on event - input - 4 - 1 - - - EM3 - CPU wakeup with event mask on event - input - 3 - 1 - - - EM2 - CPU wakeup with event mask on event - input - 2 - 1 - - - EM1 - CPU wakeup with event mask on event - input - 1 - 1 - - - EM0 - CPU wakeup with event mask on event - input - 0 - 1 - - - - - - - LPTIM - Low power timer - LPTIM - 0x40007C00 - - 0x0 - 0x400 - registers - - - - ISR - ISR - Interrupt and Status Register - 0x0 - 0x20 - read-only - 0x00000000 - - - ARRM - Autoreload match - 1 - 1 - - - - - ICR - ICR - Interrupt Clear Register - 0x4 - 0x20 - write-only - 0x00000000 - - - ARRMCF - Autoreload match Clear - Flag - 1 - 1 - - - - - IER - IER - Interrupt Enable Register - 0x8 - 0x20 - read-write - 0x00000000 - - - ARRMIE - Autoreload match Interrupt - Enable - 1 - 1 - - - - - CFGR - CFGR - Configuration Register - 0xC - 0x20 - read-write - 0x00000000 - - - PRELOAD - Registers update mode - 22 - 1 - - - PRESC - Clock prescaler - 9 - 3 - - - - - CR - CR - Control Register - 0x10 - 0x20 - read-write - 0x00000000 - - - RSTARE - Reset after read enable - 4 - 1 - - - SNGSTRT - LPTIM start in single mode - 1 - 1 - - - ENABLE - LPTIM Enable - 0 - 1 - - - - - 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 - - - - - - - USART1 - Universal synchronous asynchronous receiver - transmitter - USART - 0x40013800 - - 0x0 - 0x400 - registers - - - USART1 - USART1 global Interrupt - 27 - - - - SR - SR - Status register - 0x0 - 0x20 - 0x00C0 - - - ABRRQ - Automate baudrate detection requeset - 12 - 1 - write-only - - - ABRE - Automate baudrate detection error flag - 11 - 1 - read-only - - - ABRF - Automate baudrate detection flag - 10 - 1 - read-only - - - CTS - CTS flag - 9 - 1 - read-write - - - TXE - Transmit data register - empty - 7 - 1 - read-only - - - TC - Transmission complete - 6 - 1 - read-write - - - RXNE - Read data register not - empty - 5 - 1 - read-write - - - IDLE - IDLE line detected - 4 - 1 - read-only - - - ORE - Overrun error - 3 - 1 - read-only - - - NE - Noise error flag - 2 - 1 - read-only - - - FE - Framing error - 1 - 1 - read-only - - - PE - Parity error - 0 - 1 - read-only - - - - - DR - DR - Data register - 0x4 - 0x20 - read-write - 0x00000000 - - - DR - Data value - 0 - 9 - - - - - BRR - BRR - Baud rate register - 0x8 - 0x20 - read-write - 0x0000 - - - DIV_Mantissa - mantissa of USARTDIV - 4 - 12 - - - DIV_Fraction - fraction of USARTDIV - 0 - 4 - - - - - CR1 - CR1 - Control register 1 - 0xC - 0x20 - read-write - 0x0000 - - - UE - USART enable - 13 - 1 - - - M - Word length - 12 - 1 - - - WAKE - Wakeup method - 11 - 1 - - - PCE - Parity control enable - 10 - 1 - - - PS - Parity selection - 9 - 1 - - - PEIE - PE interrupt enable - 8 - 1 - - - TXEIE - TXE 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 - - - RWU - Receiver wakeup - 1 - 1 - - - SBK - Send break - 0 - 1 - - - - - CR2 - CR2 - Control register 2 - 0x10 - 0x20 - read-write - 0x0000 - - - 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 - - - ADD - Address of the USART node - 0 - 4 - - - - - CR3 - CR3 - Control register 3 - 0x14 - 0x20 - read-write - 0x0000 - - - ABRMOD - Auto baudrate mode - 13 - 2 - - - ABREN - Auto baudrate enable - 12 - 1 - - - OVER8 - Oversampling mode - 11 - 1 - - - CTSIE - CTS interrupt enable - 10 - 1 - - - CTSE - CTS enable - 9 - 1 - - - RTSE - RTS enable - 8 - 1 - - - HDSEL - Half-duplex selection - 3 - 1 - - - IRLP - IrDA low-power - 2 - 1 - - - IREN - IrDA mode enable - 1 - 1 - - - EIE - Error interrupt enable - 0 - 1 - - - - - - - IWDG - Independent watchdog - IWDG - 0x40003000 - - 0x0 - 0x400 - registers - - - - KR - KR - Key register (IWDG_KR) - 0x0 - 0x20 - write-only - 0x00000000 - - - KEY - Key value - 0 - 16 - - - - - PR - PR - Prescaler register (IWDG_PR) - 0x4 - 0x20 - read-write - 0x00000000 - - - PR - Prescaler divider - 0 - 3 - - - - - RLR - RLR - Reload register (IWDG_RLR) - 0x8 - 0x20 - read-write - 0x00000FFF - - - RL - Watchdog counter reload - value - 0 - 12 - - - - - SR - SR - Status register (IWDG_SR) - 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 (IWDG_SR) - 0x10 - 0x20 - read-only - 0x00000000 - - - WIN - window counter - 0 - 12 - - - - - - - TIM1 - Advanced timer - TIM - 0x40012C00 - - 0x0 - 0x400 - registers - - - TIM1_BRK_UP_TRG_COM - TIM1 Break, Update, Trigger and Commutation Interrupt - 13 - - - TIM1_CC - TIM1 Capture Compare Interrupt - 14 - - - - CR1 - CR1 - control register 1 - 0x0 - 0x20 - read-write - 0x0000 - - - 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 - - - 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 - - - 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 - - - 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 bit - 3 - 1 - - - SMS - Slave mode selection - 0 - 3 - - - - - DIER - DIER - DMA/Interrupt enable register - 0xC - 0x20 - read-write - 0x0000 - - - BIE - Break interrupt enable - 7 - 1 - - - TIE - Trigger interrupt enable - 6 - 1 - - - COMIE - COM interrupt enable - 5 - 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 - - - BIF - Break interrupt flag - 7 - 1 - - - TIF - Trigger interrupt flag - 6 - 1 - - - COMIF - COM interrupt flag - 5 - 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 - - - BG - Break generation - 7 - 1 - - - TG - Trigger generation - 6 - 1 - - - COMG - Capture/Compare control update - generation - 5 - 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 (output - mode) - 0x18 - 0x20 - read-write - 0x00000000 - - - 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 - - - ICPSC - Input capture 1 prescaler - 2 - 2 - - - CC1S - Capture/Compare 1 - selection - 0 - 2 - - - - - CCMR2_Output - CCMR2_Output - capture/compare mode register (output - mode) - 0x1C - 0x20 - read-write - 0x00000000 - - - 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 - - - CC4P - Capture/Compare 3 output - Polarity - 13 - 1 - - - CC4E - Capture/Compare 4 output - enable - 12 - 1 - - - CC3NP - Capture/Compare 3 output - Polarity - 11 - 1 - - - CC3NE - Capture/Compare 3 complementary output - enable - 10 - 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 - - - CC2NE - Capture/Compare 2 complementary output - enable - 6 - 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 - - - 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 - read-write - 0x00000000 - - - CNT - counter value - 0 - 16 - - - - - PSC - PSC - prescaler - 0x28 - 0x20 - read-write - 0x0000 - - - PSC - Prescaler value - 0 - 16 - - - - - ARR - ARR - auto-reload register - 0x2C - 0x20 - read-write - 0x00000000 - - - 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 - - - - - 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 - - - MOE - Main output enable - 15 - 1 - - - AOE - Automatic output enable - 14 - 1 - - - BKP - Break polarity - 13 - 1 - - - BKE - Break enable - 12 - 1 - - - OSSR - Off-state selection for Run - mode - 11 - 1 - - - OSSI - Off-state selection for Idle - mode - 10 - 1 - - - LOCK - Lock configuration - 8 - 2 - - - DTG - Dead-time generator setup - 0 - 8 - - - - - - - TIM16 - General purpose timer - TIM - 0x40014400 - - 0x00 - 0x400 - registers - - - TIM16 - TIM16 global Interrupt - 21 - - - - CR1 - CR1 - TIM16 control register1 - 0x0 - 0x20 - read-write - 0x0000 - - - CKD - Prescaler factor - 8 - 2 - - - ARPE - Auto-reload preload enable - 7 - 1 - - - OPM - One pulse mode - 3 - 1 - - - URS - Update request source - 2 - 1 - - - UDIS - Update disable - 1 - 1 - - - CEN - Counter enable - 0 - 1 - - - - - DIER - DIER - DMA/Interrupt enable register - 0xC - 0x20 - read-write - 0x0000 - - - UIE - Update interrupt enable - 0 - 1 - - - - - SR - SR - status register - 0x10 - 0x20 - read-write - 0x0000 - - - UIF - Update interrupt flag - 0 - 1 - - - - - EGR - EGR - event generation register - 0x14 - 0x20 - write-only - 0x0000 - - - UG - Update generation - 0 - 1 - - - - - CNT - CNT - counter - 0x24 - 0x20 - read-write - 0x00000000 - - - CNT - counter value - 0 - 16 - - - - - PSC - PSC - prescaler - 0x28 - 0x20 - read-write - 0x0000 - - - PSC - Prescaler value - 0 - 16 - - - - - ARR - ARR - auto-reload register - 0x2C - 0x20 - read-write - 0x00000000 - - - ARR - Auto-reload value - 0 - 16 - - - - - RCR - RCR - repetition counter register - 0x30 - 0x20 - read-write - 0x0000 - - - REP - Repetition counter value - 0 - 8 - - - - - - - SYSCFG - System configuration controller - SYSCFG - 0x40010000 - - 0x0 - 0x30 - registers - - - - CFGR1 - CFGR1 - SYSCFG configuration register - 1 - 0x0 - 0x20 - read-write - 0x00000000 - - - I2C_PF1_ANF - Analog filter enable control driving capability - activation bits PF1 - 30 - 1 - - - I2C_PF0_ANF - Analog filter enable control driving capability - activation bits PF0 - 29 - 1 - - - I2C_PB8_ANF - Analog filter enable control driving capability - activation bits PB8 - 28 - 1 - - - I2C_PB7_ANF - Analog filter enable control driving capability - activation bits PB7 - 27 - 1 - - I2C_PB6_ANF - Analog filter enable control driving capability - activation bits PB6 - 26 - 1 - - - I2C_PA12_ANF - Analog filter enable control driving capability - activation bits PA12 - 25 - 1 - - - I2C_PA11_ANF - Analog filter enable control driving capability - activation bits PA11 - 24 - 1 - - - I2C_PA10_ANF - Analog filter enable control driving capability - activation bits PA10 - 23 - 1 - - - I2C_PA9_ANF - Analog filter enable control driving capability - activation bits PA9 - 22 - 1 - - - I2C_PA8_ANF - Analog filter enable control driving capability - activation bits PA8 - 21 - 1 - - - I2C_PA7_ANF - Analog filter enable control driving capability - activation bits PA7 - 20 - 1 - - - I2C_PA3_ANF - Analog filter enable control driving capability - activation bits PA3 - 19 - 1 - - - I2C_PA2_ANF - Analog filter enable control driving capability - activation bits PA2 - 18 - 1 - - - MEM_MODE - Memory mapping selection - bits - 0 - 2 - - - - - CFGR2 - CFGR2 - SYSCFG configuration register - 2 - 0x18 - 0x20 - read-write - 0x00000000 - - - ETR_SRC_TIM1 - TIM1 ETR source selection - 9 - 2 - - - LOCKUP_LOCK - Cortex-M0+ LOCKUP bit enable - bit - 0 - 1 - - - - - - - FLASH - Flash - Flash - 0x40022000 - - 0x0 - 0x400 - registers - - - FLASH - FLASH global Interrupt - 3 - - - - ACR - ACR - Access control register - 0x0 - 0x20 - read-write - 0x00000600 - - - LATENCY - Latency - 0 - 1 - - - - - KEYR - KEYR - Flash key register - 0x8 - 0x20 - write-only - 0x00000000 - - - KEY - Flash key - 0 - 32 - - - - - OPTKEYR - OPTKEYR - Option byte key register - 0xC - 0x20 - write-only - 0x00000000 - - - OPTKEY - Option byte key - 0 - 32 - - - - - SR - SR - Status register - 0x10 - 0x20 - read-write - 0x00000000 - - - BSY - Busy - 16 - 1 - - - OPTVERR - Option and Engineering bits loading - validity error - 15 - 1 - - - WRPERR - Write protected error - 4 - 1 - - - EOP - End of operation - 0 - 1 - - - - - CR - CR - Flash control register - 0x14 - 0x20 - read-write - 0xC0000000 - - - LOCK - FLASH_CR Lock - 31 - 1 - - - OPTLOCK - Options Lock - 30 - 1 - - - OBL_LAUNCH - Force the option byte - loading - 27 - 1 - - - ERRIE - Error interrupt enable - 25 - 1 - - - EOPIE - End of operation interrupt - enable - 24 - 1 - - - PGTSTRT - Flash main memory program start - 19 - 1 - - - OPTSTRT - Option byte program start - 17 - 1 - - - SER - Sector erase - 11 - 1 - - - MER - Mass erase - 2 - 1 - - - PER - Page erase - 1 - 1 - - - PG - Programming - 0 - 1 - - - - - OPTR - OPTR - Flash option register - 0x20 - 0x20 - read-write - 0x4F55B0AA - - - nBOOT1 - Boot configuration - 15 - 1 - - - NRST_MODE - NRST_MODE - 14 - 1 - - - IDWG_SW - Independent watchdog - selection - 12 - 1 - - - BORF_LEV - These bits contain the VDD supply level - threshold that activates the reset - 9 - 3 - - - BOREN - BOR reset Level - 8 - 1 - - - RDP - Read Protection - 0 - 8 - - - - - SDKR - SDKR - Flash SDK address - register - 0x24 - 0x20 - read-write - 0xFFE0001F - - - SDK_END - SDK area end address - 8 - 5 - - - SDK_STRT - SDK area start address - 0 - 5 - - - - - WRPR - WRPR - Flash WRP address - register - 0x2C - 0x20 - read-write - 0x0000FFFF - - - WRP - WRP address - 0 - 16 - - - - - STCR - STCR - Flash sleep time config - register - 0x90 - 0x20 - read-write - 0x00006400 - - - SLEEP_TIME - FLash sleep time configuration(counter based on HSI_10M) - 8 - 8 - - - SLEEP_EN - FLash sleep enable - 0 - 1 - - - - - TS0 - TS0 - Flash TS0 - register - 0x100 - 0x20 - read-write - 0x000000B4 - - - TS0 - FLash TS0 register - 0 - 8 - - - - - TS1 - TS1 - Flash TS1 - register - 0x104 - 0x20 - read-write - 0x000001B0 - - - TS1 - FLash TS1 register - 0 - 9 - - - - - TS2P - TS2P - Flash TS2P - register - 0x108 - 0x20 - read-write - 0x000000B4 - - - TS2P - FLash TS2P register - 0 - 8 - - - - - TPS3 - TPS3 - Flash TPS3 - register - 0x10C - 0x20 - read-write - 0x000006C0 - - - TPS3 - FLash TPS3 register - 0 - 11 - - - - - TS3 - TS3 - Flash TS3 - register - 0x110 - 0x20 - read-write - 0x000000B4 - - - TS3 - FLash TS3 register - 0 - 8 - - - - - PERTPE - PERTPE - Flash PERTPE - register - 0x114 - 0x20 - read-write - 0x0000EA60 - - - PERTPE - FLash PERTPE register - 0 - 17 - - - - - SMERTPE - SMERTPE - Flash SMERTPE - register - 0x118 - 0x20 - read-write - 0x0000FD20 - - - SMERTPE - FLash SMERTPE register - 0 - 17 - - - - - PRGTPE - PRGTPE - Flash PRGTPE - register - 0x11C - 0x20 - read-write - 0x00008CA0 - - - PRGTPE - FLash PRGTPE register - 0 - 16 - - - - - PRETPE - PRETPE - Flash PRETPE - register - 0x120 - 0x20 - read-write - 0x000012C0 - - - PRETPE - FLash PRETPE register - 0 - 13 - - - - - - - CRC - CRC calculation unit - CRC - 0x40023000 - - 0x0 - 0x400 - registers - - - - DR - DR - Data register - 0x0 - 0x20 - read-write - 0xFFFFFFFF - - - DR - Data Register - 0 - 32 - - - - - IDR - IDR - Independent Data register - 0x4 - 0x20 - read-write - 0x00000000 - - - IDR - Independent Data register - 0 - 8 - - - - - CR - CR - Control register - 0x8 - 0x20 - write-only - 0x00000000 - - - RESET - Reset bit - 0 - 1 - - - - - - - SPI1 - Serial peripheral interface - SPI - 0x40013000 - - 0x0 - 0x400 - registers - - - SPI1 - SPI1 global Interrupt - 25 - - - - CR1 - CR1 - control register 1 - 0x0 - 0x20 - read-write - 0x0000 - - - BIDIMODE - Bidirectional data mode - enable - 15 - 1 - - - BIDIOE - Output enable in bidirectional - mode - 14 - 1 - - - RXONLY - Receive only - 10 - 1 - - - SSM - Software slave management - 9 - 1 - - - SSI - Internal slave selection - 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 - 0x0000 - - - SLVFM - Slave fast mode enable - 15 - 1 - - - FRXTH - FIFO reception threshold - 12 - 1 - - - DS - Data length - - 11 - 1 - - - TXEIE - Tx buffer empty interrupt - enable - 7 - 1 - - - RXNEIE - RX buffer not empty interrupt - enable - 6 - 1 - - - ERRIE - Error interrupt enable - 5 - 1 - - - SSOE - SS output enable - 2 - 1 - - - - - SR - SR - status register - 0x8 - 0x20 - 0x0002 - - - FTLVL - FIFO transmission level - 11 - 2 - read-only - - - FRLVL - FIFO reception level - 9 - 2 - read-only - - - BSY - Busy flag - 7 - 1 - read-only - - - OVR - Overrun flag - 6 - 1 - read-only - - - MODF - Mode fault - 5 - 1 - read-only - - - TXE - Transmit buffer empty - 1 - 1 - read-only - - - RXNE - Receive buffer not empty - 0 - 1 - read-only - - - - - DR - DR - data register - 0xC - 0x20 - read-write - 0x0000 - - - DR - Data register - 0 - 16 - - - - - - - I2C - Inter integrated circuit - I2C - 0x40005400 - - 0x0 - 0x400 - registers - - - I2C1 - I2C1 global Interrupt - 23 - - - - CR1 - CR1 - Control register 1 - 0x0 - 0x20 - read-write - 0x0000 - - - SWRST - Software reset - 15 - 1 - - - PEC - Packet error checking - 12 - 1 - - - POS - Acknowledge/PEC Position (for data - reception) - 11 - 1 - - - ACK - Acknowledge enable - 10 - 1 - - - STOP - Stop generation - 9 - 1 - - - START - Start generation - 8 - 1 - - - NOSTRETCH - Clock stretching disable (Slave - mode) - 7 - 1 - - - ENGC - General call enable - 6 - 1 - - - ENPEC - PEC enable - 5 - 1 - - - PE - Peripheral enable - 0 - 1 - - - - - CR2 - CR2 - Control register 2 - 0x4 - 0x20 - read-write - 0x0000 - - - ITBUFEN - Buffer interrupt enable - 10 - 1 - - - ITEVTEN - Event interrupt enable - 9 - 1 - - - ITERREN - Error interrupt enable - 8 - 1 - - - FREQ - Peripheral clock frequency - 0 - 6 - - - - - OAR1 - OAR1 - Own address register 1 - 0x8 - 0x20 - read-write - 0x0000 - - - ADD - Interface address - 1 - 7 - - - - - DR - DR - Data register - 0x10 - 0x20 - read-write - 0x0000 - - - DR - 8-bit data register - 0 - 8 - - - - - SR1 - SR1 - Status register 1 - 0x14 - 0x20 - 0x0000 - - - PECERR - PEC Error in reception - 12 - 1 - read-write - - - OVR - Overrun/Underrun - 11 - 1 - read-write - - - AF - Acknowledge failure - 10 - 1 - read-write - - - ARLO - Arbitration lost (master - mode) - 9 - 1 - read-write - - - BERR - Bus error - 8 - 1 - read-write - - - TxE - Data register empty - (transmitters) - 7 - 1 - read-only - - - RxNE - Data register not empty - (receivers) - 6 - 1 - read-only - - - STOPF - Stop detection (slave - mode) - 4 - 1 - read-only - - - BTF - Byte transfer finished - 2 - 1 - read-only - - - ADDR - Address sent (master mode)/matched - (slave mode) - 1 - 1 - read-only - - - SB - Start bit (Master mode) - 0 - 1 - read-only - - - - - SR2 - SR2 - Status register 2 - 0x18 - 0x20 - read-only - 0x0000 - - - PEC - acket error checking - register - 8 - 8 - - - DUALF - Dual flag (Slave mode) - 7 - 1 - - - GENCALL - General call address (Slave - mode) - 4 - 1 - - - TRA - Transmitter/receiver - 2 - 1 - - - BUSY - Bus busy - 1 - 1 - - - MSL - Master/slave - 0 - 1 - - - - - CCR - CCR - Clock control register - 0x1C - 0x20 - read-write - 0x0000 - - - F_S - I2C master mode selection - 15 - 1 - - - DUTY - Fast mode duty cycle - 14 - 1 - - - CCR - Clock control register in Fast/Standard - mode (Master mode) - 0 - 12 - - - - - TRISE - TRISE - TRISE register - 0x20 - 0x20 - read-write - 0x0002 - - - TRISE - Maximum rise time in Fast/Standard mode - (Master mode) - 0 - 6 - - - - - - - DBGMCU - Debug support - DBGMCU - 0x40015800 - - 0x0 - 0x400 - registers - - - - IDCODE - IDCODE - MCU Device ID Code Register - 0x0 - 0x20 - read-only - 0x0 - - - - - - CR - CR - Debug MCU Configuration - Register - 0x4 - 0x20 - read-write - 0x0 - - - DBG_STOP - Debug Stop Mode - 1 - 1 - - - - - APB_FZ1 - APB_FZ1 - APB Freeze Register1 - 0x8 - 0x20 - read-write - 0x0 - - - DBG_IWDG_STOP - Debug Independent Wachdog stopped when - Core is halted - 12 - 1 - - - DBG_LPTIM_STOP - Debug LPTIM stopped when Core is - halted - 31 - 1 - - - - - APB_FZ2 - APB_FZ2 - APB Freeze Register2 - 0xC - 0x20 - read-write - 0x0 - - - DBG_TIMER1_STOP - Debug Timer 1 stopped when Core is - halted - 11 - 1 - - - DBG_TIMER16_STOP - Debug Timer 16 stopped when Core is - halted - 17 - 1 - - - - - - - + + + + Puya + Puya + PY32F0xx_DFP + + PY32F0 + 1.0.0 + Arm 32-bit Cortex-M0+ Microcontroller based device, CPU clock up to 48 MHz. + + + + CM0+ + r0p1 + little + false + false + 4 + false + + + + 8 + 32 + 32 + read-write + 0x00000000 + 0xFFFFFFFF + + + ADC + Analog to Digital Converter + ADC + 0x40012400 + + 0x0 + 0x400 + registers + + + ADC_COMP + ADC and COMP Interrupt through EXTI Lines 17 and 18 + 12 + + + + ISR + ISR + ADC interrupt and status register + 0x0 + 0x20 + read-write + 0x00000000 + + + AWD + ADC analog watchdog flag + 7 + 1 + + + OVR + ADC group regular overrun + flag + 4 + 1 + + + EOSEQ + 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 + + + + + IER + IER + ADC interrupt enable register + 0x4 + 0x20 + read-write + 0x00000000 + + + AWDIE + ADC analog watchdog + interrupt + 7 + 1 + + + OVRIE + ADC group regular overrun + interrupt + 4 + 1 + + + EOSEQIE + 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 + + + + + CR + CR + ADC control register + 0x8 + 0x20 + read-write + 0x00000000 + + + ADCAL + ADC group regular conversion + calibration + 31 + 1 + + + ADSTP + ADC group regular conversion + stop + 4 + 1 + + + ADSTART + ADC group regular conversion + start + 2 + 1 + + + ADEN + ADC enable + 0 + 1 + + + + + CFGR1 + CFGR1 + ADC configuration register 1 + 0xC + 0x20 + read-write + 0x00000000 + + + AWDCH + ADC analog watchdog monitored channel + selection + 26 + 4 + + + AWDEN + ADC analog watchdog enable on scope + ADC group regular + 23 + 1 + + + AWDSGL + ADC analog watchdog monitoring a + single channel or all channels + 22 + 1 + + + DISCEN + ADC group regular sequencer + discontinuous mode + 16 + 1 + + + WAIT + Wait conversion mode + 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 + 3 + + + ALIGN + ADC data alignement + 5 + 1 + + + RESSEL + ADC data resolution + 3 + 2 + + + SCANDIR + Scan sequence direction + 2 + 1 + + + + + CFGR2 + CFGR2 + ADC configuration register 2 + 0x10 + 0x20 + read-write + 0x00000000 + + + CKMODE + ADC clock mode + 28 + 4 + + + + + SMPR + SMPR + ADC sampling time register + 0x14 + 0x20 + read-write + 0x00000000 + + + SMP + Sampling time selection + 0 + 3 + + + + + TR + TR + ADC analog watchdog 1 threshold register + 0x20 + 0x20 + read-write + 0x0FFF0000 + + + HT + ADC analog watchdog threshold + high + 16 + 12 + + + LT + ADC analog watchdog threshold + low + 0 + 12 + + + + + CHSELR + CHSELR + ADC group regular sequencer register + 0x28 + 0x20 + read-write + 0x0FFF0000 + + + CHSEL12 + Channel-12 selection + 12 + 1 + + + CHSEL11 + Channel-11 selection + 11 + 1 + + + CHSEL9 + Channel-9 selection + 9 + 1 + + + CHSEL8 + Channel-8 selection + 8 + 1 + + + CHSEL7 + Channel-7 selection + 7 + 1 + + + CHSEL6 + Channel-6 selection + 6 + 1 + + + CHSEL5 + Channel-5 selection + 5 + 1 + + + CHSEL4 + Channel-4 selection + 4 + 1 + + + CHSEL3 + Channel-3 selection + 3 + 1 + + + CHSEL2 + Channel-2 selection + 2 + 1 + + + CHSEL1 + Channel-1 selection + 1 + 1 + + + CHSEL0 + Channel-0 selection + 0 + 1 + + + + + DR + DR + ADC group regular data register + 0x40 + 0x20 + read-only + 0x00000000 + + + DATA + ADC group regular conversion + data + 0 + 16 + + + + + CCSR + CCSR + ADC calibration configuration and status register + 0x44 + 0x20 + read-write + 0x00000000 + + + CALON + Calibration flag + 31 + 1 + read-only + + + CALFAIL + Calibration fail flag + 30 + 1 + + + CALSET + Calibration factor selection + 15 + 1 + + + CALSMP + Calibration sample time selection + 12 + 2 + + + CALSEL + Calibration contents selection + 11 + 1 + + + + + CALRR1 + CALRR1 + ADC calibration result register 1 + 0x48 + 0x20 + read-only + 0x00000000 + + + CALBOUT + offset result + 16 + 7 + + + CALC5OUT + C5 result + 8 + 8 + + + CALC4OUT + C4 result + 0 + 8 + + + + + CALRR2 + CALRR2 + ADC calibration result register 2 + 0x4C + 0x20 + read-only + 0x00000000 + + + CALC3OUT + C3 result + 24 + 8 + + + CALC2OUT + C2 result + 16 + 8 + + + CALC1OUT + C1 result + 8 + 8 + + + CALC0OUT + C0 result + 0 + 8 + + + + + CALFIR1 + CALFIR1 + ADC calibration factor input register 1 + 0x50 + 0x20 + read-write + 0x00000000 + + + CALBIO + Calibration offset factor input + 16 + 7 + + + CALC5IO + Calibration C5 factor input + 8 + 8 + + + CALC4IO + Calibration C4 factor input + 0 + 8 + + + + + CALFIR2 + CALFIR2 + ADC calibration factor input register 2 + 0x54 + 0x20 + read-write + 0x00000000 + + + CALC3IO + Calibration C3 factor input + 24 + 8 + + + CALC2IO + Calibration C2 factor input + 16 + 8 + + + CALC1IO + Calibration C1 factor input + 8 + 8 + + + CALC0IO + Calibration C0 factor input + 0 + 8 + + + + + CCR + CCR + ADC common configuration register + 0x308 + 0x20 + read-write + 0x00000000 + + + TSEN + Temperature sensor enable + 23 + 1 + + + VREFEN + VREFINT enable + 22 + 1 + + + + + + + COMP1 + Comparator + COMP + 0x40010200 + + 0x0 + 0x10 + registers + + + + CSR + CSR + COMP control and status register + 0x0 + 0x20 + read-write + 0x00000000 + + + LOCK + CSR register lock + 31 + 1 + + + COMP_OUT + Comparator output status + 30 + 1 + + + PWRMODE + Comparator power mode + selector + 18 + 2 + + + HYST + Comparator hysteresis enable + selector + 16 + 1 + + + POLARITY + Comparator polarity + selector + 15 + 1 + + + WINMODE + Comparator non-inverting input + selector for window mode + 11 + 1 + + + INPSEL + Comparator signal selector for + non-inverting input + 8 + 2 + + + INMSEL + Comparator signal selector for + inverting input INM + 4 + 4 + + + SCALER_EN + SCALER enable bit + 1 + 1 + + + COMP_EN + COMP enable bit + 0 + 1 + + + + + FR + FR + Comparator Filter + register + 0x4 + 0x20 + read-write + 0x00000000 + + + FLTCNT + Comparator filter and counter + 16 + 16 + + + FLTEN + Filter enable bit + 0 + 1 + + + + + + + COMP2 + Comparator + COMP + 0x40010210 + + 0x0 + 0x10 + registers + + + + CSR + CSR + COMP control and status register + 0x0 + 0x20 + read-write + 0x00000000 + + + LOCK + CSR register lock + 31 + 1 + + + COMP_OUT + Comparator output status + 30 + 1 + + + PWRMODE + Comparator power mode + selector + 18 + 2 + + + POLARITY + Comparator polarity + selector + 15 + 1 + + + WINMODE + Comparator non-inverting input + selector for window mode + 11 + 1 + + + INPSEL + Comparator signal selector for + non-inverting input + 8 + 2 + + + INMSEL + Comparator signal selector for + inverting input INM + 4 + 4 + + + COMP_EN + COMP enable bit + 0 + 1 + + + + + FR + FR + Comparator Filter + register + 0x4 + 0x20 + read-write + 0x00000000 + + + FLTCNT + Comparator filter and counter + 16 + 16 + + + FLTEN + Filter enable bit + 0 + 1 + + + + + + + RCC + Reset and clock control + RCC + 0x40021000 + + 0x0 + 0x400 + registers + + + RCC + RCC global Interrupt + 4 + + + + CR + CR + Clock control register + 0x0 + 0x20 + read-write + 0x00000100 + + + CSSON + Clock security system + enable + 19 + 1 + + + HSEBYP + HSE crystal oscillator + bypass + 18 + 1 + + + HSERDY + HSE clock ready flag + 17 + 1 + + + HSEON + HSE clock enable + 16 + 1 + + + HSIDIV + HSI16 clock division + factor + 11 + 3 + + + HSIRDY + HSI16 clock ready flag + 10 + 1 + + + HSIKERON + HSI16 always enable for peripheral + kernels + 9 + 1 + + + HSION + HSI16 clock enable + 8 + 1 + + + + + ICSCR + ICSCR + Internal clock sources calibration + register + 0x4 + 0x20 + 0x10000000 + + + LSI_STARTUP + LSI startup time + 26 + 2 + read-write + + + LSI_TRIM + LSI clock trimming + 16 + 9 + read-write + + + HSI_FS + HSI frequency selection + 13 + 3 + read-write + + + HSI_TRIM + HSI clock trimming + 0 + 13 + read-write + + + + + CFGR + CFGR + Clock configuration register + 0x8 + 0x20 + 0x00000000 + + + MCOPRE + Microcontroller clock output + prescaler + 28 + 3 + read-write + + + MCOSEL + Microcontroller clock + output + 24 + 3 + read-write + + + PPRE + APB prescaler + 12 + 3 + read-write + + + HPRE + AHB prescaler + 8 + 4 + read-write + + + SWS + System clock switch status + 3 + 3 + read-only + + + SW + System clock switch + 0 + 3 + read-write + + + + + ECSCR + ECSCR + External clock source control register + 0x10 + 0x20 + 0x00000000 + + + HSE_FREQ + HSE clock freqency selection + 2 + 2 + read-write + + + + + CIER + CIER + Clock interrupt enable + register + 0x18 + 0x20 + read-write + 0x00000000 + + + HSERDYIE + HSE ready interrupt enable + 4 + 1 + + + HSIRDYIE + HSI ready interrupt enable + 3 + 1 + + + LSIRDYIE + LSI ready interrupt enable + 0 + 1 + + + + + CIFR + CIFR + Clock interrupt flag register + 0x1C + 0x20 + read-only + 0x00000000 + + + CSSF + HSE clock secure system interrupt flag + 8 + 1 + + + HSERDYF + HSE ready interrupt flag + 4 + 1 + + + HSIRDYF + HSI ready interrupt flag + 3 + 1 + + + LSIRDYF + LSI ready interrupt flag + 0 + 1 + + + + + CICR + CICR + Clock interrupt clear register + 0x20 + 0x20 + write-only + 0x00000000 + + + CSSC + clock secure system interrupt flag clear + 8 + 1 + + + HSERDYC + HSE ready interrupt clear + 4 + 1 + + + HSIRDYC + HSI ready interrupt clear + 3 + 1 + + + LSIRDYC + LSI ready interrupt clear + 0 + 1 + + + + + IOPRSTR + IOPRSTR + GPIO reset register + 0x24 + 0x20 + read-write + 0x00000000 + + + GPIOFRST + I/O port F reset + 5 + 1 + + + GPIOBRST + I/O port B reset + 1 + 1 + + + GPIOARST + I/O port A reset + 0 + 1 + + + + + AHBRSTR + AHBRSTR + AHB peripheral reset register + 0x28 + 0x20 + read-write + 0x00000000 + + + CRCRST + CRC reset + 12 + 1 + + + + + APBRSTR1 + APBRSTR1 + APB peripheral reset register + 1 + 0x2C + 0x20 + read-write + 0x00000000 + + + LPTIMRST + Low Power Timer reset + 31 + 1 + + + PWRRST + Power interface reset + 28 + 1 + + + DBGRST + Debug support reset + 27 + 1 + + + I2CRST + I2C reset + 21 + 1 + + + + + APBRSTR2 + APBRSTR2 + APB peripheral reset register + 2 + 0x30 + 0x20 + read-write + 0x00000000 + + + COMP2RST + COMP2 reset + 22 + 1 + + + COMP1RST + COMP1 reset + 21 + 1 + + + ADCRST + ADC reset + 20 + 1 + + + TIM16RST + TIM16 timer reset + 17 + 1 + + + USART1RST + USART1 reset + 14 + 1 + + + SPI1RST + SPI1 reset + 12 + 1 + + + TIM1RST + TIM1 timer reset + 11 + 1 + + + SYSCFGRST + SYSCFG and COMP + reset + 0 + 1 + + + + + IOPENR + IOPENR + GPIO clock enable register + 0x34 + 0x20 + read-write + 0x00000000 + + + GPIOFEN + I/O port F clock enable + 5 + 1 + + + GPIOBEN + I/O port B clock enable + 1 + 1 + + + GPIOAEN + I/O port A clock enable + 0 + 1 + + + + + AHBENR + AHBENR + AHB peripheral clock enable + register + 0x38 + 0x20 + read-write + 0x00000000 + + + CRCEN + CRC clock enable + 12 + 1 + + + SRAMEN + SRAM memory interface clock + enable + 9 + 1 + + + FLASHEN + Flash memory interface clock + enable + 8 + 1 + + + + + APBENR1 + APBENR1 + APB peripheral clock enable register + 1 + 0x3C + 0x20 + read-write + 0x00000000 + + + LPTIMEN + LPTIM clock enable + 31 + 1 + + + PWREN + Power interface clock + enable + 28 + 1 + + + DBGEN + Debug support clock enable + 27 + 1 + + + I2CEN + I2C clock enable + 21 + 1 + + + + + APBENR2 + APBENR2 + APB peripheral clock enable register + 2 + 0x40 + 0x20 + read-write + 0x00000000 + + + COMP2EN + COMP2 clock enable + 22 + 1 + + + COMP1EN + COMP1 clock enable + 21 + 1 + + + ADCEN + ADC clock enable + 20 + 1 + + + TIM16EN + TIM16 timer clock enable + 17 + 1 + + + USART1EN + USART1 clock enable + 14 + 1 + + + SPI1EN + SPI1 clock enable + 12 + 1 + + + TIM1EN + TIM1 timer clock enable + 11 + 1 + + + SYSCFGEN + SYSCFG, COMP and VREFBUF clock + enable + 0 + 1 + + + + + CCIPR + CCIPR + Peripherals independent clock configuration + register + 0x54 + 0x20 + read-write + 0x00000000 + + + LPTIM1SEL + LPTIM1 clock source + selection + 18 + 2 + + + COMP2SEL + COMP2 clock source + selection + 9 + 1 + + + COMP1SEL + COMP1 clock source + selection + 8 + 1 + + + + + BDCR + BDCR + RTC domain control register + 0x5C + 0x20 + read-write + 0x00000000 + + + LSCOEN + Low-speed clock output (LSCO) + enable + 24 + 1 + + + + + CSR + CSR + Control/status register + 0x60 + 0x20 + read-write + 0x00000000 + + + IWDGRSTF + Independent window watchdog reset + flag + 29 + 1 + + + SFTRSTF + Software reset flag + 28 + 1 + + + PWRRSTF + BOR or POR/PDR flag + 27 + 1 + + + PINRSTF + Pin reset flag + 26 + 1 + + + OBLRSTF + Option byte loader reset + flag + 25 + 1 + + + RMVF + Remove reset flags + 23 + 1 + + + LSIRDY + LSI oscillator ready + 1 + 1 + + + LSION + LSI oscillator enable + 0 + 1 + + + + + + + GPIOA + General-purpose I/Os + GPIO + 0x50000000 + + 0x0 + 0x400 + registers + + + + MODER + MODER + GPIO port mode register + 0x0 + 0x20 + read-write + 0xEBFFFFFF + + + MODE15 + Port x configuration bits (y = + 0..15) + 30 + 2 + + + MODE14 + Port x configuration bits (y = + 0..15) + 28 + 2 + + + MODE13 + Port x configuration bits (y = + 0..15) + 26 + 2 + + + MODE12 + Port x configuration bits (y = + 0..15) + 24 + 2 + + + MODE11 + Port x configuration bits (y = + 0..15) + 22 + 2 + + + MODE10 + Port x configuration bits (y = + 0..15) + 20 + 2 + + + MODE9 + Port x configuration bits (y = + 0..15) + 18 + 2 + + + MODE8 + Port x configuration bits (y = + 0..15) + 16 + 2 + + + MODE7 + Port x configuration bits (y = + 0..15) + 14 + 2 + + + MODE6 + Port x configuration bits (y = + 0..15) + 12 + 2 + + + MODE5 + Port x configuration bits (y = + 0..15) + 10 + 2 + + + MODE4 + Port x configuration bits (y = + 0..15) + 8 + 2 + + + MODE3 + Port x configuration bits (y = + 0..15) + 6 + 2 + + + MODE2 + Port x configuration bits (y = + 0..15) + 4 + 2 + + + MODE1 + Port x configuration bits (y = + 0..15) + 2 + 2 + + + MODE0 + 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 + + + OSPEED15 + Port x configuration bits (y = + 0..15) + 30 + 2 + + + OSPEED14 + Port x configuration bits (y = + 0..15) + 28 + 2 + + + OSPEED13 + Port x configuration bits (y = + 0..15) + 26 + 2 + + + OSPEED12 + Port x configuration bits (y = + 0..15) + 24 + 2 + + + OSPEED11 + Port x configuration bits (y = + 0..15) + 22 + 2 + + + OSPEED10 + Port x configuration bits (y = + 0..15) + 20 + 2 + + + OSPEED9 + Port x configuration bits (y = + 0..15) + 18 + 2 + + + OSPEED8 + Port x configuration bits (y = + 0..15) + 16 + 2 + + + OSPEED7 + Port x configuration bits (y = + 0..15) + 14 + 2 + + + OSPEED6 + Port x configuration bits (y = + 0..15) + 12 + 2 + + + OSPEED5 + Port x configuration bits (y = + 0..15) + 10 + 2 + + + OSPEED4 + Port x configuration bits (y = + 0..15) + 8 + 2 + + + OSPEED3 + Port x configuration bits (y = + 0..15) + 6 + 2 + + + OSPEED2 + Port x configuration bits (y = + 0..15) + 4 + 2 + + + OSPEED1 + Port x configuration bits (y = + 0..15) + 2 + 2 + + + OSPEED0 + Port x configuration bits (y = + 0..15) + 0 + 2 + + + + + PUPDR + PUPDR + GPIO port pull-up/pull-down + register + 0xC + 0x20 + read-write + 0x24000000 + + + PUPD15 + Port x configuration bits (y = + 0..15) + 30 + 2 + + + PUPD14 + Port x configuration bits (y = + 0..15) + 28 + 2 + + + PUPD13 + Port x configuration bits (y = + 0..15) + 26 + 2 + + + PUPD12 + Port x configuration bits (y = + 0..15) + 24 + 2 + + + PUPD11 + Port x configuration bits (y = + 0..15) + 22 + 2 + + + PUPD10 + Port x configuration bits (y = + 0..15) + 20 + 2 + + + PUPD9 + Port x configuration bits (y = + 0..15) + 18 + 2 + + + PUPD8 + Port x configuration bits (y = + 0..15) + 16 + 2 + + + PUPD7 + Port x configuration bits (y = + 0..15) + 14 + 2 + + + PUPD6 + Port x configuration bits (y = + 0..15) + 12 + 2 + + + PUPD5 + Port x configuration bits (y = + 0..15) + 10 + 2 + + + PUPD4 + Port x configuration bits (y = + 0..15) + 8 + 2 + + + PUPD3 + Port x configuration bits (y = + 0..15) + 6 + 2 + + + PUPD2 + Port x configuration bits (y = + 0..15) + 4 + 2 + + + PUPD1 + Port x configuration bits (y = + 0..15) + 2 + 2 + + + PUPD0 + Port x configuration bits (y = + 0..15) + 0 + 2 + + + + + IDR + IDR + GPIO port input data register + 0x10 + 0x20 + read-only + 0x00000000 + + + ID15 + Port input data (y = + 0..15) + 15 + 1 + + + ID14 + Port input data (y = + 0..15) + 14 + 1 + + + ID13 + Port input data (y = + 0..15) + 13 + 1 + + + ID12 + Port input data (y = + 0..15) + 12 + 1 + + + ID11 + Port input data (y = + 0..15) + 11 + 1 + + + ID10 + Port input data (y = + 0..15) + 10 + 1 + + + ID9 + Port input data (y = + 0..15) + 9 + 1 + + + ID8 + Port input data (y = + 0..15) + 8 + 1 + + + ID7 + Port input data (y = + 0..15) + 7 + 1 + + + ID6 + Port input data (y = + 0..15) + 6 + 1 + + + ID5 + Port input data (y = + 0..15) + 5 + 1 + + + ID4 + Port input data (y = + 0..15) + 4 + 1 + + + ID3 + Port input data (y = + 0..15) + 3 + 1 + + + ID2 + Port input data (y = + 0..15) + 2 + 1 + + + ID1 + Port input data (y = + 0..15) + 1 + 1 + + + ID0 + Port input data (y = + 0..15) + 0 + 1 + + + + + ODR + ODR + GPIO port output data register + 0x14 + 0x20 + read-write + 0x00000000 + + + OD15 + Port output data (y = + 0..15) + 15 + 1 + + + OD14 + Port output data (y = + 0..15) + 14 + 1 + + + OD13 + Port output data (y = + 0..15) + 13 + 1 + + + OD12 + Port output data (y = + 0..15) + 12 + 1 + + + OD11 + Port output data (y = + 0..15) + 11 + 1 + + + OD10 + Port output data (y = + 0..15) + 10 + 1 + + + OD9 + Port output data (y = + 0..15) + 9 + 1 + + + OD8 + Port output data (y = + 0..15) + 8 + 1 + + + OD7 + Port output data (y = + 0..15) + 7 + 1 + + + OD6 + Port output data (y = + 0..15) + 6 + 1 + + + OD5 + Port output data (y = + 0..15) + 5 + 1 + + + OD4 + Port output data (y = + 0..15) + 4 + 1 + + + OD3 + Port output data (y = + 0..15) + 3 + 1 + + + OD2 + Port output data (y = + 0..15) + 2 + 1 + + + OD1 + Port output data (y = + 0..15) + 1 + 1 + + + OD0 + 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 + + + BR15 + Port Reset bit + 15 + 1 + + + BR14 + Port Reset bit + 14 + 1 + + + BR13 + Port Reset bit + 13 + 1 + + + BR12 + Port Reset bit + 12 + 1 + + + BR11 + Port Reset bit + 11 + 1 + + + BR10 + Port Reset bit + 10 + 1 + + + BR9 + Port Reset bit + 9 + 1 + + + BR8 + Port Reset bit + 8 + 1 + + + BR7 + Port Reset bit + 7 + 1 + + + BR6 + Port Reset bit + 6 + 1 + + + BR5 + Port Reset bit + 5 + 1 + + + BR4 + Port Reset bit + 4 + 1 + + + BR3 + Port Reset bit + 3 + 1 + + + BR2 + Port Reset bit + 2 + 1 + + + BR1 + Port Reset bit + 1 + 1 + + + BR0 + Port Reset bit + 0 + 1 + + + + + + + GPIOB + General-purpose I/Os + GPIO + 0x50000400 + + 0x0 + 0x400 + registers + + + + MODER + MODER + GPIO port mode register + 0x0 + 0x20 + read-write + 0xFFFFFFFF + + + MODE8 + Port x configuration bits (y = + 0..15) + 16 + 2 + + + MODE7 + Port x configuration bits (y = + 0..15) + 14 + 2 + + + MODE6 + Port x configuration bits (y = + 0..15) + 12 + 2 + + + MODE5 + Port x configuration bits (y = + 0..15) + 10 + 2 + + + MODE4 + Port x configuration bits (y = + 0..15) + 8 + 2 + + + MODE3 + Port x configuration bits (y = + 0..15) + 6 + 2 + + + MODE2 + Port x configuration bits (y = + 0..15) + 4 + 2 + + + MODE1 + Port x configuration bits (y = + 0..15) + 2 + 2 + + + MODE0 + Port x configuration bits (y = + 0..15) + 0 + 2 + + + + + OTYPER + OTYPER + GPIO port output type register + 0x4 + 0x20 + read-write + 0x00000000 + + + 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 + 0x00000000 + + + OSPEED8 + Port x configuration bits (y = + 0..15) + 16 + 2 + + + OSPEED7 + Port x configuration bits (y = + 0..15) + 14 + 2 + + + OSPEED6 + Port x configuration bits (y = + 0..15) + 12 + 2 + + + OSPEED5 + Port x configuration bits (y = + 0..15) + 10 + 2 + + + OSPEED4 + Port x configuration bits (y = + 0..15) + 8 + 2 + + + OSPEED3 + Port x configuration bits (y = + 0..15) + 6 + 2 + + + OSPEED2 + Port x configuration bits (y = + 0..15) + 4 + 2 + + + OSPEED1 + Port x configuration bits (y = + 0..15) + 2 + 2 + + + OSPEED0 + Port x configuration bits (y = + 0..15) + 0 + 2 + + + + + PUPDR + PUPDR + GPIO port pull-up/pull-down + register + 0xC + 0x20 + read-write + 0x00000000 + + + PUPD8 + Port x configuration bits (y = + 0..15) + 16 + 2 + + + PUPD7 + Port x configuration bits (y = + 0..15) + 14 + 2 + + + PUPD6 + Port x configuration bits (y = + 0..15) + 12 + 2 + + + PUPD5 + Port x configuration bits (y = + 0..15) + 10 + 2 + + + PUPD4 + Port x configuration bits (y = + 0..15) + 8 + 2 + + + PUPD3 + Port x configuration bits (y = + 0..15) + 6 + 2 + + + PUPD2 + Port x configuration bits (y = + 0..15) + 4 + 2 + + + PUPD1 + Port x configuration bits (y = + 0..15) + 2 + 2 + + + PUPD0 + Port x configuration bits (y = + 0..15) + 0 + 2 + + + + + IDR + IDR + GPIO port input data register + 0x10 + 0x20 + read-only + 0x00000000 + + + ID8 + Port input data (y = + 0..15) + 8 + 1 + + + ID7 + Port input data (y = + 0..15) + 7 + 1 + + + ID6 + Port input data (y = + 0..15) + 6 + 1 + + + ID5 + Port input data (y = + 0..15) + 5 + 1 + + + ID4 + Port input data (y = + 0..15) + 4 + 1 + + + ID3 + Port input data (y = + 0..15) + 3 + 1 + + + ID2 + Port input data (y = + 0..15) + 2 + 1 + + + ID1 + Port input data (y = + 0..15) + 1 + 1 + + + ID0 + Port input data (y = + 0..15) + 0 + 1 + + + + + ODR + ODR + GPIO port output data register + 0x14 + 0x20 + read-write + 0x00000000 + + + OD8 + Port output data (y = + 0..15) + 8 + 1 + + + OD7 + Port output data (y = + 0..15) + 7 + 1 + + + OD6 + Port output data (y = + 0..15) + 6 + 1 + + + OD5 + Port output data (y = + 0..15) + 5 + 1 + + + OD4 + Port output data (y = + 0..15) + 4 + 1 + + + OD3 + Port output data (y = + 0..15) + 3 + 1 + + + OD2 + Port output data (y = + 0..15) + 2 + 1 + + + OD1 + Port output data (y = + 0..15) + 1 + 1 + + + OD0 + Port output data (y = + 0..15) + 0 + 1 + + + + + BSRR + BSRR + GPIO port bit set/reset + register + 0x18 + 0x20 + write-only + 0x00000000 + + + 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 + + + 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 + + + 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 + + + BR8 + Port Reset bit + 8 + 1 + + + BR7 + Port Reset bit + 7 + 1 + + + BR6 + Port Reset bit + 6 + 1 + + + BR5 + Port Reset bit + 5 + 1 + + + BR4 + Port Reset bit + 4 + 1 + + + BR3 + Port Reset bit + 3 + 1 + + + BR2 + Port Reset bit + 2 + 1 + + + BR1 + Port Reset bit + 1 + 1 + + + BR0 + Port Reset bit + 0 + 1 + + + + + + + GPIOF + 0x50001400 + + + EXTI + External interrupt/event + controller + EXTI + 0x40021800 + + 0x0 + 0x400 + registers + + + EXTI0_1 + EXTI Line 0 and 1 Interrupt + 5 + + + EXTI2_3 + EXTI Line 2 and 3 Interrupt + 6 + + + EXTI4_15 + EXTI Line 4 to 15 Interrupt + 7 + + + + RTSR + RTSR + EXTI rising trigger selection + register + 0x0 + 0x20 + read-write + 0x00000000 + + + RT18 + Rising trigger event configuration bit + of Configurable Event input + 18 + 1 + + + RT17 + Rising trigger event configuration bit + of Configurable Event input + 17 + 1 + + + RT16 + Rising trigger event configuration bit + of Configurable Event input + 16 + 1 + + + RT15 + Rising trigger event configuration bit + of Configurable Event input + 15 + 1 + + + RT14 + Rising trigger event configuration bit + of Configurable Event input + 14 + 1 + + + RT13 + Rising trigger event configuration bit + of Configurable Event input + 13 + 1 + + + RT12 + Rising trigger event configuration bit + of Configurable Event input + 12 + 1 + + + RT11 + Rising trigger event configuration bit + of Configurable Event input + 11 + 1 + + + RT10 + Rising trigger event configuration bit + of Configurable Event input + 10 + 1 + + + RT9 + Rising trigger event configuration bit + of Configurable Event input + 9 + 1 + + + RT8 + Rising trigger event configuration bit + of Configurable Event input + 8 + 1 + + + RT7 + Rising trigger event configuration bit + of Configurable Event input + 7 + 1 + + + RT6 + Rising trigger event configuration bit + of Configurable Event input + 6 + 1 + + + RT5 + Rising trigger event configuration bit + of Configurable Event input + 5 + 1 + + + RT4 + Rising trigger event configuration bit + of Configurable Event input + 4 + 1 + + + RT3 + Rising trigger event configuration bit + of Configurable Event input + 3 + 1 + + + RT2 + Rising trigger event configuration bit + of Configurable Event input + 2 + 1 + + + RT1 + Rising trigger event configuration bit + of Configurable Event input + 1 + 1 + + + RT0 + Rising trigger event configuration bit + of Configurable Event input + 0 + 1 + + + + + FTSR + FTSR + EXTI falling trigger selection + register + 0x4 + 0x20 + read-write + 0x00000000 + + + FT18 + Falling trigger event configuration bit + of Configurable Event input + 18 + 1 + + + FT17 + Falling trigger event configuration bit + of Configurable Event input + 17 + 1 + + + FT16 + Falling trigger event configuration bit + of Configurable Event input + 16 + 1 + + + FT15 + Falling trigger event configuration bit + of Configurable Event input + 15 + 1 + + + FT14 + Falling trigger event configuration bit + of Configurable Event input + 14 + 1 + + + FT13 + Falling trigger event configuration bit + of Configurable Event input + 13 + 1 + + + FT12 + Falling trigger event configuration bit + of Configurable Event input + 12 + 1 + + + FT11 + Falling trigger event configuration bit + of Configurable Event input + 11 + 1 + + + FT10 + Falling trigger event configuration bit + of Configurable Event input + 10 + 1 + + + FT9 + Falling trigger event configuration bit + of Configurable Event input + 9 + 1 + + + FT8 + Falling trigger event configuration bit + of Configurable Event input + 8 + 1 + + + FT7 + Falling trigger event configuration bit + of Configurable Event input + 7 + 1 + + + FT6 + Falling trigger event configuration bit + of Configurable Event input + 6 + 1 + + + FT5 + Falling trigger event configuration bit + of Configurable Event input + 5 + 1 + + + FT4 + Falling trigger event configuration bit + of Configurable Event input + 4 + 1 + + + FT3 + Falling trigger event configuration bit + of Configurable Event input + 3 + 1 + + + FT2 + Falling trigger event configuration bit + of Configurable Event input + 2 + 1 + + + FT1 + Falling trigger event configuration bit + of Configurable Event input + 1 + 1 + + + FT0 + Falling trigger event configuration bit + of Configurable Event input + 0 + 1 + + + + + SWIER + SWIER + EXTI software interrupt event + register + 0x8 + 0x20 + read-write + 0x00000000 + + + SWI18 + Rising trigger event configuration bit + of Configurable Event input + 18 + 1 + + + SWI17 + Rising trigger event configuration bit + of Configurable Event input + 17 + 1 + + + SWI16 + Rising trigger event configuration bit + of Configurable Event input + 16 + 1 + + + SWI15 + Rising trigger event configuration bit + of Configurable Event input + 15 + 1 + + + SWI14 + Rising trigger event configuration bit + of Configurable Event input + 14 + 1 + + + SWI13 + Rising trigger event configuration bit + of Configurable Event input + 13 + 1 + + + SWI12 + Rising trigger event configuration bit + of Configurable Event input + 12 + 1 + + + SWI11 + Rising trigger event configuration bit + of Configurable Event input + 11 + 1 + + + SWI10 + Rising trigger event configuration bit + of Configurable Event input + 10 + 1 + + + SWI9 + Rising trigger event configuration bit + of Configurable Event input + 9 + 1 + + + SWI8 + Rising trigger event configuration bit + of Configurable Event input + 8 + 1 + + + SWI7 + Rising trigger event configuration bit + of Configurable Event input + 7 + 1 + + + SWI6 + Rising trigger event configuration bit + of Configurable Event input + 6 + 1 + + + SWI5 + Rising trigger event configuration bit + of Configurable Event input + 5 + 1 + + + SWI4 + Rising trigger event configuration bit + of Configurable Event input + 4 + 1 + + + SWI3 + Rising trigger event configuration bit + of Configurable Event input + 3 + 1 + + + SWI2 + Rising trigger event configuration bit + of Configurable Event input + 2 + 1 + + + SWI1 + Rising trigger event configuration bit + of Configurable Event input + 1 + 1 + + + SWI0 + Rising trigger event configuration bit + of Configurable Event input + 0 + 1 + + + + + PR + PR + EXTI pending + register + 0xC + 0x20 + read-write + 0x00000000 + + + PR18 + configurable event inputs x rising edge + Pending bit. + 18 + 1 + + + PR17 + configurable event inputs x rising edge + Pending bit. + 17 + 1 + + + PR16 + configurable event inputs x rising edge + Pending bit. + 16 + 1 + + + PR15 + configurable event inputs x rising edge + Pending bit. + 15 + 1 + + + PR14 + configurable event inputs x rising edge + Pending bit. + 14 + 1 + + + PR13 + configurable event inputs x rising edge + Pending bit + 13 + 1 + + + PR12 + configurable event inputs x rising edge + Pending bit. + 12 + 1 + + + PR11 + configurable event inputs x rising edge + Pending bit. + 11 + 1 + + + PR10 + configurable event inputs x rising edge + Pending bit. + 10 + 1 + + + PR9 + configurable event inputs x rising edge + Pending bit. + 9 + 1 + + + PR8 + configurable event inputs x rising edge + Pending bit. + 8 + 1 + + + PR7 + configurable event inputs x rising edge + Pending bit. + 7 + 1 + + + PR6 + configurable event inputs x rising edge + Pending bit. + 6 + 1 + + + PR5 + configurable event inputs x rising edge + Pending bit. + 5 + 1 + + + PR4 + configurable event inputs x rising edge + Pending bit. + 4 + 1 + + + PR3 + configurable event inputs x rising edge + Pending bit. + 3 + 1 + + + PR2 + configurable event inputs x rising edge + Pending bit. + 2 + 1 + + + PR1 + configurable event inputs x rising edge + Pending bit. + 1 + 1 + + + PR0 + configurable event inputs x rising edge + Pending bit. + 0 + 1 + + + + + EXTICR1 + EXTICR1 + EXTI external interrupt selection + register + 0x60 + 0x20 + read-write + 0x00000000 + + + EXTI3 + GPIO port selection + 24 + 2 + + + EXTI2 + GPIO port selection + 16 + 2 + + + EXTI1 + GPIO port selection + 8 + 2 + + + EXTI0 + GPIO port selection + 0 + 2 + + + + + EXTICR2 + EXTICR2 + EXTI external interrupt selection + register + 0x64 + 0x20 + read-write + 0x00000000 + + + EXTI7 + GPIO port selection + 24 + 1 + + + EXTI6 + GPIO port selection + 16 + 1 + + + EXTI5 + GPIO port selection + 8 + 1 + + + EXTI4 + GPIO port selection + 0 + 2 + + + + + EXTICR3 + EXTICR3 + EXTI external interrupt selection + register + 0x68 + 0x20 + read-write + 0x00000000 + + + EXTI8 + GPIO port selection + 0 + 1 + + + + + IMR + IMR + EXTI CPU wakeup with interrupt mask + register + 0x80 + 0x20 + read-write + 0xFFF80000 + + + IM29 + CPU wakeup with interrupt mask on event + input + 29 + 1 + + + IM19 + CPU wakeup with interrupt mask on event + input + 19 + 1 + + + IM18 + CPU wakeup with interrupt mask on event + input + 18 + 1 + + + IM17 + CPU wakeup with interrupt mask on event + input + 17 + 1 + + + IM16 + CPU wakeup with interrupt mask on event + input + 16 + 1 + + + IM15 + CPU wakeup with interrupt mask on event + input + 15 + 1 + + + IM14 + CPU wakeup with interrupt mask on event + input + 14 + 1 + + + IM13 + CPU wakeup with interrupt mask on event + input + 13 + 1 + + + IM12 + CPU wakeup with interrupt mask on event + input + 12 + 1 + + + IM11 + CPU wakeup with interrupt mask on event + input + 11 + 1 + + + IM10 + CPU wakeup with interrupt mask on event + input + 10 + 1 + + + IM9 + CPU wakeup with interrupt mask on event + input + 9 + 1 + + + IM8 + CPU wakeup with interrupt mask on event + input + 8 + 1 + + + IM7 + CPU wakeup with interrupt mask on event + input + 7 + 1 + + + IM6 + CPU wakeup with interrupt mask on event + input + 6 + 1 + + + IM5 + CPU wakeup with interrupt mask on event + input + 5 + 1 + + + IM4 + CPU wakeup with interrupt mask on event + input + 4 + 1 + + + IM3 + CPU wakeup with interrupt mask on event + input + 3 + 1 + + + IM2 + CPU wakeup with interrupt mask on event + input + 2 + 1 + + + IM1 + CPU wakeup with interrupt mask on event + input + 1 + 1 + + + IM0 + CPU wakeup with interrupt mask on event + input + 0 + 1 + + + + + EMR + EMR + EXTI CPU wakeup with event mask + register + 0x84 + 0x20 + read-write + 0x00000000 + + + EM29 + CPU wakeup with event mask on event + input + 29 + 1 + + + EM19 + CPU wakeup with event mask on event + input + 19 + 1 + + + EM18 + CPU wakeup with event mask on event + input + 18 + 1 + + + EM17 + CPU wakeup with event mask on event + input + 17 + 1 + + + EM16 + CPU wakeup with event mask on event + input + 16 + 1 + + + EM15 + CPU wakeup with event mask on event + input + 15 + 1 + + + EM14 + CPU wakeup with event mask on event + input + 14 + 1 + + + EM13 + CPU wakeup with event mask on event + input + 13 + 1 + + + EM12 + CPU wakeup with event mask on event + input + 12 + 1 + + + EM11 + CPU wakeup with event mask on event + input + 11 + 1 + + + EM10 + CPU wakeup with event mask on event + input + 10 + 1 + + + EM9 + CPU wakeup with event mask on event + input + 9 + 1 + + + EM8 + CPU wakeup with event mask on event + input + 8 + 1 + + + EM7 + CPU wakeup with event mask on event + input + 7 + 1 + + + EM6 + CPU wakeup with event mask on event + input + 6 + 1 + + + EM5 + CPU wakeup with event mask on event + input + 5 + 1 + + + EM4 + CPU wakeup with event mask on event + input + 4 + 1 + + + EM3 + CPU wakeup with event mask on event + input + 3 + 1 + + + EM2 + CPU wakeup with event mask on event + input + 2 + 1 + + + EM1 + CPU wakeup with event mask on event + input + 1 + 1 + + + EM0 + CPU wakeup with event mask on event + input + 0 + 1 + + + + + + + LPTIM + Low power timer + LPTIM + 0x40007C00 + + 0x0 + 0x400 + registers + + + + ISR + ISR + Interrupt and Status Register + 0x0 + 0x20 + read-only + 0x00000000 + + + ARRM + Autoreload match + 1 + 1 + + + + + ICR + ICR + Interrupt Clear Register + 0x4 + 0x20 + write-only + 0x00000000 + + + ARRMCF + Autoreload match Clear + Flag + 1 + 1 + + + + + IER + IER + Interrupt Enable Register + 0x8 + 0x20 + read-write + 0x00000000 + + + ARRMIE + Autoreload match Interrupt + Enable + 1 + 1 + + + + + CFGR + CFGR + Configuration Register + 0xC + 0x20 + read-write + 0x00000000 + + + PRELOAD + Registers update mode + 22 + 1 + + + PRESC + Clock prescaler + 9 + 3 + + + + + CR + CR + Control Register + 0x10 + 0x20 + read-write + 0x00000000 + + + RSTARE + Reset after read enable + 4 + 1 + + + SNGSTRT + LPTIM start in single mode + 1 + 1 + + + ENABLE + LPTIM Enable + 0 + 1 + + + + + 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 + + + + + + + USART1 + Universal synchronous asynchronous receiver + transmitter + USART + 0x40013800 + + 0x0 + 0x400 + registers + + + USART1 + USART1 global Interrupt + 27 + + + + SR + SR + Status register + 0x0 + 0x20 + 0x00C0 + + + ABRRQ + Automate baudrate detection requeset + 12 + 1 + write-only + + + ABRE + Automate baudrate detection error flag + 11 + 1 + read-only + + + ABRF + Automate baudrate detection flag + 10 + 1 + read-only + + + CTS + CTS flag + 9 + 1 + read-write + + + TXE + Transmit data register + empty + 7 + 1 + read-only + + + TC + Transmission complete + 6 + 1 + read-write + + + RXNE + Read data register not + empty + 5 + 1 + read-write + + + IDLE + IDLE line detected + 4 + 1 + read-only + + + ORE + Overrun error + 3 + 1 + read-only + + + NE + Noise error flag + 2 + 1 + read-only + + + FE + Framing error + 1 + 1 + read-only + + + PE + Parity error + 0 + 1 + read-only + + + + + DR + DR + Data register + 0x4 + 0x20 + read-write + 0x00000000 + + + DR + Data value + 0 + 9 + + + + + BRR + BRR + Baud rate register + 0x8 + 0x20 + read-write + 0x0000 + + + DIV_Mantissa + mantissa of USARTDIV + 4 + 12 + + + DIV_Fraction + fraction of USARTDIV + 0 + 4 + + + + + CR1 + CR1 + Control register 1 + 0xC + 0x20 + read-write + 0x0000 + + + UE + USART enable + 13 + 1 + + + M + Word length + 12 + 1 + + + WAKE + Wakeup method + 11 + 1 + + + PCE + Parity control enable + 10 + 1 + + + PS + Parity selection + 9 + 1 + + + PEIE + PE interrupt enable + 8 + 1 + + + TXEIE + TXE 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 + + + RWU + Receiver wakeup + 1 + 1 + + + SBK + Send break + 0 + 1 + + + + + CR2 + CR2 + Control register 2 + 0x10 + 0x20 + read-write + 0x0000 + + + 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 + + + ADD + Address of the USART node + 0 + 4 + + + + + CR3 + CR3 + Control register 3 + 0x14 + 0x20 + read-write + 0x0000 + + + ABRMOD + Auto baudrate mode + 13 + 2 + + + ABREN + Auto baudrate enable + 12 + 1 + + + OVER8 + Oversampling mode + 11 + 1 + + + CTSIE + CTS interrupt enable + 10 + 1 + + + CTSE + CTS enable + 9 + 1 + + + RTSE + RTS enable + 8 + 1 + + + HDSEL + Half-duplex selection + 3 + 1 + + + IRLP + IrDA low-power + 2 + 1 + + + IREN + IrDA mode enable + 1 + 1 + + + EIE + Error interrupt enable + 0 + 1 + + + + + + + IWDG + Independent watchdog + IWDG + 0x40003000 + + 0x0 + 0x400 + registers + + + + KR + KR + Key register (IWDG_KR) + 0x0 + 0x20 + write-only + 0x00000000 + + + KEY + Key value + 0 + 16 + + + + + PR + PR + Prescaler register (IWDG_PR) + 0x4 + 0x20 + read-write + 0x00000000 + + + PR + Prescaler divider + 0 + 3 + + + + + RLR + RLR + Reload register (IWDG_RLR) + 0x8 + 0x20 + read-write + 0x00000FFF + + + RL + Watchdog counter reload + value + 0 + 12 + + + + + SR + SR + Status register (IWDG_SR) + 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 (IWDG_SR) + 0x10 + 0x20 + read-only + 0x00000000 + + + WIN + window counter + 0 + 12 + + + + + + + TIM1 + Advanced timer + TIM + 0x40012C00 + + 0x0 + 0x400 + registers + + + TIM1_BRK_UP_TRG_COM + TIM1 Break, Update, Trigger and Commutation Interrupt + 13 + + + TIM1_CC + TIM1 Capture Compare Interrupt + 14 + + + + CR1 + CR1 + control register 1 + 0x0 + 0x20 + read-write + 0x0000 + + + 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 + + + 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 + + + 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 + + + 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 bit + 3 + 1 + + + SMS + Slave mode selection + 0 + 3 + + + + + DIER + DIER + DMA/Interrupt enable register + 0xC + 0x20 + read-write + 0x0000 + + + BIE + Break interrupt enable + 7 + 1 + + + TIE + Trigger interrupt enable + 6 + 1 + + + COMIE + COM interrupt enable + 5 + 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 + + + BIF + Break interrupt flag + 7 + 1 + + + TIF + Trigger interrupt flag + 6 + 1 + + + COMIF + COM interrupt flag + 5 + 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 + + + BG + Break generation + 7 + 1 + + + TG + Trigger generation + 6 + 1 + + + COMG + Capture/Compare control update + generation + 5 + 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 (output + mode) + 0x18 + 0x20 + read-write + 0x00000000 + + + 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 + + + ICPSC + Input capture 1 prescaler + 2 + 2 + + + CC1S + Capture/Compare 1 + selection + 0 + 2 + + + + + CCMR2_Output + CCMR2_Output + capture/compare mode register (output + mode) + 0x1C + 0x20 + read-write + 0x00000000 + + + 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 + + + CC4P + Capture/Compare 3 output + Polarity + 13 + 1 + + + CC4E + Capture/Compare 4 output + enable + 12 + 1 + + + CC3NP + Capture/Compare 3 output + Polarity + 11 + 1 + + + CC3NE + Capture/Compare 3 complementary output + enable + 10 + 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 + + + CC2NE + Capture/Compare 2 complementary output + enable + 6 + 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 + + + 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 + read-write + 0x00000000 + + + CNT + counter value + 0 + 16 + + + + + PSC + PSC + prescaler + 0x28 + 0x20 + read-write + 0x0000 + + + PSC + Prescaler value + 0 + 16 + + + + + ARR + ARR + auto-reload register + 0x2C + 0x20 + read-write + 0x00000000 + + + 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 + + + + + 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 + + + MOE + Main output enable + 15 + 1 + + + AOE + Automatic output enable + 14 + 1 + + + BKP + Break polarity + 13 + 1 + + + BKE + Break enable + 12 + 1 + + + OSSR + Off-state selection for Run + mode + 11 + 1 + + + OSSI + Off-state selection for Idle + mode + 10 + 1 + + + LOCK + Lock configuration + 8 + 2 + + + DTG + Dead-time generator setup + 0 + 8 + + + + + + + TIM16 + General purpose timer + TIM + 0x40014400 + + 0x00 + 0x400 + registers + + + TIM16 + TIM16 global Interrupt + 21 + + + + CR1 + CR1 + TIM16 control register1 + 0x0 + 0x20 + read-write + 0x0000 + + + CKD + Prescaler factor + 8 + 2 + + + ARPE + Auto-reload preload enable + 7 + 1 + + + OPM + One pulse mode + 3 + 1 + + + URS + Update request source + 2 + 1 + + + UDIS + Update disable + 1 + 1 + + + CEN + Counter enable + 0 + 1 + + + + + DIER + DIER + DMA/Interrupt enable register + 0xC + 0x20 + read-write + 0x0000 + + + UIE + Update interrupt enable + 0 + 1 + + + + + SR + SR + status register + 0x10 + 0x20 + read-write + 0x0000 + + + UIF + Update interrupt flag + 0 + 1 + + + + + EGR + EGR + event generation register + 0x14 + 0x20 + write-only + 0x0000 + + + UG + Update generation + 0 + 1 + + + + + CNT + CNT + counter + 0x24 + 0x20 + read-write + 0x00000000 + + + CNT + counter value + 0 + 16 + + + + + PSC + PSC + prescaler + 0x28 + 0x20 + read-write + 0x0000 + + + PSC + Prescaler value + 0 + 16 + + + + + ARR + ARR + auto-reload register + 0x2C + 0x20 + read-write + 0x00000000 + + + ARR + Auto-reload value + 0 + 16 + + + + + RCR + RCR + repetition counter register + 0x30 + 0x20 + read-write + 0x0000 + + + REP + Repetition counter value + 0 + 8 + + + + + + + SYSCFG + System configuration controller + SYSCFG + 0x40010000 + + 0x0 + 0x30 + registers + + + + CFGR1 + CFGR1 + SYSCFG configuration register + 1 + 0x0 + 0x20 + read-write + 0x00000000 + + + I2C_PF1_ANF + Analog filter enable control driving capability + activation bits PF1 + 30 + 1 + + + I2C_PF0_ANF + Analog filter enable control driving capability + activation bits PF0 + 29 + 1 + + + I2C_PB8_ANF + Analog filter enable control driving capability + activation bits PB8 + 28 + 1 + + + I2C_PB7_ANF + Analog filter enable control driving capability + activation bits PB7 + 27 + 1 + + I2C_PB6_ANF + Analog filter enable control driving capability + activation bits PB6 + 26 + 1 + + + I2C_PA12_ANF + Analog filter enable control driving capability + activation bits PA12 + 25 + 1 + + + I2C_PA11_ANF + Analog filter enable control driving capability + activation bits PA11 + 24 + 1 + + + I2C_PA10_ANF + Analog filter enable control driving capability + activation bits PA10 + 23 + 1 + + + I2C_PA9_ANF + Analog filter enable control driving capability + activation bits PA9 + 22 + 1 + + + I2C_PA8_ANF + Analog filter enable control driving capability + activation bits PA8 + 21 + 1 + + + I2C_PA7_ANF + Analog filter enable control driving capability + activation bits PA7 + 20 + 1 + + + I2C_PA3_ANF + Analog filter enable control driving capability + activation bits PA3 + 19 + 1 + + + I2C_PA2_ANF + Analog filter enable control driving capability + activation bits PA2 + 18 + 1 + + + MEM_MODE + Memory mapping selection + bits + 0 + 2 + + + + + CFGR2 + CFGR2 + SYSCFG configuration register + 2 + 0x18 + 0x20 + read-write + 0x00000000 + + + ETR_SRC_TIM1 + TIM1 ETR source selection + 9 + 2 + + + LOCKUP_LOCK + Cortex-M0+ LOCKUP bit enable + bit + 0 + 1 + + + + + + + FLASH + Flash + Flash + 0x40022000 + + 0x0 + 0x400 + registers + + + FLASH + FLASH global Interrupt + 3 + + + + ACR + ACR + Access control register + 0x0 + 0x20 + read-write + 0x00000600 + + + LATENCY + Latency + 0 + 1 + + + + + KEYR + KEYR + Flash key register + 0x8 + 0x20 + write-only + 0x00000000 + + + KEY + Flash key + 0 + 32 + + + + + OPTKEYR + OPTKEYR + Option byte key register + 0xC + 0x20 + write-only + 0x00000000 + + + OPTKEY + Option byte key + 0 + 32 + + + + + SR + SR + Status register + 0x10 + 0x20 + read-write + 0x00000000 + + + BSY + Busy + 16 + 1 + + + OPTVERR + Option and Engineering bits loading + validity error + 15 + 1 + + + WRPERR + Write protected error + 4 + 1 + + + EOP + End of operation + 0 + 1 + + + + + CR + CR + Flash control register + 0x14 + 0x20 + read-write + 0xC0000000 + + + LOCK + FLASH_CR Lock + 31 + 1 + + + OPTLOCK + Options Lock + 30 + 1 + + + OBL_LAUNCH + Force the option byte + loading + 27 + 1 + + + ERRIE + Error interrupt enable + 25 + 1 + + + EOPIE + End of operation interrupt + enable + 24 + 1 + + + PGTSTRT + Flash main memory program start + 19 + 1 + + + OPTSTRT + Option byte program start + 17 + 1 + + + SER + Sector erase + 11 + 1 + + + MER + Mass erase + 2 + 1 + + + PER + Page erase + 1 + 1 + + + PG + Programming + 0 + 1 + + + + + OPTR + OPTR + Flash option register + 0x20 + 0x20 + read-write + 0x4F55B0AA + + + nBOOT1 + Boot configuration + 15 + 1 + + + NRST_MODE + NRST_MODE + 14 + 1 + + + IDWG_SW + Independent watchdog + selection + 12 + 1 + + + BORF_LEV + These bits contain the VDD supply level + threshold that activates the reset + 9 + 3 + + + BOREN + BOR reset Level + 8 + 1 + + + RDP + Read Protection + 0 + 8 + + + + + SDKR + SDKR + Flash SDK address + register + 0x24 + 0x20 + read-write + 0xFFE0001F + + + SDK_END + SDK area end address + 8 + 5 + + + SDK_STRT + SDK area start address + 0 + 5 + + + + + WRPR + WRPR + Flash WRP address + register + 0x2C + 0x20 + read-write + 0x0000FFFF + + + WRP + WRP address + 0 + 16 + + + + + STCR + STCR + Flash sleep time config + register + 0x90 + 0x20 + read-write + 0x00006400 + + + SLEEP_TIME + FLash sleep time configuration(counter based on HSI_10M) + 8 + 8 + + + SLEEP_EN + FLash sleep enable + 0 + 1 + + + + + TS0 + TS0 + Flash TS0 + register + 0x100 + 0x20 + read-write + 0x000000B4 + + + TS0 + FLash TS0 register + 0 + 8 + + + + + TS1 + TS1 + Flash TS1 + register + 0x104 + 0x20 + read-write + 0x000001B0 + + + TS1 + FLash TS1 register + 0 + 9 + + + + + TS2P + TS2P + Flash TS2P + register + 0x108 + 0x20 + read-write + 0x000000B4 + + + TS2P + FLash TS2P register + 0 + 8 + + + + + TPS3 + TPS3 + Flash TPS3 + register + 0x10C + 0x20 + read-write + 0x000006C0 + + + TPS3 + FLash TPS3 register + 0 + 11 + + + + + TS3 + TS3 + Flash TS3 + register + 0x110 + 0x20 + read-write + 0x000000B4 + + + TS3 + FLash TS3 register + 0 + 8 + + + + + PERTPE + PERTPE + Flash PERTPE + register + 0x114 + 0x20 + read-write + 0x0000EA60 + + + PERTPE + FLash PERTPE register + 0 + 17 + + + + + SMERTPE + SMERTPE + Flash SMERTPE + register + 0x118 + 0x20 + read-write + 0x0000FD20 + + + SMERTPE + FLash SMERTPE register + 0 + 17 + + + + + PRGTPE + PRGTPE + Flash PRGTPE + register + 0x11C + 0x20 + read-write + 0x00008CA0 + + + PRGTPE + FLash PRGTPE register + 0 + 16 + + + + + PRETPE + PRETPE + Flash PRETPE + register + 0x120 + 0x20 + read-write + 0x000012C0 + + + PRETPE + FLash PRETPE register + 0 + 13 + + + + + + + CRC + CRC calculation unit + CRC + 0x40023000 + + 0x0 + 0x400 + registers + + + + DR + DR + Data register + 0x0 + 0x20 + read-write + 0xFFFFFFFF + + + DR + Data Register + 0 + 32 + + + + + IDR + IDR + Independent Data register + 0x4 + 0x20 + read-write + 0x00000000 + + + IDR + Independent Data register + 0 + 8 + + + + + CR + CR + Control register + 0x8 + 0x20 + write-only + 0x00000000 + + + RESET + Reset bit + 0 + 1 + + + + + + + SPI1 + Serial peripheral interface + SPI + 0x40013000 + + 0x0 + 0x400 + registers + + + SPI1 + SPI1 global Interrupt + 25 + + + + CR1 + CR1 + control register 1 + 0x0 + 0x20 + read-write + 0x0000 + + + BIDIMODE + Bidirectional data mode + enable + 15 + 1 + + + BIDIOE + Output enable in bidirectional + mode + 14 + 1 + + + RXONLY + Receive only + 10 + 1 + + + SSM + Software slave management + 9 + 1 + + + SSI + Internal slave selection + 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 + 0x0000 + + + SLVFM + Slave fast mode enable + 15 + 1 + + + FRXTH + FIFO reception threshold + 12 + 1 + + + DS + Data length + + 11 + 1 + + + TXEIE + Tx buffer empty interrupt + enable + 7 + 1 + + + RXNEIE + RX buffer not empty interrupt + enable + 6 + 1 + + + ERRIE + Error interrupt enable + 5 + 1 + + + SSOE + SS output enable + 2 + 1 + + + + + SR + SR + status register + 0x8 + 0x20 + 0x0002 + + + FTLVL + FIFO transmission level + 11 + 2 + read-only + + + FRLVL + FIFO reception level + 9 + 2 + read-only + + + BSY + Busy flag + 7 + 1 + read-only + + + OVR + Overrun flag + 6 + 1 + read-only + + + MODF + Mode fault + 5 + 1 + read-only + + + TXE + Transmit buffer empty + 1 + 1 + read-only + + + RXNE + Receive buffer not empty + 0 + 1 + read-only + + + + + DR + DR + data register + 0xC + 0x20 + read-write + 0x0000 + + + DR + Data register + 0 + 16 + + + + + + + I2C + Inter integrated circuit + I2C + 0x40005400 + + 0x0 + 0x400 + registers + + + I2C1 + I2C1 global Interrupt + 23 + + + + CR1 + CR1 + Control register 1 + 0x0 + 0x20 + read-write + 0x0000 + + + SWRST + Software reset + 15 + 1 + + + PEC + Packet error checking + 12 + 1 + + + POS + Acknowledge/PEC Position (for data + reception) + 11 + 1 + + + ACK + Acknowledge enable + 10 + 1 + + + STOP + Stop generation + 9 + 1 + + + START + Start generation + 8 + 1 + + + NOSTRETCH + Clock stretching disable (Slave + mode) + 7 + 1 + + + ENGC + General call enable + 6 + 1 + + + ENPEC + PEC enable + 5 + 1 + + + PE + Peripheral enable + 0 + 1 + + + + + CR2 + CR2 + Control register 2 + 0x4 + 0x20 + read-write + 0x0000 + + + ITBUFEN + Buffer interrupt enable + 10 + 1 + + + ITEVTEN + Event interrupt enable + 9 + 1 + + + ITERREN + Error interrupt enable + 8 + 1 + + + FREQ + Peripheral clock frequency + 0 + 6 + + + + + OAR1 + OAR1 + Own address register 1 + 0x8 + 0x20 + read-write + 0x0000 + + + ADD + Interface address + 1 + 7 + + + + + DR + DR + Data register + 0x10 + 0x20 + read-write + 0x0000 + + + DR + 8-bit data register + 0 + 8 + + + + + SR1 + SR1 + Status register 1 + 0x14 + 0x20 + 0x0000 + + + PECERR + PEC Error in reception + 12 + 1 + read-write + + + OVR + Overrun/Underrun + 11 + 1 + read-write + + + AF + Acknowledge failure + 10 + 1 + read-write + + + ARLO + Arbitration lost (master + mode) + 9 + 1 + read-write + + + BERR + Bus error + 8 + 1 + read-write + + + TxE + Data register empty + (transmitters) + 7 + 1 + read-only + + + RxNE + Data register not empty + (receivers) + 6 + 1 + read-only + + + STOPF + Stop detection (slave + mode) + 4 + 1 + read-only + + + BTF + Byte transfer finished + 2 + 1 + read-only + + + ADDR + Address sent (master mode)/matched + (slave mode) + 1 + 1 + read-only + + + SB + Start bit (Master mode) + 0 + 1 + read-only + + + + + SR2 + SR2 + Status register 2 + 0x18 + 0x20 + read-only + 0x0000 + + + PEC + acket error checking + register + 8 + 8 + + + DUALF + Dual flag (Slave mode) + 7 + 1 + + + GENCALL + General call address (Slave + mode) + 4 + 1 + + + TRA + Transmitter/receiver + 2 + 1 + + + BUSY + Bus busy + 1 + 1 + + + MSL + Master/slave + 0 + 1 + + + + + CCR + CCR + Clock control register + 0x1C + 0x20 + read-write + 0x0000 + + + F_S + I2C master mode selection + 15 + 1 + + + DUTY + Fast mode duty cycle + 14 + 1 + + + CCR + Clock control register in Fast/Standard + mode (Master mode) + 0 + 12 + + + + + TRISE + TRISE + TRISE register + 0x20 + 0x20 + read-write + 0x0002 + + + TRISE + Maximum rise time in Fast/Standard mode + (Master mode) + 0 + 6 + + + + + + + DBGMCU + Debug support + DBGMCU + 0x40015800 + + 0x0 + 0x400 + registers + + + + IDCODE + IDCODE + MCU Device ID Code Register + 0x0 + 0x20 + read-only + 0x0 + + + + + + CR + CR + Debug MCU Configuration + Register + 0x4 + 0x20 + read-write + 0x0 + + + DBG_STOP + Debug Stop Mode + 1 + 1 + + + + + APB_FZ1 + APB_FZ1 + APB Freeze Register1 + 0x8 + 0x20 + read-write + 0x0 + + + DBG_IWDG_STOP + Debug Independent Wachdog stopped when + Core is halted + 12 + 1 + + + DBG_LPTIM_STOP + Debug LPTIM stopped when Core is + halted + 31 + 1 + + + + + APB_FZ2 + APB_FZ2 + APB Freeze Register2 + 0xC + 0x20 + read-write + 0x0 + + + DBG_TIMER1_STOP + Debug Timer 1 stopped when Core is + halted + 11 + 1 + + + DBG_TIMER16_STOP + Debug Timer 16 stopped when Core is + halted + 17 + 1 + + + + + + + diff --git a/Misc/SVD/py32f002xx.svd b/Misc/SVD/py32f002xx.svd new file mode 100644 index 0000000..aebe47e --- /dev/null +++ b/Misc/SVD/py32f002xx.svd @@ -0,0 +1,7953 @@ + + + + Puya + Puya + PY32F0xx_DFP + + PY32F0 + 1.0.0 + Arm 32-bit Cortex-M0+ Microcontroller based device, CPU clock up to 48 MHz. + + + + CM0+ + r0p1 + little + false + false + 4 + false + + + + 8 + 32 + 32 + read-write + 0x00000000 + 0xFFFFFFFF + + + ADC + Analog to Digital Converter + ADC + 0x40012400 + + 0x0 + 0x400 + registers + + + ADC + ADC Interrupt through EXTI Lines 17 and 18 + 12 + + + + ISR + ISR + ADC interrupt and status register + 0x0 + 0x20 + read-write + 0x00000000 + + + AWD + ADC analog watchdog flag + 7 + 1 + + + OVR + ADC group regular overrun + flag + 4 + 1 + + + EOSEQ + 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 + + + + + IER + IER + ADC interrupt enable register + 0x4 + 0x20 + read-write + 0x00000000 + + + AWDIE + ADC analog watchdog + interrupt + 7 + 1 + + + OVRIE + ADC group regular overrun + interrupt + 4 + 1 + + + EOSEQIE + 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 + + + + + CR + CR + ADC control register + 0x8 + 0x20 + read-write + 0x00000000 + + + ADCAL + ADC group regular conversion + calibration + 31 + 1 + + + VERBUFF_SEL + desc VERBUFF_SEL + 6 + 2 + + + VREF_BUFFERE + desc VREF_BUFFERE + 5 + 1 + + + ADSTP + ADC group regular conversion + stop + 4 + 1 + + + ADSTART + ADC group regular conversion + start + 2 + 1 + + + ADEN + ADC enable + 0 + 1 + + + + + CFGR1 + CFGR1 + ADC configuration register 1 + 0xC + 0x20 + read-write + 0x00000000 + + + AWDCH + ADC analog watchdog monitored channel + selection + 26 + 4 + + + AWDEN + ADC analog watchdog enable on scope + ADC group regular + 23 + 1 + + + AWDSGL + ADC analog watchdog monitoring a + single channel or all channels + 22 + 1 + + + DISCEN + ADC group regular sequencer + discontinuous mode + 16 + 1 + + + WAIT + Wait conversion mode + 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 + 3 + + + ALIGN + ADC data alignement + 5 + 1 + + + RESSEL + ADC data resolution + 3 + 2 + + + SCANDIR + Scan sequence direction + 2 + 1 + + + + + CFGR2 + CFGR2 + ADC configuration register 2 + 0x10 + 0x20 + read-write + 0x00000000 + + + CKMODE + ADC clock mode + 28 + 4 + + + + + SMPR + SMPR + ADC sampling time register + 0x14 + 0x20 + read-write + 0x00000000 + + + SMP + Sampling time selection + 0 + 3 + + + + + TR + TR + ADC analog watchdog 1 threshold register + 0x20 + 0x20 + read-write + 0x0FFF0000 + + + HT + ADC analog watchdog threshold + high + 16 + 12 + + + LT + ADC analog watchdog threshold + low + 0 + 12 + + + + + CHSELR + CHSELR + ADC group regular sequencer register + 0x28 + 0x20 + read-write + 0x0FFF0000 + + + CHSEL12 + Channel-12 selection + 12 + 1 + + + CHSEL11 + Channel-11 selection + 11 + 1 + + + CHSEL9 + Channel-9 selection + 9 + 1 + + + CHSEL8 + Channel-8 selection + 8 + 1 + + + CHSEL7 + Channel-7 selection + 7 + 1 + + + CHSEL6 + Channel-6 selection + 6 + 1 + + + CHSEL5 + Channel-5 selection + 5 + 1 + + + CHSEL4 + Channel-4 selection + 4 + 1 + + + CHSEL3 + Channel-3 selection + 3 + 1 + + + CHSEL2 + Channel-2 selection + 2 + 1 + + + CHSEL1 + Channel-1 selection + 1 + 1 + + + CHSEL0 + Channel-0 selection + 0 + 1 + + + + + DR + DR + ADC group regular data register + 0x40 + 0x20 + read-only + 0x00000000 + + + DATA + ADC group regular conversion + data + 0 + 16 + + + + + CCSR + CCSR + ADC calibration configuration and status register + 0x44 + 0x20 + read-write + 0x00000000 + + + CALON + Calibration flag + 31 + 1 + read-only + + + CALFAIL + Calibration fail flag + 30 + 1 + + + OFFSUC + desc OFFSUC + 29 + 1 + + + CALSET + Calibration factor selection + 15 + 1 + + + CALBYP + desc CALBYP + 14 + 1 + + + CALSMP + Calibration sample time selection + 12 + 2 + + + CALSEL + Calibration contents selection + 11 + 1 + + + + + CALRR1 + CALRR1 + ADC calibration result register 1 + 0x48 + 0x20 + read-only + 0x00000000 + + + CALBOUT + offset result + 16 + 7 + + + CALC5OUT + C5 result + 8 + 8 + + + CALC4OUT + C4 result + 0 + 8 + + + + + CALRR2 + CALRR2 + ADC calibration result register 2 + 0x4C + 0x20 + read-only + 0x00000000 + + + CALC3OUT + C3 result + 24 + 8 + + + CALC2OUT + C2 result + 16 + 8 + + + CALC1OUT + C1 result + 8 + 8 + + + CALC0OUT + C0 result + 0 + 8 + + + + + CALFIR1 + CALFIR1 + ADC calibration factor input register 1 + 0x50 + 0x20 + read-write + 0x00000000 + + + CALBIO + Calibration offset factor input + 16 + 7 + + + CALC5IO + Calibration C5 factor input + 8 + 8 + + + CALC4IO + Calibration C4 factor input + 0 + 8 + + + + + CALFIR2 + CALFIR2 + ADC calibration factor input register 2 + 0x54 + 0x20 + read-write + 0x00000000 + + + CALC3IO + Calibration C3 factor input + 24 + 8 + + + CALC2IO + Calibration C2 factor input + 16 + 8 + + + CALC1IO + Calibration C1 factor input + 8 + 8 + + + CALC0IO + Calibration C0 factor input + 0 + 8 + + + + + CCR + CCR + ADC common configuration register + 0x308 + 0x20 + read-write + 0x00000000 + + + TSEN + Temperature sensor enable + 23 + 1 + + + VREFEN + VREFINT enable + 22 + 1 + + + + + + + RCC + Reset and clock control + RCC + 0x40021000 + + 0x0 + 0x400 + registers + + + RCC + RCC global Interrupt + 4 + + + + CR + CR + Clock control register + 0x0 + 0x20 + read-write + 0x00000100 + + + HSIDIV + HSI16 clock division + factor + 11 + 3 + + + HSIRDY + HSI16 clock ready flag + 10 + 1 + + + HSION + HSI16 clock enable + 8 + 1 + + + + + ICSCR + ICSCR + Internal clock sources calibration + register + 0x4 + 0x20 + 0x10000000 + + + LSI_STARTUP + LSI startup time + 26 + 2 + read-write + + + LSI_TRIM + LSI clock trimming + 16 + 9 + read-write + + + HSI_FS + HSI frequency selection + 13 + 3 + read-write + + + HSI_TRIM + HSI clock trimming + 0 + 13 + read-write + + + + + CFGR + CFGR + Clock configuration register + 0x8 + 0x20 + 0x00000000 + + + MCOPRE + Microcontroller clock output + prescaler + 28 + 3 + read-write + + + MCOSEL + Microcontroller clock + output + 24 + 3 + read-write + + + PPRE + APB prescaler + 12 + 3 + read-write + + + HPRE + AHB prescaler + 8 + 4 + read-write + + + SWS + System clock switch status + 3 + 3 + read-only + + + SW + System clock switch + 0 + 3 + read-write + + + + + ECSCR + ECSCR + External clock source control register + 0x10 + 0x20 + 0x00000000 + + + LSE_DRIVER + desc LSE_DRIVER + 16 + 2 + read-write + + + + + CIER + CIER + Clock interrupt enable + register + 0x18 + 0x20 + read-write + 0x00000000 + + + HSIRDYIE + HSI ready interrupt enable + 3 + 1 + + + LSERDYIE + LSE ready interrupt enable + 1 + 1 + + + LSIRDYIE + LSI ready interrupt enable + 0 + 1 + + + + + CIFR + CIFR + Clock interrupt flag register + 0x1C + 0x20 + read-only + 0x00000000 + + + LSECSSF + LSE clock secure system interrupt flag + 9 + 1 + + + HSIRDYF + HSI ready interrupt flag + 3 + 1 + + + LSERDYF + LSE ready interrupt flag + 2 + 1 + + + LSIRDYF + LSI ready interrupt flag + 0 + 1 + + + + + CICR + CICR + Clock interrupt clear register + 0x20 + 0x20 + write-only + 0x00000000 + + + LSECSSC + LSE clock secure system interrupt flag clear + 9 + 1 + + + HSIRDYC + HSI ready interrupt clear + 3 + 1 + + + LSERDYC + LSE ready interrupt clear + 1 + 1 + + + LSIRDYC + LSI ready interrupt clear + 0 + 1 + + + + + IOPRSTR + IOPRSTR + GPIO reset register + 0x24 + 0x20 + read-write + 0x00000000 + + + GPIOCRST + I/O port C reset + 2 + 1 + + + GPIOBRST + I/O port B reset + 1 + 1 + + + GPIOARST + I/O port A reset + 0 + 1 + + + + + AHBRSTR + AHBRSTR + AHB peripheral reset register + 0x28 + 0x20 + read-write + 0x00000000 + + + CRCRST + CRC reset + 12 + 1 + + + FLASHRST + FLASH reset + 8 + 1 + + + DMARST + DMA reset + 0 + 1 + + + + + APBRSTR1 + APBRSTR1 + APB peripheral reset register 1 + 0x2C + 0x20 + read-write + 0x00000000 + + + LPTIMRST + Low Power Timer reset + 31 + 1 + + + PWRRST + Power interface reset + 28 + 1 + + + DBGRST + Debug support reset + 27 + 1 + + + I2CRST + I2C reset + 21 + 1 + + + TIM6RST + TIM6 reset + 4 + 1 + + + + + APBRSTR2 + APBRSTR2 + APB peripheral reset register + 2 + 0x30 + 0x20 + read-write + 0x00000000 + + + ADCRST + ADC reset + 20 + 1 + + + USART1RST + USART1 reset + 14 + 1 + + + SPI1RST + SPI1 reset + 12 + 1 + + + TIM1RST + TIM1 timer reset + 11 + 1 + + + SYSCFGRST + SYSCFG and COMP + reset + 0 + 1 + + + + + IOPENR + IOPENR + GPIO clock enable register + 0x34 + 0x20 + read-write + 0x00000000 + + + GPIOCEN + I/O port C clock enable + 2 + 1 + + + GPIOBEN + I/O port B clock enable + 1 + 1 + + + GPIOAEN + I/O port A clock enable + 0 + 1 + + + + + AHBENR + AHBENR + AHB peripheral clock enable + register + 0x38 + 0x20 + read-write + 0x00000000 + + + CRCEN + CRC clock enable + 12 + 1 + + + SRAMEN + SRAM memory interface clock enable + 9 + 1 + + + FLASHEN + Flash memory interface clock enable + 8 + 1 + + + DMAEN + DMA interface clock enable + 0 + 1 + + + + + APBENR1 + APBENR1 + APB peripheral clock enable register + 1 + 0x3C + 0x20 + read-write + 0x00000000 + + + LPTIMEN + LPTIM clock enable + 31 + 1 + + + PWREN + Power interface clock + enable + 28 + 1 + + + DBGEN + Debug support clock enable + 27 + 1 + + + I2CEN + I2C clock enable + 21 + 1 + + + TIM6EN + TIM6 clock enable + 4 + 1 + + + + + APBENR2 + APBENR2 + APB peripheral clock enable register + 2 + 0x40 + 0x20 + read-write + 0x00000000 + + + ADCEN + ADC clock enable + 20 + 1 + + + USART1EN + USART1 clock enable + 14 + 1 + + + SPI1EN + SPI1 clock enable + 12 + 1 + + + TIM1EN + TIM1 timer clock enable + 11 + 1 + + + SYSCFGEN + SYSCFG, COMP and VREFBUF clock + enable + 0 + 1 + + + + + CCIPR + CCIPR + Peripherals independent clock configuration + register + 0x54 + 0x20 + read-write + 0x00000000 + + + LPTIM1SEL + LPTIM1 clock source + selection + 18 + 2 + + + + + BDCR + BDCR + RTC domain control register + 0x5C + 0x20 + read-write + 0x00000000 + + + LSCOSEL + + Low-speed clock output + selection + + 25 + 1 + + + LSCOEN + + Low-speed clock output (LSCO) + enable + + 24 + 1 + + + LSECSSD + LSE CSS detect + 6 + 1 + + + LSECSSON + LSE CSS enable + 5 + 1 + + + LSEBYP + LSE oscillator bypass + 2 + 1 + + + LSERDY + LSE oscillator ready + 1 + 1 + + + LSEON + LSE oscillator enable + 0 + 1 + + + + + CSR + CSR + Control/status register + 0x60 + 0x20 + read-write + 0x00000000 + + + IWDGRSTF + Independent window watchdog reset + flag + 29 + 1 + + + SFTRSTF + Software reset flag + 28 + 1 + + + PWRRSTF + BOR or POR/PDR flag + 27 + 1 + + + PINRSTF + Pin reset flag + 26 + 1 + + + OBLRSTF + Option byte loader reset + flag + 25 + 1 + + + RMVF + Remove reset flags + 23 + 1 + + + PINRST_FLTDIS + desc PINRST_FLTDIS + 8 + 1 + + + LSIRDY + LSI oscillator ready + 1 + 1 + + + LSION + LSI oscillator enable + 0 + 1 + + + + + + + PWR + Power control + PWR + 0x40007000 + + 0x0 + 0x400 + registers + + + + CR1 + CR1 + Power control register 1 + 0x0 + 0x20 + read-write + 0x00030000 + + + HSION_CTRL + HSI open time control + 19 + 1 + + + SRAM_RETV + SRAM retention voltage control + 16 + 3 + + + LPR + Low-power run + 14 + 2 + + + FLS_SLPTIME + Flash wait time after wakeup from the stop mode + 12 + 2 + + + MRRDY_TIME + Time selection wakeup from LP to VR + 10 + 2 + + + VOS + Voltage scaling range + selection + 8 + 2 + + + DBP + Disable backup domain write + protection + 7 + 1 + + + BIAS_CR_SEL + MR Bias current selection + 4 + 1 + + + BIAS_CR + MR Bias current + 0 + 4 + + + + + CR2 + CR2 + Power control register 2 + 0x4 + 0x20 + read-write + 0x00000500 + + + FLT_TIME + Digital filter time configuration + 9 + 3 + + + FLTEN + Digital filter enable + 8 + 1 + + + + + + + GPIOA + General-purpose I/Os + GPIO + 0x50000000 + + 0x0 + 0x400 + registers + + + + MODER + MODER + GPIO port mode register + 0x0 + 0x20 + read-write + 0xEBFFFFFF + + + MODE15 + Port x configuration bits (y = + 0..15) + 30 + 2 + + + MODE14 + Port x configuration bits (y = + 0..15) + 28 + 2 + + + MODE13 + Port x configuration bits (y = + 0..15) + 26 + 2 + + + MODE12 + Port x configuration bits (y = + 0..15) + 24 + 2 + + + MODE11 + Port x configuration bits (y = + 0..15) + 22 + 2 + + + MODE10 + Port x configuration bits (y = + 0..15) + 20 + 2 + + + MODE9 + Port x configuration bits (y = + 0..15) + 18 + 2 + + + MODE8 + Port x configuration bits (y = + 0..15) + 16 + 2 + + + MODE7 + Port x configuration bits (y = + 0..15) + 14 + 2 + + + MODE6 + Port x configuration bits (y = + 0..15) + 12 + 2 + + + MODE5 + Port x configuration bits (y = + 0..15) + 10 + 2 + + + MODE4 + Port x configuration bits (y = + 0..15) + 8 + 2 + + + MODE3 + Port x configuration bits (y = + 0..15) + 6 + 2 + + + MODE2 + Port x configuration bits (y = + 0..15) + 4 + 2 + + + MODE1 + Port x configuration bits (y = + 0..15) + 2 + 2 + + + MODE0 + 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 + + + OSPEED15 + Port x configuration bits (y = + 0..15) + 30 + 2 + + + OSPEED14 + Port x configuration bits (y = + 0..15) + 28 + 2 + + + OSPEED13 + Port x configuration bits (y = + 0..15) + 26 + 2 + + + OSPEED12 + Port x configuration bits (y = + 0..15) + 24 + 2 + + + OSPEED11 + Port x configuration bits (y = + 0..15) + 22 + 2 + + + OSPEED10 + Port x configuration bits (y = + 0..15) + 20 + 2 + + + OSPEED9 + Port x configuration bits (y = + 0..15) + 18 + 2 + + + OSPEED8 + Port x configuration bits (y = + 0..15) + 16 + 2 + + + OSPEED7 + Port x configuration bits (y = + 0..15) + 14 + 2 + + + OSPEED6 + Port x configuration bits (y = + 0..15) + 12 + 2 + + + OSPEED5 + Port x configuration bits (y = + 0..15) + 10 + 2 + + + OSPEED4 + Port x configuration bits (y = + 0..15) + 8 + 2 + + + OSPEED3 + Port x configuration bits (y = + 0..15) + 6 + 2 + + + OSPEED2 + Port x configuration bits (y = + 0..15) + 4 + 2 + + + OSPEED1 + Port x configuration bits (y = + 0..15) + 2 + 2 + + + OSPEED0 + Port x configuration bits (y = + 0..15) + 0 + 2 + + + + + PUPDR + PUPDR + GPIO port pull-up/pull-down + register + 0xC + 0x20 + read-write + 0x24000000 + + + PUPD15 + Port x configuration bits (y = + 0..15) + 30 + 2 + + + PUPD14 + Port x configuration bits (y = + 0..15) + 28 + 2 + + + PUPD13 + Port x configuration bits (y = + 0..15) + 26 + 2 + + + PUPD12 + Port x configuration bits (y = + 0..15) + 24 + 2 + + + PUPD11 + Port x configuration bits (y = + 0..15) + 22 + 2 + + + PUPD10 + Port x configuration bits (y = + 0..15) + 20 + 2 + + + PUPD9 + Port x configuration bits (y = + 0..15) + 18 + 2 + + + PUPD8 + Port x configuration bits (y = + 0..15) + 16 + 2 + + + PUPD7 + Port x configuration bits (y = + 0..15) + 14 + 2 + + + PUPD6 + Port x configuration bits (y = + 0..15) + 12 + 2 + + + PUPD5 + Port x configuration bits (y = + 0..15) + 10 + 2 + + + PUPD4 + Port x configuration bits (y = + 0..15) + 8 + 2 + + + PUPD3 + Port x configuration bits (y = + 0..15) + 6 + 2 + + + PUPD2 + Port x configuration bits (y = + 0..15) + 4 + 2 + + + PUPD1 + Port x configuration bits (y = + 0..15) + 2 + 2 + + + PUPD0 + Port x configuration bits (y = + 0..15) + 0 + 2 + + + + + IDR + IDR + GPIO port input data register + 0x10 + 0x20 + read-only + 0x00000000 + + + ID15 + Port input data (y = + 0..15) + 15 + 1 + + + ID14 + Port input data (y = + 0..15) + 14 + 1 + + + ID13 + Port input data (y = + 0..15) + 13 + 1 + + + ID12 + Port input data (y = + 0..15) + 12 + 1 + + + ID11 + Port input data (y = + 0..15) + 11 + 1 + + + ID10 + Port input data (y = + 0..15) + 10 + 1 + + + ID9 + Port input data (y = + 0..15) + 9 + 1 + + + ID8 + Port input data (y = + 0..15) + 8 + 1 + + + ID7 + Port input data (y = + 0..15) + 7 + 1 + + + ID6 + Port input data (y = + 0..15) + 6 + 1 + + + ID5 + Port input data (y = + 0..15) + 5 + 1 + + + ID4 + Port input data (y = + 0..15) + 4 + 1 + + + ID3 + Port input data (y = + 0..15) + 3 + 1 + + + ID2 + Port input data (y = + 0..15) + 2 + 1 + + + ID1 + Port input data (y = + 0..15) + 1 + 1 + + + ID0 + Port input data (y = + 0..15) + 0 + 1 + + + + + ODR + ODR + GPIO port output data register + 0x14 + 0x20 + read-write + 0x00000000 + + + OD15 + Port output data (y = + 0..15) + 15 + 1 + + + OD14 + Port output data (y = + 0..15) + 14 + 1 + + + OD13 + Port output data (y = + 0..15) + 13 + 1 + + + OD12 + Port output data (y = + 0..15) + 12 + 1 + + + OD11 + Port output data (y = + 0..15) + 11 + 1 + + + OD10 + Port output data (y = + 0..15) + 10 + 1 + + + OD9 + Port output data (y = + 0..15) + 9 + 1 + + + OD8 + Port output data (y = + 0..15) + 8 + 1 + + + OD7 + Port output data (y = + 0..15) + 7 + 1 + + + OD6 + Port output data (y = + 0..15) + 6 + 1 + + + OD5 + Port output data (y = + 0..15) + 5 + 1 + + + OD4 + Port output data (y = + 0..15) + 4 + 1 + + + OD3 + Port output data (y = + 0..15) + 3 + 1 + + + OD2 + Port output data (y = + 0..15) + 2 + 1 + + + OD1 + Port output data (y = + 0..15) + 1 + 1 + + + OD0 + 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 + + + BR15 + Port Reset bit + 15 + 1 + + + BR14 + Port Reset bit + 14 + 1 + + + BR13 + Port Reset bit + 13 + 1 + + + BR12 + Port Reset bit + 12 + 1 + + + BR11 + Port Reset bit + 11 + 1 + + + BR10 + Port Reset bit + 10 + 1 + + + BR9 + Port Reset bit + 9 + 1 + + + BR8 + Port Reset bit + 8 + 1 + + + BR7 + Port Reset bit + 7 + 1 + + + BR6 + Port Reset bit + 6 + 1 + + + BR5 + Port Reset bit + 5 + 1 + + + BR4 + Port Reset bit + 4 + 1 + + + BR3 + Port Reset bit + 3 + 1 + + + BR2 + Port Reset bit + 2 + 1 + + + BR1 + Port Reset bit + 1 + 1 + + + BR0 + Port Reset bit + 0 + 1 + + + + + + + GPIOB + General-purpose I/Os + GPIO + 0x50000400 + + 0x0 + 0x400 + registers + + + + MODER + MODER + GPIO port mode register + 0x0 + 0x20 + read-write + 0xFFFFFFFF + + + MODE8 + Port x configuration bits (y = + 0..15) + 16 + 2 + + + MODE7 + Port x configuration bits (y = + 0..15) + 14 + 2 + + + MODE6 + Port x configuration bits (y = + 0..15) + 12 + 2 + + + MODE5 + Port x configuration bits (y = + 0..15) + 10 + 2 + + + MODE4 + Port x configuration bits (y = + 0..15) + 8 + 2 + + + MODE3 + Port x configuration bits (y = + 0..15) + 6 + 2 + + + MODE2 + Port x configuration bits (y = + 0..15) + 4 + 2 + + + MODE1 + Port x configuration bits (y = + 0..15) + 2 + 2 + + + MODE0 + Port x configuration bits (y = + 0..15) + 0 + 2 + + + + + OTYPER + OTYPER + GPIO port output type register + 0x4 + 0x20 + read-write + 0x00000000 + + + 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 + 0x00000000 + + + OSPEED8 + Port x configuration bits (y = + 0..15) + 16 + 2 + + + OSPEED7 + Port x configuration bits (y = + 0..15) + 14 + 2 + + + OSPEED6 + Port x configuration bits (y = + 0..15) + 12 + 2 + + + OSPEED5 + Port x configuration bits (y = + 0..15) + 10 + 2 + + + OSPEED4 + Port x configuration bits (y = + 0..15) + 8 + 2 + + + OSPEED3 + Port x configuration bits (y = + 0..15) + 6 + 2 + + + OSPEED2 + Port x configuration bits (y = + 0..15) + 4 + 2 + + + OSPEED1 + Port x configuration bits (y = + 0..15) + 2 + 2 + + + OSPEED0 + Port x configuration bits (y = + 0..15) + 0 + 2 + + + + + PUPDR + PUPDR + GPIO port pull-up/pull-down + register + 0xC + 0x20 + read-write + 0x00000000 + + + PUPD8 + Port x configuration bits (y = + 0..15) + 16 + 2 + + + PUPD7 + Port x configuration bits (y = + 0..15) + 14 + 2 + + + PUPD6 + Port x configuration bits (y = + 0..15) + 12 + 2 + + + PUPD5 + Port x configuration bits (y = + 0..15) + 10 + 2 + + + PUPD4 + Port x configuration bits (y = + 0..15) + 8 + 2 + + + PUPD3 + Port x configuration bits (y = + 0..15) + 6 + 2 + + + PUPD2 + Port x configuration bits (y = + 0..15) + 4 + 2 + + + PUPD1 + Port x configuration bits (y = + 0..15) + 2 + 2 + + + PUPD0 + Port x configuration bits (y = + 0..15) + 0 + 2 + + + + + IDR + IDR + GPIO port input data register + 0x10 + 0x20 + read-only + 0x00000000 + + + ID8 + Port input data (y = + 0..15) + 8 + 1 + + + ID7 + Port input data (y = + 0..15) + 7 + 1 + + + ID6 + Port input data (y = + 0..15) + 6 + 1 + + + ID5 + Port input data (y = + 0..15) + 5 + 1 + + + ID4 + Port input data (y = + 0..15) + 4 + 1 + + + ID3 + Port input data (y = + 0..15) + 3 + 1 + + + ID2 + Port input data (y = + 0..15) + 2 + 1 + + + ID1 + Port input data (y = + 0..15) + 1 + 1 + + + ID0 + Port input data (y = + 0..15) + 0 + 1 + + + + + ODR + ODR + GPIO port output data register + 0x14 + 0x20 + read-write + 0x00000000 + + + OD8 + Port output data (y = + 0..15) + 8 + 1 + + + OD7 + Port output data (y = + 0..15) + 7 + 1 + + + OD6 + Port output data (y = + 0..15) + 6 + 1 + + + OD5 + Port output data (y = + 0..15) + 5 + 1 + + + OD4 + Port output data (y = + 0..15) + 4 + 1 + + + OD3 + Port output data (y = + 0..15) + 3 + 1 + + + OD2 + Port output data (y = + 0..15) + 2 + 1 + + + OD1 + Port output data (y = + 0..15) + 1 + 1 + + + OD0 + Port output data (y = + 0..15) + 0 + 1 + + + + + BSRR + BSRR + GPIO port bit set/reset + register + 0x18 + 0x20 + write-only + 0x00000000 + + + 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 + + + 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 + + + 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 + + + BR8 + Port Reset bit + 8 + 1 + + + BR7 + Port Reset bit + 7 + 1 + + + BR6 + Port Reset bit + 6 + 1 + + + BR5 + Port Reset bit + 5 + 1 + + + BR4 + Port Reset bit + 4 + 1 + + + BR3 + Port Reset bit + 3 + 1 + + + BR2 + Port Reset bit + 2 + 1 + + + BR1 + Port Reset bit + 1 + 1 + + + BR0 + Port Reset bit + 0 + 1 + + + + + + + GPIOC + 0x50000800 + + + EXTI + External interrupt/event + controller + EXTI + 0x40021800 + + 0x0 + 0x400 + registers + + + EXTI0_1 + EXTI Line 0 and 1 Interrupt + 5 + + + EXTI2_3 + EXTI Line 2 and 3 Interrupt + 6 + + + EXTI4_15 + EXTI Line 4 to 15 Interrupt + 7 + + + + RTSR + RTSR + EXTI rising trigger selection + register + 0x0 + 0x20 + read-write + 0x00000000 + + + RT7 + Rising trigger event configuration bit + of Configurable Event input + 7 + 1 + + + RT6 + Rising trigger event configuration bit + of Configurable Event input + 6 + 1 + + + RT5 + Rising trigger event configuration bit + of Configurable Event input + 5 + 1 + + + RT4 + Rising trigger event configuration bit + of Configurable Event input + 4 + 1 + + + RT3 + Rising trigger event configuration bit + of Configurable Event input + 3 + 1 + + + RT2 + Rising trigger event configuration bit + of Configurable Event input + 2 + 1 + + + RT1 + Rising trigger event configuration bit + of Configurable Event input + 1 + 1 + + + RT0 + Rising trigger event configuration bit + of Configurable Event input + 0 + 1 + + + + + FTSR + FTSR + EXTI falling trigger selection + register + 0x4 + 0x20 + read-write + 0x00000000 + + + FT7 + Falling trigger event configuration bit + of Configurable Event input + 7 + 1 + + + FT6 + Falling trigger event configuration bit + of Configurable Event input + 6 + 1 + + + FT5 + Falling trigger event configuration bit + of Configurable Event input + 5 + 1 + + + FT4 + Falling trigger event configuration bit + of Configurable Event input + 4 + 1 + + + FT3 + Falling trigger event configuration bit + of Configurable Event input + 3 + 1 + + + FT2 + Falling trigger event configuration bit + of Configurable Event input + 2 + 1 + + + FT1 + Falling trigger event configuration bit + of Configurable Event input + 1 + 1 + + + FT0 + Falling trigger event configuration bit + of Configurable Event input + 0 + 1 + + + + + SWIER + SWIER + EXTI software interrupt event + register + 0x8 + 0x20 + read-write + 0x00000000 + + + SWI7 + Rising trigger event configuration bit + of Configurable Event input + 7 + 1 + + + SWI6 + Rising trigger event configuration bit + of Configurable Event input + 6 + 1 + + + SWI5 + Rising trigger event configuration bit + of Configurable Event input + 5 + 1 + + + SWI4 + Rising trigger event configuration bit + of Configurable Event input + 4 + 1 + + + SWI3 + Rising trigger event configuration bit + of Configurable Event input + 3 + 1 + + + SWI2 + Rising trigger event configuration bit + of Configurable Event input + 2 + 1 + + + SWI1 + Rising trigger event configuration bit + of Configurable Event input + 1 + 1 + + + SWI0 + Rising trigger event configuration bit + of Configurable Event input + 0 + 1 + + + + + PR + PR + EXTI pending + register + 0xC + 0x20 + read-write + 0x00000000 + + + PR7 + configurable event inputs x rising edge + Pending bit. + 7 + 1 + + + PR6 + configurable event inputs x rising edge + Pending bit. + 6 + 1 + + + PR5 + configurable event inputs x rising edge + Pending bit. + 5 + 1 + + + PR4 + configurable event inputs x rising edge + Pending bit. + 4 + 1 + + + PR3 + configurable event inputs x rising edge + Pending bit. + 3 + 1 + + + PR2 + configurable event inputs x rising edge + Pending bit. + 2 + 1 + + + PR1 + configurable event inputs x rising edge + Pending bit. + 1 + 1 + + + PR0 + configurable event inputs x rising edge + Pending bit. + 0 + 1 + + + + + EXTICR1 + EXTICR1 + EXTI external interrupt selection + register + 0x60 + 0x20 + read-write + 0x00000000 + + + EXTI3 + GPIO port selection + 24 + 2 + + + EXTI2 + GPIO port selection + 16 + 2 + + + EXTI1 + GPIO port selection + 8 + 2 + + + EXTI0 + GPIO port selection + 0 + 2 + + + + + EXTICR2 + EXTICR2 + EXTI external interrupt selection + register + 0x64 + 0x20 + read-write + 0x00000000 + + + EXTI7 + GPIO port selection + 24 + 1 + + + EXTI6 + GPIO port selection + 16 + 1 + + + EXTI5 + GPIO port selection + 8 + 1 + + + EXTI4 + GPIO port selection + 0 + 2 + + + + + IMR + IMR + EXTI CPU wakeup with interrupt mask + register + 0x80 + 0x20 + read-write + 0xFFF80000 + + + IM29 + CPU wakeup with interrupt mask on event + input + 29 + 1 + + + IM7 + CPU wakeup with interrupt mask on event + input + 7 + 1 + + + IM6 + CPU wakeup with interrupt mask on event + input + 6 + 1 + + + IM5 + CPU wakeup with interrupt mask on event + input + 5 + 1 + + + IM4 + CPU wakeup with interrupt mask on event + input + 4 + 1 + + + IM3 + CPU wakeup with interrupt mask on event + input + 3 + 1 + + + IM2 + CPU wakeup with interrupt mask on event + input + 2 + 1 + + + IM1 + CPU wakeup with interrupt mask on event + input + 1 + 1 + + + IM0 + CPU wakeup with interrupt mask on event + input + 0 + 1 + + + + + EMR + EMR + EXTI CPU wakeup with event mask + register + 0x84 + 0x20 + read-write + 0x00000000 + + + EM29 + CPU wakeup with event mask on event + input + 29 + 1 + + + EM7 + CPU wakeup with event mask on event + input + 7 + 1 + + + EM6 + CPU wakeup with event mask on event + input + 6 + 1 + + + EM5 + CPU wakeup with event mask on event + input + 5 + 1 + + + EM4 + CPU wakeup with event mask on event + input + 4 + 1 + + + EM3 + CPU wakeup with event mask on event + input + 3 + 1 + + + EM2 + CPU wakeup with event mask on event + input + 2 + 1 + + + EM1 + CPU wakeup with event mask on event + input + 1 + 1 + + + EM0 + CPU wakeup with event mask on event + input + 0 + 1 + + + + + + + LPTIM1 + Low power timer + LPTIM1 + 0x40007C00 + + 0x0 + 0x400 + registers + + + TIM6_LPTIM1_DAC + TIM6, LPTIM1, DAC global Interrupts + 17 + + + + ISR + ISR + Interrupt and Status Register + 0x0 + 0x20 + read-only + 0x00000000 + + + ARRM + Autoreload match + 1 + 1 + + + ARROK + Autoreload match update OK + 4 + 1 + + + + + ICR + ICR + Interrupt Clear Register + 0x4 + 0x20 + write-only + 0x00000000 + + + ARRMCF + + Autoreload match Clear + Flag + + 1 + 1 + + + ARROKCF + + Autoreload match update OK + Clear Flag + + 4 + 1 + + + + + IER + IER + Interrupt Enable Register + 0x8 + 0x20 + read-write + 0x00000000 + + + ARRMIE + + Autoreload matchInterrupt + Enable + + 1 + 1 + + + ARROKIE + + Autoreload match update + OK Interrupt Enable + + 4 + 1 + + + + + CFGR + CFGR + Configuration Register + 0xC + 0x20 + read-write + 0x00000000 + + + PRELOAD + Registers update mode + 22 + 1 + + + PRESC + Clock prescaler + 9 + 3 + + + + + CR + CR + Control Register + 0x10 + 0x20 + read-write + 0x00000000 + + + RSTARE + Reset after read enable + 4 + 1 + + + CNTSTRT + CNTSTRT + 2 + 1 + + + SNGSTRT + LPTIM start in single mode + 1 + 1 + + + ENABLE + LPTIM Enable + 0 + 1 + + + + + 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 + + + + + + + USART1 + Universal synchronous asynchronous receiver + transmitter + USART + 0x40013800 + + 0x0 + 0x400 + registers + + + USART1 + USART1 global Interrupt + 27 + + + + SR + SR + Status register + 0x0 + 0x20 + 0x00C0 + + + ABRRQ + Automate baudrate detection requeset + 12 + 1 + write-only + + + ABRE + Automate baudrate detection error flag + 11 + 1 + read-only + + + ABRF + Automate baudrate detection flag + 10 + 1 + read-only + + + CTS + CTS flag + 9 + 1 + read-write + + + TXE + Transmit data register + empty + 7 + 1 + read-only + + + TC + Transmission complete + 6 + 1 + read-write + + + RXNE + Read data register not + empty + 5 + 1 + read-write + + + IDLE + IDLE line detected + 4 + 1 + read-only + + + ORE + Overrun error + 3 + 1 + read-only + + + NE + Noise error flag + 2 + 1 + read-only + + + FE + Framing error + 1 + 1 + read-only + + + PE + Parity error + 0 + 1 + read-only + + + + + DR + DR + Data register + 0x4 + 0x20 + read-write + 0x00000000 + + + DR + Data value + 0 + 9 + + + + + BRR + BRR + Baud rate register + 0x8 + 0x20 + read-write + 0x0000 + + + DIV_Mantissa + mantissa of USARTDIV + 4 + 12 + + + DIV_Fraction + fraction of USARTDIV + 0 + 4 + + + + + CR1 + CR1 + Control register 1 + 0xC + 0x20 + read-write + 0x0000 + + + UE + USART enable + 13 + 1 + + + M + Word length + 12 + 1 + + + WAKE + Wakeup method + 11 + 1 + + + PCE + Parity control enable + 10 + 1 + + + PS + Parity selection + 9 + 1 + + + PEIE + PE interrupt enable + 8 + 1 + + + TXEIE + TXE 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 + + + RWU + Receiver wakeup + 1 + 1 + + + + + CR2 + CR2 + Control register 2 + 0x10 + 0x20 + read-write + 0x0000 + + + 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 + + + ADD + Address of the USART node + 0 + 4 + + + + + CR3 + CR3 + Control register 3 + 0x14 + 0x20 + read-write + 0x0000 + + + ABRMOD + Auto baudrate mode + 13 + 2 + + + ABREN + Auto baudrate enable + 12 + 1 + + + OVER8 + Oversampling mode + 11 + 1 + + + CTSIE + CTS interrupt enable + 10 + 1 + + + CTSE + CTS enable + 9 + 1 + + + RTSE + RTS enable + 8 + 1 + + + HDSEL + Half-duplex selection + 3 + 1 + + + IRLP + IrDA low-power + 2 + 1 + + + IREN + IrDA mode enable + 1 + 1 + + + EIE + Error interrupt enable + 0 + 1 + + + + + + + IWDG + Independent watchdog + IWDG + 0x40003000 + + 0x0 + 0x400 + registers + + + + KR + KR + Key register (IWDG_KR) + 0x0 + 0x20 + write-only + 0x00000000 + + + KEY + Key value + 0 + 16 + + + + + PR + PR + Prescaler register (IWDG_PR) + 0x4 + 0x20 + read-write + 0x00000000 + + + PR + Prescaler divider + 0 + 3 + + + + + RLR + RLR + Reload register (IWDG_RLR) + 0x8 + 0x20 + read-write + 0x00000FFF + + + RL + + Watchdog counter reload + value + + 0 + 12 + + + + + SR + SR + Status register (IWDG_SR) + 0xC + 0x20 + read-only + 0x00000000 + + + RVU + + Watchdog counter reload value + update + + 1 + 1 + + + PVU + + Watchdog prescaler value + update + + 0 + 1 + + + + + + + TIM1 + Advanced timer + TIM + 0x40012C00 + + 0x0 + 0x400 + registers + + + TIM1_BRK_UP_TRG_COM + TIM1 Break, Update, Trigger and Commutation Interrupt + 13 + + + TIM1_CC + TIM1 Capture Compare Interrupt + 14 + + + + CR1 + desc CR1 + 0x0 + 32 + read-write + 0x0 + 0x3FF + + + CEN + desc CEN + 0 + 0 + read-write + + + UDIS + desc UDIS + 1 + 1 + read-write + + + URS + desc URS + 2 + 2 + read-write + + + OPM + desc OPM + 3 + 3 + read-write + + + DIR + desc DIR + 4 + 4 + read-write + + + CMS + desc CMS + 6 + 5 + read-write + + + ARPE + desc ARPE + 7 + 7 + read-write + + + CKD + desc CKD + 9 + 8 + read-write + + + + + CR2 + desc CR2 + 0x4 + 32 + read-write + 0x0 + 0xF8 + + + CCDS + desc CCDS + 3 + 3 + read-write + + + MMS + desc MMS + 6 + 4 + read-write + + + TI1S + desc TI1S + 7 + 7 + read-write + + + + + SMCR + desc SMCR + 0x8 + 32 + read-write + 0x0 + 0xFFF7 + + + SMS + desc SMS + 2 + 0 + read-write + + + OCCS + desc OCCS + 3 + 3 + read-write + + + TS + desc TS + 6 + 4 + read-write + + + MSM + desc MSM + 7 + 7 + read-write + + + ETF + desc ETF + 11 + 8 + read-write + + + ETPS + desc ETPS + 13 + 12 + read-write + + + ECE + desc ECE + 14 + 14 + read-write + + + ETP + desc ETP + 15 + 15 + read-write + + + + + DIER + desc DIER + 0xC + 32 + read-write + 0x0 + 0x5F5F + + + UIE + desc UIE + 0 + 0 + read-write + + + CC1IE + desc CC1IE + 1 + 1 + read-write + + + CC2IE + desc CC2IE + 2 + 2 + read-write + + + CC3IE + desc CC3IE + 3 + 3 + read-write + + + CC4IE + desc CC4IE + 4 + 4 + read-write + + + TIE + desc TIE + 6 + 6 + read-write + + + BIE + desc BIE + 7 + 7 + read-write + + + + + SR + desc SR + 0x10 + 32 + read-write + 0x0 + 0x1E5F + + + UIF + desc UIF + 0 + 0 + read-write + + + CC1IF + desc CC1IF + 1 + 1 + read-write + + + CC2IF + desc CC2IF + 2 + 2 + read-write + + + CC3IF + desc CC3IF + 3 + 3 + read-write + + + CC4IF + desc CC4IF + 4 + 4 + read-write + + + COMIF + desc COMIF + 5 + 5 + read-write + + + TIF + desc TIF + 6 + 6 + read-write + + + BIF + desc BIF + 7 + 7 + read-write + + + CC1OF + desc CC1OF + 9 + 9 + read-write + + + CC2OF + desc CC2OF + 10 + 10 + read-write + + + CC3OF + desc CC3OF + 11 + 11 + read-write + + + CC4OF + desc CC4OF + 12 + 12 + read-write + + + IC1IR + desc IC1IR + 16 + 16 + read-write + + + IC2IR + desc IC2IR + 17 + 17 + read-write + + + IC3IR + desc IC3IR + 18 + 18 + read-write + + + IC4IR + desc IC3IR + 19 + 19 + read-write + + + IC1IF + desc IC1IF + 20 + 20 + read-write + + + IC2IF + desc IC2IF + 21 + 21 + read-write + + + IC3IF + desc IC3IF + 22 + 22 + read-write + + + IC4IF + desc IC3IF + 23 + 23 + read-write + + + + + EGR + desc EGR + 0x14 + 32 + write-only + 0x0 + 0x5F + + + UG + desc UG + 0 + 0 + write-only + + + CC1G + Capture/Compare 1 Generation + 1 + 1 + write-only + + + CC2G + desc CC2G + 2 + 2 + write-only + + + CC3G + desc CC3G + 3 + 3 + write-only + + + CC4G + desc CC4G + 4 + 4 + write-only + + + COMG + desc COMG + 5 + 5 + write-only + + + TG + desc TG + 6 + 6 + write-only + + + BG + desc BG + 7 + 7 + write-only + + + + + CCMR1_OUTPUT + desc CCMR1:OUTPUT + 0x18 + 32 + read-write + 0x0 + 0xFFFF + + + CC1S + desc CC1S + 1 + 0 + read-write + + + OC1FE + desc OC1FE + 2 + 2 + read-write + + + OC1PE + desc OC1PE + 3 + 3 + read-write + + + OC1M + desc OC1M + 6 + 4 + read-write + + + OC1CE + desc OC1CE + 7 + 7 + read-write + + + CC2S + desc CC2S + 9 + 8 + read-write + + + OC2FE + desc OC2FE + 10 + 10 + read-write + + + OC2PE + desc OC2PE + 11 + 11 + read-write + + + OC2M + desc OC2M + 14 + 12 + read-write + + + OC2CE + desc OC2CE + 15 + 15 + read-write + + + + + CCMR1_INPUT + desc CCMR1:INPUT + CCMR1_OUTPUT + 0x18 + 32 + read-write + 0x0 + 0xFFFF + + + CC1S + desc CC1S + 1 + 0 + read-write + + + IC1PSC + desc IC1PSC + 3 + 2 + read-write + + + IC1F + desc IC1F + 7 + 4 + read-write + + + CC2S + desc CC2S + 9 + 8 + read-write + + + IC2PSC + desc IC2PSC + 11 + 10 + read-write + + + IC2F + desc IC2F + 15 + 12 + read-write + + + + + CCMR2_OUTPUT + desc CCMR2:OUTPUT + 0x1C + 32 + read-write + 0x0 + 0xFFFF + + + CC3S + desc CC3S + 1 + 0 + read-write + + + OC3FE + desc OC3FE + 2 + 2 + read-write + + + OC3PE + desc OC3PE + 3 + 3 + read-write + + + OC3M + desc OC3M + 6 + 4 + read-write + + + OC3CE + desc OC3CE + 7 + 7 + read-write + + + CC4S + desc CC4S + 9 + 8 + read-write + + + OC4FE + desc OC4FE + 10 + 10 + read-write + + + OC4PE + desc OC4PE + 11 + 11 + read-write + + + OC4M + desc OC4M + 14 + 12 + read-write + + + OC4CE + desc OC4CE + 15 + 15 + read-write + + + + + CCMR2_INPUT + desc CCMR2:INPUT + CCMR2_OUTPUT + 0x1C + 32 + read-write + 0x0 + 0xFFFF + + + CC3S + desc CC3S + 1 + 0 + read-write + + + IC3PSC + desc IC3PSC + 3 + 2 + read-write + + + IC3F + desc IC3F + 7 + 4 + read-write + + + CC4S + desc CC4S + 9 + 8 + read-write + + + IC4PSC + desc IC4PSC + 11 + 10 + read-write + + + IC4F + desc IC4F + 15 + 12 + read-write + + + + + CCER + desc CCER + 0x20 + 32 + read-write + 0x0 + 0x3333 + + + CC1E + desc CC1E + 0 + 0 + read-write + + + CC1P + desc CC1P + 1 + 1 + read-write + + + CC2E + desc CC2E + 4 + 4 + read-write + + + CC2P + desc CC2P + 5 + 5 + read-write + + + CC3E + desc CC3E + 8 + 8 + read-write + + + CC3P + desc CC3P + 9 + 9 + read-write + + + CC4E + desc CC4E + 12 + 12 + read-write + + + CC4P + desc CC4P + 13 + 13 + read-write + + + + + CNT + desc CNT + 0x24 + 32 + read-write + 0x0 + 0xFFFF + + + CNT + desc CNT + 15 + 0 + read-write + + + + + PSC + desc PSC + 0x28 + 32 + read-write + 0x0 + 0xFFFF + + + PSC + desc PSC + 15 + 0 + read-write + + + + + ARR + desc ARR + 0x2C + 32 + read-write + 0xFFFF + 0xFFFF + + + ARR + desc ARR + 15 + 0 + read-write + + + + + RCR + desc RCR + 0x30 + 32 + read-write + 0xFFFF + 0xFFFF + + + REP + desc REP + 7 + 0 + read-write + + + + + CCR1 + desc CCR1 + 0x34 + 32 + read-write + 0x0 + 0xFFFF + + + CCR1 + desc CCR1 + 15 + 0 + read-write + + + + + CCR2 + desc CCR2 + 0x38 + 32 + read-write + 0x0 + 0xFFFF + + + CCR2 + desc CCR2 + 15 + 0 + read-write + + + + + CCR3 + desc CCR3 + 0x3C + 32 + read-write + 0x0 + 0xFFFF + + + CCR3 + desc CCR3 + 15 + 0 + read-write + + + + + CCR4 + desc CCR4 + 0x40 + 32 + read-write + 0x0 + 0xFFFF + + + CCR4 + desc CCR4 + 15 + 0 + read-write + + + + + BDTR + desc BDTR + 0x44 + 32 + read-write + 0x0 + 0xFFFF + + + DTG + desc DTG + 7 + 0 + read-write + + + LOCK + desc LOCK + 9 + 8 + read-write + + + OSSI + desc OSSI + 10 + 10 + read-write + + + OSSR + desc OSSR + 11 + 11 + read-write + + + BKE + desc BKE + 12 + 12 + read-write + + + BKP + desc BKP + 13 + 13 + read-write + + + AOE + desc AOE + 14 + 14 + read-write + + + MOE + desc MOE + 15 + 15 + read-write + + + + + DCR + desc DCR + 0x48 + 32 + read-write + 0x0 + 0x1F1F + + + DBA + desc DBA + 4 + 0 + read-write + + + DBL + desc DBL + 12 + 8 + read-write + + + + + DMAR + desc DMAR + 0x4C + 32 + read-write + 0x0 + 0xFFFF + + + DMAB + desc DMAB + 15 + 0 + read-write + + + + + + + TIM6 + desc TIM + TIM + 0x40001000 + + 0x0 + 0x400 + registers + + + TIM6_LPTIM1_DAC + TIM6, LPTIM1, DAC global Interrupts + 17 + + + + CR1 + desc CR1 + 0x0 + 32 + read-write + 0x0 + 0x3FF + + + CEN + desc CEN + 0 + 0 + read-write + + + UDIS + desc UDIS + 1 + 1 + read-write + + + URS + desc URS + 2 + 2 + read-write + + + OPM + desc OPM + 3 + 3 + read-write + + + DIR + desc DIR + 4 + 4 + read-write + + + CMS + desc CMS + 6 + 5 + read-write + + + ARPE + desc ARPE + 7 + 7 + read-write + + + CKD + desc CKD + 9 + 8 + read-write + + + + + CR2 + desc CR2 + 0x4 + 32 + read-write + 0x0 + 0xF8 + + + CCDS + desc CCDS + 3 + 3 + read-write + + + MMS + desc MMS + 6 + 4 + read-write + + + TI1S + desc TI1S + 7 + 7 + read-write + + + + + DIER + desc DIER + 0xC + 32 + read-write + 0x0 + 0x5F5F + + + UIE + desc UIE + 0 + 0 + read-write + + + CC1IE + desc CC1IE + 1 + 1 + read-write + + + CC2IE + desc CC2IE + 2 + 2 + read-write + + + CC3IE + desc CC3IE + 3 + 3 + read-write + + + CC4IE + desc CC4IE + 4 + 4 + read-write + + + TIE + desc TIE + 6 + 6 + read-write + + + UDE + desc UDE + 8 + 8 + read-write + + + CC1DE + desc CC1DE + 9 + 9 + read-write + + + CC2DE + desc CC2DE + 10 + 10 + read-write + + + CC3DE + desc CC3DE + 11 + 11 + read-write + + + CC4DE + desc CC4DE + 12 + 12 + read-write + + + TDE + desc TDE + 14 + 14 + read-write + + + + + SR + desc SR + 0x10 + 32 + read-write + 0x0 + 0x1E5F + + + UIF + desc UIF + 0 + 0 + read-write + + + CC1IF + desc CC1IF + 1 + 1 + read-write + + + CC2IF + desc CC2IF + 2 + 2 + read-write + + + CC3IF + desc CC3IF + 3 + 3 + read-write + + + CC4IF + desc CC4IF + 4 + 4 + read-write + + + COMIF + desc COMIF + 5 + 5 + read-write + + + TIF + desc TIF + 6 + 6 + read-write + + + BIF + desc BIF + 7 + 7 + read-write + + + CC1OF + desc CC1OF + 9 + 9 + read-write + + + CC2OF + desc CC2OF + 10 + 10 + read-write + + + CC3OF + desc CC3OF + 11 + 11 + read-write + + + CC4OF + desc CC4OF + 12 + 12 + read-write + + + IC1IR + desc IC1IR + 16 + 16 + read-write + + + IC2IR + desc IC2IR + 17 + 17 + read-write + + + IC3IR + desc IC3IR + 18 + 18 + read-write + + + IC4IR + desc IC3IR + 19 + 19 + read-write + + + IC1IF + desc IC1IF + 20 + 20 + read-write + + + IC2IF + desc IC2IF + 21 + 21 + read-write + + + IC3IF + desc IC3IF + 22 + 22 + read-write + + + IC4IF + desc IC3IF + 23 + 23 + read-write + + + + + EGR + desc EGR + 0x14 + 32 + write-only + 0x0 + 0x5F + + + UG + desc UG + 0 + 0 + write-only + + + CC1G + Capture/Compare 1 Generation + 1 + 1 + write-only + + + CC2G + desc CC2G + 2 + 2 + write-only + + + CC3G + desc CC3G + 3 + 3 + write-only + + + CC4G + desc CC4G + 4 + 4 + write-only + + + TG + desc TG + 6 + 6 + write-only + + + + + CNT + desc CNT + 0x24 + 32 + read-write + 0x0 + 0xFFFF + + + CNT + desc CNT + 15 + 0 + read-write + + + + + PSC + desc PSC + 0x28 + 32 + read-write + 0x0 + 0xFFFF + + + PSC + desc PSC + 15 + 0 + read-write + + + + + ARR + desc ARR + 0x2C + 32 + read-write + 0xFFFF + 0xFFFF + + + ARR + desc ARR + 15 + 0 + read-write + + + + + + + SYSCFG + System configuration controller + SYSCFG + 0x40010000 + + 0x0 + 0x30 + registers + + + + CFGR1 + CFGR1 + SYSCFG configuration register 1 + 0x0 + 0x20 + read-write + 0x00000000 + + + I2C_PB6_FMP + desc I2C_PB6_FMP + 19 + 1 + + + I2C_PB4_FMP + desc I2C_PB4_FMP + 18 + 1 + + + I2C_PB3_FMP + desc I2C_PB3_FMP + 17 + 1 + + + I2C_PA2_FMP + desc I2C_PA2_FMP + 16 + 1 + + + MEM_MODE + Memory mapping selection bits + 0 + 2 + + + + + CFGR2 + CFGR2 + SYSCFG configuration register + 2 + 0x18 + 0x20 + read-write + 0x00000000 + + + ETR_SRC_TIM1 + TIM1 ETR source selection + 9 + 2 + + + LOCKUP_LOCK + Cortex-M0+ LOCKUP bit enable + bit + 0 + 1 + + + + + GPIO_ENS + desc GPIO_ENS + 0x1C + 32 + read-write + 0x0 + + + PC_ENS + desc PC_ENS + 17 + 16 + read-write + + + PB_ENS + desc PB_ENS + 15 + 8 + read-write + + + PA_ENS + desc PA_ENS + 7 + 0 + read-write + + + + + + + FLASH + Flash + Flash + 0x40022000 + + 0x0 + 0x400 + registers + + + FLASH + FLASH global Interrupt + 3 + + + + ACR + ACR + Access control register + 0x0 + 0x20 + read-write + 0x00000600 + + + LATENCY + Latency + 0 + 1 + + + + + KEYR + KEYR + Flash key register + 0x8 + 0x20 + write-only + 0x00000000 + + + KEY + Flash key + 0 + 32 + + + + + OPTKEYR + OPTKEYR + Option byte key register + 0xC + 0x20 + write-only + 0x00000000 + + + OPTKEY + Option byte key + 0 + 32 + + + + + SR + SR + Status register + 0x10 + 0x20 + read-write + 0x00000000 + + + BSY + Busy + 16 + 1 + + + OPTVERR + Option and Engineering bits loading + validity error + 15 + 1 + + + WRPERR + Write protected error + 4 + 1 + + + EOP + End of operation + 0 + 1 + + + + + CR + CR + Flash control register + 0x14 + 0x20 + read-write + 0xC0000000 + + + LOCK + FLASH_CR Lock + 31 + 1 + + + OPTLOCK + Options Lock + 30 + 1 + + + OBL_LAUNCH + Force the option byte + loading + 27 + 1 + + + ERRIE + Error interrupt enable + 25 + 1 + + + EOPIE + End of operation interrupt + enable + 24 + 1 + + + PGTSTRT + Flash main memory program start + 19 + 1 + + + OPTSTRT + Option byte program start + 17 + 1 + + + SER + Sector erase + 11 + 1 + + + MER + Mass erase + 2 + 1 + + + PER + Page erase + 1 + 1 + + + PG + Programming + 0 + 1 + + + + + OPTR + OPTR + Flash option register + 0x20 + 0x20 + read-write + 0x4F55B0AA + + + nBOOT1 + Boot configuration + 15 + 1 + + + NRST_MODE + NRST_MODE + 14 + 1 + + + WWDG_SW + Window watchdog selection + 13 + 1 + + + IWDG_SW + Independent watchdog + selection + 12 + 1 + + + BORF_LEV + These bits contain the VDD supply level + threshold that activates the reset + 9 + 3 + + + BOREN + BOR reset Level + 8 + 1 + + + RDP + Read Protection + 0 + 8 + + + + + SDKR + SDKR + Flash SDK address + register + 0x24 + 0x20 + read-write + 0xFFE0001F + + + SDK_END + SDK area end address + 8 + 4 + + + SDK_STRT + SDK area start address + 0 + 4 + + + + + BTCR + SDKR + FLASH boot control register + 0x28 + 0x20 + read-write + 0x0 + + + BOOT0 + desc BOOT0 + 15 + 1 + + + BOOT_SIZE + desc BOOT_SIZE + 0 + 3 + + + + + WRPR + WRPR + Flash WRP address + register + 0x2C + 0x20 + read-write + 0x0000FFFF + + + WRP + WRP address + 0 + 6 + + + + + STCR + STCR + Flash sleep time config + register + 0x90 + 0x20 + read-write + 0x00006400 + + + SLEEP_TIME + FLash sleep time configuration(counter based on HSI_10M) + 8 + 8 + + + SLEEP_EN + FLash sleep enable + 0 + 1 + + + + + TS0 + TS0 + Flash TS0 + register + 0x100 + 0x20 + read-write + 0x000000B4 + + + TS0 + FLash TS0 register + 0 + 8 + + + + + TS1 + TS1 + Flash TS1 + register + 0x104 + 0x20 + read-write + 0x000001B0 + + + TS1 + FLash TS1 register + 0 + 9 + + + + + TS2P + TS2P + Flash TS2P + register + 0x108 + 0x20 + read-write + 0x000000B4 + + + TS2P + FLash TS2P register + 0 + 8 + + + + + TPS3 + TPS3 + Flash TPS3 + register + 0x10C + 0x20 + read-write + 0x000006C0 + + + TPS3 + FLash TPS3 register + 0 + 11 + + + + + TS3 + TS3 + Flash TS3 + register + 0x110 + 0x20 + read-write + 0x000000B4 + + + TS3 + FLash TS3 register + 0 + 8 + + + + + PERTPE + PERTPE + Flash PERTPE + register + 0x114 + 0x20 + read-write + 0x0000EA60 + + + PERTPE + FLash PERTPE register + 0 + 17 + + + + + SMERTPE + SMERTPE + Flash SMERTPE + register + 0x118 + 0x20 + read-write + 0x0000FD20 + + + SMERTPE + FLash SMERTPE register + 0 + 17 + + + + + PRGTPE + PRGTPE + Flash PRGTPE + register + 0x11C + 0x20 + read-write + 0x00008CA0 + + + PRGTPE + FLash PRGTPE register + 0 + 16 + + + + + PRETPE + PRETPE + Flash PRETPE + register + 0x120 + 0x20 + read-write + 0x000012C0 + + + PRETPE + FLash PRETPE register + 0 + 13 + + + + + + + CRC + CRC calculation unit + CRC + 0x40023000 + + 0x0 + 0x400 + registers + + + + DR + DR + Data register + 0x0 + 0x20 + read-write + 0xFFFFFFFF + + + DR + Data Register + 0 + 32 + + + + + IDR + IDR + Independent Data register + 0x4 + 0x20 + read-write + 0x00000000 + + + IDR + Independent Data register + 0 + 8 + + + + + CR + CR + Control register + 0x8 + 0x20 + write-only + 0x00000000 + + + RESET + Reset bit + 0 + 1 + + + + + + + SPI1 + Serial peripheral interface + SPI + 0x40013000 + + 0x0 + 0x400 + registers + + + SPI1 + SPI1 global Interrupt + 25 + + + + CR1 + desc CR1 + 0x0 + 32 + read-write + 0x0 + + + CPHA + desc CPHA + 0 + 0 + read-write + + + CPOL + desc CPOL + 1 + 1 + read-write + + + MSTR + desc MSTR + 2 + 2 + read-write + + + BR + desc BR + 5 + 3 + read-write + + + SPE + desc SPE + 6 + 6 + read-write + + + LSBFIRST + desc LSBFIRST + 7 + 7 + read-write + + + SSI + desc SSI + 8 + 8 + read-write + + + SSM + desc SSM + 9 + 9 + read-write + + + RXONLY + desc RXONLY + 10 + 10 + read-write + + + DDF + desc DDF + 11 + 11 + read-write + + + CRCNEXT + desc CRCNEXT + 12 + 12 + read-write + + + CRCEN + desc CRCEN + 13 + 13 + read-write + + + BIDIOE + desc BIDIOE + 14 + 14 + read-write + + + BIDIMODE + desc BIDIMODE + 15 + 15 + read-write + + + + + CR2 + desc CR2 + 0x4 + 32 + read-write + 0x0 + + + RXDMAEN + desc RXDMAEN + 0 + 0 + read-write + + + TXDMAEN + desc TXDMAEN + 1 + 1 + read-write + + + SSOE + desc SSOE + 2 + 2 + read-write + + + CLRTXFIFO + desc CLRTXFIFO + 4 + 4 + read-write + + + ERRIE + desc ERRIE + 5 + 5 + read-write + + + RXNEIE + desc RXNEIE + 6 + 6 + read-write + + + TXEIE + desc TXEIE + 7 + 7 + read-write + + + FRXTH + desc FRXTH + 12 + 12 + read-write + + + LDMA_RX + desc LDMA_RX + 13 + 13 + read-write + + + LDMA_TX + desc LDMA_TX + 14 + 14 + read-write + + + + + SR + desc SR + 0x8 + 32 + read-write + 0x2 + + + RXNE + desc RXNE + 0 + 0 + read-only + + + TXE + desc TXE + 1 + 1 + read-only + + + CHSIDE + desc CHSIDE + 2 + 2 + read-only + + + UDR + desc UDR + 3 + 3 + read-only + + + CRCERR + desc CRCERR + 4 + 4 + read-write + + + MODF + desc MODF + 5 + 5 + read-only + + + OVR + desc OVR + 6 + 6 + read-only + + + BSY + desc BSY + 7 + 7 + read-only + + + FRLVL + desc FRLVL + 10 + 9 + read-only + + + FTLVL + desc FTLVL + 12 + 11 + read-only + + + + + DR + desc DR + 0xC + 32 + read-write + 0x0 + + + DR + desc DR + 15 + 0 + read-write + + + + + CRCPR + desc CRCPR + 0x10 + 32 + read-write + 0x7 + + + CRCPOLY + desc CRCPOLY + 15 + 0 + read-write + + + + + RXCRCR + desc RXCRCR + 0x14 + 32 + read-only + 0x0 + + + RXCRC + desc RXCRC + 15 + 0 + read-only + + + + + TXCRCR + desc TXCRCR + 0x18 + 32 + read-only + 0x0 + + + TXCRC + desc TXCRC + 15 + 0 + read-only + + + + + I2SCFGR + desc I2SCFGR + 0x1C + 32 + read-write + 0x0 + + + CHLEN + desc CHLEN + 0 + 0 + read-write + + + DATLEN + desc DATLEN + 2 + 1 + read-write + + + CKPOL + desc CKPOL + 3 + 3 + read-write + + + I2SSTD + desc I2SSTD + 5 + 4 + read-write + + + PCMSYNC + desc PCMSYNC + 7 + 7 + read-write + + + I2SCFG + desc I2SCFG + 9 + 8 + read-write + + + I2SE + desc I2SE + 10 + 10 + read-write + + + I2SMOD + desc I2SMOD + 11 + 11 + read-write + + + + + I2SPR + desc I2SPR + 0x20 + 32 + read-write + 0x2 + + + I2SDIV + desc I2SDIV + 7 + 0 + read-write + + + ODD + desc ODD + 8 + 8 + read-write + + + MCKOE + desc MCKOE + 9 + 9 + read-write + + + + + + + I2C + Inter integrated circuit + I2C + 0x40005400 + + 0x0 + 0x400 + registers + + + I2C1 + I2C1 global Interrupt + 23 + + + + CR1 + CR1 + Control register 1 + 0x0 + 0x20 + read-write + 0x0000 + + + SWRST + Software reset + 15 + 1 + + + PEC + Packet error checking + 12 + 1 + + + POS + Acknowledge/PEC Position (for datareception) + 11 + 1 + + + ACK + Acknowledge enable + 10 + 1 + + + STOP + Stop generation + 9 + 1 + + + START + Start generation + 8 + 1 + + + NOSTRETCH + Clock stretching disable (Slavemode) + 7 + 1 + + + ENGC + General call enable + 6 + 1 + + + ENPEC + PEC enable + 5 + 1 + + + PE + Peripheral enable + 0 + 1 + + + + + CR2 + CR2 + Control register 2 + 0x4 + 0x20 + read-write + 0x0000 + + + ITBUFEN + Buffer interrupt enable + 10 + 1 + + + ITEVTEN + Event interrupt enable + 9 + 1 + + + ITERREN + Error interrupt enable + 8 + 1 + + + FREQ + Peripheral clock frequency + 0 + 6 + + + + + OAR1 + OAR1 + Own address register 1 + 0x8 + 0x20 + read-write + 0x0000 + + + ADD + Interface address + 1 + 7 + + + + + DR + DR + Data register + 0x10 + 0x20 + read-write + 0x0000 + + + DR + 8-bit data register + 0 + 8 + + + + + SR1 + SR1 + Status register 1 + 0x14 + 0x20 + 0x0000 + + + PECERR + PEC Error in reception + 12 + 1 + read-write + + + OVR + Overrun/Underrun + 11 + 1 + read-write + + + AF + Acknowledge failure + 10 + 1 + read-write + + + ARLO + Arbitration lost (mastermode) + 9 + 1 + read-write + + + BERR + Bus error + 8 + 1 + read-write + + + TxE + Data register empty(transmitters) + 7 + 1 + read-only + + + RxNE + Data register not empty(receivers) + 6 + 1 + read-only + + + STOPF + Stop detection (slavemode) + 4 + 1 + read-only + + + BTF + Byte transfer finished + 2 + 1 + read-only + + + ADDR + Address sent (master mode)/matched(slave mode) + 1 + 1 + read-only + + + SB + Start bit (Master mode) + 0 + 1 + read-only + + + + + SR2 + SR2 + Status register 2 + 0x18 + 0x20 + read-only + 0x0000 + + + PEC + acket error checkingregister + 8 + 8 + + + DUALF + Dual flag (Slave mode) + 7 + 1 + + + GENCALL + General call address (Slavemode) + 4 + 1 + + + TRA + Transmitter/receiver + 2 + 1 + + + BUSY + Bus busy + 1 + 1 + + + MSL + Master/slave + 0 + 1 + + + + + CCR + CCR + Clock control register + 0x1C + 0x20 + read-write + 0x0000 + + + F_S + I2C master mode selection + 15 + 1 + + + DUTY + Fast mode duty cycle + 14 + 1 + + + CCR + Clock control register in Fast/Standardmode (Master mode) + 0 + 12 + + + + + TRISE + TRISE + TRISE register + 0x20 + 0x20 + read-write + 0x0002 + + + TRISE + Maximum rise time in Fast/Standard mode(Master mode) + 0 + 6 + + + + + + + DBGMCU + Debug support + DBGMCU + 0x40015800 + + 0x0 + 0x400 + registers + + + + IDCODE + IDCODE + MCU Device ID Code Register + 0x0 + 0x20 + read-only + 0x0 + + + REV_ID + REV_ID + 0 + 32 + + + + + 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 + + + + + APB_FZ1 + APB_FZ1 + APB Freeze Register1 + 0x8 + 0x20 + read-write + 0x0 + + + DBG_TIM6_STOP + Debug TIM 6 stopped whenCore is halted + 4 + 1 + + + DBG_IWDG_STOP + Debug Independent Wachdog stopped whenCore is halted + 12 + 1 + + + DBG_I2C1_TIMEOUT + Debug I2C1 TIMEOUT stopped when Core ishalted + 21 + 1 + + + DBG_LPTIM_STOP + Debug LPTIM stopped when Core ishalted + 31 + 1 + + + + + APB_FZ2 + APB_FZ2 + APB Freeze Register2 + 0xC + 0x20 + read-write + 0x0 + + + DBG_TIMER1_STOP + Debug Timer 1 stopped when Core ishalted + 11 + 1 + + + + + + + diff --git a/Misc/py32f003xx.svd b/Misc/SVD/py32f003xx.svd similarity index 96% rename from Misc/py32f003xx.svd rename to Misc/SVD/py32f003xx.svd index bb98bc6..f683f8c 100644 --- a/Misc/py32f003xx.svd +++ b/Misc/SVD/py32f003xx.svd @@ -1,11089 +1,11089 @@ - - - - Puya - Puya - PY32F0xx_DFP - - PY32F0 - 1.0.0 - Arm 32-bit Cortex-M0+ Microcontroller based device, CPU clock up to 48 MHz. - - - - CM0+ - r0p1 - little - false - false - 4 - false - - - - 8 - 32 - 32 - read-write - 0x00000000 - 0xFFFFFFFF - - - ADC - Analog to Digital Converter - ADC - 0x40012400 - - 0x0 - 0x400 - registers - - - ADC_COMP - ADC and COMP Interrupt through EXTI Lines 17 and 18 - 12 - - - - ISR - ISR - ADC interrupt and status register - 0x0 - 0x20 - read-write - 0x00000000 - - - AWD - ADC analog watchdog flag - 7 - 1 - - - OVR - ADC group regular overrun - flag - 4 - 1 - - - EOSEQ - 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 - - - - - IER - IER - ADC interrupt enable register - 0x4 - 0x20 - read-write - 0x00000000 - - - AWDIE - ADC analog watchdog - interrupt - 7 - 1 - - - OVRIE - ADC group regular overrun - interrupt - 4 - 1 - - - EOSEQIE - 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 - - - - - CR - CR - ADC control register - 0x8 - 0x20 - read-write - 0x00000000 - - - ADCAL - ADC group regular conversion - calibration - 31 - 1 - - - ADSTP - ADC group regular conversion - stop - 4 - 1 - - - ADSTART - ADC group regular conversion - start - 2 - 1 - - - ADEN - ADC enable - 0 - 1 - - - - - CFGR1 - CFGR1 - ADC configuration register 1 - 0xC - 0x20 - read-write - 0x00000000 - - - AWDCH - ADC analog watchdog monitored channel - selection - 26 - 4 - - - AWDEN - ADC analog watchdog enable on scope - ADC group regular - 23 - 1 - - - AWDSGL - ADC analog watchdog monitoring a - single channel or all channels - 22 - 1 - - - DISCEN - ADC group regular sequencer - discontinuous mode - 16 - 1 - - - WAIT - Wait conversion mode - 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 - 3 - - - ALIGN - ADC data alignement - 5 - 1 - - - RESSEL - ADC data resolution - 3 - 2 - - - SCANDIR - Scan sequence direction - 2 - 1 - - - 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 - - - CKMODE - ADC clock mode - 28 - 4 - - - - - SMPR - SMPR - ADC sampling time register - 0x14 - 0x20 - read-write - 0x00000000 - - - SMP - Sampling time selection - 0 - 3 - - - - - TR - TR - ADC analog watchdog 1 threshold register - 0x20 - 0x20 - read-write - 0x0FFF0000 - - - HT - ADC analog watchdog threshold - high - 16 - 12 - - - LT - ADC analog watchdog threshold - low - 0 - 12 - - - - - CHSELR - CHSELR - ADC group regular sequencer register - 0x28 - 0x20 - read-write - 0x0FFF0000 - - - CHSEL12 - Channel-12 selection - 12 - 1 - - - CHSEL11 - Channel-11 selection - 11 - 1 - - - CHSEL9 - Channel-9 selection - 9 - 1 - - - CHSEL8 - Channel-8 selection - 8 - 1 - - - CHSEL7 - Channel-7 selection - 7 - 1 - - - CHSEL6 - Channel-6 selection - 6 - 1 - - - CHSEL5 - Channel-5 selection - 5 - 1 - - - CHSEL4 - Channel-4 selection - 4 - 1 - - - CHSEL3 - Channel-3 selection - 3 - 1 - - - CHSEL2 - Channel-2 selection - 2 - 1 - - - CHSEL1 - Channel-1 selection - 1 - 1 - - - CHSEL0 - Channel-0 selection - 0 - 1 - - - - - DR - DR - ADC group regular data register - 0x40 - 0x20 - read-only - 0x00000000 - - - DATA - ADC group regular conversion - data - 0 - 16 - - - - - CCSR - CCSR - ADC calibration configuration and status register - 0x44 - 0x20 - read-write - 0x00000000 - - - CALON - Calibration flag - 31 - 1 - read-only - - - CALFAIL - Calibration fail flag - 30 - 1 - - - CALSET - Calibration factor selection - 15 - 1 - - - CALSMP - Calibration sample time selection - 12 - 2 - - - CALSEL - Calibration contents selection - 11 - 1 - - - - - CALRR1 - CALRR1 - ADC calibration result register 1 - 0x48 - 0x20 - read-only - 0x00000000 - - - CALBOUT - offset result - 16 - 7 - - - CALC5OUT - C5 result - 8 - 8 - - - CALC4OUT - C4 result - 0 - 8 - - - - - CALRR2 - CALRR2 - ADC calibration result register 2 - 0x4C - 0x20 - read-only - 0x00000000 - - - CALC3OUT - C3 result - 24 - 8 - - - CALC2OUT - C2 result - 16 - 8 - - - CALC1OUT - C1 result - 8 - 8 - - - CALC0OUT - C0 result - 0 - 8 - - - - - CALFIR1 - CALFIR1 - ADC calibration factor input register 1 - 0x50 - 0x20 - read-write - 0x00000000 - - - CALBIO - Calibration offset factor input - 16 - 7 - - - CALC5IO - Calibration C5 factor input - 8 - 8 - - - CALC4IO - Calibration C4 factor input - 0 - 8 - - - - - CALFIR2 - CALFIR2 - ADC calibration factor input register 2 - 0x54 - 0x20 - read-write - 0x00000000 - - - CALC3IO - Calibration C3 factor input - 24 - 8 - - - CALC2IO - Calibration C2 factor input - 16 - 8 - - - CALC1IO - Calibration C1 factor input - 8 - 8 - - - CALC0IO - Calibration C0 factor input - 0 - 8 - - - - - CCR - CCR - ADC common configuration register - 0x308 - 0x20 - read-write - 0x00000000 - - - TSEN - Temperature sensor enable - 23 - 1 - - - VREFEN - VREFINT enable - 22 - 1 - - - - - - - COMP1 - Comparator - COMP - 0x40010200 - - 0x0 - 0x10 - registers - - - - CSR - CSR - COMP control and status register - 0x0 - 0x20 - read-write - 0x00000000 - - - LOCK - CSR register lock - 31 - 1 - - - COMP_OUT - Comparator output status - 30 - 1 - - - PWRMODE - Comparator power mode - selector - 18 - 2 - - - HYST - Comparator hysteresis enable - selector - 16 - 1 - - - POLARITY - Comparator polarity - selector - 15 - 1 - - - WINMODE - Comparator non-inverting input - selector for window mode - 11 - 1 - - - INPSEL - Comparator signal selector for - non-inverting input - 8 - 2 - - - INMSEL - Comparator signal selector for - inverting input INM - 4 - 4 - - - SCALER_EN - SCALER enable bit - 1 - 1 - - - COMP_EN - COMP enable bit - 0 - 1 - - - - - FR - FR - Comparator Filter - register - 0x4 - 0x20 - read-write - 0x00000000 - - - FLTCNT - Comparator filter and counter - 16 - 16 - - - FLTEN - Filter enable bit - 0 - 1 - - - - - - - COMP2 - Comparator - COMP - 0x40010210 - - 0x0 - 0x10 - registers - - - - CSR - CSR - COMP control and status register - 0x0 - 0x20 - read-write - 0x00000000 - - - LOCK - CSR register lock - 31 - 1 - - - COMP_OUT - Comparator output status - 30 - 1 - - - PWRMODE - Comparator power mode - selector - 18 - 2 - - - POLARITY - Comparator polarity - selector - 15 - 1 - - - WINMODE - Comparator non-inverting input - selector for window mode - 11 - 1 - - - INPSEL - Comparator signal selector for - non-inverting input - 8 - 2 - - - INMSEL - Comparator signal selector for - inverting input INM - 4 - 4 - - - COMP_EN - COMP enable bit - 0 - 1 - - - - - FR - FR - Comparator Filter - register - 0x4 - 0x20 - read-write - 0x00000000 - - - FLTCNT - Comparator filter and counter - 16 - 16 - - - FLTEN - Filter enable bit - 0 - 1 - - - - - - - RCC - Reset and clock control - RCC - 0x40021000 - - 0x0 - 0x400 - registers - - - RCC - RCC global Interrupt - 4 - - - - CR - CR - Clock control register - 0x0 - 0x20 - read-write - 0x00000100 - - - CSSON - Clock security system - enable - 19 - 1 - - - HSEBYP - HSE crystal oscillator - bypass - 18 - 1 - - - HSERDY - HSE clock ready flag - 17 - 1 - - - HSEON - HSE clock enable - 16 - 1 - - - HSIDIV - HSI16 clock division - factor - 11 - 3 - - - HSIRDY - HSI16 clock ready flag - 10 - 1 - - - HSIKERON - HSI16 always enable for peripheral - kernels - 9 - 1 - - - HSION - HSI16 clock enable - 8 - 1 - - - - - ICSCR - ICSCR - Internal clock sources calibration - register - 0x4 - 0x20 - 0x10000000 - - - LSI_STARTUP - LSI startup time - 26 - 2 - read-write - - - LSI_TRIM - LSI clock trimming - 16 - 9 - read-write - - - HSI_FS - HSI frequency selection - 13 - 3 - read-write - - - HSI_TRIM - HSI clock trimming - 0 - 13 - read-write - - - - - CFGR - CFGR - Clock configuration register - 0x8 - 0x20 - 0x00000000 - - - MCOPRE - Microcontroller clock output - prescaler - 28 - 3 - read-write - - - MCOSEL - Microcontroller clock - output - 24 - 3 - read-write - - - PPRE - APB prescaler - 12 - 3 - read-write - - - HPRE - AHB prescaler - 8 - 4 - read-write - - - SWS - System clock switch status - 3 - 3 - read-only - - - SW - System clock switch - 0 - 3 - read-write - - - - - ECSCR - ECSCR - External clock source control register - 0x10 - 0x20 - 0x00000000 - - - HSE_FREQ - HSE clock freqency selection - 2 - 2 - read-write - - - - - CIER - CIER - Clock interrupt enable - register - 0x18 - 0x20 - read-write - 0x00000000 - - - HSERDYIE - HSE ready interrupt enable - 4 - 1 - - - HSIRDYIE - HSI ready interrupt enable - 3 - 1 - - - LSIRDYIE - LSI ready interrupt enable - 0 - 1 - - - - - CIFR - CIFR - Clock interrupt flag register - 0x1C - 0x20 - read-only - 0x00000000 - - - CSSF - HSE clock secure system interrupt flag - 8 - 1 - - - HSERDYF - HSE ready interrupt flag - 4 - 1 - - - HSIRDYF - HSI ready interrupt flag - 3 - 1 - - - LSIRDYF - LSI ready interrupt flag - 0 - 1 - - - - - CICR - CICR - Clock interrupt clear register - 0x20 - 0x20 - write-only - 0x00000000 - - - CSSC - clock secure system interrupt flag clear - 8 - 1 - - - HSERDYC - HSE ready interrupt clear - 4 - 1 - - - HSIRDYC - HSI ready interrupt clear - 3 - 1 - - - LSIRDYC - LSI ready interrupt clear - 0 - 1 - - - - - IOPRSTR - IOPRSTR - GPIO reset register - 0x24 - 0x20 - read-write - 0x00000000 - - - GPIOFRST - I/O port F reset - 5 - 1 - - - GPIOBRST - I/O port B reset - 1 - 1 - - - GPIOARST - I/O port A reset - 0 - 1 - - - - - AHBRSTR - AHBRSTR - AHB peripheral reset register - 0x28 - 0x20 - read-write - 0x00000000 - - - CRCRST - CRC reset - 12 - 1 - - - DMARST - DMA reset - 0 - 1 - - - - - APBRSTR1 - APBRSTR1 - APB peripheral reset register - 1 - 0x2C - 0x20 - read-write - 0x00000000 - - - LPTIMRST - Low Power Timer reset - 31 - 1 - - - PWRRST - Power interface reset - 28 - 1 - - - DBGRST - Debug support reset - 27 - 1 - - - I2CRST - I2C reset - 21 - 1 - - - USART2RST - USART2 reset - 17 - 1 - - - TIM3RST - TIM3 timer reset - 1 - 1 - - - - - APBRSTR2 - APBRSTR2 - APB peripheral reset register - 2 - 0x30 - 0x20 - read-write - 0x00000000 - - - COMP2RST - COMP2 reset - 22 - 1 - - - COMP1RST - COMP1 reset - 21 - 1 - - - ADCRST - ADC reset - 20 - 1 - - - TIM17RST - TIM17 timer reset - 18 - 1 - - - TIM16RST - TIM16 timer reset - 17 - 1 - - - TIM14RST - TIM14 timer reset - 15 - 1 - - - USART1RST - USART1 reset - 14 - 1 - - - SPI1RST - SPI1 reset - 12 - 1 - - - TIM1RST - TIM1 timer reset - 11 - 1 - - - SYSCFGRST - SYSCFG and COMP - reset - 0 - 1 - - - - - IOPENR - IOPENR - GPIO clock enable register - 0x34 - 0x20 - read-write - 0x00000000 - - - GPIOFEN - I/O port F clock enable - 5 - 1 - - - GPIOBEN - I/O port B clock enable - 1 - 1 - - - GPIOAEN - I/O port A clock enable - 0 - 1 - - - - - AHBENR - AHBENR - AHB peripheral clock enable - register - 0x38 - 0x20 - read-write - 0x00000000 - - - CRCEN - CRC clock enable - 12 - 1 - - - SRAMEN - SRAM memory interface clock - enable - 9 - 1 - - - FLASHEN - Flash memory interface clock - enable - 8 - 1 - - - DMAEN - DMA clock enable - 0 - 1 - - - - - APBENR1 - APBENR1 - APB peripheral clock enable register - 1 - 0x3C - 0x20 - read-write - 0x00000000 - - - LPTIMEN - LPTIM clock enable - 31 - 1 - - - PWREN - Power interface clock - enable - 28 - 1 - - - DBGEN - Debug support clock enable - 27 - 1 - - - I2CEN - I2C clock enable - 21 - 1 - - - USART2EN - USART2 clock enable - 17 - 1 - - - WWDGEN - WWDG clock enable - 11 - 1 - - - RTCAPBEN - RTC APB clock enable - 10 - 1 - - - TIM3EN - TIM3 timer clock enable - 1 - 1 - - - - - APBENR2 - APBENR2 - APB peripheral clock enable register - 2 - 0x40 - 0x20 - read-write - 0x00000000 - - - COMP2EN - COMP2 clock enable - 22 - 1 - - - COMP1EN - COMP1 clock enable - 21 - 1 - - - ADCEN - ADC clock enable - 20 - 1 - - - TIM17EN - TIM16 timer clock enable - 18 - 1 - - - TIM16EN - TIM16 timer clock enable - 17 - 1 - - - TIM14EN - TIM14 timer clock enable - 15 - 1 - - - USART1EN - USART1 clock enable - 14 - 1 - - - SPI1EN - SPI1 clock enable - 12 - 1 - - - TIM1EN - TIM1 timer clock enable - 11 - 1 - - - SYSCFGEN - SYSCFG, COMP and VREFBUF clock - enable - 0 - 1 - - - - - CCIPR - CCIPR - Peripherals independent clock configuration - register - 0x54 - 0x20 - read-write - 0x00000000 - - - LPTIM1SEL - LPTIM1 clock source - selection - 18 - 2 - - - COMP2SEL - COMP2 clock source - selection - 9 - 1 - - - COMP1SEL - COMP1 clock source - selection - 8 - 1 - - - PVDSEL - PVD detect clock source - selection - 7 - 1 - - - - - BDCR - BDCR - RTC domain control register - 0x5C - 0x20 - read-write - 0x00000000 - - - LSCOSEL - Low-speed clock output - selection - 25 - 1 - - - LSCOEN - Low-speed clock output (LSCO) - enable - 24 - 1 - - - BDRST - RTC domain software reset - 16 - 1 - - - RTCEN - RTC clock source enable - 15 - 1 - - - RTCSEL - RTC clock source selection - 8 - 2 - - - - - CSR - CSR - Control/status register - 0x60 - 0x20 - read-write - 0x00000000 - - - WWDGRSTF - Window watchdog reset flag - 30 - 1 - - - IWDGRSTF - Independent window watchdog reset - flag - 29 - 1 - - - SFTRSTF - Software reset flag - 28 - 1 - - - PWRRSTF - BOR or POR/PDR flag - 27 - 1 - - - PINRSTF - Pin reset flag - 26 - 1 - - - OBLRSTF - Option byte loader reset - flag - 25 - 1 - - - RMVF - Remove reset flags - 23 - 1 - - - LSIRDY - LSI oscillator ready - 1 - 1 - - - LSION - LSI oscillator enable - 0 - 1 - - - - - - - PWR - Power control - PWR - 0x40007000 - - 0x0 - 0x400 - registers - - - - CR1 - CR1 - Power control register 1 - 0x0 - 0x20 - read-write - 0x00030000 - - - HSION_CTRL - HSI open time control - 19 - 1 - - - SRAM_RETV - SRAM retention voltage control - 16 - 3 - - - LPR - Low-power run - 14 - 1 - - - FLS_SLPTIME - Flash wait time after wakeup from the stop mode - 12 - 2 - - - MRRDY_TIME - Time selection wakeup from LP to VR - 10 - 2 - - - VOS - Voltage scaling range - selection - 9 - 1 - - - DBP - Disable backup domain write - protection - 8 - 1 - - - BIAS_CR_SEL - MR Bias current selection - 4 - 1 - - - BIAS_CR - MR Bias current - 0 - 4 - - - - - CR2 - CR2 - Power control register 2 - 0x4 - 0x20 - read-write - 0x00000500 - - - FLT_TIME - Digital filter time configuration - 9 - 3 - - - FLTEN - Digital filter enable - 8 - 1 - - - PVDT - Power voltage detector threshold - selection - 4 - 3 - - - SRCSEL - Power voltage detector volatage - selection - 2 - 1 - - - PVDE - Power voltage detector - enable - 0 - 1 - - - - - SR - SR - Power status register - 0x14 - 0x20 - read-only - 0x00000000 - - - PVDO - PVD output - 11 - 1 - - - - - - - GPIOA - General-purpose I/Os - GPIO - 0x50000000 - - 0x0 - 0x400 - registers - - - - MODER - MODER - GPIO port mode register - 0x0 - 0x20 - read-write - 0xEBFFFFFF - - - MODE15 - Port x configuration bits (y = - 0..15) - 30 - 2 - - - MODE14 - Port x configuration bits (y = - 0..15) - 28 - 2 - - - MODE13 - Port x configuration bits (y = - 0..15) - 26 - 2 - - - MODE12 - Port x configuration bits (y = - 0..15) - 24 - 2 - - - MODE11 - Port x configuration bits (y = - 0..15) - 22 - 2 - - - MODE10 - Port x configuration bits (y = - 0..15) - 20 - 2 - - - MODE9 - Port x configuration bits (y = - 0..15) - 18 - 2 - - - MODE8 - Port x configuration bits (y = - 0..15) - 16 - 2 - - - MODE7 - Port x configuration bits (y = - 0..15) - 14 - 2 - - - MODE6 - Port x configuration bits (y = - 0..15) - 12 - 2 - - - MODE5 - Port x configuration bits (y = - 0..15) - 10 - 2 - - - MODE4 - Port x configuration bits (y = - 0..15) - 8 - 2 - - - MODE3 - Port x configuration bits (y = - 0..15) - 6 - 2 - - - MODE2 - Port x configuration bits (y = - 0..15) - 4 - 2 - - - MODE1 - Port x configuration bits (y = - 0..15) - 2 - 2 - - - MODE0 - 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 - - - OSPEED15 - Port x configuration bits (y = - 0..15) - 30 - 2 - - - OSPEED14 - Port x configuration bits (y = - 0..15) - 28 - 2 - - - OSPEED13 - Port x configuration bits (y = - 0..15) - 26 - 2 - - - OSPEED12 - Port x configuration bits (y = - 0..15) - 24 - 2 - - - OSPEED11 - Port x configuration bits (y = - 0..15) - 22 - 2 - - - OSPEED10 - Port x configuration bits (y = - 0..15) - 20 - 2 - - - OSPEED9 - Port x configuration bits (y = - 0..15) - 18 - 2 - - - OSPEED8 - Port x configuration bits (y = - 0..15) - 16 - 2 - - - OSPEED7 - Port x configuration bits (y = - 0..15) - 14 - 2 - - - OSPEED6 - Port x configuration bits (y = - 0..15) - 12 - 2 - - - OSPEED5 - Port x configuration bits (y = - 0..15) - 10 - 2 - - - OSPEED4 - Port x configuration bits (y = - 0..15) - 8 - 2 - - - OSPEED3 - Port x configuration bits (y = - 0..15) - 6 - 2 - - - OSPEED2 - Port x configuration bits (y = - 0..15) - 4 - 2 - - - OSPEED1 - Port x configuration bits (y = - 0..15) - 2 - 2 - - - OSPEED0 - Port x configuration bits (y = - 0..15) - 0 - 2 - - - - - PUPDR - PUPDR - GPIO port pull-up/pull-down - register - 0xC - 0x20 - read-write - 0x24000000 - - - PUPD15 - Port x configuration bits (y = - 0..15) - 30 - 2 - - - PUPD14 - Port x configuration bits (y = - 0..15) - 28 - 2 - - - PUPD13 - Port x configuration bits (y = - 0..15) - 26 - 2 - - - PUPD12 - Port x configuration bits (y = - 0..15) - 24 - 2 - - - PUPD11 - Port x configuration bits (y = - 0..15) - 22 - 2 - - - PUPD10 - Port x configuration bits (y = - 0..15) - 20 - 2 - - - PUPD9 - Port x configuration bits (y = - 0..15) - 18 - 2 - - - PUPD8 - Port x configuration bits (y = - 0..15) - 16 - 2 - - - PUPD7 - Port x configuration bits (y = - 0..15) - 14 - 2 - - - PUPD6 - Port x configuration bits (y = - 0..15) - 12 - 2 - - - PUPD5 - Port x configuration bits (y = - 0..15) - 10 - 2 - - - PUPD4 - Port x configuration bits (y = - 0..15) - 8 - 2 - - - PUPD3 - Port x configuration bits (y = - 0..15) - 6 - 2 - - - PUPD2 - Port x configuration bits (y = - 0..15) - 4 - 2 - - - PUPD1 - Port x configuration bits (y = - 0..15) - 2 - 2 - - - PUPD0 - Port x configuration bits (y = - 0..15) - 0 - 2 - - - - - IDR - IDR - GPIO port input data register - 0x10 - 0x20 - read-only - 0x00000000 - - - ID15 - Port input data (y = - 0..15) - 15 - 1 - - - ID14 - Port input data (y = - 0..15) - 14 - 1 - - - ID13 - Port input data (y = - 0..15) - 13 - 1 - - - ID12 - Port input data (y = - 0..15) - 12 - 1 - - - ID11 - Port input data (y = - 0..15) - 11 - 1 - - - ID10 - Port input data (y = - 0..15) - 10 - 1 - - - ID9 - Port input data (y = - 0..15) - 9 - 1 - - - ID8 - Port input data (y = - 0..15) - 8 - 1 - - - ID7 - Port input data (y = - 0..15) - 7 - 1 - - - ID6 - Port input data (y = - 0..15) - 6 - 1 - - - ID5 - Port input data (y = - 0..15) - 5 - 1 - - - ID4 - Port input data (y = - 0..15) - 4 - 1 - - - ID3 - Port input data (y = - 0..15) - 3 - 1 - - - ID2 - Port input data (y = - 0..15) - 2 - 1 - - - ID1 - Port input data (y = - 0..15) - 1 - 1 - - - ID0 - Port input data (y = - 0..15) - 0 - 1 - - - - - ODR - ODR - GPIO port output data register - 0x14 - 0x20 - read-write - 0x00000000 - - - OD15 - Port output data (y = - 0..15) - 15 - 1 - - - OD14 - Port output data (y = - 0..15) - 14 - 1 - - - OD13 - Port output data (y = - 0..15) - 13 - 1 - - - OD12 - Port output data (y = - 0..15) - 12 - 1 - - - OD11 - Port output data (y = - 0..15) - 11 - 1 - - - OD10 - Port output data (y = - 0..15) - 10 - 1 - - - OD9 - Port output data (y = - 0..15) - 9 - 1 - - - OD8 - Port output data (y = - 0..15) - 8 - 1 - - - OD7 - Port output data (y = - 0..15) - 7 - 1 - - - OD6 - Port output data (y = - 0..15) - 6 - 1 - - - OD5 - Port output data (y = - 0..15) - 5 - 1 - - - OD4 - Port output data (y = - 0..15) - 4 - 1 - - - OD3 - Port output data (y = - 0..15) - 3 - 1 - - - OD2 - Port output data (y = - 0..15) - 2 - 1 - - - OD1 - Port output data (y = - 0..15) - 1 - 1 - - - OD0 - 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 - - - BR15 - Port Reset bit - 15 - 1 - - - BR14 - Port Reset bit - 14 - 1 - - - BR13 - Port Reset bit - 13 - 1 - - - BR12 - Port Reset bit - 12 - 1 - - - BR11 - Port Reset bit - 11 - 1 - - - BR10 - Port Reset bit - 10 - 1 - - - BR9 - Port Reset bit - 9 - 1 - - - BR8 - Port Reset bit - 8 - 1 - - - BR7 - Port Reset bit - 7 - 1 - - - BR6 - Port Reset bit - 6 - 1 - - - BR5 - Port Reset bit - 5 - 1 - - - BR4 - Port Reset bit - 4 - 1 - - - BR3 - Port Reset bit - 3 - 1 - - - BR2 - Port Reset bit - 2 - 1 - - - BR1 - Port Reset bit - 1 - 1 - - - BR0 - Port Reset bit - 0 - 1 - - - - - - - GPIOB - General-purpose I/Os - GPIO - 0x50000400 - - 0x0 - 0x400 - registers - - - - MODER - MODER - GPIO port mode register - 0x0 - 0x20 - read-write - 0xFFFFFFFF - - - MODE8 - Port x configuration bits (y = - 0..15) - 16 - 2 - - - MODE7 - Port x configuration bits (y = - 0..15) - 14 - 2 - - - MODE6 - Port x configuration bits (y = - 0..15) - 12 - 2 - - - MODE5 - Port x configuration bits (y = - 0..15) - 10 - 2 - - - MODE4 - Port x configuration bits (y = - 0..15) - 8 - 2 - - - MODE3 - Port x configuration bits (y = - 0..15) - 6 - 2 - - - MODE2 - Port x configuration bits (y = - 0..15) - 4 - 2 - - - MODE1 - Port x configuration bits (y = - 0..15) - 2 - 2 - - - MODE0 - Port x configuration bits (y = - 0..15) - 0 - 2 - - - - - OTYPER - OTYPER - GPIO port output type register - 0x4 - 0x20 - read-write - 0x00000000 - - - 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 - 0x00000000 - - - OSPEED8 - Port x configuration bits (y = - 0..15) - 16 - 2 - - - OSPEED7 - Port x configuration bits (y = - 0..15) - 14 - 2 - - - OSPEED6 - Port x configuration bits (y = - 0..15) - 12 - 2 - - - OSPEED5 - Port x configuration bits (y = - 0..15) - 10 - 2 - - - OSPEED4 - Port x configuration bits (y = - 0..15) - 8 - 2 - - - OSPEED3 - Port x configuration bits (y = - 0..15) - 6 - 2 - - - OSPEED2 - Port x configuration bits (y = - 0..15) - 4 - 2 - - - OSPEED1 - Port x configuration bits (y = - 0..15) - 2 - 2 - - - OSPEED0 - Port x configuration bits (y = - 0..15) - 0 - 2 - - - - - PUPDR - PUPDR - GPIO port pull-up/pull-down - register - 0xC - 0x20 - read-write - 0x00000000 - - - PUPD8 - Port x configuration bits (y = - 0..15) - 16 - 2 - - - PUPD7 - Port x configuration bits (y = - 0..15) - 14 - 2 - - - PUPD6 - Port x configuration bits (y = - 0..15) - 12 - 2 - - - PUPD5 - Port x configuration bits (y = - 0..15) - 10 - 2 - - - PUPD4 - Port x configuration bits (y = - 0..15) - 8 - 2 - - - PUPD3 - Port x configuration bits (y = - 0..15) - 6 - 2 - - - PUPD2 - Port x configuration bits (y = - 0..15) - 4 - 2 - - - PUPD1 - Port x configuration bits (y = - 0..15) - 2 - 2 - - - PUPD0 - Port x configuration bits (y = - 0..15) - 0 - 2 - - - - - IDR - IDR - GPIO port input data register - 0x10 - 0x20 - read-only - 0x00000000 - - - ID8 - Port input data (y = - 0..15) - 8 - 1 - - - ID7 - Port input data (y = - 0..15) - 7 - 1 - - - ID6 - Port input data (y = - 0..15) - 6 - 1 - - - ID5 - Port input data (y = - 0..15) - 5 - 1 - - - ID4 - Port input data (y = - 0..15) - 4 - 1 - - - ID3 - Port input data (y = - 0..15) - 3 - 1 - - - ID2 - Port input data (y = - 0..15) - 2 - 1 - - - ID1 - Port input data (y = - 0..15) - 1 - 1 - - - ID0 - Port input data (y = - 0..15) - 0 - 1 - - - - - ODR - ODR - GPIO port output data register - 0x14 - 0x20 - read-write - 0x00000000 - - - OD8 - Port output data (y = - 0..15) - 8 - 1 - - - OD7 - Port output data (y = - 0..15) - 7 - 1 - - - OD6 - Port output data (y = - 0..15) - 6 - 1 - - - OD5 - Port output data (y = - 0..15) - 5 - 1 - - - OD4 - Port output data (y = - 0..15) - 4 - 1 - - - OD3 - Port output data (y = - 0..15) - 3 - 1 - - - OD2 - Port output data (y = - 0..15) - 2 - 1 - - - OD1 - Port output data (y = - 0..15) - 1 - 1 - - - OD0 - Port output data (y = - 0..15) - 0 - 1 - - - - - BSRR - BSRR - GPIO port bit set/reset - register - 0x18 - 0x20 - write-only - 0x00000000 - - - 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 - - - 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 - - - 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 - - - BR8 - Port Reset bit - 8 - 1 - - - BR7 - Port Reset bit - 7 - 1 - - - BR6 - Port Reset bit - 6 - 1 - - - BR5 - Port Reset bit - 5 - 1 - - - BR4 - Port Reset bit - 4 - 1 - - - BR3 - Port Reset bit - 3 - 1 - - - BR2 - Port Reset bit - 2 - 1 - - - BR1 - Port Reset bit - 1 - 1 - - - BR0 - Port Reset bit - 0 - 1 - - - - - - - GPIOF - 0x50001400 - - - EXTI - External interrupt/event - controller - EXTI - 0x40021800 - - 0x0 - 0x400 - registers - - - PVD - PVD Interrupt through EXTI Lines 16 - 1 - - - EXTI0_1 - EXTI Line 0 and 1 Interrupt - 5 - - - EXTI2_3 - EXTI Line 2 and 3 Interrupt - 6 - - - EXTI4_15 - EXTI Line 4 to 15 Interrupt - 7 - - - - RTSR - RTSR - EXTI rising trigger selection - register - 0x0 - 0x20 - read-write - 0x00000000 - - - RT18 - Rising trigger event configuration bit - of Configurable Event input - 18 - 1 - - - RT17 - Rising trigger event configuration bit - of Configurable Event input - 17 - 1 - - - RT16 - Rising trigger event configuration bit - of Configurable Event input - 16 - 1 - - - RT15 - Rising trigger event configuration bit - of Configurable Event input - 15 - 1 - - - RT14 - Rising trigger event configuration bit - of Configurable Event input - 14 - 1 - - - RT13 - Rising trigger event configuration bit - of Configurable Event input - 13 - 1 - - - RT12 - Rising trigger event configuration bit - of Configurable Event input - 12 - 1 - - - RT11 - Rising trigger event configuration bit - of Configurable Event input - 11 - 1 - - - RT10 - Rising trigger event configuration bit - of Configurable Event input - 10 - 1 - - - RT9 - Rising trigger event configuration bit - of Configurable Event input - 9 - 1 - - - RT8 - Rising trigger event configuration bit - of Configurable Event input - 8 - 1 - - - RT7 - Rising trigger event configuration bit - of Configurable Event input - 7 - 1 - - - RT6 - Rising trigger event configuration bit - of Configurable Event input - 6 - 1 - - - RT5 - Rising trigger event configuration bit - of Configurable Event input - 5 - 1 - - - RT4 - Rising trigger event configuration bit - of Configurable Event input - 4 - 1 - - - RT3 - Rising trigger event configuration bit - of Configurable Event input - 3 - 1 - - - RT2 - Rising trigger event configuration bit - of Configurable Event input - 2 - 1 - - - RT1 - Rising trigger event configuration bit - of Configurable Event input - 1 - 1 - - - RT0 - Rising trigger event configuration bit - of Configurable Event input - 0 - 1 - - - - - FTSR - FTSR - EXTI falling trigger selection - register - 0x4 - 0x20 - read-write - 0x00000000 - - - FT18 - Falling trigger event configuration bit - of Configurable Event input - 18 - 1 - - - FT17 - Falling trigger event configuration bit - of Configurable Event input - 17 - 1 - - - FT16 - Falling trigger event configuration bit - of Configurable Event input - 16 - 1 - - - FT15 - Falling trigger event configuration bit - of Configurable Event input - 15 - 1 - - - FT14 - Falling trigger event configuration bit - of Configurable Event input - 14 - 1 - - - FT13 - Falling trigger event configuration bit - of Configurable Event input - 13 - 1 - - - FT12 - Falling trigger event configuration bit - of Configurable Event input - 12 - 1 - - - FT11 - Falling trigger event configuration bit - of Configurable Event input - 11 - 1 - - - FT10 - Falling trigger event configuration bit - of Configurable Event input - 10 - 1 - - - FT9 - Falling trigger event configuration bit - of Configurable Event input - 9 - 1 - - - FT8 - Falling trigger event configuration bit - of Configurable Event input - 8 - 1 - - - FT7 - Falling trigger event configuration bit - of Configurable Event input - 7 - 1 - - - FT6 - Falling trigger event configuration bit - of Configurable Event input - 6 - 1 - - - FT5 - Falling trigger event configuration bit - of Configurable Event input - 5 - 1 - - - FT4 - Falling trigger event configuration bit - of Configurable Event input - 4 - 1 - - - FT3 - Falling trigger event configuration bit - of Configurable Event input - 3 - 1 - - - FT2 - Falling trigger event configuration bit - of Configurable Event input - 2 - 1 - - - FT1 - Falling trigger event configuration bit - of Configurable Event input - 1 - 1 - - - FT0 - Falling trigger event configuration bit - of Configurable Event input - 0 - 1 - - - - - SWIER - SWIER - EXTI software interrupt event - register - 0x8 - 0x20 - read-write - 0x00000000 - - - SWI18 - Rising trigger event configuration bit - of Configurable Event input - 18 - 1 - - - SWI17 - Rising trigger event configuration bit - of Configurable Event input - 17 - 1 - - - SWI16 - Rising trigger event configuration bit - of Configurable Event input - 16 - 1 - - - SWI15 - Rising trigger event configuration bit - of Configurable Event input - 15 - 1 - - - SWI14 - Rising trigger event configuration bit - of Configurable Event input - 14 - 1 - - - SWI13 - Rising trigger event configuration bit - of Configurable Event input - 13 - 1 - - - SWI12 - Rising trigger event configuration bit - of Configurable Event input - 12 - 1 - - - SWI11 - Rising trigger event configuration bit - of Configurable Event input - 11 - 1 - - - SWI10 - Rising trigger event configuration bit - of Configurable Event input - 10 - 1 - - - SWI9 - Rising trigger event configuration bit - of Configurable Event input - 9 - 1 - - - SWI8 - Rising trigger event configuration bit - of Configurable Event input - 8 - 1 - - - SWI7 - Rising trigger event configuration bit - of Configurable Event input - 7 - 1 - - - SWI6 - Rising trigger event configuration bit - of Configurable Event input - 6 - 1 - - - SWI5 - Rising trigger event configuration bit - of Configurable Event input - 5 - 1 - - - SWI4 - Rising trigger event configuration bit - of Configurable Event input - 4 - 1 - - - SWI3 - Rising trigger event configuration bit - of Configurable Event input - 3 - 1 - - - SWI2 - Rising trigger event configuration bit - of Configurable Event input - 2 - 1 - - - SWI1 - Rising trigger event configuration bit - of Configurable Event input - 1 - 1 - - - SWI0 - Rising trigger event configuration bit - of Configurable Event input - 0 - 1 - - - - - PR - PR - EXTI pending - register - 0xC - 0x20 - read-write - 0x00000000 - - - PR18 - configurable event inputs x rising edge - Pending bit. - 18 - 1 - - - PR17 - configurable event inputs x rising edge - Pending bit. - 17 - 1 - - - PR16 - configurable event inputs x rising edge - Pending bit. - 16 - 1 - - - PR15 - configurable event inputs x rising edge - Pending bit. - 15 - 1 - - - PR14 - configurable event inputs x rising edge - Pending bit. - 14 - 1 - - - PR13 - configurable event inputs x rising edge - Pending bit - 13 - 1 - - - PR12 - configurable event inputs x rising edge - Pending bit. - 12 - 1 - - - PR11 - configurable event inputs x rising edge - Pending bit. - 11 - 1 - - - PR10 - configurable event inputs x rising edge - Pending bit. - 10 - 1 - - - PR9 - configurable event inputs x rising edge - Pending bit. - 9 - 1 - - - PR8 - configurable event inputs x rising edge - Pending bit. - 8 - 1 - - - PR7 - configurable event inputs x rising edge - Pending bit. - 7 - 1 - - - PR6 - configurable event inputs x rising edge - Pending bit. - 6 - 1 - - - PR5 - configurable event inputs x rising edge - Pending bit. - 5 - 1 - - - PR4 - configurable event inputs x rising edge - Pending bit. - 4 - 1 - - - PR3 - configurable event inputs x rising edge - Pending bit. - 3 - 1 - - - PR2 - configurable event inputs x rising edge - Pending bit. - 2 - 1 - - - PR1 - configurable event inputs x rising edge - Pending bit. - 1 - 1 - - - PR0 - configurable event inputs x rising edge - Pending bit. - 0 - 1 - - - - - EXTICR1 - EXTICR1 - EXTI external interrupt selection - register - 0x60 - 0x20 - read-write - 0x00000000 - - - EXTI3 - GPIO port selection - 24 - 2 - - - EXTI2 - GPIO port selection - 16 - 2 - - - EXTI1 - GPIO port selection - 8 - 2 - - - EXTI0 - GPIO port selection - 0 - 2 - - - - - EXTICR2 - EXTICR2 - EXTI external interrupt selection - register - 0x64 - 0x20 - read-write - 0x00000000 - - - EXTI7 - GPIO port selection - 24 - 1 - - - EXTI6 - GPIO port selection - 16 - 1 - - - EXTI5 - GPIO port selection - 8 - 1 - - - EXTI4 - GPIO port selection - 0 - 2 - - - - - EXTICR3 - EXTICR3 - EXTI external interrupt selection - register - 0x68 - 0x20 - read-write - 0x00000000 - - - EXTI8 - GPIO port selection - 0 - 1 - - - - - IMR - IMR - EXTI CPU wakeup with interrupt mask - register - 0x80 - 0x20 - read-write - 0xFFF80000 - - - IM29 - CPU wakeup with interrupt mask on event - input - 29 - 1 - - - IM19 - CPU wakeup with interrupt mask on event - input - 19 - 1 - - - IM18 - CPU wakeup with interrupt mask on event - input - 18 - 1 - - - IM17 - CPU wakeup with interrupt mask on event - input - 17 - 1 - - - IM16 - CPU wakeup with interrupt mask on event - input - 16 - 1 - - - IM15 - CPU wakeup with interrupt mask on event - input - 15 - 1 - - - IM14 - CPU wakeup with interrupt mask on event - input - 14 - 1 - - - IM13 - CPU wakeup with interrupt mask on event - input - 13 - 1 - - - IM12 - CPU wakeup with interrupt mask on event - input - 12 - 1 - - - IM11 - CPU wakeup with interrupt mask on event - input - 11 - 1 - - - IM10 - CPU wakeup with interrupt mask on event - input - 10 - 1 - - - IM9 - CPU wakeup with interrupt mask on event - input - 9 - 1 - - - IM8 - CPU wakeup with interrupt mask on event - input - 8 - 1 - - - IM7 - CPU wakeup with interrupt mask on event - input - 7 - 1 - - - IM6 - CPU wakeup with interrupt mask on event - input - 6 - 1 - - - IM5 - CPU wakeup with interrupt mask on event - input - 5 - 1 - - - IM4 - CPU wakeup with interrupt mask on event - input - 4 - 1 - - - IM3 - CPU wakeup with interrupt mask on event - input - 3 - 1 - - - IM2 - CPU wakeup with interrupt mask on event - input - 2 - 1 - - - IM1 - CPU wakeup with interrupt mask on event - input - 1 - 1 - - - IM0 - CPU wakeup with interrupt mask on event - input - 0 - 1 - - - - - EMR - EMR - EXTI CPU wakeup with event mask - register - 0x84 - 0x20 - read-write - 0x00000000 - - - EM29 - CPU wakeup with event mask on event - input - 29 - 1 - - - EM19 - CPU wakeup with event mask on event - input - 19 - 1 - - - EM18 - CPU wakeup with event mask on event - input - 18 - 1 - - - EM17 - CPU wakeup with event mask on event - input - 17 - 1 - - - EM16 - CPU wakeup with event mask on event - input - 16 - 1 - - - EM15 - CPU wakeup with event mask on event - input - 15 - 1 - - - EM14 - CPU wakeup with event mask on event - input - 14 - 1 - - - EM13 - CPU wakeup with event mask on event - input - 13 - 1 - - - EM12 - CPU wakeup with event mask on event - input - 12 - 1 - - - EM11 - CPU wakeup with event mask on event - input - 11 - 1 - - - EM10 - CPU wakeup with event mask on event - input - 10 - 1 - - - EM9 - CPU wakeup with event mask on event - input - 9 - 1 - - - EM8 - CPU wakeup with event mask on event - input - 8 - 1 - - - EM7 - CPU wakeup with event mask on event - input - 7 - 1 - - - EM6 - CPU wakeup with event mask on event - input - 6 - 1 - - - EM5 - CPU wakeup with event mask on event - input - 5 - 1 - - - EM4 - CPU wakeup with event mask on event - input - 4 - 1 - - - EM3 - CPU wakeup with event mask on event - input - 3 - 1 - - - EM2 - CPU wakeup with event mask on event - input - 2 - 1 - - - EM1 - CPU wakeup with event mask on event - input - 1 - 1 - - - EM0 - CPU wakeup with event mask on event - input - 0 - 1 - - - - - - - LPTIM - Low power timer - LPTIM - 0x40007C00 - - 0x0 - 0x400 - registers - - - - ISR - ISR - Interrupt and Status Register - 0x0 - 0x20 - read-only - 0x00000000 - - - ARRM - Autoreload match - 1 - 1 - - - - - ICR - ICR - Interrupt Clear Register - 0x4 - 0x20 - write-only - 0x00000000 - - - ARRMCF - Autoreload match Clear - Flag - 1 - 1 - - - - - IER - IER - Interrupt Enable Register - 0x8 - 0x20 - read-write - 0x00000000 - - - ARRMIE - Autoreload match Interrupt - Enable - 1 - 1 - - - - - CFGR - CFGR - Configuration Register - 0xC - 0x20 - read-write - 0x00000000 - - - PRELOAD - Registers update mode - 22 - 1 - - - PRESC - Clock prescaler - 9 - 3 - - - - - CR - CR - Control Register - 0x10 - 0x20 - read-write - 0x00000000 - - - RSTARE - Reset after read enable - 4 - 1 - - - SNGSTRT - LPTIM start in single mode - 1 - 1 - - - ENABLE - LPTIM Enable - 0 - 1 - - - - - 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 - - - - - - - USART1 - Universal synchronous asynchronous receiver - transmitter - USART - 0x40013800 - - 0x0 - 0x400 - registers - - - USART1 - USART1 global Interrupt - 27 - - - - SR - SR - Status register - 0x0 - 0x20 - 0x00C0 - - - ABRRQ - Automate baudrate detection requeset - 12 - 1 - write-only - - - ABRE - Automate baudrate detection error flag - 11 - 1 - read-only - - - ABRF - Automate baudrate detection flag - 10 - 1 - read-only - - - CTS - CTS flag - 9 - 1 - read-write - - - TXE - Transmit data register - empty - 7 - 1 - read-only - - - TC - Transmission complete - 6 - 1 - read-write - - - RXNE - Read data register not - empty - 5 - 1 - read-write - - - IDLE - IDLE line detected - 4 - 1 - read-only - - - ORE - Overrun error - 3 - 1 - read-only - - - NE - Noise error flag - 2 - 1 - read-only - - - FE - Framing error - 1 - 1 - read-only - - - PE - Parity error - 0 - 1 - read-only - - - - - DR - DR - Data register - 0x4 - 0x20 - read-write - 0x00000000 - - - DR - Data value - 0 - 9 - - - - - BRR - BRR - Baud rate register - 0x8 - 0x20 - read-write - 0x0000 - - - DIV_Mantissa - mantissa of USARTDIV - 4 - 12 - - - DIV_Fraction - fraction of USARTDIV - 0 - 4 - - - - - CR1 - CR1 - Control register 1 - 0xC - 0x20 - read-write - 0x0000 - - - UE - USART enable - 13 - 1 - - - M - Word length - 12 - 1 - - - WAKE - Wakeup method - 11 - 1 - - - PCE - Parity control enable - 10 - 1 - - - PS - Parity selection - 9 - 1 - - - PEIE - PE interrupt enable - 8 - 1 - - - TXEIE - TXE 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 - - - RWU - Receiver wakeup - 1 - 1 - - - SBK - Send break - 0 - 1 - - - - - CR2 - CR2 - Control register 2 - 0x10 - 0x20 - read-write - 0x0000 - - - 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 - - - ADD - Address of the USART node - 0 - 4 - - - - - CR3 - CR3 - Control register 3 - 0x14 - 0x20 - read-write - 0x0000 - - - ABRMOD - Auto baudrate mode - 13 - 2 - - - ABREN - Auto baudrate enable - 12 - 1 - - - OVER8 - Oversampling mode - 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 - - - HDSEL - Half-duplex selection - 3 - 1 - - - IRLP - IrDA low-power - 2 - 1 - - - IREN - IrDA mode enable - 1 - 1 - - - EIE - Error interrupt enable - 0 - 1 - - - - - - - USART2 - 0x40004400 - - USART2 - USART2 global Interrupt - 28 - - - - RTC - Real time clock - RTC - 0x40002800 - - 0x0 - 0x400 - registers - - - RTC - RTC Interrupt through EXTI Lines 19 - 2 - - - - CRH - CRH - RTC Control Register High - 0x0 - 0x20 - read-write - 0x00000000 - - - OWIE - Overflow interrupt Enable - 2 - 1 - - - ALRIE - Alarm interrupt Enable - 1 - 1 - - - SECIE - Second interrupt Enable - 0 - 1 - - - - - CRL - CRL - RTC Control Register Low - 0x4 - 0x20 - 0x00000020 - - - RTOFF - RTC operation OFF - 5 - 1 - read-only - - - CNF - Configuration Flag - 4 - 1 - read-write - - - RSF - Registers Synchronized - Flag - 3 - 1 - read-write - - - OWF - Overflow Flag - 2 - 1 - read-write - - - ALRF - Alarm Flag - 1 - 1 - read-write - - - SECF - Second Flag - 0 - 1 - read-write - - - - - PRLH - PRLH - RTC Prescaler Load Register - High - 0x8 - 0x20 - write-only - 0x00000000 - - - PRLH - RTC Prescaler Load Register - High - 0 - 4 - - - - - PRLL - PRLL - RTC Prescaler Load Register - Low - 0xC - 0x20 - write-only - 0x8000 - - - PRLL - RTC Prescaler Divider Register - Low - 0 - 16 - - - - - DIVH - DIVH - RTC Prescaler Divider Register - High - 0x10 - 0x20 - read-only - 0x00000000 - - - DIVH - RTC prescaler divider register - high - 0 - 4 - - - - - DIVL - DIVL - RTC Prescaler Divider Register - Low - 0x14 - 0x20 - read-only - 0x8000 - - - DIVL - RTC prescaler divider register - Low - 0 - 16 - - - - - CNTH - CNTH - RTC Counter Register High - 0x18 - 0x20 - read-write - 0x00000000 - - - CNTH - RTC counter register high - 0 - 16 - - - - - CNTL - CNTL - RTC Counter Register Low - 0x1C - 0x20 - read-write - 0x00000000 - - - CNTL - RTC counter register Low - 0 - 16 - - - - - ALRH - ALRH - RTC Alarm Register High - 0x20 - 0x20 - write-only - 0xFFFF - - - ALRH - RTC alarm register high - 0 - 16 - - - - - ALRL - ALRL - RTC Alarm Register Low - 0x24 - 0x20 - write-only - 0xFFFF - - - ALRL - RTC alarm register low - 0 - 16 - - - - - RTCCR - RTCCR - RTC clock calibration - 0x2C - 0x20 - read-write - 0x0000 - - - ASOS - Alarm or second output selection - 9 - 1 - - - ASOE - Alarm or second output enable - 8 - 1 - - - CCO - Calibration clock output - 7 - 1 - - - CAL - Calibration value - 0 - 7 - - - - - - - IWDG - Independent watchdog - IWDG - 0x40003000 - - 0x0 - 0x400 - registers - - - - KR - KR - Key register (IWDG_KR) - 0x0 - 0x20 - write-only - 0x00000000 - - - KEY - Key value - 0 - 16 - - - - - PR - PR - Prescaler register (IWDG_PR) - 0x4 - 0x20 - read-write - 0x00000000 - - - PR - Prescaler divider - 0 - 3 - - - - - RLR - RLR - Reload register (IWDG_RLR) - 0x8 - 0x20 - read-write - 0x00000FFF - - - RL - Watchdog counter reload - value - 0 - 12 - - - - - SR - SR - Status register (IWDG_SR) - 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 (IWDG_SR) - 0x10 - 0x20 - read-only - 0x00000000 - - - WIN - window counter - 0 - 12 - - - - - - - WWDG - Window watchdog - WWDG - 0x40002C00 - - 0x0 - 0x400 - registers - - - WWDG - Window WatchDog Interrupt - 0 - - - - CR - CR - Control register (WWDG_CR) - 0x0 - 0x20 - read-write - 0x0000007F - - - WDGA - Activation bit - 7 - 1 - - - T - 7-bit counter (MSB to LSB) - 0 - 7 - - - - - CFR - CFR - Configuration register - (WWDG_CFR) - 0x4 - 0x20 - read-write - 0x0000007F - - - EWI - Early Wakeup Interrupt - 9 - 1 - - - WDGTB - Timer Base - 7 - 2 - - - W - 7-bit window value - 0 - 7 - - - - - SR - SR - Status register (WWDG_SR) - 0x8 - 0x20 - read-write - 0x00000000 - - - EWIF - Early Wakeup Interrupt flag - 0 - 1 - - - - - - - TIM1 - Advanced timer - TIM - 0x40012C00 - - 0x0 - 0x400 - registers - - - TIM1_BRK_UP_TRG_COM - TIM1 Break, Update, Trigger and Commutation Interrupt - 13 - - - TIM1_CC - TIM1 Capture Compare Interrupt - 14 - - - - CR1 - CR1 - control register 1 - 0x0 - 0x20 - read-write - 0x0000 - - - 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 - - - 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 - - - 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 bit - 3 - 1 - - - SMS - Slave mode selection - 0 - 3 - - - - - DIER - DIER - DMA/Interrupt enable register - 0xC - 0x20 - read-write - 0x0000 - - - TDE - Trigger DMA request enable - 14 - 1 - - - COMDE - COM DMA request enable - 13 - 1 - - - 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 - - - BIE - Break interrupt enable - 7 - 1 - - - TIE - Trigger interrupt enable - 6 - 1 - - - COMIE - COM interrupt enable - 5 - 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 - - - BIF - Break interrupt flag - 7 - 1 - - - TIF - Trigger interrupt flag - 6 - 1 - - - COMIF - COM interrupt flag - 5 - 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 - - - BG - Break generation - 7 - 1 - - - TG - Trigger generation - 6 - 1 - - - COMG - Capture/Compare control update - generation - 5 - 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 (output - mode) - 0x18 - 0x20 - read-write - 0x00000000 - - - 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 - - - ICPSC - Input capture 1 prescaler - 2 - 2 - - - CC1S - Capture/Compare 1 - selection - 0 - 2 - - - - - CCMR2_Output - CCMR2_Output - capture/compare mode register (output - mode) - 0x1C - 0x20 - read-write - 0x00000000 - - - 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 - - - CC4P - Capture/Compare 3 output - Polarity - 13 - 1 - - - CC4E - Capture/Compare 4 output - enable - 12 - 1 - - - CC3NP - Capture/Compare 3 output - Polarity - 11 - 1 - - - CC3NE - Capture/Compare 3 complementary output - enable - 10 - 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 - - - CC2NE - Capture/Compare 2 complementary output - enable - 6 - 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 - - - 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 - read-write - 0x00000000 - - - CNT - counter value - 0 - 16 - - - - - PSC - PSC - prescaler - 0x28 - 0x20 - read-write - 0x0000 - - - PSC - Prescaler value - 0 - 16 - - - - - ARR - ARR - auto-reload register - 0x2C - 0x20 - read-write - 0x00000000 - - - 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 - - - - - 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 - - - MOE - Main output enable - 15 - 1 - - - AOE - Automatic output enable - 14 - 1 - - - BKP - Break polarity - 13 - 1 - - - BKE - Break enable - 12 - 1 - - - OSSR - Off-state selection for Run - mode - 11 - 1 - - - OSSI - Off-state selection for Idle - mode - 10 - 1 - - - LOCK - Lock configuration - 8 - 2 - - - DTG - Dead-time generator setup - 0 - 8 - - - - - 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 - - - - - - - TIM3 - General purpose timer - TIM - 0x40000400 - - 0x00 - 0x400 - registers - - - TIM3 - TIM3 global Interrupt - 16 - - - - CR1 - CR1 - control register 1 - 0x0 - 0x20 - read-write - 0x0000 - - - 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 - - - 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 - - - TDE - Trigger DMA request enable - 14 - 1 - - - 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 - - - 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 - - - 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 4 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 - read-write - 0x00000000 - - - CNT - counter value - 0 - 16 - - - - - PSC - PSC - prescaler - 0x28 - 0x20 - read-write - 0x0000 - - - PSC - Prescaler value - 0 - 16 - - - - - ARR - ARR - auto-reload register - 0x2C - 0x20 - read-write - 0x00000000 - - - ARR - Auto-reload 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 - - - - - 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 - 32 - - - - - - - TIM14 - General purpose timer - TIM - 0x40002000 - - 0x00 - 0x400 - registers - - - TIM14 - TIM14 global Interrupt - 19 - - - - CR1 - CR1 - TIM14 control register1 - 0x0 - 0x20 - read-write - 0x0000 - - - CKD - Prescaler factor - 8 - 2 - - - ARPE - Auto-reload preload enable - 7 - 1 - - - URS - Update request source - 2 - 1 - - - UDIS - Update disable - 1 - 1 - - - CEN - Counter enable - 0 - 1 - - - - - DIER - DIER - DMA/Interrupt enable register - 0xC - 0x20 - read-write - 0x0000 - - - CC1IE - Compare/ - 1 - 1 - - - UIE - Update interrupt enable - 0 - 1 - - - - - SR - SR - status register - 0x10 - 0x20 - read-write - 0x0000 - - - CC1OF - Compare/capture 1 flag - 9 - 1 - - - CC1IF - Compare/capture 1 interrupt flag - 1 - 1 - - - UIF - Update interrupt flag - 0 - 1 - - - - - EGR - EGR - event generation register - 0x14 - 0x20 - write-only - 0x0000 - - - CC1G - Compare/capture1 event - 1 - 1 - - - UG - Update generation - 0 - 1 - - - - - CCMR1_Output - CCMR1_Output - capture/compare mode register (output - mode) - 0x18 - 0x20 - read-write - 0x00000000 - - - 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 - - - CC1P - Capture/Compare 1 output - Polarity - 1 - 1 - - - CC1E - Capture/Compare 1 output - enable - 0 - 1 - - - - - CNT - CNT - counter - 0x24 - 0x20 - read-write - 0x00000000 - - - CNT - counter value - 0 - 16 - - - - - PSC - PSC - prescaler - 0x28 - 0x20 - read-write - 0x0000 - - - PSC - Prescaler value - 0 - 16 - - - - - ARR - ARR - auto-reload register - 0x2C - 0x20 - read-write - 0x00000000 - - - ARR - Auto-reload value - 0 - 16 - - - - - CCR1 - CCR1 - capture/compare register 1 - 0x34 - 0x20 - read-write - 0x00000000 - - - CCR1 - Capture/Compare 1 value - 0 - 16 - - - - - OR - OR - Option register - 0x50 - 0x20 - read-write - 0x00000000 - - - TI1_RMP - TIM14 channel1 input remap - 0 - 2 - - - - - - - TIM16 - General purpose timer - TIM - 0x40014400 - - 0x00 - 0x400 - registers - - - TIM16 - TIM16 global Interrupt - 21 - - - - CR1 - CR1 - TIM16 control register1 - 0x0 - 0x20 - read-write - 0x0000 - - - CKD - Prescaler factor - 8 - 2 - - - ARPE - Auto-reload preload enable - 7 - 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 - - - OIS1N - Output Idle state 1 - 9 - 1 - - - OIS1 - Output Idle state 1 - 8 - 1 - - - CCDS - Capture/compare DMA - selection - 3 - 1 - - - CCPC - Capture/compare preloaded - control - 0 - 1 - - - - - DIER - DIER - DMA/Interrupt enable register - 0xC - 0x20 - read-write - 0x0000 - - - CC1DE - Compare/capture DMA requeset enable - 9 - 1 - - - UDE - Update DMA request enable - 8 - 1 - - - BIE - Break interrupt enable - 7 - 1 - - - COMIE - Com interrupt enable - 5 - 1 - - - CC1IE - Capture/Compare 1 interrupt enable - 1 - 1 - - - UIE - Update interrupt enable - 0 - 1 - - - - - SR - SR - status register - 0x10 - 0x20 - read-write - 0x0000 - - - CC1OF - Update interrupt 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 event generation - 7 - 1 - - - COMG - COM evnet 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 - 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 - read-write - 0x00000000 - - - CNT - counter value - 0 - 16 - - - - - PSC - PSC - prescaler - 0x28 - 0x20 - read-write - 0x0000 - - - PSC - Prescaler value - 0 - 16 - - - - - ARR - ARR - auto-reload register - 0x2C - 0x20 - read-write - 0x00000000 - - - 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 - - - MOE - Main output enable - 15 - 1 - - - AOE - Automatic output enable - 14 - 1 - - - BKP - Break polarity - 13 - 1 - - - BKE - Break enable - 12 - 1 - - - OSSR - Off-state selection for Run - mode - 11 - 1 - - - OSSI - Off-state selection for Idle - mode - 10 - 1 - - - LOCK - Lock configuration - 8 - 2 - - - DTG - Dead-time generator setup - 0 - 8 - - - - - 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 - 32 - - - - - - - TIM17 - 0x40014800 - - TIM17 - TIM17 global Interrupt - 22 - - - - SYSCFG - System configuration controller - SYSCFG - 0x40010000 - - 0x0 - 0x30 - registers - - - - CFGR1 - CFGR1 - SYSCFG configuration register - 1 - 0x0 - 0x20 - read-write - 0x00000000 - - - I2C_PF1_ANF - Analog filter enable control driving capability - activation bits PF1 - 30 - 1 - - - I2C_PF0_ANF - Analog filter enable control driving capability - activation bits PF0 - 29 - 1 - - - I2C_PB8_ANF - Analog filter enable control driving capability - activation bits PB8 - 28 - 1 - - - I2C_PB7_ANF - Analog filter enable control driving capability - activation bits PB7 - 27 - 1 - - I2C_PB6_ANF - Analog filter enable control driving capability - activation bits PB6 - 26 - 1 - - - I2C_PA12_ANF - Analog filter enable control driving capability - activation bits PA12 - 25 - 1 - - - I2C_PA11_ANF - Analog filter enable control driving capability - activation bits PA11 - 24 - 1 - - - I2C_PA10_ANF - Analog filter enable control driving capability - activation bits PA10 - 23 - 1 - - - I2C_PA9_ANF - Analog filter enable control driving capability - activation bits PA9 - 22 - 1 - - - I2C_PA8_ANF - Analog filter enable control driving capability - activation bits PA8 - 21 - 1 - - - I2C_PA7_ANF - Analog filter enable control driving capability - activation bits PA7 - 20 - 1 - - - I2C_PA3_ANF - Analog filter enable control driving capability - activation bits PA3 - 19 - 1 - - - I2C_PA2_ANF - Analog filter enable control driving capability - activation bits PA2 - 18 - 1 - - - MEM_MODE - Memory mapping selection - bits - 0 - 2 - - - - - CFGR2 - CFGR2 - SYSCFG configuration register - 2 - 0x18 - 0x20 - read-write - 0x00000000 - - - ETR_SRC_TIM1 - TIM1 ETR source selection - 9 - 2 - - - COMP2_BRK_TIM17 - COMP2 is enable to input of TIM17 break - 8 - 1 - - - COMP1_BRK_TIM17 - COMP1 is enable to input of TIM17 break - 7 - 1 - - - COMP2_BRK_TIM16 - COMP2 is enable to input of TIM16 break - 6 - 1 - - - COMP1_BRK_TIM16 - COMP1 is enable to input of TIM16 break - 5 - 1 - - - COMP2_BRK_TIM1 - COMP2 is enable to input of TIM1 break - 4 - 1 - - - COMP1_BRK_TIM1 - COMP1 is enable to input of TIM1 break - 3 - 1 - - - PVD_LOCK - PVD lock enable bit - 2 - 1 - - - LOCKUP_LOCK - Cortex-M0+ LOCKUP bit enable - bit - 0 - 1 - - - - - CFGR3 - CFGR3 - SYSCFG configuration register - 3 - 0x1C - 0x20 - read-write - 0x00000000 - - - DMA3_MAP - DMA channel3 requeset selection - 16 - 5 - - - DMA2_MAP - DMA channel2 requeset selection - 8 - 5 - - - DMA1_MAP - DMA channel1 requeset selection - 0 - 5 - - - - - - - DMA - Direct memory access - DMA - 0x40020000 - - 0x0 - 0x400 - registers - - - DMA_Channel1 - DMA Channel 1 Interrupt - 9 - - - DMA_Channel2_3 - DMA Channel 2 and Channel 3 Interrupt - 10 - - - - ISR - ISR - DMA interrupt status register - (DMA_ISR) - 0x0 - 0x20 - read-only - 0x00000000 - - - TEIF3 - Channel 3 Transfer Error - flag - 11 - 1 - - - HTIF3 - Channel 3 Half Transfer Complete - flag - 10 - 1 - - - TCIF3 - Channel 3 Transfer Complete - flag - 9 - 1 - - - GIF3 - Channel 3 Global interrupt - flag - 8 - 1 - - - TEIF2 - Channel 2 Transfer Error - flag - 7 - 1 - - - HTIF2 - Channel 2 Half Transfer Complete - flag - 6 - 1 - - - TCIF2 - Channel 2 Transfer Complete - flag - 5 - 1 - - - GIF2 - Channel 2 Global interrupt - flag - 4 - 1 - - - TEIF1 - Channel 1 Transfer Error - flag - 3 - 1 - - - HTIF1 - Channel 1 Half Transfer Complete - flag - 2 - 1 - - - TCIF1 - Channel 1 Transfer Complete - flag - 1 - 1 - - - GIF1 - Channel 1 Global interrupt - flag - 0 - 1 - - - - - IFCR - IFCR - DMA interrupt flag clear register - (DMA_IFCR) - 0x4 - 0x20 - write-only - 0x00000000 - - - CTEIF3 - Channel 3 Transfer Error - clear - 11 - 1 - - - CHTIF3 - Channel 3 Half Transfer - clear - 10 - 1 - - - CTCIF3 - Channel 3 Transfer Complete - clear - 9 - 1 - - - CGIF3 - Channel 3 Global interrupt - clear - 8 - 1 - - - CTEIF2 - Channel 2 Transfer Error - clear - 7 - 1 - - - CHTIF2 - Channel 2 Half Transfer - clear - 6 - 1 - - - CTCIF2 - Channel 2 Transfer Complete - clear - 5 - 1 - - - CGIF2 - Channel 2 Global interrupt - clear - 4 - 1 - - - CTEIF1 - Channel 1 Transfer Error - clear - 3 - 1 - - - CHTIF1 - Channel 1 Half Transfer - clear - 2 - 1 - - - CTCIF1 - Channel 1 Transfer Complete - clear - 1 - 1 - - - CGIF1 - Channel 1 Global interrupt - clear - 0 - 1 - - - - - CCR1 - CCR1 - DMA channel configuration register - (DMA_CCR) - 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 - DMA channel 1 number of data - register - 0xC - 0x20 - read-write - 0x00000000 - - - NDT - Number of data to transfer - 0 - 16 - - - - - CPAR1 - CPAR1 - DMA channel 1 peripheral address - register - 0x10 - 0x20 - read-write - 0x00000000 - - - PA - Peripheral address - 0 - 32 - - - - - CMAR1 - CMAR1 - DMA channel 1 memory address - register - 0x14 - 0x20 - read-write - 0x00000000 - - - MA - Memory address - 0 - 32 - - - - - CCR2 - CCR2 - DMA channel configuration register - (DMA_CCR) - 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 - DMA channel 2 number of data - register - 0x20 - 0x20 - read-write - 0x00000000 - - - NDT - Number of data to transfer - 0 - 16 - - - - - CPAR2 - CPAR2 - DMA channel 2 peripheral address - register - 0x24 - 0x20 - read-write - 0x00000000 - - - PA - Peripheral address - 0 - 32 - - - - - CMAR2 - CMAR2 - DMA channel 2 memory address - register - 0x28 - 0x20 - read-write - 0x00000000 - - - MA - Memory address - 0 - 32 - - - - - CCR3 - CCR3 - DMA channel configuration register - (DMA_CCR) - 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 - DMA channel 3 number of data - register - 0x34 - 0x20 - read-write - 0x00000000 - - - NDT - Number of data to transfer - 0 - 16 - - - - - CPAR3 - CPAR3 - DMA channel 3 peripheral address - register - 0x38 - 0x20 - read-write - 0x00000000 - - - PA - Peripheral address - 0 - 32 - - - - - CMAR3 - CMAR3 - DMA channel 3 memory address - register - 0x3C - 0x20 - read-write - 0x00000000 - - - MA - Memory address - 0 - 32 - - - - - - - FLASH - Flash - Flash - 0x40022000 - - 0x0 - 0x400 - registers - - - FLASH - FLASH global Interrupt - 3 - - - - ACR - ACR - Access control register - 0x0 - 0x20 - read-write - 0x00000600 - - - LATENCY - Latency - 0 - 1 - - - - - KEYR - KEYR - Flash key register - 0x8 - 0x20 - write-only - 0x00000000 - - - KEY - Flash key - 0 - 32 - - - - - OPTKEYR - OPTKEYR - Option byte key register - 0xC - 0x20 - write-only - 0x00000000 - - - OPTKEY - Option byte key - 0 - 32 - - - - - SR - SR - Status register - 0x10 - 0x20 - read-write - 0x00000000 - - - BSY - Busy - 16 - 1 - - - OPTVERR - Option and Engineering bits loading - validity error - 15 - 1 - - - WRPERR - Write protected error - 4 - 1 - - - EOP - End of operation - 0 - 1 - - - - - CR - CR - Flash control register - 0x14 - 0x20 - read-write - 0xC0000000 - - - LOCK - FLASH_CR Lock - 31 - 1 - - - OPTLOCK - Options Lock - 30 - 1 - - - OBL_LAUNCH - Force the option byte - loading - 27 - 1 - - - ERRIE - Error interrupt enable - 25 - 1 - - - EOPIE - End of operation interrupt - enable - 24 - 1 - - - PGTSTRT - Flash main memory program start - 19 - 1 - - - OPTSTRT - Option byte program start - 17 - 1 - - - SER - Sector erase - 11 - 1 - - - MER - Mass erase - 2 - 1 - - - PER - Page erase - 1 - 1 - - - PG - Programming - 0 - 1 - - - - - OPTR - OPTR - Flash option register - 0x20 - 0x20 - read-write - 0x4F55B0AA - - - nBOOT1 - Boot configuration - 15 - 1 - - - NRST_MODE - NRST_MODE - 14 - 1 - - - WWDG_SW - Window watchdog selection - 13 - 1 - - - IDWG_SW - Independent watchdog - selection - 12 - 1 - - - BORF_LEV - These bits contain the VDD supply level - threshold that activates the reset - 9 - 3 - - - BOREN - BOR reset Level - 8 - 1 - - - RDP - Read Protection - 0 - 8 - - - - - SDKR - SDKR - Flash SDK address - register - 0x24 - 0x20 - read-write - 0xFFE0001F - - - SDK_END - SDK area end address - 8 - 5 - - - SDK_STRT - SDK area start address - 0 - 5 - - - - - WRPR - WRPR - Flash WRP address - register - 0x2C - 0x20 - read-write - 0x0000FFFF - - - WRP - WRP address - 0 - 16 - - - - - STCR - STCR - Flash sleep time config - register - 0x90 - 0x20 - read-write - 0x00006400 - - - SLEEP_TIME - FLash sleep time configuration(counter based on HSI_10M) - 8 - 8 - - - SLEEP_EN - FLash sleep enable - 0 - 1 - - - - - TS0 - TS0 - Flash TS0 - register - 0x100 - 0x20 - read-write - 0x000000B4 - - - TS0 - FLash TS0 register - 0 - 8 - - - - - TS1 - TS1 - Flash TS1 - register - 0x104 - 0x20 - read-write - 0x000001B0 - - - TS1 - FLash TS1 register - 0 - 9 - - - - - TS2P - TS2P - Flash TS2P - register - 0x108 - 0x20 - read-write - 0x000000B4 - - - TS2P - FLash TS2P register - 0 - 8 - - - - - TPS3 - TPS3 - Flash TPS3 - register - 0x10C - 0x20 - read-write - 0x000006C0 - - - TPS3 - FLash TPS3 register - 0 - 11 - - - - - TS3 - TS3 - Flash TS3 - register - 0x110 - 0x20 - read-write - 0x000000B4 - - - TS3 - FLash TS3 register - 0 - 8 - - - - - PERTPE - PERTPE - Flash PERTPE - register - 0x114 - 0x20 - read-write - 0x0000EA60 - - - PERTPE - FLash PERTPE register - 0 - 17 - - - - - SMERTPE - SMERTPE - Flash SMERTPE - register - 0x118 - 0x20 - read-write - 0x0000FD20 - - - SMERTPE - FLash SMERTPE register - 0 - 17 - - - - - PRGTPE - PRGTPE - Flash PRGTPE - register - 0x11C - 0x20 - read-write - 0x00008CA0 - - - PRGTPE - FLash PRGTPE register - 0 - 16 - - - - - PRETPE - PRETPE - Flash PRETPE - register - 0x120 - 0x20 - read-write - 0x000012C0 - - - PRETPE - FLash PRETPE register - 0 - 13 - - - - - - - CRC - CRC calculation unit - CRC - 0x40023000 - - 0x0 - 0x400 - registers - - - - DR - DR - Data register - 0x0 - 0x20 - read-write - 0xFFFFFFFF - - - DR - Data Register - 0 - 32 - - - - - IDR - IDR - Independent Data register - 0x4 - 0x20 - read-write - 0x00000000 - - - IDR - Independent Data register - 0 - 8 - - - - - CR - CR - Control register - 0x8 - 0x20 - write-only - 0x00000000 - - - RESET - Reset bit - 0 - 1 - - - - - - - SPI1 - Serial peripheral interface - SPI - 0x40013000 - - 0x0 - 0x400 - registers - - - SPI1 - SPI1 global Interrupt - 25 - - - - CR1 - CR1 - control register 1 - 0x0 - 0x20 - read-write - 0x0000 - - - BIDIMODE - Bidirectional data mode - enable - 15 - 1 - - - BIDIOE - Output enable in bidirectional - mode - 14 - 1 - - - RXONLY - Receive only - 10 - 1 - - - SSM - Software slave management - 9 - 1 - - - SSI - Internal slave selection - 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 - 0x0000 - - - SLVFM - Slave fast mode enable - 15 - 1 - - - LDMA_TX - Last DAM Transmit(TX) - 14 - 1 - - - LDMA_RX - Last DAM Transmit(RX) - 13 - 1 - - - FRXTH - FIFO reception threshold - 12 - 1 - - - DS - Data length - - 11 - 1 - - - TXEIE - Tx buffer empty interrupt - enable - 7 - 1 - - - RXNEIE - RX buffer not empty interrupt - enable - 6 - 1 - - - ERRIE - Error interrupt enable - 5 - 1 - - - SSOE - SS output enable - 2 - 1 - - - TXDMAEN - Tx buffer DMA enable - 1 - 1 - - - RXDMAEN - Rx buffer DMA enable - 0 - 1 - - - - - SR - SR - status register - 0x8 - 0x20 - 0x0002 - - - FTLVL - FIFO transmission level - 11 - 2 - read-only - - - FRLVL - FIFO reception level - 9 - 2 - read-only - - - BSY - Busy flag - 7 - 1 - read-only - - - OVR - Overrun flag - 6 - 1 - read-only - - - MODF - Mode fault - 5 - 1 - read-only - - - TXE - Transmit buffer empty - 1 - 1 - read-only - - - RXNE - Receive buffer not empty - 0 - 1 - read-only - - - - - DR - DR - data register - 0xC - 0x20 - read-write - 0x0000 - - - DR - Data register - 0 - 16 - - - - - - - I2C - Inter integrated circuit - I2C - 0x40005400 - - 0x0 - 0x400 - registers - - - I2C1 - I2C1 global Interrupt - 23 - - - - CR1 - CR1 - Control register 1 - 0x0 - 0x20 - read-write - 0x0000 - - - SWRST - Software reset - 15 - 1 - - - PEC - Packet error checking - 12 - 1 - - - POS - Acknowledge/PEC Position (for data - reception) - 11 - 1 - - - ACK - Acknowledge enable - 10 - 1 - - - STOP - Stop generation - 9 - 1 - - - START - Start generation - 8 - 1 - - - NOSTRETCH - Clock stretching disable (Slave - mode) - 7 - 1 - - - ENGC - General call enable - 6 - 1 - - - ENPEC - PEC enable - 5 - 1 - - - PE - Peripheral enable - 0 - 1 - - - - - CR2 - CR2 - Control register 2 - 0x4 - 0x20 - read-write - 0x0000 - - - LAST - DMA last transfer - 12 - 1 - - - DMAEN - DMA requests enable - 11 - 1 - - - ITBUFEN - Buffer interrupt enable - 10 - 1 - - - ITEVTEN - Event interrupt enable - 9 - 1 - - - ITERREN - Error interrupt enable - 8 - 1 - - - FREQ - Peripheral clock frequency - 0 - 6 - - - - - OAR1 - OAR1 - Own address register 1 - 0x8 - 0x20 - read-write - 0x0000 - - - ADD - Interface address - 1 - 7 - - - - - DR - DR - Data register - 0x10 - 0x20 - read-write - 0x0000 - - - DR - 8-bit data register - 0 - 8 - - - - - SR1 - SR1 - Status register 1 - 0x14 - 0x20 - 0x0000 - - - PECERR - PEC Error in reception - 12 - 1 - read-write - - - OVR - Overrun/Underrun - 11 - 1 - read-write - - - AF - Acknowledge failure - 10 - 1 - read-write - - - ARLO - Arbitration lost (master - mode) - 9 - 1 - read-write - - - BERR - Bus error - 8 - 1 - read-write - - - TxE - Data register empty - (transmitters) - 7 - 1 - read-only - - - RxNE - Data register not empty - (receivers) - 6 - 1 - read-only - - - STOPF - Stop detection (slave - mode) - 4 - 1 - read-only - - - BTF - Byte transfer finished - 2 - 1 - read-only - - - ADDR - Address sent (master mode)/matched - (slave mode) - 1 - 1 - read-only - - - SB - Start bit (Master mode) - 0 - 1 - read-only - - - - - SR2 - SR2 - Status register 2 - 0x18 - 0x20 - read-only - 0x0000 - - - PEC - acket error checking - register - 8 - 8 - - - DUALF - Dual flag (Slave mode) - 7 - 1 - - - GENCALL - General call address (Slave - mode) - 4 - 1 - - - TRA - Transmitter/receiver - 2 - 1 - - - BUSY - Bus busy - 1 - 1 - - - MSL - Master/slave - 0 - 1 - - - - - CCR - CCR - Clock control register - 0x1C - 0x20 - read-write - 0x0000 - - - F_S - I2C master mode selection - 15 - 1 - - - DUTY - Fast mode duty cycle - 14 - 1 - - - CCR - Clock control register in Fast/Standard - mode (Master mode) - 0 - 12 - - - - - TRISE - TRISE - TRISE register - 0x20 - 0x20 - read-write - 0x0002 - - - TRISE - Maximum rise time in Fast/Standard mode - (Master mode) - 0 - 6 - - - - - - - DBGMCU - Debug support - DBGMCU - 0x40015800 - - 0x0 - 0x400 - registers - - - - IDCODE - IDCODE - MCU Device ID Code Register - 0x0 - 0x20 - read-only - 0x0 - - - - - - CR - CR - Debug MCU Configuration - Register - 0x4 - 0x20 - read-write - 0x0 - - - DBG_STOP - Debug Stop Mode - 1 - 1 - - - - - APB_FZ1 - APB_FZ1 - APB Freeze Register1 - 0x8 - 0x20 - read-write - 0x0 - - - DBG_TIMER3_STOP - Debug Timer 3 stopped when Core is - halted - 1 - 1 - - - DBG_RTC_STOP - Debug RTC stopped when Core is - halted - 10 - 1 - - - DBG_WWDG_STOP - Debug Window Wachdog stopped when Core - is halted - 11 - 1 - - - DBG_IWDG_STOP - Debug Independent Wachdog stopped when - Core is halted - 12 - 1 - - - DBG_LPTIM_STOP - Debug LPTIM stopped when Core is - halted - 31 - 1 - - - - - APB_FZ2 - APB_FZ2 - APB Freeze Register2 - 0xC - 0x20 - read-write - 0x0 - - - DBG_TIMER1_STOP - Debug Timer 1 stopped when Core is - halted - 11 - 1 - - - DBG_TIMER14_STOP - Debug Timer 14 stopped when Core is - halted - 15 - 1 - - - DBG_TIMER16_STOP - Debug Timer 16 stopped when Core is - halted - 17 - 1 - - - DBG_TIMER17_STOP - Debug Timer 17 stopped when Core is - halted - 18 - 1 - - - - - - - + + + + Puya + Puya + PY32F0xx_DFP + + PY32F0 + 1.0.0 + Arm 32-bit Cortex-M0+ Microcontroller based device, CPU clock up to 48 MHz. + + + + CM0+ + r0p1 + little + false + false + 4 + false + + + + 8 + 32 + 32 + read-write + 0x00000000 + 0xFFFFFFFF + + + ADC + Analog to Digital Converter + ADC + 0x40012400 + + 0x0 + 0x400 + registers + + + ADC_COMP + ADC and COMP Interrupt through EXTI Lines 17 and 18 + 12 + + + + ISR + ISR + ADC interrupt and status register + 0x0 + 0x20 + read-write + 0x00000000 + + + AWD + ADC analog watchdog flag + 7 + 1 + + + OVR + ADC group regular overrun + flag + 4 + 1 + + + EOSEQ + 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 + + + + + IER + IER + ADC interrupt enable register + 0x4 + 0x20 + read-write + 0x00000000 + + + AWDIE + ADC analog watchdog + interrupt + 7 + 1 + + + OVRIE + ADC group regular overrun + interrupt + 4 + 1 + + + EOSEQIE + 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 + + + + + CR + CR + ADC control register + 0x8 + 0x20 + read-write + 0x00000000 + + + ADCAL + ADC group regular conversion + calibration + 31 + 1 + + + ADSTP + ADC group regular conversion + stop + 4 + 1 + + + ADSTART + ADC group regular conversion + start + 2 + 1 + + + ADEN + ADC enable + 0 + 1 + + + + + CFGR1 + CFGR1 + ADC configuration register 1 + 0xC + 0x20 + read-write + 0x00000000 + + + AWDCH + ADC analog watchdog monitored channel + selection + 26 + 4 + + + AWDEN + ADC analog watchdog enable on scope + ADC group regular + 23 + 1 + + + AWDSGL + ADC analog watchdog monitoring a + single channel or all channels + 22 + 1 + + + DISCEN + ADC group regular sequencer + discontinuous mode + 16 + 1 + + + WAIT + Wait conversion mode + 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 + 3 + + + ALIGN + ADC data alignement + 5 + 1 + + + RESSEL + ADC data resolution + 3 + 2 + + + SCANDIR + Scan sequence direction + 2 + 1 + + + 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 + + + CKMODE + ADC clock mode + 28 + 4 + + + + + SMPR + SMPR + ADC sampling time register + 0x14 + 0x20 + read-write + 0x00000000 + + + SMP + Sampling time selection + 0 + 3 + + + + + TR + TR + ADC analog watchdog 1 threshold register + 0x20 + 0x20 + read-write + 0x0FFF0000 + + + HT + ADC analog watchdog threshold + high + 16 + 12 + + + LT + ADC analog watchdog threshold + low + 0 + 12 + + + + + CHSELR + CHSELR + ADC group regular sequencer register + 0x28 + 0x20 + read-write + 0x0FFF0000 + + + CHSEL12 + Channel-12 selection + 12 + 1 + + + CHSEL11 + Channel-11 selection + 11 + 1 + + + CHSEL9 + Channel-9 selection + 9 + 1 + + + CHSEL8 + Channel-8 selection + 8 + 1 + + + CHSEL7 + Channel-7 selection + 7 + 1 + + + CHSEL6 + Channel-6 selection + 6 + 1 + + + CHSEL5 + Channel-5 selection + 5 + 1 + + + CHSEL4 + Channel-4 selection + 4 + 1 + + + CHSEL3 + Channel-3 selection + 3 + 1 + + + CHSEL2 + Channel-2 selection + 2 + 1 + + + CHSEL1 + Channel-1 selection + 1 + 1 + + + CHSEL0 + Channel-0 selection + 0 + 1 + + + + + DR + DR + ADC group regular data register + 0x40 + 0x20 + read-only + 0x00000000 + + + DATA + ADC group regular conversion + data + 0 + 16 + + + + + CCSR + CCSR + ADC calibration configuration and status register + 0x44 + 0x20 + read-write + 0x00000000 + + + CALON + Calibration flag + 31 + 1 + read-only + + + CALFAIL + Calibration fail flag + 30 + 1 + + + CALSET + Calibration factor selection + 15 + 1 + + + CALSMP + Calibration sample time selection + 12 + 2 + + + CALSEL + Calibration contents selection + 11 + 1 + + + + + CALRR1 + CALRR1 + ADC calibration result register 1 + 0x48 + 0x20 + read-only + 0x00000000 + + + CALBOUT + offset result + 16 + 7 + + + CALC5OUT + C5 result + 8 + 8 + + + CALC4OUT + C4 result + 0 + 8 + + + + + CALRR2 + CALRR2 + ADC calibration result register 2 + 0x4C + 0x20 + read-only + 0x00000000 + + + CALC3OUT + C3 result + 24 + 8 + + + CALC2OUT + C2 result + 16 + 8 + + + CALC1OUT + C1 result + 8 + 8 + + + CALC0OUT + C0 result + 0 + 8 + + + + + CALFIR1 + CALFIR1 + ADC calibration factor input register 1 + 0x50 + 0x20 + read-write + 0x00000000 + + + CALBIO + Calibration offset factor input + 16 + 7 + + + CALC5IO + Calibration C5 factor input + 8 + 8 + + + CALC4IO + Calibration C4 factor input + 0 + 8 + + + + + CALFIR2 + CALFIR2 + ADC calibration factor input register 2 + 0x54 + 0x20 + read-write + 0x00000000 + + + CALC3IO + Calibration C3 factor input + 24 + 8 + + + CALC2IO + Calibration C2 factor input + 16 + 8 + + + CALC1IO + Calibration C1 factor input + 8 + 8 + + + CALC0IO + Calibration C0 factor input + 0 + 8 + + + + + CCR + CCR + ADC common configuration register + 0x308 + 0x20 + read-write + 0x00000000 + + + TSEN + Temperature sensor enable + 23 + 1 + + + VREFEN + VREFINT enable + 22 + 1 + + + + + + + COMP1 + Comparator + COMP + 0x40010200 + + 0x0 + 0x10 + registers + + + + CSR + CSR + COMP control and status register + 0x0 + 0x20 + read-write + 0x00000000 + + + LOCK + CSR register lock + 31 + 1 + + + COMP_OUT + Comparator output status + 30 + 1 + + + PWRMODE + Comparator power mode + selector + 18 + 2 + + + HYST + Comparator hysteresis enable + selector + 16 + 1 + + + POLARITY + Comparator polarity + selector + 15 + 1 + + + WINMODE + Comparator non-inverting input + selector for window mode + 11 + 1 + + + INPSEL + Comparator signal selector for + non-inverting input + 8 + 2 + + + INMSEL + Comparator signal selector for + inverting input INM + 4 + 4 + + + SCALER_EN + SCALER enable bit + 1 + 1 + + + COMP_EN + COMP enable bit + 0 + 1 + + + + + FR + FR + Comparator Filter + register + 0x4 + 0x20 + read-write + 0x00000000 + + + FLTCNT + Comparator filter and counter + 16 + 16 + + + FLTEN + Filter enable bit + 0 + 1 + + + + + + + COMP2 + Comparator + COMP + 0x40010210 + + 0x0 + 0x10 + registers + + + + CSR + CSR + COMP control and status register + 0x0 + 0x20 + read-write + 0x00000000 + + + LOCK + CSR register lock + 31 + 1 + + + COMP_OUT + Comparator output status + 30 + 1 + + + PWRMODE + Comparator power mode + selector + 18 + 2 + + + POLARITY + Comparator polarity + selector + 15 + 1 + + + WINMODE + Comparator non-inverting input + selector for window mode + 11 + 1 + + + INPSEL + Comparator signal selector for + non-inverting input + 8 + 2 + + + INMSEL + Comparator signal selector for + inverting input INM + 4 + 4 + + + COMP_EN + COMP enable bit + 0 + 1 + + + + + FR + FR + Comparator Filter + register + 0x4 + 0x20 + read-write + 0x00000000 + + + FLTCNT + Comparator filter and counter + 16 + 16 + + + FLTEN + Filter enable bit + 0 + 1 + + + + + + + RCC + Reset and clock control + RCC + 0x40021000 + + 0x0 + 0x400 + registers + + + RCC + RCC global Interrupt + 4 + + + + CR + CR + Clock control register + 0x0 + 0x20 + read-write + 0x00000100 + + + CSSON + Clock security system + enable + 19 + 1 + + + HSEBYP + HSE crystal oscillator + bypass + 18 + 1 + + + HSERDY + HSE clock ready flag + 17 + 1 + + + HSEON + HSE clock enable + 16 + 1 + + + HSIDIV + HSI16 clock division + factor + 11 + 3 + + + HSIRDY + HSI16 clock ready flag + 10 + 1 + + + HSIKERON + HSI16 always enable for peripheral + kernels + 9 + 1 + + + HSION + HSI16 clock enable + 8 + 1 + + + + + ICSCR + ICSCR + Internal clock sources calibration + register + 0x4 + 0x20 + 0x10000000 + + + LSI_STARTUP + LSI startup time + 26 + 2 + read-write + + + LSI_TRIM + LSI clock trimming + 16 + 9 + read-write + + + HSI_FS + HSI frequency selection + 13 + 3 + read-write + + + HSI_TRIM + HSI clock trimming + 0 + 13 + read-write + + + + + CFGR + CFGR + Clock configuration register + 0x8 + 0x20 + 0x00000000 + + + MCOPRE + Microcontroller clock output + prescaler + 28 + 3 + read-write + + + MCOSEL + Microcontroller clock + output + 24 + 3 + read-write + + + PPRE + APB prescaler + 12 + 3 + read-write + + + HPRE + AHB prescaler + 8 + 4 + read-write + + + SWS + System clock switch status + 3 + 3 + read-only + + + SW + System clock switch + 0 + 3 + read-write + + + + + ECSCR + ECSCR + External clock source control register + 0x10 + 0x20 + 0x00000000 + + + HSE_FREQ + HSE clock freqency selection + 2 + 2 + read-write + + + + + CIER + CIER + Clock interrupt enable + register + 0x18 + 0x20 + read-write + 0x00000000 + + + HSERDYIE + HSE ready interrupt enable + 4 + 1 + + + HSIRDYIE + HSI ready interrupt enable + 3 + 1 + + + LSIRDYIE + LSI ready interrupt enable + 0 + 1 + + + + + CIFR + CIFR + Clock interrupt flag register + 0x1C + 0x20 + read-only + 0x00000000 + + + CSSF + HSE clock secure system interrupt flag + 8 + 1 + + + HSERDYF + HSE ready interrupt flag + 4 + 1 + + + HSIRDYF + HSI ready interrupt flag + 3 + 1 + + + LSIRDYF + LSI ready interrupt flag + 0 + 1 + + + + + CICR + CICR + Clock interrupt clear register + 0x20 + 0x20 + write-only + 0x00000000 + + + CSSC + clock secure system interrupt flag clear + 8 + 1 + + + HSERDYC + HSE ready interrupt clear + 4 + 1 + + + HSIRDYC + HSI ready interrupt clear + 3 + 1 + + + LSIRDYC + LSI ready interrupt clear + 0 + 1 + + + + + IOPRSTR + IOPRSTR + GPIO reset register + 0x24 + 0x20 + read-write + 0x00000000 + + + GPIOFRST + I/O port F reset + 5 + 1 + + + GPIOBRST + I/O port B reset + 1 + 1 + + + GPIOARST + I/O port A reset + 0 + 1 + + + + + AHBRSTR + AHBRSTR + AHB peripheral reset register + 0x28 + 0x20 + read-write + 0x00000000 + + + CRCRST + CRC reset + 12 + 1 + + + DMARST + DMA reset + 0 + 1 + + + + + APBRSTR1 + APBRSTR1 + APB peripheral reset register + 1 + 0x2C + 0x20 + read-write + 0x00000000 + + + LPTIMRST + Low Power Timer reset + 31 + 1 + + + PWRRST + Power interface reset + 28 + 1 + + + DBGRST + Debug support reset + 27 + 1 + + + I2CRST + I2C reset + 21 + 1 + + + USART2RST + USART2 reset + 17 + 1 + + + TIM3RST + TIM3 timer reset + 1 + 1 + + + + + APBRSTR2 + APBRSTR2 + APB peripheral reset register + 2 + 0x30 + 0x20 + read-write + 0x00000000 + + + COMP2RST + COMP2 reset + 22 + 1 + + + COMP1RST + COMP1 reset + 21 + 1 + + + ADCRST + ADC reset + 20 + 1 + + + TIM17RST + TIM17 timer reset + 18 + 1 + + + TIM16RST + TIM16 timer reset + 17 + 1 + + + TIM14RST + TIM14 timer reset + 15 + 1 + + + USART1RST + USART1 reset + 14 + 1 + + + SPI1RST + SPI1 reset + 12 + 1 + + + TIM1RST + TIM1 timer reset + 11 + 1 + + + SYSCFGRST + SYSCFG and COMP + reset + 0 + 1 + + + + + IOPENR + IOPENR + GPIO clock enable register + 0x34 + 0x20 + read-write + 0x00000000 + + + GPIOFEN + I/O port F clock enable + 5 + 1 + + + GPIOBEN + I/O port B clock enable + 1 + 1 + + + GPIOAEN + I/O port A clock enable + 0 + 1 + + + + + AHBENR + AHBENR + AHB peripheral clock enable + register + 0x38 + 0x20 + read-write + 0x00000000 + + + CRCEN + CRC clock enable + 12 + 1 + + + SRAMEN + SRAM memory interface clock + enable + 9 + 1 + + + FLASHEN + Flash memory interface clock + enable + 8 + 1 + + + DMAEN + DMA clock enable + 0 + 1 + + + + + APBENR1 + APBENR1 + APB peripheral clock enable register + 1 + 0x3C + 0x20 + read-write + 0x00000000 + + + LPTIMEN + LPTIM clock enable + 31 + 1 + + + PWREN + Power interface clock + enable + 28 + 1 + + + DBGEN + Debug support clock enable + 27 + 1 + + + I2CEN + I2C clock enable + 21 + 1 + + + USART2EN + USART2 clock enable + 17 + 1 + + + WWDGEN + WWDG clock enable + 11 + 1 + + + RTCAPBEN + RTC APB clock enable + 10 + 1 + + + TIM3EN + TIM3 timer clock enable + 1 + 1 + + + + + APBENR2 + APBENR2 + APB peripheral clock enable register + 2 + 0x40 + 0x20 + read-write + 0x00000000 + + + COMP2EN + COMP2 clock enable + 22 + 1 + + + COMP1EN + COMP1 clock enable + 21 + 1 + + + ADCEN + ADC clock enable + 20 + 1 + + + TIM17EN + TIM16 timer clock enable + 18 + 1 + + + TIM16EN + TIM16 timer clock enable + 17 + 1 + + + TIM14EN + TIM14 timer clock enable + 15 + 1 + + + USART1EN + USART1 clock enable + 14 + 1 + + + SPI1EN + SPI1 clock enable + 12 + 1 + + + TIM1EN + TIM1 timer clock enable + 11 + 1 + + + SYSCFGEN + SYSCFG, COMP and VREFBUF clock + enable + 0 + 1 + + + + + CCIPR + CCIPR + Peripherals independent clock configuration + register + 0x54 + 0x20 + read-write + 0x00000000 + + + LPTIM1SEL + LPTIM1 clock source + selection + 18 + 2 + + + COMP2SEL + COMP2 clock source + selection + 9 + 1 + + + COMP1SEL + COMP1 clock source + selection + 8 + 1 + + + PVDSEL + PVD detect clock source + selection + 7 + 1 + + + + + BDCR + BDCR + RTC domain control register + 0x5C + 0x20 + read-write + 0x00000000 + + + LSCOSEL + Low-speed clock output + selection + 25 + 1 + + + LSCOEN + Low-speed clock output (LSCO) + enable + 24 + 1 + + + BDRST + RTC domain software reset + 16 + 1 + + + RTCEN + RTC clock source enable + 15 + 1 + + + RTCSEL + RTC clock source selection + 8 + 2 + + + + + CSR + CSR + Control/status register + 0x60 + 0x20 + read-write + 0x00000000 + + + WWDGRSTF + Window watchdog reset flag + 30 + 1 + + + IWDGRSTF + Independent window watchdog reset + flag + 29 + 1 + + + SFTRSTF + Software reset flag + 28 + 1 + + + PWRRSTF + BOR or POR/PDR flag + 27 + 1 + + + PINRSTF + Pin reset flag + 26 + 1 + + + OBLRSTF + Option byte loader reset + flag + 25 + 1 + + + RMVF + Remove reset flags + 23 + 1 + + + LSIRDY + LSI oscillator ready + 1 + 1 + + + LSION + LSI oscillator enable + 0 + 1 + + + + + + + PWR + Power control + PWR + 0x40007000 + + 0x0 + 0x400 + registers + + + + CR1 + CR1 + Power control register 1 + 0x0 + 0x20 + read-write + 0x00030000 + + + HSION_CTRL + HSI open time control + 19 + 1 + + + SRAM_RETV + SRAM retention voltage control + 16 + 3 + + + LPR + Low-power run + 14 + 1 + + + FLS_SLPTIME + Flash wait time after wakeup from the stop mode + 12 + 2 + + + MRRDY_TIME + Time selection wakeup from LP to VR + 10 + 2 + + + VOS + Voltage scaling range + selection + 9 + 1 + + + DBP + Disable backup domain write + protection + 8 + 1 + + + BIAS_CR_SEL + MR Bias current selection + 4 + 1 + + + BIAS_CR + MR Bias current + 0 + 4 + + + + + CR2 + CR2 + Power control register 2 + 0x4 + 0x20 + read-write + 0x00000500 + + + FLT_TIME + Digital filter time configuration + 9 + 3 + + + FLTEN + Digital filter enable + 8 + 1 + + + PVDT + Power voltage detector threshold + selection + 4 + 3 + + + SRCSEL + Power voltage detector volatage + selection + 2 + 1 + + + PVDE + Power voltage detector + enable + 0 + 1 + + + + + SR + SR + Power status register + 0x14 + 0x20 + read-only + 0x00000000 + + + PVDO + PVD output + 11 + 1 + + + + + + + GPIOA + General-purpose I/Os + GPIO + 0x50000000 + + 0x0 + 0x400 + registers + + + + MODER + MODER + GPIO port mode register + 0x0 + 0x20 + read-write + 0xEBFFFFFF + + + MODE15 + Port x configuration bits (y = + 0..15) + 30 + 2 + + + MODE14 + Port x configuration bits (y = + 0..15) + 28 + 2 + + + MODE13 + Port x configuration bits (y = + 0..15) + 26 + 2 + + + MODE12 + Port x configuration bits (y = + 0..15) + 24 + 2 + + + MODE11 + Port x configuration bits (y = + 0..15) + 22 + 2 + + + MODE10 + Port x configuration bits (y = + 0..15) + 20 + 2 + + + MODE9 + Port x configuration bits (y = + 0..15) + 18 + 2 + + + MODE8 + Port x configuration bits (y = + 0..15) + 16 + 2 + + + MODE7 + Port x configuration bits (y = + 0..15) + 14 + 2 + + + MODE6 + Port x configuration bits (y = + 0..15) + 12 + 2 + + + MODE5 + Port x configuration bits (y = + 0..15) + 10 + 2 + + + MODE4 + Port x configuration bits (y = + 0..15) + 8 + 2 + + + MODE3 + Port x configuration bits (y = + 0..15) + 6 + 2 + + + MODE2 + Port x configuration bits (y = + 0..15) + 4 + 2 + + + MODE1 + Port x configuration bits (y = + 0..15) + 2 + 2 + + + MODE0 + 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 + + + OSPEED15 + Port x configuration bits (y = + 0..15) + 30 + 2 + + + OSPEED14 + Port x configuration bits (y = + 0..15) + 28 + 2 + + + OSPEED13 + Port x configuration bits (y = + 0..15) + 26 + 2 + + + OSPEED12 + Port x configuration bits (y = + 0..15) + 24 + 2 + + + OSPEED11 + Port x configuration bits (y = + 0..15) + 22 + 2 + + + OSPEED10 + Port x configuration bits (y = + 0..15) + 20 + 2 + + + OSPEED9 + Port x configuration bits (y = + 0..15) + 18 + 2 + + + OSPEED8 + Port x configuration bits (y = + 0..15) + 16 + 2 + + + OSPEED7 + Port x configuration bits (y = + 0..15) + 14 + 2 + + + OSPEED6 + Port x configuration bits (y = + 0..15) + 12 + 2 + + + OSPEED5 + Port x configuration bits (y = + 0..15) + 10 + 2 + + + OSPEED4 + Port x configuration bits (y = + 0..15) + 8 + 2 + + + OSPEED3 + Port x configuration bits (y = + 0..15) + 6 + 2 + + + OSPEED2 + Port x configuration bits (y = + 0..15) + 4 + 2 + + + OSPEED1 + Port x configuration bits (y = + 0..15) + 2 + 2 + + + OSPEED0 + Port x configuration bits (y = + 0..15) + 0 + 2 + + + + + PUPDR + PUPDR + GPIO port pull-up/pull-down + register + 0xC + 0x20 + read-write + 0x24000000 + + + PUPD15 + Port x configuration bits (y = + 0..15) + 30 + 2 + + + PUPD14 + Port x configuration bits (y = + 0..15) + 28 + 2 + + + PUPD13 + Port x configuration bits (y = + 0..15) + 26 + 2 + + + PUPD12 + Port x configuration bits (y = + 0..15) + 24 + 2 + + + PUPD11 + Port x configuration bits (y = + 0..15) + 22 + 2 + + + PUPD10 + Port x configuration bits (y = + 0..15) + 20 + 2 + + + PUPD9 + Port x configuration bits (y = + 0..15) + 18 + 2 + + + PUPD8 + Port x configuration bits (y = + 0..15) + 16 + 2 + + + PUPD7 + Port x configuration bits (y = + 0..15) + 14 + 2 + + + PUPD6 + Port x configuration bits (y = + 0..15) + 12 + 2 + + + PUPD5 + Port x configuration bits (y = + 0..15) + 10 + 2 + + + PUPD4 + Port x configuration bits (y = + 0..15) + 8 + 2 + + + PUPD3 + Port x configuration bits (y = + 0..15) + 6 + 2 + + + PUPD2 + Port x configuration bits (y = + 0..15) + 4 + 2 + + + PUPD1 + Port x configuration bits (y = + 0..15) + 2 + 2 + + + PUPD0 + Port x configuration bits (y = + 0..15) + 0 + 2 + + + + + IDR + IDR + GPIO port input data register + 0x10 + 0x20 + read-only + 0x00000000 + + + ID15 + Port input data (y = + 0..15) + 15 + 1 + + + ID14 + Port input data (y = + 0..15) + 14 + 1 + + + ID13 + Port input data (y = + 0..15) + 13 + 1 + + + ID12 + Port input data (y = + 0..15) + 12 + 1 + + + ID11 + Port input data (y = + 0..15) + 11 + 1 + + + ID10 + Port input data (y = + 0..15) + 10 + 1 + + + ID9 + Port input data (y = + 0..15) + 9 + 1 + + + ID8 + Port input data (y = + 0..15) + 8 + 1 + + + ID7 + Port input data (y = + 0..15) + 7 + 1 + + + ID6 + Port input data (y = + 0..15) + 6 + 1 + + + ID5 + Port input data (y = + 0..15) + 5 + 1 + + + ID4 + Port input data (y = + 0..15) + 4 + 1 + + + ID3 + Port input data (y = + 0..15) + 3 + 1 + + + ID2 + Port input data (y = + 0..15) + 2 + 1 + + + ID1 + Port input data (y = + 0..15) + 1 + 1 + + + ID0 + Port input data (y = + 0..15) + 0 + 1 + + + + + ODR + ODR + GPIO port output data register + 0x14 + 0x20 + read-write + 0x00000000 + + + OD15 + Port output data (y = + 0..15) + 15 + 1 + + + OD14 + Port output data (y = + 0..15) + 14 + 1 + + + OD13 + Port output data (y = + 0..15) + 13 + 1 + + + OD12 + Port output data (y = + 0..15) + 12 + 1 + + + OD11 + Port output data (y = + 0..15) + 11 + 1 + + + OD10 + Port output data (y = + 0..15) + 10 + 1 + + + OD9 + Port output data (y = + 0..15) + 9 + 1 + + + OD8 + Port output data (y = + 0..15) + 8 + 1 + + + OD7 + Port output data (y = + 0..15) + 7 + 1 + + + OD6 + Port output data (y = + 0..15) + 6 + 1 + + + OD5 + Port output data (y = + 0..15) + 5 + 1 + + + OD4 + Port output data (y = + 0..15) + 4 + 1 + + + OD3 + Port output data (y = + 0..15) + 3 + 1 + + + OD2 + Port output data (y = + 0..15) + 2 + 1 + + + OD1 + Port output data (y = + 0..15) + 1 + 1 + + + OD0 + 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 + + + BR15 + Port Reset bit + 15 + 1 + + + BR14 + Port Reset bit + 14 + 1 + + + BR13 + Port Reset bit + 13 + 1 + + + BR12 + Port Reset bit + 12 + 1 + + + BR11 + Port Reset bit + 11 + 1 + + + BR10 + Port Reset bit + 10 + 1 + + + BR9 + Port Reset bit + 9 + 1 + + + BR8 + Port Reset bit + 8 + 1 + + + BR7 + Port Reset bit + 7 + 1 + + + BR6 + Port Reset bit + 6 + 1 + + + BR5 + Port Reset bit + 5 + 1 + + + BR4 + Port Reset bit + 4 + 1 + + + BR3 + Port Reset bit + 3 + 1 + + + BR2 + Port Reset bit + 2 + 1 + + + BR1 + Port Reset bit + 1 + 1 + + + BR0 + Port Reset bit + 0 + 1 + + + + + + + GPIOB + General-purpose I/Os + GPIO + 0x50000400 + + 0x0 + 0x400 + registers + + + + MODER + MODER + GPIO port mode register + 0x0 + 0x20 + read-write + 0xFFFFFFFF + + + MODE8 + Port x configuration bits (y = + 0..15) + 16 + 2 + + + MODE7 + Port x configuration bits (y = + 0..15) + 14 + 2 + + + MODE6 + Port x configuration bits (y = + 0..15) + 12 + 2 + + + MODE5 + Port x configuration bits (y = + 0..15) + 10 + 2 + + + MODE4 + Port x configuration bits (y = + 0..15) + 8 + 2 + + + MODE3 + Port x configuration bits (y = + 0..15) + 6 + 2 + + + MODE2 + Port x configuration bits (y = + 0..15) + 4 + 2 + + + MODE1 + Port x configuration bits (y = + 0..15) + 2 + 2 + + + MODE0 + Port x configuration bits (y = + 0..15) + 0 + 2 + + + + + OTYPER + OTYPER + GPIO port output type register + 0x4 + 0x20 + read-write + 0x00000000 + + + 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 + 0x00000000 + + + OSPEED8 + Port x configuration bits (y = + 0..15) + 16 + 2 + + + OSPEED7 + Port x configuration bits (y = + 0..15) + 14 + 2 + + + OSPEED6 + Port x configuration bits (y = + 0..15) + 12 + 2 + + + OSPEED5 + Port x configuration bits (y = + 0..15) + 10 + 2 + + + OSPEED4 + Port x configuration bits (y = + 0..15) + 8 + 2 + + + OSPEED3 + Port x configuration bits (y = + 0..15) + 6 + 2 + + + OSPEED2 + Port x configuration bits (y = + 0..15) + 4 + 2 + + + OSPEED1 + Port x configuration bits (y = + 0..15) + 2 + 2 + + + OSPEED0 + Port x configuration bits (y = + 0..15) + 0 + 2 + + + + + PUPDR + PUPDR + GPIO port pull-up/pull-down + register + 0xC + 0x20 + read-write + 0x00000000 + + + PUPD8 + Port x configuration bits (y = + 0..15) + 16 + 2 + + + PUPD7 + Port x configuration bits (y = + 0..15) + 14 + 2 + + + PUPD6 + Port x configuration bits (y = + 0..15) + 12 + 2 + + + PUPD5 + Port x configuration bits (y = + 0..15) + 10 + 2 + + + PUPD4 + Port x configuration bits (y = + 0..15) + 8 + 2 + + + PUPD3 + Port x configuration bits (y = + 0..15) + 6 + 2 + + + PUPD2 + Port x configuration bits (y = + 0..15) + 4 + 2 + + + PUPD1 + Port x configuration bits (y = + 0..15) + 2 + 2 + + + PUPD0 + Port x configuration bits (y = + 0..15) + 0 + 2 + + + + + IDR + IDR + GPIO port input data register + 0x10 + 0x20 + read-only + 0x00000000 + + + ID8 + Port input data (y = + 0..15) + 8 + 1 + + + ID7 + Port input data (y = + 0..15) + 7 + 1 + + + ID6 + Port input data (y = + 0..15) + 6 + 1 + + + ID5 + Port input data (y = + 0..15) + 5 + 1 + + + ID4 + Port input data (y = + 0..15) + 4 + 1 + + + ID3 + Port input data (y = + 0..15) + 3 + 1 + + + ID2 + Port input data (y = + 0..15) + 2 + 1 + + + ID1 + Port input data (y = + 0..15) + 1 + 1 + + + ID0 + Port input data (y = + 0..15) + 0 + 1 + + + + + ODR + ODR + GPIO port output data register + 0x14 + 0x20 + read-write + 0x00000000 + + + OD8 + Port output data (y = + 0..15) + 8 + 1 + + + OD7 + Port output data (y = + 0..15) + 7 + 1 + + + OD6 + Port output data (y = + 0..15) + 6 + 1 + + + OD5 + Port output data (y = + 0..15) + 5 + 1 + + + OD4 + Port output data (y = + 0..15) + 4 + 1 + + + OD3 + Port output data (y = + 0..15) + 3 + 1 + + + OD2 + Port output data (y = + 0..15) + 2 + 1 + + + OD1 + Port output data (y = + 0..15) + 1 + 1 + + + OD0 + Port output data (y = + 0..15) + 0 + 1 + + + + + BSRR + BSRR + GPIO port bit set/reset + register + 0x18 + 0x20 + write-only + 0x00000000 + + + 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 + + + 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 + + + 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 + + + BR8 + Port Reset bit + 8 + 1 + + + BR7 + Port Reset bit + 7 + 1 + + + BR6 + Port Reset bit + 6 + 1 + + + BR5 + Port Reset bit + 5 + 1 + + + BR4 + Port Reset bit + 4 + 1 + + + BR3 + Port Reset bit + 3 + 1 + + + BR2 + Port Reset bit + 2 + 1 + + + BR1 + Port Reset bit + 1 + 1 + + + BR0 + Port Reset bit + 0 + 1 + + + + + + + GPIOF + 0x50001400 + + + EXTI + External interrupt/event + controller + EXTI + 0x40021800 + + 0x0 + 0x400 + registers + + + PVD + PVD Interrupt through EXTI Lines 16 + 1 + + + EXTI0_1 + EXTI Line 0 and 1 Interrupt + 5 + + + EXTI2_3 + EXTI Line 2 and 3 Interrupt + 6 + + + EXTI4_15 + EXTI Line 4 to 15 Interrupt + 7 + + + + RTSR + RTSR + EXTI rising trigger selection + register + 0x0 + 0x20 + read-write + 0x00000000 + + + RT18 + Rising trigger event configuration bit + of Configurable Event input + 18 + 1 + + + RT17 + Rising trigger event configuration bit + of Configurable Event input + 17 + 1 + + + RT16 + Rising trigger event configuration bit + of Configurable Event input + 16 + 1 + + + RT15 + Rising trigger event configuration bit + of Configurable Event input + 15 + 1 + + + RT14 + Rising trigger event configuration bit + of Configurable Event input + 14 + 1 + + + RT13 + Rising trigger event configuration bit + of Configurable Event input + 13 + 1 + + + RT12 + Rising trigger event configuration bit + of Configurable Event input + 12 + 1 + + + RT11 + Rising trigger event configuration bit + of Configurable Event input + 11 + 1 + + + RT10 + Rising trigger event configuration bit + of Configurable Event input + 10 + 1 + + + RT9 + Rising trigger event configuration bit + of Configurable Event input + 9 + 1 + + + RT8 + Rising trigger event configuration bit + of Configurable Event input + 8 + 1 + + + RT7 + Rising trigger event configuration bit + of Configurable Event input + 7 + 1 + + + RT6 + Rising trigger event configuration bit + of Configurable Event input + 6 + 1 + + + RT5 + Rising trigger event configuration bit + of Configurable Event input + 5 + 1 + + + RT4 + Rising trigger event configuration bit + of Configurable Event input + 4 + 1 + + + RT3 + Rising trigger event configuration bit + of Configurable Event input + 3 + 1 + + + RT2 + Rising trigger event configuration bit + of Configurable Event input + 2 + 1 + + + RT1 + Rising trigger event configuration bit + of Configurable Event input + 1 + 1 + + + RT0 + Rising trigger event configuration bit + of Configurable Event input + 0 + 1 + + + + + FTSR + FTSR + EXTI falling trigger selection + register + 0x4 + 0x20 + read-write + 0x00000000 + + + FT18 + Falling trigger event configuration bit + of Configurable Event input + 18 + 1 + + + FT17 + Falling trigger event configuration bit + of Configurable Event input + 17 + 1 + + + FT16 + Falling trigger event configuration bit + of Configurable Event input + 16 + 1 + + + FT15 + Falling trigger event configuration bit + of Configurable Event input + 15 + 1 + + + FT14 + Falling trigger event configuration bit + of Configurable Event input + 14 + 1 + + + FT13 + Falling trigger event configuration bit + of Configurable Event input + 13 + 1 + + + FT12 + Falling trigger event configuration bit + of Configurable Event input + 12 + 1 + + + FT11 + Falling trigger event configuration bit + of Configurable Event input + 11 + 1 + + + FT10 + Falling trigger event configuration bit + of Configurable Event input + 10 + 1 + + + FT9 + Falling trigger event configuration bit + of Configurable Event input + 9 + 1 + + + FT8 + Falling trigger event configuration bit + of Configurable Event input + 8 + 1 + + + FT7 + Falling trigger event configuration bit + of Configurable Event input + 7 + 1 + + + FT6 + Falling trigger event configuration bit + of Configurable Event input + 6 + 1 + + + FT5 + Falling trigger event configuration bit + of Configurable Event input + 5 + 1 + + + FT4 + Falling trigger event configuration bit + of Configurable Event input + 4 + 1 + + + FT3 + Falling trigger event configuration bit + of Configurable Event input + 3 + 1 + + + FT2 + Falling trigger event configuration bit + of Configurable Event input + 2 + 1 + + + FT1 + Falling trigger event configuration bit + of Configurable Event input + 1 + 1 + + + FT0 + Falling trigger event configuration bit + of Configurable Event input + 0 + 1 + + + + + SWIER + SWIER + EXTI software interrupt event + register + 0x8 + 0x20 + read-write + 0x00000000 + + + SWI18 + Rising trigger event configuration bit + of Configurable Event input + 18 + 1 + + + SWI17 + Rising trigger event configuration bit + of Configurable Event input + 17 + 1 + + + SWI16 + Rising trigger event configuration bit + of Configurable Event input + 16 + 1 + + + SWI15 + Rising trigger event configuration bit + of Configurable Event input + 15 + 1 + + + SWI14 + Rising trigger event configuration bit + of Configurable Event input + 14 + 1 + + + SWI13 + Rising trigger event configuration bit + of Configurable Event input + 13 + 1 + + + SWI12 + Rising trigger event configuration bit + of Configurable Event input + 12 + 1 + + + SWI11 + Rising trigger event configuration bit + of Configurable Event input + 11 + 1 + + + SWI10 + Rising trigger event configuration bit + of Configurable Event input + 10 + 1 + + + SWI9 + Rising trigger event configuration bit + of Configurable Event input + 9 + 1 + + + SWI8 + Rising trigger event configuration bit + of Configurable Event input + 8 + 1 + + + SWI7 + Rising trigger event configuration bit + of Configurable Event input + 7 + 1 + + + SWI6 + Rising trigger event configuration bit + of Configurable Event input + 6 + 1 + + + SWI5 + Rising trigger event configuration bit + of Configurable Event input + 5 + 1 + + + SWI4 + Rising trigger event configuration bit + of Configurable Event input + 4 + 1 + + + SWI3 + Rising trigger event configuration bit + of Configurable Event input + 3 + 1 + + + SWI2 + Rising trigger event configuration bit + of Configurable Event input + 2 + 1 + + + SWI1 + Rising trigger event configuration bit + of Configurable Event input + 1 + 1 + + + SWI0 + Rising trigger event configuration bit + of Configurable Event input + 0 + 1 + + + + + PR + PR + EXTI pending + register + 0xC + 0x20 + read-write + 0x00000000 + + + PR18 + configurable event inputs x rising edge + Pending bit. + 18 + 1 + + + PR17 + configurable event inputs x rising edge + Pending bit. + 17 + 1 + + + PR16 + configurable event inputs x rising edge + Pending bit. + 16 + 1 + + + PR15 + configurable event inputs x rising edge + Pending bit. + 15 + 1 + + + PR14 + configurable event inputs x rising edge + Pending bit. + 14 + 1 + + + PR13 + configurable event inputs x rising edge + Pending bit + 13 + 1 + + + PR12 + configurable event inputs x rising edge + Pending bit. + 12 + 1 + + + PR11 + configurable event inputs x rising edge + Pending bit. + 11 + 1 + + + PR10 + configurable event inputs x rising edge + Pending bit. + 10 + 1 + + + PR9 + configurable event inputs x rising edge + Pending bit. + 9 + 1 + + + PR8 + configurable event inputs x rising edge + Pending bit. + 8 + 1 + + + PR7 + configurable event inputs x rising edge + Pending bit. + 7 + 1 + + + PR6 + configurable event inputs x rising edge + Pending bit. + 6 + 1 + + + PR5 + configurable event inputs x rising edge + Pending bit. + 5 + 1 + + + PR4 + configurable event inputs x rising edge + Pending bit. + 4 + 1 + + + PR3 + configurable event inputs x rising edge + Pending bit. + 3 + 1 + + + PR2 + configurable event inputs x rising edge + Pending bit. + 2 + 1 + + + PR1 + configurable event inputs x rising edge + Pending bit. + 1 + 1 + + + PR0 + configurable event inputs x rising edge + Pending bit. + 0 + 1 + + + + + EXTICR1 + EXTICR1 + EXTI external interrupt selection + register + 0x60 + 0x20 + read-write + 0x00000000 + + + EXTI3 + GPIO port selection + 24 + 2 + + + EXTI2 + GPIO port selection + 16 + 2 + + + EXTI1 + GPIO port selection + 8 + 2 + + + EXTI0 + GPIO port selection + 0 + 2 + + + + + EXTICR2 + EXTICR2 + EXTI external interrupt selection + register + 0x64 + 0x20 + read-write + 0x00000000 + + + EXTI7 + GPIO port selection + 24 + 1 + + + EXTI6 + GPIO port selection + 16 + 1 + + + EXTI5 + GPIO port selection + 8 + 1 + + + EXTI4 + GPIO port selection + 0 + 2 + + + + + EXTICR3 + EXTICR3 + EXTI external interrupt selection + register + 0x68 + 0x20 + read-write + 0x00000000 + + + EXTI8 + GPIO port selection + 0 + 1 + + + + + IMR + IMR + EXTI CPU wakeup with interrupt mask + register + 0x80 + 0x20 + read-write + 0xFFF80000 + + + IM29 + CPU wakeup with interrupt mask on event + input + 29 + 1 + + + IM19 + CPU wakeup with interrupt mask on event + input + 19 + 1 + + + IM18 + CPU wakeup with interrupt mask on event + input + 18 + 1 + + + IM17 + CPU wakeup with interrupt mask on event + input + 17 + 1 + + + IM16 + CPU wakeup with interrupt mask on event + input + 16 + 1 + + + IM15 + CPU wakeup with interrupt mask on event + input + 15 + 1 + + + IM14 + CPU wakeup with interrupt mask on event + input + 14 + 1 + + + IM13 + CPU wakeup with interrupt mask on event + input + 13 + 1 + + + IM12 + CPU wakeup with interrupt mask on event + input + 12 + 1 + + + IM11 + CPU wakeup with interrupt mask on event + input + 11 + 1 + + + IM10 + CPU wakeup with interrupt mask on event + input + 10 + 1 + + + IM9 + CPU wakeup with interrupt mask on event + input + 9 + 1 + + + IM8 + CPU wakeup with interrupt mask on event + input + 8 + 1 + + + IM7 + CPU wakeup with interrupt mask on event + input + 7 + 1 + + + IM6 + CPU wakeup with interrupt mask on event + input + 6 + 1 + + + IM5 + CPU wakeup with interrupt mask on event + input + 5 + 1 + + + IM4 + CPU wakeup with interrupt mask on event + input + 4 + 1 + + + IM3 + CPU wakeup with interrupt mask on event + input + 3 + 1 + + + IM2 + CPU wakeup with interrupt mask on event + input + 2 + 1 + + + IM1 + CPU wakeup with interrupt mask on event + input + 1 + 1 + + + IM0 + CPU wakeup with interrupt mask on event + input + 0 + 1 + + + + + EMR + EMR + EXTI CPU wakeup with event mask + register + 0x84 + 0x20 + read-write + 0x00000000 + + + EM29 + CPU wakeup with event mask on event + input + 29 + 1 + + + EM19 + CPU wakeup with event mask on event + input + 19 + 1 + + + EM18 + CPU wakeup with event mask on event + input + 18 + 1 + + + EM17 + CPU wakeup with event mask on event + input + 17 + 1 + + + EM16 + CPU wakeup with event mask on event + input + 16 + 1 + + + EM15 + CPU wakeup with event mask on event + input + 15 + 1 + + + EM14 + CPU wakeup with event mask on event + input + 14 + 1 + + + EM13 + CPU wakeup with event mask on event + input + 13 + 1 + + + EM12 + CPU wakeup with event mask on event + input + 12 + 1 + + + EM11 + CPU wakeup with event mask on event + input + 11 + 1 + + + EM10 + CPU wakeup with event mask on event + input + 10 + 1 + + + EM9 + CPU wakeup with event mask on event + input + 9 + 1 + + + EM8 + CPU wakeup with event mask on event + input + 8 + 1 + + + EM7 + CPU wakeup with event mask on event + input + 7 + 1 + + + EM6 + CPU wakeup with event mask on event + input + 6 + 1 + + + EM5 + CPU wakeup with event mask on event + input + 5 + 1 + + + EM4 + CPU wakeup with event mask on event + input + 4 + 1 + + + EM3 + CPU wakeup with event mask on event + input + 3 + 1 + + + EM2 + CPU wakeup with event mask on event + input + 2 + 1 + + + EM1 + CPU wakeup with event mask on event + input + 1 + 1 + + + EM0 + CPU wakeup with event mask on event + input + 0 + 1 + + + + + + + LPTIM + Low power timer + LPTIM + 0x40007C00 + + 0x0 + 0x400 + registers + + + + ISR + ISR + Interrupt and Status Register + 0x0 + 0x20 + read-only + 0x00000000 + + + ARRM + Autoreload match + 1 + 1 + + + + + ICR + ICR + Interrupt Clear Register + 0x4 + 0x20 + write-only + 0x00000000 + + + ARRMCF + Autoreload match Clear + Flag + 1 + 1 + + + + + IER + IER + Interrupt Enable Register + 0x8 + 0x20 + read-write + 0x00000000 + + + ARRMIE + Autoreload match Interrupt + Enable + 1 + 1 + + + + + CFGR + CFGR + Configuration Register + 0xC + 0x20 + read-write + 0x00000000 + + + PRELOAD + Registers update mode + 22 + 1 + + + PRESC + Clock prescaler + 9 + 3 + + + + + CR + CR + Control Register + 0x10 + 0x20 + read-write + 0x00000000 + + + RSTARE + Reset after read enable + 4 + 1 + + + SNGSTRT + LPTIM start in single mode + 1 + 1 + + + ENABLE + LPTIM Enable + 0 + 1 + + + + + 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 + + + + + + + USART1 + Universal synchronous asynchronous receiver + transmitter + USART + 0x40013800 + + 0x0 + 0x400 + registers + + + USART1 + USART1 global Interrupt + 27 + + + + SR + SR + Status register + 0x0 + 0x20 + 0x00C0 + + + ABRRQ + Automate baudrate detection requeset + 12 + 1 + write-only + + + ABRE + Automate baudrate detection error flag + 11 + 1 + read-only + + + ABRF + Automate baudrate detection flag + 10 + 1 + read-only + + + CTS + CTS flag + 9 + 1 + read-write + + + TXE + Transmit data register + empty + 7 + 1 + read-only + + + TC + Transmission complete + 6 + 1 + read-write + + + RXNE + Read data register not + empty + 5 + 1 + read-write + + + IDLE + IDLE line detected + 4 + 1 + read-only + + + ORE + Overrun error + 3 + 1 + read-only + + + NE + Noise error flag + 2 + 1 + read-only + + + FE + Framing error + 1 + 1 + read-only + + + PE + Parity error + 0 + 1 + read-only + + + + + DR + DR + Data register + 0x4 + 0x20 + read-write + 0x00000000 + + + DR + Data value + 0 + 9 + + + + + BRR + BRR + Baud rate register + 0x8 + 0x20 + read-write + 0x0000 + + + DIV_Mantissa + mantissa of USARTDIV + 4 + 12 + + + DIV_Fraction + fraction of USARTDIV + 0 + 4 + + + + + CR1 + CR1 + Control register 1 + 0xC + 0x20 + read-write + 0x0000 + + + UE + USART enable + 13 + 1 + + + M + Word length + 12 + 1 + + + WAKE + Wakeup method + 11 + 1 + + + PCE + Parity control enable + 10 + 1 + + + PS + Parity selection + 9 + 1 + + + PEIE + PE interrupt enable + 8 + 1 + + + TXEIE + TXE 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 + + + RWU + Receiver wakeup + 1 + 1 + + + SBK + Send break + 0 + 1 + + + + + CR2 + CR2 + Control register 2 + 0x10 + 0x20 + read-write + 0x0000 + + + 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 + + + ADD + Address of the USART node + 0 + 4 + + + + + CR3 + CR3 + Control register 3 + 0x14 + 0x20 + read-write + 0x0000 + + + ABRMOD + Auto baudrate mode + 13 + 2 + + + ABREN + Auto baudrate enable + 12 + 1 + + + OVER8 + Oversampling mode + 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 + + + HDSEL + Half-duplex selection + 3 + 1 + + + IRLP + IrDA low-power + 2 + 1 + + + IREN + IrDA mode enable + 1 + 1 + + + EIE + Error interrupt enable + 0 + 1 + + + + + + + USART2 + 0x40004400 + + USART2 + USART2 global Interrupt + 28 + + + + RTC + Real time clock + RTC + 0x40002800 + + 0x0 + 0x400 + registers + + + RTC + RTC Interrupt through EXTI Lines 19 + 2 + + + + CRH + CRH + RTC Control Register High + 0x0 + 0x20 + read-write + 0x00000000 + + + OWIE + Overflow interrupt Enable + 2 + 1 + + + ALRIE + Alarm interrupt Enable + 1 + 1 + + + SECIE + Second interrupt Enable + 0 + 1 + + + + + CRL + CRL + RTC Control Register Low + 0x4 + 0x20 + 0x00000020 + + + RTOFF + RTC operation OFF + 5 + 1 + read-only + + + CNF + Configuration Flag + 4 + 1 + read-write + + + RSF + Registers Synchronized + Flag + 3 + 1 + read-write + + + OWF + Overflow Flag + 2 + 1 + read-write + + + ALRF + Alarm Flag + 1 + 1 + read-write + + + SECF + Second Flag + 0 + 1 + read-write + + + + + PRLH + PRLH + RTC Prescaler Load Register + High + 0x8 + 0x20 + write-only + 0x00000000 + + + PRLH + RTC Prescaler Load Register + High + 0 + 4 + + + + + PRLL + PRLL + RTC Prescaler Load Register + Low + 0xC + 0x20 + write-only + 0x8000 + + + PRLL + RTC Prescaler Divider Register + Low + 0 + 16 + + + + + DIVH + DIVH + RTC Prescaler Divider Register + High + 0x10 + 0x20 + read-only + 0x00000000 + + + DIVH + RTC prescaler divider register + high + 0 + 4 + + + + + DIVL + DIVL + RTC Prescaler Divider Register + Low + 0x14 + 0x20 + read-only + 0x8000 + + + DIVL + RTC prescaler divider register + Low + 0 + 16 + + + + + CNTH + CNTH + RTC Counter Register High + 0x18 + 0x20 + read-write + 0x00000000 + + + CNTH + RTC counter register high + 0 + 16 + + + + + CNTL + CNTL + RTC Counter Register Low + 0x1C + 0x20 + read-write + 0x00000000 + + + CNTL + RTC counter register Low + 0 + 16 + + + + + ALRH + ALRH + RTC Alarm Register High + 0x20 + 0x20 + write-only + 0xFFFF + + + ALRH + RTC alarm register high + 0 + 16 + + + + + ALRL + ALRL + RTC Alarm Register Low + 0x24 + 0x20 + write-only + 0xFFFF + + + ALRL + RTC alarm register low + 0 + 16 + + + + + RTCCR + RTCCR + RTC clock calibration + 0x2C + 0x20 + read-write + 0x0000 + + + ASOS + Alarm or second output selection + 9 + 1 + + + ASOE + Alarm or second output enable + 8 + 1 + + + CCO + Calibration clock output + 7 + 1 + + + CAL + Calibration value + 0 + 7 + + + + + + + IWDG + Independent watchdog + IWDG + 0x40003000 + + 0x0 + 0x400 + registers + + + + KR + KR + Key register (IWDG_KR) + 0x0 + 0x20 + write-only + 0x00000000 + + + KEY + Key value + 0 + 16 + + + + + PR + PR + Prescaler register (IWDG_PR) + 0x4 + 0x20 + read-write + 0x00000000 + + + PR + Prescaler divider + 0 + 3 + + + + + RLR + RLR + Reload register (IWDG_RLR) + 0x8 + 0x20 + read-write + 0x00000FFF + + + RL + Watchdog counter reload + value + 0 + 12 + + + + + SR + SR + Status register (IWDG_SR) + 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 (IWDG_SR) + 0x10 + 0x20 + read-only + 0x00000000 + + + WIN + window counter + 0 + 12 + + + + + + + WWDG + Window watchdog + WWDG + 0x40002C00 + + 0x0 + 0x400 + registers + + + WWDG + Window WatchDog Interrupt + 0 + + + + CR + CR + Control register (WWDG_CR) + 0x0 + 0x20 + read-write + 0x0000007F + + + WDGA + Activation bit + 7 + 1 + + + T + 7-bit counter (MSB to LSB) + 0 + 7 + + + + + CFR + CFR + Configuration register + (WWDG_CFR) + 0x4 + 0x20 + read-write + 0x0000007F + + + EWI + Early Wakeup Interrupt + 9 + 1 + + + WDGTB + Timer Base + 7 + 2 + + + W + 7-bit window value + 0 + 7 + + + + + SR + SR + Status register (WWDG_SR) + 0x8 + 0x20 + read-write + 0x00000000 + + + EWIF + Early Wakeup Interrupt flag + 0 + 1 + + + + + + + TIM1 + Advanced timer + TIM + 0x40012C00 + + 0x0 + 0x400 + registers + + + TIM1_BRK_UP_TRG_COM + TIM1 Break, Update, Trigger and Commutation Interrupt + 13 + + + TIM1_CC + TIM1 Capture Compare Interrupt + 14 + + + + CR1 + CR1 + control register 1 + 0x0 + 0x20 + read-write + 0x0000 + + + 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 + + + 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 + + + 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 bit + 3 + 1 + + + SMS + Slave mode selection + 0 + 3 + + + + + DIER + DIER + DMA/Interrupt enable register + 0xC + 0x20 + read-write + 0x0000 + + + TDE + Trigger DMA request enable + 14 + 1 + + + COMDE + COM DMA request enable + 13 + 1 + + + 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 + + + BIE + Break interrupt enable + 7 + 1 + + + TIE + Trigger interrupt enable + 6 + 1 + + + COMIE + COM interrupt enable + 5 + 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 + + + BIF + Break interrupt flag + 7 + 1 + + + TIF + Trigger interrupt flag + 6 + 1 + + + COMIF + COM interrupt flag + 5 + 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 + + + BG + Break generation + 7 + 1 + + + TG + Trigger generation + 6 + 1 + + + COMG + Capture/Compare control update + generation + 5 + 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 (output + mode) + 0x18 + 0x20 + read-write + 0x00000000 + + + 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 + + + ICPSC + Input capture 1 prescaler + 2 + 2 + + + CC1S + Capture/Compare 1 + selection + 0 + 2 + + + + + CCMR2_Output + CCMR2_Output + capture/compare mode register (output + mode) + 0x1C + 0x20 + read-write + 0x00000000 + + + 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 + + + CC4P + Capture/Compare 3 output + Polarity + 13 + 1 + + + CC4E + Capture/Compare 4 output + enable + 12 + 1 + + + CC3NP + Capture/Compare 3 output + Polarity + 11 + 1 + + + CC3NE + Capture/Compare 3 complementary output + enable + 10 + 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 + + + CC2NE + Capture/Compare 2 complementary output + enable + 6 + 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 + + + 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 + read-write + 0x00000000 + + + CNT + counter value + 0 + 16 + + + + + PSC + PSC + prescaler + 0x28 + 0x20 + read-write + 0x0000 + + + PSC + Prescaler value + 0 + 16 + + + + + ARR + ARR + auto-reload register + 0x2C + 0x20 + read-write + 0x00000000 + + + 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 + + + + + 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 + + + MOE + Main output enable + 15 + 1 + + + AOE + Automatic output enable + 14 + 1 + + + BKP + Break polarity + 13 + 1 + + + BKE + Break enable + 12 + 1 + + + OSSR + Off-state selection for Run + mode + 11 + 1 + + + OSSI + Off-state selection for Idle + mode + 10 + 1 + + + LOCK + Lock configuration + 8 + 2 + + + DTG + Dead-time generator setup + 0 + 8 + + + + + 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 + + + + + + + TIM3 + General purpose timer + TIM + 0x40000400 + + 0x00 + 0x400 + registers + + + TIM3 + TIM3 global Interrupt + 16 + + + + CR1 + CR1 + control register 1 + 0x0 + 0x20 + read-write + 0x0000 + + + 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 + + + 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 + + + TDE + Trigger DMA request enable + 14 + 1 + + + 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 + + + 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 + + + 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 4 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 + read-write + 0x00000000 + + + CNT + counter value + 0 + 16 + + + + + PSC + PSC + prescaler + 0x28 + 0x20 + read-write + 0x0000 + + + PSC + Prescaler value + 0 + 16 + + + + + ARR + ARR + auto-reload register + 0x2C + 0x20 + read-write + 0x00000000 + + + ARR + Auto-reload 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 + + + + + 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 + 32 + + + + + + + TIM14 + General purpose timer + TIM + 0x40002000 + + 0x00 + 0x400 + registers + + + TIM14 + TIM14 global Interrupt + 19 + + + + CR1 + CR1 + TIM14 control register1 + 0x0 + 0x20 + read-write + 0x0000 + + + CKD + Prescaler factor + 8 + 2 + + + ARPE + Auto-reload preload enable + 7 + 1 + + + URS + Update request source + 2 + 1 + + + UDIS + Update disable + 1 + 1 + + + CEN + Counter enable + 0 + 1 + + + + + DIER + DIER + DMA/Interrupt enable register + 0xC + 0x20 + read-write + 0x0000 + + + CC1IE + Compare/ + 1 + 1 + + + UIE + Update interrupt enable + 0 + 1 + + + + + SR + SR + status register + 0x10 + 0x20 + read-write + 0x0000 + + + CC1OF + Compare/capture 1 flag + 9 + 1 + + + CC1IF + Compare/capture 1 interrupt flag + 1 + 1 + + + UIF + Update interrupt flag + 0 + 1 + + + + + EGR + EGR + event generation register + 0x14 + 0x20 + write-only + 0x0000 + + + CC1G + Compare/capture1 event + 1 + 1 + + + UG + Update generation + 0 + 1 + + + + + CCMR1_Output + CCMR1_Output + capture/compare mode register (output + mode) + 0x18 + 0x20 + read-write + 0x00000000 + + + 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 + + + CC1P + Capture/Compare 1 output + Polarity + 1 + 1 + + + CC1E + Capture/Compare 1 output + enable + 0 + 1 + + + + + CNT + CNT + counter + 0x24 + 0x20 + read-write + 0x00000000 + + + CNT + counter value + 0 + 16 + + + + + PSC + PSC + prescaler + 0x28 + 0x20 + read-write + 0x0000 + + + PSC + Prescaler value + 0 + 16 + + + + + ARR + ARR + auto-reload register + 0x2C + 0x20 + read-write + 0x00000000 + + + ARR + Auto-reload value + 0 + 16 + + + + + CCR1 + CCR1 + capture/compare register 1 + 0x34 + 0x20 + read-write + 0x00000000 + + + CCR1 + Capture/Compare 1 value + 0 + 16 + + + + + OR + OR + Option register + 0x50 + 0x20 + read-write + 0x00000000 + + + TI1_RMP + TIM14 channel1 input remap + 0 + 2 + + + + + + + TIM16 + General purpose timer + TIM + 0x40014400 + + 0x00 + 0x400 + registers + + + TIM16 + TIM16 global Interrupt + 21 + + + + CR1 + CR1 + TIM16 control register1 + 0x0 + 0x20 + read-write + 0x0000 + + + CKD + Prescaler factor + 8 + 2 + + + ARPE + Auto-reload preload enable + 7 + 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 + + + OIS1N + Output Idle state 1 + 9 + 1 + + + OIS1 + Output Idle state 1 + 8 + 1 + + + CCDS + Capture/compare DMA + selection + 3 + 1 + + + CCPC + Capture/compare preloaded + control + 0 + 1 + + + + + DIER + DIER + DMA/Interrupt enable register + 0xC + 0x20 + read-write + 0x0000 + + + CC1DE + Compare/capture DMA requeset enable + 9 + 1 + + + UDE + Update DMA request enable + 8 + 1 + + + BIE + Break interrupt enable + 7 + 1 + + + COMIE + Com interrupt enable + 5 + 1 + + + CC1IE + Capture/Compare 1 interrupt enable + 1 + 1 + + + UIE + Update interrupt enable + 0 + 1 + + + + + SR + SR + status register + 0x10 + 0x20 + read-write + 0x0000 + + + CC1OF + Update interrupt 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 event generation + 7 + 1 + + + COMG + COM evnet 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 + 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 + read-write + 0x00000000 + + + CNT + counter value + 0 + 16 + + + + + PSC + PSC + prescaler + 0x28 + 0x20 + read-write + 0x0000 + + + PSC + Prescaler value + 0 + 16 + + + + + ARR + ARR + auto-reload register + 0x2C + 0x20 + read-write + 0x00000000 + + + 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 + + + MOE + Main output enable + 15 + 1 + + + AOE + Automatic output enable + 14 + 1 + + + BKP + Break polarity + 13 + 1 + + + BKE + Break enable + 12 + 1 + + + OSSR + Off-state selection for Run + mode + 11 + 1 + + + OSSI + Off-state selection for Idle + mode + 10 + 1 + + + LOCK + Lock configuration + 8 + 2 + + + DTG + Dead-time generator setup + 0 + 8 + + + + + 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 + 32 + + + + + + + TIM17 + 0x40014800 + + TIM17 + TIM17 global Interrupt + 22 + + + + SYSCFG + System configuration controller + SYSCFG + 0x40010000 + + 0x0 + 0x30 + registers + + + + CFGR1 + CFGR1 + SYSCFG configuration register + 1 + 0x0 + 0x20 + read-write + 0x00000000 + + + I2C_PF1_ANF + Analog filter enable control driving capability + activation bits PF1 + 30 + 1 + + + I2C_PF0_ANF + Analog filter enable control driving capability + activation bits PF0 + 29 + 1 + + + I2C_PB8_ANF + Analog filter enable control driving capability + activation bits PB8 + 28 + 1 + + + I2C_PB7_ANF + Analog filter enable control driving capability + activation bits PB7 + 27 + 1 + + I2C_PB6_ANF + Analog filter enable control driving capability + activation bits PB6 + 26 + 1 + + + I2C_PA12_ANF + Analog filter enable control driving capability + activation bits PA12 + 25 + 1 + + + I2C_PA11_ANF + Analog filter enable control driving capability + activation bits PA11 + 24 + 1 + + + I2C_PA10_ANF + Analog filter enable control driving capability + activation bits PA10 + 23 + 1 + + + I2C_PA9_ANF + Analog filter enable control driving capability + activation bits PA9 + 22 + 1 + + + I2C_PA8_ANF + Analog filter enable control driving capability + activation bits PA8 + 21 + 1 + + + I2C_PA7_ANF + Analog filter enable control driving capability + activation bits PA7 + 20 + 1 + + + I2C_PA3_ANF + Analog filter enable control driving capability + activation bits PA3 + 19 + 1 + + + I2C_PA2_ANF + Analog filter enable control driving capability + activation bits PA2 + 18 + 1 + + + MEM_MODE + Memory mapping selection + bits + 0 + 2 + + + + + CFGR2 + CFGR2 + SYSCFG configuration register + 2 + 0x18 + 0x20 + read-write + 0x00000000 + + + ETR_SRC_TIM1 + TIM1 ETR source selection + 9 + 2 + + + COMP2_BRK_TIM17 + COMP2 is enable to input of TIM17 break + 8 + 1 + + + COMP1_BRK_TIM17 + COMP1 is enable to input of TIM17 break + 7 + 1 + + + COMP2_BRK_TIM16 + COMP2 is enable to input of TIM16 break + 6 + 1 + + + COMP1_BRK_TIM16 + COMP1 is enable to input of TIM16 break + 5 + 1 + + + COMP2_BRK_TIM1 + COMP2 is enable to input of TIM1 break + 4 + 1 + + + COMP1_BRK_TIM1 + COMP1 is enable to input of TIM1 break + 3 + 1 + + + PVD_LOCK + PVD lock enable bit + 2 + 1 + + + LOCKUP_LOCK + Cortex-M0+ LOCKUP bit enable + bit + 0 + 1 + + + + + CFGR3 + CFGR3 + SYSCFG configuration register + 3 + 0x1C + 0x20 + read-write + 0x00000000 + + + DMA3_MAP + DMA channel3 requeset selection + 16 + 5 + + + DMA2_MAP + DMA channel2 requeset selection + 8 + 5 + + + DMA1_MAP + DMA channel1 requeset selection + 0 + 5 + + + + + + + DMA + Direct memory access + DMA + 0x40020000 + + 0x0 + 0x400 + registers + + + DMA_Channel1 + DMA Channel 1 Interrupt + 9 + + + DMA_Channel2_3 + DMA Channel 2 and Channel 3 Interrupt + 10 + + + + ISR + ISR + DMA interrupt status register + (DMA_ISR) + 0x0 + 0x20 + read-only + 0x00000000 + + + TEIF3 + Channel 3 Transfer Error + flag + 11 + 1 + + + HTIF3 + Channel 3 Half Transfer Complete + flag + 10 + 1 + + + TCIF3 + Channel 3 Transfer Complete + flag + 9 + 1 + + + GIF3 + Channel 3 Global interrupt + flag + 8 + 1 + + + TEIF2 + Channel 2 Transfer Error + flag + 7 + 1 + + + HTIF2 + Channel 2 Half Transfer Complete + flag + 6 + 1 + + + TCIF2 + Channel 2 Transfer Complete + flag + 5 + 1 + + + GIF2 + Channel 2 Global interrupt + flag + 4 + 1 + + + TEIF1 + Channel 1 Transfer Error + flag + 3 + 1 + + + HTIF1 + Channel 1 Half Transfer Complete + flag + 2 + 1 + + + TCIF1 + Channel 1 Transfer Complete + flag + 1 + 1 + + + GIF1 + Channel 1 Global interrupt + flag + 0 + 1 + + + + + IFCR + IFCR + DMA interrupt flag clear register + (DMA_IFCR) + 0x4 + 0x20 + write-only + 0x00000000 + + + CTEIF3 + Channel 3 Transfer Error + clear + 11 + 1 + + + CHTIF3 + Channel 3 Half Transfer + clear + 10 + 1 + + + CTCIF3 + Channel 3 Transfer Complete + clear + 9 + 1 + + + CGIF3 + Channel 3 Global interrupt + clear + 8 + 1 + + + CTEIF2 + Channel 2 Transfer Error + clear + 7 + 1 + + + CHTIF2 + Channel 2 Half Transfer + clear + 6 + 1 + + + CTCIF2 + Channel 2 Transfer Complete + clear + 5 + 1 + + + CGIF2 + Channel 2 Global interrupt + clear + 4 + 1 + + + CTEIF1 + Channel 1 Transfer Error + clear + 3 + 1 + + + CHTIF1 + Channel 1 Half Transfer + clear + 2 + 1 + + + CTCIF1 + Channel 1 Transfer Complete + clear + 1 + 1 + + + CGIF1 + Channel 1 Global interrupt + clear + 0 + 1 + + + + + CCR1 + CCR1 + DMA channel configuration register + (DMA_CCR) + 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 + DMA channel 1 number of data + register + 0xC + 0x20 + read-write + 0x00000000 + + + NDT + Number of data to transfer + 0 + 16 + + + + + CPAR1 + CPAR1 + DMA channel 1 peripheral address + register + 0x10 + 0x20 + read-write + 0x00000000 + + + PA + Peripheral address + 0 + 32 + + + + + CMAR1 + CMAR1 + DMA channel 1 memory address + register + 0x14 + 0x20 + read-write + 0x00000000 + + + MA + Memory address + 0 + 32 + + + + + CCR2 + CCR2 + DMA channel configuration register + (DMA_CCR) + 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 + DMA channel 2 number of data + register + 0x20 + 0x20 + read-write + 0x00000000 + + + NDT + Number of data to transfer + 0 + 16 + + + + + CPAR2 + CPAR2 + DMA channel 2 peripheral address + register + 0x24 + 0x20 + read-write + 0x00000000 + + + PA + Peripheral address + 0 + 32 + + + + + CMAR2 + CMAR2 + DMA channel 2 memory address + register + 0x28 + 0x20 + read-write + 0x00000000 + + + MA + Memory address + 0 + 32 + + + + + CCR3 + CCR3 + DMA channel configuration register + (DMA_CCR) + 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 + DMA channel 3 number of data + register + 0x34 + 0x20 + read-write + 0x00000000 + + + NDT + Number of data to transfer + 0 + 16 + + + + + CPAR3 + CPAR3 + DMA channel 3 peripheral address + register + 0x38 + 0x20 + read-write + 0x00000000 + + + PA + Peripheral address + 0 + 32 + + + + + CMAR3 + CMAR3 + DMA channel 3 memory address + register + 0x3C + 0x20 + read-write + 0x00000000 + + + MA + Memory address + 0 + 32 + + + + + + + FLASH + Flash + Flash + 0x40022000 + + 0x0 + 0x400 + registers + + + FLASH + FLASH global Interrupt + 3 + + + + ACR + ACR + Access control register + 0x0 + 0x20 + read-write + 0x00000600 + + + LATENCY + Latency + 0 + 1 + + + + + KEYR + KEYR + Flash key register + 0x8 + 0x20 + write-only + 0x00000000 + + + KEY + Flash key + 0 + 32 + + + + + OPTKEYR + OPTKEYR + Option byte key register + 0xC + 0x20 + write-only + 0x00000000 + + + OPTKEY + Option byte key + 0 + 32 + + + + + SR + SR + Status register + 0x10 + 0x20 + read-write + 0x00000000 + + + BSY + Busy + 16 + 1 + + + OPTVERR + Option and Engineering bits loading + validity error + 15 + 1 + + + WRPERR + Write protected error + 4 + 1 + + + EOP + End of operation + 0 + 1 + + + + + CR + CR + Flash control register + 0x14 + 0x20 + read-write + 0xC0000000 + + + LOCK + FLASH_CR Lock + 31 + 1 + + + OPTLOCK + Options Lock + 30 + 1 + + + OBL_LAUNCH + Force the option byte + loading + 27 + 1 + + + ERRIE + Error interrupt enable + 25 + 1 + + + EOPIE + End of operation interrupt + enable + 24 + 1 + + + PGTSTRT + Flash main memory program start + 19 + 1 + + + OPTSTRT + Option byte program start + 17 + 1 + + + SER + Sector erase + 11 + 1 + + + MER + Mass erase + 2 + 1 + + + PER + Page erase + 1 + 1 + + + PG + Programming + 0 + 1 + + + + + OPTR + OPTR + Flash option register + 0x20 + 0x20 + read-write + 0x4F55B0AA + + + nBOOT1 + Boot configuration + 15 + 1 + + + NRST_MODE + NRST_MODE + 14 + 1 + + + WWDG_SW + Window watchdog selection + 13 + 1 + + + IDWG_SW + Independent watchdog + selection + 12 + 1 + + + BORF_LEV + These bits contain the VDD supply level + threshold that activates the reset + 9 + 3 + + + BOREN + BOR reset Level + 8 + 1 + + + RDP + Read Protection + 0 + 8 + + + + + SDKR + SDKR + Flash SDK address + register + 0x24 + 0x20 + read-write + 0xFFE0001F + + + SDK_END + SDK area end address + 8 + 5 + + + SDK_STRT + SDK area start address + 0 + 5 + + + + + WRPR + WRPR + Flash WRP address + register + 0x2C + 0x20 + read-write + 0x0000FFFF + + + WRP + WRP address + 0 + 16 + + + + + STCR + STCR + Flash sleep time config + register + 0x90 + 0x20 + read-write + 0x00006400 + + + SLEEP_TIME + FLash sleep time configuration(counter based on HSI_10M) + 8 + 8 + + + SLEEP_EN + FLash sleep enable + 0 + 1 + + + + + TS0 + TS0 + Flash TS0 + register + 0x100 + 0x20 + read-write + 0x000000B4 + + + TS0 + FLash TS0 register + 0 + 8 + + + + + TS1 + TS1 + Flash TS1 + register + 0x104 + 0x20 + read-write + 0x000001B0 + + + TS1 + FLash TS1 register + 0 + 9 + + + + + TS2P + TS2P + Flash TS2P + register + 0x108 + 0x20 + read-write + 0x000000B4 + + + TS2P + FLash TS2P register + 0 + 8 + + + + + TPS3 + TPS3 + Flash TPS3 + register + 0x10C + 0x20 + read-write + 0x000006C0 + + + TPS3 + FLash TPS3 register + 0 + 11 + + + + + TS3 + TS3 + Flash TS3 + register + 0x110 + 0x20 + read-write + 0x000000B4 + + + TS3 + FLash TS3 register + 0 + 8 + + + + + PERTPE + PERTPE + Flash PERTPE + register + 0x114 + 0x20 + read-write + 0x0000EA60 + + + PERTPE + FLash PERTPE register + 0 + 17 + + + + + SMERTPE + SMERTPE + Flash SMERTPE + register + 0x118 + 0x20 + read-write + 0x0000FD20 + + + SMERTPE + FLash SMERTPE register + 0 + 17 + + + + + PRGTPE + PRGTPE + Flash PRGTPE + register + 0x11C + 0x20 + read-write + 0x00008CA0 + + + PRGTPE + FLash PRGTPE register + 0 + 16 + + + + + PRETPE + PRETPE + Flash PRETPE + register + 0x120 + 0x20 + read-write + 0x000012C0 + + + PRETPE + FLash PRETPE register + 0 + 13 + + + + + + + CRC + CRC calculation unit + CRC + 0x40023000 + + 0x0 + 0x400 + registers + + + + DR + DR + Data register + 0x0 + 0x20 + read-write + 0xFFFFFFFF + + + DR + Data Register + 0 + 32 + + + + + IDR + IDR + Independent Data register + 0x4 + 0x20 + read-write + 0x00000000 + + + IDR + Independent Data register + 0 + 8 + + + + + CR + CR + Control register + 0x8 + 0x20 + write-only + 0x00000000 + + + RESET + Reset bit + 0 + 1 + + + + + + + SPI1 + Serial peripheral interface + SPI + 0x40013000 + + 0x0 + 0x400 + registers + + + SPI1 + SPI1 global Interrupt + 25 + + + + CR1 + CR1 + control register 1 + 0x0 + 0x20 + read-write + 0x0000 + + + BIDIMODE + Bidirectional data mode + enable + 15 + 1 + + + BIDIOE + Output enable in bidirectional + mode + 14 + 1 + + + RXONLY + Receive only + 10 + 1 + + + SSM + Software slave management + 9 + 1 + + + SSI + Internal slave selection + 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 + 0x0000 + + + SLVFM + Slave fast mode enable + 15 + 1 + + + LDMA_TX + Last DAM Transmit(TX) + 14 + 1 + + + LDMA_RX + Last DAM Transmit(RX) + 13 + 1 + + + FRXTH + FIFO reception threshold + 12 + 1 + + + DS + Data length + + 11 + 1 + + + TXEIE + Tx buffer empty interrupt + enable + 7 + 1 + + + RXNEIE + RX buffer not empty interrupt + enable + 6 + 1 + + + ERRIE + Error interrupt enable + 5 + 1 + + + SSOE + SS output enable + 2 + 1 + + + TXDMAEN + Tx buffer DMA enable + 1 + 1 + + + RXDMAEN + Rx buffer DMA enable + 0 + 1 + + + + + SR + SR + status register + 0x8 + 0x20 + 0x0002 + + + FTLVL + FIFO transmission level + 11 + 2 + read-only + + + FRLVL + FIFO reception level + 9 + 2 + read-only + + + BSY + Busy flag + 7 + 1 + read-only + + + OVR + Overrun flag + 6 + 1 + read-only + + + MODF + Mode fault + 5 + 1 + read-only + + + TXE + Transmit buffer empty + 1 + 1 + read-only + + + RXNE + Receive buffer not empty + 0 + 1 + read-only + + + + + DR + DR + data register + 0xC + 0x20 + read-write + 0x0000 + + + DR + Data register + 0 + 16 + + + + + + + I2C + Inter integrated circuit + I2C + 0x40005400 + + 0x0 + 0x400 + registers + + + I2C1 + I2C1 global Interrupt + 23 + + + + CR1 + CR1 + Control register 1 + 0x0 + 0x20 + read-write + 0x0000 + + + SWRST + Software reset + 15 + 1 + + + PEC + Packet error checking + 12 + 1 + + + POS + Acknowledge/PEC Position (for data + reception) + 11 + 1 + + + ACK + Acknowledge enable + 10 + 1 + + + STOP + Stop generation + 9 + 1 + + + START + Start generation + 8 + 1 + + + NOSTRETCH + Clock stretching disable (Slave + mode) + 7 + 1 + + + ENGC + General call enable + 6 + 1 + + + ENPEC + PEC enable + 5 + 1 + + + PE + Peripheral enable + 0 + 1 + + + + + CR2 + CR2 + Control register 2 + 0x4 + 0x20 + read-write + 0x0000 + + + LAST + DMA last transfer + 12 + 1 + + + DMAEN + DMA requests enable + 11 + 1 + + + ITBUFEN + Buffer interrupt enable + 10 + 1 + + + ITEVTEN + Event interrupt enable + 9 + 1 + + + ITERREN + Error interrupt enable + 8 + 1 + + + FREQ + Peripheral clock frequency + 0 + 6 + + + + + OAR1 + OAR1 + Own address register 1 + 0x8 + 0x20 + read-write + 0x0000 + + + ADD + Interface address + 1 + 7 + + + + + DR + DR + Data register + 0x10 + 0x20 + read-write + 0x0000 + + + DR + 8-bit data register + 0 + 8 + + + + + SR1 + SR1 + Status register 1 + 0x14 + 0x20 + 0x0000 + + + PECERR + PEC Error in reception + 12 + 1 + read-write + + + OVR + Overrun/Underrun + 11 + 1 + read-write + + + AF + Acknowledge failure + 10 + 1 + read-write + + + ARLO + Arbitration lost (master + mode) + 9 + 1 + read-write + + + BERR + Bus error + 8 + 1 + read-write + + + TxE + Data register empty + (transmitters) + 7 + 1 + read-only + + + RxNE + Data register not empty + (receivers) + 6 + 1 + read-only + + + STOPF + Stop detection (slave + mode) + 4 + 1 + read-only + + + BTF + Byte transfer finished + 2 + 1 + read-only + + + ADDR + Address sent (master mode)/matched + (slave mode) + 1 + 1 + read-only + + + SB + Start bit (Master mode) + 0 + 1 + read-only + + + + + SR2 + SR2 + Status register 2 + 0x18 + 0x20 + read-only + 0x0000 + + + PEC + acket error checking + register + 8 + 8 + + + DUALF + Dual flag (Slave mode) + 7 + 1 + + + GENCALL + General call address (Slave + mode) + 4 + 1 + + + TRA + Transmitter/receiver + 2 + 1 + + + BUSY + Bus busy + 1 + 1 + + + MSL + Master/slave + 0 + 1 + + + + + CCR + CCR + Clock control register + 0x1C + 0x20 + read-write + 0x0000 + + + F_S + I2C master mode selection + 15 + 1 + + + DUTY + Fast mode duty cycle + 14 + 1 + + + CCR + Clock control register in Fast/Standard + mode (Master mode) + 0 + 12 + + + + + TRISE + TRISE + TRISE register + 0x20 + 0x20 + read-write + 0x0002 + + + TRISE + Maximum rise time in Fast/Standard mode + (Master mode) + 0 + 6 + + + + + + + DBGMCU + Debug support + DBGMCU + 0x40015800 + + 0x0 + 0x400 + registers + + + + IDCODE + IDCODE + MCU Device ID Code Register + 0x0 + 0x20 + read-only + 0x0 + + + + + + CR + CR + Debug MCU Configuration + Register + 0x4 + 0x20 + read-write + 0x0 + + + DBG_STOP + Debug Stop Mode + 1 + 1 + + + + + APB_FZ1 + APB_FZ1 + APB Freeze Register1 + 0x8 + 0x20 + read-write + 0x0 + + + DBG_TIMER3_STOP + Debug Timer 3 stopped when Core is + halted + 1 + 1 + + + DBG_RTC_STOP + Debug RTC stopped when Core is + halted + 10 + 1 + + + DBG_WWDG_STOP + Debug Window Wachdog stopped when Core + is halted + 11 + 1 + + + DBG_IWDG_STOP + Debug Independent Wachdog stopped when + Core is halted + 12 + 1 + + + DBG_LPTIM_STOP + Debug LPTIM stopped when Core is + halted + 31 + 1 + + + + + APB_FZ2 + APB_FZ2 + APB Freeze Register2 + 0xC + 0x20 + read-write + 0x0 + + + DBG_TIMER1_STOP + Debug Timer 1 stopped when Core is + halted + 11 + 1 + + + DBG_TIMER14_STOP + Debug Timer 14 stopped when Core is + halted + 15 + 1 + + + DBG_TIMER16_STOP + Debug Timer 16 stopped when Core is + halted + 17 + 1 + + + DBG_TIMER17_STOP + Debug Timer 17 stopped when Core is + halted + 18 + 1 + + + + + + + diff --git a/Misc/py32f030xx.svd b/Misc/SVD/py32f030xx.svd similarity index 96% rename from Misc/py32f030xx.svd rename to Misc/SVD/py32f030xx.svd index 3f41e8a..07f1dee 100644 --- a/Misc/py32f030xx.svd +++ b/Misc/SVD/py32f030xx.svd @@ -1,11582 +1,11582 @@ - - - - Puya - Puya - PY32F0xx_DFP - - PY32F0 - 1.0.0 - Arm 32-bit Cortex-M0+ Microcontroller based device, CPU clock up to 48 MHz. - - - - CM0+ - r0p1 - little - false - false - 4 - false - - - - 8 - 32 - 32 - read-write - 0x00000000 - 0xFFFFFFFF - - - ADC - Analog to Digital Converter - ADC - 0x40012400 - - 0x0 - 0x400 - registers - - - ADC_COMP - ADC and COMP Interrupt through EXTI Lines 17 and 18 - 12 - - - - ISR - ISR - ADC interrupt and status register - 0x0 - 0x20 - read-write - 0x00000000 - - - AWD - ADC analog watchdog flag - 7 - 1 - - - OVR - ADC group regular overrun - flag - 4 - 1 - - - EOSEQ - 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 - - - - - IER - IER - ADC interrupt enable register - 0x4 - 0x20 - read-write - 0x00000000 - - - AWDIE - ADC analog watchdog - interrupt - 7 - 1 - - - OVRIE - ADC group regular overrun - interrupt - 4 - 1 - - - EOSEQIE - 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 - - - - - CR - CR - ADC control register - 0x8 - 0x20 - read-write - 0x00000000 - - - ADCAL - ADC group regular conversion - calibration - 31 - 1 - - - ADSTP - ADC group regular conversion - stop - 4 - 1 - - - ADSTART - ADC group regular conversion - start - 2 - 1 - - - ADEN - ADC enable - 0 - 1 - - - - - CFGR1 - CFGR1 - ADC configuration register 1 - 0xC - 0x20 - read-write - 0x00000000 - - - AWDCH - ADC analog watchdog monitored channel - selection - 26 - 4 - - - AWDEN - ADC analog watchdog enable on scope - ADC group regular - 23 - 1 - - - AWDSGL - ADC analog watchdog monitoring a - single channel or all channels - 22 - 1 - - - DISCEN - ADC group regular sequencer - discontinuous mode - 16 - 1 - - - WAIT - Wait conversion mode - 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 - 3 - - - ALIGN - ADC data alignement - 5 - 1 - - - RESSEL - ADC data resolution - 3 - 2 - - - SCANDIR - Scan sequence direction - 2 - 1 - - - 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 - - - CKMODE - ADC clock mode - 28 - 4 - - - - - SMPR - SMPR - ADC sampling time register - 0x14 - 0x20 - read-write - 0x00000000 - - - SMP - Sampling time selection - 0 - 3 - - - - - TR - TR - ADC analog watchdog 1 threshold register - 0x20 - 0x20 - read-write - 0x0FFF0000 - - - HT - ADC analog watchdog threshold - high - 16 - 12 - - - LT - ADC analog watchdog threshold - low - 0 - 12 - - - - - CHSELR - CHSELR - ADC group regular sequencer register - 0x28 - 0x20 - read-write - 0x0FFF0000 - - - CHSEL12 - Channel-12 selection - 12 - 1 - - - CHSEL11 - Channel-11 selection - 11 - 1 - - - CHSEL9 - Channel-9 selection - 9 - 1 - - - CHSEL8 - Channel-8 selection - 8 - 1 - - - CHSEL7 - Channel-7 selection - 7 - 1 - - - CHSEL6 - Channel-6 selection - 6 - 1 - - - CHSEL5 - Channel-5 selection - 5 - 1 - - - CHSEL4 - Channel-4 selection - 4 - 1 - - - CHSEL3 - Channel-3 selection - 3 - 1 - - - CHSEL2 - Channel-2 selection - 2 - 1 - - - CHSEL1 - Channel-1 selection - 1 - 1 - - - CHSEL0 - Channel-0 selection - 0 - 1 - - - - - DR - DR - ADC group regular data register - 0x40 - 0x20 - read-only - 0x00000000 - - - DATA - ADC group regular conversion - data - 0 - 16 - - - - - CCSR - CCSR - ADC calibration configuration and status register - 0x44 - 0x20 - read-write - 0x00000000 - - - CALON - Calibration flag - 31 - 1 - read-only - - - CALFAIL - Calibration fail flag - 30 - 1 - - - CALSET - Calibration factor selection - 15 - 1 - - - CALSMP - Calibration sample time selection - 12 - 2 - - - CALSEL - Calibration contents selection - 11 - 1 - - - - - CALRR1 - CALRR1 - ADC calibration result register 1 - 0x48 - 0x20 - read-only - 0x00000000 - - - CALBOUT - offset result - 16 - 7 - - - CALC5OUT - C5 result - 8 - 8 - - - CALC4OUT - C4 result - 0 - 8 - - - - - CALRR2 - CALRR2 - ADC calibration result register 2 - 0x4C - 0x20 - read-only - 0x00000000 - - - CALC3OUT - C3 result - 24 - 8 - - - CALC2OUT - C2 result - 16 - 8 - - - CALC1OUT - C1 result - 8 - 8 - - - CALC0OUT - C0 result - 0 - 8 - - - - - CALFIR1 - CALFIR1 - ADC calibration factor input register 1 - 0x50 - 0x20 - read-write - 0x00000000 - - - CALBIO - Calibration offset factor input - 16 - 7 - - - CALC5IO - Calibration C5 factor input - 8 - 8 - - - CALC4IO - Calibration C4 factor input - 0 - 8 - - - - - CALFIR2 - CALFIR2 - ADC calibration factor input register 2 - 0x54 - 0x20 - read-write - 0x00000000 - - - CALC3IO - Calibration C3 factor input - 24 - 8 - - - CALC2IO - Calibration C2 factor input - 16 - 8 - - - CALC1IO - Calibration C1 factor input - 8 - 8 - - - CALC0IO - Calibration C0 factor input - 0 - 8 - - - - - CCR - CCR - ADC common configuration register - 0x308 - 0x20 - read-write - 0x00000000 - - - TSEN - Temperature sensor enable - 23 - 1 - - - VREFEN - VREFINT enable - 22 - 1 - - - - - - - COMP1 - Comparator - COMP - 0x40010200 - - 0x0 - 0x10 - registers - - - - CSR - CSR - COMP control and status register - 0x0 - 0x20 - read-write - 0x00000000 - - - LOCK - CSR register lock - 31 - 1 - - - COMP_OUT - Comparator output status - 30 - 1 - - - PWRMODE - Comparator power mode - selector - 18 - 2 - - - HYST - Comparator hysteresis enable - selector - 16 - 1 - - - POLARITY - Comparator polarity - selector - 15 - 1 - - - WINMODE - Comparator non-inverting input - selector for window mode - 11 - 1 - - - INPSEL - Comparator signal selector for - non-inverting input - 8 - 2 - - - INMSEL - Comparator signal selector for - inverting input INM - 4 - 4 - - - SCALER_EN - SCALER enable bit - 1 - 1 - - - COMP_EN - COMP enable bit - 0 - 1 - - - - - FR - FR - Comparator Filter - register - 0x4 - 0x20 - read-write - 0x00000000 - - - FLTCNT - Comparator filter and counter - 16 - 16 - - - FLTEN - Filter enable bit - 0 - 1 - - - - - - - COMP2 - Comparator - COMP - 0x40010210 - - 0x0 - 0x10 - registers - - - - CSR - CSR - COMP control and status register - 0x0 - 0x20 - read-write - 0x00000000 - - - LOCK - CSR register lock - 31 - 1 - - - COMP_OUT - Comparator output status - 30 - 1 - - - PWRMODE - Comparator power mode - selector - 18 - 2 - - - POLARITY - Comparator polarity - selector - 15 - 1 - - - WINMODE - Comparator non-inverting input - selector for window mode - 11 - 1 - - - INPSEL - Comparator signal selector for - non-inverting input - 8 - 2 - - - INMSEL - Comparator signal selector for - inverting input INM - 4 - 4 - - - COMP_EN - COMP enable bit - 0 - 1 - - - - - FR - FR - Comparator Filter - register - 0x4 - 0x20 - read-write - 0x00000000 - - - FLTCNT - Comparator filter and counter - 16 - 16 - - - FLTEN - Filter enable bit - 0 - 1 - - - - - - - RCC - Reset and clock control - RCC - 0x40021000 - - 0x0 - 0x400 - registers - - - RCC - RCC global Interrupt - 4 - - - - CR - CR - Clock control register - 0x0 - 0x20 - read-write - 0x00000100 - - - PLLRDY - PLL clock ready flag - 25 - 1 - - - PLLON - PLL enable - 24 - 1 - - - CSSON - Clock security system - enable - 19 - 1 - - - HSEBYP - HSE crystal oscillator - bypass - 18 - 1 - - - HSERDY - HSE clock ready flag - 17 - 1 - - - HSEON - HSE clock enable - 16 - 1 - - - HSIDIV - HSI16 clock division - factor - 11 - 3 - - - HSIRDY - HSI16 clock ready flag - 10 - 1 - - - HSIKERON - HSI16 always enable for peripheral - kernels - 9 - 1 - - - HSION - HSI16 clock enable - 8 - 1 - - - - - ICSCR - ICSCR - Internal clock sources calibration - register - 0x4 - 0x20 - 0x10000000 - - - LSI_STARTUP - LSI startup time - 26 - 2 - read-write - - - LSI_TRIM - LSI clock trimming - 16 - 9 - read-write - - - HSI_FS - HSI frequency selection - 13 - 3 - read-write - - - HSI_TRIM - HSI clock trimming - 0 - 13 - read-write - - - - - CFGR - CFGR - Clock configuration register - 0x8 - 0x20 - 0x00000000 - - - MCOPRE - Microcontroller clock output - prescaler - 28 - 3 - read-write - - - MCOSEL - Microcontroller clock - output - 24 - 3 - read-write - - - PPRE - APB prescaler - 12 - 3 - read-write - - - HPRE - AHB prescaler - 8 - 4 - read-write - - - SWS - System clock switch status - 3 - 3 - read-only - - - SW - System clock switch - 0 - 3 - read-write - - - - - PLLCFGR - PLLCFGR - PLL configuration register - 0xC - 0x20 - 0x00000000 - - - PLLSRC - PLL clock source selection - 0 - 1 - read-write - - - - - ECSCR - ECSCR - External clock source control register - 0x10 - 0x20 - 0x00000000 - - - LSE_DRIVER - LSE clock driver selection - 16 - 2 - read-write - - - HSE_FREQ - HSE clock freqency selection - 2 - 2 - read-write - - - - - CIER - CIER - Clock interrupt enable - register - 0x18 - 0x20 - read-write - 0x00000000 - - - PLLRDYIE - PLL ready interrupt enable - 5 - 1 - - - HSERDYIE - HSE ready interrupt enable - 4 - 1 - - - HSIRDYIE - HSI ready interrupt enable - 3 - 1 - - - LSERDYIE - LSE ready interrupt enable - 1 - 1 - - - LSIRDYIE - LSI ready interrupt enable - 0 - 1 - - - - - CIFR - CIFR - Clock interrupt flag register - 0x1C - 0x20 - read-only - 0x00000000 - - - LSECSSF - LSE clock secure system interrupt flag - 9 - 1 - - - CSSF - HSE clock secure system interrupt flag - 8 - 1 - - - PLLRDYF - PLL ready interrupt flag - 5 - 1 - - - HSERDYF - HSE ready interrupt flag - 4 - 1 - - - HSIRDYF - HSI ready interrupt flag - 3 - 1 - - - LSERDYF - LSE ready interrupt flag - 1 - 1 - - - LSIRDYF - LSI ready interrupt flag - 0 - 1 - - - - - CICR - CICR - Clock interrupt clear register - 0x20 - 0x20 - write-only - 0x00000000 - - - LSECSSC - LSE clock secure system interrupt flag clear - 9 - 1 - - - CSSC - clock secure system interrupt flag clear - 8 - 1 - - - PLLRDYC - PLL ready interrupt clear - 5 - 1 - - - HSERDYC - HSE ready interrupt clear - 4 - 1 - - - HSIRDYC - HSI ready interrupt clear - 3 - 1 - - - LSERDYC - LSE ready interrupt clear - 1 - 1 - - - LSIRDYC - LSI ready interrupt clear - 0 - 1 - - - - - IOPRSTR - IOPRSTR - GPIO reset register - 0x24 - 0x20 - read-write - 0x00000000 - - - GPIOFRST - I/O port F reset - 5 - 1 - - - GPIOBRST - I/O port B reset - 1 - 1 - - - GPIOARST - I/O port A reset - 0 - 1 - - - - - AHBRSTR - AHBRSTR - AHB peripheral reset register - 0x28 - 0x20 - read-write - 0x00000000 - - - CRCRST - CRC reset - 12 - 1 - - - DMARST - DMA reset - 0 - 1 - - - - - APBRSTR1 - APBRSTR1 - APB peripheral reset register - 1 - 0x2C - 0x20 - read-write - 0x00000000 - - - LPTIMRST - Low Power Timer reset - 31 - 1 - - - PWRRST - Power interface reset - 28 - 1 - - - DBGRST - Debug support reset - 27 - 1 - - - I2CRST - I2C reset - 21 - 1 - - - USART2RST - USART2 reset - 17 - 1 - - - SPI2RST - SPI2 reset - 14 - 1 - - - TIM3RST - TIM3 timer reset - 1 - 1 - - - - - APBRSTR2 - APBRSTR2 - APB peripheral reset register - 2 - 0x30 - 0x20 - read-write - 0x00000000 - - - LEDRST - LED reset - 23 - 1 - - - COMP2RST - COMP2 reset - 22 - 1 - - - COMP1RST - COMP1 reset - 21 - 1 - - - ADCRST - ADC reset - 20 - 1 - - - TIM17RST - TIM17 timer reset - 18 - 1 - - - TIM16RST - TIM16 timer reset - 17 - 1 - - - TIM14RST - TIM14 timer reset - 15 - 1 - - - USART1RST - USART1 reset - 14 - 1 - - - SPI1RST - SPI1 reset - 12 - 1 - - - TIM1RST - TIM1 timer reset - 11 - 1 - - - SYSCFGRST - SYSCFG and COMP - reset - 0 - 1 - - - - - IOPENR - IOPENR - GPIO clock enable register - 0x34 - 0x20 - read-write - 0x00000000 - - - GPIOFEN - I/O port F clock enable - 5 - 1 - - - GPIOBEN - I/O port B clock enable - 1 - 1 - - - GPIOAEN - I/O port A clock enable - 0 - 1 - - - - - AHBENR - AHBENR - AHB peripheral clock enable - register - 0x38 - 0x20 - read-write - 0x00000000 - - - CRCEN - CRC clock enable - 12 - 1 - - - SRAMEN - SRAM memory interface clock - enable - 9 - 1 - - - FLASHEN - Flash memory interface clock - enable - 8 - 1 - - - DMAEN - DMA clock enable - 0 - 1 - - - - - APBENR1 - APBENR1 - APB peripheral clock enable register - 1 - 0x3C - 0x20 - read-write - 0x00000000 - - - LPTIMEN - LPTIM clock enable - 31 - 1 - - - PWREN - Power interface clock - enable - 28 - 1 - - - DBGEN - Debug support clock enable - 27 - 1 - - - I2CEN - I2C clock enable - 21 - 1 - - - USART2EN - USART2 clock enable - 17 - 1 - - - SPI2EN - SPI2 clock enable - 14 - 1 - - - WWDGEN - WWDG clock enable - 11 - 1 - - - RTCAPBEN - RTC APB clock enable - 10 - 1 - - - TIM3EN - TIM3 timer clock enable - 1 - 1 - - - - - APBENR2 - APBENR2 - APB peripheral clock enable register - 2 - 0x40 - 0x20 - read-write - 0x00000000 - - - LEDEN - LED clock enable - 23 - 1 - - - COMP2EN - COMP2 clock enable - 22 - 1 - - - COMP1EN - COMP1 clock enable - 21 - 1 - - - ADCEN - ADC clock enable - 20 - 1 - - - TIM17EN - TIM16 timer clock enable - 18 - 1 - - - TIM16EN - TIM16 timer clock enable - 17 - 1 - - - TIM14EN - TIM14 timer clock enable - 15 - 1 - - - USART1EN - USART1 clock enable - 14 - 1 - - - SPI1EN - SPI1 clock enable - 12 - 1 - - - TIM1EN - TIM1 timer clock enable - 11 - 1 - - - SYSCFGEN - SYSCFG, COMP and VREFBUF clock - enable - 0 - 1 - - - - - CCIPR - CCIPR - Peripherals independent clock configuration - register - 0x54 - 0x20 - read-write - 0x00000000 - - - LPTIM1SEL - LPTIM1 clock source - selection - 18 - 2 - - - COMP2SEL - COMP2 clock source - selection - 9 - 1 - - - COMP1SEL - COMP1 clock source - selection - 8 - 1 - - - PVDSEL - PVD detect clock source - selection - 7 - 1 - - - - - BDCR - BDCR - RTC domain control register - 0x5C - 0x20 - read-write - 0x00000000 - - - LSCOSEL - Low-speed clock output - selection - 25 - 1 - - - LSCOEN - Low-speed clock output (LSCO) - enable - 24 - 1 - - - BDRST - RTC domain software reset - 16 - 1 - - - RTCEN - RTC clock source enable - 15 - 1 - - - RTCSEL - RTC clock source selection - 8 - 2 - - - LSECSSD - LSE CSS detect - 6 - 1 - - - LSECSSON - LSE CSS enable - 5 - 1 - - - LSEBYP - LSE oscillator bypass - 2 - 1 - - - LSERDY - LSE oscillator ready - 1 - 1 - - - LSEON - LSE oscillator enable - 0 - 1 - - - - - CSR - CSR - Control/status register - 0x60 - 0x20 - read-write - 0x00000000 - - - WWDGRSTF - Window watchdog reset flag - 30 - 1 - - - IWDGRSTF - Independent window watchdog reset - flag - 29 - 1 - - - SFTRSTF - Software reset flag - 28 - 1 - - - PWRRSTF - BOR or POR/PDR flag - 27 - 1 - - - PINRSTF - Pin reset flag - 26 - 1 - - - OBLRSTF - Option byte loader reset - flag - 25 - 1 - - - RMVF - Remove reset flags - 23 - 1 - - - LSIRDY - LSI oscillator ready - 1 - 1 - - - LSION - LSI oscillator enable - 0 - 1 - - - - - - - PWR - Power control - PWR - 0x40007000 - - 0x0 - 0x400 - registers - - - - CR1 - CR1 - Power control register 1 - 0x0 - 0x20 - read-write - 0x00030000 - - - HSION_CTRL - HSI open time control - 19 - 1 - - - SRAM_RETV - SRAM retention voltage control - 16 - 3 - - - LPR - Low-power run - 14 - 1 - - - FLS_SLPTIME - Flash wait time after wakeup from the stop mode - 12 - 2 - - - MRRDY_TIME - Time selection wakeup from LP to VR - 10 - 2 - - - VOS - Voltage scaling range - selection - 9 - 1 - - - DBP - Disable backup domain write - protection - 8 - 1 - - - BIAS_CR_SEL - MR Bias current selection - 4 - 1 - - - BIAS_CR - MR Bias current - 0 - 4 - - - - - CR2 - CR2 - Power control register 2 - 0x4 - 0x20 - read-write - 0x00000500 - - - FLT_TIME - Digital filter time configuration - 9 - 3 - - - FLTEN - Digital filter enable - 8 - 1 - - - PVDT - Power voltage detector threshold - selection - 4 - 3 - - - SRCSEL - Power voltage detector volatage - selection - 2 - 1 - - - PVDE - Power voltage detector - enable - 0 - 1 - - - - - SR - SR - Power status register - 0x14 - 0x20 - read-only - 0x00000000 - - - PVDO - PVD output - 11 - 1 - - - - - - - GPIOA - General-purpose I/Os - GPIO - 0x50000000 - - 0x0 - 0x400 - registers - - - - MODER - MODER - GPIO port mode register - 0x0 - 0x20 - read-write - 0xEBFFFFFF - - - MODE15 - Port x configuration bits (y = - 0..15) - 30 - 2 - - - MODE14 - Port x configuration bits (y = - 0..15) - 28 - 2 - - - MODE13 - Port x configuration bits (y = - 0..15) - 26 - 2 - - - MODE12 - Port x configuration bits (y = - 0..15) - 24 - 2 - - - MODE11 - Port x configuration bits (y = - 0..15) - 22 - 2 - - - MODE10 - Port x configuration bits (y = - 0..15) - 20 - 2 - - - MODE9 - Port x configuration bits (y = - 0..15) - 18 - 2 - - - MODE8 - Port x configuration bits (y = - 0..15) - 16 - 2 - - - MODE7 - Port x configuration bits (y = - 0..15) - 14 - 2 - - - MODE6 - Port x configuration bits (y = - 0..15) - 12 - 2 - - - MODE5 - Port x configuration bits (y = - 0..15) - 10 - 2 - - - MODE4 - Port x configuration bits (y = - 0..15) - 8 - 2 - - - MODE3 - Port x configuration bits (y = - 0..15) - 6 - 2 - - - MODE2 - Port x configuration bits (y = - 0..15) - 4 - 2 - - - MODE1 - Port x configuration bits (y = - 0..15) - 2 - 2 - - - MODE0 - 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 - - - OSPEED15 - Port x configuration bits (y = - 0..15) - 30 - 2 - - - OSPEED14 - Port x configuration bits (y = - 0..15) - 28 - 2 - - - OSPEED13 - Port x configuration bits (y = - 0..15) - 26 - 2 - - - OSPEED12 - Port x configuration bits (y = - 0..15) - 24 - 2 - - - OSPEED11 - Port x configuration bits (y = - 0..15) - 22 - 2 - - - OSPEED10 - Port x configuration bits (y = - 0..15) - 20 - 2 - - - OSPEED9 - Port x configuration bits (y = - 0..15) - 18 - 2 - - - OSPEED8 - Port x configuration bits (y = - 0..15) - 16 - 2 - - - OSPEED7 - Port x configuration bits (y = - 0..15) - 14 - 2 - - - OSPEED6 - Port x configuration bits (y = - 0..15) - 12 - 2 - - - OSPEED5 - Port x configuration bits (y = - 0..15) - 10 - 2 - - - OSPEED4 - Port x configuration bits (y = - 0..15) - 8 - 2 - - - OSPEED3 - Port x configuration bits (y = - 0..15) - 6 - 2 - - - OSPEED2 - Port x configuration bits (y = - 0..15) - 4 - 2 - - - OSPEED1 - Port x configuration bits (y = - 0..15) - 2 - 2 - - - OSPEED0 - Port x configuration bits (y = - 0..15) - 0 - 2 - - - - - PUPDR - PUPDR - GPIO port pull-up/pull-down - register - 0xC - 0x20 - read-write - 0x24000000 - - - PUPD15 - Port x configuration bits (y = - 0..15) - 30 - 2 - - - PUPD14 - Port x configuration bits (y = - 0..15) - 28 - 2 - - - PUPD13 - Port x configuration bits (y = - 0..15) - 26 - 2 - - - PUPD12 - Port x configuration bits (y = - 0..15) - 24 - 2 - - - PUPD11 - Port x configuration bits (y = - 0..15) - 22 - 2 - - - PUPD10 - Port x configuration bits (y = - 0..15) - 20 - 2 - - - PUPD9 - Port x configuration bits (y = - 0..15) - 18 - 2 - - - PUPD8 - Port x configuration bits (y = - 0..15) - 16 - 2 - - - PUPD7 - Port x configuration bits (y = - 0..15) - 14 - 2 - - - PUPD6 - Port x configuration bits (y = - 0..15) - 12 - 2 - - - PUPD5 - Port x configuration bits (y = - 0..15) - 10 - 2 - - - PUPD4 - Port x configuration bits (y = - 0..15) - 8 - 2 - - - PUPD3 - Port x configuration bits (y = - 0..15) - 6 - 2 - - - PUPD2 - Port x configuration bits (y = - 0..15) - 4 - 2 - - - PUPD1 - Port x configuration bits (y = - 0..15) - 2 - 2 - - - PUPD0 - Port x configuration bits (y = - 0..15) - 0 - 2 - - - - - IDR - IDR - GPIO port input data register - 0x10 - 0x20 - read-only - 0x00000000 - - - ID15 - Port input data (y = - 0..15) - 15 - 1 - - - ID14 - Port input data (y = - 0..15) - 14 - 1 - - - ID13 - Port input data (y = - 0..15) - 13 - 1 - - - ID12 - Port input data (y = - 0..15) - 12 - 1 - - - ID11 - Port input data (y = - 0..15) - 11 - 1 - - - ID10 - Port input data (y = - 0..15) - 10 - 1 - - - ID9 - Port input data (y = - 0..15) - 9 - 1 - - - ID8 - Port input data (y = - 0..15) - 8 - 1 - - - ID7 - Port input data (y = - 0..15) - 7 - 1 - - - ID6 - Port input data (y = - 0..15) - 6 - 1 - - - ID5 - Port input data (y = - 0..15) - 5 - 1 - - - ID4 - Port input data (y = - 0..15) - 4 - 1 - - - ID3 - Port input data (y = - 0..15) - 3 - 1 - - - ID2 - Port input data (y = - 0..15) - 2 - 1 - - - ID1 - Port input data (y = - 0..15) - 1 - 1 - - - ID0 - Port input data (y = - 0..15) - 0 - 1 - - - - - ODR - ODR - GPIO port output data register - 0x14 - 0x20 - read-write - 0x00000000 - - - OD15 - Port output data (y = - 0..15) - 15 - 1 - - - OD14 - Port output data (y = - 0..15) - 14 - 1 - - - OD13 - Port output data (y = - 0..15) - 13 - 1 - - - OD12 - Port output data (y = - 0..15) - 12 - 1 - - - OD11 - Port output data (y = - 0..15) - 11 - 1 - - - OD10 - Port output data (y = - 0..15) - 10 - 1 - - - OD9 - Port output data (y = - 0..15) - 9 - 1 - - - OD8 - Port output data (y = - 0..15) - 8 - 1 - - - OD7 - Port output data (y = - 0..15) - 7 - 1 - - - OD6 - Port output data (y = - 0..15) - 6 - 1 - - - OD5 - Port output data (y = - 0..15) - 5 - 1 - - - OD4 - Port output data (y = - 0..15) - 4 - 1 - - - OD3 - Port output data (y = - 0..15) - 3 - 1 - - - OD2 - Port output data (y = - 0..15) - 2 - 1 - - - OD1 - Port output data (y = - 0..15) - 1 - 1 - - - OD0 - 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 - - - BR15 - Port Reset bit - 15 - 1 - - - BR14 - Port Reset bit - 14 - 1 - - - BR13 - Port Reset bit - 13 - 1 - - - BR12 - Port Reset bit - 12 - 1 - - - BR11 - Port Reset bit - 11 - 1 - - - BR10 - Port Reset bit - 10 - 1 - - - BR9 - Port Reset bit - 9 - 1 - - - BR8 - Port Reset bit - 8 - 1 - - - BR7 - Port Reset bit - 7 - 1 - - - BR6 - Port Reset bit - 6 - 1 - - - BR5 - Port Reset bit - 5 - 1 - - - BR4 - Port Reset bit - 4 - 1 - - - BR3 - Port Reset bit - 3 - 1 - - - BR2 - Port Reset bit - 2 - 1 - - - BR1 - Port Reset bit - 1 - 1 - - - BR0 - Port Reset bit - 0 - 1 - - - - - - - GPIOB - General-purpose I/Os - GPIO - 0x50000400 - - 0x0 - 0x400 - registers - - - - MODER - MODER - GPIO port mode register - 0x0 - 0x20 - read-write - 0xFFFFFFFF - - - MODE8 - Port x configuration bits (y = - 0..15) - 16 - 2 - - - MODE7 - Port x configuration bits (y = - 0..15) - 14 - 2 - - - MODE6 - Port x configuration bits (y = - 0..15) - 12 - 2 - - - MODE5 - Port x configuration bits (y = - 0..15) - 10 - 2 - - - MODE4 - Port x configuration bits (y = - 0..15) - 8 - 2 - - - MODE3 - Port x configuration bits (y = - 0..15) - 6 - 2 - - - MODE2 - Port x configuration bits (y = - 0..15) - 4 - 2 - - - MODE1 - Port x configuration bits (y = - 0..15) - 2 - 2 - - - MODE0 - Port x configuration bits (y = - 0..15) - 0 - 2 - - - - - OTYPER - OTYPER - GPIO port output type register - 0x4 - 0x20 - read-write - 0x00000000 - - - 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 - 0x00000000 - - - OSPEED8 - Port x configuration bits (y = - 0..15) - 16 - 2 - - - OSPEED7 - Port x configuration bits (y = - 0..15) - 14 - 2 - - - OSPEED6 - Port x configuration bits (y = - 0..15) - 12 - 2 - - - OSPEED5 - Port x configuration bits (y = - 0..15) - 10 - 2 - - - OSPEED4 - Port x configuration bits (y = - 0..15) - 8 - 2 - - - OSPEED3 - Port x configuration bits (y = - 0..15) - 6 - 2 - - - OSPEED2 - Port x configuration bits (y = - 0..15) - 4 - 2 - - - OSPEED1 - Port x configuration bits (y = - 0..15) - 2 - 2 - - - OSPEED0 - Port x configuration bits (y = - 0..15) - 0 - 2 - - - - - PUPDR - PUPDR - GPIO port pull-up/pull-down - register - 0xC - 0x20 - read-write - 0x00000000 - - - PUPD8 - Port x configuration bits (y = - 0..15) - 16 - 2 - - - PUPD7 - Port x configuration bits (y = - 0..15) - 14 - 2 - - - PUPD6 - Port x configuration bits (y = - 0..15) - 12 - 2 - - - PUPD5 - Port x configuration bits (y = - 0..15) - 10 - 2 - - - PUPD4 - Port x configuration bits (y = - 0..15) - 8 - 2 - - - PUPD3 - Port x configuration bits (y = - 0..15) - 6 - 2 - - - PUPD2 - Port x configuration bits (y = - 0..15) - 4 - 2 - - - PUPD1 - Port x configuration bits (y = - 0..15) - 2 - 2 - - - PUPD0 - Port x configuration bits (y = - 0..15) - 0 - 2 - - - - - IDR - IDR - GPIO port input data register - 0x10 - 0x20 - read-only - 0x00000000 - - - ID8 - Port input data (y = - 0..15) - 8 - 1 - - - ID7 - Port input data (y = - 0..15) - 7 - 1 - - - ID6 - Port input data (y = - 0..15) - 6 - 1 - - - ID5 - Port input data (y = - 0..15) - 5 - 1 - - - ID4 - Port input data (y = - 0..15) - 4 - 1 - - - ID3 - Port input data (y = - 0..15) - 3 - 1 - - - ID2 - Port input data (y = - 0..15) - 2 - 1 - - - ID1 - Port input data (y = - 0..15) - 1 - 1 - - - ID0 - Port input data (y = - 0..15) - 0 - 1 - - - - - ODR - ODR - GPIO port output data register - 0x14 - 0x20 - read-write - 0x00000000 - - - OD8 - Port output data (y = - 0..15) - 8 - 1 - - - OD7 - Port output data (y = - 0..15) - 7 - 1 - - - OD6 - Port output data (y = - 0..15) - 6 - 1 - - - OD5 - Port output data (y = - 0..15) - 5 - 1 - - - OD4 - Port output data (y = - 0..15) - 4 - 1 - - - OD3 - Port output data (y = - 0..15) - 3 - 1 - - - OD2 - Port output data (y = - 0..15) - 2 - 1 - - - OD1 - Port output data (y = - 0..15) - 1 - 1 - - - OD0 - Port output data (y = - 0..15) - 0 - 1 - - - - - BSRR - BSRR - GPIO port bit set/reset - register - 0x18 - 0x20 - write-only - 0x00000000 - - - 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 - - - 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 - - - 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 - - - BR8 - Port Reset bit - 8 - 1 - - - BR7 - Port Reset bit - 7 - 1 - - - BR6 - Port Reset bit - 6 - 1 - - - BR5 - Port Reset bit - 5 - 1 - - - BR4 - Port Reset bit - 4 - 1 - - - BR3 - Port Reset bit - 3 - 1 - - - BR2 - Port Reset bit - 2 - 1 - - - BR1 - Port Reset bit - 1 - 1 - - - BR0 - Port Reset bit - 0 - 1 - - - - - - - GPIOF - 0x50001400 - - - EXTI - External interrupt/event - controller - EXTI - 0x40021800 - - 0x0 - 0x400 - registers - - - PVD - PVD Interrupt through EXTI Lines 16 - 1 - - - EXTI0_1 - EXTI Line 0 and 1 Interrupt - 5 - - - EXTI2_3 - EXTI Line 2 and 3 Interrupt - 6 - - - EXTI4_15 - EXTI Line 4 to 15 Interrupt - 7 - - - - RTSR - RTSR - EXTI rising trigger selection - register - 0x0 - 0x20 - read-write - 0x00000000 - - - RT18 - Rising trigger event configuration bit - of Configurable Event input - 18 - 1 - - - RT17 - Rising trigger event configuration bit - of Configurable Event input - 17 - 1 - - - RT16 - Rising trigger event configuration bit - of Configurable Event input - 16 - 1 - - - RT15 - Rising trigger event configuration bit - of Configurable Event input - 15 - 1 - - - RT14 - Rising trigger event configuration bit - of Configurable Event input - 14 - 1 - - - RT13 - Rising trigger event configuration bit - of Configurable Event input - 13 - 1 - - - RT12 - Rising trigger event configuration bit - of Configurable Event input - 12 - 1 - - - RT11 - Rising trigger event configuration bit - of Configurable Event input - 11 - 1 - - - RT10 - Rising trigger event configuration bit - of Configurable Event input - 10 - 1 - - - RT9 - Rising trigger event configuration bit - of Configurable Event input - 9 - 1 - - - RT8 - Rising trigger event configuration bit - of Configurable Event input - 8 - 1 - - - RT7 - Rising trigger event configuration bit - of Configurable Event input - 7 - 1 - - - RT6 - Rising trigger event configuration bit - of Configurable Event input - 6 - 1 - - - RT5 - Rising trigger event configuration bit - of Configurable Event input - 5 - 1 - - - RT4 - Rising trigger event configuration bit - of Configurable Event input - 4 - 1 - - - RT3 - Rising trigger event configuration bit - of Configurable Event input - 3 - 1 - - - RT2 - Rising trigger event configuration bit - of Configurable Event input - 2 - 1 - - - RT1 - Rising trigger event configuration bit - of Configurable Event input - 1 - 1 - - - RT0 - Rising trigger event configuration bit - of Configurable Event input - 0 - 1 - - - - - FTSR - FTSR - EXTI falling trigger selection - register - 0x4 - 0x20 - read-write - 0x00000000 - - - FT18 - Falling trigger event configuration bit - of Configurable Event input - 18 - 1 - - - FT17 - Falling trigger event configuration bit - of Configurable Event input - 17 - 1 - - - FT16 - Falling trigger event configuration bit - of Configurable Event input - 16 - 1 - - - FT15 - Falling trigger event configuration bit - of Configurable Event input - 15 - 1 - - - FT14 - Falling trigger event configuration bit - of Configurable Event input - 14 - 1 - - - FT13 - Falling trigger event configuration bit - of Configurable Event input - 13 - 1 - - - FT12 - Falling trigger event configuration bit - of Configurable Event input - 12 - 1 - - - FT11 - Falling trigger event configuration bit - of Configurable Event input - 11 - 1 - - - FT10 - Falling trigger event configuration bit - of Configurable Event input - 10 - 1 - - - FT9 - Falling trigger event configuration bit - of Configurable Event input - 9 - 1 - - - FT8 - Falling trigger event configuration bit - of Configurable Event input - 8 - 1 - - - FT7 - Falling trigger event configuration bit - of Configurable Event input - 7 - 1 - - - FT6 - Falling trigger event configuration bit - of Configurable Event input - 6 - 1 - - - FT5 - Falling trigger event configuration bit - of Configurable Event input - 5 - 1 - - - FT4 - Falling trigger event configuration bit - of Configurable Event input - 4 - 1 - - - FT3 - Falling trigger event configuration bit - of Configurable Event input - 3 - 1 - - - FT2 - Falling trigger event configuration bit - of Configurable Event input - 2 - 1 - - - FT1 - Falling trigger event configuration bit - of Configurable Event input - 1 - 1 - - - FT0 - Falling trigger event configuration bit - of Configurable Event input - 0 - 1 - - - - - SWIER - SWIER - EXTI software interrupt event - register - 0x8 - 0x20 - read-write - 0x00000000 - - - SWI18 - Rising trigger event configuration bit - of Configurable Event input - 18 - 1 - - - SWI17 - Rising trigger event configuration bit - of Configurable Event input - 17 - 1 - - - SWI16 - Rising trigger event configuration bit - of Configurable Event input - 16 - 1 - - - SWI15 - Rising trigger event configuration bit - of Configurable Event input - 15 - 1 - - - SWI14 - Rising trigger event configuration bit - of Configurable Event input - 14 - 1 - - - SWI13 - Rising trigger event configuration bit - of Configurable Event input - 13 - 1 - - - SWI12 - Rising trigger event configuration bit - of Configurable Event input - 12 - 1 - - - SWI11 - Rising trigger event configuration bit - of Configurable Event input - 11 - 1 - - - SWI10 - Rising trigger event configuration bit - of Configurable Event input - 10 - 1 - - - SWI9 - Rising trigger event configuration bit - of Configurable Event input - 9 - 1 - - - SWI8 - Rising trigger event configuration bit - of Configurable Event input - 8 - 1 - - - SWI7 - Rising trigger event configuration bit - of Configurable Event input - 7 - 1 - - - SWI6 - Rising trigger event configuration bit - of Configurable Event input - 6 - 1 - - - SWI5 - Rising trigger event configuration bit - of Configurable Event input - 5 - 1 - - - SWI4 - Rising trigger event configuration bit - of Configurable Event input - 4 - 1 - - - SWI3 - Rising trigger event configuration bit - of Configurable Event input - 3 - 1 - - - SWI2 - Rising trigger event configuration bit - of Configurable Event input - 2 - 1 - - - SWI1 - Rising trigger event configuration bit - of Configurable Event input - 1 - 1 - - - SWI0 - Rising trigger event configuration bit - of Configurable Event input - 0 - 1 - - - - - PR - PR - EXTI pending - register - 0xC - 0x20 - read-write - 0x00000000 - - - PR18 - configurable event inputs x rising edge - Pending bit. - 18 - 1 - - - PR17 - configurable event inputs x rising edge - Pending bit. - 17 - 1 - - - PR16 - configurable event inputs x rising edge - Pending bit. - 16 - 1 - - - PR15 - configurable event inputs x rising edge - Pending bit. - 15 - 1 - - - PR14 - configurable event inputs x rising edge - Pending bit. - 14 - 1 - - - PR13 - configurable event inputs x rising edge - Pending bit - 13 - 1 - - - PR12 - configurable event inputs x rising edge - Pending bit. - 12 - 1 - - - PR11 - configurable event inputs x rising edge - Pending bit. - 11 - 1 - - - PR10 - configurable event inputs x rising edge - Pending bit. - 10 - 1 - - - PR9 - configurable event inputs x rising edge - Pending bit. - 9 - 1 - - - PR8 - configurable event inputs x rising edge - Pending bit. - 8 - 1 - - - PR7 - configurable event inputs x rising edge - Pending bit. - 7 - 1 - - - PR6 - configurable event inputs x rising edge - Pending bit. - 6 - 1 - - - PR5 - configurable event inputs x rising edge - Pending bit. - 5 - 1 - - - PR4 - configurable event inputs x rising edge - Pending bit. - 4 - 1 - - - PR3 - configurable event inputs x rising edge - Pending bit. - 3 - 1 - - - PR2 - configurable event inputs x rising edge - Pending bit. - 2 - 1 - - - PR1 - configurable event inputs x rising edge - Pending bit. - 1 - 1 - - - PR0 - configurable event inputs x rising edge - Pending bit. - 0 - 1 - - - - - EXTICR1 - EXTICR1 - EXTI external interrupt selection - register - 0x60 - 0x20 - read-write - 0x00000000 - - - EXTI3 - GPIO port selection - 24 - 2 - - - EXTI2 - GPIO port selection - 16 - 2 - - - EXTI1 - GPIO port selection - 8 - 2 - - - EXTI0 - GPIO port selection - 0 - 2 - - - - - EXTICR2 - EXTICR2 - EXTI external interrupt selection - register - 0x64 - 0x20 - read-write - 0x00000000 - - - EXTI7 - GPIO port selection - 24 - 1 - - - EXTI6 - GPIO port selection - 16 - 1 - - - EXTI5 - GPIO port selection - 8 - 1 - - - EXTI4 - GPIO port selection - 0 - 2 - - - - - EXTICR3 - EXTICR3 - EXTI external interrupt selection - register - 0x68 - 0x20 - read-write - 0x00000000 - - - EXTI8 - GPIO port selection - 0 - 1 - - - - - IMR - IMR - EXTI CPU wakeup with interrupt mask - register - 0x80 - 0x20 - read-write - 0xFFF80000 - - - IM29 - CPU wakeup with interrupt mask on event - input - 29 - 1 - - - IM19 - CPU wakeup with interrupt mask on event - input - 19 - 1 - - - IM18 - CPU wakeup with interrupt mask on event - input - 18 - 1 - - - IM17 - CPU wakeup with interrupt mask on event - input - 17 - 1 - - - IM16 - CPU wakeup with interrupt mask on event - input - 16 - 1 - - - IM15 - CPU wakeup with interrupt mask on event - input - 15 - 1 - - - IM14 - CPU wakeup with interrupt mask on event - input - 14 - 1 - - - IM13 - CPU wakeup with interrupt mask on event - input - 13 - 1 - - - IM12 - CPU wakeup with interrupt mask on event - input - 12 - 1 - - - IM11 - CPU wakeup with interrupt mask on event - input - 11 - 1 - - - IM10 - CPU wakeup with interrupt mask on event - input - 10 - 1 - - - IM9 - CPU wakeup with interrupt mask on event - input - 9 - 1 - - - IM8 - CPU wakeup with interrupt mask on event - input - 8 - 1 - - - IM7 - CPU wakeup with interrupt mask on event - input - 7 - 1 - - - IM6 - CPU wakeup with interrupt mask on event - input - 6 - 1 - - - IM5 - CPU wakeup with interrupt mask on event - input - 5 - 1 - - - IM4 - CPU wakeup with interrupt mask on event - input - 4 - 1 - - - IM3 - CPU wakeup with interrupt mask on event - input - 3 - 1 - - - IM2 - CPU wakeup with interrupt mask on event - input - 2 - 1 - - - IM1 - CPU wakeup with interrupt mask on event - input - 1 - 1 - - - IM0 - CPU wakeup with interrupt mask on event - input - 0 - 1 - - - - - EMR - EMR - EXTI CPU wakeup with event mask - register - 0x84 - 0x20 - read-write - 0x00000000 - - - EM29 - CPU wakeup with event mask on event - input - 29 - 1 - - - EM19 - CPU wakeup with event mask on event - input - 19 - 1 - - - EM18 - CPU wakeup with event mask on event - input - 18 - 1 - - - EM17 - CPU wakeup with event mask on event - input - 17 - 1 - - - EM16 - CPU wakeup with event mask on event - input - 16 - 1 - - - EM15 - CPU wakeup with event mask on event - input - 15 - 1 - - - EM14 - CPU wakeup with event mask on event - input - 14 - 1 - - - EM13 - CPU wakeup with event mask on event - input - 13 - 1 - - - EM12 - CPU wakeup with event mask on event - input - 12 - 1 - - - EM11 - CPU wakeup with event mask on event - input - 11 - 1 - - - EM10 - CPU wakeup with event mask on event - input - 10 - 1 - - - EM9 - CPU wakeup with event mask on event - input - 9 - 1 - - - EM8 - CPU wakeup with event mask on event - input - 8 - 1 - - - EM7 - CPU wakeup with event mask on event - input - 7 - 1 - - - EM6 - CPU wakeup with event mask on event - input - 6 - 1 - - - EM5 - CPU wakeup with event mask on event - input - 5 - 1 - - - EM4 - CPU wakeup with event mask on event - input - 4 - 1 - - - EM3 - CPU wakeup with event mask on event - input - 3 - 1 - - - EM2 - CPU wakeup with event mask on event - input - 2 - 1 - - - EM1 - CPU wakeup with event mask on event - input - 1 - 1 - - - EM0 - CPU wakeup with event mask on event - input - 0 - 1 - - - - - - - LPTIM - Low power timer - LPTIM - 0x40007C00 - - 0x0 - 0x400 - registers - - - - ISR - ISR - Interrupt and Status Register - 0x0 - 0x20 - read-only - 0x00000000 - - - ARRM - Autoreload match - 1 - 1 - - - - - ICR - ICR - Interrupt Clear Register - 0x4 - 0x20 - write-only - 0x00000000 - - - ARRMCF - Autoreload match Clear - Flag - 1 - 1 - - - - - IER - IER - Interrupt Enable Register - 0x8 - 0x20 - read-write - 0x00000000 - - - ARRMIE - Autoreload match Interrupt - Enable - 1 - 1 - - - - - CFGR - CFGR - Configuration Register - 0xC - 0x20 - read-write - 0x00000000 - - - PRELOAD - Registers update mode - 22 - 1 - - - PRESC - Clock prescaler - 9 - 3 - - - - - CR - CR - Control Register - 0x10 - 0x20 - read-write - 0x00000000 - - - RSTARE - Reset after read enable - 4 - 1 - - - SNGSTRT - LPTIM start in single mode - 1 - 1 - - - ENABLE - LPTIM Enable - 0 - 1 - - - - - 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 - - - - - - - USART1 - Universal synchronous asynchronous receiver - transmitter - USART - 0x40013800 - - 0x0 - 0x400 - registers - - - USART1 - USART1 global Interrupt - 27 - - - - SR - SR - Status register - 0x0 - 0x20 - 0x00C0 - - - ABRRQ - Automate baudrate detection requeset - 12 - 1 - write-only - - - ABRE - Automate baudrate detection error flag - 11 - 1 - read-only - - - ABRF - Automate baudrate detection flag - 10 - 1 - read-only - - - CTS - CTS flag - 9 - 1 - read-write - - - TXE - Transmit data register - empty - 7 - 1 - read-only - - - TC - Transmission complete - 6 - 1 - read-write - - - RXNE - Read data register not - empty - 5 - 1 - read-write - - - IDLE - IDLE line detected - 4 - 1 - read-only - - - ORE - Overrun error - 3 - 1 - read-only - - - NE - Noise error flag - 2 - 1 - read-only - - - FE - Framing error - 1 - 1 - read-only - - - PE - Parity error - 0 - 1 - read-only - - - - - DR - DR - Data register - 0x4 - 0x20 - read-write - 0x00000000 - - - DR - Data value - 0 - 9 - - - - - BRR - BRR - Baud rate register - 0x8 - 0x20 - read-write - 0x0000 - - - DIV_Mantissa - mantissa of USARTDIV - 4 - 12 - - - DIV_Fraction - fraction of USARTDIV - 0 - 4 - - - - - CR1 - CR1 - Control register 1 - 0xC - 0x20 - read-write - 0x0000 - - - UE - USART enable - 13 - 1 - - - M - Word length - 12 - 1 - - - WAKE - Wakeup method - 11 - 1 - - - PCE - Parity control enable - 10 - 1 - - - PS - Parity selection - 9 - 1 - - - PEIE - PE interrupt enable - 8 - 1 - - - TXEIE - TXE 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 - - - RWU - Receiver wakeup - 1 - 1 - - - SBK - Send break - 0 - 1 - - - - - CR2 - CR2 - Control register 2 - 0x10 - 0x20 - read-write - 0x0000 - - - 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 - - - ADD - Address of the USART node - 0 - 4 - - - - - CR3 - CR3 - Control register 3 - 0x14 - 0x20 - read-write - 0x0000 - - - ABRMOD - Auto baudrate mode - 13 - 2 - - - ABREN - Auto baudrate enable - 12 - 1 - - - OVER8 - Oversampling mode - 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 - - - HDSEL - Half-duplex selection - 3 - 1 - - - IRLP - IrDA low-power - 2 - 1 - - - IREN - IrDA mode enable - 1 - 1 - - - EIE - Error interrupt enable - 0 - 1 - - - - - - - USART2 - 0x40004400 - - USART2 - USART2 global Interrupt - 28 - - - - RTC - Real time clock - RTC - 0x40002800 - - 0x0 - 0x400 - registers - - - RTC - RTC Interrupt through EXTI Lines 19 - 2 - - - - CRH - CRH - RTC Control Register High - 0x0 - 0x20 - read-write - 0x00000000 - - - OWIE - Overflow interrupt Enable - 2 - 1 - - - ALRIE - Alarm interrupt Enable - 1 - 1 - - - SECIE - Second interrupt Enable - 0 - 1 - - - - - CRL - CRL - RTC Control Register Low - 0x4 - 0x20 - 0x00000020 - - - RTOFF - RTC operation OFF - 5 - 1 - read-only - - - CNF - Configuration Flag - 4 - 1 - read-write - - - RSF - Registers Synchronized - Flag - 3 - 1 - read-write - - - OWF - Overflow Flag - 2 - 1 - read-write - - - ALRF - Alarm Flag - 1 - 1 - read-write - - - SECF - Second Flag - 0 - 1 - read-write - - - - - PRLH - PRLH - RTC Prescaler Load Register - High - 0x8 - 0x20 - write-only - 0x00000000 - - - PRLH - RTC Prescaler Load Register - High - 0 - 4 - - - - - PRLL - PRLL - RTC Prescaler Load Register - Low - 0xC - 0x20 - write-only - 0x8000 - - - PRLL - RTC Prescaler Divider Register - Low - 0 - 16 - - - - - DIVH - DIVH - RTC Prescaler Divider Register - High - 0x10 - 0x20 - read-only - 0x00000000 - - - DIVH - RTC prescaler divider register - high - 0 - 4 - - - - - DIVL - DIVL - RTC Prescaler Divider Register - Low - 0x14 - 0x20 - read-only - 0x8000 - - - DIVL - RTC prescaler divider register - Low - 0 - 16 - - - - - CNTH - CNTH - RTC Counter Register High - 0x18 - 0x20 - read-write - 0x00000000 - - - CNTH - RTC counter register high - 0 - 16 - - - - - CNTL - CNTL - RTC Counter Register Low - 0x1C - 0x20 - read-write - 0x00000000 - - - CNTL - RTC counter register Low - 0 - 16 - - - - - ALRH - ALRH - RTC Alarm Register High - 0x20 - 0x20 - write-only - 0xFFFF - - - ALRH - RTC alarm register high - 0 - 16 - - - - - ALRL - ALRL - RTC Alarm Register Low - 0x24 - 0x20 - write-only - 0xFFFF - - - ALRL - RTC alarm register low - 0 - 16 - - - - - RTCCR - RTCCR - RTC clock calibration - 0x2C - 0x20 - read-write - 0x0000 - - - ASOS - Alarm or second output selection - 9 - 1 - - - ASOE - Alarm or second output enable - 8 - 1 - - - CCO - Calibration clock output - 7 - 1 - - - CAL - Calibration value - 0 - 7 - - - - - - - IWDG - Independent watchdog - IWDG - 0x40003000 - - 0x0 - 0x400 - registers - - - - KR - KR - Key register (IWDG_KR) - 0x0 - 0x20 - write-only - 0x00000000 - - - KEY - Key value - 0 - 16 - - - - - PR - PR - Prescaler register (IWDG_PR) - 0x4 - 0x20 - read-write - 0x00000000 - - - PR - Prescaler divider - 0 - 3 - - - - - RLR - RLR - Reload register (IWDG_RLR) - 0x8 - 0x20 - read-write - 0x00000FFF - - - RL - Watchdog counter reload - value - 0 - 12 - - - - - SR - SR - Status register (IWDG_SR) - 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 (IWDG_SR) - 0x10 - 0x20 - read-only - 0x00000000 - - - WIN - window counter - 0 - 12 - - - - - - - WWDG - Window watchdog - WWDG - 0x40002C00 - - 0x0 - 0x400 - registers - - - WWDG - Window WatchDog Interrupt - 0 - - - - CR - CR - Control register (WWDG_CR) - 0x0 - 0x20 - read-write - 0x0000007F - - - WDGA - Activation bit - 7 - 1 - - - T - 7-bit counter (MSB to LSB) - 0 - 7 - - - - - CFR - CFR - Configuration register - (WWDG_CFR) - 0x4 - 0x20 - read-write - 0x0000007F - - - EWI - Early Wakeup Interrupt - 9 - 1 - - - WDGTB - Timer Base - 7 - 2 - - - W - 7-bit window value - 0 - 7 - - - - - SR - SR - Status register (WWDG_SR) - 0x8 - 0x20 - read-write - 0x00000000 - - - EWIF - Early Wakeup Interrupt flag - 0 - 1 - - - - - - - TIM1 - Advanced timer - TIM - 0x40012C00 - - 0x0 - 0x400 - registers - - - TIM1_BRK_UP_TRG_COM - TIM1 Break, Update, Trigger and Commutation Interrupt - 13 - - - TIM1_CC - TIM1 Capture Compare Interrupt - 14 - - - - CR1 - CR1 - control register 1 - 0x0 - 0x20 - read-write - 0x0000 - - - 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 - - - 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 - - - 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 bit - 3 - 1 - - - SMS - Slave mode selection - 0 - 3 - - - - - DIER - DIER - DMA/Interrupt enable register - 0xC - 0x20 - read-write - 0x0000 - - - TDE - Trigger DMA request enable - 14 - 1 - - - COMDE - COM DMA request enable - 13 - 1 - - - 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 - - - BIE - Break interrupt enable - 7 - 1 - - - TIE - Trigger interrupt enable - 6 - 1 - - - COMIE - COM interrupt enable - 5 - 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 - - - BIF - Break interrupt flag - 7 - 1 - - - TIF - Trigger interrupt flag - 6 - 1 - - - COMIF - COM interrupt flag - 5 - 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 - - - BG - Break generation - 7 - 1 - - - TG - Trigger generation - 6 - 1 - - - COMG - Capture/Compare control update - generation - 5 - 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 (output - mode) - 0x18 - 0x20 - read-write - 0x00000000 - - - 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 - - - ICPSC - Input capture 1 prescaler - 2 - 2 - - - CC1S - Capture/Compare 1 - selection - 0 - 2 - - - - - CCMR2_Output - CCMR2_Output - capture/compare mode register (output - mode) - 0x1C - 0x20 - read-write - 0x00000000 - - - 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 - - - CC4P - Capture/Compare 3 output - Polarity - 13 - 1 - - - CC4E - Capture/Compare 4 output - enable - 12 - 1 - - - CC3NP - Capture/Compare 3 output - Polarity - 11 - 1 - - - CC3NE - Capture/Compare 3 complementary output - enable - 10 - 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 - - - CC2NE - Capture/Compare 2 complementary output - enable - 6 - 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 - - - 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 - read-write - 0x00000000 - - - CNT - counter value - 0 - 16 - - - - - PSC - PSC - prescaler - 0x28 - 0x20 - read-write - 0x0000 - - - PSC - Prescaler value - 0 - 16 - - - - - ARR - ARR - auto-reload register - 0x2C - 0x20 - read-write - 0x00000000 - - - 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 - - - - - 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 - - - MOE - Main output enable - 15 - 1 - - - AOE - Automatic output enable - 14 - 1 - - - BKP - Break polarity - 13 - 1 - - - BKE - Break enable - 12 - 1 - - - OSSR - Off-state selection for Run - mode - 11 - 1 - - - OSSI - Off-state selection for Idle - mode - 10 - 1 - - - LOCK - Lock configuration - 8 - 2 - - - DTG - Dead-time generator setup - 0 - 8 - - - - - 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 - - - - - - - TIM3 - General purpose timer - TIM - 0x40000400 - - 0x00 - 0x400 - registers - - - TIM3 - TIM3 global Interrupt - 16 - - - - CR1 - CR1 - control register 1 - 0x0 - 0x20 - read-write - 0x0000 - - - 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 - - - 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 - - - TDE - Trigger DMA request enable - 14 - 1 - - - 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 - - - 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 - - - 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 4 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 - read-write - 0x00000000 - - - CNT - counter value - 0 - 16 - - - - - PSC - PSC - prescaler - 0x28 - 0x20 - read-write - 0x0000 - - - PSC - Prescaler value - 0 - 16 - - - - - ARR - ARR - auto-reload register - 0x2C - 0x20 - read-write - 0x00000000 - - - ARR - Auto-reload 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 - - - - - 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 - 32 - - - - - - - TIM14 - General purpose timer - TIM - 0x40002000 - - 0x00 - 0x400 - registers - - - TIM14 - TIM14 global Interrupt - 19 - - - - CR1 - CR1 - TIM14 control register1 - 0x0 - 0x20 - read-write - 0x0000 - - - CKD - Prescaler factor - 8 - 2 - - - ARPE - Auto-reload preload enable - 7 - 1 - - - URS - Update request source - 2 - 1 - - - UDIS - Update disable - 1 - 1 - - - CEN - Counter enable - 0 - 1 - - - - - DIER - DIER - DMA/Interrupt enable register - 0xC - 0x20 - read-write - 0x0000 - - - CC1IE - Compare/ - 1 - 1 - - - UIE - Update interrupt enable - 0 - 1 - - - - - SR - SR - status register - 0x10 - 0x20 - read-write - 0x0000 - - - CC1OF - Compare/capture 1 flag - 9 - 1 - - - CC1IF - Compare/capture 1 interrupt flag - 1 - 1 - - - UIF - Update interrupt flag - 0 - 1 - - - - - EGR - EGR - event generation register - 0x14 - 0x20 - write-only - 0x0000 - - - CC1G - Compare/capture1 event - 1 - 1 - - - UG - Update generation - 0 - 1 - - - - - CCMR1_Output - CCMR1_Output - capture/compare mode register (output - mode) - 0x18 - 0x20 - read-write - 0x00000000 - - - 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 - - - CC1P - Capture/Compare 1 output - Polarity - 1 - 1 - - - CC1E - Capture/Compare 1 output - enable - 0 - 1 - - - - - CNT - CNT - counter - 0x24 - 0x20 - read-write - 0x00000000 - - - CNT - counter value - 0 - 16 - - - - - PSC - PSC - prescaler - 0x28 - 0x20 - read-write - 0x0000 - - - PSC - Prescaler value - 0 - 16 - - - - - ARR - ARR - auto-reload register - 0x2C - 0x20 - read-write - 0x00000000 - - - ARR - Auto-reload value - 0 - 16 - - - - - CCR1 - CCR1 - capture/compare register 1 - 0x34 - 0x20 - read-write - 0x00000000 - - - CCR1 - Capture/Compare 1 value - 0 - 16 - - - - - OR - OR - Option register - 0x50 - 0x20 - read-write - 0x00000000 - - - TI1_RMP - TIM14 channel1 input remap - 0 - 2 - - - - - - - TIM16 - General purpose timer - TIM - 0x40014400 - - 0x00 - 0x400 - registers - - - TIM16 - TIM16 global Interrupt - 21 - - - - CR1 - CR1 - TIM16 control register1 - 0x0 - 0x20 - read-write - 0x0000 - - - CKD - Prescaler factor - 8 - 2 - - - ARPE - Auto-reload preload enable - 7 - 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 - - - OIS1N - Output Idle state 1 - 9 - 1 - - - OIS1 - Output Idle state 1 - 8 - 1 - - - CCDS - Capture/compare DMA - selection - 3 - 1 - - - CCPC - Capture/compare preloaded - control - 0 - 1 - - - - - DIER - DIER - DMA/Interrupt enable register - 0xC - 0x20 - read-write - 0x0000 - - - CC1DE - Compare/capture DMA requeset enable - 9 - 1 - - - UDE - Update DMA request enable - 8 - 1 - - - BIE - Break interrupt enable - 7 - 1 - - - COMIE - Com interrupt enable - 5 - 1 - - - CC1IE - Capture/Compare 1 interrupt enable - 1 - 1 - - - UIE - Update interrupt enable - 0 - 1 - - - - - SR - SR - status register - 0x10 - 0x20 - read-write - 0x0000 - - - CC1OF - Update interrupt 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 event generation - 7 - 1 - - - COMG - COM evnet 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 - 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 - read-write - 0x00000000 - - - CNT - counter value - 0 - 16 - - - - - PSC - PSC - prescaler - 0x28 - 0x20 - read-write - 0x0000 - - - PSC - Prescaler value - 0 - 16 - - - - - ARR - ARR - auto-reload register - 0x2C - 0x20 - read-write - 0x00000000 - - - 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 - - - MOE - Main output enable - 15 - 1 - - - AOE - Automatic output enable - 14 - 1 - - - BKP - Break polarity - 13 - 1 - - - BKE - Break enable - 12 - 1 - - - OSSR - Off-state selection for Run - mode - 11 - 1 - - - OSSI - Off-state selection for Idle - mode - 10 - 1 - - - LOCK - Lock configuration - 8 - 2 - - - DTG - Dead-time generator setup - 0 - 8 - - - - - 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 - 32 - - - - - - - TIM17 - 0x40014800 - - TIM17 - TIM17 global Interrupt - 22 - - - - SYSCFG - System configuration controller - SYSCFG - 0x40010000 - - 0x0 - 0x30 - registers - - - - CFGR1 - CFGR1 - SYSCFG configuration register - 1 - 0x0 - 0x20 - read-write - 0x00000000 - - - I2C_PF1_ANF - Analog filter enable control driving capability - activation bits PF1 - 30 - 1 - - - I2C_PF0_ANF - Analog filter enable control driving capability - activation bits PF0 - 29 - 1 - - - I2C_PB8_ANF - Analog filter enable control driving capability - activation bits PB8 - 28 - 1 - - - I2C_PB7_ANF - Analog filter enable control driving capability - activation bits PB7 - 27 - 1 - - I2C_PB6_ANF - Analog filter enable control driving capability - activation bits PB6 - 26 - 1 - - - I2C_PA12_ANF - Analog filter enable control driving capability - activation bits PA12 - 25 - 1 - - - I2C_PA11_ANF - Analog filter enable control driving capability - activation bits PA11 - 24 - 1 - - - I2C_PA10_ANF - Analog filter enable control driving capability - activation bits PA10 - 23 - 1 - - - I2C_PA9_ANF - Analog filter enable control driving capability - activation bits PA9 - 22 - 1 - - - I2C_PA8_ANF - Analog filter enable control driving capability - activation bits PA8 - 21 - 1 - - - I2C_PA7_ANF - Analog filter enable control driving capability - activation bits PA7 - 20 - 1 - - - I2C_PA3_ANF - Analog filter enable control driving capability - activation bits PA3 - 19 - 1 - - - I2C_PA2_ANF - Analog filter enable control driving capability - activation bits PA2 - 18 - 1 - - - MEM_MODE - Memory mapping selection - bits - 0 - 2 - - - - - CFGR2 - CFGR2 - SYSCFG configuration register - 2 - 0x18 - 0x20 - read-write - 0x00000000 - - - ETR_SRC_TIM1 - TIM1 ETR source selection - 9 - 2 - - - COMP2_BRK_TIM17 - COMP2 is enable to input of TIM17 break - 8 - 1 - - - COMP1_BRK_TIM17 - COMP1 is enable to input of TIM17 break - 7 - 1 - - - COMP2_BRK_TIM16 - COMP2 is enable to input of TIM16 break - 6 - 1 - - - COMP1_BRK_TIM16 - COMP1 is enable to input of TIM16 break - 5 - 1 - - - COMP2_BRK_TIM1 - COMP2 is enable to input of TIM1 break - 4 - 1 - - - COMP1_BRK_TIM1 - COMP1 is enable to input of TIM1 break - 3 - 1 - - - PVD_LOCK - PVD lock enable bit - 2 - 1 - - - LOCKUP_LOCK - Cortex-M0+ LOCKUP bit enable - bit - 0 - 1 - - - - - CFGR3 - CFGR3 - SYSCFG configuration register - 3 - 0x1C - 0x20 - read-write - 0x00000000 - - - DMA3_MAP - DMA channel3 requeset selection - 16 - 5 - - - DMA2_MAP - DMA channel2 requeset selection - 8 - 5 - - - DMA1_MAP - DMA channel1 requeset selection - 0 - 5 - - - - - - - DMA - Direct memory access - DMA - 0x40020000 - - 0x0 - 0x400 - registers - - - DMA_Channel1 - DMA Channel 1 Interrupt - 9 - - - DMA_Channel2_3 - DMA Channel 2 and Channel 3 Interrupt - 10 - - - - ISR - ISR - DMA interrupt status register - (DMA_ISR) - 0x0 - 0x20 - read-only - 0x00000000 - - - TEIF3 - Channel 3 Transfer Error - flag - 11 - 1 - - - HTIF3 - Channel 3 Half Transfer Complete - flag - 10 - 1 - - - TCIF3 - Channel 3 Transfer Complete - flag - 9 - 1 - - - GIF3 - Channel 3 Global interrupt - flag - 8 - 1 - - - TEIF2 - Channel 2 Transfer Error - flag - 7 - 1 - - - HTIF2 - Channel 2 Half Transfer Complete - flag - 6 - 1 - - - TCIF2 - Channel 2 Transfer Complete - flag - 5 - 1 - - - GIF2 - Channel 2 Global interrupt - flag - 4 - 1 - - - TEIF1 - Channel 1 Transfer Error - flag - 3 - 1 - - - HTIF1 - Channel 1 Half Transfer Complete - flag - 2 - 1 - - - TCIF1 - Channel 1 Transfer Complete - flag - 1 - 1 - - - GIF1 - Channel 1 Global interrupt - flag - 0 - 1 - - - - - IFCR - IFCR - DMA interrupt flag clear register - (DMA_IFCR) - 0x4 - 0x20 - write-only - 0x00000000 - - - CTEIF3 - Channel 3 Transfer Error - clear - 11 - 1 - - - CHTIF3 - Channel 3 Half Transfer - clear - 10 - 1 - - - CTCIF3 - Channel 3 Transfer Complete - clear - 9 - 1 - - - CGIF3 - Channel 3 Global interrupt - clear - 8 - 1 - - - CTEIF2 - Channel 2 Transfer Error - clear - 7 - 1 - - - CHTIF2 - Channel 2 Half Transfer - clear - 6 - 1 - - - CTCIF2 - Channel 2 Transfer Complete - clear - 5 - 1 - - - CGIF2 - Channel 2 Global interrupt - clear - 4 - 1 - - - CTEIF1 - Channel 1 Transfer Error - clear - 3 - 1 - - - CHTIF1 - Channel 1 Half Transfer - clear - 2 - 1 - - - CTCIF1 - Channel 1 Transfer Complete - clear - 1 - 1 - - - CGIF1 - Channel 1 Global interrupt - clear - 0 - 1 - - - - - CCR1 - CCR1 - DMA channel configuration register - (DMA_CCR) - 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 - DMA channel 1 number of data - register - 0xC - 0x20 - read-write - 0x00000000 - - - NDT - Number of data to transfer - 0 - 16 - - - - - CPAR1 - CPAR1 - DMA channel 1 peripheral address - register - 0x10 - 0x20 - read-write - 0x00000000 - - - PA - Peripheral address - 0 - 32 - - - - - CMAR1 - CMAR1 - DMA channel 1 memory address - register - 0x14 - 0x20 - read-write - 0x00000000 - - - MA - Memory address - 0 - 32 - - - - - CCR2 - CCR2 - DMA channel configuration register - (DMA_CCR) - 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 - DMA channel 2 number of data - register - 0x20 - 0x20 - read-write - 0x00000000 - - - NDT - Number of data to transfer - 0 - 16 - - - - - CPAR2 - CPAR2 - DMA channel 2 peripheral address - register - 0x24 - 0x20 - read-write - 0x00000000 - - - PA - Peripheral address - 0 - 32 - - - - - CMAR2 - CMAR2 - DMA channel 2 memory address - register - 0x28 - 0x20 - read-write - 0x00000000 - - - MA - Memory address - 0 - 32 - - - - - CCR3 - CCR3 - DMA channel configuration register - (DMA_CCR) - 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 - DMA channel 3 number of data - register - 0x34 - 0x20 - read-write - 0x00000000 - - - NDT - Number of data to transfer - 0 - 16 - - - - - CPAR3 - CPAR3 - DMA channel 3 peripheral address - register - 0x38 - 0x20 - read-write - 0x00000000 - - - PA - Peripheral address - 0 - 32 - - - - - CMAR3 - CMAR3 - DMA channel 3 memory address - register - 0x3C - 0x20 - read-write - 0x00000000 - - - MA - Memory address - 0 - 32 - - - - - - - FLASH - Flash - Flash - 0x40022000 - - 0x0 - 0x400 - registers - - - FLASH - FLASH global Interrupt - 3 - - - - ACR - ACR - Access control register - 0x0 - 0x20 - read-write - 0x00000600 - - - LATENCY - Latency - 0 - 1 - - - - - KEYR - KEYR - Flash key register - 0x8 - 0x20 - write-only - 0x00000000 - - - KEY - Flash key - 0 - 32 - - - - - OPTKEYR - OPTKEYR - Option byte key register - 0xC - 0x20 - write-only - 0x00000000 - - - OPTKEY - Option byte key - 0 - 32 - - - - - SR - SR - Status register - 0x10 - 0x20 - read-write - 0x00000000 - - - BSY - Busy - 16 - 1 - - - OPTVERR - Option and Engineering bits loading - validity error - 15 - 1 - - - WRPERR - Write protected error - 4 - 1 - - - EOP - End of operation - 0 - 1 - - - - - CR - CR - Flash control register - 0x14 - 0x20 - read-write - 0xC0000000 - - - LOCK - FLASH_CR Lock - 31 - 1 - - - OPTLOCK - Options Lock - 30 - 1 - - - OBL_LAUNCH - Force the option byte - loading - 27 - 1 - - - ERRIE - Error interrupt enable - 25 - 1 - - - EOPIE - End of operation interrupt - enable - 24 - 1 - - - PGTSTRT - Flash main memory program start - 19 - 1 - - - OPTSTRT - Option byte program start - 17 - 1 - - - SER - Sector erase - 11 - 1 - - - MER - Mass erase - 2 - 1 - - - PER - Page erase - 1 - 1 - - - PG - Programming - 0 - 1 - - - - - OPTR - OPTR - Flash option register - 0x20 - 0x20 - read-write - 0x4F55B0AA - - - nBOOT1 - Boot configuration - 15 - 1 - - - NRST_MODE - NRST_MODE - 14 - 1 - - - WWDG_SW - Window watchdog selection - 13 - 1 - - - IDWG_SW - Independent watchdog - selection - 12 - 1 - - - BORF_LEV - These bits contain the VDD supply level - threshold that activates the reset - 9 - 3 - - - BOREN - BOR reset Level - 8 - 1 - - - RDP - Read Protection - 0 - 8 - - - - - SDKR - SDKR - Flash SDK address - register - 0x24 - 0x20 - read-write - 0xFFE0001F - - - SDK_END - SDK area end address - 8 - 5 - - - SDK_STRT - SDK area start address - 0 - 5 - - - - - WRPR - WRPR - Flash WRP address - register - 0x2C - 0x20 - read-write - 0x0000FFFF - - - WRP - WRP address - 0 - 16 - - - - - STCR - STCR - Flash sleep time config - register - 0x90 - 0x20 - read-write - 0x00006400 - - - SLEEP_TIME - FLash sleep time configuration(counter based on HSI_10M) - 8 - 8 - - - SLEEP_EN - FLash sleep enable - 0 - 1 - - - - - TS0 - TS0 - Flash TS0 - register - 0x100 - 0x20 - read-write - 0x000000B4 - - - TS0 - FLash TS0 register - 0 - 8 - - - - - TS1 - TS1 - Flash TS1 - register - 0x104 - 0x20 - read-write - 0x000001B0 - - - TS1 - FLash TS1 register - 0 - 9 - - - - - TS2P - TS2P - Flash TS2P - register - 0x108 - 0x20 - read-write - 0x000000B4 - - - TS2P - FLash TS2P register - 0 - 8 - - - - - TPS3 - TPS3 - Flash TPS3 - register - 0x10C - 0x20 - read-write - 0x000006C0 - - - TPS3 - FLash TPS3 register - 0 - 11 - - - - - TS3 - TS3 - Flash TS3 - register - 0x110 - 0x20 - read-write - 0x000000B4 - - - TS3 - FLash TS3 register - 0 - 8 - - - - - PERTPE - PERTPE - Flash PERTPE - register - 0x114 - 0x20 - read-write - 0x0000EA60 - - - PERTPE - FLash PERTPE register - 0 - 17 - - - - - SMERTPE - SMERTPE - Flash SMERTPE - register - 0x118 - 0x20 - read-write - 0x0000FD20 - - - SMERTPE - FLash SMERTPE register - 0 - 17 - - - - - PRGTPE - PRGTPE - Flash PRGTPE - register - 0x11C - 0x20 - read-write - 0x00008CA0 - - - PRGTPE - FLash PRGTPE register - 0 - 16 - - - - - PRETPE - PRETPE - Flash PRETPE - register - 0x120 - 0x20 - read-write - 0x000012C0 - - - PRETPE - FLash PRETPE register - 0 - 13 - - - - - - - CRC - CRC calculation unit - CRC - 0x40023000 - - 0x0 - 0x400 - registers - - - - DR - DR - Data register - 0x0 - 0x20 - read-write - 0xFFFFFFFF - - - DR - Data Register - 0 - 32 - - - - - IDR - IDR - Independent Data register - 0x4 - 0x20 - read-write - 0x00000000 - - - IDR - Independent Data register - 0 - 8 - - - - - CR - CR - Control register - 0x8 - 0x20 - write-only - 0x00000000 - - - RESET - Reset bit - 0 - 1 - - - - - - - SPI1 - Serial peripheral interface - SPI - 0x40013000 - - 0x0 - 0x400 - registers - - - SPI1 - SPI1 global Interrupt - 25 - - - - CR1 - CR1 - control register 1 - 0x0 - 0x20 - read-write - 0x0000 - - - BIDIMODE - Bidirectional data mode - enable - 15 - 1 - - - BIDIOE - Output enable in bidirectional - mode - 14 - 1 - - - RXONLY - Receive only - 10 - 1 - - - SSM - Software slave management - 9 - 1 - - - SSI - Internal slave selection - 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 - 0x0000 - - - SLVFM - Slave fast mode enable - 15 - 1 - - - LDMA_TX - Last DAM Transmit(TX) - 14 - 1 - - - LDMA_RX - Last DAM Transmit(RX) - 13 - 1 - - - FRXTH - FIFO reception threshold - 12 - 1 - - - DS - Data length - - 11 - 1 - - - TXEIE - Tx buffer empty interrupt - enable - 7 - 1 - - - RXNEIE - RX buffer not empty interrupt - enable - 6 - 1 - - - ERRIE - Error interrupt enable - 5 - 1 - - - SSOE - SS output enable - 2 - 1 - - - TXDMAEN - Tx buffer DMA enable - 1 - 1 - - - RXDMAEN - Rx buffer DMA enable - 0 - 1 - - - - - SR - SR - status register - 0x8 - 0x20 - 0x0002 - - - FTLVL - FIFO transmission level - 11 - 2 - read-only - - - FRLVL - FIFO reception level - 9 - 2 - read-only - - - BSY - Busy flag - 7 - 1 - read-only - - - OVR - Overrun flag - 6 - 1 - read-only - - - MODF - Mode fault - 5 - 1 - read-only - - - TXE - Transmit buffer empty - 1 - 1 - read-only - - - RXNE - Receive buffer not empty - 0 - 1 - read-only - - - - - DR - DR - data register - 0xC - 0x20 - read-write - 0x0000 - - - DR - Data register - 0 - 16 - - - - - - - SPI2 - 0x40003800 - - SPI2 - SPI2 global Interrupt - 26 - - - - I2C - Inter integrated circuit - I2C - 0x40005400 - - 0x0 - 0x400 - registers - - - I2C1 - I2C1 global Interrupt - 23 - - - - CR1 - CR1 - Control register 1 - 0x0 - 0x20 - read-write - 0x0000 - - - SWRST - Software reset - 15 - 1 - - - PEC - Packet error checking - 12 - 1 - - - POS - Acknowledge/PEC Position (for data - reception) - 11 - 1 - - - ACK - Acknowledge enable - 10 - 1 - - - STOP - Stop generation - 9 - 1 - - - START - Start generation - 8 - 1 - - - NOSTRETCH - Clock stretching disable (Slave - mode) - 7 - 1 - - - ENGC - General call enable - 6 - 1 - - - ENPEC - PEC enable - 5 - 1 - - - PE - Peripheral enable - 0 - 1 - - - - - CR2 - CR2 - Control register 2 - 0x4 - 0x20 - read-write - 0x0000 - - - LAST - DMA last transfer - 12 - 1 - - - DMAEN - DMA requests enable - 11 - 1 - - - ITBUFEN - Buffer interrupt enable - 10 - 1 - - - ITEVTEN - Event interrupt enable - 9 - 1 - - - ITERREN - Error interrupt enable - 8 - 1 - - - FREQ - Peripheral clock frequency - 0 - 6 - - - - - OAR1 - OAR1 - Own address register 1 - 0x8 - 0x20 - read-write - 0x0000 - - - ADD - Interface address - 1 - 7 - - - - - DR - DR - Data register - 0x10 - 0x20 - read-write - 0x0000 - - - DR - 8-bit data register - 0 - 8 - - - - - SR1 - SR1 - Status register 1 - 0x14 - 0x20 - 0x0000 - - - PECERR - PEC Error in reception - 12 - 1 - read-write - - - OVR - Overrun/Underrun - 11 - 1 - read-write - - - AF - Acknowledge failure - 10 - 1 - read-write - - - ARLO - Arbitration lost (master - mode) - 9 - 1 - read-write - - - BERR - Bus error - 8 - 1 - read-write - - - TxE - Data register empty - (transmitters) - 7 - 1 - read-only - - - RxNE - Data register not empty - (receivers) - 6 - 1 - read-only - - - STOPF - Stop detection (slave - mode) - 4 - 1 - read-only - - - BTF - Byte transfer finished - 2 - 1 - read-only - - - ADDR - Address sent (master mode)/matched - (slave mode) - 1 - 1 - read-only - - - SB - Start bit (Master mode) - 0 - 1 - read-only - - - - - SR2 - SR2 - Status register 2 - 0x18 - 0x20 - read-only - 0x0000 - - - PEC - acket error checking - register - 8 - 8 - - - DUALF - Dual flag (Slave mode) - 7 - 1 - - - GENCALL - General call address (Slave - mode) - 4 - 1 - - - TRA - Transmitter/receiver - 2 - 1 - - - BUSY - Bus busy - 1 - 1 - - - MSL - Master/slave - 0 - 1 - - - - - CCR - CCR - Clock control register - 0x1C - 0x20 - read-write - 0x0000 - - - F_S - I2C master mode selection - 15 - 1 - - - DUTY - Fast mode duty cycle - 14 - 1 - - - CCR - Clock control register in Fast/Standard - mode (Master mode) - 0 - 12 - - - - - TRISE - TRISE - TRISE register - 0x20 - 0x20 - read-write - 0x0002 - - - TRISE - Maximum rise time in Fast/Standard mode - (Master mode) - 0 - 6 - - - - - - - LED - LED CONTROLLER - LED - 0x40002400 - - 0x0 - 0x400 - registers - - - LED - LED global Interrupt - 30 - - - - CR - LED_CR - Control register - 0x0 - 0x20 - read-write - 0x0000 - - - EHS - Light control - 12 - 2 - - - IE - LED interrupt enable - 3 - 1 - - - LED_COM_SEL - LED COM Selection - 1 - 2 - - - LEDON - LED enable - 0 - 1 - - - - - PR - LED_PR - Prescaler register - 0x4 - 0x20 - read-write - 0x0000 - - - PR - Prescaler control - 0 - 8 - - - - - TR - LED_TR - Time register - 0x8 - 0x20 - read-write - 0x0000 - - - T2 - Switch time - 8 - 8 - - - T1 - Light on time - 0 - 8 - - - - - DR0 - LED_DR0 - Data0 register - 0x0C - 0x20 - read-write - 0x0000 - - - DATA0_DP - 8-bit data register - 7 - 1 - - - DATA0_G - 8-bit data register - 6 - 1 - - - DATA0_F - 8-bit data register - 5 - 1 - - - DATA0_E - 8-bit data register - 4 - 1 - - - DATA0_D - 8-bit data register - 3 - 1 - - - DATA0_C - 8-bit data register - 2 - 1 - - - DATA0_B - 8-bit data register - 1 - 1 - - - DATA0_A - 8-bit data register - 0 - 1 - - - - - DR1 - LED_DR1 - Data1 register - 0x10 - 0x20 - read-write - 0x0000 - - - DATA1_DP - 8-bit data register - 7 - 1 - - - DATA1_G - 8-bit data register - 6 - 1 - - - DATA1_F - 8-bit data register - 5 - 1 - - - DATA1_E - 8-bit data register - 4 - 1 - - - DATA1_D - 8-bit data register - 3 - 1 - - - DATA1_C - 8-bit data register - 2 - 1 - - - DATA1_B - 8-bit data register - 1 - 1 - - - DATA1_A - 8-bit data register - 0 - 1 - - - - - DR2 - LED_DR2 - Data2 register - 0x14 - 0x20 - read-write - 0x0000 - - - DATA2_DP - 8-bit data register - 7 - 1 - - - DATA2_G - 8-bit data register - 6 - 1 - - - DATA2_F - 8-bit data register - 5 - 1 - - - DATA2_E - 8-bit data register - 4 - 1 - - - DATA2_D - 8-bit data register - 3 - 1 - - - DATA2_C - 8-bit data register - 2 - 1 - - - DATA2_B - 8-bit data register - 1 - 1 - - - DATA2_A - 8-bit data register - 0 - 1 - - - - - DR3 - LED_DR3 - Data3 register - 0x18 - 0x20 - read-write - 0x0000 - - - DATA3_DP - 8-bit data register - 7 - 1 - - - DATA3_G - 8-bit data register - 6 - 1 - - - DATA3_F - 8-bit data register - 5 - 1 - - - DATA3_E - 8-bit data register - 4 - 1 - - - DATA3_D - 8-bit data register - 3 - 1 - - - DATA3_C - 8-bit data register - 2 - 1 - - - DATA3_B - 8-bit data register - 1 - 1 - - - DATA3_A - 8-bit data register - 0 - 1 - - - - - IR - LED_IR - Interrupt register 1 - 0x1C - 0x20 - 0x0000 - - - FLAG - interrupt flag - 0 - 1 - read-write - - - - - - - DBGMCU - Debug support - DBGMCU - 0x40015800 - - 0x0 - 0x400 - registers - - - - IDCODE - IDCODE - MCU Device ID Code Register - 0x0 - 0x20 - read-only - 0x0 - - - - - - CR - CR - Debug MCU Configuration - Register - 0x4 - 0x20 - read-write - 0x0 - - - DBG_STOP - Debug Stop Mode - 1 - 1 - - - - - APB_FZ1 - APB_FZ1 - APB Freeze Register1 - 0x8 - 0x20 - read-write - 0x0 - - - DBG_TIMER3_STOP - Debug Timer 3 stopped when Core is - halted - 1 - 1 - - - DBG_RTC_STOP - Debug RTC stopped when Core is - halted - 10 - 1 - - - DBG_WWDG_STOP - Debug Window Wachdog stopped when Core - is halted - 11 - 1 - - - DBG_IWDG_STOP - Debug Independent Wachdog stopped when - Core is halted - 12 - 1 - - - DBG_LPTIM_STOP - Debug LPTIM stopped when Core is - halted - 31 - 1 - - - - - APB_FZ2 - APB_FZ2 - APB Freeze Register2 - 0xC - 0x20 - read-write - 0x0 - - - DBG_TIMER1_STOP - Debug Timer 1 stopped when Core is - halted - 11 - 1 - - - DBG_TIMER14_STOP - Debug Timer 14 stopped when Core is - halted - 15 - 1 - - - DBG_TIMER16_STOP - Debug Timer 16 stopped when Core is - halted - 17 - 1 - - - DBG_TIMER17_STOP - Debug Timer 17 stopped when Core is - halted - 18 - 1 - - - - - - - + + + + Puya + Puya + PY32F0xx_DFP + + PY32F0 + 1.0.0 + Arm 32-bit Cortex-M0+ Microcontroller based device, CPU clock up to 48 MHz. + + + + CM0+ + r0p1 + little + false + false + 4 + false + + + + 8 + 32 + 32 + read-write + 0x00000000 + 0xFFFFFFFF + + + ADC + Analog to Digital Converter + ADC + 0x40012400 + + 0x0 + 0x400 + registers + + + ADC_COMP + ADC and COMP Interrupt through EXTI Lines 17 and 18 + 12 + + + + ISR + ISR + ADC interrupt and status register + 0x0 + 0x20 + read-write + 0x00000000 + + + AWD + ADC analog watchdog flag + 7 + 1 + + + OVR + ADC group regular overrun + flag + 4 + 1 + + + EOSEQ + 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 + + + + + IER + IER + ADC interrupt enable register + 0x4 + 0x20 + read-write + 0x00000000 + + + AWDIE + ADC analog watchdog + interrupt + 7 + 1 + + + OVRIE + ADC group regular overrun + interrupt + 4 + 1 + + + EOSEQIE + 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 + + + + + CR + CR + ADC control register + 0x8 + 0x20 + read-write + 0x00000000 + + + ADCAL + ADC group regular conversion + calibration + 31 + 1 + + + ADSTP + ADC group regular conversion + stop + 4 + 1 + + + ADSTART + ADC group regular conversion + start + 2 + 1 + + + ADEN + ADC enable + 0 + 1 + + + + + CFGR1 + CFGR1 + ADC configuration register 1 + 0xC + 0x20 + read-write + 0x00000000 + + + AWDCH + ADC analog watchdog monitored channel + selection + 26 + 4 + + + AWDEN + ADC analog watchdog enable on scope + ADC group regular + 23 + 1 + + + AWDSGL + ADC analog watchdog monitoring a + single channel or all channels + 22 + 1 + + + DISCEN + ADC group regular sequencer + discontinuous mode + 16 + 1 + + + WAIT + Wait conversion mode + 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 + 3 + + + ALIGN + ADC data alignement + 5 + 1 + + + RESSEL + ADC data resolution + 3 + 2 + + + SCANDIR + Scan sequence direction + 2 + 1 + + + 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 + + + CKMODE + ADC clock mode + 28 + 4 + + + + + SMPR + SMPR + ADC sampling time register + 0x14 + 0x20 + read-write + 0x00000000 + + + SMP + Sampling time selection + 0 + 3 + + + + + TR + TR + ADC analog watchdog 1 threshold register + 0x20 + 0x20 + read-write + 0x0FFF0000 + + + HT + ADC analog watchdog threshold + high + 16 + 12 + + + LT + ADC analog watchdog threshold + low + 0 + 12 + + + + + CHSELR + CHSELR + ADC group regular sequencer register + 0x28 + 0x20 + read-write + 0x0FFF0000 + + + CHSEL12 + Channel-12 selection + 12 + 1 + + + CHSEL11 + Channel-11 selection + 11 + 1 + + + CHSEL9 + Channel-9 selection + 9 + 1 + + + CHSEL8 + Channel-8 selection + 8 + 1 + + + CHSEL7 + Channel-7 selection + 7 + 1 + + + CHSEL6 + Channel-6 selection + 6 + 1 + + + CHSEL5 + Channel-5 selection + 5 + 1 + + + CHSEL4 + Channel-4 selection + 4 + 1 + + + CHSEL3 + Channel-3 selection + 3 + 1 + + + CHSEL2 + Channel-2 selection + 2 + 1 + + + CHSEL1 + Channel-1 selection + 1 + 1 + + + CHSEL0 + Channel-0 selection + 0 + 1 + + + + + DR + DR + ADC group regular data register + 0x40 + 0x20 + read-only + 0x00000000 + + + DATA + ADC group regular conversion + data + 0 + 16 + + + + + CCSR + CCSR + ADC calibration configuration and status register + 0x44 + 0x20 + read-write + 0x00000000 + + + CALON + Calibration flag + 31 + 1 + read-only + + + CALFAIL + Calibration fail flag + 30 + 1 + + + CALSET + Calibration factor selection + 15 + 1 + + + CALSMP + Calibration sample time selection + 12 + 2 + + + CALSEL + Calibration contents selection + 11 + 1 + + + + + CALRR1 + CALRR1 + ADC calibration result register 1 + 0x48 + 0x20 + read-only + 0x00000000 + + + CALBOUT + offset result + 16 + 7 + + + CALC5OUT + C5 result + 8 + 8 + + + CALC4OUT + C4 result + 0 + 8 + + + + + CALRR2 + CALRR2 + ADC calibration result register 2 + 0x4C + 0x20 + read-only + 0x00000000 + + + CALC3OUT + C3 result + 24 + 8 + + + CALC2OUT + C2 result + 16 + 8 + + + CALC1OUT + C1 result + 8 + 8 + + + CALC0OUT + C0 result + 0 + 8 + + + + + CALFIR1 + CALFIR1 + ADC calibration factor input register 1 + 0x50 + 0x20 + read-write + 0x00000000 + + + CALBIO + Calibration offset factor input + 16 + 7 + + + CALC5IO + Calibration C5 factor input + 8 + 8 + + + CALC4IO + Calibration C4 factor input + 0 + 8 + + + + + CALFIR2 + CALFIR2 + ADC calibration factor input register 2 + 0x54 + 0x20 + read-write + 0x00000000 + + + CALC3IO + Calibration C3 factor input + 24 + 8 + + + CALC2IO + Calibration C2 factor input + 16 + 8 + + + CALC1IO + Calibration C1 factor input + 8 + 8 + + + CALC0IO + Calibration C0 factor input + 0 + 8 + + + + + CCR + CCR + ADC common configuration register + 0x308 + 0x20 + read-write + 0x00000000 + + + TSEN + Temperature sensor enable + 23 + 1 + + + VREFEN + VREFINT enable + 22 + 1 + + + + + + + COMP1 + Comparator + COMP + 0x40010200 + + 0x0 + 0x10 + registers + + + + CSR + CSR + COMP control and status register + 0x0 + 0x20 + read-write + 0x00000000 + + + LOCK + CSR register lock + 31 + 1 + + + COMP_OUT + Comparator output status + 30 + 1 + + + PWRMODE + Comparator power mode + selector + 18 + 2 + + + HYST + Comparator hysteresis enable + selector + 16 + 1 + + + POLARITY + Comparator polarity + selector + 15 + 1 + + + WINMODE + Comparator non-inverting input + selector for window mode + 11 + 1 + + + INPSEL + Comparator signal selector for + non-inverting input + 8 + 2 + + + INMSEL + Comparator signal selector for + inverting input INM + 4 + 4 + + + SCALER_EN + SCALER enable bit + 1 + 1 + + + COMP_EN + COMP enable bit + 0 + 1 + + + + + FR + FR + Comparator Filter + register + 0x4 + 0x20 + read-write + 0x00000000 + + + FLTCNT + Comparator filter and counter + 16 + 16 + + + FLTEN + Filter enable bit + 0 + 1 + + + + + + + COMP2 + Comparator + COMP + 0x40010210 + + 0x0 + 0x10 + registers + + + + CSR + CSR + COMP control and status register + 0x0 + 0x20 + read-write + 0x00000000 + + + LOCK + CSR register lock + 31 + 1 + + + COMP_OUT + Comparator output status + 30 + 1 + + + PWRMODE + Comparator power mode + selector + 18 + 2 + + + POLARITY + Comparator polarity + selector + 15 + 1 + + + WINMODE + Comparator non-inverting input + selector for window mode + 11 + 1 + + + INPSEL + Comparator signal selector for + non-inverting input + 8 + 2 + + + INMSEL + Comparator signal selector for + inverting input INM + 4 + 4 + + + COMP_EN + COMP enable bit + 0 + 1 + + + + + FR + FR + Comparator Filter + register + 0x4 + 0x20 + read-write + 0x00000000 + + + FLTCNT + Comparator filter and counter + 16 + 16 + + + FLTEN + Filter enable bit + 0 + 1 + + + + + + + RCC + Reset and clock control + RCC + 0x40021000 + + 0x0 + 0x400 + registers + + + RCC + RCC global Interrupt + 4 + + + + CR + CR + Clock control register + 0x0 + 0x20 + read-write + 0x00000100 + + + PLLRDY + PLL clock ready flag + 25 + 1 + + + PLLON + PLL enable + 24 + 1 + + + CSSON + Clock security system + enable + 19 + 1 + + + HSEBYP + HSE crystal oscillator + bypass + 18 + 1 + + + HSERDY + HSE clock ready flag + 17 + 1 + + + HSEON + HSE clock enable + 16 + 1 + + + HSIDIV + HSI16 clock division + factor + 11 + 3 + + + HSIRDY + HSI16 clock ready flag + 10 + 1 + + + HSIKERON + HSI16 always enable for peripheral + kernels + 9 + 1 + + + HSION + HSI16 clock enable + 8 + 1 + + + + + ICSCR + ICSCR + Internal clock sources calibration + register + 0x4 + 0x20 + 0x10000000 + + + LSI_STARTUP + LSI startup time + 26 + 2 + read-write + + + LSI_TRIM + LSI clock trimming + 16 + 9 + read-write + + + HSI_FS + HSI frequency selection + 13 + 3 + read-write + + + HSI_TRIM + HSI clock trimming + 0 + 13 + read-write + + + + + CFGR + CFGR + Clock configuration register + 0x8 + 0x20 + 0x00000000 + + + MCOPRE + Microcontroller clock output + prescaler + 28 + 3 + read-write + + + MCOSEL + Microcontroller clock + output + 24 + 3 + read-write + + + PPRE + APB prescaler + 12 + 3 + read-write + + + HPRE + AHB prescaler + 8 + 4 + read-write + + + SWS + System clock switch status + 3 + 3 + read-only + + + SW + System clock switch + 0 + 3 + read-write + + + + + PLLCFGR + PLLCFGR + PLL configuration register + 0xC + 0x20 + 0x00000000 + + + PLLSRC + PLL clock source selection + 0 + 1 + read-write + + + + + ECSCR + ECSCR + External clock source control register + 0x10 + 0x20 + 0x00000000 + + + LSE_DRIVER + LSE clock driver selection + 16 + 2 + read-write + + + HSE_FREQ + HSE clock freqency selection + 2 + 2 + read-write + + + + + CIER + CIER + Clock interrupt enable + register + 0x18 + 0x20 + read-write + 0x00000000 + + + PLLRDYIE + PLL ready interrupt enable + 5 + 1 + + + HSERDYIE + HSE ready interrupt enable + 4 + 1 + + + HSIRDYIE + HSI ready interrupt enable + 3 + 1 + + + LSERDYIE + LSE ready interrupt enable + 1 + 1 + + + LSIRDYIE + LSI ready interrupt enable + 0 + 1 + + + + + CIFR + CIFR + Clock interrupt flag register + 0x1C + 0x20 + read-only + 0x00000000 + + + LSECSSF + LSE clock secure system interrupt flag + 9 + 1 + + + CSSF + HSE clock secure system interrupt flag + 8 + 1 + + + PLLRDYF + PLL ready interrupt flag + 5 + 1 + + + HSERDYF + HSE ready interrupt flag + 4 + 1 + + + HSIRDYF + HSI ready interrupt flag + 3 + 1 + + + LSERDYF + LSE ready interrupt flag + 1 + 1 + + + LSIRDYF + LSI ready interrupt flag + 0 + 1 + + + + + CICR + CICR + Clock interrupt clear register + 0x20 + 0x20 + write-only + 0x00000000 + + + LSECSSC + LSE clock secure system interrupt flag clear + 9 + 1 + + + CSSC + clock secure system interrupt flag clear + 8 + 1 + + + PLLRDYC + PLL ready interrupt clear + 5 + 1 + + + HSERDYC + HSE ready interrupt clear + 4 + 1 + + + HSIRDYC + HSI ready interrupt clear + 3 + 1 + + + LSERDYC + LSE ready interrupt clear + 1 + 1 + + + LSIRDYC + LSI ready interrupt clear + 0 + 1 + + + + + IOPRSTR + IOPRSTR + GPIO reset register + 0x24 + 0x20 + read-write + 0x00000000 + + + GPIOFRST + I/O port F reset + 5 + 1 + + + GPIOBRST + I/O port B reset + 1 + 1 + + + GPIOARST + I/O port A reset + 0 + 1 + + + + + AHBRSTR + AHBRSTR + AHB peripheral reset register + 0x28 + 0x20 + read-write + 0x00000000 + + + CRCRST + CRC reset + 12 + 1 + + + DMARST + DMA reset + 0 + 1 + + + + + APBRSTR1 + APBRSTR1 + APB peripheral reset register + 1 + 0x2C + 0x20 + read-write + 0x00000000 + + + LPTIMRST + Low Power Timer reset + 31 + 1 + + + PWRRST + Power interface reset + 28 + 1 + + + DBGRST + Debug support reset + 27 + 1 + + + I2CRST + I2C reset + 21 + 1 + + + USART2RST + USART2 reset + 17 + 1 + + + SPI2RST + SPI2 reset + 14 + 1 + + + TIM3RST + TIM3 timer reset + 1 + 1 + + + + + APBRSTR2 + APBRSTR2 + APB peripheral reset register + 2 + 0x30 + 0x20 + read-write + 0x00000000 + + + LEDRST + LED reset + 23 + 1 + + + COMP2RST + COMP2 reset + 22 + 1 + + + COMP1RST + COMP1 reset + 21 + 1 + + + ADCRST + ADC reset + 20 + 1 + + + TIM17RST + TIM17 timer reset + 18 + 1 + + + TIM16RST + TIM16 timer reset + 17 + 1 + + + TIM14RST + TIM14 timer reset + 15 + 1 + + + USART1RST + USART1 reset + 14 + 1 + + + SPI1RST + SPI1 reset + 12 + 1 + + + TIM1RST + TIM1 timer reset + 11 + 1 + + + SYSCFGRST + SYSCFG and COMP + reset + 0 + 1 + + + + + IOPENR + IOPENR + GPIO clock enable register + 0x34 + 0x20 + read-write + 0x00000000 + + + GPIOFEN + I/O port F clock enable + 5 + 1 + + + GPIOBEN + I/O port B clock enable + 1 + 1 + + + GPIOAEN + I/O port A clock enable + 0 + 1 + + + + + AHBENR + AHBENR + AHB peripheral clock enable + register + 0x38 + 0x20 + read-write + 0x00000000 + + + CRCEN + CRC clock enable + 12 + 1 + + + SRAMEN + SRAM memory interface clock + enable + 9 + 1 + + + FLASHEN + Flash memory interface clock + enable + 8 + 1 + + + DMAEN + DMA clock enable + 0 + 1 + + + + + APBENR1 + APBENR1 + APB peripheral clock enable register + 1 + 0x3C + 0x20 + read-write + 0x00000000 + + + LPTIMEN + LPTIM clock enable + 31 + 1 + + + PWREN + Power interface clock + enable + 28 + 1 + + + DBGEN + Debug support clock enable + 27 + 1 + + + I2CEN + I2C clock enable + 21 + 1 + + + USART2EN + USART2 clock enable + 17 + 1 + + + SPI2EN + SPI2 clock enable + 14 + 1 + + + WWDGEN + WWDG clock enable + 11 + 1 + + + RTCAPBEN + RTC APB clock enable + 10 + 1 + + + TIM3EN + TIM3 timer clock enable + 1 + 1 + + + + + APBENR2 + APBENR2 + APB peripheral clock enable register + 2 + 0x40 + 0x20 + read-write + 0x00000000 + + + LEDEN + LED clock enable + 23 + 1 + + + COMP2EN + COMP2 clock enable + 22 + 1 + + + COMP1EN + COMP1 clock enable + 21 + 1 + + + ADCEN + ADC clock enable + 20 + 1 + + + TIM17EN + TIM16 timer clock enable + 18 + 1 + + + TIM16EN + TIM16 timer clock enable + 17 + 1 + + + TIM14EN + TIM14 timer clock enable + 15 + 1 + + + USART1EN + USART1 clock enable + 14 + 1 + + + SPI1EN + SPI1 clock enable + 12 + 1 + + + TIM1EN + TIM1 timer clock enable + 11 + 1 + + + SYSCFGEN + SYSCFG, COMP and VREFBUF clock + enable + 0 + 1 + + + + + CCIPR + CCIPR + Peripherals independent clock configuration + register + 0x54 + 0x20 + read-write + 0x00000000 + + + LPTIM1SEL + LPTIM1 clock source + selection + 18 + 2 + + + COMP2SEL + COMP2 clock source + selection + 9 + 1 + + + COMP1SEL + COMP1 clock source + selection + 8 + 1 + + + PVDSEL + PVD detect clock source + selection + 7 + 1 + + + + + BDCR + BDCR + RTC domain control register + 0x5C + 0x20 + read-write + 0x00000000 + + + LSCOSEL + Low-speed clock output + selection + 25 + 1 + + + LSCOEN + Low-speed clock output (LSCO) + enable + 24 + 1 + + + BDRST + RTC domain software reset + 16 + 1 + + + RTCEN + RTC clock source enable + 15 + 1 + + + RTCSEL + RTC clock source selection + 8 + 2 + + + LSECSSD + LSE CSS detect + 6 + 1 + + + LSECSSON + LSE CSS enable + 5 + 1 + + + LSEBYP + LSE oscillator bypass + 2 + 1 + + + LSERDY + LSE oscillator ready + 1 + 1 + + + LSEON + LSE oscillator enable + 0 + 1 + + + + + CSR + CSR + Control/status register + 0x60 + 0x20 + read-write + 0x00000000 + + + WWDGRSTF + Window watchdog reset flag + 30 + 1 + + + IWDGRSTF + Independent window watchdog reset + flag + 29 + 1 + + + SFTRSTF + Software reset flag + 28 + 1 + + + PWRRSTF + BOR or POR/PDR flag + 27 + 1 + + + PINRSTF + Pin reset flag + 26 + 1 + + + OBLRSTF + Option byte loader reset + flag + 25 + 1 + + + RMVF + Remove reset flags + 23 + 1 + + + LSIRDY + LSI oscillator ready + 1 + 1 + + + LSION + LSI oscillator enable + 0 + 1 + + + + + + + PWR + Power control + PWR + 0x40007000 + + 0x0 + 0x400 + registers + + + + CR1 + CR1 + Power control register 1 + 0x0 + 0x20 + read-write + 0x00030000 + + + HSION_CTRL + HSI open time control + 19 + 1 + + + SRAM_RETV + SRAM retention voltage control + 16 + 3 + + + LPR + Low-power run + 14 + 1 + + + FLS_SLPTIME + Flash wait time after wakeup from the stop mode + 12 + 2 + + + MRRDY_TIME + Time selection wakeup from LP to VR + 10 + 2 + + + VOS + Voltage scaling range + selection + 9 + 1 + + + DBP + Disable backup domain write + protection + 8 + 1 + + + BIAS_CR_SEL + MR Bias current selection + 4 + 1 + + + BIAS_CR + MR Bias current + 0 + 4 + + + + + CR2 + CR2 + Power control register 2 + 0x4 + 0x20 + read-write + 0x00000500 + + + FLT_TIME + Digital filter time configuration + 9 + 3 + + + FLTEN + Digital filter enable + 8 + 1 + + + PVDT + Power voltage detector threshold + selection + 4 + 3 + + + SRCSEL + Power voltage detector volatage + selection + 2 + 1 + + + PVDE + Power voltage detector + enable + 0 + 1 + + + + + SR + SR + Power status register + 0x14 + 0x20 + read-only + 0x00000000 + + + PVDO + PVD output + 11 + 1 + + + + + + + GPIOA + General-purpose I/Os + GPIO + 0x50000000 + + 0x0 + 0x400 + registers + + + + MODER + MODER + GPIO port mode register + 0x0 + 0x20 + read-write + 0xEBFFFFFF + + + MODE15 + Port x configuration bits (y = + 0..15) + 30 + 2 + + + MODE14 + Port x configuration bits (y = + 0..15) + 28 + 2 + + + MODE13 + Port x configuration bits (y = + 0..15) + 26 + 2 + + + MODE12 + Port x configuration bits (y = + 0..15) + 24 + 2 + + + MODE11 + Port x configuration bits (y = + 0..15) + 22 + 2 + + + MODE10 + Port x configuration bits (y = + 0..15) + 20 + 2 + + + MODE9 + Port x configuration bits (y = + 0..15) + 18 + 2 + + + MODE8 + Port x configuration bits (y = + 0..15) + 16 + 2 + + + MODE7 + Port x configuration bits (y = + 0..15) + 14 + 2 + + + MODE6 + Port x configuration bits (y = + 0..15) + 12 + 2 + + + MODE5 + Port x configuration bits (y = + 0..15) + 10 + 2 + + + MODE4 + Port x configuration bits (y = + 0..15) + 8 + 2 + + + MODE3 + Port x configuration bits (y = + 0..15) + 6 + 2 + + + MODE2 + Port x configuration bits (y = + 0..15) + 4 + 2 + + + MODE1 + Port x configuration bits (y = + 0..15) + 2 + 2 + + + MODE0 + 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 + + + OSPEED15 + Port x configuration bits (y = + 0..15) + 30 + 2 + + + OSPEED14 + Port x configuration bits (y = + 0..15) + 28 + 2 + + + OSPEED13 + Port x configuration bits (y = + 0..15) + 26 + 2 + + + OSPEED12 + Port x configuration bits (y = + 0..15) + 24 + 2 + + + OSPEED11 + Port x configuration bits (y = + 0..15) + 22 + 2 + + + OSPEED10 + Port x configuration bits (y = + 0..15) + 20 + 2 + + + OSPEED9 + Port x configuration bits (y = + 0..15) + 18 + 2 + + + OSPEED8 + Port x configuration bits (y = + 0..15) + 16 + 2 + + + OSPEED7 + Port x configuration bits (y = + 0..15) + 14 + 2 + + + OSPEED6 + Port x configuration bits (y = + 0..15) + 12 + 2 + + + OSPEED5 + Port x configuration bits (y = + 0..15) + 10 + 2 + + + OSPEED4 + Port x configuration bits (y = + 0..15) + 8 + 2 + + + OSPEED3 + Port x configuration bits (y = + 0..15) + 6 + 2 + + + OSPEED2 + Port x configuration bits (y = + 0..15) + 4 + 2 + + + OSPEED1 + Port x configuration bits (y = + 0..15) + 2 + 2 + + + OSPEED0 + Port x configuration bits (y = + 0..15) + 0 + 2 + + + + + PUPDR + PUPDR + GPIO port pull-up/pull-down + register + 0xC + 0x20 + read-write + 0x24000000 + + + PUPD15 + Port x configuration bits (y = + 0..15) + 30 + 2 + + + PUPD14 + Port x configuration bits (y = + 0..15) + 28 + 2 + + + PUPD13 + Port x configuration bits (y = + 0..15) + 26 + 2 + + + PUPD12 + Port x configuration bits (y = + 0..15) + 24 + 2 + + + PUPD11 + Port x configuration bits (y = + 0..15) + 22 + 2 + + + PUPD10 + Port x configuration bits (y = + 0..15) + 20 + 2 + + + PUPD9 + Port x configuration bits (y = + 0..15) + 18 + 2 + + + PUPD8 + Port x configuration bits (y = + 0..15) + 16 + 2 + + + PUPD7 + Port x configuration bits (y = + 0..15) + 14 + 2 + + + PUPD6 + Port x configuration bits (y = + 0..15) + 12 + 2 + + + PUPD5 + Port x configuration bits (y = + 0..15) + 10 + 2 + + + PUPD4 + Port x configuration bits (y = + 0..15) + 8 + 2 + + + PUPD3 + Port x configuration bits (y = + 0..15) + 6 + 2 + + + PUPD2 + Port x configuration bits (y = + 0..15) + 4 + 2 + + + PUPD1 + Port x configuration bits (y = + 0..15) + 2 + 2 + + + PUPD0 + Port x configuration bits (y = + 0..15) + 0 + 2 + + + + + IDR + IDR + GPIO port input data register + 0x10 + 0x20 + read-only + 0x00000000 + + + ID15 + Port input data (y = + 0..15) + 15 + 1 + + + ID14 + Port input data (y = + 0..15) + 14 + 1 + + + ID13 + Port input data (y = + 0..15) + 13 + 1 + + + ID12 + Port input data (y = + 0..15) + 12 + 1 + + + ID11 + Port input data (y = + 0..15) + 11 + 1 + + + ID10 + Port input data (y = + 0..15) + 10 + 1 + + + ID9 + Port input data (y = + 0..15) + 9 + 1 + + + ID8 + Port input data (y = + 0..15) + 8 + 1 + + + ID7 + Port input data (y = + 0..15) + 7 + 1 + + + ID6 + Port input data (y = + 0..15) + 6 + 1 + + + ID5 + Port input data (y = + 0..15) + 5 + 1 + + + ID4 + Port input data (y = + 0..15) + 4 + 1 + + + ID3 + Port input data (y = + 0..15) + 3 + 1 + + + ID2 + Port input data (y = + 0..15) + 2 + 1 + + + ID1 + Port input data (y = + 0..15) + 1 + 1 + + + ID0 + Port input data (y = + 0..15) + 0 + 1 + + + + + ODR + ODR + GPIO port output data register + 0x14 + 0x20 + read-write + 0x00000000 + + + OD15 + Port output data (y = + 0..15) + 15 + 1 + + + OD14 + Port output data (y = + 0..15) + 14 + 1 + + + OD13 + Port output data (y = + 0..15) + 13 + 1 + + + OD12 + Port output data (y = + 0..15) + 12 + 1 + + + OD11 + Port output data (y = + 0..15) + 11 + 1 + + + OD10 + Port output data (y = + 0..15) + 10 + 1 + + + OD9 + Port output data (y = + 0..15) + 9 + 1 + + + OD8 + Port output data (y = + 0..15) + 8 + 1 + + + OD7 + Port output data (y = + 0..15) + 7 + 1 + + + OD6 + Port output data (y = + 0..15) + 6 + 1 + + + OD5 + Port output data (y = + 0..15) + 5 + 1 + + + OD4 + Port output data (y = + 0..15) + 4 + 1 + + + OD3 + Port output data (y = + 0..15) + 3 + 1 + + + OD2 + Port output data (y = + 0..15) + 2 + 1 + + + OD1 + Port output data (y = + 0..15) + 1 + 1 + + + OD0 + 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 + + + BR15 + Port Reset bit + 15 + 1 + + + BR14 + Port Reset bit + 14 + 1 + + + BR13 + Port Reset bit + 13 + 1 + + + BR12 + Port Reset bit + 12 + 1 + + + BR11 + Port Reset bit + 11 + 1 + + + BR10 + Port Reset bit + 10 + 1 + + + BR9 + Port Reset bit + 9 + 1 + + + BR8 + Port Reset bit + 8 + 1 + + + BR7 + Port Reset bit + 7 + 1 + + + BR6 + Port Reset bit + 6 + 1 + + + BR5 + Port Reset bit + 5 + 1 + + + BR4 + Port Reset bit + 4 + 1 + + + BR3 + Port Reset bit + 3 + 1 + + + BR2 + Port Reset bit + 2 + 1 + + + BR1 + Port Reset bit + 1 + 1 + + + BR0 + Port Reset bit + 0 + 1 + + + + + + + GPIOB + General-purpose I/Os + GPIO + 0x50000400 + + 0x0 + 0x400 + registers + + + + MODER + MODER + GPIO port mode register + 0x0 + 0x20 + read-write + 0xFFFFFFFF + + + MODE8 + Port x configuration bits (y = + 0..15) + 16 + 2 + + + MODE7 + Port x configuration bits (y = + 0..15) + 14 + 2 + + + MODE6 + Port x configuration bits (y = + 0..15) + 12 + 2 + + + MODE5 + Port x configuration bits (y = + 0..15) + 10 + 2 + + + MODE4 + Port x configuration bits (y = + 0..15) + 8 + 2 + + + MODE3 + Port x configuration bits (y = + 0..15) + 6 + 2 + + + MODE2 + Port x configuration bits (y = + 0..15) + 4 + 2 + + + MODE1 + Port x configuration bits (y = + 0..15) + 2 + 2 + + + MODE0 + Port x configuration bits (y = + 0..15) + 0 + 2 + + + + + OTYPER + OTYPER + GPIO port output type register + 0x4 + 0x20 + read-write + 0x00000000 + + + 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 + 0x00000000 + + + OSPEED8 + Port x configuration bits (y = + 0..15) + 16 + 2 + + + OSPEED7 + Port x configuration bits (y = + 0..15) + 14 + 2 + + + OSPEED6 + Port x configuration bits (y = + 0..15) + 12 + 2 + + + OSPEED5 + Port x configuration bits (y = + 0..15) + 10 + 2 + + + OSPEED4 + Port x configuration bits (y = + 0..15) + 8 + 2 + + + OSPEED3 + Port x configuration bits (y = + 0..15) + 6 + 2 + + + OSPEED2 + Port x configuration bits (y = + 0..15) + 4 + 2 + + + OSPEED1 + Port x configuration bits (y = + 0..15) + 2 + 2 + + + OSPEED0 + Port x configuration bits (y = + 0..15) + 0 + 2 + + + + + PUPDR + PUPDR + GPIO port pull-up/pull-down + register + 0xC + 0x20 + read-write + 0x00000000 + + + PUPD8 + Port x configuration bits (y = + 0..15) + 16 + 2 + + + PUPD7 + Port x configuration bits (y = + 0..15) + 14 + 2 + + + PUPD6 + Port x configuration bits (y = + 0..15) + 12 + 2 + + + PUPD5 + Port x configuration bits (y = + 0..15) + 10 + 2 + + + PUPD4 + Port x configuration bits (y = + 0..15) + 8 + 2 + + + PUPD3 + Port x configuration bits (y = + 0..15) + 6 + 2 + + + PUPD2 + Port x configuration bits (y = + 0..15) + 4 + 2 + + + PUPD1 + Port x configuration bits (y = + 0..15) + 2 + 2 + + + PUPD0 + Port x configuration bits (y = + 0..15) + 0 + 2 + + + + + IDR + IDR + GPIO port input data register + 0x10 + 0x20 + read-only + 0x00000000 + + + ID8 + Port input data (y = + 0..15) + 8 + 1 + + + ID7 + Port input data (y = + 0..15) + 7 + 1 + + + ID6 + Port input data (y = + 0..15) + 6 + 1 + + + ID5 + Port input data (y = + 0..15) + 5 + 1 + + + ID4 + Port input data (y = + 0..15) + 4 + 1 + + + ID3 + Port input data (y = + 0..15) + 3 + 1 + + + ID2 + Port input data (y = + 0..15) + 2 + 1 + + + ID1 + Port input data (y = + 0..15) + 1 + 1 + + + ID0 + Port input data (y = + 0..15) + 0 + 1 + + + + + ODR + ODR + GPIO port output data register + 0x14 + 0x20 + read-write + 0x00000000 + + + OD8 + Port output data (y = + 0..15) + 8 + 1 + + + OD7 + Port output data (y = + 0..15) + 7 + 1 + + + OD6 + Port output data (y = + 0..15) + 6 + 1 + + + OD5 + Port output data (y = + 0..15) + 5 + 1 + + + OD4 + Port output data (y = + 0..15) + 4 + 1 + + + OD3 + Port output data (y = + 0..15) + 3 + 1 + + + OD2 + Port output data (y = + 0..15) + 2 + 1 + + + OD1 + Port output data (y = + 0..15) + 1 + 1 + + + OD0 + Port output data (y = + 0..15) + 0 + 1 + + + + + BSRR + BSRR + GPIO port bit set/reset + register + 0x18 + 0x20 + write-only + 0x00000000 + + + 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 + + + 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 + + + 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 + + + BR8 + Port Reset bit + 8 + 1 + + + BR7 + Port Reset bit + 7 + 1 + + + BR6 + Port Reset bit + 6 + 1 + + + BR5 + Port Reset bit + 5 + 1 + + + BR4 + Port Reset bit + 4 + 1 + + + BR3 + Port Reset bit + 3 + 1 + + + BR2 + Port Reset bit + 2 + 1 + + + BR1 + Port Reset bit + 1 + 1 + + + BR0 + Port Reset bit + 0 + 1 + + + + + + + GPIOF + 0x50001400 + + + EXTI + External interrupt/event + controller + EXTI + 0x40021800 + + 0x0 + 0x400 + registers + + + PVD + PVD Interrupt through EXTI Lines 16 + 1 + + + EXTI0_1 + EXTI Line 0 and 1 Interrupt + 5 + + + EXTI2_3 + EXTI Line 2 and 3 Interrupt + 6 + + + EXTI4_15 + EXTI Line 4 to 15 Interrupt + 7 + + + + RTSR + RTSR + EXTI rising trigger selection + register + 0x0 + 0x20 + read-write + 0x00000000 + + + RT18 + Rising trigger event configuration bit + of Configurable Event input + 18 + 1 + + + RT17 + Rising trigger event configuration bit + of Configurable Event input + 17 + 1 + + + RT16 + Rising trigger event configuration bit + of Configurable Event input + 16 + 1 + + + RT15 + Rising trigger event configuration bit + of Configurable Event input + 15 + 1 + + + RT14 + Rising trigger event configuration bit + of Configurable Event input + 14 + 1 + + + RT13 + Rising trigger event configuration bit + of Configurable Event input + 13 + 1 + + + RT12 + Rising trigger event configuration bit + of Configurable Event input + 12 + 1 + + + RT11 + Rising trigger event configuration bit + of Configurable Event input + 11 + 1 + + + RT10 + Rising trigger event configuration bit + of Configurable Event input + 10 + 1 + + + RT9 + Rising trigger event configuration bit + of Configurable Event input + 9 + 1 + + + RT8 + Rising trigger event configuration bit + of Configurable Event input + 8 + 1 + + + RT7 + Rising trigger event configuration bit + of Configurable Event input + 7 + 1 + + + RT6 + Rising trigger event configuration bit + of Configurable Event input + 6 + 1 + + + RT5 + Rising trigger event configuration bit + of Configurable Event input + 5 + 1 + + + RT4 + Rising trigger event configuration bit + of Configurable Event input + 4 + 1 + + + RT3 + Rising trigger event configuration bit + of Configurable Event input + 3 + 1 + + + RT2 + Rising trigger event configuration bit + of Configurable Event input + 2 + 1 + + + RT1 + Rising trigger event configuration bit + of Configurable Event input + 1 + 1 + + + RT0 + Rising trigger event configuration bit + of Configurable Event input + 0 + 1 + + + + + FTSR + FTSR + EXTI falling trigger selection + register + 0x4 + 0x20 + read-write + 0x00000000 + + + FT18 + Falling trigger event configuration bit + of Configurable Event input + 18 + 1 + + + FT17 + Falling trigger event configuration bit + of Configurable Event input + 17 + 1 + + + FT16 + Falling trigger event configuration bit + of Configurable Event input + 16 + 1 + + + FT15 + Falling trigger event configuration bit + of Configurable Event input + 15 + 1 + + + FT14 + Falling trigger event configuration bit + of Configurable Event input + 14 + 1 + + + FT13 + Falling trigger event configuration bit + of Configurable Event input + 13 + 1 + + + FT12 + Falling trigger event configuration bit + of Configurable Event input + 12 + 1 + + + FT11 + Falling trigger event configuration bit + of Configurable Event input + 11 + 1 + + + FT10 + Falling trigger event configuration bit + of Configurable Event input + 10 + 1 + + + FT9 + Falling trigger event configuration bit + of Configurable Event input + 9 + 1 + + + FT8 + Falling trigger event configuration bit + of Configurable Event input + 8 + 1 + + + FT7 + Falling trigger event configuration bit + of Configurable Event input + 7 + 1 + + + FT6 + Falling trigger event configuration bit + of Configurable Event input + 6 + 1 + + + FT5 + Falling trigger event configuration bit + of Configurable Event input + 5 + 1 + + + FT4 + Falling trigger event configuration bit + of Configurable Event input + 4 + 1 + + + FT3 + Falling trigger event configuration bit + of Configurable Event input + 3 + 1 + + + FT2 + Falling trigger event configuration bit + of Configurable Event input + 2 + 1 + + + FT1 + Falling trigger event configuration bit + of Configurable Event input + 1 + 1 + + + FT0 + Falling trigger event configuration bit + of Configurable Event input + 0 + 1 + + + + + SWIER + SWIER + EXTI software interrupt event + register + 0x8 + 0x20 + read-write + 0x00000000 + + + SWI18 + Rising trigger event configuration bit + of Configurable Event input + 18 + 1 + + + SWI17 + Rising trigger event configuration bit + of Configurable Event input + 17 + 1 + + + SWI16 + Rising trigger event configuration bit + of Configurable Event input + 16 + 1 + + + SWI15 + Rising trigger event configuration bit + of Configurable Event input + 15 + 1 + + + SWI14 + Rising trigger event configuration bit + of Configurable Event input + 14 + 1 + + + SWI13 + Rising trigger event configuration bit + of Configurable Event input + 13 + 1 + + + SWI12 + Rising trigger event configuration bit + of Configurable Event input + 12 + 1 + + + SWI11 + Rising trigger event configuration bit + of Configurable Event input + 11 + 1 + + + SWI10 + Rising trigger event configuration bit + of Configurable Event input + 10 + 1 + + + SWI9 + Rising trigger event configuration bit + of Configurable Event input + 9 + 1 + + + SWI8 + Rising trigger event configuration bit + of Configurable Event input + 8 + 1 + + + SWI7 + Rising trigger event configuration bit + of Configurable Event input + 7 + 1 + + + SWI6 + Rising trigger event configuration bit + of Configurable Event input + 6 + 1 + + + SWI5 + Rising trigger event configuration bit + of Configurable Event input + 5 + 1 + + + SWI4 + Rising trigger event configuration bit + of Configurable Event input + 4 + 1 + + + SWI3 + Rising trigger event configuration bit + of Configurable Event input + 3 + 1 + + + SWI2 + Rising trigger event configuration bit + of Configurable Event input + 2 + 1 + + + SWI1 + Rising trigger event configuration bit + of Configurable Event input + 1 + 1 + + + SWI0 + Rising trigger event configuration bit + of Configurable Event input + 0 + 1 + + + + + PR + PR + EXTI pending + register + 0xC + 0x20 + read-write + 0x00000000 + + + PR18 + configurable event inputs x rising edge + Pending bit. + 18 + 1 + + + PR17 + configurable event inputs x rising edge + Pending bit. + 17 + 1 + + + PR16 + configurable event inputs x rising edge + Pending bit. + 16 + 1 + + + PR15 + configurable event inputs x rising edge + Pending bit. + 15 + 1 + + + PR14 + configurable event inputs x rising edge + Pending bit. + 14 + 1 + + + PR13 + configurable event inputs x rising edge + Pending bit + 13 + 1 + + + PR12 + configurable event inputs x rising edge + Pending bit. + 12 + 1 + + + PR11 + configurable event inputs x rising edge + Pending bit. + 11 + 1 + + + PR10 + configurable event inputs x rising edge + Pending bit. + 10 + 1 + + + PR9 + configurable event inputs x rising edge + Pending bit. + 9 + 1 + + + PR8 + configurable event inputs x rising edge + Pending bit. + 8 + 1 + + + PR7 + configurable event inputs x rising edge + Pending bit. + 7 + 1 + + + PR6 + configurable event inputs x rising edge + Pending bit. + 6 + 1 + + + PR5 + configurable event inputs x rising edge + Pending bit. + 5 + 1 + + + PR4 + configurable event inputs x rising edge + Pending bit. + 4 + 1 + + + PR3 + configurable event inputs x rising edge + Pending bit. + 3 + 1 + + + PR2 + configurable event inputs x rising edge + Pending bit. + 2 + 1 + + + PR1 + configurable event inputs x rising edge + Pending bit. + 1 + 1 + + + PR0 + configurable event inputs x rising edge + Pending bit. + 0 + 1 + + + + + EXTICR1 + EXTICR1 + EXTI external interrupt selection + register + 0x60 + 0x20 + read-write + 0x00000000 + + + EXTI3 + GPIO port selection + 24 + 2 + + + EXTI2 + GPIO port selection + 16 + 2 + + + EXTI1 + GPIO port selection + 8 + 2 + + + EXTI0 + GPIO port selection + 0 + 2 + + + + + EXTICR2 + EXTICR2 + EXTI external interrupt selection + register + 0x64 + 0x20 + read-write + 0x00000000 + + + EXTI7 + GPIO port selection + 24 + 1 + + + EXTI6 + GPIO port selection + 16 + 1 + + + EXTI5 + GPIO port selection + 8 + 1 + + + EXTI4 + GPIO port selection + 0 + 2 + + + + + EXTICR3 + EXTICR3 + EXTI external interrupt selection + register + 0x68 + 0x20 + read-write + 0x00000000 + + + EXTI8 + GPIO port selection + 0 + 1 + + + + + IMR + IMR + EXTI CPU wakeup with interrupt mask + register + 0x80 + 0x20 + read-write + 0xFFF80000 + + + IM29 + CPU wakeup with interrupt mask on event + input + 29 + 1 + + + IM19 + CPU wakeup with interrupt mask on event + input + 19 + 1 + + + IM18 + CPU wakeup with interrupt mask on event + input + 18 + 1 + + + IM17 + CPU wakeup with interrupt mask on event + input + 17 + 1 + + + IM16 + CPU wakeup with interrupt mask on event + input + 16 + 1 + + + IM15 + CPU wakeup with interrupt mask on event + input + 15 + 1 + + + IM14 + CPU wakeup with interrupt mask on event + input + 14 + 1 + + + IM13 + CPU wakeup with interrupt mask on event + input + 13 + 1 + + + IM12 + CPU wakeup with interrupt mask on event + input + 12 + 1 + + + IM11 + CPU wakeup with interrupt mask on event + input + 11 + 1 + + + IM10 + CPU wakeup with interrupt mask on event + input + 10 + 1 + + + IM9 + CPU wakeup with interrupt mask on event + input + 9 + 1 + + + IM8 + CPU wakeup with interrupt mask on event + input + 8 + 1 + + + IM7 + CPU wakeup with interrupt mask on event + input + 7 + 1 + + + IM6 + CPU wakeup with interrupt mask on event + input + 6 + 1 + + + IM5 + CPU wakeup with interrupt mask on event + input + 5 + 1 + + + IM4 + CPU wakeup with interrupt mask on event + input + 4 + 1 + + + IM3 + CPU wakeup with interrupt mask on event + input + 3 + 1 + + + IM2 + CPU wakeup with interrupt mask on event + input + 2 + 1 + + + IM1 + CPU wakeup with interrupt mask on event + input + 1 + 1 + + + IM0 + CPU wakeup with interrupt mask on event + input + 0 + 1 + + + + + EMR + EMR + EXTI CPU wakeup with event mask + register + 0x84 + 0x20 + read-write + 0x00000000 + + + EM29 + CPU wakeup with event mask on event + input + 29 + 1 + + + EM19 + CPU wakeup with event mask on event + input + 19 + 1 + + + EM18 + CPU wakeup with event mask on event + input + 18 + 1 + + + EM17 + CPU wakeup with event mask on event + input + 17 + 1 + + + EM16 + CPU wakeup with event mask on event + input + 16 + 1 + + + EM15 + CPU wakeup with event mask on event + input + 15 + 1 + + + EM14 + CPU wakeup with event mask on event + input + 14 + 1 + + + EM13 + CPU wakeup with event mask on event + input + 13 + 1 + + + EM12 + CPU wakeup with event mask on event + input + 12 + 1 + + + EM11 + CPU wakeup with event mask on event + input + 11 + 1 + + + EM10 + CPU wakeup with event mask on event + input + 10 + 1 + + + EM9 + CPU wakeup with event mask on event + input + 9 + 1 + + + EM8 + CPU wakeup with event mask on event + input + 8 + 1 + + + EM7 + CPU wakeup with event mask on event + input + 7 + 1 + + + EM6 + CPU wakeup with event mask on event + input + 6 + 1 + + + EM5 + CPU wakeup with event mask on event + input + 5 + 1 + + + EM4 + CPU wakeup with event mask on event + input + 4 + 1 + + + EM3 + CPU wakeup with event mask on event + input + 3 + 1 + + + EM2 + CPU wakeup with event mask on event + input + 2 + 1 + + + EM1 + CPU wakeup with event mask on event + input + 1 + 1 + + + EM0 + CPU wakeup with event mask on event + input + 0 + 1 + + + + + + + LPTIM + Low power timer + LPTIM + 0x40007C00 + + 0x0 + 0x400 + registers + + + + ISR + ISR + Interrupt and Status Register + 0x0 + 0x20 + read-only + 0x00000000 + + + ARRM + Autoreload match + 1 + 1 + + + + + ICR + ICR + Interrupt Clear Register + 0x4 + 0x20 + write-only + 0x00000000 + + + ARRMCF + Autoreload match Clear + Flag + 1 + 1 + + + + + IER + IER + Interrupt Enable Register + 0x8 + 0x20 + read-write + 0x00000000 + + + ARRMIE + Autoreload match Interrupt + Enable + 1 + 1 + + + + + CFGR + CFGR + Configuration Register + 0xC + 0x20 + read-write + 0x00000000 + + + PRELOAD + Registers update mode + 22 + 1 + + + PRESC + Clock prescaler + 9 + 3 + + + + + CR + CR + Control Register + 0x10 + 0x20 + read-write + 0x00000000 + + + RSTARE + Reset after read enable + 4 + 1 + + + SNGSTRT + LPTIM start in single mode + 1 + 1 + + + ENABLE + LPTIM Enable + 0 + 1 + + + + + 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 + + + + + + + USART1 + Universal synchronous asynchronous receiver + transmitter + USART + 0x40013800 + + 0x0 + 0x400 + registers + + + USART1 + USART1 global Interrupt + 27 + + + + SR + SR + Status register + 0x0 + 0x20 + 0x00C0 + + + ABRRQ + Automate baudrate detection requeset + 12 + 1 + write-only + + + ABRE + Automate baudrate detection error flag + 11 + 1 + read-only + + + ABRF + Automate baudrate detection flag + 10 + 1 + read-only + + + CTS + CTS flag + 9 + 1 + read-write + + + TXE + Transmit data register + empty + 7 + 1 + read-only + + + TC + Transmission complete + 6 + 1 + read-write + + + RXNE + Read data register not + empty + 5 + 1 + read-write + + + IDLE + IDLE line detected + 4 + 1 + read-only + + + ORE + Overrun error + 3 + 1 + read-only + + + NE + Noise error flag + 2 + 1 + read-only + + + FE + Framing error + 1 + 1 + read-only + + + PE + Parity error + 0 + 1 + read-only + + + + + DR + DR + Data register + 0x4 + 0x20 + read-write + 0x00000000 + + + DR + Data value + 0 + 9 + + + + + BRR + BRR + Baud rate register + 0x8 + 0x20 + read-write + 0x0000 + + + DIV_Mantissa + mantissa of USARTDIV + 4 + 12 + + + DIV_Fraction + fraction of USARTDIV + 0 + 4 + + + + + CR1 + CR1 + Control register 1 + 0xC + 0x20 + read-write + 0x0000 + + + UE + USART enable + 13 + 1 + + + M + Word length + 12 + 1 + + + WAKE + Wakeup method + 11 + 1 + + + PCE + Parity control enable + 10 + 1 + + + PS + Parity selection + 9 + 1 + + + PEIE + PE interrupt enable + 8 + 1 + + + TXEIE + TXE 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 + + + RWU + Receiver wakeup + 1 + 1 + + + SBK + Send break + 0 + 1 + + + + + CR2 + CR2 + Control register 2 + 0x10 + 0x20 + read-write + 0x0000 + + + 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 + + + ADD + Address of the USART node + 0 + 4 + + + + + CR3 + CR3 + Control register 3 + 0x14 + 0x20 + read-write + 0x0000 + + + ABRMOD + Auto baudrate mode + 13 + 2 + + + ABREN + Auto baudrate enable + 12 + 1 + + + OVER8 + Oversampling mode + 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 + + + HDSEL + Half-duplex selection + 3 + 1 + + + IRLP + IrDA low-power + 2 + 1 + + + IREN + IrDA mode enable + 1 + 1 + + + EIE + Error interrupt enable + 0 + 1 + + + + + + + USART2 + 0x40004400 + + USART2 + USART2 global Interrupt + 28 + + + + RTC + Real time clock + RTC + 0x40002800 + + 0x0 + 0x400 + registers + + + RTC + RTC Interrupt through EXTI Lines 19 + 2 + + + + CRH + CRH + RTC Control Register High + 0x0 + 0x20 + read-write + 0x00000000 + + + OWIE + Overflow interrupt Enable + 2 + 1 + + + ALRIE + Alarm interrupt Enable + 1 + 1 + + + SECIE + Second interrupt Enable + 0 + 1 + + + + + CRL + CRL + RTC Control Register Low + 0x4 + 0x20 + 0x00000020 + + + RTOFF + RTC operation OFF + 5 + 1 + read-only + + + CNF + Configuration Flag + 4 + 1 + read-write + + + RSF + Registers Synchronized + Flag + 3 + 1 + read-write + + + OWF + Overflow Flag + 2 + 1 + read-write + + + ALRF + Alarm Flag + 1 + 1 + read-write + + + SECF + Second Flag + 0 + 1 + read-write + + + + + PRLH + PRLH + RTC Prescaler Load Register + High + 0x8 + 0x20 + write-only + 0x00000000 + + + PRLH + RTC Prescaler Load Register + High + 0 + 4 + + + + + PRLL + PRLL + RTC Prescaler Load Register + Low + 0xC + 0x20 + write-only + 0x8000 + + + PRLL + RTC Prescaler Divider Register + Low + 0 + 16 + + + + + DIVH + DIVH + RTC Prescaler Divider Register + High + 0x10 + 0x20 + read-only + 0x00000000 + + + DIVH + RTC prescaler divider register + high + 0 + 4 + + + + + DIVL + DIVL + RTC Prescaler Divider Register + Low + 0x14 + 0x20 + read-only + 0x8000 + + + DIVL + RTC prescaler divider register + Low + 0 + 16 + + + + + CNTH + CNTH + RTC Counter Register High + 0x18 + 0x20 + read-write + 0x00000000 + + + CNTH + RTC counter register high + 0 + 16 + + + + + CNTL + CNTL + RTC Counter Register Low + 0x1C + 0x20 + read-write + 0x00000000 + + + CNTL + RTC counter register Low + 0 + 16 + + + + + ALRH + ALRH + RTC Alarm Register High + 0x20 + 0x20 + write-only + 0xFFFF + + + ALRH + RTC alarm register high + 0 + 16 + + + + + ALRL + ALRL + RTC Alarm Register Low + 0x24 + 0x20 + write-only + 0xFFFF + + + ALRL + RTC alarm register low + 0 + 16 + + + + + RTCCR + RTCCR + RTC clock calibration + 0x2C + 0x20 + read-write + 0x0000 + + + ASOS + Alarm or second output selection + 9 + 1 + + + ASOE + Alarm or second output enable + 8 + 1 + + + CCO + Calibration clock output + 7 + 1 + + + CAL + Calibration value + 0 + 7 + + + + + + + IWDG + Independent watchdog + IWDG + 0x40003000 + + 0x0 + 0x400 + registers + + + + KR + KR + Key register (IWDG_KR) + 0x0 + 0x20 + write-only + 0x00000000 + + + KEY + Key value + 0 + 16 + + + + + PR + PR + Prescaler register (IWDG_PR) + 0x4 + 0x20 + read-write + 0x00000000 + + + PR + Prescaler divider + 0 + 3 + + + + + RLR + RLR + Reload register (IWDG_RLR) + 0x8 + 0x20 + read-write + 0x00000FFF + + + RL + Watchdog counter reload + value + 0 + 12 + + + + + SR + SR + Status register (IWDG_SR) + 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 (IWDG_SR) + 0x10 + 0x20 + read-only + 0x00000000 + + + WIN + window counter + 0 + 12 + + + + + + + WWDG + Window watchdog + WWDG + 0x40002C00 + + 0x0 + 0x400 + registers + + + WWDG + Window WatchDog Interrupt + 0 + + + + CR + CR + Control register (WWDG_CR) + 0x0 + 0x20 + read-write + 0x0000007F + + + WDGA + Activation bit + 7 + 1 + + + T + 7-bit counter (MSB to LSB) + 0 + 7 + + + + + CFR + CFR + Configuration register + (WWDG_CFR) + 0x4 + 0x20 + read-write + 0x0000007F + + + EWI + Early Wakeup Interrupt + 9 + 1 + + + WDGTB + Timer Base + 7 + 2 + + + W + 7-bit window value + 0 + 7 + + + + + SR + SR + Status register (WWDG_SR) + 0x8 + 0x20 + read-write + 0x00000000 + + + EWIF + Early Wakeup Interrupt flag + 0 + 1 + + + + + + + TIM1 + Advanced timer + TIM + 0x40012C00 + + 0x0 + 0x400 + registers + + + TIM1_BRK_UP_TRG_COM + TIM1 Break, Update, Trigger and Commutation Interrupt + 13 + + + TIM1_CC + TIM1 Capture Compare Interrupt + 14 + + + + CR1 + CR1 + control register 1 + 0x0 + 0x20 + read-write + 0x0000 + + + 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 + + + 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 + + + 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 bit + 3 + 1 + + + SMS + Slave mode selection + 0 + 3 + + + + + DIER + DIER + DMA/Interrupt enable register + 0xC + 0x20 + read-write + 0x0000 + + + TDE + Trigger DMA request enable + 14 + 1 + + + COMDE + COM DMA request enable + 13 + 1 + + + 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 + + + BIE + Break interrupt enable + 7 + 1 + + + TIE + Trigger interrupt enable + 6 + 1 + + + COMIE + COM interrupt enable + 5 + 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 + + + BIF + Break interrupt flag + 7 + 1 + + + TIF + Trigger interrupt flag + 6 + 1 + + + COMIF + COM interrupt flag + 5 + 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 + + + BG + Break generation + 7 + 1 + + + TG + Trigger generation + 6 + 1 + + + COMG + Capture/Compare control update + generation + 5 + 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 (output + mode) + 0x18 + 0x20 + read-write + 0x00000000 + + + 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 + + + ICPSC + Input capture 1 prescaler + 2 + 2 + + + CC1S + Capture/Compare 1 + selection + 0 + 2 + + + + + CCMR2_Output + CCMR2_Output + capture/compare mode register (output + mode) + 0x1C + 0x20 + read-write + 0x00000000 + + + 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 + + + CC4P + Capture/Compare 3 output + Polarity + 13 + 1 + + + CC4E + Capture/Compare 4 output + enable + 12 + 1 + + + CC3NP + Capture/Compare 3 output + Polarity + 11 + 1 + + + CC3NE + Capture/Compare 3 complementary output + enable + 10 + 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 + + + CC2NE + Capture/Compare 2 complementary output + enable + 6 + 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 + + + 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 + read-write + 0x00000000 + + + CNT + counter value + 0 + 16 + + + + + PSC + PSC + prescaler + 0x28 + 0x20 + read-write + 0x0000 + + + PSC + Prescaler value + 0 + 16 + + + + + ARR + ARR + auto-reload register + 0x2C + 0x20 + read-write + 0x00000000 + + + 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 + + + + + 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 + + + MOE + Main output enable + 15 + 1 + + + AOE + Automatic output enable + 14 + 1 + + + BKP + Break polarity + 13 + 1 + + + BKE + Break enable + 12 + 1 + + + OSSR + Off-state selection for Run + mode + 11 + 1 + + + OSSI + Off-state selection for Idle + mode + 10 + 1 + + + LOCK + Lock configuration + 8 + 2 + + + DTG + Dead-time generator setup + 0 + 8 + + + + + 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 + + + + + + + TIM3 + General purpose timer + TIM + 0x40000400 + + 0x00 + 0x400 + registers + + + TIM3 + TIM3 global Interrupt + 16 + + + + CR1 + CR1 + control register 1 + 0x0 + 0x20 + read-write + 0x0000 + + + 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 + + + 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 + + + TDE + Trigger DMA request enable + 14 + 1 + + + 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 + + + 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 + + + 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 4 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 + read-write + 0x00000000 + + + CNT + counter value + 0 + 16 + + + + + PSC + PSC + prescaler + 0x28 + 0x20 + read-write + 0x0000 + + + PSC + Prescaler value + 0 + 16 + + + + + ARR + ARR + auto-reload register + 0x2C + 0x20 + read-write + 0x00000000 + + + ARR + Auto-reload 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 + + + + + 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 + 32 + + + + + + + TIM14 + General purpose timer + TIM + 0x40002000 + + 0x00 + 0x400 + registers + + + TIM14 + TIM14 global Interrupt + 19 + + + + CR1 + CR1 + TIM14 control register1 + 0x0 + 0x20 + read-write + 0x0000 + + + CKD + Prescaler factor + 8 + 2 + + + ARPE + Auto-reload preload enable + 7 + 1 + + + URS + Update request source + 2 + 1 + + + UDIS + Update disable + 1 + 1 + + + CEN + Counter enable + 0 + 1 + + + + + DIER + DIER + DMA/Interrupt enable register + 0xC + 0x20 + read-write + 0x0000 + + + CC1IE + Compare/ + 1 + 1 + + + UIE + Update interrupt enable + 0 + 1 + + + + + SR + SR + status register + 0x10 + 0x20 + read-write + 0x0000 + + + CC1OF + Compare/capture 1 flag + 9 + 1 + + + CC1IF + Compare/capture 1 interrupt flag + 1 + 1 + + + UIF + Update interrupt flag + 0 + 1 + + + + + EGR + EGR + event generation register + 0x14 + 0x20 + write-only + 0x0000 + + + CC1G + Compare/capture1 event + 1 + 1 + + + UG + Update generation + 0 + 1 + + + + + CCMR1_Output + CCMR1_Output + capture/compare mode register (output + mode) + 0x18 + 0x20 + read-write + 0x00000000 + + + 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 + + + CC1P + Capture/Compare 1 output + Polarity + 1 + 1 + + + CC1E + Capture/Compare 1 output + enable + 0 + 1 + + + + + CNT + CNT + counter + 0x24 + 0x20 + read-write + 0x00000000 + + + CNT + counter value + 0 + 16 + + + + + PSC + PSC + prescaler + 0x28 + 0x20 + read-write + 0x0000 + + + PSC + Prescaler value + 0 + 16 + + + + + ARR + ARR + auto-reload register + 0x2C + 0x20 + read-write + 0x00000000 + + + ARR + Auto-reload value + 0 + 16 + + + + + CCR1 + CCR1 + capture/compare register 1 + 0x34 + 0x20 + read-write + 0x00000000 + + + CCR1 + Capture/Compare 1 value + 0 + 16 + + + + + OR + OR + Option register + 0x50 + 0x20 + read-write + 0x00000000 + + + TI1_RMP + TIM14 channel1 input remap + 0 + 2 + + + + + + + TIM16 + General purpose timer + TIM + 0x40014400 + + 0x00 + 0x400 + registers + + + TIM16 + TIM16 global Interrupt + 21 + + + + CR1 + CR1 + TIM16 control register1 + 0x0 + 0x20 + read-write + 0x0000 + + + CKD + Prescaler factor + 8 + 2 + + + ARPE + Auto-reload preload enable + 7 + 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 + + + OIS1N + Output Idle state 1 + 9 + 1 + + + OIS1 + Output Idle state 1 + 8 + 1 + + + CCDS + Capture/compare DMA + selection + 3 + 1 + + + CCPC + Capture/compare preloaded + control + 0 + 1 + + + + + DIER + DIER + DMA/Interrupt enable register + 0xC + 0x20 + read-write + 0x0000 + + + CC1DE + Compare/capture DMA requeset enable + 9 + 1 + + + UDE + Update DMA request enable + 8 + 1 + + + BIE + Break interrupt enable + 7 + 1 + + + COMIE + Com interrupt enable + 5 + 1 + + + CC1IE + Capture/Compare 1 interrupt enable + 1 + 1 + + + UIE + Update interrupt enable + 0 + 1 + + + + + SR + SR + status register + 0x10 + 0x20 + read-write + 0x0000 + + + CC1OF + Update interrupt 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 event generation + 7 + 1 + + + COMG + COM evnet 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 + 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 + read-write + 0x00000000 + + + CNT + counter value + 0 + 16 + + + + + PSC + PSC + prescaler + 0x28 + 0x20 + read-write + 0x0000 + + + PSC + Prescaler value + 0 + 16 + + + + + ARR + ARR + auto-reload register + 0x2C + 0x20 + read-write + 0x00000000 + + + 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 + + + MOE + Main output enable + 15 + 1 + + + AOE + Automatic output enable + 14 + 1 + + + BKP + Break polarity + 13 + 1 + + + BKE + Break enable + 12 + 1 + + + OSSR + Off-state selection for Run + mode + 11 + 1 + + + OSSI + Off-state selection for Idle + mode + 10 + 1 + + + LOCK + Lock configuration + 8 + 2 + + + DTG + Dead-time generator setup + 0 + 8 + + + + + 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 + 32 + + + + + + + TIM17 + 0x40014800 + + TIM17 + TIM17 global Interrupt + 22 + + + + SYSCFG + System configuration controller + SYSCFG + 0x40010000 + + 0x0 + 0x30 + registers + + + + CFGR1 + CFGR1 + SYSCFG configuration register + 1 + 0x0 + 0x20 + read-write + 0x00000000 + + + I2C_PF1_ANF + Analog filter enable control driving capability + activation bits PF1 + 30 + 1 + + + I2C_PF0_ANF + Analog filter enable control driving capability + activation bits PF0 + 29 + 1 + + + I2C_PB8_ANF + Analog filter enable control driving capability + activation bits PB8 + 28 + 1 + + + I2C_PB7_ANF + Analog filter enable control driving capability + activation bits PB7 + 27 + 1 + + I2C_PB6_ANF + Analog filter enable control driving capability + activation bits PB6 + 26 + 1 + + + I2C_PA12_ANF + Analog filter enable control driving capability + activation bits PA12 + 25 + 1 + + + I2C_PA11_ANF + Analog filter enable control driving capability + activation bits PA11 + 24 + 1 + + + I2C_PA10_ANF + Analog filter enable control driving capability + activation bits PA10 + 23 + 1 + + + I2C_PA9_ANF + Analog filter enable control driving capability + activation bits PA9 + 22 + 1 + + + I2C_PA8_ANF + Analog filter enable control driving capability + activation bits PA8 + 21 + 1 + + + I2C_PA7_ANF + Analog filter enable control driving capability + activation bits PA7 + 20 + 1 + + + I2C_PA3_ANF + Analog filter enable control driving capability + activation bits PA3 + 19 + 1 + + + I2C_PA2_ANF + Analog filter enable control driving capability + activation bits PA2 + 18 + 1 + + + MEM_MODE + Memory mapping selection + bits + 0 + 2 + + + + + CFGR2 + CFGR2 + SYSCFG configuration register + 2 + 0x18 + 0x20 + read-write + 0x00000000 + + + ETR_SRC_TIM1 + TIM1 ETR source selection + 9 + 2 + + + COMP2_BRK_TIM17 + COMP2 is enable to input of TIM17 break + 8 + 1 + + + COMP1_BRK_TIM17 + COMP1 is enable to input of TIM17 break + 7 + 1 + + + COMP2_BRK_TIM16 + COMP2 is enable to input of TIM16 break + 6 + 1 + + + COMP1_BRK_TIM16 + COMP1 is enable to input of TIM16 break + 5 + 1 + + + COMP2_BRK_TIM1 + COMP2 is enable to input of TIM1 break + 4 + 1 + + + COMP1_BRK_TIM1 + COMP1 is enable to input of TIM1 break + 3 + 1 + + + PVD_LOCK + PVD lock enable bit + 2 + 1 + + + LOCKUP_LOCK + Cortex-M0+ LOCKUP bit enable + bit + 0 + 1 + + + + + CFGR3 + CFGR3 + SYSCFG configuration register + 3 + 0x1C + 0x20 + read-write + 0x00000000 + + + DMA3_MAP + DMA channel3 requeset selection + 16 + 5 + + + DMA2_MAP + DMA channel2 requeset selection + 8 + 5 + + + DMA1_MAP + DMA channel1 requeset selection + 0 + 5 + + + + + + + DMA + Direct memory access + DMA + 0x40020000 + + 0x0 + 0x400 + registers + + + DMA_Channel1 + DMA Channel 1 Interrupt + 9 + + + DMA_Channel2_3 + DMA Channel 2 and Channel 3 Interrupt + 10 + + + + ISR + ISR + DMA interrupt status register + (DMA_ISR) + 0x0 + 0x20 + read-only + 0x00000000 + + + TEIF3 + Channel 3 Transfer Error + flag + 11 + 1 + + + HTIF3 + Channel 3 Half Transfer Complete + flag + 10 + 1 + + + TCIF3 + Channel 3 Transfer Complete + flag + 9 + 1 + + + GIF3 + Channel 3 Global interrupt + flag + 8 + 1 + + + TEIF2 + Channel 2 Transfer Error + flag + 7 + 1 + + + HTIF2 + Channel 2 Half Transfer Complete + flag + 6 + 1 + + + TCIF2 + Channel 2 Transfer Complete + flag + 5 + 1 + + + GIF2 + Channel 2 Global interrupt + flag + 4 + 1 + + + TEIF1 + Channel 1 Transfer Error + flag + 3 + 1 + + + HTIF1 + Channel 1 Half Transfer Complete + flag + 2 + 1 + + + TCIF1 + Channel 1 Transfer Complete + flag + 1 + 1 + + + GIF1 + Channel 1 Global interrupt + flag + 0 + 1 + + + + + IFCR + IFCR + DMA interrupt flag clear register + (DMA_IFCR) + 0x4 + 0x20 + write-only + 0x00000000 + + + CTEIF3 + Channel 3 Transfer Error + clear + 11 + 1 + + + CHTIF3 + Channel 3 Half Transfer + clear + 10 + 1 + + + CTCIF3 + Channel 3 Transfer Complete + clear + 9 + 1 + + + CGIF3 + Channel 3 Global interrupt + clear + 8 + 1 + + + CTEIF2 + Channel 2 Transfer Error + clear + 7 + 1 + + + CHTIF2 + Channel 2 Half Transfer + clear + 6 + 1 + + + CTCIF2 + Channel 2 Transfer Complete + clear + 5 + 1 + + + CGIF2 + Channel 2 Global interrupt + clear + 4 + 1 + + + CTEIF1 + Channel 1 Transfer Error + clear + 3 + 1 + + + CHTIF1 + Channel 1 Half Transfer + clear + 2 + 1 + + + CTCIF1 + Channel 1 Transfer Complete + clear + 1 + 1 + + + CGIF1 + Channel 1 Global interrupt + clear + 0 + 1 + + + + + CCR1 + CCR1 + DMA channel configuration register + (DMA_CCR) + 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 + DMA channel 1 number of data + register + 0xC + 0x20 + read-write + 0x00000000 + + + NDT + Number of data to transfer + 0 + 16 + + + + + CPAR1 + CPAR1 + DMA channel 1 peripheral address + register + 0x10 + 0x20 + read-write + 0x00000000 + + + PA + Peripheral address + 0 + 32 + + + + + CMAR1 + CMAR1 + DMA channel 1 memory address + register + 0x14 + 0x20 + read-write + 0x00000000 + + + MA + Memory address + 0 + 32 + + + + + CCR2 + CCR2 + DMA channel configuration register + (DMA_CCR) + 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 + DMA channel 2 number of data + register + 0x20 + 0x20 + read-write + 0x00000000 + + + NDT + Number of data to transfer + 0 + 16 + + + + + CPAR2 + CPAR2 + DMA channel 2 peripheral address + register + 0x24 + 0x20 + read-write + 0x00000000 + + + PA + Peripheral address + 0 + 32 + + + + + CMAR2 + CMAR2 + DMA channel 2 memory address + register + 0x28 + 0x20 + read-write + 0x00000000 + + + MA + Memory address + 0 + 32 + + + + + CCR3 + CCR3 + DMA channel configuration register + (DMA_CCR) + 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 + DMA channel 3 number of data + register + 0x34 + 0x20 + read-write + 0x00000000 + + + NDT + Number of data to transfer + 0 + 16 + + + + + CPAR3 + CPAR3 + DMA channel 3 peripheral address + register + 0x38 + 0x20 + read-write + 0x00000000 + + + PA + Peripheral address + 0 + 32 + + + + + CMAR3 + CMAR3 + DMA channel 3 memory address + register + 0x3C + 0x20 + read-write + 0x00000000 + + + MA + Memory address + 0 + 32 + + + + + + + FLASH + Flash + Flash + 0x40022000 + + 0x0 + 0x400 + registers + + + FLASH + FLASH global Interrupt + 3 + + + + ACR + ACR + Access control register + 0x0 + 0x20 + read-write + 0x00000600 + + + LATENCY + Latency + 0 + 1 + + + + + KEYR + KEYR + Flash key register + 0x8 + 0x20 + write-only + 0x00000000 + + + KEY + Flash key + 0 + 32 + + + + + OPTKEYR + OPTKEYR + Option byte key register + 0xC + 0x20 + write-only + 0x00000000 + + + OPTKEY + Option byte key + 0 + 32 + + + + + SR + SR + Status register + 0x10 + 0x20 + read-write + 0x00000000 + + + BSY + Busy + 16 + 1 + + + OPTVERR + Option and Engineering bits loading + validity error + 15 + 1 + + + WRPERR + Write protected error + 4 + 1 + + + EOP + End of operation + 0 + 1 + + + + + CR + CR + Flash control register + 0x14 + 0x20 + read-write + 0xC0000000 + + + LOCK + FLASH_CR Lock + 31 + 1 + + + OPTLOCK + Options Lock + 30 + 1 + + + OBL_LAUNCH + Force the option byte + loading + 27 + 1 + + + ERRIE + Error interrupt enable + 25 + 1 + + + EOPIE + End of operation interrupt + enable + 24 + 1 + + + PGTSTRT + Flash main memory program start + 19 + 1 + + + OPTSTRT + Option byte program start + 17 + 1 + + + SER + Sector erase + 11 + 1 + + + MER + Mass erase + 2 + 1 + + + PER + Page erase + 1 + 1 + + + PG + Programming + 0 + 1 + + + + + OPTR + OPTR + Flash option register + 0x20 + 0x20 + read-write + 0x4F55B0AA + + + nBOOT1 + Boot configuration + 15 + 1 + + + NRST_MODE + NRST_MODE + 14 + 1 + + + WWDG_SW + Window watchdog selection + 13 + 1 + + + IDWG_SW + Independent watchdog + selection + 12 + 1 + + + BORF_LEV + These bits contain the VDD supply level + threshold that activates the reset + 9 + 3 + + + BOREN + BOR reset Level + 8 + 1 + + + RDP + Read Protection + 0 + 8 + + + + + SDKR + SDKR + Flash SDK address + register + 0x24 + 0x20 + read-write + 0xFFE0001F + + + SDK_END + SDK area end address + 8 + 5 + + + SDK_STRT + SDK area start address + 0 + 5 + + + + + WRPR + WRPR + Flash WRP address + register + 0x2C + 0x20 + read-write + 0x0000FFFF + + + WRP + WRP address + 0 + 16 + + + + + STCR + STCR + Flash sleep time config + register + 0x90 + 0x20 + read-write + 0x00006400 + + + SLEEP_TIME + FLash sleep time configuration(counter based on HSI_10M) + 8 + 8 + + + SLEEP_EN + FLash sleep enable + 0 + 1 + + + + + TS0 + TS0 + Flash TS0 + register + 0x100 + 0x20 + read-write + 0x000000B4 + + + TS0 + FLash TS0 register + 0 + 8 + + + + + TS1 + TS1 + Flash TS1 + register + 0x104 + 0x20 + read-write + 0x000001B0 + + + TS1 + FLash TS1 register + 0 + 9 + + + + + TS2P + TS2P + Flash TS2P + register + 0x108 + 0x20 + read-write + 0x000000B4 + + + TS2P + FLash TS2P register + 0 + 8 + + + + + TPS3 + TPS3 + Flash TPS3 + register + 0x10C + 0x20 + read-write + 0x000006C0 + + + TPS3 + FLash TPS3 register + 0 + 11 + + + + + TS3 + TS3 + Flash TS3 + register + 0x110 + 0x20 + read-write + 0x000000B4 + + + TS3 + FLash TS3 register + 0 + 8 + + + + + PERTPE + PERTPE + Flash PERTPE + register + 0x114 + 0x20 + read-write + 0x0000EA60 + + + PERTPE + FLash PERTPE register + 0 + 17 + + + + + SMERTPE + SMERTPE + Flash SMERTPE + register + 0x118 + 0x20 + read-write + 0x0000FD20 + + + SMERTPE + FLash SMERTPE register + 0 + 17 + + + + + PRGTPE + PRGTPE + Flash PRGTPE + register + 0x11C + 0x20 + read-write + 0x00008CA0 + + + PRGTPE + FLash PRGTPE register + 0 + 16 + + + + + PRETPE + PRETPE + Flash PRETPE + register + 0x120 + 0x20 + read-write + 0x000012C0 + + + PRETPE + FLash PRETPE register + 0 + 13 + + + + + + + CRC + CRC calculation unit + CRC + 0x40023000 + + 0x0 + 0x400 + registers + + + + DR + DR + Data register + 0x0 + 0x20 + read-write + 0xFFFFFFFF + + + DR + Data Register + 0 + 32 + + + + + IDR + IDR + Independent Data register + 0x4 + 0x20 + read-write + 0x00000000 + + + IDR + Independent Data register + 0 + 8 + + + + + CR + CR + Control register + 0x8 + 0x20 + write-only + 0x00000000 + + + RESET + Reset bit + 0 + 1 + + + + + + + SPI1 + Serial peripheral interface + SPI + 0x40013000 + + 0x0 + 0x400 + registers + + + SPI1 + SPI1 global Interrupt + 25 + + + + CR1 + CR1 + control register 1 + 0x0 + 0x20 + read-write + 0x0000 + + + BIDIMODE + Bidirectional data mode + enable + 15 + 1 + + + BIDIOE + Output enable in bidirectional + mode + 14 + 1 + + + RXONLY + Receive only + 10 + 1 + + + SSM + Software slave management + 9 + 1 + + + SSI + Internal slave selection + 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 + 0x0000 + + + SLVFM + Slave fast mode enable + 15 + 1 + + + LDMA_TX + Last DAM Transmit(TX) + 14 + 1 + + + LDMA_RX + Last DAM Transmit(RX) + 13 + 1 + + + FRXTH + FIFO reception threshold + 12 + 1 + + + DS + Data length + + 11 + 1 + + + TXEIE + Tx buffer empty interrupt + enable + 7 + 1 + + + RXNEIE + RX buffer not empty interrupt + enable + 6 + 1 + + + ERRIE + Error interrupt enable + 5 + 1 + + + SSOE + SS output enable + 2 + 1 + + + TXDMAEN + Tx buffer DMA enable + 1 + 1 + + + RXDMAEN + Rx buffer DMA enable + 0 + 1 + + + + + SR + SR + status register + 0x8 + 0x20 + 0x0002 + + + FTLVL + FIFO transmission level + 11 + 2 + read-only + + + FRLVL + FIFO reception level + 9 + 2 + read-only + + + BSY + Busy flag + 7 + 1 + read-only + + + OVR + Overrun flag + 6 + 1 + read-only + + + MODF + Mode fault + 5 + 1 + read-only + + + TXE + Transmit buffer empty + 1 + 1 + read-only + + + RXNE + Receive buffer not empty + 0 + 1 + read-only + + + + + DR + DR + data register + 0xC + 0x20 + read-write + 0x0000 + + + DR + Data register + 0 + 16 + + + + + + + SPI2 + 0x40003800 + + SPI2 + SPI2 global Interrupt + 26 + + + + I2C + Inter integrated circuit + I2C + 0x40005400 + + 0x0 + 0x400 + registers + + + I2C1 + I2C1 global Interrupt + 23 + + + + CR1 + CR1 + Control register 1 + 0x0 + 0x20 + read-write + 0x0000 + + + SWRST + Software reset + 15 + 1 + + + PEC + Packet error checking + 12 + 1 + + + POS + Acknowledge/PEC Position (for data + reception) + 11 + 1 + + + ACK + Acknowledge enable + 10 + 1 + + + STOP + Stop generation + 9 + 1 + + + START + Start generation + 8 + 1 + + + NOSTRETCH + Clock stretching disable (Slave + mode) + 7 + 1 + + + ENGC + General call enable + 6 + 1 + + + ENPEC + PEC enable + 5 + 1 + + + PE + Peripheral enable + 0 + 1 + + + + + CR2 + CR2 + Control register 2 + 0x4 + 0x20 + read-write + 0x0000 + + + LAST + DMA last transfer + 12 + 1 + + + DMAEN + DMA requests enable + 11 + 1 + + + ITBUFEN + Buffer interrupt enable + 10 + 1 + + + ITEVTEN + Event interrupt enable + 9 + 1 + + + ITERREN + Error interrupt enable + 8 + 1 + + + FREQ + Peripheral clock frequency + 0 + 6 + + + + + OAR1 + OAR1 + Own address register 1 + 0x8 + 0x20 + read-write + 0x0000 + + + ADD + Interface address + 1 + 7 + + + + + DR + DR + Data register + 0x10 + 0x20 + read-write + 0x0000 + + + DR + 8-bit data register + 0 + 8 + + + + + SR1 + SR1 + Status register 1 + 0x14 + 0x20 + 0x0000 + + + PECERR + PEC Error in reception + 12 + 1 + read-write + + + OVR + Overrun/Underrun + 11 + 1 + read-write + + + AF + Acknowledge failure + 10 + 1 + read-write + + + ARLO + Arbitration lost (master + mode) + 9 + 1 + read-write + + + BERR + Bus error + 8 + 1 + read-write + + + TxE + Data register empty + (transmitters) + 7 + 1 + read-only + + + RxNE + Data register not empty + (receivers) + 6 + 1 + read-only + + + STOPF + Stop detection (slave + mode) + 4 + 1 + read-only + + + BTF + Byte transfer finished + 2 + 1 + read-only + + + ADDR + Address sent (master mode)/matched + (slave mode) + 1 + 1 + read-only + + + SB + Start bit (Master mode) + 0 + 1 + read-only + + + + + SR2 + SR2 + Status register 2 + 0x18 + 0x20 + read-only + 0x0000 + + + PEC + acket error checking + register + 8 + 8 + + + DUALF + Dual flag (Slave mode) + 7 + 1 + + + GENCALL + General call address (Slave + mode) + 4 + 1 + + + TRA + Transmitter/receiver + 2 + 1 + + + BUSY + Bus busy + 1 + 1 + + + MSL + Master/slave + 0 + 1 + + + + + CCR + CCR + Clock control register + 0x1C + 0x20 + read-write + 0x0000 + + + F_S + I2C master mode selection + 15 + 1 + + + DUTY + Fast mode duty cycle + 14 + 1 + + + CCR + Clock control register in Fast/Standard + mode (Master mode) + 0 + 12 + + + + + TRISE + TRISE + TRISE register + 0x20 + 0x20 + read-write + 0x0002 + + + TRISE + Maximum rise time in Fast/Standard mode + (Master mode) + 0 + 6 + + + + + + + LED + LED CONTROLLER + LED + 0x40002400 + + 0x0 + 0x400 + registers + + + LED + LED global Interrupt + 30 + + + + CR + LED_CR + Control register + 0x0 + 0x20 + read-write + 0x0000 + + + EHS + Light control + 12 + 2 + + + IE + LED interrupt enable + 3 + 1 + + + LED_COM_SEL + LED COM Selection + 1 + 2 + + + LEDON + LED enable + 0 + 1 + + + + + PR + LED_PR + Prescaler register + 0x4 + 0x20 + read-write + 0x0000 + + + PR + Prescaler control + 0 + 8 + + + + + TR + LED_TR + Time register + 0x8 + 0x20 + read-write + 0x0000 + + + T2 + Switch time + 8 + 8 + + + T1 + Light on time + 0 + 8 + + + + + DR0 + LED_DR0 + Data0 register + 0x0C + 0x20 + read-write + 0x0000 + + + DATA0_DP + 8-bit data register + 7 + 1 + + + DATA0_G + 8-bit data register + 6 + 1 + + + DATA0_F + 8-bit data register + 5 + 1 + + + DATA0_E + 8-bit data register + 4 + 1 + + + DATA0_D + 8-bit data register + 3 + 1 + + + DATA0_C + 8-bit data register + 2 + 1 + + + DATA0_B + 8-bit data register + 1 + 1 + + + DATA0_A + 8-bit data register + 0 + 1 + + + + + DR1 + LED_DR1 + Data1 register + 0x10 + 0x20 + read-write + 0x0000 + + + DATA1_DP + 8-bit data register + 7 + 1 + + + DATA1_G + 8-bit data register + 6 + 1 + + + DATA1_F + 8-bit data register + 5 + 1 + + + DATA1_E + 8-bit data register + 4 + 1 + + + DATA1_D + 8-bit data register + 3 + 1 + + + DATA1_C + 8-bit data register + 2 + 1 + + + DATA1_B + 8-bit data register + 1 + 1 + + + DATA1_A + 8-bit data register + 0 + 1 + + + + + DR2 + LED_DR2 + Data2 register + 0x14 + 0x20 + read-write + 0x0000 + + + DATA2_DP + 8-bit data register + 7 + 1 + + + DATA2_G + 8-bit data register + 6 + 1 + + + DATA2_F + 8-bit data register + 5 + 1 + + + DATA2_E + 8-bit data register + 4 + 1 + + + DATA2_D + 8-bit data register + 3 + 1 + + + DATA2_C + 8-bit data register + 2 + 1 + + + DATA2_B + 8-bit data register + 1 + 1 + + + DATA2_A + 8-bit data register + 0 + 1 + + + + + DR3 + LED_DR3 + Data3 register + 0x18 + 0x20 + read-write + 0x0000 + + + DATA3_DP + 8-bit data register + 7 + 1 + + + DATA3_G + 8-bit data register + 6 + 1 + + + DATA3_F + 8-bit data register + 5 + 1 + + + DATA3_E + 8-bit data register + 4 + 1 + + + DATA3_D + 8-bit data register + 3 + 1 + + + DATA3_C + 8-bit data register + 2 + 1 + + + DATA3_B + 8-bit data register + 1 + 1 + + + DATA3_A + 8-bit data register + 0 + 1 + + + + + IR + LED_IR + Interrupt register 1 + 0x1C + 0x20 + 0x0000 + + + FLAG + interrupt flag + 0 + 1 + read-write + + + + + + + DBGMCU + Debug support + DBGMCU + 0x40015800 + + 0x0 + 0x400 + registers + + + + IDCODE + IDCODE + MCU Device ID Code Register + 0x0 + 0x20 + read-only + 0x0 + + + + + + CR + CR + Debug MCU Configuration + Register + 0x4 + 0x20 + read-write + 0x0 + + + DBG_STOP + Debug Stop Mode + 1 + 1 + + + + + APB_FZ1 + APB_FZ1 + APB Freeze Register1 + 0x8 + 0x20 + read-write + 0x0 + + + DBG_TIMER3_STOP + Debug Timer 3 stopped when Core is + halted + 1 + 1 + + + DBG_RTC_STOP + Debug RTC stopped when Core is + halted + 10 + 1 + + + DBG_WWDG_STOP + Debug Window Wachdog stopped when Core + is halted + 11 + 1 + + + DBG_IWDG_STOP + Debug Independent Wachdog stopped when + Core is halted + 12 + 1 + + + DBG_LPTIM_STOP + Debug LPTIM stopped when Core is + halted + 31 + 1 + + + + + APB_FZ2 + APB_FZ2 + APB Freeze Register2 + 0xC + 0x20 + read-write + 0x0 + + + DBG_TIMER1_STOP + Debug Timer 1 stopped when Core is + halted + 11 + 1 + + + DBG_TIMER14_STOP + Debug Timer 14 stopped when Core is + halted + 15 + 1 + + + DBG_TIMER16_STOP + Debug Timer 16 stopped when Core is + halted + 17 + 1 + + + DBG_TIMER17_STOP + Debug Timer 17 stopped when Core is + halted + 18 + 1 + + + + + + + diff --git a/Misc/py32f072xx.svd b/Misc/SVD/py32f072xx.svd similarity index 96% rename from Misc/py32f072xx.svd rename to Misc/SVD/py32f072xx.svd index f2becf6..46b4ae0 100644 --- a/Misc/py32f072xx.svd +++ b/Misc/SVD/py32f072xx.svd @@ -1,20252 +1,20250 @@ - - - - Puya - Puya - PY32F0xx_DFP - - PY32F0 - 1.0.0 - Arm 32-bit Cortex-M0+ Microcontroller based device, CPU clock up to 48 MHz. - - - - CM0+ - r0p1 - little - false - false - 4 - false - - - - 8 - - 32 - - - 32 - - read-write - - 0x00000000 - - 0xFFFFFFFF - - - - ADC - Analog to Digital Converter - ADC - 0x40012400 - - 0x0 - 0x400 - registers - - - ADC_COMP - ADC and COMP Interrupt through EXTI Lines 17 and 18 - 12 - - - - SR - desc SR - 0x0 - 32 - read-write - 0x0 - - - AWD - desc AWD - 0 - 0 - read-write - - - EOC - desc EOC - 1 - 1 - read-write - - - JEOC - desc JEOC - 2 - 2 - read-write - - - JSTRT - desc JSTRT - 3 - 3 - read-write - - - STRT - desc STRT - 4 - 4 - read-write - - - OVER - desc OVER - 5 - 5 - read-write - - - - - CR1 - desc CR1 - 0x4 - 32 - read-write - 0x0 - - - AWDCH - desc AWDCH - 4 - 0 - read-write - - - EOCIE - desc EOCIE - 5 - 5 - read-write - - - AWDIE - desc AWDIE - 6 - 6 - read-write - - - JEOCIE - desc JEOCIE - 7 - 7 - read-write - - - SCAN - desc SCAN - 8 - 8 - read-write - - - AWDSGL - desc AWDSGL - 9 - 9 - read-write - - - JAUTO - desc JAUTO - 10 - 10 - read-write - - - DISCEN - desc DISCEN - 11 - 11 - read-write - - - JDISCEN - desc JDISCEN - 12 - 12 - read-write - - - DISCNUM - desc DISCNUM - 15 - 13 - read-write - - - JAWDEN - desc JAWDEN - 22 - 22 - read-write - - - AWDEN - desc AWDEN - 23 - 23 - read-write - - - RESSEL - desc RESSEL - 25 - 24 - read-write - - - ADSTP - desc ADSTP - 27 - 27 - read-write - - - MSBSEL - desc MSBSEL - 28 - 28 - read-write - - - OVETIE - desc OVETIE - 29 - 29 - read-write - - - - - CR2 - desc CR2 - 0x8 - 32 - read-write - 0x0 - - - ADON - desc ADON - 0 - 0 - read-write - - - CONT - desc CONT - 1 - 1 - read-write - - - CAL - desc CAL - 2 - 2 - read-write - - - RSTCAL - desc RSTCAL - 3 - 3 - read-write - - - DMA - desc DMA - 8 - 8 - read-write - - - ALIGN - desc ALIGN - 11 - 11 - read-write - - - JEXTSEL - desc JEXTSEL - 14 - 12 - read-write - - - JEXTTRIG - desc JEXTTRIG - 15 - 15 - read-write - - - EXTSEL - desc EXTSEL - 19 - 17 - read-write - - - EXTTRIG - desc EXTTRIG - 20 - 20 - read-write - - - JSWSTART - desc JSWSTART - 21 - 21 - read-write - - - SWSTART - desc SWSTART - 22 - 22 - read-write - - - TSVREFE - desc TSVREFE - 23 - 23 - read-write - - - VERFBUFFEREN - desc VERFBUFFEREN - 25 - 25 - read-write - - - VERFBUFFERSEL - desc VERFBUFFERSEL - 27 - 26 - read-write - - - - - SMPR1 - desc SMPR1 - 0xC - 32 - read-write - 0x0 - - - SMP20 - desc SMP20 - 2 - 0 - read-write - - - SMP21 - desc SMP21 - 5 - 3 - read-write - - - SMP22 - desc SMP22 - 8 - 6 - read-write - - - SMP23 - desc SMP23 - 11 - 9 - read-write - - - - - SMPR2 - desc SMPR2 - 0x10 - 32 - read-write - 0x0 - - - SMP10 - desc SMP10 - 2 - 0 - read-write - - - SMP11 - desc SMP11 - 5 - 3 - read-write - - - SMP12 - desc SMP12 - 8 - 6 - read-write - - - SMP13 - desc SMP13 - 11 - 9 - read-write - - - SMP14 - desc SMP14 - 14 - 12 - read-write - - - SMP15 - desc SMP15 - 17 - 15 - read-write - - - SMP16 - desc SMP16 - 20 - 18 - read-write - - - SMP17 - desc SMP17 - 23 - 21 - read-write - - - SMP18 - desc SMP18 - 26 - 24 - read-write - - - SMP19 - desc SMP19 - 29 - 27 - read-write - - - - - SMPR3 - desc SMPR2 - 0x14 - 32 - read-write - 0x0 - - - SMP0 - desc SMP0 - 2 - 0 - read-write - - - SMP1 - desc SMP1 - 5 - 3 - read-write - - - SMP2 - desc SMP2 - 8 - 6 - read-write - - - SMP3 - desc SMP3 - 11 - 9 - read-write - - - SMP4 - desc SMP4 - 14 - 12 - read-write - - - SMP5 - desc SMP5 - 17 - 15 - read-write - - - SMP6 - desc SMP6 - 20 - 18 - read-write - - - SMP7 - desc SMP7 - 23 - 21 - read-write - - - SMP8 - desc SMP8 - 26 - 24 - read-write - - - SMP9 - desc SMP9 - 29 - 27 - read-write - - - - - JOFR1 - desc JOFR1 - 0x18 - 32 - read-write - 0x0 - - - JOFFSET1 - desc JOFFSET1 - 11 - 0 - read-write - - - - - JOFR2 - desc JOFR2 - 0x1C - 32 - read-write - 0x0 - - - JOFFSET2 - desc JOFFSET2 - 11 - 0 - read-write - - - - - JOFR3 - desc JOFR3 - 0x20 - 32 - read-write - 0x0 - - - JOFFSET3 - desc JOFFSET3 - 11 - 0 - read-write - - - - - JOFR4 - desc JOFR4 - 0x24 - 32 - read-write - 0x0 - - - JOFFSET4 - desc JOFFSET4 - 11 - 0 - read-write - - - - - HTR - desc HTR - 0x28 - 32 - read-write - 0x0 - - - HT - desc HT - 11 - 0 - read-write - - - - - LTR - desc LTR - 0x2C - 32 - read-write - 0x0 - - - LT - desc LT - 11 - 0 - read-write - - - - - SQR1 - desc SQR1 - 0x30 - 32 - read-write - 0x0 - - - SQ13 - desc SQ13 - 4 - 0 - read-write - - - SQ14 - desc SQ14 - 9 - 5 - read-write - - - SQ15 - desc SQ15 - 14 - 10 - read-write - - - SQ16 - desc SQ16 - 19 - 15 - read-write - - - L - desc L - 23 - 20 - read-write - - - - - SQR2 - desc SQR2 - 0x34 - 32 - read-write - 0x0 - - - SQ7 - desc SQ7 - 4 - 0 - read-write - - - SQ8 - desc SQ8 - 9 - 5 - read-write - - - SQ9 - desc SQ9 - 14 - 10 - read-write - - - SQ10 - desc SQ10 - 19 - 15 - read-write - - - SQ11 - desc SQ11 - 24 - 20 - read-write - - - SQ12 - desc SQ12 - 29 - 25 - read-write - - - - - SQR3 - desc SQR3 - 0x38 - 32 - read-write - 0x0 - - - SQ1 - desc SQ1 - 4 - 0 - read-write - - - SQ2 - desc SQ2 - 9 - 5 - read-write - - - SQ3 - desc SQ3 - 14 - 10 - read-write - - - SQ4 - desc SQ4 - 19 - 15 - read-write - - - SQ5 - desc SQ5 - 24 - 20 - read-write - - - SQ6 - desc SQ6 - 29 - 25 - read-write - - - - - JSQR - desc JSQR - 0x3C - 32 - read-write - 0x0 - - - JSQ1 - desc JSQ1 - 4 - 0 - read-write - - - JSQ2 - desc JSQ2 - 9 - 5 - read-write - - - JSQ3 - desc JSQ3 - 14 - 10 - read-write - - - JSQ4 - desc JSQ4 - 19 - 15 - read-write - - - JL - desc JL - 21 - 20 - read-write - - - - - JDR1 - desc JDR1 - 0x40 - 32 - read-only - 0x0 - - - JDR1 - desc JDR1 - 15 - 0 - read-only - - - - - JDR2 - desc JDR2 - 0x44 - 32 - read-only - 0x0 - - - JDR2 - desc JDR2 - 15 - 0 - read-only - - - - - JDR3 - desc JDR3 - 0x48 - 32 - read-only - 0x0 - - - JDR3 - desc JDR3 - 15 - 0 - read-only - - - - - JDR4 - desc JDR4 - 0x4C - 32 - read-only - 0x0 - - - JDR4 - desc JDR4 - 15 - 0 - read-only - - - - - DR - desc DR - 0x50 - 32 - read-only - 0x0 - - - DATA - desc DATA - 15 - 0 - read-only - - - - - CCSR - desc CCSR - 0x54 - 32 - read-write - 0x0 - - - CALSEL - desc CALSEL - 11 - 11 - read-write - - - CALSMP - desc CALSMP - 13 - 12 - read-write - - - CALBYP - desc CALBYP - 14 - 14 - read-write - - - CALSET - desc CALSET - 15 - 15 - read-write - - - CALFAIL - desc CALFAIL - 30 - 30 - read-write - - - CALON - desc CALON - 31 - 31 - read-only - - - - - CALRR1 - desc CALRR1 - 0x58 - 32 - read-only - 0x0 - - - CALC10OUT - desc CALC10OUT - 7 - 0 - read-only - - - CALC11OUT - desc CALC11OUT - 15 - 8 - read-only - - - CALBOUT - desc CALBOUT - 23 - 16 - read-only - - - - - CALRR2 - desc CALRR2 - 0x5C - 32 - read-only - 0x0 - - - CALC6OUT - desc CALC6OUT - 7 - 0 - read-only - - - CALC7OUT - desc CALC7OUT - 15 - 8 - read-only - - - CALC8OUT - desc CALC8OUT - 23 - 16 - read-only - - - CALC9OUT - desc CALC9OUT - 31 - 24 - read-only - - - - - CALFIR1 - desc CALFIR1 - 0x60 - 32 - read-write - 0x0 - - - CALC10IO - desc CALC10IO - 7 - 0 - read-write - - - CALC11IO - desc CALC11IO - 15 - 8 - read-write - - - CALBIO - desc CALBIO - 23 - 16 - read-write - - - - - CALFIR2 - desc CALFIR2 - 0x64 - 32 - read-write - 0x0 - - - CALC6IO - desc CALC6IO - 7 - 0 - read-write - - - CALC7IO - desc CALC7IO - 15 - 8 - read-write - - - CALC8IO - desc CALC8IO - 23 - 16 - read-write - - - CALC9IO - desc CALC9IO - 31 - 24 - read-write - - - - - - - CAN - desc CAN - CAN - 0x40006400 - - 0x0 - 0x400 - registers - - - CAN - CAN global Interrupt - 30 - - - - TSNCR - desc TSNCR - 0x0 - 32 - read-write - 0x2010801 - - - VERSION - desc VERSION - 15 - 0 - read-only - - - CES - desc CES - 16 - 16 - read-write - - - ROP - desc ROP - 17 - 17 - read-write - - - TMSE - desc TMSE - 18 - 18 - read-write - - - TSEN - desc TSEN - 24 - 24 - read-write - - - TSPOS - desc TSPOS - 25 - 25 - read-write - - - - - ACBTR - desc ACBTR - 0x4 - 32 - read-write - 0x5050008 - - - AC_SEG_1 - desc AC_SEG_1 - 8 - 0 - read-write - - - AC_SEG_2 - desc AC_SEG_2 - 22 - 16 - read-write - - - AC_SJW - desc AC_SJW - 30 - 24 - read-write - - - - - FDBTR - desc FDBTR - 0x8 - 32 - read-write - 0x2020003 - - - FD_SEG_1 - desc FD_SEG_1 - 7 - 0 - read-write - - - FD_SEG_2 - desc FD_SEG_2 - 22 - 16 - read-write - - - FD_SJW - desc FD_SJW - 30 - 24 - read-write - - - - - XLBTR - desc XLBTR - 0xC - 32 - read-write - 0x2020003 - - - XL_SEG_1 - desc XL_SEG_1 - 7 - 0 - read-write - - - XL_SEG_2 - desc XL_SEG_2 - 22 - 16 - read-write - - - XL_SJW - desc XL_SJW - 30 - 24 - read-write - - - - - RLSSP - desc RLSSP - 0x10 - 32 - read-write - 0x77000000 - - - PRESC - desc PRESC - 4 - 0 - read-write - - - FD_SSPOFF - desc FD_SSPOFF - 15 - 8 - read-write - - - XL_SSPOFF - desc XL_SSPOFF - 23 - 16 - read-write - - - REALIM - desc REALIM - 26 - 24 - read-write - - - RETLIM - desc RETLIM - 30 - 28 - read-write - - - - - IFR - desc IFR - 0x14 - 32 - read-write - 0x0 - - - AIF - desc AIF - 0 - 0 - read-write - - - EIF - desc EIF - 1 - 1 - read-write - - - TSIF - desc TSIF - 2 - 2 - read-write - - - TPIF - desc TPIF - 3 - 3 - read-write - - - RAFIF - desc RAFIF - 4 - 4 - read-write - - - RFIF - desc RFIF - 5 - 5 - read-write - - - ROIF - desc ROIF - 6 - 6 - read-write - - - RIF - desc RIF - 7 - 7 - read-write - - - BEIF - desc BEIF - 8 - 8 - read-write - - - ALIF - desc ALIF - 9 - 9 - read-write - - - EPIF - desc EPIF - 10 - 10 - read-write - - - TTIF - desc TTIF - 11 - 11 - read-write - - - TEIF - desc TEIF - 12 - 12 - read-write - - - WTIF - desc WTIF - 13 - 13 - read-write - - - MDWIF - desc MDWIF - 14 - 14 - read-write - - - MDEIF - desc MDEIF - 15 - 15 - read-write - - - MAEIF - desc MAEIF - 16 - 16 - read-write - - - SEIF - desc SEIF - 17 - 17 - read-write - - - SWIF - desc SWIF - 18 - 18 - read-write - - - EPASS - desc EPASS - 30 - 30 - read-only - - - EWARN - desc EWARN - 31 - 31 - read-only - - - - - IER - desc IER - 0x18 - 32 - read-write - 0x468FE - - - EIE - desc EIE - 1 - 1 - read-write - - - TSIE - desc TSIE - 2 - 2 - read-write - - - TPIE - desc TPIE - 3 - 3 - read-write - - - RAFIE - desc RAFIE - 4 - 4 - read-write - - - RFIE - desc RFIE - 5 - 5 - read-write - - - ROIE - desc ROIE - 6 - 6 - read-write - - - RIE - desc RIE - 7 - 7 - read-write - - - BEIE - desc BEIE - 8 - 8 - read-write - - - ALIE - desc ALIE - 9 - 9 - read-write - - - EPIE - desc EPIE - 10 - 10 - read-write - - - TTIE - desc TTIE - 11 - 11 - read-write - - - WTIE - desc WTIE - 13 - 13 - read-write - - - MDWIE - desc MDWIE - 14 - 14 - read-write - - - SWIE - desc SWIE - 18 - 18 - read-write - - - - - TSR - desc TSR - 0x1C - 32 - read-only - 0x0 - - - HANDLE_L - desc HANDLE_L - 7 - 0 - read-only - - - TSTAT_L - desc TSTAT_L - 10 - 8 - read-only - - - HANDLE_H - desc HANDLE_H - 23 - 16 - read-only - - - TSTAT_H - desc TSTAT_H - 26 - 24 - read-only - - - - - TTSL - desc TTSL - 0x20 - 32 - read-only - 0x2000000 - - - TTS - desc TTS - 31 - 0 - read-only - - - - - TTSH - desc TTSH - 0x24 - 32 - read-only - 0x2000000 - - - TTS - desc TTS - 31 - 0 - read-only - - - - - MCR - desc MCR - 0x28 - 32 - read-write - 0x900080 - - - BUSOFF - desc BUSOFF - 0 - 0 - read-write - - - LBMI - desc LBMI - 5 - 5 - read-write - - - LBME - desc LBME - 6 - 6 - read-write - - - RESET - desc RESET - 7 - 7 - read-write - - - TSA - desc TSA - 8 - 8 - read-write - - - TSALL - desc TSALL - 9 - 9 - read-write - - - TSONE - desc TSONE - 10 - 10 - read-write - - - TPA - desc TPA - 11 - 11 - read-write - - - TPE - desc TPE - 12 - 12 - read-write - - - STBY - desc STBY - 13 - 13 - read-write - - - LOM - desc LOM - 14 - 14 - read-write - - - TBSEL - desc TBSEL - 15 - 15 - read-write - - - TSSTAT - desc TSSTAT - 17 - 16 - read-only - - - TSFF - desc TSFF - 18 - 18 - read-only - - - TTTBM - desc TTTBM - 20 - 20 - read-write - - - TSMODE - desc TSMODE - 21 - 21 - read-write - - - TSNEXT - desc TSNEXT - 22 - 22 - read-write - - - FD_ISO - desc FD_ISO - 23 - 23 - read-write - - - RSTAT - desc RSTAT - 25 - 24 - read-only - - - RBALL - desc RBALL - 27 - 27 - read-write - - - RREL - desc RREL - 28 - 28 - read-write - - - ROV - desc ROV - 29 - 29 - read-only - - - ROM - desc ROM - 30 - 30 - read-write - - - SACK - desc SACK - 31 - 31 - read-write - - - - - WECR - desc WECR - 0x2C - 32 - read-write - 0x1B - - - EWL - desc EWL - 3 - 0 - read-write - - - AFWL - desc AFWL - 7 - 4 - read-write - - - ALC - desc ALC - 12 - 8 - read-only - - - KOER - desc KOER - 15 - 13 - read-only - - - RECNT - desc RECNT - 23 - 16 - read-only - - - TECNT - desc TECNT - 31 - 24 - read-only - - - - - REFMSG - desc REFMSG - 0x30 - 32 - read-write - 0x0 - - - REF_ID - desc REF_ID - 28 - 0 - read-write - - - REF_IDE - desc REF_IDE - 31 - 31 - read-write - - - - - TTCR - desc TTCR - 0x34 - 32 - read-write - 0x0 - - - TTPTR - desc TTPTR - 5 - 0 - read-write - - - TTYPE - desc TTYPE - 10 - 8 - read-write - - - TEW - desc TEW - 15 - 12 - read-write - - - TBPTR - desc TBPTR - 21 - 16 - read-write - - - TBF - desc TBF - 22 - 22 - read-write - - - TBE - desc TBE - 23 - 23 - read-write - - - TTEN - desc TTEN - 24 - 24 - read-write - - - T_PRESC - desc T_PRESC - 26 - 25 - read-write - - - - - TTTR - desc TTTR - 0x38 - 32 - read-write - 0xFFFF0000 - - - TT_TRIG - desc TT_TRIG - 15 - 0 - read-write - - - TT_WTRIG - desc TT_WTRIG - 31 - 16 - read-write - - - - - SCMS - desc SCMS - 0x3C - 32 - read-write - 0x0 - - - XMREN - desc XMREN - 0 - 0 - read-write - - - FSTIM - desc FSTIM - 3 - 1 - read-write - - - ACFA - desc ACFA - 24 - 24 - read-write - - - TXS - desc TXS - 25 - 25 - read-only - - - TXB - desc TXB - 26 - 26 - read-only - - - HELOC - desc HELOC - 28 - 27 - read-only - - - MPEN - desc MPEN - 31 - 31 - read-write - - - - - MESR - desc MESR - 0x40 - 32 - read-write - 0x0 - - - MEBP1 - desc MEBP1 - 5 - 0 - read-write - - - ME1EE - desc ME1EE - 6 - 6 - read-write - - - MEAEE - desc MEAEE - 7 - 7 - read-write - - - MEBP2 - desc MEBP2 - 13 - 8 - read-write - - - ME2EE - desc ME2EE - 14 - 14 - read-write - - - MEEEC - desc MEEEC - 19 - 16 - read-write - - - MENEC - desc MENEC - 23 - 20 - read-write - - - MEL - desc MEL - 25 - 24 - read-write - - - MES - desc MES - 26 - 26 - read-write - - - - - ACFCR - desc ACFCR - 0x44 - 32 - read-write - 0x10000 - - - ACFADR - desc ACFADR - 3 - 0 - read-write - - - AE_0 - desc AE_0 - 16 - 16 - read-write - - - AE_1 - desc AE_1 - 17 - 17 - read-write - - - AE_2 - desc AE_2 - 18 - 18 - read-write - - - AE_3 - desc AE_3 - 19 - 19 - read-write - - - AE_4 - desc AE_4 - 20 - 20 - read-write - - - AE_5 - desc AE_5 - 21 - 21 - read-write - - - AE_6 - desc AE_6 - 22 - 22 - read-write - - - AE_7 - desc AE_7 - 23 - 23 - read-write - - - AE_8 - desc AE_8 - 24 - 24 - read-write - - - AE_9 - desc AE_9 - 25 - 25 - read-write - - - AE_10 - desc AE_10 - 26 - 26 - read-write - - - AE_11 - desc AE_11 - 27 - 27 - read-write - - - AE_12 - desc AE_12 - 28 - 28 - read-write - - - AE_13 - desc AE_13 - 29 - 29 - read-write - - - AE_14 - desc AE_14 - 30 - 30 - read-write - - - AE_15 - desc AE_15 - 31 - 31 - read-write - - - - - PWMCR - desc PWMCR - 0xB8 - 32 - read-write - 0x2080400 - - - PWMO - desc PWMO - 5 - 0 - read-write - - - PWMS - desc PWMS - 13 - 8 - read-write - - - PWML - desc PWML - 21 - 16 - read-write - - - - - - - COMP1 - Comparator 1 - COMP - 0x40010200 - - 0x0 - 0x10 - registers - - - ADC_COMP - ADC and COMP Interrupt through EXTI Lines 17 and 18 - 12 - - - - CSR - CSR - COMP control and status register - 0x0 - 0x20 - read-write - 0x00000000 - - - COMP_OUT - Comparator output status - 30 - 1 - - - VCSEL - VCSEL - 27 - 1 - - - VCDIV_EN - VCDIV_EN - 26 - 1 - - - VCDIV - VCDIV - 20 - 6 - - - PWRMODE - - Comparator power mode - selector - - 18 - 2 - - - HYST - - Comparator hysteresis enable - selector - - 16 - 1 - - - POLARITY - - Comparator polarity - selector - - 15 - 1 - - - WINMODE - - Comparator non-inverting input - selector for window mode - - 11 - 1 - - - INPSEL - - Comparator signal selector for - non-inverting input - - 6 - 4 - - - INMSEL - - Comparator signal selector for - inverting input INM - - 2 - 4 - - - EN - COMP enable bit - 0 - 1 - - - - - FR - FR - - Comparator Filter - register - - 0x4 - 0x20 - read-write - 0x00000000 - - - FLTCNT1 - Comparator filter and counter - 16 - 16 - - - FLTEN1 - Filter enable bit - 0 - 1 - - - - - - - COMP2 - Comparator2 - COMP - 0x40010210 - - 0x0 - 0x10 - registers - - - ADC_COMP - ADC and COMP Interrupt through EXTI Lines 17 and 18 - 12 - - - - CSR - CSR - COMP control and status register - 0x0 - 0x20 - read-write - 0x00000000 - - - COMP_OUT - Comparator output status - 30 - 1 - - - PWRMODE - - Comparator power mode - selector - - 18 - 2 - - - POLARITY - - Comparator polarity - selector - - 15 - 1 - - - WINMODE - - Comparator non-inverting input - selector for window mode - - 11 - 1 - - - INPSEL - - Comparator signal selector for - non-inverting input - - 6 - 4 - - - INMSEL - - Comparator signal selector for - inverting input INM - - 2 - 4 - - - HYST - - Comparator hysteresis enable - selector - - 1 - 1 - - - EN - COMP enable bit - 0 - 1 - - - - - FR - FR - - Comparator Filter - register - - 0x4 - 0x20 - read-write - 0x00000000 - - - FLTCNT2 - Comparator filter and counter - 16 - 16 - - - FLTEN2 - Filter enable bit - 0 - 1 - - - - - - - COMP3 - Comparator3 - COMP - 0x40010220 - - 0x0 - 0x10 - registers - - - ADC_COMP - ADC and COMP Interrupt through EXTI Lines 17 and 18 - 12 - - - - CSR - CSR - COMP control and status register - 0x0 - 0x20 - read-write - 0x00000000 - - - COMP_OUT - Comparator output status - 30 - 1 - - - PWRMODE - - Comparator power mode - selector - - 18 - 2 - - - POLARITY - - Comparator polarity - selector - - 15 - 1 - - - INPSEL - - Comparator signal selector for - non-inverting input - - 6 - 4 - - - INMSEL - - Comparator signal selector for - inverting input INM - - 2 - 4 - - - HYST - - Comparator hysteresis enable - selector - - 1 - 1 - - - EN - COMP enable bit - 0 - 1 - - - - - FR - FR - - Comparator Filter - register - - 0x4 - 0x20 - read-write - 0x00000000 - - - FLTCNT3 - Comparator filter and counter - 16 - 16 - - - FLTEN3 - Filter enable bit - 0 - 1 - - - - - - - CRC - CRC calculation unit - CRC - 0x40023000 - - 0x0 - 0x400 - registers - - - - DR - DR - Data register - 0x0 - 0x20 - read-write - 0xFFFFFFFF - - - DR - Data Register - 0 - 32 - - - - - IDR - IDR - Independent Data register - 0x4 - 0x20 - read-write - 0x00000000 - - - IDR - Independent Data register - 0 - 8 - - - - - CR - CR - Control register - 0x8 - 0x20 - write-only - 0x00000000 - - - RESET - Reset bit - 0 - 1 - - - - - - - CTC - desc CTC - CTC - 0x40006C00 - - 0x0 - 0x400 - registers - - - RCC_CTC - RCC and CTC global Interrupts - 4 - - - - CTL0 - desc CTL0 - 0x0 - 32 - read-write - 0x2000 - - - CKOKIE - desc CKOKIE - 0 - 0 - read-write - - - CKWARNIE - desc CKWARNIE - 1 - 1 - read-write - - - ERRIE - desc ERRIE - 2 - 2 - read-write - - - EREFIE - desc EREFIE - 3 - 3 - read-write - - - CNTEN - desc CNTEN - 5 - 5 - read-write - - - AUTOTRIM - desc AUTOTRIM - 6 - 6 - read-write - - - SWREFPUL - desc SWREFPUL - 7 - 7 - write-only - - - TRIMVALUE - desc TRIMVALUE - 13 - 8 - read-write - - - - - CTL1 - desc CTL1 - 0x4 - 32 - read-write - 0x2022BB7F - - - RLVALUE - desc RLVALUE - 15 - 0 - read-write - - - CKLIM - desc CKLIM - 23 - 16 - read-write - - - REFPSC - desc REFPSC - 26 - 24 - read-write - - - REFSEL - desc REFSEL - 29 - 28 - read-write - - - REFPOL - desc REFPOL - 31 - 31 - read-write - - - - - SR - desc SR - 0x8 - 32 - read-only - 0x0 - - - CKOKIF - desc CKOKIF - 0 - 0 - read-only - - - CKWARNIF - desc CKWARNIF - 1 - 1 - read-only - - - ERRIF - desc ERRIF - 2 - 2 - read-only - - - EREFIF - desc EREFIF - 3 - 3 - read-only - - - CKERR - desc CKERR - 8 - 8 - read-only - - - REFMISS - desc REFMISS - 9 - 9 - read-only - - - TRIMERR - desc TRIMERR - 10 - 10 - read-only - - - REFDIR - desc REFDIR - 15 - 15 - read-only - - - REFCAP - desc REFCAP - 31 - 16 - read-only - - - - - INTC - desc INTC - 0xC - 32 - write-only - 0x0 - - - CKOKIC - desc CKOKIC - 0 - 0 - write-only - - - CKWARNIC - desc CKWARNIC - 1 - 1 - write-only - - - ERRIC - desc ERRIC - 2 - 2 - write-only - - - EREFIC - desc EREFIC - 3 - 3 - write-only - - - - - - - DAC - desc DAC - DAC - 0x40007400 - - 0x0 - 0x400 - registers - - - TIM6_LPTIM1_DAC - TIM6, LPTIM1, DAC global Interrupts - 17 - - - - CR - desc CR - 0x0 - 32 - read-write - 0x0 - - - EN1 - desc EN1 - 0 - 0 - read-write - - - BOFF1 - desc BOFF1 - 1 - 1 - read-write - - - TEN1 - desc TEN1 - 2 - 2 - read-write - - - TSEL1 - desc TSEL1 - 5 - 3 - read-write - - - WAVE1 - desc WAVE1 - 7 - 6 - read-write - - - MAMP1 - desc MAMP1 - 11 - 8 - read-write - - - DMAEN1 - desc DMAEN1 - 12 - 12 - read-write - - - DMAUDRIE1 - desc DMAUDRIE1 - 13 - 13 - read-write - - - DAC1CEN - desc DAC1CEN - 14 - 14 - read-write - - - EN2 - desc EN2 - 16 - 16 - read-write - - - BOFF2 - desc BOFF2 - 17 - 17 - read-write - - - TEN2 - desc TEN2 - 18 - 18 - read-write - - - TSEL2 - desc TSEL2 - 21 - 19 - read-write - - - WAVE2 - desc WAVE2 - 23 - 22 - read-write - - - MAMP2 - desc MAMP2 - 27 - 24 - read-write - - - DMAEN2 - desc DMAEN2 - 28 - 28 - read-write - - - DMAUDRIE2 - desc DMAUDRIE2 - 29 - 29 - read-write - - - DAC2CEN - desc DAC2CEN - 30 - 30 - read-write - - - - - SWTRIGR - desc SWTRIGR - 0x4 - 32 - write-only - 0x0 - - - SWTRIG1 - desc SWTRIG1 - 0 - 0 - write-only - - - SWTRIG2 - desc SWTRIG2 - 1 - 1 - write-only - - - - - DHR12R1 - desc DHR12R1 - 0x8 - 32 - read-write - 0x0 - - - DACC1DHR - desc DACC1DHR - 11 - 0 - read-write - - - - - DHR12L1 - desc DHR12L1 - 0xC - 32 - read-write - 0x0 - - - DACC1DHR - desc DACC1DHR - 14 - 3 - read-write - - - - - DHR8R1 - desc DHR8R1 - 0x10 - 32 - read-write - 0x0 - - - DACC1DHR - desc DACC1DHR - 7 - 0 - read-write - - - - - DHR12R2 - desc DHR12R2 - 0x14 - 32 - read-write - 0x0 - - - DACC2DHR - desc DACC2DHR - 11 - 0 - read-write - - - - - DHR12L2 - desc DHR12L2 - 0x18 - 32 - read-write - 0x0 - - - DACC2DHR - desc DACC2DHR - 15 - 4 - read-write - - - - - DHR8R2 - desc DHR8R2 - 0x1C - 32 - read-write - 0x0 - - - DACC2DHR - desc DACC2DHR - 7 - 0 - read-write - - - - - DHR12RD - desc DHR12RD - 0x20 - 32 - read-write - 0x0 - - - DACC1DHR - desc DACC1DHR - 11 - 0 - read-write - - - DACC2DHR - desc DACC2DHR - 27 - 16 - read-write - - - - - DHR12LD - desc DHR12LD - 0x24 - 32 - read-write - 0x0 - - - DACC1DHR - desc DACC1DHR - 15 - 4 - read-write - - - DACC2DHR - desc DACC2DHR - 31 - 20 - read-write - - - - - DHR8RD - desc DHR8RD - 0x28 - 32 - read-write - 0x0 - - - DACC1DHR - desc DACC1DHR - 7 - 0 - read-write - - - DACC2DHR - desc DACC2DHR - 15 - 8 - read-write - - - - - DOR1 - desc DOR1 - 0x2C - 32 - read-only - 0x0 - - - DACC1DOR - desc DACC1DOR - 11 - 0 - read-only - - - - - DOR2 - desc DOR2 - 0x30 - 32 - read-only - 0x0 - - - DACC2DOR - desc DACC2DOR - 11 - 0 - read-only - - - - - SR - desc SR - 0x34 - 32 - read-only - 0x0 - - - DMAUDR1 - desc DMAUDR1 - 13 - 13 - read-only - - - DMAUDR2 - desc DMAUDR2 - 29 - 29 - read-only - - - - - - - DBGMCU - Debug support - DBGMCU - 0x40015800 - - 0x0 - 0x400 - registers - - - - IDCODE - IDCODE - MCU Device ID Code Register - 0x0 - 0x20 - read-only - 0x0 - - - DBG_ID - DBG_ID - 0 - 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 - - - - - APB_FZ1 - APB_FZ1 - APB Freeze Register1 - 0x8 - 0x20 - read-write - 0x0 - - - DBG_TIMER2_STOP - - Debug Timer 2 stopped when Core is - halted - - 0 - 1 - - - DBG_TIMER3_STOP - - Debug Timer 3 stopped when Core is - halted - - 1 - 1 - - - DBG_TIMER6_STOP - - Debug Timer 6 stopped when Core is - halted - - 4 - 1 - - - DBG_TIMER7_STOP - - Debug Timer 7 stopped when Core is - halted - - 5 - 1 - - - DBG_RTC_STOP - - Debug RTC stopped when Core is - halted - - 10 - 1 - - - DBG_WWDG_STOP - - Debug Window Wachdog stopped when Core - is halted - - 11 - 1 - - - DBG_IWDG_STOP - - Debug Independent Wachdog stopped when - Core is halted - - 12 - 1 - - - DBG_CAN_STOP - DBG_CAN_STOP - 19 - 1 - - - DBG_I2C1_SMBUS_TIMEOUT - DBG_I2C1_SMBUS_TIMEOUT - 21 - 1 - - - DBG_I2C2_SMBUS_TIMEOUT - DBG_I2C2_SMBUS_TIMEOUT - 22 - 1 - read-only - - - DBG_LPTIM_STOP - - Debug LPTIM stopped when Core is - halted - - 31 - 1 - - - - - APB_FZ2 - APB_FZ2 - APB Freeze Register2 - 0xC - 0x20 - read-write - 0x0 - - - DBG_TIMER1_STOP - - Debug Timer 1 stopped when Core is - halted - - 11 - 1 - - - DBG_TIMER14_STOP - - Debug Timer 14 stopped when Core is - halted - - 15 - 1 - - - DBG_TIMER15_STOP - - Debug Timer 15 stopped when Core is - halted - - 16 - 1 - - - DBG_TIMER16_STOP - - Debug Timer 16 stopped when Core is - halted - - 17 - 1 - - - DBG_TIMER17_STOP - - Debug Timer 17 stopped when Core is - halted - - 18 - 1 - - - - - - - DV - Divider - DV - 0x40023800 - - 0x0 - 0x400 - registers - - - - DEND - DEND - Dividend - 0x0 - 0x20 - read-write - 0x0 - - - DEND - Dividend - 0 - 32 - - - - - SOR - SOR - Divisor - 0x4 - 0x20 - read-write - 0x0 - - - SOR - Divisor - 0 - 32 - - - - - QUOT - QUOT - Quotient - 0x8 - 0x20 - read-only - 0x0 - - - QUOT - Quotient - 0 - 32 - - - - - REMA - REMA - Remainder - 0xC - 0x20 - read-only - 0x0 - - - REMA - Remainder - 0 - 32 - read-only - - - - - SIGN - SIGN - des SIGN - 0x10 - 0x20 - read-write - 0x0 - - - DIV_SIGN - des DIV_SIGN - 0 - 1 - - - - - STAT - STAT - des SIGN - 0x14 - 0x20 - read-write - 0x0 - - - DIV_END - des DIV_END - 0 - 1 - - - DIV_ZERO - des DIV_ZERO - 1 - 1 - - - - - - - DMA - Direct memory access - DMA - 0x40020000 - - 0x0 - 0x400 - registers - - - DMA1_Channel1 - DMA1 Channel 1 Interrupt - 9 - - - DMA1_Channel2_3 - DMA1 Channel 2 and Channel 3 Interrupt - 10 - - - DMA1_Channel4_5_6_7 - DMA1 Channel 4, 5, 6, 7 Interrupts - 11 - - - - ISR - desc ISR - 0x0 - 32 - read-only - 0x0 - - - GIF1 - desc GIF1 - 0 - 0 - read-only - - - TCIF1 - desc TCIF1 - 1 - 1 - read-only - - - HTIF1 - desc HTIF1 - 2 - 2 - read-only - - - TEIF1 - desc TEIF1 - 3 - 3 - read-only - - - GIF2 - desc GIF2 - 4 - 4 - read-only - - - TCIF2 - desc TCIF2 - 5 - 5 - read-only - - - HTIF2 - desc HTIF2 - 6 - 6 - read-only - - - TEIF2 - desc TEIF2 - 7 - 7 - read-only - - - GIF3 - desc GIF3 - 8 - 8 - read-only - - - TCIF3 - desc TCIF3 - 9 - 9 - read-only - - - HTIF3 - desc HTIF3 - 10 - 10 - read-only - - - TEIF3 - desc TEIF3 - 11 - 11 - read-only - - - GIF4 - desc GIF4 - 12 - 12 - read-only - - - TCIF4 - desc TCIF4 - 13 - 13 - read-only - - - HTIF4 - desc HTIF4 - 14 - 14 - read-only - - - TEIF4 - desc TEIF4 - 15 - 15 - read-only - - - GIF5 - desc GIF5 - 16 - 16 - read-only - - - TCIF5 - desc TCIF5 - 17 - 17 - read-only - - - HTIF5 - desc HTIF5 - 18 - 18 - read-only - - - TEIF5 - desc TEIF5 - 19 - 19 - read-only - - - GIF6 - desc GIF6 - 20 - 20 - read-only - - - TCIF6 - desc TCIF6 - 21 - 21 - read-only - - - HTIF6 - desc HTIF6 - 22 - 22 - read-only - - - TEIF6 - desc TEIF6 - 23 - 23 - read-only - - - GIF7 - desc GIF7 - 24 - 24 - read-only - - - TCIF7 - desc TCIF7 - 25 - 25 - read-only - - - HTIF7 - desc HTIF7 - 26 - 26 - read-only - - - TEIF7 - desc TEIF7 - 27 - 27 - read-only - - - - - IFCR - desc IFCR - 0x4 - 32 - write-only - 0x0 - - - CGIF1 - desc CGIF1 - 0 - 0 - write-only - - - CTCIF1 - desc CTCIF1 - 1 - 1 - write-only - - - CHTIF1 - desc CHTIF1 - 2 - 2 - write-only - - - CTEIF1 - desc CTEIF1 - 3 - 3 - write-only - - - CGIF2 - desc CGIF2 - 4 - 4 - write-only - - - CTCIF2 - desc CTCIF2 - 5 - 5 - write-only - - - CHTIF2 - desc CHTIF2 - 6 - 6 - write-only - - - CTEIF2 - desc CTEIF2 - 7 - 7 - write-only - - - CGIF3 - desc CGIF3 - 8 - 8 - write-only - - - CTCIF3 - desc CTCIF3 - 9 - 9 - write-only - - - CHTIF3 - desc CHTIF3 - 10 - 10 - write-only - - - CTEIF3 - desc CTEIF3 - 11 - 11 - write-only - - - CGIF4 - desc CGIF4 - 12 - 12 - write-only - - - CTCIF4 - desc CTCIF4 - 13 - 13 - write-only - - - CHTIF4 - desc CHTIF4 - 14 - 14 - write-only - - - CTEIF4 - desc CTEIF4 - 15 - 15 - write-only - - - CGIF5 - desc CGIF5 - 16 - 16 - write-only - - - CTCIF5 - desc CTCIF5 - 17 - 17 - write-only - - - CHTIF5 - desc CHTIF5 - 18 - 18 - write-only - - - CTEIF5 - desc CTEIF5 - 19 - 19 - write-only - - - CGIF6 - desc CGIF6 - 20 - 20 - write-only - - - CTCIF6 - desc CTCIF6 - 21 - 21 - write-only - - - CHTIF6 - desc CHTIF6 - 22 - 22 - write-only - - - CTEIF6 - desc CTEIF6 - 23 - 23 - write-only - - - CGIF7 - desc CGIF7 - 24 - 24 - write-only - - - CTCIF7 - desc CTCIF7 - 25 - 25 - write-only - - - CHTIF7 - desc CHTIF7 - 26 - 26 - write-only - - - CTEIF7 - desc CTEIF7 - 27 - 27 - write-only - - - - - CCR1 - desc CCR1 - 0x8 - 32 - read-write - 0x0 - - - EN - desc EN - 0 - 0 - read-write - - - TCIE - desc TCIE - 1 - 1 - read-write - - - HTIE - desc HTIE - 2 - 2 - read-write - - - TEIE - desc TEIE - 3 - 3 - read-write - - - DIR - desc DIR - 4 - 4 - read-write - - - CIRC - desc CIRC - 5 - 5 - read-write - - - PINC - desc PINC - 6 - 6 - read-write - - - MINC - desc MINC - 7 - 7 - read-write - - - PSIZE - desc PSIZE - 9 - 8 - read-write - - - MSIZE - desc MSIZE - 11 - 10 - read-write - - - PL - desc PL - 13 - 12 - read-write - - - MEM2MEM - desc MEM2MEM - 14 - 14 - read-write - - - - - CNDTR1 - desc CNDTR1 - 0xC - 32 - read-write - 0x0 - - - NDT - desc NDT - 15 - 0 - read-write - - - - - CPAR1 - desc CPAR1 - 0x10 - 32 - read-write - 0x0 - - - PA - desc PA - 31 - 0 - read-write - - - - - CMAR1 - desc CMAR1 - 0x14 - 32 - read-write - 0x0 - - - MA - desc MA - 31 - 0 - read-write - - - - - CCR2 - desc CCR2 - 0x1C - 32 - read-write - 0x0 - - - EN - desc EN - 0 - 0 - read-write - - - TCIE - desc TCIE - 1 - 1 - read-write - - - HTIE - desc HTIE - 2 - 2 - read-write - - - TEIE - desc TEIE - 3 - 3 - read-write - - - DIR - desc DIR - 4 - 4 - read-write - - - CIRC - desc CIRC - 5 - 5 - read-write - - - PINC - desc PINC - 6 - 6 - read-write - - - MINC - desc MINC - 7 - 7 - read-write - - - PSIZE - desc PSIZE - 9 - 8 - read-write - - - MSIZE - desc MSIZE - 11 - 10 - read-write - - - PL - desc PL - 13 - 12 - read-write - - - MEM2MEM - desc MEM2MEM - 14 - 14 - read-write - - - - - CNDTR2 - desc CNDTR2 - 0x20 - 32 - read-write - 0x0 - - - NDT - desc NDT - 15 - 0 - read-write - - - - - CPAR2 - desc CPAR2 - 0x24 - 32 - read-write - 0x0 - - - PA - desc PA - 31 - 0 - read-write - - - - - CMAR2 - desc CMAR2 - 0x28 - 32 - read-write - 0x0 - - - MA - desc MA - 31 - 0 - read-write - - - - - CCR3 - desc CCR3 - 0x30 - 32 - read-write - 0x0 - - - EN - desc EN - 0 - 0 - read-write - - - TCIE - desc TCIE - 1 - 1 - read-write - - - HTIE - desc HTIE - 2 - 2 - read-write - - - TEIE - desc TEIE - 3 - 3 - read-write - - - DIR - desc DIR - 4 - 4 - read-write - - - CIRC - desc CIRC - 5 - 5 - read-write - - - PINC - desc PINC - 6 - 6 - read-write - - - MINC - desc MINC - 7 - 7 - read-write - - - PSIZE - desc PSIZE - 9 - 8 - read-write - - - MSIZE - desc MSIZE - 11 - 10 - read-write - - - PL - desc PL - 13 - 12 - read-write - - - MEM2MEM - desc MEM2MEM - 14 - 14 - read-write - - - - - CNDTR3 - desc CNDTR3 - 0x34 - 32 - read-write - 0x0 - - - NDT - desc NDT - 15 - 0 - read-write - - - - - CPAR3 - desc CPAR3 - 0x38 - 32 - read-write - 0x0 - - - PA - desc PA - 31 - 0 - read-write - - - - - CMAR3 - desc CMAR3 - 0x3C - 32 - read-write - 0x0 - - - MA - desc MA - 31 - 0 - read-write - - - - - CCR4 - desc CCR4 - 0x44 - 32 - read-write - 0x0 - - - EN - desc EN - 0 - 0 - read-write - - - TCIE - desc TCIE - 1 - 1 - read-write - - - HTIE - desc HTIE - 2 - 2 - read-write - - - TEIE - desc TEIE - 3 - 3 - read-write - - - DIR - desc DIR - 4 - 4 - read-write - - - CIRC - desc CIRC - 5 - 5 - read-write - - - PINC - desc PINC - 6 - 6 - read-write - - - MINC - desc MINC - 7 - 7 - read-write - - - PSIZE - desc PSIZE - 9 - 8 - read-write - - - MSIZE - desc MSIZE - 11 - 10 - read-write - - - PL - desc PL - 13 - 12 - read-write - - - MEM2MEM - desc MEM2MEM - 14 - 14 - read-write - - - - - CNDTR4 - desc CNDTR4 - 0x48 - 32 - read-write - 0x0 - - - NDT - desc NDT - 15 - 0 - read-write - - - - - CPAR4 - desc CPAR4 - 0x4C - 32 - read-write - 0x0 - - - PA - desc PA - 31 - 0 - read-write - - - - - CMAR4 - desc CMAR4 - 0x50 - 32 - read-write - 0x0 - - - MA - desc MA - 31 - 0 - read-write - - - - - CCR5 - desc CCR5 - 0x58 - 32 - read-write - 0x0 - - - EN - desc EN - 0 - 0 - read-write - - - TCIE - desc TCIE - 1 - 1 - read-write - - - HTIE - desc HTIE - 2 - 2 - read-write - - - TEIE - desc TEIE - 3 - 3 - read-write - - - DIR - desc DIR - 4 - 4 - read-write - - - CIRC - desc CIRC - 5 - 5 - read-write - - - PINC - desc PINC - 6 - 6 - read-write - - - MINC - desc MINC - 7 - 7 - read-write - - - PSIZE - desc PSIZE - 9 - 8 - read-write - - - MSIZE - desc MSIZE - 11 - 10 - read-write - - - PL - desc PL - 13 - 12 - read-write - - - MEM2MEM - desc MEM2MEM - 14 - 14 - read-write - - - - - CNDTR5 - desc CNDTR5 - 0x5C - 32 - read-write - 0x0 - - - NDT - desc NDT - 15 - 0 - read-write - - - - - CPAR5 - desc CPAR5 - 0x60 - 32 - read-write - 0x0 - - - PA - desc PA - 31 - 0 - read-write - - - - - CMAR5 - desc CMAR5 - 0x64 - 32 - read-write - 0x0 - - - MA - desc MA - 31 - 0 - read-write - - - - - CCR6 - desc CCR6 - 0x6C - 32 - read-write - 0x0 - - - EN - desc EN - 0 - 0 - read-write - - - TCIE - desc TCIE - 1 - 1 - read-write - - - HTIE - desc HTIE - 2 - 2 - read-write - - - TEIE - desc TEIE - 3 - 3 - read-write - - - DIR - desc DIR - 4 - 4 - read-write - - - CIRC - desc CIRC - 5 - 5 - read-write - - - PINC - desc PINC - 6 - 6 - read-write - - - MINC - desc MINC - 7 - 7 - read-write - - - PSIZE - desc PSIZE - 9 - 8 - read-write - - - MSIZE - desc MSIZE - 11 - 10 - read-write - - - PL - desc PL - 13 - 12 - read-write - - - MEM2MEM - desc MEM2MEM - 14 - 14 - read-write - - - - - CNDTR6 - desc CNDTR6 - 0x70 - 32 - read-write - 0x0 - - - NDT - desc NDT - 15 - 0 - read-write - - - - - CPAR6 - desc CPAR6 - 0x74 - 32 - read-write - 0x0 - - - PA - desc PA - 31 - 0 - read-write - - - - - CMAR6 - desc CMAR6 - 0x78 - 32 - read-write - 0x0 - - - MA - desc MA - 31 - 0 - read-write - - - - - CCR7 - desc CCR7 - 0x80 - 32 - read-write - 0x0 - - - EN - desc EN - 0 - 0 - read-write - - - TCIE - desc TCIE - 1 - 1 - read-write - - - HTIE - desc HTIE - 2 - 2 - read-write - - - TEIE - desc TEIE - 3 - 3 - read-write - - - DIR - desc DIR - 4 - 4 - read-write - - - CIRC - desc CIRC - 5 - 5 - read-write - - - PINC - desc PINC - 6 - 6 - read-write - - - MINC - desc MINC - 7 - 7 - read-write - - - PSIZE - desc PSIZE - 9 - 8 - read-write - - - MSIZE - desc MSIZE - 11 - 10 - read-write - - - PL - desc PL - 13 - 12 - read-write - - - MEM2MEM - desc MEM2MEM - 14 - 14 - read-write - - - - - CNDTR7 - desc CNDTR7 - 0x84 - 32 - read-write - 0x0 - - - NDT - desc NDT - 15 - 0 - read-write - - - - - CPAR7 - desc CPAR7 - 0x88 - 32 - read-write - 0x0 - - - PA - desc PA - 31 - 0 - read-write - - - - - CMAR7 - desc CMAR7 - 0x8C - 32 - read-write - 0x0 - - - MA - desc MA - 31 - 0 - read-write - - - - - - - EXTI - - External interrupt/event - controller - - EXTI - 0x40021800 - - 0x0 - 0x400 - registers - - - PVD - PVD Interrupt through EXTI Lines 16 - 1 - - - EXTI0_1 - EXTI Line 0 and 1 Interrupt - 5 - - - EXTI2_3 - EXTI Line 2 and 3 Interrupt - 6 - - - EXTI4_15 - EXTI Line 4 to 15 Interrupt - 7 - - - - RTSR - RTSR - - EXTI rising trigger selection - register - - 0x0 - 0x20 - read-write - 0x00000000 - - - RT20 - - Rising trigger event configuration bit - of Configurable Event input - - 20 - 1 - - - RT19 - - Rising trigger event configuration bit - of Configurable Event input - - 19 - 1 - - - RT18 - - Rising trigger event configuration bit - of Configurable Event input - - 18 - 1 - - - RT17 - - Rising trigger event configuration bit - of Configurable Event input - - 17 - 1 - - - RT16 - - Rising trigger event configuration bit - of Configurable Event input - - 16 - 1 - - - RT15 - - Rising trigger event configuration bit - of Configurable Event input - - 15 - 1 - - - RT14 - - Rising trigger event configuration bit - of Configurable Event input - - 14 - 1 - - - RT13 - - Rising trigger event configuration bit - of Configurable Event input - - 13 - 1 - - - RT12 - - Rising trigger event configuration bit - of Configurable Event input - - 12 - 1 - - - RT11 - - Rising trigger event configuration bit - of Configurable Event input - - 11 - 1 - - - RT10 - - Rising trigger event configuration bit - of Configurable Event input - - 10 - 1 - - - RT9 - - Rising trigger event configuration bit - of Configurable Event input - - 9 - 1 - - - RT8 - - Rising trigger event configuration bit - of Configurable Event input - - 8 - 1 - - - RT7 - - Rising trigger event configuration bit - of Configurable Event input - - 7 - 1 - - - RT6 - - Rising trigger event configuration bit - of Configurable Event input - - 6 - 1 - - - RT5 - - Rising trigger event configuration bit - of Configurable Event input - - 5 - 1 - - - RT4 - - Rising trigger event configuration bit - of Configurable Event input - - 4 - 1 - - - RT3 - - Rising trigger event configuration bit - of Configurable Event input - - 3 - 1 - - - RT2 - - Rising trigger event configuration bit - of Configurable Event input - - 2 - 1 - - - RT1 - - Rising trigger event configuration bit - of Configurable Event input - - 1 - 1 - - - RT0 - - Rising trigger event configuration bit - of Configurable Event input - - 0 - 1 - - - - - FTSR - FTSR - - EXTI falling trigger selection - register - - 0x4 - 0x20 - read-write - 0x00000000 - - - FT20 - - Falling trigger event configuration bit - of Configurable Event input - - 20 - 1 - - - FT19 - - Falling trigger event configuration bit - of Configurable Event input - - 19 - 1 - - - FT18 - - Falling trigger event configuration bit - of Configurable Event input - - 18 - 1 - - - FT17 - - Falling trigger event configuration bit - of Configurable Event input - - 17 - 1 - - - FT16 - - Falling trigger event configuration bit - of Configurable Event input - - 16 - 1 - - - FT15 - - Falling trigger event configuration bit - of Configurable Event input - - 15 - 1 - - - FT14 - - Falling trigger event configuration bit - of Configurable Event input - - 14 - 1 - - - FT13 - - Falling trigger event configuration bit - of Configurable Event input - - 13 - 1 - - - FT12 - - Falling trigger event configuration bit - of Configurable Event input - - 12 - 1 - - - FT11 - - Falling trigger event configuration bit - of Configurable Event input - - 11 - 1 - - - FT10 - - Falling trigger event configuration bit - of Configurable Event input - - 10 - 1 - - - FT9 - - Falling trigger event configuration bit - of Configurable Event input - - 9 - 1 - - - FT8 - - Falling trigger event configuration bit - of Configurable Event input - - 8 - 1 - - - FT7 - - Falling trigger event configuration bit - of Configurable Event input - - 7 - 1 - - - FT6 - - Falling trigger event configuration bit - of Configurable Event input - - 6 - 1 - - - FT5 - - Falling trigger event configuration bit - of Configurable Event input - - 5 - 1 - - - FT4 - - Falling trigger event configuration bit - of Configurable Event input - - 4 - 1 - - - FT3 - - Falling trigger event configuration bit - of Configurable Event input - - 3 - 1 - - - FT2 - - Falling trigger event configuration bit - of Configurable Event input - - 2 - 1 - - - FT1 - - Falling trigger event configuration bit - of Configurable Event input - - 1 - 1 - - - FT0 - - Falling trigger event configuration bit - of Configurable Event input - - 0 - 1 - - - - - SWIER - SWIER - - EXTI software interrupt event - register - - 0x8 - 0x20 - read-write - 0x00000000 - - - SWI20 - - Rising trigger event configuration bit - of Configurable Event input - - 20 - 1 - - - SWI19 - - Rising trigger event configuration bit - of Configurable Event input - - 19 - 1 - - - SWI18 - - Rising trigger event configuration bit - of Configurable Event input - - 18 - 1 - - - SWI17 - - Rising trigger event configuration bit - of Configurable Event input - - 17 - 1 - - - SWI16 - - Rising trigger event configuration bit - of Configurable Event input - - 16 - 1 - - - SWI15 - - Rising trigger event configuration bit - of Configurable Event input - - 15 - 1 - - - SWI14 - - Rising trigger event configuration bit - of Configurable Event input - - 14 - 1 - - - SWI13 - - Rising trigger event configuration bit - of Configurable Event input - - 13 - 1 - - - SWI12 - - Rising trigger event configuration bit - of Configurable Event input - - 12 - 1 - - - SWI11 - - Rising trigger event configuration bit - of Configurable Event input - - 11 - 1 - - - SWI10 - - Rising trigger event configuration bit - of Configurable Event input - - 10 - 1 - - - SWI9 - - Rising trigger event configuration bit - of Configurable Event input - - 9 - 1 - - - SWI8 - - Rising trigger event configuration bit - of Configurable Event input - - 8 - 1 - - - SWI7 - - Rising trigger event configuration bit - of Configurable Event input - - 7 - 1 - - - SWI6 - - Rising trigger event configuration bit - of Configurable Event input - - 6 - 1 - - - SWI5 - - Rising trigger event configuration bit - of Configurable Event input - - 5 - 1 - - - SWI4 - - Rising trigger event configuration bit - of Configurable Event input - - 4 - 1 - - - SWI3 - - Rising trigger event configuration bit - of Configurable Event input - - 3 - 1 - - - SWI2 - - Rising trigger event configuration bit - of Configurable Event input - - 2 - 1 - - - SWI1 - - Rising trigger event configuration bit - of Configurable Event input - - 1 - 1 - - - SWI0 - - Rising trigger event configuration bit - of Configurable Event input - - 0 - 1 - - - - - PR - PR - - EXTI pending - register - - 0xC - 0x20 - read-write - 0x00000000 - - - PR20 - - configurable event inputs x rising edge - Pending bit. - - 20 - 1 - - - PR19 - - configurable event inputs x rising edge - Pending bit. - - 19 - 1 - - - PR18 - - configurable event inputs x rising edge - Pending bit. - - 18 - 1 - - - PR17 - - configurable event inputs x rising edge - Pending bit. - - 17 - 1 - - - PR16 - - configurable event inputs x rising edge - Pending bit. - - 16 - 1 - - - PR15 - - configurable event inputs x rising edge - Pending bit. - - 15 - 1 - - - PR14 - - configurable event inputs x rising edge - Pending bit. - - 14 - 1 - - - PR13 - - configurable event inputs x rising edge - Pending bit - - 13 - 1 - - - PR12 - - configurable event inputs x rising edge - Pending bit. - - 12 - 1 - - - PR11 - - configurable event inputs x rising edge - Pending bit. - - 11 - 1 - - - PR10 - - configurable event inputs x rising edge - Pending bit. - - 10 - 1 - - - PR9 - - configurable event inputs x rising edge - Pending bit. - - 9 - 1 - - - PR8 - - configurable event inputs x rising edge - Pending bit. - - 8 - 1 - - - PR7 - - configurable event inputs x rising edge - Pending bit. - - 7 - 1 - - - PR6 - - configurable event inputs x rising edge - Pending bit. - - 6 - 1 - - - PR5 - - configurable event inputs x rising edge - Pending bit. - - 5 - 1 - - - PR4 - - configurable event inputs x rising edge - Pending bit. - - 4 - 1 - - - PR3 - - configurable event inputs x rising edge - Pending bit. - - 3 - 1 - - - PR2 - - configurable event inputs x rising edge - Pending bit. - - 2 - 1 - - - PR1 - - configurable event inputs x rising edge - Pending bit. - - 1 - 1 - - - PR0 - - configurable event inputs x rising edge - Pending bit. - - 0 - 1 - - - - - EXTICR1 - EXTICR1 - - EXTI external interrupt selection - register - - 0x60 - 0x20 - read-write - 0x00000000 - - - EXTI3 - GPIO port selection - 24 - 2 - - - EXTI2 - GPIO port selection - 16 - 2 - - - EXTI1 - GPIO port selection - 8 - 2 - - - EXTI0 - GPIO port selection - 0 - 2 - - - - - EXTICR2 - EXTICR2 - - EXTI external interrupt selection - register - - 0x64 - 0x20 - read-write - 0x00000000 - - - EXTI7 - GPIO port selection - 24 - 2 - - - EXTI6 - GPIO port selection - 16 - 2 - - - EXTI5 - GPIO port selection - 8 - 2 - - - EXTI4 - GPIO port selection - 0 - 2 - - - - - EXTICR3 - EXTICR3 - - EXTI external interrupt selection - register - - 0x68 - 0x20 - read-write - 0x00000000 - - - EXTI11 - GPIO port selection - 24 - 2 - - - EXTI10 - GPIO port selection - 16 - 2 - - - EXTI9 - GPIO port selection - 8 - 2 - - - EXTI8 - GPIO port selection - 0 - 2 - - - - - EXTICR4 - EXTICR4 - - EXTI external interrupt selection - register - - 0x6C - 0x20 - read-write - 0x00000000 - - - EXTI15 - GPIO port selection - 24 - 2 - - - EXTI14 - GPIO port selection - 16 - 2 - - - EXTI13 - GPIO port selection - 8 - 2 - - - EXTI12 - GPIO port selection - 0 - 2 - - - - - IMR - IMR - - EXTI CPU wakeup with interrupt mask - register - - 0x80 - 0x20 - read-write - 0xFFF80000 - - - IM29 - - CPU wakeup with interrupt mask on event - input - - 29 - 1 - - - IM20 - - CPU wakeup with interrupt mask on event - input - - 20 - 1 - - - IM19 - - CPU wakeup with interrupt mask on event - input - - 19 - 1 - - - IM18 - - CPU wakeup with interrupt mask on event - input - - 18 - 1 - - - IM17 - - CPU wakeup with interrupt mask on event - input - - 17 - 1 - - - IM16 - - CPU wakeup with interrupt mask on event - input - - 16 - 1 - - - IM15 - - CPU wakeup with interrupt mask on event - input - - 15 - 1 - - - IM14 - - CPU wakeup with interrupt mask on event - input - - 14 - 1 - - - IM13 - - CPU wakeup with interrupt mask on event - input - - 13 - 1 - - - IM12 - - CPU wakeup with interrupt mask on event - input - - 12 - 1 - - - IM11 - - CPU wakeup with interrupt mask on event - input - - 11 - 1 - - - IM10 - - CPU wakeup with interrupt mask on event - input - - 10 - 1 - - - IM9 - - CPU wakeup with interrupt mask on event - input - - 9 - 1 - - - IM8 - - CPU wakeup with interrupt mask on event - input - - 8 - 1 - - - IM7 - - CPU wakeup with interrupt mask on event - input - - 7 - 1 - - - IM6 - - CPU wakeup with interrupt mask on event - input - - 6 - 1 - - - IM5 - - CPU wakeup with interrupt mask on event - input - - 5 - 1 - - - IM4 - - CPU wakeup with interrupt mask on event - input - - 4 - 1 - - - IM3 - - CPU wakeup with interrupt mask on event - input - - 3 - 1 - - - IM2 - - CPU wakeup with interrupt mask on event - input - - 2 - 1 - - - IM1 - - CPU wakeup with interrupt mask on event - input - - 1 - 1 - - - IM0 - - CPU wakeup with interrupt mask on event - input - - 0 - 1 - - - - - EMR - EMR - - EXTI CPU wakeup with event mask - register - - 0x84 - 0x20 - read-write - 0x00000000 - - - EM29 - - CPU wakeup with event mask on event - input - - 29 - 1 - - - EM20 - - CPU wakeup with event mask on event - input - - 20 - 1 - - - EM19 - - CPU wakeup with event mask on event - input - - 19 - 1 - - - EM18 - - CPU wakeup with event mask on event - input - - 18 - 1 - - - EM17 - - CPU wakeup with event mask on event - input - - 17 - 1 - - - EM16 - - CPU wakeup with event mask on event - input - - 16 - 1 - - - EM15 - - CPU wakeup with event mask on event - input - - 15 - 1 - - - EM14 - - CPU wakeup with event mask on event - input - - 14 - 1 - - - EM13 - - CPU wakeup with event mask on event - input - - 13 - 1 - - - EM12 - - CPU wakeup with event mask on event - input - - 12 - 1 - - - EM11 - - CPU wakeup with event mask on event - input - - 11 - 1 - - - EM10 - - CPU wakeup with event mask on event - input - - 10 - 1 - - - EM9 - - CPU wakeup with event mask on event - input - - 9 - 1 - - - EM8 - - CPU wakeup with event mask on event - input - - 8 - 1 - - - EM7 - - CPU wakeup with event mask on event - input - - 7 - 1 - - - EM6 - - CPU wakeup with event mask on event - input - - 6 - 1 - - - EM5 - - CPU wakeup with event mask on event - input - - 5 - 1 - - - EM4 - - CPU wakeup with event mask on event - input - - 4 - 1 - - - EM3 - - CPU wakeup with event mask on event - input - - 3 - 1 - - - EM2 - - CPU wakeup with event mask on event - input - - 2 - 1 - - - EM1 - - CPU wakeup with event mask on event - input - - 1 - 1 - - - EM0 - - CPU wakeup with event mask on event - input - - 0 - 1 - - - - - - - FLASH - desc FLASH - FLASH - 0x40022000 - - 0x0 - 0x400 - registers - - - FLASH - FLASH global Interrupt - 3 - - - - ACR - desc ACR - 0x0 - 32 - read-write - 0x500 - - - LATENCY - desc LATENCY - 1 - 0 - read-write - - - PRFTEN - desc PRFTEN - 8 - 8 - read-write - - - ICEN - desc ICEN - 9 - 9 - read-write - - - DCEN - desc DCEN - 10 - 10 - read-write - - - - - KEYR - desc KEYR - 0x8 - 32 - write-only - 0x0 - - - KEY - desc KEY - 31 - 0 - write-only - - - - - OPTKEYR - desc OPTKEYR - 0xC - 32 - write-only - 0x0 - - - OPTKEY - desc OPTKEY - 31 - 0 - write-only - - - - - SR - desc SR - 0x10 - 32 - read-write - 0x0 - - - EOP - desc EOP - 0 - 0 - read-write - - - WRPERR - desc WRPERR - 4 - 4 - read-write - - - OPTVERR - desc OPTVERR - 15 - 15 - read-write - - - BSY - desc BSY - 16 - 16 - read-only - - - - - CR - desc CR - 0x14 - 32 - read-write - 0x0 - - - PG - desc PG - 0 - 0 - read-write - - - PER - desc PER - 1 - 1 - read-write - - - MER - desc MER - 2 - 2 - read-write - - - SER - desc SER - 11 - 11 - read-write - - - OPTSTRT - desc OPTSTRT - 17 - 17 - read-write - - - PGSTRT - desc PGSTRT - 19 - 19 - read-write - - - EOPIE - desc EOPIE - 24 - 24 - read-write - - - ERRIE - desc ERRIE - 25 - 25 - read-write - - - OBL_LAUNCH - desc OBL_LAUNCH - 27 - 27 - read-write - - - OPTLOCK - desc OPTLOCK - 30 - 30 - read-write - - - LOCK - desc LOCK - 31 - 31 - read-write - - - - - OPTR - desc OPTR - 0x20 - 32 - read-only - 0x0 - - - RDP - desc RDP - 7 - 0 - read-only - - - IWDG_SW - desc IWDG_SW - 11 - 11 - read-only - - - WWDG_SW - desc WWDG_SW - 12 - 12 - read-only - - - NRST_MODE - desc NRST_MODE - 13 - 13 - read-only - - - NBOOT1 - desc nBOOT1 - 14 - 14 - read-only - - - IWDG_STOP - desc IWDG_STOP - 15 - 15 - read-only - - - - - SDKR - desc SDKR - 0x24 - 32 - read-only - 0x0 - - - SDK_STRT - desc SDK_STRT - 4 - 0 - read-only - - - BOR_EN - desc BOR_EN - 5 - 5 - read-only - - - SDK_END - desc SDK_END - 12 - 8 - read-only - - - BOR_LEV - desc BOR_LEV - 15 - 13 - read-only - - - - - PCK_EN - desc PCK_EN - 0x28 - 32 - read-only - 0x0 - - - USB_CLK_EN - desc USB_CLK_EN - 0 - 0 - read-only - - - CAN_CLK_EN - desc CAN_CLK_EN - 1 - 1 - read-only - - - TIM2_CLK_EN - desc TIM2_CLK_EN - 2 - 2 - read-only - - - TIM3_CLK_EN - desc TIM3_CLK_EN - 3 - 3 - read-only - - - TIM7_CLK_EN - desc TIM7_CLK_EN - 4 - 4 - read-only - - - I2C2_CLK_EN - desc I2C2_CLK_EN - 5 - 5 - read-only - - - USART3_CLK_EN - desc USART3_CLK_EN - 6 - 6 - read-only - - - USART4_CLK_EN - desc USART4_CLK_EN - 7 - 7 - read-only - - - LCD_CLK_EN - desc LCD_CLK_EN - 8 - 8 - read-only - - - TIM14_CLK_EN - desc TIM14_CLK_EN - 9 - 9 - read-only - - - TIM15_CLK_EN - desc TIM15_CLK_EN - 10 - 10 - read-only - - - TIM17_CLK_EN - desc TIM17_CLK_EN - 11 - 11 - read-only - - - - - WRPR - desc WRPR - 0x2C - 32 - read-write - 0x0 - - - WRP - desc WRP - 15 - 0 - read-write - - - - - STCR - desc STCR - 0x90 - 32 - read-write - 0x00006400 - - - SLEEP_EN - desc SLEEP_EN - 0 - 0 - read-write - - - SLEEP_TIME - desc SLEEP_TIME - 15 - 8 - read-write - - - - - TS0 - desc TS0 - 0x100 - 32 - read-write - 0xB4 - - - TS0 - desc TS0 - 7 - 0 - read-write - - - - - TS1 - desc TS1 - 0x104 - 32 - read-write - 0x1B0 - - - TS1 - desc TS1 - 8 - 0 - read-write - - - - - TS2P - desc TS2P - 0x108 - 32 - read-write - 0xB4 - - - TS2P - desc TS2P - 7 - 0 - read-write - - - - - TPS3 - desc TPS3 - 0x10C - 32 - read-write - 0x6C0 - - - TPS3 - desc TPS3 - 10 - 0 - read-write - - - - - TS3 - desc TS3 - 0x110 - 32 - read-write - 0xB4 - - - TS3 - desc TS3 - 7 - 0 - read-write - - - - - PERTPE - desc PERTPE - 0x114 - 32 - read-write - 0xEA60 - - - PERTPE - desc PERTPE - 16 - 0 - read-write - - - - - SMERTPE - desc SMERTPE - 0x118 - 32 - read-write - 0xFD20 - - - SMERTPE - desc SMERTPE - 16 - 0 - read-write - - - - - PRGTPE - desc PRGTPE - 0x11C - 32 - read-write - 0x8CA0 - - - PRGTPE - desc PRGTPE - 15 - 0 - read-write - - - - - PRETPE - desc PRETPE - 0x120 - 32 - read-write - 0x12C0 - - - PRETPE - desc PRETPE - 13 - 0 - read-write - - - - - TRMLSR - desc TRMLSR - 0x290 - 32 - read-only - 0x0 - - - PMU_TRIM0_ERR - desc PMU_TRIM0_ERR - 0 - 0 - read-only - - - PMU_TRIM1_ERR - desc PMU_TRIM1_ERR - 1 - 1 - read-only - - - HSI_TRIM_ERR - desc HSI_TRIM_ERR - 2 - 2 - read-only - - - LSI_TRIM_ERR - desc LSI_TRIM_ERR - 3 - 3 - read-only - - - FLASH_TRIM0_ERR - desc FLASH_TRIM0_ERR - 4 - 4 - read-only - - - FLASH_TRIM1_ERR - desc FLASH_TRIM1_ERR - 5 - 5 - read-only - - - FLASH_TRIM2_ERR - desc FLASH_TRIM2_ERR - 6 - 6 - read-only - - - FLASH_TRIM3_ERR - desc FLASH_TRIM3_ERR - 7 - 7 - read-only - - - FLASH_TRIM4_ERR - desc FLASH_TRIM4_ERR - 8 - 8 - read-only - - - FLASH_TRIM5_ERR - desc FLASH_TRIM5_ERR - 9 - 9 - read-only - - - TS_TRIM_ERR - desc TS_TRIM_ERR - 10 - 10 - read-only - - - CHIP_CFG_ERR - desc CHIP_CFG_ERR - 11 - 11 - read-only - - - CHKRD0_PASS - desc CHKRD0_PASS - 16 - 16 - read-only - - - CHKRD1_PASS - desc CHKRD1_PASS - 17 - 17 - read-only - - - CHKRD2_PASS - desc CHKRD2_PASS - 18 - 18 - read-only - - - CHKRD3_PASS - desc CHKRD3_PASS - 19 - 19 - read-only - - - - - TRMDR0 - desc TRMDR0 - 0x294 - 32 - read-only - 0x0 - - - BIAS_CR - desc BIAS_CR - 3 - 0 - read-only - - - TRIM_MR - desc TRIM_MR - 8 - 4 - read-only - - - TRIM_VREF - desc TRIM_VREF - 13 - 9 - read-only - - - TRIM_POR - desc TRIM_POR - 19 - 16 - read-only - - - TRIM_BG - desc TRIM_BG - 27 - 20 - read-only - - - - - TRMDR1 - desc TRMDR1 - 0x298 - 32 - read-only - 0x0 - - - LSI_TRIM - desc LSI_TRIM - 8 - 0 - read-only - - - HSI_TRIM - desc HSI_TRIM - 28 - 16 - read-only - - - HSI_FS - desc HSI_FS - 31 - 29 - read-only - - - - - TRMDR2 - desc TRMDR2 - 0x29C - 32 - read-only - 0x0 - - - FLASH_OP - desc FLASH_OP - 31 - 0 - read-only - - - - - TRMDR3 - desc TRMDR3 - 0x2A0 - 32 - read-only - 0x0 - - - FLASH_OP - desc FLASH_OP - 31 - 0 - read-only - - - - - TRMDR4 - desc TRMDR4 - 0x2A4 - 32 - read-only - 0x0 - - - FLASH_ERASE_VPOS - desc FLASH_ERASE_VPOS - 4 - 0 - read-only - - - FLASH_ERASE_VNEG - desc FLASH_ERASE_VNEG - 9 - 5 - read-only - - - FLASH_PROG_VPOS - desc FLASH_PROG_VPOS - 20 - 16 - read-only - - - FLASH_PROG_VNEG - desc FLASH_PROG_VNEG - 25 - 21 - read-only - - - - - TRMDR5 - desc TRMDR5 - 0x2A8 - 32 - read-only - 0x0 - - - FLASH_SIZE - desc FLASH_SIZE - 2 - 0 - read-only - - - SRAM_SIZE - desc SRAM_SIZE - 6 - 4 - read-only - - - TS_TRIM - desc TS_TRIM - 11 - 8 - read-only - - - - - TRMDR6 - desc TRMDR6 - 0x2AC - 32 - read-only - 0x0 - - - OPA0_TRIM - desc OPA0_TRIM - 3 - 0 - read-only - - - OPA1_TRIM - desc OPA1_TRIM - 7 - 4 - read-only - - - OPA2_TRIM - desc OPA2_TRIM - 11 - 8 - read-only - - - OPA3_TRIM - desc OPA3_TRIM - 15 - 12 - read-only - - - OPA4_TRIM - desc OPA4_TRIM - 19 - 16 - read-only - - - LCD_TRIM - desc LCD_TRIM - 27 - 20 - read-only - - - - - TRMDR7 - desc TRMDR7 - 0x2B0 - 32 - read-only - 0x0 - - - TS_DATA_0_TRIM - desc TS_DATA_0_TRIM - 11 - 0 - read-only - - - TS_DATA_1_TRIM - desc TS_DATA_1_TRIM - 23 - 12 - read-only - - - - - TRMDR8 - desc TRMDR8 - 0x2B4 - 32 - read-only - 0x0 - - - DAC_0_TRIM - desc DAC_0_TRIM - 11 - 0 - read-only - - - DAC_1_TRIM - desc DAC_1_TRIM - 23 - 12 - read-only - - - VREF_BUF_TRIM - desc VREF_BUF_TRIM - 28 - 24 - read-only - - - - - - - GPIOA - General-purpose I/Os - GPIO - 0x50000000 - - 0x0 - 0x400 - registers - - - - MODER - MODER - GPIO port mode register - 0x0 - 0x20 - read-write - 0xEBFFFFFF - - - MODE15 - - Port x configuration bits (y=0-15) - - 30 - 2 - - - MODE14 - - Port x configuration bits (y=0-15) - - 28 - 2 - - - MODE13 - - Port x configuration bits (y=0-15) - - 26 - 2 - - - MODE12 - - Port x configuration bits (y=0-15) - - 24 - 2 - - - MODE11 - - Port x configuration bits (y=0-15) - - 22 - 2 - - - MODE10 - - Port x configuration bits (y=0-15) - - 20 - 2 - - - MODE9 - - Port x configuration bits (y=0-15) - - 18 - 2 - - - MODE8 - - Port x configuration bits (y=0-15) - - 16 - 2 - - - MODE7 - - Port x configuration bits (y=0-15) - - 14 - 2 - - - MODE6 - - Port x configuration bits (y=0-15) - - 12 - 2 - - - MODE5 - - Port x configuration bits (y=0-15) - - 10 - 2 - - - MODE4 - - Port x configuration bits (y=0-15) - - 8 - 2 - - - MODE3 - - Port x configuration bits (y=0-15) - - 6 - 2 - - - MODE2 - - Port x configuration bits (y=0-15) - - 4 - 2 - - - MODE1 - - Port x configuration bits (y=0-15) - - 2 - 2 - - - MODE0 - - 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 - - - OSPEED15 - - Port x configuration bits (y=0-15) - - 30 - 2 - - - OSPEED14 - - Port x configuration bits (y=0-15) - - 28 - 2 - - - OSPEED13 - - Port x configuration bits (y=0-15) - - 26 - 2 - - - OSPEED12 - - Port x configuration bits (y=0-15) - - 24 - 2 - - - OSPEED11 - - Port x configuration bits (y=0-15) - - 22 - 2 - - - OSPEED10 - - Port x configuration bits (y=0-15) - - 20 - 2 - - - OSPEED9 - - Port x configuration bits (y=0-15) - - 18 - 2 - - - OSPEED8 - - Port x configuration bits (y=0-15) - - 16 - 2 - - - OSPEED7 - - Port x configuration bits (y=0-15) - - 14 - 2 - - - OSPEED6 - - Port x configuration bits (y=0-15) - - 12 - 2 - - - OSPEED5 - - Port x configuration bits (y=0-15) - - 10 - 2 - - - OSPEED4 - - Port x configuration bits (y=0-15) - - 8 - 2 - - - OSPEED3 - - Port x configuration bits (y=0-15) - - 6 - 2 - - - OSPEED2 - - Port x configuration bits (y=0-15) - - 4 - 2 - - - OSPEED1 - - Port x configuration bits (y=0-15) - - 2 - 2 - - - OSPEED0 - - Port x configuration bits (y=0-15) - - 0 - 2 - - - - - PUPDR - PUPDR - - GPIO port pull-up/pull-down - register - - 0xC - 0x20 - read-write - 0x24000000 - - - PUPD15 - - Port x configuration bits (y=0-15) - - 30 - 2 - - - PUPD14 - - Port x configuration bits (y=0-15) - - 28 - 2 - - - PUPD13 - - Port x configuration bits (y=0-15) - - 26 - 2 - - - PUPD12 - - Port x configuration bits (y=0-15) - - 24 - 2 - - - PUPD11 - - Port x configuration bits (y=0-15) - - 22 - 2 - - - PUPD10 - - Port x configuration bits (y=0-15) - - 20 - 2 - - - PUPD9 - - Port x configuration bits (y=0-15) - - 18 - 2 - - - PUPD8 - - Port x configuration bits (y=0-15) - - 16 - 2 - - - PUPD7 - - Port x configuration bits (y=0-15) - - 14 - 2 - - - PUPD6 - - Port x configuration bits (y=0-15) - - 12 - 2 - - - PUPD5 - - Port x configuration bits (y=0-15) - - 10 - 2 - - - PUPD4 - - Port x configuration bits (y=0-15) - - 8 - 2 - - - PUPD3 - - Port x configuration bits (y=0-15) - - 6 - 2 - - - PUPD2 - - Port x configuration bits (y=0-15) - - 4 - 2 - - - PUPD1 - - Port x configuration bits (y=0-15) - - 2 - 2 - - - PUPD0 - - Port x configuration bits (y=0-15) - - 0 - 2 - - - - - IDR - IDR - GPIO port input data register - 0x10 - 0x20 - read-only - 0x00000000 - - - ID15 - - Port input data (y=0-15) - - 15 - 1 - - - ID14 - - Port input data (y=0-15) - - 14 - 1 - - - ID13 - - Port input data (y=0-15) - - 13 - 1 - - - ID12 - - Port input data (y=0-15) - - 12 - 1 - - - ID11 - - Port input data (y=0-15) - - 11 - 1 - - - ID10 - - Port input data (y=0-15) - - 10 - 1 - - - ID9 - - Port input data (y=0-15) - - 9 - 1 - - - ID8 - - Port input data (y=0-15) - - 8 - 1 - - - ID7 - - Port input data (y=0-15) - - 7 - 1 - - - ID6 - - Port input data (y=0-15) - - 6 - 1 - - - ID5 - - Port input data (y=0-15) - - 5 - 1 - - - ID4 - - Port input data (y=0-15) - - 4 - 1 - - - ID3 - - Port input data (y=0-15) - - 3 - 1 - - - ID2 - - Port input data (y=0-15) - - 2 - 1 - - - ID1 - - Port input data (y=0-15) - - 1 - 1 - - - ID0 - - Port input data (y=0-15) - - 0 - 1 - - - - - ODR - ODR - GPIO port output data register - 0x14 - 0x20 - read-write - 0x00000000 - - - OD15 - - Port output data (y=0-15) - - 15 - 1 - - - OD14 - - Port output data (y=0-15) - - 14 - 1 - - - OD13 - - Port output data (y=0-15) - - 13 - 1 - - - OD12 - - Port output data (y=0-15) - - 12 - 1 - - - OD11 - - Port output data (y=0-15) - - 11 - 1 - - - OD10 - - Port output data (y=0-15) - - 10 - 1 - - - OD9 - - Port output data (y=0-15) - - 9 - 1 - - - OD8 - - Port output data (y=0-15) - - 8 - 1 - - - OD7 - - Port output data (y=0-15) - - 7 - 1 - - - OD6 - - Port output data (y=0-15) - - 6 - 1 - - - OD5 - - Port output data (y=0-15) - - 5 - 1 - - - OD4 - - Port output data (y=0-15) - - 4 - 1 - - - OD3 - - Port output data (y=0-15) - - 3 - 1 - - - OD2 - - Port output data (y=0-15) - - 2 - 1 - - - OD1 - - Port output data (y=0-15) - - 1 - 1 - - - OD0 - - 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 (LCKK) - - 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 - - - BR15 - Port Reset bit - 15 - 1 - - - BR14 - Port Reset bit - 14 - 1 - - - BR13 - Port Reset bit - 13 - 1 - - - BR12 - Port Reset bit - 12 - 1 - - - BR11 - Port Reset bit - 11 - 1 - - - BR10 - Port Reset bit - 10 - 1 - - - BR9 - Port Reset bit - 9 - 1 - - - BR8 - Port Reset bit - 8 - 1 - - - BR7 - Port Reset bit - 7 - 1 - - - BR6 - Port Reset bit - 6 - 1 - - - BR5 - Port Reset bit - 5 - 1 - - - BR4 - Port Reset bit - 4 - 1 - - - BR3 - Port Reset bit - 3 - 1 - - - BR2 - Port Reset bit - 2 - 1 - - - BR1 - Port Reset bit - 1 - 1 - - - BR0 - Port Reset bit - 0 - 1 - - - - - - - GPIOB - General-purpose I/Os - GPIO - 0x50000400 - - 0x0 - 0x400 - registers - - - - GPIOC - General-purpose I/Os - GPIO - 0x50000800 - - 0x0 - 0x400 - registers - - - - GPIOF - General-purpose I/Os - GPIO - 0x50001400 - - 0x0 - 0x400 - registers - - - - I2C1 - Inter integrated circuit - I2C - 0x40005400 - - 0x0 - 0x400 - registers - - - I2C1 - I2C1 global Interrupt - 23 - - - - CR1 - desc CR1 - 0x0 - 32 - read-write - 0x0 - - - PE - desc PE - 0 - 0 - read-write - - - SMBUS - desc SMBUS - 1 - 1 - read-write - - - SMBTYPE - desc SMBTYPE - 3 - 3 - read-write - - - ENARP - desc ENARP - 4 - 4 - read-write - - - ENPEC - desc ENPEC - 5 - 5 - read-write - - - ENGC - desc ENGC - 6 - 6 - read-write - - - NOSTRETCH - desc NOSTRETCH - 7 - 7 - read-write - - - START - desc START - 8 - 8 - read-write - - - STOP - desc STOP - 9 - 9 - read-write - - - ACK - desc ACK - 10 - 10 - read-write - - - POS - desc POS - 11 - 11 - read-write - - - PEC - desc PEC - 12 - 12 - read-write - - - ALERT - desc ALERT - 13 - 13 - read-write - - - SWRST - desc SWRST - 15 - 15 - read-write - - - - - CR2 - desc CR2 - 0x4 - 32 - read-write - 0x0 - - - FREQ - desc FREQ - 5 - 0 - read-write - - - ITERREN - desc ITERREN - 8 - 8 - read-write - - - ITEVTEN - desc ITEVTEN - 9 - 9 - read-write - - - ITBUFEN - desc ITBUFEN - 10 - 10 - read-write - - - DMAEN - desc DMAEN - 11 - 11 - read-write - - - LAST - desc LAST - 12 - 12 - read-write - - - - - OAR1 - desc OAR1 - 0x8 - 32 - read-write - 0x0 - - - ADD0 - desc ADD0 - 0 - 0 - read-write - - - ADD1_7 - desc ADD1_7 - 7 - 1 - read-write - - - ADD8_9 - desc ADD8_9 - 9 - 8 - read-write - - - ADDMODE - desc ADDMODE - 15 - 15 - read-write - - - - - OAR2 - desc OAR2 - 0xC - 32 - read-write - 0x0 - - - ENDUAL - desc ENDUAL - 0 - 0 - read-write - - - ADD2 - desc ADD2 - 7 - 1 - read-write - - - - - DR - desc DR - 0x10 - 32 - read-write - 0x0 - - - DR - desc DR - 7 - 0 - read-write - - - - - SR1 - desc SR1 - 0x14 - 32 - read-write - 0x0 - - - SB - desc SB - 0 - 0 - read-only - - - ADDR - desc ADDR - 1 - 1 - read-only - - - BTF - desc BTF - 2 - 2 - read-only - - - ADD10 - desc ADD10 - 3 - 3 - read-only - - - STOPF - desc STOPF - 4 - 4 - read-only - - - RXNE - desc RXNE - 6 - 6 - read-only - - - TXE - desc TXE - 7 - 7 - read-only - - - BERR - desc BERR - 8 - 8 - read-write - - - ARLO - desc ARLO - 9 - 9 - read-write - - - AF - desc AF - 10 - 10 - read-write - - - OVR - desc OVR - 11 - 11 - read-write - - - PECERR - desc PECERR - 12 - 12 - read-write - - - TIMEOUT - desc TIMEOUT - 14 - 14 - read-write - - - SMBALERT - desc SMBALERT - 15 - 15 - read-write - - - - - SR2 - desc SR2 - 0x18 - 32 - read-only - 0x0 - - - MSL - desc MSL - 0 - 0 - read-only - - - BUSY - desc BUSY - 1 - 1 - read-only - - - TRA - desc TRA - 2 - 2 - read-only - - - GENCALL - desc GENCALL - 4 - 4 - read-only - - - SMBDEFAULT - desc SMBDEFAULT - 5 - 5 - read-only - - - SMBHOST - desc SMBHOST - 6 - 6 - read-only - - - DUALF - desc DUALF - 7 - 7 - read-only - - - PEC - desc PEC - 15 - 8 - read-only - - - - - CCR - desc CCR - 0x1C - 32 - read-write - 0x0 - - - CCR - desc CCR - 11 - 0 - read-write - - - DUTY - desc DUTY - 14 - 14 - read-write - - - FS - desc FS - 15 - 15 - read-write - - - - - TRISE - desc TRISE - 0x20 - 32 - read-write - 0x2 - - - - TRISE - desc TRISE - 5 - 0 - read-write - - - - - - - I2C2 - desc I2C - I2C - 0x40005800 - - 0x0 - 0x400 - registers - - - I2C2 - I2C2 Event Interrupt - 24 - - - - IWDG - Independent watchdog - IWDG - 0x40003000 - - 0x0 - 0x400 - registers - - - - KR - KR - Key register (IWDG_KR) - 0x0 - 0x20 - write-only - 0x00000000 - - - KEY - Key value - 0 - 16 - - - - - PR - PR - Prescaler register (IWDG_PR) - 0x4 - 0x20 - read-write - 0x00000000 - - - PR - Prescaler divider - 0 - 3 - - - - - RLR - RLR - Reload register (IWDG_RLR) - 0x8 - 0x20 - read-write - 0x00000FFF - - - RL - - Watchdog counter reload - value - - 0 - 12 - - - - - SR - SR - Status register (IWDG_SR) - 0xC - 0x20 - read-only - 0x00000000 - - - RVU - - Watchdog counter reload value - update - - 1 - 1 - - - PVU - - Watchdog prescaler value - update - - 0 - 1 - - - - - - - LCD - LCD CONTROLLER - LCD - 0x40002400 - - 0x0 - 0x400 - registers - - - LCD - LCD global Interrupt - 8 - - - - CR0 - CR0 - Control register - 0x0 - 0x20 - read-write - 0x0000 - - - EN - EN - 0 - 1 - - - LCDCLK - LCDCLK - 1 - 2 - - - BIAS - BIAS - 6 - 1 - - - DUTY - DUTY - 7 - 3 - - - BSEL - BSEL - 10 - 3 - - - CONTRAST - CONTRAST - 13 - 4 - - - - - CR1 - CR1 - CR1 - 0x4 - 0x20 - read-write - 0x0000 - - - BLINKCNT - BLINKCNT - 0 - 6 - - - BLINKEN - BLINKEN - 6 - 1 - - - MODE - MODE - 8 - 1 - - - IE - IE - 10 - 1 - - - INTF - INTF - 11 - 1 - - - - - INTCLR - INTCLR - INTCLR - 0x8 - 0x20 - read-write - 0x0000 - - - INTF_CLR - INTF_CLR - 10 - 1 - - - - - POEN0 - POEN0 - POEN0 - 0x0C - 0x20 - read-write - 0x0000 - - - S0 - S0 - 0 - 1 - - - S1 - S1 - 1 - 1 - - - S2 - S2 - 2 - 1 - - - S3 - S3 - 3 - 1 - - - S4 - S4 - 4 - 1 - - - S5 - S5 - 5 - 1 - - - S6 - S6 - 6 - 1 - - - S7 - S7 - 7 - 1 - - - S8 - S8 - 8 - 1 - - - S9 - S9 - 9 - 1 - - - S10 - S10 - 10 - 1 - - - S11 - S11 - 11 - 1 - - - S12 - S12 - 12 - 1 - - - S13 - S13 - 13 - 1 - - - S14 - S14 - 14 - 1 - - - S15 - S15 - 15 - 1 - - - S16 - S16 - 16 - 1 - - - S17 - S17 - 17 - 1 - - - S18 - S18 - 18 - 1 - - - S19 - S19 - 19 - 1 - - - S20 - S20 - 20 - 1 - - - S21 - S21 - 21 - 1 - - - S22 - S22 - 22 - 1 - - - S23 - S23 - 23 - 1 - - - S24 - S24 - 24 - 1 - - - S25 - S25 - 25 - 1 - - - S26 - S26 - 26 - 1 - - - S27 - S27 - 27 - 1 - - - S28 - S28 - 28 - 1 - - - S29 - S29 - 29 - 1 - - - S30 - S30 - 30 - 1 - - - S31 - S31 - 31 - 1 - - - - - POEN1 - POEN1 - POEN1 - 0x10 - 0x20 - read-write - 0x0000 - - - S32 - S32 - 0 - 1 - - - S33 - S33 - 1 - 1 - - - S34 - S34 - 2 - 1 - - - S35 - S35 - 3 - 1 - - - S36 - S36 - 4 - 1 - - - S37 - S37 - 5 - 1 - - - S38 - S38 - 6 - 1 - - - S39 - S39 - 7 - 1 - - - C0 - C0 - 8 - 1 - - - C1 - C1 - 9 - 1 - - - C2 - C2 - 10 - 1 - - - C3 - C3 - 11 - 1 - - - MUX - MUX - 12 - 1 - - - - - RAM0 - RAM0 - des RAM0 - 0x14 - 0x20 - read-write - 0x0000 - - - D - des D - 0 - 32 - - - - - RAM1 - RAM1 - des RAM1 - 0x18 - 0x20 - read-write - 0x0000 - - - D - des D - 0 - 32 - - - - - RAM2 - RAM2 - des RAM2 - 0x1C - 0x20 - read-write - 0x0000 - - - D - des D - 0 - 32 - - - - - RAM3 - RAM3 - des RAM3 - 0x20 - 0x20 - read-write - 0x0000 - - - D - des D - 0 - 32 - - - - - RAM4 - RAM4 - des RAM4 - 0x24 - 0x20 - read-write - 0x0000 - - - D - des D - 0 - 32 - - - - - RAM5 - RAM5 - des RAM5 - 0x28 - 0x20 - read-write - 0x0000 - - - D - des D - 0 - 32 - - - - - RAM6 - RAM6 - des RAM6 - 0x2C - 0x20 - read-write - 0x0000 - - - D - des D - 0 - 32 - - - - - RAM7 - RAM7 - des RAM7 - 0x30 - 0x20 - read-write - 0x0000 - - - D - des D - 0 - 32 - - - - - RAM8 - RAM8 - des RAM8 - 0x34 - 0x20 - read-write - 0x0000 - - - D - des D - 0 - 8 - - - - - RAM9 - RAM9 - des RAM9 - 0x38 - 0x20 - read-write - 0x0000 - - - D - des D - 0 - 8 - - - - - RAM10 - RAM10 - des RAM10 - 0x3C - 0x20 - read-write - 0x0000 - - - D - des D - 0 - 8 - - - - - RAM11 - RAM11 - des RAM11 - 0x40 - 0x20 - read-write - 0x0000 - - - D - des D - 0 - 8 - - - - - RAM12 - RAM12 - des RAM12 - 0x44 - 0x20 - read-write - 0x0000 - - - D - des D - 0 - 8 - - - - - RAM13 - RAM13 - des RAM13 - 0x48 - 0x20 - read-write - 0x0000 - - - D - des D - 0 - 8 - - - - - RAM14 - RAM14 - des RAM14 - 0x4C - 0x20 - read-write - 0x0000 - - - D - des D - 0 - 8 - - - - - RAM15 - RAM15 - des RAM15 - 0x50 - 0x20 - read-write - 0x0000 - - - D - des D - 0 - 8 - - - - - - - LPTIM1 - Low power timer - LPTIM1 - 0x40007C00 - - 0x0 - 0x400 - registers - - - TIM6_LPTIM1_DAC - TIM6, LPTIM1, DAC global Interrupts - 17 - - - - ISR - ISR - Interrupt and Status Register - 0x0 - 0x20 - read-only - 0x00000000 - - - ARRM - Autoreload match - 1 - 1 - - - ARROK - Autoreload match update OK - 4 - 1 - - - - - ICR - ICR - Interrupt Clear Register - 0x4 - 0x20 - write-only - 0x00000000 - - - ARRMCF - - Autoreload match Clear - Flag - - 1 - 1 - - - ARROKCF - - Autoreload match update OK - Clear Flag - - 4 - 1 - - - - - IER - IER - Interrupt Enable Register - 0x8 - 0x20 - read-write - 0x00000000 - - - ARRMIE - - Autoreload matchInterrupt - Enable - - 1 - 1 - - - ARROKIE - - Autoreload match update - OK Interrupt Enable - - 4 - 1 - - - - - CFGR - CFGR - Configuration Register - 0xC - 0x20 - read-write - 0x00000000 - - - PRELOAD - Registers update mode - 22 - 1 - - - PRESC - Clock prescaler - 9 - 3 - - - - - CR - CR - Control Register - 0x10 - 0x20 - read-write - 0x00000000 - - - RSTARE - Reset after read enable - 4 - 1 - - - CNTSTRT - CNTSTRT - 2 - 1 - - - SNGSTRT - LPTIM start in single mode - 1 - 1 - - - ENABLE - LPTIM Enable - 0 - 1 - - - - - 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 - - - - - - - OPA - des OPA - OPA - 0x40010300 - - 0x0 - 0x400 - registers - - - - CR0 - CR0 - CR0 register - 0x30 - 0x20 - read-write - 0xFFFFFFFF - - - OP1OEN1 - OP1OEN1 - 1 - 1 - - - OP2OEN1 - OP2OEN1 - 6 - 1 - - - OP3OEN1 - OP3OEN1 - 11 - 1 - - - - - CR1 - CR1 - CR1 register - 0x34 - 0x20 - read-write - 0x00000000 - - - EN1 - EN1 - 5 - 1 - - - EN2 - EN2 - 6 - 1 - - - EN3 - EN3 - 7 - 1 - - - - - - - PWR - Power control - PWR - 0x40007000 - - 0x0 - 0x400 - registers - - - - CR1 - CR1 - Power control register 1 - 0x0 - 0x20 - read-write - 0x00030000 - - - HSION_CTRL - HSI open time control - 19 - 1 - - - SRAM_RETV - SRAM retention voltage control - 16 - 3 - - - LPR - Low-power run - 14 - 1 - - - FLS_SLPTIME - Flash wait time after wakeup from the stop mode - 12 - 2 - - - VOS - - Voltage scaling range - selection - - 9 - 2 - - - DBP - - Disable backup domain write - protection - - 8 - 1 - - - BIAS_CR_SEL - MR Bias current selection - 4 - 1 - - - BIAS_CR - MR Bias current - 0 - 3 - - - - - CR2 - CR2 - Power control register 2 - 0x4 - 0x20 - read-write - 0x00000500 - - - FLT_TIME - Digital filter time configuration - 9 - 3 - - - FLTEN - Digital filter enable - 8 - 1 - - - PVDT - - Power voltage detector threshold - selection - - 4 - 3 - - - SRCSEL - - Power voltage detector volatage - selection - - 2 - 1 - - - PVDE - - Power voltage detector - enable - - 0 - 1 - - - - - SR - SR - Power status register - 0x14 - 0x20 - read-only - 0x00000000 - - - PVDO - PVD output - 11 - 1 - - - - - - - RCC - Reset and clock control - RCC - 0x40021000 - - 0x0 - 0x400 - registers - - - RCC_CTC - RCC and CTC global Interrupts - 4 - - - - CR - CR - Clock control register - 0x0 - 0x20 - read-write - 0x00000100 - - - PLLRDY - PLL clock ready flag - 25 - 1 - - - PLLON - PLL enable - 24 - 1 - - - ADC_DIV - ADC Frequency Division - 21 - 2 - - - CSSON - - Clock security system - enable - - 19 - 1 - - - HSEBYP - - HSE crystal oscillator - bypass - - 18 - 1 - - - HSERDY - HSE clock ready flag - 17 - 1 - - - HSEON - HSE clock enable - 16 - 1 - - - HSIDIV - - HSI16 clock division - factor - - 11 - 3 - - - HSIRDY - HSI16 clock ready flag - 10 - 1 - - - HSION - HSI16 clock enable - 8 - 1 - - - - - ICSCR - ICSCR - - Internal clock sources calibration - register - - 0x4 - 0x20 - 0x10000000 - - - LSI_TRIM - LSI clock trimming - 16 - 9 - read-write - - - HSI_FS - HSI frequency selection - 13 - 3 - read-write - - - HSI_TRIM - HSI clock trimming - 0 - 13 - read-write - - - - - CFGR - CFGR - Clock configuration register - 0x8 - 0x20 - 0x00000000 - - - MCOPRE - - Microcontroller clock output - prescaler - - 28 - 3 - read-write - - - MCOSEL - - Microcontroller clock - output - - 24 - 3 - read-write - - - PPRE - APB prescaler - 12 - 3 - read-write - - - HPRE - AHB prescaler - 8 - 4 - read-write - - - SWS - System clock switch status - 3 - 3 - read-only - - - SW - System clock switch - 0 - 3 - read-write - - - - - PLLCFGR - PLLCFGR - PLL configuration register - 0xC - 0x20 - 0x00000000 - - - PLLSRC - PLL clock source selection - 0 - 2 - read-write - - - PLLMUL - PLLMUL - 2 - 2 - read-write - - - - - ECSCR - ECSCR - External clock source control register - 0x10 - 0x20 - 0x00000000 - - - HSE_DRV - HSE_DRV - 0 - 2 - read-write - - - HSE_STARTUP - HSE_STARTUP - 3 - 2 - read-write - - - LSE_DRIVER - LSE clock driver selection - 16 - 2 - read-write - - - LSE_STARTUP - LSE_STARTUP - 20 - 2 - read-write - - - - - CIER - CIER - - Clock interrupt enable - register - - 0x18 - 0x20 - read-write - 0x00000000 - - - PLLRDYIE - PLL ready interrupt enable - 5 - 1 - - - HSERDYIE - HSE ready interrupt enable - 4 - 1 - - - HSIRDYIE - HSI ready interrupt enable - 3 - 1 - - - LSERDYIE - LSE ready interrupt enable - 1 - 1 - - - LSIRDYIE - LSI ready interrupt enable - 0 - 1 - - - - - CIFR - CIFR - Clock interrupt flag register - 0x1C - 0x20 - read-only - 0x00000000 - - - LSECSSF - LSE clock secure system interrupt flag - 9 - 1 - - - CSSF - HSE clock secure system interrupt flag - 8 - 1 - - - PLLRDYF - PLL ready interrupt flag - 5 - 1 - - - HSERDYF - HSE ready interrupt flag - 4 - 1 - - - HSIRDYF - HSI ready interrupt flag - 3 - 1 - - - LSERDYF - LSE ready interrupt flag - 1 - 1 - - - LSIRDYF - LSI ready interrupt flag - 0 - 1 - - - - - CICR - CICR - Clock interrupt clear register - 0x20 - 0x20 - write-only - 0x00000000 - - - LSECSSC - LSE clock secure system interrupt flag clear - 9 - 1 - - - CSSC - clock secure system interrupt flag clear - 8 - 1 - - - PLLRDYC - PLL ready interrupt clear - 5 - 1 - - - HSERDYC - HSE ready interrupt clear - 4 - 1 - - - HSIRDYC - HSI ready interrupt clear - 3 - 1 - - - LSERDYC - LSE ready interrupt clear - 1 - 1 - - - LSIRDYC - LSI ready interrupt clear - 0 - 1 - - - - - IOPRSTR - IOPRSTR - GPIO reset register - 0x24 - 0x20 - read-write - 0x00000000 - - - GPIOFRST - I/O port F reset - 5 - 1 - - - GPIOCRST - I/O port F reset - 2 - 1 - - - GPIOBRST - I/O port B reset - 1 - 1 - - - GPIOARST - I/O port A reset - 0 - 1 - - - - - AHBRSTR - AHBRSTR - AHB peripheral reset register - 0x28 - 0x20 - read-write - 0x00000000 - - - DIVRST - DIV reset - 24 - 1 - - - CRCRST - CRC reset - 12 - 1 - - - DMARST - DMA reset - 0 - 1 - - - - - APBRSTR1 - APBRSTR1 - - APB peripheral reset register - 1 - - 0x2C - 0x20 - read-write - 0x00000000 - - - LPTIMRST - Low Power Timer reset - 31 - 1 - - - OPARST - OPARST - 30 - 1 - - - DACRST - DACRST - 29 - 1 - - - PWRRST - Power interface reset - 28 - 1 - - - CTCRST - CTCRST - 27 - 1 - - - CANRST - CANRST - 25 - 1 - - - USBRST - USB reset - 23 - 1 - - - I2C2RST - I2C2 reset - 22 - 1 - - - I2C1RST - I2C1 reset - 21 - 1 - - - USART4RST - USART4 reset - 19 - 1 - - - USART3RST - USART3 reset - 18 - 1 - - - USART2RST - USART2 reset - 17 - 1 - - - SPI2RST - SPI2 reset - 14 - 1 - - - WWDGRST - WWDG reset - 11 - 1 - - - RTCAPBRST - RTCAPB reset - 10 - 1 - - - TIM7RST - TIM7 timer reset - 5 - 1 - - - TIM6RST - TIM6 timer reset - 4 - 1 - - - TIM3RST - TIM3 timer reset - 1 - 1 - - - TIM2RST - TIM2 timer reset - 0 - 1 - - - - - APBRSTR2 - APBRSTR2 - - APB peripheral reset register - 2 - - 0x30 - 0x20 - read-write - 0x00000000 - - - SYSCFGRST - SYSCFG reset - 0 - 1 - - - ADCRST - ADC reset - 9 - 1 - - - DBGRST - DBG reset - 10 - 1 - - - TIM1RST - TIM1 reset - 11 - 1 - - - SPI1RST - SPI1 reset - 12 - 1 - - - USART1RST - USART1 reset - 14 - 1 - - - TIM14RST - TIM14 reset - 15 - 1 - - - TIM15RST - TIM15 reset - 16 - 1 - - - TIM16RST - TIM16 reset - 17 - 1 - - - TIM17RST - TIM17 reset - 18 - 1 - - - COMP1RST - COMP1 reset - 20 - 1 - - - COMP2RST - COMP2 reset - 21 - 1 - - - COMP3RST - COMP3 reset - 22 - 1 - - - LCDRST - LCD reset - 23 - 1 - - - - - IOPENR - IOPENR - GPIO clock enable register - 0x34 - 0x20 - read-write - 0x00000000 - - - GPIOFEN - I/O port F clock enable - 5 - 1 - - - GPIOCEN - I/O port C clock enable - 2 - 1 - - - GPIOBEN - I/O port B clock enable - 1 - 1 - - - GPIOAEN - I/O port A clock enable - 0 - 1 - - - - - AHBENR - AHBENR - - AHB peripheral clock enable - register - - 0x38 - 0x20 - read-write - 0x00000000 - - - DIVEN - DIVEN - 24 - 1 - - - CRCEN - CRC clock enable - 12 - 1 - - - SRAMEN - - SRAM memory interface clock - enable - - 9 - 1 - - - FLASHEN - - Flash memory interface clock - enable - - 8 - 1 - - - DMAEN - DMA clock enable - 0 - 1 - - - - - APBENR1 - APBENR1 - - APB peripheral clock enable register - 1 - - 0x3C - 0x20 - read-write - 0x00000000 - - - LPTIMEN - LPTIM clock enable - 31 - 1 - - - - OPAEN - OPA clock enable - 30 - 1 - - - DACEN - DAC clock enable - 29 - 1 - - - PWREN - - Power interface clock - enable - - 28 - 1 - - - CTCEN - CTC clock enable - 27 - 1 - - - CANEN - CAN clock enable - 25 - 1 - - - USBEN - USB clock enable - 23 - 1 - - - I2C2EN - I2C2 clock enable - 22 - 1 - - - I2C1EN - I2C1 clock enable - 21 - 1 - - - USART4EN - USART4 clock enable - 19 - 1 - - - USART3EN - USART3 clock enable - 18 - 1 - - - USART2EN - USART2 clock enable - 17 - 1 - - - SPI2EN - SPI2 clock enable - 14 - 1 - - - WWDGEN - WWDG clock enable - 11 - 1 - - - RTCAPBEN - RTC APB clock enable - 10 - 1 - - - TIM7EN - TIM7 timer clock enable - 5 - 1 - - - TIM6EN - TIM6 timer clock enable - 4 - 1 - - - TIM3EN - TIM3 timer clock enable - 1 - 1 - - - TIM2EN - TIM2 timer clock enable - 0 - 1 - - - - - APBENR2 - APBENR2 - - APB peripheral clock enable register - 2 - - 0x40 - 0x20 - read-write - 0x00000000 - - - SYSCFGEN - - SYSCFG, COMP and VREFBUF clock - enable - - 0 - 1 - - - ADCEN - ADCEN clock enable - 9 - 1 - - - DBGEN - DBG clock enable - 10 - 1 - - - TIM1EN - TIM1 clock enable - 11 - 1 - - - SPI1EN - SPI1 clock enable - 12 - 1 - - - USART1EN - USART1 clock enable - 14 - 1 - - - TIM14EN - TIM14 clock enable - 15 - 1 - - - TIM15EN - TIM15 clock enable - 16 - 1 - - - TIM16EN - TIM16 clock enable - 17 - 1 - - - TIM17EN - TIM17 clock enable - 18 - 1 - - - COMP1EN - COMP1 clock enable - 20 - 1 - - - COMP2EN - COMP2 clock enable - 21 - 1 - - - COMP3EN - COMP3 clock enable - 22 - 1 - - - LCDEN - LCD clock enable - 23 - 1 - - - - - CCIPR - CCIPR - - Peripherals independent clock configuration - register - - 0x54 - 0x20 - read-write - 0x00000000 - - - LPTIM1SEL - - LPTIM1 clock source - selection - - 18 - 2 - - - COMP3SEL - - COMP3 clock source - selection - - 10 - 1 - - - COMP2SEL - - COMP2 clock source - selection - - 9 - 1 - - - COMP1SEL - - COMP1 clock source - selection - - 8 - 1 - - - PVDSEL - - PVD detect clock source - selection - - 7 - 1 - - - CANSEL - - CAN detect clock source - selection - - 6 - 1 - - - - - BDCR - BDCR - RTC domain control register - 0x5C - 0x20 - read-write - 0x00000000 - - - LSCOSEL - - Low-speed clock output - selection - - 25 - 1 - - - LSCOEN - - Low-speed clock output (LSCO) - enable - - 24 - 1 - - - BDRST - RTC domain software reset - 16 - 1 - - - RTCEN - RTC clock source enable - 15 - 1 - - - RTCSEL - RTC clock source selection - 8 - 2 - - - LSECSSD - LSE CSS detect - 6 - 1 - - - LSECSSON - LSE CSS enable - 5 - 1 - - - LSEBYP - LSE oscillator bypass - 2 - 1 - - - LSERDY - LSE oscillator ready - 1 - 1 - - - LSEON - LSE oscillator enable - 0 - 1 - - - - - CSR - CSR - Control/status register - 0x60 - 0x20 - read-write - 0x00000000 - - - WWDGRSTF - Window watchdog reset flag - 30 - 1 - - - IWDGRSTF - - Independent window watchdog reset - flag - - 29 - 1 - - - SFTRSTF - Software reset flag - 28 - 1 - - - PWRRSTF - BOR or POR/PDR flag - 27 - 1 - - - PINRSTF - Pin reset flag - 26 - 1 - - - OBLRSTF - - Option byte loader reset - flag - - 25 - 1 - - - RMVF - Remove reset flags - 23 - 1 - - - NRST_FLTDIS - NRST_FLTDIS oscillator ready - 8 - 1 - - - LSIRDY - LSI oscillator ready - 1 - 1 - - - LSION - LSI oscillator enable - 0 - 1 - - - - - - - RTC - desc RTC - RTC - 0x40002800 - - 0x0 - 0x400 - registers - - - RTC - RTC Interrupt through EXTI Lines 19 - 2 - - - - CRH - desc CRH - 0x0 - 32 - read-write - 0x0 - - - SECIE - desc SECIE - 0 - 0 - read-write - - - ALRIE - desc ALRIE - 1 - 1 - read-write - - - OWIE - desc OWIE - 2 - 2 - read-write - - - - - CRL - desc CRL - 0x4 - 32 - read-write - 0x20 - - - - SECF - desc SECF - 0 - 0 - read-write - - - ALRF - desc ALRF - 1 - 1 - read-write - - - OWF - desc OWF - 2 - 2 - read-write - - - RSF - desc RSF - 3 - 3 - read-write - - - CNF - desc CNF - 4 - 4 - read-write - - - RTOFF - desc RTOFF - 5 - 5 - read-only - - - - - PRLH - desc PRLH - 0x8 - 32 - write-only - 0x0 - - - PRL - desc PRL - 3 - 0 - write-only - - - - - PRLL - desc PRLL - 0xC - 32 - write-only - 0x8000 - - - PRL - desc PRL - 15 - 0 - write-only - - - - - DIVH - desc DIVH - 0x10 - 32 - read-only - 0x0 - - - DIV - desc DIV - 3 - 0 - read-only - - - - - DIVL - desc DIVL - 0x14 - 32 - read-only - 0x8000 - - - DIV - desc DIV - 15 - 0 - read-only - - - - - CNTH - desc CNTH - 0x18 - 32 - read-write - 0x0 - - - RTC_CNT - desc RTC_CNT - 15 - 0 - read-write - - - - - CNTL - desc CNTL - 0x1C - 32 - read-write - 0x0 - - - RTC_CNT - desc RTC_CNT - 15 - 0 - read-write - - - - - ALRH - desc ALRH - 0x20 - 32 - read-write - 0xFFFF - - - RTC_ALR - desc RTC_ALR - 15 - 0 - read-write - - - - - ALRL - desc ALRL - 0x24 - 32 - read-write - 0xFFFF - - - RTC_ALR - desc RTC_ALR - 15 - 0 - read-write - - - - - BKP_RTCCR - desc BKP_RTCCR - 0x2C - 32 - read-write - 0x0 - - - CAL - desc CAL - 6 - 0 - read-write - - - CCO - desc CCO - 7 - 7 - read-write - - - ASOE - desc ASOE - 8 - 8 - read-write - - - ASOS - desc ASOS - 9 - 9 - read-write - - - - - - - SPI1 - Serial peripheral interface - SPI - 0x40013000 - - 0x0 - 0x400 - registers - - - SPI1 - SPI1 global Interrupt - 25 - - - - CR1 - desc CR1 - 0x0 - 32 - read-write - 0x0 - - - CPHA - desc CPHA - 0 - 0 - read-write - - - CPOL - desc CPOL - 1 - 1 - read-write - - - MSTR - desc MSTR - 2 - 2 - read-write - - - BR - desc BR - 5 - 3 - read-write - - - SPE - desc SPE - 6 - 6 - read-write - - - LSBFIRST - desc LSBFIRST - 7 - 7 - read-write - - - SSI - desc SSI - 8 - 8 - read-write - - - SSM - desc SSM - 9 - 9 - read-write - - - RXONLY - desc RXONLY - 10 - 10 - read-write - - - DDF - desc DDF - 11 - 11 - read-write - - - CRCNEXT - desc CRCNEXT - 12 - 12 - read-write - - - CRCEN - desc CRCEN - 13 - 13 - read-write - - - BIDIOE - desc BIDIOE - 14 - 14 - read-write - - - BIDIMODE - desc BIDIMODE - 15 - 15 - read-write - - - - - CR2 - desc CR2 - 0x4 - 32 - read-write - 0x0 - - - RXDMAEN - desc RXDMAEN - 0 - 0 - read-write - - - TXDMAEN - desc TXDMAEN - 1 - 1 - read-write - - - SSOE - desc SSOE - 2 - 2 - read-write - - - CLRTXFIFO - desc CLRTXFIFO - 4 - 4 - read-write - - - ERRIE - desc ERRIE - 5 - 5 - read-write - - - RXNEIE - desc RXNEIE - 6 - 6 - read-write - - - TXEIE - desc TXEIE - 7 - 7 - read-write - - - FRXTH - desc FRXTH - 12 - 12 - read-write - - - LDMA_RX - desc LDMA_RX - 13 - 13 - read-write - - - LDMA_TX - desc LDMA_TX - 14 - 14 - read-write - - - - - SR - desc SR - 0x8 - 32 - read-write - 0x2 - - - RXNE - desc RXNE - 0 - 0 - read-only - - - TXE - desc TXE - 1 - 1 - read-only - - - CHSIDE - desc CHSIDE - 2 - 2 - read-only - - - UDR - desc UDR - 3 - 3 - read-only - - - CRCERR - desc CRCERR - 4 - 4 - read-write - - - MODF - desc MODF - 5 - 5 - read-only - - - OVR - desc OVR - 6 - 6 - read-only - - - BSY - desc BSY - 7 - 7 - read-only - - - FRLVL - desc FRLVL - 10 - 9 - read-only - - - FTLVL - desc FTLVL - 12 - 11 - read-only - - - - - DR - desc DR - 0xC - 32 - read-write - 0x0 - - - DR - desc DR - 15 - 0 - read-write - - - - - CRCPR - desc CRCPR - 0x10 - 32 - read-write - 0x7 - - - CRCPOLY - desc CRCPOLY - 15 - 0 - read-write - - - - - RXCRCR - desc RXCRCR - 0x14 - 32 - read-only - 0x0 - - - RXCRC - desc RXCRC - 15 - 0 - read-only - - - - - TXCRCR - desc TXCRCR - 0x18 - 32 - read-only - 0x0 - - - TXCRC - desc TXCRC - 15 - 0 - read-only - - - - - I2SCFGR - desc I2SCFGR - 0x1C - 32 - read-write - 0x0 - - - CHLEN - desc CHLEN - 0 - 0 - read-write - - - DATLEN - desc DATLEN - 2 - 1 - read-write - - - CKPOL - desc CKPOL - 3 - 3 - read-write - - - I2SSTD - desc I2SSTD - 5 - 4 - read-write - - - PCMSYNC - desc PCMSYNC - 7 - 7 - read-write - - - I2SCFG - desc I2SCFG - 9 - 8 - read-write - - - I2SE - desc I2SE - 10 - 10 - read-write - - - I2SMOD - desc I2SMOD - 11 - 11 - read-write - - - - - I2SPR - desc I2SPR - 0x20 - 32 - read-write - 0x2 - - - I2SDIV - desc I2SDIV - 7 - 0 - read-write - - - ODD - desc ODD - 8 - 8 - read-write - - - MCKOE - desc MCKOE - 9 - 9 - read-write - - - - - - - SPI2 - 0x40003800 - - SPI2 - SPI2 global Interrupt - 26 - - - - SYSCFG - desc SYSCFG - SYSCFG - 0x40010000 - - 0x0 - 0x200 - registers - - - - CFGR1 - desc CFGR1 - 0x0 - 32 - read-write - 0xFF0000 - - - MEM_MODE - desc MEM_MODE - 1 - 0 - read-write - - - TIM1_IC1_SRC - desc TIM1_IC1_SRC - 3 - 2 - read-write - - - TIM2_IC4_SRC - desc TIM2_IC4_SRC - 5 - 4 - read-write - - - TIM3_IC1_SRC - desc TIM3_IC1_SRC - 7 - 6 - read-write - - - ETR_SRC_TIM1 - desc ETR_SRC_TIM1 - 10 - 8 - read-write - - - ETR_SRC_TIM2 - desc ETR_SRC_TIM2 - 14 - 12 - read-write - - - ETR_SRC_TIM3 - desc ETR_SRC_TIM3 - 18 - 16 - read-write - - - GPIO_AHB_SEL - desc GPIO_AHB_SEL - 24 - 24 - read-write - - - - - CFGR2 - desc CFGR2 - 0x4 - 32 - read-write - 0x4 - - - LOCKUP_LOCK - desc LOCKUP_LOCK - 0 - 0 - read-write - - - PVD_LOCK - desc PVD_LOCK - 2 - 2 - read-write - - - COMP1_BRK_TIM1 - desc COMP1_BRK_TIM1 - 3 - 3 - read-write - - - COMP2_BRK_TIM1 - desc COMP2_BRK_TIM1 - 4 - 4 - read-write - - - COMP3_BRK_TIM1 - desc COMP3_BRK_TIM1 - 5 - 5 - read-write - - - COMP1_BRK_TIM15 - desc COMP1_BRK_TIM15 - 6 - 6 - read-write - - - COMP2_BRK_TIM15 - desc COMP2_BRK_TIM15 - 7 - 7 - read-write - - - COMP3_BRK_TIM15 - desc COMP3_BRK_TIM15 - 8 - 8 - read-write - - - COMP1_BRK_TIM16 - desc COMP1_BRK_TIM16 - 9 - 9 - read-write - - - COMP2_BRK_TIM16 - desc COMP2_BRK_TIM16 - 10 - 10 - read-write - - - COMP3_BRK_TIM16 - desc COMP3_BRK_TIM16 - 11 - 11 - read-write - - - COMP1_BRK_TIM17 - desc COMP1_BRK_TIM17 - 12 - 12 - read-write - - - COMP2_BRK_TIM17 - desc COMP2_BRK_TIM17 - 13 - 13 - read-write - - - COMP3_BRK_TIM17 - desc COMP3_BRK_TIM17 - 14 - 14 - read-write - - - COMP1_OCREF_CLR_TIM1 - desc COMP1_OCREF_CLR_TIM1 - 15 - 15 - read-write - - - COMP1_OCREF_CLR_TIM2 - desc COMP1_OCREF_CLR_TIM2 - 16 - 16 - read-write - - - COMP1_OCREF_CLR_TIM3 - desc COMP1_OCREF_CLR_TIM3 - 17 - 17 - read-write - - - COMP2_OCREF_CLR_TIM1 - desc COMP2_OCREF_CLR_TIM1 - 18 - 18 - read-write - - - COMP2_OCREF_CLR_TIM2 - desc COMP2_OCREF_CLR_TIM2 - 19 - 19 - read-write - - - COMP2_OCREF_CLR_TIM3 - desc COMP2_OCREF_CLR_TIM3 - 20 - 20 - read-write - - - COMP3_OCREF_CLR_TIM1 - desc COMP3_OCREF_CLR_TIM1 - 21 - 21 - read-write - - - COMP3_OCREF_CLR_TIM2 - desc COMP3_OCREF_CLR_TIM2 - 22 - 22 - read-write - - - COMP3_OCREF_CLR_TIM3 - desc COMP3_OCREF_CLR_TIM3 - 23 - 23 - read-write - - - - - CFGR3 - desc CFGR3 - 0x8 - 32 - read-write - 0x0 - - - DMA1_MAP - desc DMA1_MAP - 5 - 0 - read-write - - - DMA2_MAP - desc DMA2_MAP - 13 - 8 - read-write - - - DMA3_MAP - desc DMA3_MAP - 21 - 16 - read-write - - - DMA4_MAP - desc DMA4_MAP - 29 - 24 - read-write - - - - - CFGR4 - desc CFGR4 - 0xC - 32 - read-write - 0x0 - - - DMA5_MAP - desc DMA5_MAP - 5 - 0 - read-write - - - DMA6_MAP - desc DMA6_MAP - 13 - 8 - read-write - - - DMA7_MAP - desc DMA7_MAP - 21 - 16 - read-write - - - - - PAENS - desc PAENS - 0x10 - 32 - read-write - 0x0 - - - PA_ENS - desc PA_ENS - 15 - 0 - read-write - - - - - PBENS - desc PBENS - 0x14 - 32 - read-write - 0x0 - - - PB_ENS - desc PB_ENS - 15 - 0 - read-write - - - - - PCENS - desc PCENS - 0x18 - 32 - read-write - 0x0 - - - PC_ENS - desc PC_ENS - 15 - 0 - read-write - - - - - PFENS - desc PFENS - 0x1C - 32 - read-write - 0x0 - - - PF_ENS - desc PF_ENS - 15 - 0 - read-write - - - - - EIIC - desc EIIC - 0x20 - 32 - read-write - 0x0 - - - PA_EIIC - desc PA_EIIC - 1 - 0 - read-write - - - PB_EIIC - desc PB_EIIC - 16 - 8 - read-write - - - PF_EIIC - desc PF_EIIC - 25 - 24 - read-write - - - - - - - TIM1 - Advanced timer - TIM - 0x40012C00 - - 0x0 - 0x400 - registers - - - TIM1_BRK_UP_TRG_COM - TIM1 Break, Update, Trigger and Commutation Interrupt - 13 - - - TIM1_CC - TIM1 Capture Compare Interrupt - 14 - - - - CR1 - desc CR1 - 0x0 - 32 - read-write - 0x0 - 0x3FF - - - CEN - desc CEN - 0 - 0 - read-write - - - UDIS - desc UDIS - 1 - 1 - read-write - - - URS - desc URS - 2 - 2 - read-write - - - OPM - desc OPM - 3 - 3 - read-write - - - DIR - desc DIR - 4 - 4 - read-write - - - CMS - desc CMS - 6 - 5 - read-write - - - ARPE - desc ARPE - 7 - 7 - read-write - - - CKD - desc CKD - 9 - 8 - read-write - - - - - CR2 - desc CR2 - 0x4 - 32 - read-write - 0x0 - 0xF8 - - - CCDS - desc CCDS - 3 - 3 - read-write - - - MMS - desc MMS - 6 - 4 - read-write - - - TI1S - desc TI1S - 7 - 7 - read-write - - - - - SMCR - desc SMCR - 0x8 - 32 - read-write - 0x0 - 0xFFF7 - - - SMS - desc SMS - 2 - 0 - read-write - - - TS - desc TS - 6 - 4 - read-write - - - MSM - desc MSM - 7 - 7 - read-write - - - ETF - desc ETF - 11 - 8 - read-write - - - ETPS - desc ETPS - 13 - 12 - read-write - - - ECE - desc ECE - 14 - 14 - read-write - - - ETP - desc ETP - 15 - 15 - read-write - - - - - DIER - desc DIER - 0xC - 32 - read-write - 0x0 - 0x5F5F - - - UIE - desc UIE - 0 - 0 - read-write - - - CC1IE - desc CC1IE - 1 - 1 - read-write - - - CC2IE - desc CC2IE - 2 - 2 - read-write - - - CC3IE - desc CC3IE - 3 - 3 - read-write - - - CC4IE - desc CC4IE - 4 - 4 - read-write - - - TIE - desc TIE - 6 - 6 - read-write - - - UDE - desc UDE - 8 - 8 - read-write - - - CC1DE - desc CC1DE - 9 - 9 - read-write - - - CC2DE - desc CC2DE - 10 - 10 - read-write - - - CC3DE - desc CC3DE - 11 - 11 - read-write - - - CC4DE - desc CC4DE - 12 - 12 - read-write - - - TDE - desc TDE - 14 - 14 - read-write - - - - - SR - desc SR - 0x10 - 32 - read-write - 0x0 - 0x1E5F - - - UIF - desc UIF - 0 - 0 - read-write - - - CC1IF - desc CC1IF - 1 - 1 - read-write - - - CC2IF - desc CC2IF - 2 - 2 - read-write - - - CC3IF - desc CC3IF - 3 - 3 - read-write - - - CC4IF - desc CC4IF - 4 - 4 - read-write - - - COMIF - desc COMIF - 5 - 5 - read-write - - - TIF - desc TIF - 6 - 6 - read-write - - - BIF - desc BIF - 7 - 7 - read-write - - - CC1OF - desc CC1OF - 9 - 9 - read-write - - - CC2OF - desc CC2OF - 10 - 10 - read-write - - - CC3OF - desc CC3OF - 11 - 11 - read-write - - - CC4OF - desc CC4OF - 12 - 12 - read-write - - - IC1IR - desc IC1IR - 16 - 16 - read-write - - - IC2IR - desc IC2IR - 17 - 17 - read-write - - - IC3IR - desc IC3IR - 18 - 18 - read-write - - - IC4IR - desc IC3IR - 19 - 19 - read-write - - - IC1IF - desc IC1IF - 20 - 20 - read-write - - - IC2IF - desc IC2IF - 21 - 21 - read-write - - - IC3IF - desc IC3IF - 22 - 22 - read-write - - - IC4IF - desc IC3IF - 23 - 23 - read-write - - - - - EGR - desc EGR - 0x14 - 32 - write-only - 0x0 - 0x5F - - - UG - desc UG - 0 - 0 - write-only - - - CC1G - Capture/Compare 1 Generation - 1 - 1 - write-only - - - CC2G - desc CC2G - 2 - 2 - write-only - - - CC3G - desc CC3G - 3 - 3 - write-only - - - CC4G - desc CC4G - 4 - 4 - write-only - - - TG - desc TG - 6 - 6 - write-only - - - - - CCMR1_OUTPUT - desc CCMR1:OUTPUT - 0x18 - 32 - read-write - 0x0 - 0xFFFF - - - CC1S - desc CC1S - 1 - 0 - read-write - - - OC1FE - desc OC1FE - 2 - 2 - read-write - - - OC1PE - desc OC1PE - 3 - 3 - read-write - - - OC1M - desc OC1M - 6 - 4 - read-write - - - OC1CE - desc OC1CE - 7 - 7 - read-write - - - CC2S - desc CC2S - 9 - 8 - read-write - - - OC2FE - desc OC2FE - 10 - 10 - read-write - - - OC2PE - desc OC2PE - 11 - 11 - read-write - - - OC2M - desc OC2M - 14 - 12 - read-write - - - OC2CE - desc OC2CE - 15 - 15 - read-write - - - - - CCMR1_INPUT - desc CCMR1:INPUT - CCMR1_OUTPUT - 0x18 - 32 - read-write - 0x0 - 0xFFFF - - - CC1S - desc CC1S - 1 - 0 - read-write - - - IC1PSC - desc IC1PSC - 3 - 2 - read-write - - - IC1F - desc IC1F - 7 - 4 - read-write - - - CC2S - desc CC2S - 9 - 8 - read-write - - - IC2PSC - desc IC2PSC - 11 - 10 - read-write - - - IC2F - desc IC2F - 15 - 12 - read-write - - - - - CCMR2_OUTPUT - desc CCMR2:OUTPUT - 0x1C - 32 - read-write - 0x0 - 0xFFFF - - - CC3S - desc CC3S - 1 - 0 - read-write - - - OC3FE - desc OC3FE - 2 - 2 - read-write - - - OC3PE - desc OC3PE - 3 - 3 - read-write - - - OC3M - desc OC3M - 6 - 4 - read-write - - - OC3CE - desc OC3CE - 7 - 7 - read-write - - - CC4S - desc CC4S - 9 - 8 - read-write - - - OC4FE - desc OC4FE - 10 - 10 - read-write - - - OC4PE - desc OC4PE - 11 - 11 - read-write - - - OC4M - desc OC4M - 14 - 12 - read-write - - - OC4CE - desc OC4CE - 15 - 15 - read-write - - - - - CCMR2_INPUT - desc CCMR2:INPUT - CCMR2_OUTPUT - 0x1C - 32 - read-write - 0x0 - 0xFFFF - - - CC3S - desc CC3S - 1 - 0 - read-write - - - IC3PSC - desc IC3PSC - 3 - 2 - read-write - - - IC3F - desc IC3F - 7 - 4 - read-write - - - CC4S - desc CC4S - 9 - 8 - read-write - - - IC4PSC - desc IC4PSC - 11 - 10 - read-write - - - IC4F - desc IC4F - 15 - 12 - read-write - - - - - CCER - desc CCER - 0x20 - 32 - read-write - 0x0 - 0x3333 - - - CC1E - desc CC1E - 0 - 0 - read-write - - - CC1P - desc CC1P - 1 - 1 - read-write - - - CC2E - desc CC2E - 4 - 4 - read-write - - - CC2P - desc CC2P - 5 - 5 - read-write - - - CC3E - desc CC3E - 8 - 8 - read-write - - - CC3P - desc CC3P - 9 - 9 - read-write - - - CC4E - desc CC4E - 12 - 12 - read-write - - - CC4P - desc CC4P - 13 - 13 - read-write - - - - - CNT - desc CNT - 0x24 - 32 - read-write - 0x0 - 0xFFFF - - - CNT - desc CNT - 15 - 0 - read-write - - - - - PSC - desc PSC - 0x28 - 32 - read-write - 0x0 - 0xFFFF - - - PSC - desc PSC - 15 - 0 - read-write - - - - - ARR - desc ARR - 0x2C - 32 - read-write - 0xFFFF - 0xFFFF - - - ARR - desc ARR - 15 - 0 - read-write - - - - - RCR - desc RCR - 0x30 - 32 - read-write - 0xFFFF - 0xFFFF - - - REP - desc REP - 7 - 0 - read-write - - - - - CCR1 - desc CCR1 - 0x34 - 32 - read-write - 0x0 - 0xFFFF - - - CCR1 - desc CCR1 - 15 - 0 - read-write - - - - - CCR2 - desc CCR2 - 0x38 - 32 - read-write - 0x0 - 0xFFFF - - - CCR2 - desc CCR2 - 15 - 0 - read-write - - - - - CCR3 - desc CCR3 - 0x3C - 32 - read-write - 0x0 - 0xFFFF - - - CCR3 - desc CCR3 - 15 - 0 - read-write - - - - - CCR4 - desc CCR4 - 0x40 - 32 - read-write - 0x0 - 0xFFFF - - - CCR4 - desc CCR4 - 15 - 0 - read-write - - - - - BDTR - desc BDTR - 0x44 - 32 - read-write - 0x0 - 0xFFFF - - - DTG - desc DTG - 7 - 0 - read-write - - - LOCK - desc LOCK - 9 - 8 - read-write - - - OSSI - desc OSSI - 10 - 10 - read-write - - - OSSR - desc OSSR - 11 - 11 - read-write - - - BKE - desc BKE - 12 - 12 - read-write - - - BKP - desc BKP - 13 - 13 - read-write - - - AOE - desc AOE - 14 - 14 - read-write - - - MOE - desc MOE - 15 - 15 - read-write - - - - - DCR - desc DCR - 0x48 - 32 - read-write - 0x0 - 0x1F1F - - - DBA - desc DBA - 4 - 0 - read-write - - - DBL - desc DBL - 12 - 8 - read-write - - - - - DMAR - desc DMAR - 0x4C - 32 - read-write - 0x0 - 0xFFFF - - - DMAB - desc DMAB - 15 - 0 - read-write - - - - - - - TIM2 - desc TIM - TIM - 0x40000000 - - 0x0 - 0x400 - registers - - - TIM2 - TIM2 global Interrupt - 15 - - - - CR1 - desc CR1 - 0x0 - 32 - read-write - 0x0 - 0x3FF - - - CEN - desc CEN - 0 - 0 - read-write - - - UDIS - desc UDIS - 1 - 1 - read-write - - - URS - desc URS - 2 - 2 - read-write - - - OPM - desc OPM - 3 - 3 - read-write - - - DIR - desc DIR - 4 - 4 - read-write - - - CMS - desc CMS - 6 - 5 - read-write - - - ARPE - desc ARPE - 7 - 7 - read-write - - - CKD - desc CKD - 9 - 8 - read-write - - - - - CR2 - desc CR2 - 0x4 - 32 - read-write - 0x0 - 0xF8 - - - CCDS - desc CCDS - 3 - 3 - read-write - - - MMS - desc MMS - 6 - 4 - read-write - - - TI1S - desc TI1S - 7 - 7 - read-write - - - - - SMCR - desc SMCR - 0x8 - 32 - read-write - 0x0 - 0xFFF7 - - - SMS - desc SMS - 2 - 0 - read-write - - - TS - desc TS - 6 - 4 - read-write - - - MSM - desc MSM - 7 - 7 - read-write - - - ETF - desc ETF - 11 - 8 - read-write - - - ETPS - desc ETPS - 13 - 12 - read-write - - - ECE - desc ECE - 14 - 14 - read-write - - - ETP - desc ETP - 15 - 15 - read-write - - - - - DIER - desc DIER - 0xC - 32 - read-write - 0x0 - 0x5F5F - - - UIE - desc UIE - 0 - 0 - read-write - - - CC1IE - desc CC1IE - 1 - 1 - read-write - - - CC2IE - desc CC2IE - 2 - 2 - read-write - - - CC3IE - desc CC3IE - 3 - 3 - read-write - - - CC4IE - desc CC4IE - 4 - 4 - read-write - - - TIE - desc TIE - 6 - 6 - read-write - - - UDE - desc UDE - 8 - 8 - read-write - - - CC1DE - desc CC1DE - 9 - 9 - read-write - - - CC2DE - desc CC2DE - 10 - 10 - read-write - - - CC3DE - desc CC3DE - 11 - 11 - read-write - - - CC4DE - desc CC4DE - 12 - 12 - read-write - - - TDE - desc TDE - 14 - 14 - read-write - - - - - SR - desc SR - 0x10 - 32 - read-write - 0x0 - 0x1E5F - - - UIF - desc UIF - 0 - 0 - read-write - - - CC1IF - desc CC1IF - 1 - 1 - read-write - - - CC2IF - desc CC2IF - 2 - 2 - read-write - - - CC3IF - desc CC3IF - 3 - 3 - read-write - - - CC4IF - desc CC4IF - 4 - 4 - read-write - - - COMIF - desc COMIF - 5 - 5 - read-write - - - TIF - desc TIF - 6 - 6 - read-write - - - BIF - desc BIF - 7 - 7 - read-write - - - CC1OF - desc CC1OF - 9 - 9 - read-write - - - CC2OF - desc CC2OF - 10 - 10 - read-write - - - CC3OF - desc CC3OF - 11 - 11 - read-write - - - CC4OF - desc CC4OF - 12 - 12 - read-write - - - IC1IR - desc IC1IR - 16 - 16 - read-write - - - IC2IR - desc IC2IR - 17 - 17 - read-write - - - IC3IR - desc IC3IR - 18 - 18 - read-write - - - IC4IR - desc IC3IR - 19 - 19 - read-write - - - IC1IF - desc IC1IF - 20 - 20 - read-write - - - IC2IF - desc IC2IF - 21 - 21 - read-write - - - IC3IF - desc IC3IF - 22 - 22 - read-write - - - IC4IF - desc IC3IF - 23 - 23 - read-write - - - - - EGR - desc EGR - 0x14 - 32 - write-only - 0x0 - 0x5F - - - UG - desc UG - 0 - 0 - write-only - - - CC1G - Capture/Compare 1 Generation - 1 - 1 - write-only - - - CC2G - desc CC2G - 2 - 2 - write-only - - - CC3G - desc CC3G - 3 - 3 - write-only - - - CC4G - desc CC4G - 4 - 4 - write-only - - - TG - desc TG - 6 - 6 - write-only - - - - - CCMR1_OUTPUT - desc CCMR1:OUTPUT - 0x18 - 32 - read-write - 0x0 - 0xFFFF - - - CC1S - desc CC1S - 1 - 0 - read-write - - - OC1FE - desc OC1FE - 2 - 2 - read-write - - - OC1PE - desc OC1PE - 3 - 3 - read-write - - - OC1M - desc OC1M - 6 - 4 - read-write - - - OC1CE - desc OC1CE - 7 - 7 - read-write - - - CC2S - desc CC2S - 9 - 8 - read-write - - - OC2FE - desc OC2FE - 10 - 10 - read-write - - - OC2PE - desc OC2PE - 11 - 11 - read-write - - - OC2M - desc OC2M - 14 - 12 - read-write - - - OC2CE - desc OC2CE - 15 - 15 - read-write - - - - - CCMR1_INPUT - desc CCMR1:INPUT - CCMR1_OUTPUT - 0x18 - 32 - read-write - 0x0 - 0xFFFF - - - CC1S - desc CC1S - 1 - 0 - read-write - - - IC1PSC - desc IC1PSC - 3 - 2 - read-write - - - IC1F - desc IC1F - 7 - 4 - read-write - - - CC2S - desc CC2S - 9 - 8 - read-write - - - IC2PSC - desc IC2PSC - 11 - 10 - read-write - - - IC2F - desc IC2F - 15 - 12 - read-write - - - - - CCMR2_OUTPUT - desc CCMR2:OUTPUT - 0x1C - 32 - read-write - 0x0 - 0xFFFF - - - CC3S - desc CC3S - 1 - 0 - read-write - - - OC3FE - desc OC3FE - 2 - 2 - read-write - - - OC3PE - desc OC3PE - 3 - 3 - read-write - - - OC3M - desc OC3M - 6 - 4 - read-write - - - OC3CE - desc OC3CE - 7 - 7 - read-write - - - CC4S - desc CC4S - 9 - 8 - read-write - - - OC4FE - desc OC4FE - 10 - 10 - read-write - - - OC4PE - desc OC4PE - 11 - 11 - read-write - - - OC4M - desc OC4M - 14 - 12 - read-write - - - OC4CE - desc OC4CE - 15 - 15 - read-write - - - - - CCMR2_INPUT - desc CCMR2:INPUT - CCMR2_OUTPUT - 0x1C - 32 - read-write - 0x0 - 0xFFFF - - - CC3S - desc CC3S - 1 - 0 - read-write - - - IC3PSC - desc IC3PSC - 3 - 2 - read-write - - - IC3F - desc IC3F - 7 - 4 - read-write - - - CC4S - desc CC4S - 9 - 8 - read-write - - - IC4PSC - desc IC4PSC - 11 - 10 - read-write - - - IC4F - desc IC4F - 15 - 12 - read-write - - - - - CCER - desc CCER - 0x20 - 32 - read-write - 0x0 - 0x3333 - - - CC1E - desc CC1E - 0 - 0 - read-write - - - CC1P - desc CC1P - 1 - 1 - read-write - - - CC2E - desc CC2E - 4 - 4 - read-write - - - CC2P - desc CC2P - 5 - 5 - read-write - - - CC3E - desc CC3E - 8 - 8 - read-write - - - CC3P - desc CC3P - 9 - 9 - read-write - - - CC4E - desc CC4E - 12 - 12 - read-write - - - CC4P - desc CC4P - 13 - 13 - read-write - - - - - CNT - desc CNT - 0x24 - 32 - read-write - 0x0 - 0xFFFF - - - CNT - desc CNT - 15 - 0 - read-write - - - - - PSC - desc PSC - 0x28 - 32 - read-write - 0x0 - 0xFFFF - - - PSC - desc PSC - 15 - 0 - read-write - - - - - ARR - desc ARR - 0x2C - 32 - read-write - 0xFFFF - 0xFFFF - - - ARR - desc ARR - 15 - 0 - read-write - - - - - CCR1 - desc CCR1 - 0x34 - 32 - read-write - 0x0 - 0xFFFF - - - CCR1 - desc CCR1 - 15 - 0 - read-write - - - - - CCR2 - desc CCR2 - 0x38 - 32 - read-write - 0x0 - 0xFFFF - - - CCR2 - desc CCR2 - 15 - 0 - read-write - - - - - CCR3 - desc CCR3 - 0x3C - 32 - read-write - 0x0 - 0xFFFF - - - CCR3 - desc CCR3 - 15 - 0 - read-write - - - - - CCR4 - desc CCR4 - 0x40 - 32 - read-write - 0x0 - 0xFFFF - - - CCR4 - desc CCR4 - 15 - 0 - read-write - - - - - DCR - desc DCR - 0x48 - 32 - read-write - 0x0 - 0x1F1F - - - DBA - desc DBA - 4 - 0 - read-write - - - DBL - desc DBL - 12 - 8 - read-write - - - - - DMAR - desc DMAR - 0x4C - 32 - read-write - 0x0 - 0xFFFF - - - DMAB - desc DMAB - 15 - 0 - read-write - - - - - - - TIM3 - General purpose timer - TIM - 0x40000400 - - 0x00 - 0x400 - registers - - - TIM3 - TIM3 global Interrupt - 16 - - - - CR1 - desc CR1 - 0x0 - 32 - read-write - 0x0 - 0x3FF - - - CEN - desc CEN - 0 - 0 - read-write - - - UDIS - desc UDIS - 1 - 1 - read-write - - - URS - desc URS - 2 - 2 - read-write - - - OPM - desc OPM - 3 - 3 - read-write - - - DIR - desc DIR - 4 - 4 - read-write - - - CMS - desc CMS - 6 - 5 - read-write - - - ARPE - desc ARPE - 7 - 7 - read-write - - - CKD - desc CKD - 9 - 8 - read-write - - - - - CR2 - desc CR2 - 0x4 - 32 - read-write - 0x0 - 0xF8 - - - CCDS - desc CCDS - 3 - 3 - read-write - - - MMS - desc MMS - 6 - 4 - read-write - - - TI1S - desc TI1S - 7 - 7 - read-write - - - - - SMCR - desc SMCR - 0x8 - 32 - read-write - 0x0 - 0xFFF7 - - - SMS - desc SMS - 2 - 0 - read-write - - - TS - desc TS - 6 - 4 - read-write - - - MSM - desc MSM - 7 - 7 - read-write - - - ETF - desc ETF - 11 - 8 - read-write - - - ETPS - desc ETPS - 13 - 12 - read-write - - - ECE - desc ECE - 14 - 14 - read-write - - - ETP - desc ETP - 15 - 15 - read-write - - - - - DIER - desc DIER - 0xC - 32 - read-write - 0x0 - 0x5F5F - - - UIE - desc UIE - 0 - 0 - read-write - - - CC1IE - desc CC1IE - 1 - 1 - read-write - - - CC2IE - desc CC2IE - 2 - 2 - read-write - - - CC3IE - desc CC3IE - 3 - 3 - read-write - - - CC4IE - desc CC4IE - 4 - 4 - read-write - - - TIE - desc TIE - 6 - 6 - read-write - - - UDE - desc UDE - 8 - 8 - read-write - - - CC1DE - desc CC1DE - 9 - 9 - read-write - - - CC2DE - desc CC2DE - 10 - 10 - read-write - - - CC3DE - desc CC3DE - 11 - 11 - read-write - - - CC4DE - desc CC4DE - 12 - 12 - read-write - - - TDE - desc TDE - 14 - 14 - read-write - - - - - SR - desc SR - 0x10 - 32 - read-write - 0x0 - 0x1E5F - - - UIF - desc UIF - 0 - 0 - read-write - - - CC1IF - desc CC1IF - 1 - 1 - read-write - - - CC2IF - desc CC2IF - 2 - 2 - read-write - - - CC3IF - desc CC3IF - 3 - 3 - read-write - - - CC4IF - desc CC4IF - 4 - 4 - read-write - - - COMIF - desc COMIF - 5 - 5 - read-write - - - TIF - desc TIF - 6 - 6 - read-write - - - BIF - desc BIF - 7 - 7 - read-write - - - CC1OF - desc CC1OF - 9 - 9 - read-write - - - CC2OF - desc CC2OF - 10 - 10 - read-write - - - CC3OF - desc CC3OF - 11 - 11 - read-write - - - CC4OF - desc CC4OF - 12 - 12 - read-write - - - IC1IR - desc IC1IR - 16 - 16 - read-write - - - IC2IR - desc IC2IR - 17 - 17 - read-write - - - IC3IR - desc IC3IR - 18 - 18 - read-write - - - IC4IR - desc IC3IR - 19 - 19 - read-write - - - IC1IF - desc IC1IF - 20 - 20 - read-write - - - IC2IF - desc IC2IF - 21 - 21 - read-write - - - IC3IF - desc IC3IF - 22 - 22 - read-write - - - IC4IF - desc IC3IF - 23 - 23 - read-write - - - - - EGR - desc EGR - 0x14 - 32 - write-only - 0x0 - 0x5F - - - UG - desc UG - 0 - 0 - write-only - - - CC1G - Capture/Compare 1 Generation - 1 - 1 - write-only - - - CC2G - desc CC2G - 2 - 2 - write-only - - - CC3G - desc CC3G - 3 - 3 - write-only - - - CC4G - desc CC4G - 4 - 4 - write-only - - - TG - desc TG - 6 - 6 - write-only - - - - - CCMR1_OUTPUT - desc CCMR1:OUTPUT - 0x18 - 32 - read-write - 0x0 - 0xFFFF - - - CC1S - desc CC1S - 1 - 0 - read-write - - - OC1FE - desc OC1FE - 2 - 2 - read-write - - - OC1PE - desc OC1PE - 3 - 3 - read-write - - - OC1M - desc OC1M - 6 - 4 - read-write - - - OC1CE - desc OC1CE - 7 - 7 - read-write - - - CC2S - desc CC2S - 9 - 8 - read-write - - - OC2FE - desc OC2FE - 10 - 10 - read-write - - - OC2PE - desc OC2PE - 11 - 11 - read-write - - - OC2M - desc OC2M - 14 - 12 - read-write - - - OC2CE - desc OC2CE - 15 - 15 - read-write - - - - - CCMR1_INPUT - desc CCMR1:INPUT - CCMR1_OUTPUT - 0x18 - 32 - read-write - 0x0 - 0xFFFF - - - CC1S - desc CC1S - 1 - 0 - read-write - - - IC1PSC - desc IC1PSC - 3 - 2 - read-write - - - IC1F - desc IC1F - 7 - 4 - read-write - - - CC2S - desc CC2S - 9 - 8 - read-write - - - IC2PSC - desc IC2PSC - 11 - 10 - read-write - - - IC2F - desc IC2F - 15 - 12 - read-write - - - - - CCMR2_OUTPUT - desc CCMR2:OUTPUT - 0x1C - 32 - read-write - 0x0 - 0xFFFF - - - CC3S - desc CC3S - 1 - 0 - read-write - - - OC3FE - desc OC3FE - 2 - 2 - read-write - - - OC3PE - desc OC3PE - 3 - 3 - read-write - - - OC3M - desc OC3M - 6 - 4 - read-write - - - OC3CE - desc OC3CE - 7 - 7 - read-write - - - CC4S - desc CC4S - 9 - 8 - read-write - - - OC4FE - desc OC4FE - 10 - 10 - read-write - - - OC4PE - desc OC4PE - 11 - 11 - read-write - - - OC4M - desc OC4M - 14 - 12 - read-write - - - OC4CE - desc OC4CE - 15 - 15 - read-write - - - - - CCMR2_INPUT - desc CCMR2:INPUT - CCMR2_OUTPUT - 0x1C - 32 - read-write - 0x0 - 0xFFFF - - - CC3S - desc CC3S - 1 - 0 - read-write - - - IC3PSC - desc IC3PSC - 3 - 2 - read-write - - - IC3F - desc IC3F - 7 - 4 - read-write - - - CC4S - desc CC4S - 9 - 8 - read-write - - - IC4PSC - desc IC4PSC - 11 - 10 - read-write - - - IC4F - desc IC4F - 15 - 12 - read-write - - - - - CCER - desc CCER - 0x20 - 32 - read-write - 0x0 - 0x3333 - - - CC1E - desc CC1E - 0 - 0 - read-write - - - CC1P - desc CC1P - 1 - 1 - read-write - - - CC2E - desc CC2E - 4 - 4 - read-write - - - CC2P - desc CC2P - 5 - 5 - read-write - - - CC3E - desc CC3E - 8 - 8 - read-write - - - CC3P - desc CC3P - 9 - 9 - read-write - - - CC4E - desc CC4E - 12 - 12 - read-write - - - CC4P - desc CC4P - 13 - 13 - read-write - - - - - CNT - desc CNT - 0x24 - 32 - read-write - 0x0 - 0xFFFF - - - CNT - desc CNT - 15 - 0 - read-write - - - - - PSC - desc PSC - 0x28 - 32 - read-write - 0x0 - 0xFFFF - - - PSC - desc PSC - 15 - 0 - read-write - - - - - ARR - desc ARR - 0x2C - 32 - read-write - 0xFFFF - 0xFFFF - - - ARR - desc ARR - 15 - 0 - read-write - - - - - CCR1 - desc CCR1 - 0x34 - 32 - read-write - 0x0 - 0xFFFF - - - CCR1 - desc CCR1 - 15 - 0 - read-write - - - - - CCR2 - desc CCR2 - 0x38 - 32 - read-write - 0x0 - 0xFFFF - - - CCR2 - desc CCR2 - 15 - 0 - read-write - - - - - CCR3 - desc CCR3 - 0x3C - 32 - read-write - 0x0 - 0xFFFF - - - CCR3 - desc CCR3 - 15 - 0 - read-write - - - - - CCR4 - desc CCR4 - 0x40 - 32 - read-write - 0x0 - 0xFFFF - - - CCR4 - desc CCR4 - 15 - 0 - read-write - - - - - DCR - desc DCR - 0x48 - 32 - read-write - 0x0 - 0x1F1F - - - DBA - desc DBA - 4 - 0 - read-write - - - DBL - desc DBL - 12 - 8 - read-write - - - - - DMAR - desc DMAR - 0x4C - 32 - read-write - 0x0 - 0xFFFF - - - DMAB - desc DMAB - 15 - 0 - read-write - - - - - - - TIM6 - desc TIM - TIM - 0x40001000 - - 0x0 - 0x400 - registers - - - TIM6_LPTIM1_DAC - TIM6, LPTIM1, DAC global Interrupts - 17 - - - - CR1 - desc CR1 - 0x0 - 32 - read-write - 0x0 - 0x3FF - - - CEN - desc CEN - 0 - 0 - read-write - - - UDIS - desc UDIS - 1 - 1 - read-write - - - URS - desc URS - 2 - 2 - read-write - - - OPM - desc OPM - 3 - 3 - read-write - - - DIR - desc DIR - 4 - 4 - read-write - - - CMS - desc CMS - 6 - 5 - read-write - - - ARPE - desc ARPE - 7 - 7 - read-write - - - CKD - desc CKD - 9 - 8 - read-write - - - - - CR2 - desc CR2 - 0x4 - 32 - read-write - 0x0 - 0xF8 - - - CCDS - desc CCDS - 3 - 3 - read-write - - - MMS - desc MMS - 6 - 4 - read-write - - - TI1S - desc TI1S - 7 - 7 - read-write - - - - - DIER - desc DIER - 0xC - 32 - read-write - 0x0 - 0x5F5F - - - UIE - desc UIE - 0 - 0 - read-write - - - CC1IE - desc CC1IE - 1 - 1 - read-write - - - CC2IE - desc CC2IE - 2 - 2 - read-write - - - CC3IE - desc CC3IE - 3 - 3 - read-write - - - CC4IE - desc CC4IE - 4 - 4 - read-write - - - TIE - desc TIE - 6 - 6 - read-write - - - UDE - desc UDE - 8 - 8 - read-write - - - CC1DE - desc CC1DE - 9 - 9 - read-write - - - CC2DE - desc CC2DE - 10 - 10 - read-write - - - CC3DE - desc CC3DE - 11 - 11 - read-write - - - CC4DE - desc CC4DE - 12 - 12 - read-write - - - TDE - desc TDE - 14 - 14 - read-write - - - - - SR - desc SR - 0x10 - 32 - read-write - 0x0 - 0x1E5F - - - UIF - desc UIF - 0 - 0 - read-write - - - CC1IF - desc CC1IF - 1 - 1 - read-write - - - CC2IF - desc CC2IF - 2 - 2 - read-write - - - CC3IF - desc CC3IF - 3 - 3 - read-write - - - CC4IF - desc CC4IF - 4 - 4 - read-write - - - COMIF - desc COMIF - 5 - 5 - read-write - - - TIF - desc TIF - 6 - 6 - read-write - - - BIF - desc BIF - 7 - 7 - read-write - - - CC1OF - desc CC1OF - 9 - 9 - read-write - - - CC2OF - desc CC2OF - 10 - 10 - read-write - - - CC3OF - desc CC3OF - 11 - 11 - read-write - - - CC4OF - desc CC4OF - 12 - 12 - read-write - - - IC1IR - desc IC1IR - 16 - 16 - read-write - - - IC2IR - desc IC2IR - 17 - 17 - read-write - - - IC3IR - desc IC3IR - 18 - 18 - read-write - - - IC4IR - desc IC3IR - 19 - 19 - read-write - - - IC1IF - desc IC1IF - 20 - 20 - read-write - - - IC2IF - desc IC2IF - 21 - 21 - read-write - - - IC3IF - desc IC3IF - 22 - 22 - read-write - - - IC4IF - desc IC3IF - 23 - 23 - read-write - - - - - EGR - desc EGR - 0x14 - 32 - write-only - 0x0 - 0x5F - - - UG - desc UG - 0 - 0 - write-only - - - CC1G - Capture/Compare 1 Generation - 1 - 1 - write-only - - - CC2G - desc CC2G - 2 - 2 - write-only - - - CC3G - desc CC3G - 3 - 3 - write-only - - - CC4G - desc CC4G - 4 - 4 - write-only - - - TG - desc TG - 6 - 6 - write-only - - - - - CNT - desc CNT - 0x24 - 32 - read-write - 0x0 - 0xFFFF - - - CNT - desc CNT - 15 - 0 - read-write - - - - - PSC - desc PSC - 0x28 - 32 - read-write - 0x0 - 0xFFFF - - - PSC - desc PSC - 15 - 0 - read-write - - - - - ARR - desc ARR - 0x2C - 32 - read-write - 0xFFFF - 0xFFFF - - - ARR - desc ARR - 15 - 0 - read-write - - - - - - - TIM7 - desc TIM - TIM - 0x40001400 - - 0x0 - 0x400 - registers - - - TIM7 - TIM7 global Interrupt - 18 - - - - TIM14 - General purpose timer - TIM - 0x40002000 - - 0x00 - 0x400 - registers - - - TIM14 - TIM14 global Interrupt - 19 - - - - CR1 - desc CR1 - 0x0 - 32 - read-write - 0x0 - 0x3FF - - - CEN - desc CEN - 0 - 0 - read-write - - - UDIS - desc UDIS - 1 - 1 - read-write - - - URS - desc URS - 2 - 2 - read-write - - - OPM - desc OPM - 3 - 3 - read-write - - - DIR - desc DIR - 4 - 4 - read-write - - - CMS - desc CMS - 6 - 5 - read-write - - - ARPE - desc ARPE - 7 - 7 - read-write - - - CKD - desc CKD - 9 - 8 - read-write - - - - - DIER - desc DIER - 0xC - 32 - read-write - 0x0 - 0x5F5F - - - UIE - desc UIE - 0 - 0 - read-write - - - CC1IE - desc CC1IE - 1 - 1 - read-write - - - CC2IE - desc CC2IE - 2 - 2 - read-write - - - CC3IE - desc CC3IE - 3 - 3 - read-write - - - CC4IE - desc CC4IE - 4 - 4 - read-write - - - TIE - desc TIE - 6 - 6 - read-write - - - UDE - desc UDE - 8 - 8 - read-write - - - CC1DE - desc CC1DE - 9 - 9 - read-write - - - CC2DE - desc CC2DE - 10 - 10 - read-write - - - CC3DE - desc CC3DE - 11 - 11 - read-write - - - CC4DE - desc CC4DE - 12 - 12 - read-write - - - TDE - desc TDE - 14 - 14 - read-write - - - - - SR - desc SR - 0x10 - 32 - read-write - 0x0 - 0x1E5F - - - UIF - desc UIF - 0 - 0 - read-write - - - CC1IF - desc CC1IF - 1 - 1 - read-write - - - CC2IF - desc CC2IF - 2 - 2 - read-write - - - CC3IF - desc CC3IF - 3 - 3 - read-write - - - CC4IF - desc CC4IF - 4 - 4 - read-write - - - TIF - desc TIF - 6 - 6 - read-write - - - CC1OF - desc CC1OF - 9 - 9 - read-write - - - CC2OF - desc CC2OF - 10 - 10 - read-write - - - CC3OF - desc CC3OF - 11 - 11 - read-write - - - CC4OF - desc CC4OF - 12 - 12 - read-write - - - - - EGR - desc EGR - 0x14 - 32 - write-only - 0x0 - 0x5F - - - UG - desc UG - 0 - 0 - write-only - - - CC1G - Capture/Compare 1 Generation - 1 - 1 - write-only - - - CC2G - desc CC2G - 2 - 2 - write-only - - - CC3G - desc CC3G - 3 - 3 - write-only - - - CC4G - desc CC4G - 4 - 4 - write-only - - - TG - desc TG - 6 - 6 - write-only - - - - - CCMR1_OUTPUT - desc CCMR1:OUTPUT - 0x18 - 32 - read-write - 0x0 - 0xFFFF - - - CC1S - desc CC1S - 1 - 0 - read-write - - - OC1FE - desc OC1FE - 2 - 2 - read-write - - - OC1PE - desc OC1PE - 3 - 3 - read-write - - - OC1M - desc OC1M - 6 - 4 - read-write - - - OC1CE - desc OC1CE - 7 - 7 - read-write - - - CC2S - desc CC2S - 9 - 8 - read-write - - - OC2FE - desc OC2FE - 10 - 10 - read-write - - - OC2PE - desc OC2PE - 11 - 11 - read-write - - - OC2M - desc OC2M - 14 - 12 - read-write - - - OC2CE - desc OC2CE - 15 - 15 - read-write - - - - - CCMR1_INPUT - desc CCMR1:INPUT - CCMR1_OUTPUT - 0x18 - 32 - read-write - 0x0 - 0xFFFF - - - CC1S - desc CC1S - 1 - 0 - read-write - - - IC1PSC - desc IC1PSC - 3 - 2 - read-write - - - IC1F - desc IC1F - 7 - 4 - read-write - - - CC2S - desc CC2S - 9 - 8 - read-write - - - IC2PSC - desc IC2PSC - 11 - 10 - read-write - - - IC2F - desc IC2F - 15 - 12 - read-write - - - - - CCER - desc CCER - 0x20 - 32 - read-write - 0x0 - 0x3333 - - - CC1E - desc CC1E - 0 - 0 - read-write - - - CC1P - desc CC1P - 1 - 1 - read-write - - - CC2E - desc CC2E - 4 - 4 - read-write - - - CC2P - desc CC2P - 5 - 5 - read-write - - - CC3E - desc CC3E - 8 - 8 - read-write - - - CC3P - desc CC3P - 9 - 9 - read-write - - - CC4E - desc CC4E - 12 - 12 - read-write - - - CC4P - desc CC4P - 13 - 13 - read-write - - - - - CNT - desc CNT - 0x24 - 32 - read-write - 0x0 - 0xFFFF - - - CNT - desc CNT - 15 - 0 - read-write - - - - - PSC - desc PSC - 0x28 - 32 - read-write - 0x0 - 0xFFFF - - - PSC - desc PSC - 15 - 0 - read-write - - - - - ARR - desc ARR - 0x2C - 32 - read-write - 0xFFFF - 0xFFFF - - - ARR - desc ARR - 15 - 0 - read-write - - - - - CCR1 - desc CCR1 - 0x34 - 32 - read-write - 0x0 - 0xFFFF - - - CCR1 - desc CCR1 - 15 - 0 - read-write - - - - - OR - desc OR - 0x50 - 32 - read-write - 0x0 - - - TI1_RMP - desc TI1_RMP - 1 - 0 - read-write - - - - - - - TIM15 - 0x40014000 - - 0x0 - 0x400 - registers - - - TIM15 - TIM15 global Interrupt - 20 - - - - CR1 - desc CR1 - 0x0 - 32 - read-write - 0x0 - 0x3FF - - - CEN - desc CEN - 0 - 0 - read-write - - - UDIS - desc UDIS - 1 - 1 - read-write - - - URS - desc URS - 2 - 2 - read-write - - - OPM - desc OPM - 3 - 3 - read-write - - - DIR - desc DIR - 4 - 4 - read-write - - - CMS - desc CMS - 6 - 5 - read-write - - - ARPE - desc ARPE - 7 - 7 - read-write - - - CKD - desc CKD - 9 - 8 - read-write - - - - - CR2 - desc CR2 - 0x4 - 32 - read-write - 0x0 - 0xF8 - - - CCDS - desc CCDS - 3 - 3 - read-write - - - MMS - desc MMS - 6 - 4 - read-write - - - TI1S - desc TI1S - 7 - 7 - read-write - - - - - SMCR - desc SMCR - 0x8 - 32 - read-write - 0x0 - 0xFFF7 - - - SMS - desc SMS - 2 - 0 - read-write - - - TS - desc TS - 6 - 4 - read-write - - - MSM - desc MSM - 7 - 7 - read-write - - - ETF - desc ETF - 11 - 8 - read-write - - - ETPS - desc ETPS - 13 - 12 - read-write - - - ECE - desc ECE - 14 - 14 - read-write - - - ETP - desc ETP - 15 - 15 - read-write - - - - - DIER - desc DIER - 0xC - 32 - read-write - 0x0 - 0x5F5F - - - UIE - desc UIE - 0 - 0 - read-write - - - CC1IE - desc CC1IE - 1 - 1 - read-write - - - CC2IE - desc CC2IE - 2 - 2 - read-write - - - CC3IE - desc CC3IE - 3 - 3 - read-write - - - CC4IE - desc CC4IE - 4 - 4 - read-write - - - TIE - desc TIE - 6 - 6 - read-write - - - UDE - desc UDE - 8 - 8 - read-write - - - CC1DE - desc CC1DE - 9 - 9 - read-write - - - CC2DE - desc CC2DE - 10 - 10 - read-write - - - CC3DE - desc CC3DE - 11 - 11 - read-write - - - CC4DE - desc CC4DE - 12 - 12 - read-write - - - TDE - desc TDE - 14 - 14 - read-write - - - - - SR - desc SR - 0x10 - 32 - read-write - 0x0 - 0x1E5F - - - UIF - desc UIF - 0 - 0 - read-write - - - CC1IF - desc CC1IF - 1 - 1 - read-write - - - CC2IF - desc CC2IF - 2 - 2 - read-write - - - CC3IF - desc CC3IF - 3 - 3 - read-write - - - CC4IF - desc CC4IF - 4 - 4 - read-write - - - COMIF - desc COMIF - 5 - 5 - read-write - - - TIF - desc TIF - 6 - 6 - read-write - - - BIF - desc BIF - 7 - 7 - read-write - - - CC1OF - desc CC1OF - 9 - 9 - read-write - - - CC2OF - desc CC2OF - 10 - 10 - read-write - - - CC3OF - desc CC3OF - 11 - 11 - read-write - - - CC4OF - desc CC4OF - 12 - 12 - read-write - - - IC1IR - desc IC1IR - 16 - 16 - read-write - - - IC2IR - desc IC2IR - 17 - 17 - read-write - - - IC3IR - desc IC3IR - 18 - 18 - read-write - - - IC4IR - desc IC3IR - 19 - 19 - read-write - - - IC1IF - desc IC1IF - 20 - 20 - read-write - - - IC2IF - desc IC2IF - 21 - 21 - read-write - - - IC3IF - desc IC3IF - 22 - 22 - read-write - - - IC4IF - desc IC3IF - 23 - 23 - read-write - - - - - EGR - desc EGR - 0x14 - 32 - write-only - 0x0 - 0x5F - - - UG - desc UG - 0 - 0 - write-only - - - CC1G - Capture/Compare 1 Generation - 1 - 1 - write-only - - - CC2G - desc CC2G - 2 - 2 - write-only - - - CC3G - desc CC3G - 3 - 3 - write-only - - - CC4G - desc CC4G - 4 - 4 - write-only - - - TG - desc TG - 6 - 6 - write-only - - - - - CCMR1_OUTPUT - desc CCMR1:OUTPUT - 0x18 - 32 - read-write - 0x0 - 0xFFFF - - - CC1S - desc CC1S - 1 - 0 - read-write - - - OC1FE - desc OC1FE - 2 - 2 - read-write - - - OC1PE - desc OC1PE - 3 - 3 - read-write - - - OC1M - desc OC1M - 6 - 4 - read-write - - - OC1CE - desc OC1CE - 7 - 7 - read-write - - - CC2S - desc CC2S - 9 - 8 - read-write - - - OC2FE - desc OC2FE - 10 - 10 - read-write - - - OC2PE - desc OC2PE - 11 - 11 - read-write - - - OC2M - desc OC2M - 14 - 12 - read-write - - - OC2CE - desc OC2CE - 15 - 15 - read-write - - - - - CCMR1_INPUT - desc CCMR1:INPUT - CCMR1_OUTPUT - 0x18 - 32 - read-write - 0x0 - 0xFFFF - - - CC1S - desc CC1S - 1 - 0 - read-write - - - IC1PSC - desc IC1PSC - 3 - 2 - read-write - - - IC1F - desc IC1F - 7 - 4 - read-write - - - CC2S - desc CC2S - 9 - 8 - read-write - - - IC2PSC - desc IC2PSC - 11 - 10 - read-write - - - IC2F - desc IC2F - 15 - 12 - read-write - - - - - CCER - desc CCER - 0x20 - 32 - read-write - 0x0 - 0x3333 - - - CC1E - desc CC1E - 0 - 0 - read-write - - - CC1P - desc CC1P - 1 - 1 - read-write - - - CC2E - desc CC2E - 4 - 4 - read-write - - - CC2P - desc CC2P - 5 - 5 - read-write - - - CC3E - desc CC3E - 8 - 8 - read-write - - - CC3P - desc CC3P - 9 - 9 - read-write - - - CC4E - desc CC4E - 12 - 12 - read-write - - - CC4P - desc CC4P - 13 - 13 - read-write - - - - - CNT - desc CNT - 0x24 - 32 - read-write - 0x0 - 0xFFFF - - - CNT - desc CNT - 15 - 0 - read-write - - - - - PSC - desc PSC - 0x28 - 32 - read-write - 0x0 - 0xFFFF - - - PSC - desc PSC - 15 - 0 - read-write - - - - - ARR - desc ARR - 0x2C - 32 - read-write - 0xFFFF - 0xFFFF - - - ARR - desc ARR - 15 - 0 - read-write - - - - - RCR - desc RCR - 0x30 - 32 - read-write - 0xFFFF - 0xFFFF - - - REP - desc REP - 7 - 0 - read-write - - - - - CCR1 - desc CCR1 - 0x34 - 32 - read-write - 0x0 - 0xFFFF - - - CCR1 - desc CCR1 - 15 - 0 - read-write - - - - - CCR2 - desc CCR2 - 0x38 - 32 - read-write - 0x0 - 0xFFFF - - - CCR2 - desc CCR2 - 15 - 0 - read-write - - - - - BDTR - desc BDTR - 0x44 - 32 - read-write - 0x0 - 0xFFFF - - - DTG - desc DTG - 7 - 0 - read-write - - - LOCK - desc LOCK - 9 - 8 - read-write - - - OSSI - desc OSSI - 10 - 10 - read-write - - - OSSR - desc OSSR - 11 - 11 - read-write - - - BKE - desc BKE - 12 - 12 - read-write - - - BKP - desc BKP - 13 - 13 - read-write - - - AOE - desc AOE - 14 - 14 - read-write - - - MOE - desc MOE - 15 - 15 - read-write - - - - - DCR - desc DCR - 0x48 - 32 - read-write - 0x0 - 0x1F1F - - - DBA - desc DBA - 4 - 0 - read-write - - - DBL - desc DBL - 12 - 8 - read-write - - - - - DMAR - desc DMAR - 0x4C - 32 - read-write - 0x0 - 0xFFFF - - - DMAB - desc DMAB - 15 - 0 - read-write - - - - - - - TIM16 - General purpose timer - TIM - 0x40014400 - - 0x00 - 0x400 - registers - - - TIM16 - TIM16 global Interrupt - 21 - - - - CR1 - desc CR1 - 0x0 - 32 - read-write - 0x0 - 0x3FF - - - CEN - desc CEN - 0 - 0 - read-write - - - UDIS - desc UDIS - 1 - 1 - read-write - - - URS - desc URS - 2 - 2 - read-write - - - OPM - desc OPM - 3 - 3 - read-write - - - DIR - desc DIR - 4 - 4 - read-write - - - CMS - desc CMS - 6 - 5 - read-write - - - ARPE - desc ARPE - 7 - 7 - read-write - - - CKD - desc CKD - 9 - 8 - read-write - - - - - CR2 - desc CR2 - 0x4 - 32 - read-write - 0x0 - 0xF8 - - - CCDS - desc CCDS - 3 - 3 - read-write - - - MMS - desc MMS - 6 - 4 - read-write - - - TI1S - desc TI1S - 7 - 7 - read-write - - - - - DIER - desc DIER - 0xC - 32 - read-write - 0x0 - 0x5F5F - - - UIE - desc UIE - 0 - 0 - read-write - - - CC1IE - desc CC1IE - 1 - 1 - read-write - - - CC2IE - desc CC2IE - 2 - 2 - read-write - - - CC3IE - desc CC3IE - 3 - 3 - read-write - - - CC4IE - desc CC4IE - 4 - 4 - read-write - - - TIE - desc TIE - 6 - 6 - read-write - - - UDE - desc UDE - 8 - 8 - read-write - - - CC1DE - desc CC1DE - 9 - 9 - read-write - - - CC2DE - desc CC2DE - 10 - 10 - read-write - - - CC3DE - desc CC3DE - 11 - 11 - read-write - - - CC4DE - desc CC4DE - 12 - 12 - read-write - - - TDE - desc TDE - 14 - 14 - read-write - - - - - SR - desc SR - 0x10 - 32 - read-write - 0x0 - 0x1E5F - - - UIF - desc UIF - 0 - 0 - read-write - - - CC1IF - desc CC1IF - 1 - 1 - read-write - - - CC2IF - desc CC2IF - 2 - 2 - read-write - - - CC3IF - desc CC3IF - 3 - 3 - read-write - - - CC4IF - desc CC4IF - 4 - 4 - read-write - - - COMIF - desc COMIF - 5 - 5 - read-write - - - TIF - desc TIF - 6 - 6 - read-write - - - BIF - desc BIF - 7 - 7 - read-write - - - CC1OF - desc CC1OF - 9 - 9 - read-write - - - CC2OF - desc CC2OF - 10 - 10 - read-write - - - CC3OF - desc CC3OF - 11 - 11 - read-write - - - CC4OF - desc CC4OF - 12 - 12 - read-write - - - IC1IR - desc IC1IR - 16 - 16 - read-write - - - IC2IR - desc IC2IR - 17 - 17 - read-write - - - IC3IR - desc IC3IR - 18 - 18 - read-write - - - IC4IR - desc IC3IR - 19 - 19 - read-write - - - IC1IF - desc IC1IF - 20 - 20 - read-write - - - IC2IF - desc IC2IF - 21 - 21 - read-write - - - IC3IF - desc IC3IF - 22 - 22 - read-write - - - IC4IF - desc IC3IF - 23 - 23 - read-write - - - - - EGR - desc EGR - 0x14 - 32 - write-only - 0x0 - 0x5F - - - UG - desc UG - 0 - 0 - write-only - - - CC1G - Capture/Compare 1 Generation - 1 - 1 - write-only - - - CC2G - desc CC2G - 2 - 2 - write-only - - - CC3G - desc CC3G - 3 - 3 - write-only - - - CC4G - desc CC4G - 4 - 4 - write-only - - - TG - desc TG - 6 - 6 - write-only - - - - - CCMR1_OUTPUT - desc CCMR1:OUTPUT - 0x18 - 32 - read-write - 0x0 - 0xFFFF - - - CC1S - desc CC1S - 1 - 0 - read-write - - - OC1FE - desc OC1FE - 2 - 2 - read-write - - - OC1PE - desc OC1PE - 3 - 3 - read-write - - - OC1M - desc OC1M - 6 - 4 - read-write - - - OC1CE - desc OC1CE - 7 - 7 - read-write - - - CC2S - desc CC2S - 9 - 8 - read-write - - - OC2FE - desc OC2FE - 10 - 10 - read-write - - - OC2PE - desc OC2PE - 11 - 11 - read-write - - - OC2M - desc OC2M - 14 - 12 - read-write - - - OC2CE - desc OC2CE - 15 - 15 - read-write - - - - - CCMR1_INPUT - desc CCMR1:INPUT - CCMR1_OUTPUT - 0x18 - 32 - read-write - 0x0 - 0xFFFF - - - CC1S - desc CC1S - 1 - 0 - read-write - - - IC1PSC - desc IC1PSC - 3 - 2 - read-write - - - IC1F - desc IC1F - 7 - 4 - read-write - - - CC2S - desc CC2S - 9 - 8 - read-write - - - IC2PSC - desc IC2PSC - 11 - 10 - read-write - - - IC2F - desc IC2F - 15 - 12 - read-write - - - - - CCER - desc CCER - 0x20 - 32 - read-write - 0x0 - 0x3333 - - - CC1E - desc CC1E - 0 - 0 - read-write - - - CC1P - desc CC1P - 1 - 1 - read-write - - - CC2E - desc CC2E - 4 - 4 - read-write - - - CC2P - desc CC2P - 5 - 5 - read-write - - - CC3E - desc CC3E - 8 - 8 - read-write - - - CC3P - desc CC3P - 9 - 9 - read-write - - - CC4E - desc CC4E - 12 - 12 - read-write - - - CC4P - desc CC4P - 13 - 13 - read-write - - - - - CNT - desc CNT - 0x24 - 32 - read-write - 0x0 - 0xFFFF - - - CNT - desc CNT - 15 - 0 - read-write - - - - - PSC - desc PSC - 0x28 - 32 - read-write - 0x0 - 0xFFFF - - - PSC - desc PSC - 15 - 0 - read-write - - - - - ARR - desc ARR - 0x2C - 32 - read-write - 0xFFFF - 0xFFFF - - - ARR - desc ARR - 15 - 0 - read-write - - - - - RCR - desc RCR - 0x30 - 32 - read-write - 0xFFFF - 0xFFFF - - - REP - desc REP - 7 - 0 - read-write - - - - - CCR1 - desc CCR1 - 0x34 - 32 - read-write - 0x0 - 0xFFFF - - - CCR1 - desc CCR1 - 15 - 0 - read-write - - - - - BDTR - desc BDTR - 0x44 - 32 - read-write - 0x0 - 0xFFFF - - - DTG - desc DTG - 7 - 0 - read-write - - - LOCK - desc LOCK - 9 - 8 - read-write - - - OSSI - desc OSSI - 10 - 10 - read-write - - - OSSR - desc OSSR - 11 - 11 - read-write - - - BKE - desc BKE - 12 - 12 - read-write - - - BKP - desc BKP - 13 - 13 - read-write - - - AOE - desc AOE - 14 - 14 - read-write - - - MOE - desc MOE - 15 - 15 - read-write - - - - - DCR - desc DCR - 0x48 - 32 - read-write - 0x0 - 0x1F1F - - - DBA - desc DBA - 4 - 0 - read-write - - - DBL - desc DBL - 12 - 8 - read-write - - - - - DMAR - desc DMAR - 0x4C - 32 - read-write - 0x0 - 0xFFFF - - - DMAB - desc DMAB - 15 - 0 - read-write - - - - - - - TIM17 - 0x40014800 - - TIM17 - TIM17 global Interrupt - 22 - - - - USART1 - - Universal synchronous asynchronous receiver - transmitter - - USART - 0x40013800 - - 0x0 - 0x400 - registers - - - USART1 - USART1 global Interrupt - 27 - - - - SR - desc SR - 0x0 - 32 - read-write - 0xC0 - - - PE - desc PE - 0 - 0 - read-only - - - FE - desc FE - 1 - 1 - read-only - - - NE - desc NE - 2 - 2 - read-only - - - ORE - desc ORE - 3 - 3 - read-only - - - IDLE - desc IDLE - 4 - 4 - read-only - - - RXNE - desc RXNE - 5 - 5 - read-write - - - TC - desc TC - 6 - 6 - read-write - - - TXE - desc TXE - 7 - 7 - read-only - - - LBD - desc LBD - 8 - 8 - read-write - - - CTS - desc CTS - 9 - 9 - read-write - - - ABRF - desc ABRF - 10 - 10 - read-only - - - ABRE - desc ABRE - 11 - 11 - read-only - - - ABRRQ - desc ABRRQ - 12 - 12 - write-only - - - - - DR - desc DR - 0x4 - 32 - read-write - 0x0 - - - DR - desc DR - 8 - 0 - read-write - - - - - BRR - desc BRR - 0x8 - 32 - read-write - 0x0 - - - DIV_FRACTION - desc DIV_Fraction - 3 - 0 - read-write - - - DIV_MANTISSA - desc DIV_Mantissa - 15 - 4 - read-write - - - - - CR1 - desc CR1 - 0xC - 32 - read-write - 0x0 - - - SBK - desc SBK - 0 - 0 - read-write - - - RWU - desc RWU - 1 - 1 - read-write - - - RE - desc RE - 2 - 2 - read-write - - - TE - desc TE - 3 - 3 - read-write - - - IDLEIE - desc IDLEIE - 4 - 4 - read-write - - - RXNEIE - desc RXNEIE - 5 - 5 - read-write - - - TCIE - desc TCIE - 6 - 6 - read-write - - - TXEIE - desc TXEIE - 7 - 7 - read-write - - - PEIE - desc PEIE - 8 - 8 - read-write - - - PS - desc PS - 9 - 9 - read-write - - - PCE - desc PCE - 10 - 10 - read-write - - - WAKE - desc WAKE - 11 - 11 - read-write - - - M - desc M - 12 - 12 - read-write - - - UE - desc UE - 13 - 13 - read-write - - - - - CR2 - desc CR2 - 0x10 - 32 - read-write - 0x0 - - - ADD - desc ADD - 3 - 0 - read-write - - - LBDL - desc LBDL - 5 - 5 - read-write - - - LBDIE - desc LBDIE - 6 - 6 - read-write - - - LBCL - desc LBCL - 8 - 8 - read-write - - - CPHA - desc CPHA - 9 - 9 - read-write - - - CPOL - desc CPOL - 10 - 10 - read-write - - - CLKEN - desc CLKEN - 11 - 11 - read-write - - - STOP - desc STOP - 13 - 12 - read-write - - - LINEN - desc LINEN - 14 - 14 - read-write - - - - - CR3 - desc CR3 - 0x14 - 32 - read-write - 0x0 - - - EIE - desc EIE - 0 - 0 - read-write - - - IREN - desc IREN - 1 - 1 - read-write - - - IRLP - desc IRLP - 2 - 2 - read-write - - - HDSEL - desc HDSEL - 3 - 3 - read-write - - - NACK - desc NACK - 4 - 4 - read-write - - - SCEN - desc SCEN - 5 - 5 - read-write - - - DMAR - desc DMAR - 6 - 6 - read-write - - - DMAT - desc DMAT - 7 - 7 - read-write - - - RTSE - desc RTSE - 8 - 8 - read-write - - - CTSE - desc CTSE - 9 - 9 - read-write - - - CTSIE - desc CTSIE - 10 - 10 - read-write - - - OVER8 - desc OVER8 - 11 - 11 - read-write - - - ABREN - desc ABREN - 12 - 12 - read-write - - - ABRMODE - desc ABRMODE - 14 - 13 - read-write - - - - - GTPR - desc GTPR - 0x18 - 32 - read-write - 0x0 - - - PSC - desc PSC - 7 - 0 - read-write - - - GT - desc GT - 15 - 8 - read-write - - - - - - - USART2 - 0x40004400 - - USART2 - USART2 global Interrupt - 28 - - - - USART3 - desc USART - USART - 0x40004800 - - 0x0 - 0x400 - registers - - - USART3_4 - USART3, 4 global Interrupts - 29 - - - - USART4 - desc USART - USART - 0x40004C00 - - 0x0 - 0x400 - registers - - - USART3_4 - USART3, 4 global Interrupts - 29 - - - - USB - USB - USB - 0x40005C00 - - 0x0 - 0x400 - registers - - - USB - USB global Interrupts - 31 - - - - CR - CR - CR - 0x0 - 0x20 - read-write - 0xFFFFFFFF - - - ADD - ADD - 0 - 7 - - - UPDATE - UPDATE - 7 - 1 - - - Enable_Suspend - Enable_Suspend - 8 - 1 - - - Suspend_Mode - Suspend_Mode - 9 - 1 - - - Resume - Resume - 10 - 1 - - - Reset - Reset - 11 - 1 - - - ISO_Update - ISO_Update - 15 - 1 - - - - - INTR - INTR - INTR - 0x4 - 0x20 - read-write - 0x00000000 - - - Suspend - Suspend - 0 - 1 - - - Resume - Resume - 1 - 1 - - - Reset - Reset - 2 - 1 - - - SOF - SOF - 3 - 1 - - - EP1OUT - EP1OUT - 9 - 1 - - - EP2OUT - EP2OUT - 10 - 1 - - - EP3OUT - EP3OUT - 11 - 1 - - - EP4OUT - EP4OUT - 12 - 1 - - - EP5OUT - EP5OUT - 13 - 1 - - - EP0 - EP0 - 16 - 1 - - - EP1IN - EP1IN - 17 - 1 - - - EP2IN - EP2IN - 18 - 1 - - - EP3IN - EP3IN - 19 - 1 - - - EP4IN - EP4IN - 20 - 1 - - - EP5IN - EP5IN - 21 - 1 - - - - - INTRE - INTRE - INTRE - 0x8 - 0x20 - read-write - 0x00000000 - - - EN_Suspend - EN_Suspend - 0 - 1 - - - EN_Resume - EN_Resume - 1 - 1 - - - EN_Reset - EN_Reset - 2 - 1 - - - EN_SOF - EN_SOF - 3 - 1 - - - EP1OUTE - EP1OUTE - 9 - 1 - - - EP2OUTE - EP2OUTE - 10 - 1 - - - EP3OUTE - EP3OUTE - 11 - 1 - - - EP4OUTE - EP4OUTE - 12 - 1 - - - EP5OUTE - EP5OUTE - 13 - 1 - - - EP0 - EP0 - 16 - 1 - - - EP1INE - EP1INE - 17 - 1 - - - EP2INE - EP2INE - 18 - 1 - - - EP3INE - EP3INE - 19 - 1 - - - EP4INE - EP4INE - 20 - 1 - - - EP5INE - EP5INE - 21 - 1 - - - - - FRAME - FRAME - FRAME - 0xC - 0x20 - write-only - 0x00000000 - - - FramNUM - FramNUM - 0 - 11 - - - INDEX - INDEX - 16 - 4 - - - - - EP0CSR - EP0CSR - EP0CSR - 0x10 - 0x20 - write-only - 0x00000000 - - - OutPktRdy - OutPktRdy - 0 - 1 - - - InPktRdy - InPktRdy - 1 - 1 - - - SentStall - SentStall - 2 - 1 - - - DataEnd - DataEnd - 3 - 1 - - - SetupEnd - SetupEnd - 4 - 1 - - - SendStall - OutPktRdy - 5 - 1 - - - ServicedOutPktRdy - ServicedOutPktRdy - 6 - 1 - - - ServicedSetupEnd - ServicedSetupEnd - 7 - 1 - - - COUNT0 - COUNT0 - 8 - 1 - - - - - INEPxCSR - INEPxCSR - INEPxCSR - 0x14 - 0x20 - write-only - 0x00000000 - - - FrcDataTog - FrcDataTog - 3 - 1 - - - DMAEnab - DMAEnab - 4 - 1 - - - Mode - Mode - 5 - 1 - - - ISO - ISO - 6 - 1 - - - AutoSet - AutoSet - 7 - 1 - - - InPktRdy - InPktRdy - 8 - 1 - - - FIFONotEmpty - FIFONotEmpty - 9 - 1 - - - UnderRun - UnderRun - 10 - 1 - - - FlushFIFO - FlushFIFO - 11 - 1 - - - SendStall - SendStall - 12 - 1 - - - SentStall - SentStall - 13 - 1 - - - ClrDataTog - ClrDataTog - 14 - 1 - - - INMAXP - INMAXP - 16 - 1 - - - - - OUTEPxCSR - OUTEPxCSR - OUTEPxCSR - 0x18 - 0x20 - write-only - 0x00000000 - - - DMAMode - DMAMode - 4 - 1 - - - DMAEnab - DMAEnab - 5 - 1 - - - ISO - ISO - 6 - 1 - - - AutoClear - AutoClear - 7 - 1 - - - OutPktRdy - OutPktRdy - 8 - 1 - - - FIFOFull - FIFOFull - 9 - 1 - - - OverRun - OverRun - 10 - 1 - - - DataError - DataError - 11 - 1 - - - FlushFIFO - FlushFIFO - 12 - 1 - - - SendStall - SendStall - 13 - 1 - - - SentStall - SentStall - 14 - 1 - - - ClrDataTog - ClrDataTog - 15 - 1 - - - INMAXP - INMAXP - 16 - 1 - - - - - OUTCOUNT - OUTCOUNT - OUTCOUNT - 0x1C - 0x20 - write-only - 0x00000000 - - - OUTCOUNT - OUTCOUNT - 0 - 10 - - - - - - - WWDG - Window watchdog - WWDG - 0x40002C00 - - 0x0 - 0x400 - registers - - - WWDG - Window WatchDog Interrupt - 0 - - - - CR - CR - Control register (WWDG_CR) - 0x0 - 0x20 - read-write - 0x0000007F - - - WDGA - Activation bit - 7 - 1 - - - T - 7-bit counter (MSB to LSB) - 0 - 7 - - - - - CFR - CFR - - Configuration register - (WWDG_CFR) - - 0x4 - 0x20 - read-write - 0x0000007F - - - EWI - Early Wakeup Interrupt - 9 - 1 - - - WDGTB - Timer Base - 7 - 2 - - - W - 7-bit window value - 0 - 7 - - - - - SR - SR - Status register (WWDG_SR) - 0x8 - 0x20 - read-write - 0x00000000 - - - EWIF - Early Wakeup Interrupt flag - 0 - 1 - - - - - - - + + + + Puya + Puya + PY32F0xx_DFP + + PY32F0 + 1.0.0 + Arm 32-bit Cortex-M0+ Microcontroller based device, CPU clock up to 48 MHz. + + + + CM0+ + r0p1 + little + false + false + 4 + false + + + + 8 + + 32 + + + 32 + + read-write + + 0x00000000 + + 0xFFFFFFFF + + + + ADC + Analog to Digital Converter + ADC + 0x40012400 + + 0x0 + 0x400 + registers + + + ADC_COMP + ADC and COMP Interrupt through EXTI Lines 17 and 18 + 12 + + + + SR + desc SR + 0x0 + 32 + read-write + 0x0 + + + AWD + desc AWD + 0 + 0 + read-write + + + EOC + desc EOC + 1 + 1 + read-write + + + JEOC + desc JEOC + 2 + 2 + read-write + + + JSTRT + desc JSTRT + 3 + 3 + read-write + + + STRT + desc STRT + 4 + 4 + read-write + + + OVER + desc OVER + 5 + 5 + read-write + + + + + CR1 + desc CR1 + 0x4 + 32 + read-write + 0x0 + + + AWDCH + desc AWDCH + 4 + 0 + read-write + + + EOCIE + desc EOCIE + 5 + 5 + read-write + + + AWDIE + desc AWDIE + 6 + 6 + read-write + + + JEOCIE + desc JEOCIE + 7 + 7 + read-write + + + SCAN + desc SCAN + 8 + 8 + read-write + + + AWDSGL + desc AWDSGL + 9 + 9 + read-write + + + JAUTO + desc JAUTO + 10 + 10 + read-write + + + DISCEN + desc DISCEN + 11 + 11 + read-write + + + JDISCEN + desc JDISCEN + 12 + 12 + read-write + + + DISCNUM + desc DISCNUM + 15 + 13 + read-write + + + JAWDEN + desc JAWDEN + 22 + 22 + read-write + + + AWDEN + desc AWDEN + 23 + 23 + read-write + + + RESSEL + desc RESSEL + 25 + 24 + read-write + + + ADSTP + desc ADSTP + 27 + 27 + read-write + + + MSBSEL + desc MSBSEL + 28 + 28 + read-write + + + OVETIE + desc OVETIE + 29 + 29 + read-write + + + + + CR2 + desc CR2 + 0x8 + 32 + read-write + 0x0 + + + ADON + desc ADON + 0 + 0 + read-write + + + CONT + desc CONT + 1 + 1 + read-write + + + CAL + desc CAL + 2 + 2 + read-write + + + RSTCAL + desc RSTCAL + 3 + 3 + read-write + + + DMA + desc DMA + 8 + 8 + read-write + + + ALIGN + desc ALIGN + 11 + 11 + read-write + + + JEXTSEL + desc JEXTSEL + 14 + 12 + read-write + + + JEXTTRIG + desc JEXTTRIG + 15 + 15 + read-write + + + EXTSEL + desc EXTSEL + 19 + 17 + read-write + + + EXTTRIG + desc EXTTRIG + 20 + 20 + read-write + + + JSWSTART + desc JSWSTART + 21 + 21 + read-write + + + SWSTART + desc SWSTART + 22 + 22 + read-write + + + TSVREFE + desc TSVREFE + 23 + 23 + read-write + + + VERFBUFFEREN + desc VERFBUFFEREN + 25 + 25 + read-write + + + VERFBUFFERSEL + desc VERFBUFFERSEL + 27 + 26 + read-write + + + + + SMPR1 + desc SMPR1 + 0xC + 32 + read-write + 0x0 + + + SMP20 + desc SMP20 + 2 + 0 + read-write + + + SMP21 + desc SMP21 + 5 + 3 + read-write + + + SMP22 + desc SMP22 + 8 + 6 + read-write + + + SMP23 + desc SMP23 + 11 + 9 + read-write + + + + + SMPR2 + desc SMPR2 + 0x10 + 32 + read-write + 0x0 + + + SMP10 + desc SMP10 + 2 + 0 + read-write + + + SMP11 + desc SMP11 + 5 + 3 + read-write + + + SMP12 + desc SMP12 + 8 + 6 + read-write + + + SMP13 + desc SMP13 + 11 + 9 + read-write + + + SMP14 + desc SMP14 + 14 + 12 + read-write + + + SMP15 + desc SMP15 + 17 + 15 + read-write + + + SMP16 + desc SMP16 + 20 + 18 + read-write + + + SMP17 + desc SMP17 + 23 + 21 + read-write + + + SMP18 + desc SMP18 + 26 + 24 + read-write + + + SMP19 + desc SMP19 + 29 + 27 + read-write + + + + + SMPR3 + desc SMPR2 + 0x14 + 32 + read-write + 0x0 + + + SMP0 + desc SMP0 + 2 + 0 + read-write + + + SMP1 + desc SMP1 + 5 + 3 + read-write + + + SMP2 + desc SMP2 + 8 + 6 + read-write + + + SMP3 + desc SMP3 + 11 + 9 + read-write + + + SMP4 + desc SMP4 + 14 + 12 + read-write + + + SMP5 + desc SMP5 + 17 + 15 + read-write + + + SMP6 + desc SMP6 + 20 + 18 + read-write + + + SMP7 + desc SMP7 + 23 + 21 + read-write + + + SMP8 + desc SMP8 + 26 + 24 + read-write + + + SMP9 + desc SMP9 + 29 + 27 + read-write + + + + + JOFR1 + desc JOFR1 + 0x18 + 32 + read-write + 0x0 + + + JOFFSET1 + desc JOFFSET1 + 11 + 0 + read-write + + + + + JOFR2 + desc JOFR2 + 0x1C + 32 + read-write + 0x0 + + + JOFFSET2 + desc JOFFSET2 + 11 + 0 + read-write + + + + + JOFR3 + desc JOFR3 + 0x20 + 32 + read-write + 0x0 + + + JOFFSET3 + desc JOFFSET3 + 11 + 0 + read-write + + + + + JOFR4 + desc JOFR4 + 0x24 + 32 + read-write + 0x0 + + + JOFFSET4 + desc JOFFSET4 + 11 + 0 + read-write + + + + + HTR + desc HTR + 0x28 + 32 + read-write + 0x0 + + + HT + desc HT + 11 + 0 + read-write + + + + + LTR + desc LTR + 0x2C + 32 + read-write + 0x0 + + + LT + desc LT + 11 + 0 + read-write + + + + + SQR1 + desc SQR1 + 0x30 + 32 + read-write + 0x0 + + + SQ13 + desc SQ13 + 4 + 0 + read-write + + + SQ14 + desc SQ14 + 9 + 5 + read-write + + + SQ15 + desc SQ15 + 14 + 10 + read-write + + + SQ16 + desc SQ16 + 19 + 15 + read-write + + + L + desc L + 23 + 20 + read-write + + + + + SQR2 + desc SQR2 + 0x34 + 32 + read-write + 0x0 + + + SQ7 + desc SQ7 + 4 + 0 + read-write + + + SQ8 + desc SQ8 + 9 + 5 + read-write + + + SQ9 + desc SQ9 + 14 + 10 + read-write + + + SQ10 + desc SQ10 + 19 + 15 + read-write + + + SQ11 + desc SQ11 + 24 + 20 + read-write + + + SQ12 + desc SQ12 + 29 + 25 + read-write + + + + + SQR3 + desc SQR3 + 0x38 + 32 + read-write + 0x0 + + + SQ1 + desc SQ1 + 4 + 0 + read-write + + + SQ2 + desc SQ2 + 9 + 5 + read-write + + + SQ3 + desc SQ3 + 14 + 10 + read-write + + + SQ4 + desc SQ4 + 19 + 15 + read-write + + + SQ5 + desc SQ5 + 24 + 20 + read-write + + + SQ6 + desc SQ6 + 29 + 25 + read-write + + + + + JSQR + desc JSQR + 0x3C + 32 + read-write + 0x0 + + + JSQ1 + desc JSQ1 + 4 + 0 + read-write + + + JSQ2 + desc JSQ2 + 9 + 5 + read-write + + + JSQ3 + desc JSQ3 + 14 + 10 + read-write + + + JSQ4 + desc JSQ4 + 19 + 15 + read-write + + + JL + desc JL + 21 + 20 + read-write + + + + + JDR1 + desc JDR1 + 0x40 + 32 + read-only + 0x0 + + + JDR1 + desc JDR1 + 15 + 0 + read-only + + + + + JDR2 + desc JDR2 + 0x44 + 32 + read-only + 0x0 + + + JDR2 + desc JDR2 + 15 + 0 + read-only + + + + + JDR3 + desc JDR3 + 0x48 + 32 + read-only + 0x0 + + + JDR3 + desc JDR3 + 15 + 0 + read-only + + + + + JDR4 + desc JDR4 + 0x4C + 32 + read-only + 0x0 + + + JDR4 + desc JDR4 + 15 + 0 + read-only + + + + + DR + desc DR + 0x50 + 32 + read-only + 0x0 + + + DATA + desc DATA + 15 + 0 + read-only + + + + + CCSR + desc CCSR + 0x54 + 32 + read-write + 0x0 + + + CALSEL + desc CALSEL + 11 + 11 + read-write + + + CALSMP + desc CALSMP + 13 + 12 + read-write + + + CALBYP + desc CALBYP + 14 + 14 + read-write + + + CALSET + desc CALSET + 15 + 15 + read-write + + + CALFAIL + desc CALFAIL + 30 + 30 + read-write + + + CALON + desc CALON + 31 + 31 + read-only + + + + + CALRR1 + desc CALRR1 + 0x58 + 32 + read-only + 0x0 + + + CALC10OUT + desc CALC10OUT + 7 + 0 + read-only + + + CALC11OUT + desc CALC11OUT + 15 + 8 + read-only + + + CALBOUT + desc CALBOUT + 23 + 16 + read-only + + + + + CALRR2 + desc CALRR2 + 0x5C + 32 + read-only + 0x0 + + + CALC6OUT + desc CALC6OUT + 7 + 0 + read-only + + + CALC7OUT + desc CALC7OUT + 15 + 8 + read-only + + + CALC8OUT + desc CALC8OUT + 23 + 16 + read-only + + + CALC9OUT + desc CALC9OUT + 31 + 24 + read-only + + + + + CALFIR1 + desc CALFIR1 + 0x60 + 32 + read-write + 0x0 + + + CALC10IO + desc CALC10IO + 7 + 0 + read-write + + + CALC11IO + desc CALC11IO + 15 + 8 + read-write + + + CALBIO + desc CALBIO + 23 + 16 + read-write + + + + + CALFIR2 + desc CALFIR2 + 0x64 + 32 + read-write + 0x0 + + + CALC6IO + desc CALC6IO + 7 + 0 + read-write + + + CALC7IO + desc CALC7IO + 15 + 8 + read-write + + + CALC8IO + desc CALC8IO + 23 + 16 + read-write + + + CALC9IO + desc CALC9IO + 31 + 24 + read-write + + + + + + + CAN + desc CAN + CAN + 0x40006400 + + 0x0 + 0x400 + registers + + + CAN + CAN global Interrupt + 30 + + + + TSNCR + desc TSNCR + 0x0 + 32 + read-write + 0x2010801 + + + VERSION + desc VERSION + 15 + 0 + read-only + + + CES + desc CES + 16 + 16 + read-write + + + ROP + desc ROP + 17 + 17 + read-write + + + TMSE + desc TMSE + 18 + 18 + read-write + + + TSEN + desc TSEN + 24 + 24 + read-write + + + TSPOS + desc TSPOS + 25 + 25 + read-write + + + + + ACBTR + desc ACBTR + 0x4 + 32 + read-write + 0x5050008 + + + AC_SEG_1 + desc AC_SEG_1 + 8 + 0 + read-write + + + AC_SEG_2 + desc AC_SEG_2 + 22 + 16 + read-write + + + AC_SJW + desc AC_SJW + 30 + 24 + read-write + + + + + FDBTR + desc FDBTR + 0x8 + 32 + read-write + 0x2020003 + + + FD_SEG_1 + desc FD_SEG_1 + 7 + 0 + read-write + + + FD_SEG_2 + desc FD_SEG_2 + 22 + 16 + read-write + + + FD_SJW + desc FD_SJW + 30 + 24 + read-write + + + + + XLBTR + desc XLBTR + 0xC + 32 + read-write + 0x2020003 + + + XL_SEG_1 + desc XL_SEG_1 + 7 + 0 + read-write + + + XL_SEG_2 + desc XL_SEG_2 + 22 + 16 + read-write + + + XL_SJW + desc XL_SJW + 30 + 24 + read-write + + + + + RLSSP + desc RLSSP + 0x10 + 32 + read-write + 0x77000000 + + + PRESC + desc PRESC + 4 + 0 + read-write + + + FD_SSPOFF + desc FD_SSPOFF + 15 + 8 + read-write + + + XL_SSPOFF + desc XL_SSPOFF + 23 + 16 + read-write + + + REALIM + desc REALIM + 26 + 24 + read-write + + + RETLIM + desc RETLIM + 30 + 28 + read-write + + + + + IFR + desc IFR + 0x14 + 32 + read-write + 0x0 + + + AIF + desc AIF + 0 + 0 + read-write + + + EIF + desc EIF + 1 + 1 + read-write + + + TSIF + desc TSIF + 2 + 2 + read-write + + + TPIF + desc TPIF + 3 + 3 + read-write + + + RAFIF + desc RAFIF + 4 + 4 + read-write + + + RFIF + desc RFIF + 5 + 5 + read-write + + + ROIF + desc ROIF + 6 + 6 + read-write + + + RIF + desc RIF + 7 + 7 + read-write + + + BEIF + desc BEIF + 8 + 8 + read-write + + + ALIF + desc ALIF + 9 + 9 + read-write + + + EPIF + desc EPIF + 10 + 10 + read-write + + + TTIF + desc TTIF + 11 + 11 + read-write + + + TEIF + desc TEIF + 12 + 12 + read-write + + + WTIF + desc WTIF + 13 + 13 + read-write + + + MDWIF + desc MDWIF + 14 + 14 + read-write + + + MDEIF + desc MDEIF + 15 + 15 + read-write + + + MAEIF + desc MAEIF + 16 + 16 + read-write + + + SEIF + desc SEIF + 17 + 17 + read-write + + + SWIF + desc SWIF + 18 + 18 + read-write + + + EPASS + desc EPASS + 30 + 30 + read-only + + + EWARN + desc EWARN + 31 + 31 + read-only + + + + + IER + desc IER + 0x18 + 32 + read-write + 0x468FE + + + EIE + desc EIE + 1 + 1 + read-write + + + TSIE + desc TSIE + 2 + 2 + read-write + + + TPIE + desc TPIE + 3 + 3 + read-write + + + RAFIE + desc RAFIE + 4 + 4 + read-write + + + RFIE + desc RFIE + 5 + 5 + read-write + + + ROIE + desc ROIE + 6 + 6 + read-write + + + RIE + desc RIE + 7 + 7 + read-write + + + BEIE + desc BEIE + 8 + 8 + read-write + + + ALIE + desc ALIE + 9 + 9 + read-write + + + EPIE + desc EPIE + 10 + 10 + read-write + + + TTIE + desc TTIE + 11 + 11 + read-write + + + WTIE + desc WTIE + 13 + 13 + read-write + + + MDWIE + desc MDWIE + 14 + 14 + read-write + + + SWIE + desc SWIE + 18 + 18 + read-write + + + + + TSR + desc TSR + 0x1C + 32 + read-only + 0x0 + + + HANDLE_L + desc HANDLE_L + 7 + 0 + read-only + + + TSTAT_L + desc TSTAT_L + 10 + 8 + read-only + + + HANDLE_H + desc HANDLE_H + 23 + 16 + read-only + + + TSTAT_H + desc TSTAT_H + 26 + 24 + read-only + + + + + TTSL + desc TTSL + 0x20 + 32 + read-only + 0x2000000 + + + TTS + desc TTS + 31 + 0 + read-only + + + + + TTSH + desc TTSH + 0x24 + 32 + read-only + 0x2000000 + + + TTS + desc TTS + 31 + 0 + read-only + + + + + MCR + desc MCR + 0x28 + 32 + read-write + 0x900080 + + + BUSOFF + desc BUSOFF + 0 + 0 + read-write + + + LBMI + desc LBMI + 5 + 5 + read-write + + + LBME + desc LBME + 6 + 6 + read-write + + + RESET + desc RESET + 7 + 7 + read-write + + + TSA + desc TSA + 8 + 8 + read-write + + + TSALL + desc TSALL + 9 + 9 + read-write + + + TSONE + desc TSONE + 10 + 10 + read-write + + + TPA + desc TPA + 11 + 11 + read-write + + + TPE + desc TPE + 12 + 12 + read-write + + + STBY + desc STBY + 13 + 13 + read-write + + + LOM + desc LOM + 14 + 14 + read-write + + + TBSEL + desc TBSEL + 15 + 15 + read-write + + + TSSTAT + desc TSSTAT + 17 + 16 + read-only + + + TSFF + desc TSFF + 18 + 18 + read-only + + + TTTBM + desc TTTBM + 20 + 20 + read-write + + + TSMODE + desc TSMODE + 21 + 21 + read-write + + + TSNEXT + desc TSNEXT + 22 + 22 + read-write + + + FD_ISO + desc FD_ISO + 23 + 23 + read-write + + + RSTAT + desc RSTAT + 25 + 24 + read-only + + + RBALL + desc RBALL + 27 + 27 + read-write + + + RREL + desc RREL + 28 + 28 + read-write + + + ROV + desc ROV + 29 + 29 + read-only + + + ROM + desc ROM + 30 + 30 + read-write + + + SACK + desc SACK + 31 + 31 + read-write + + + + + WECR + desc WECR + 0x2C + 32 + read-write + 0x1B + + + EWL + desc EWL + 3 + 0 + read-write + + + AFWL + desc AFWL + 7 + 4 + read-write + + + ALC + desc ALC + 12 + 8 + read-only + + + KOER + desc KOER + 15 + 13 + read-only + + + RECNT + desc RECNT + 23 + 16 + read-only + + + TECNT + desc TECNT + 31 + 24 + read-only + + + + + REFMSG + desc REFMSG + 0x30 + 32 + read-write + 0x0 + + + REF_ID + desc REF_ID + 28 + 0 + read-write + + + REF_IDE + desc REF_IDE + 31 + 31 + read-write + + + + + TTCR + desc TTCR + 0x34 + 32 + read-write + 0x0 + + + TTPTR + desc TTPTR + 5 + 0 + read-write + + + TTYPE + desc TTYPE + 10 + 8 + read-write + + + TEW + desc TEW + 15 + 12 + read-write + + + TBPTR + desc TBPTR + 21 + 16 + read-write + + + TBF + desc TBF + 22 + 22 + read-write + + + TBE + desc TBE + 23 + 23 + read-write + + + TTEN + desc TTEN + 24 + 24 + read-write + + + T_PRESC + desc T_PRESC + 26 + 25 + read-write + + + + + TTTR + desc TTTR + 0x38 + 32 + read-write + 0xFFFF0000 + + + TT_TRIG + desc TT_TRIG + 15 + 0 + read-write + + + TT_WTRIG + desc TT_WTRIG + 31 + 16 + read-write + + + + + SCMS + desc SCMS + 0x3C + 32 + read-write + 0x0 + + + XMREN + desc XMREN + 0 + 0 + read-write + + + FSTIM + desc FSTIM + 3 + 1 + read-write + + + ACFA + desc ACFA + 24 + 24 + read-write + + + TXS + desc TXS + 25 + 25 + read-only + + + TXB + desc TXB + 26 + 26 + read-only + + + HELOC + desc HELOC + 28 + 27 + read-only + + + MPEN + desc MPEN + 31 + 31 + read-write + + + + + MESR + desc MESR + 0x40 + 32 + read-write + 0x0 + + + MEBP1 + desc MEBP1 + 5 + 0 + read-write + + + ME1EE + desc ME1EE + 6 + 6 + read-write + + + MEAEE + desc MEAEE + 7 + 7 + read-write + + + MEBP2 + desc MEBP2 + 13 + 8 + read-write + + + ME2EE + desc ME2EE + 14 + 14 + read-write + + + MEEEC + desc MEEEC + 19 + 16 + read-write + + + MENEC + desc MENEC + 23 + 20 + read-write + + + MEL + desc MEL + 25 + 24 + read-write + + + MES + desc MES + 26 + 26 + read-write + + + + + ACFCR + desc ACFCR + 0x44 + 32 + read-write + 0x10000 + + + ACFADR + desc ACFADR + 3 + 0 + read-write + + + AE_0 + desc AE_0 + 16 + 16 + read-write + + + AE_1 + desc AE_1 + 17 + 17 + read-write + + + AE_2 + desc AE_2 + 18 + 18 + read-write + + + AE_3 + desc AE_3 + 19 + 19 + read-write + + + AE_4 + desc AE_4 + 20 + 20 + read-write + + + AE_5 + desc AE_5 + 21 + 21 + read-write + + + AE_6 + desc AE_6 + 22 + 22 + read-write + + + AE_7 + desc AE_7 + 23 + 23 + read-write + + + AE_8 + desc AE_8 + 24 + 24 + read-write + + + AE_9 + desc AE_9 + 25 + 25 + read-write + + + AE_10 + desc AE_10 + 26 + 26 + read-write + + + AE_11 + desc AE_11 + 27 + 27 + read-write + + + AE_12 + desc AE_12 + 28 + 28 + read-write + + + AE_13 + desc AE_13 + 29 + 29 + read-write + + + AE_14 + desc AE_14 + 30 + 30 + read-write + + + AE_15 + desc AE_15 + 31 + 31 + read-write + + + + + PWMCR + desc PWMCR + 0xB8 + 32 + read-write + 0x2080400 + + + PWMO + desc PWMO + 5 + 0 + read-write + + + PWMS + desc PWMS + 13 + 8 + read-write + + + PWML + desc PWML + 21 + 16 + read-write + + + + + + + COMP1 + Comparator 1 + COMP + 0x40010200 + + 0x0 + 0x10 + registers + + + ADC_COMP + ADC and COMP Interrupt through EXTI Lines 17 and 18 + 12 + + + + CSR + CSR + COMP control and status register + 0x0 + 0x20 + read-write + 0x00000000 + + + COMP_OUT + Comparator output status + 30 + 1 + + + VCSEL + VCSEL + 27 + 1 + + + VCDIV_EN + VCDIV_EN + 26 + 1 + + + VCDIV + VCDIV + 20 + 6 + + + PWRMODE + + Comparator power mode + selector + + 18 + 2 + + + HYST + + Comparator hysteresis enable + selector + + 16 + 1 + + + POLARITY + + Comparator polarity + selector + + 15 + 1 + + + WINMODE + + Comparator non-inverting input + selector for window mode + + 11 + 1 + + + INPSEL + + Comparator signal selector for + non-inverting input + + 6 + 4 + + + INMSEL + + Comparator signal selector for + inverting input INM + + 2 + 4 + + + EN + COMP enable bit + 0 + 1 + + + + + FR + FR + + Comparator Filter + register + + 0x4 + 0x20 + read-write + 0x00000000 + + + FLTCNT1 + Comparator filter and counter + 16 + 16 + + + FLTEN1 + Filter enable bit + 0 + 1 + + + + + + + COMP2 + Comparator2 + COMP + 0x40010210 + + 0x0 + 0x10 + registers + + + ADC_COMP + ADC and COMP Interrupt through EXTI Lines 17 and 18 + 12 + + + + CSR + CSR + COMP control and status register + 0x0 + 0x20 + read-write + 0x00000000 + + + COMP_OUT + Comparator output status + 30 + 1 + + + PWRMODE + + Comparator power mode + selector + + 18 + 2 + + + POLARITY + + Comparator polarity + selector + + 15 + 1 + + + WINMODE + + Comparator non-inverting input + selector for window mode + + 11 + 1 + + + INPSEL + + Comparator signal selector for + non-inverting input + + 6 + 4 + + + INMSEL + + Comparator signal selector for + inverting input INM + + 2 + 4 + + + HYST + + Comparator hysteresis enable + selector + + 1 + 1 + + + EN + COMP enable bit + 0 + 1 + + + + + FR + FR + + Comparator Filter + register + + 0x4 + 0x20 + read-write + 0x00000000 + + + FLTCNT2 + Comparator filter and counter + 16 + 16 + + + FLTEN2 + Filter enable bit + 0 + 1 + + + + + + + COMP3 + Comparator3 + COMP + 0x40010220 + + 0x0 + 0x10 + registers + + + ADC_COMP + ADC and COMP Interrupt through EXTI Lines 17 and 18 + 12 + + + + CSR + CSR + COMP control and status register + 0x0 + 0x20 + read-write + 0x00000000 + + + COMP_OUT + Comparator output status + 30 + 1 + + + PWRMODE + + Comparator power mode + selector + + 18 + 2 + + + POLARITY + + Comparator polarity + selector + + 15 + 1 + + + INPSEL + + Comparator signal selector for + non-inverting input + + 6 + 4 + + + INMSEL + + Comparator signal selector for + inverting input INM + + 2 + 4 + + + HYST + + Comparator hysteresis enable + selector + + 1 + 1 + + + EN + COMP enable bit + 0 + 1 + + + + + FR + FR + + Comparator Filter + register + + 0x4 + 0x20 + read-write + 0x00000000 + + + FLTCNT3 + Comparator filter and counter + 16 + 16 + + + FLTEN3 + Filter enable bit + 0 + 1 + + + + + + + CRC + CRC calculation unit + CRC + 0x40023000 + + 0x0 + 0x400 + registers + + + + DR + DR + Data register + 0x0 + 0x20 + read-write + 0xFFFFFFFF + + + DR + Data Register + 0 + 32 + + + + + IDR + IDR + Independent Data register + 0x4 + 0x20 + read-write + 0x00000000 + + + IDR + Independent Data register + 0 + 8 + + + + + CR + CR + Control register + 0x8 + 0x20 + write-only + 0x00000000 + + + RESET + Reset bit + 0 + 1 + + + + + + + CTC + desc CTC + CTC + 0x40006C00 + + 0x0 + 0x400 + registers + + + RCC_CTC + RCC and CTC global Interrupts + 4 + + + + CTL0 + desc CTL0 + 0x0 + 32 + read-write + 0x2000 + + + CKOKIE + desc CKOKIE + 0 + 0 + read-write + + + CKWARNIE + desc CKWARNIE + 1 + 1 + read-write + + + ERRIE + desc ERRIE + 2 + 2 + read-write + + + EREFIE + desc EREFIE + 3 + 3 + read-write + + + CNTEN + desc CNTEN + 5 + 5 + read-write + + + AUTOTRIM + desc AUTOTRIM + 6 + 6 + read-write + + + SWREFPUL + desc SWREFPUL + 7 + 7 + write-only + + + TRIMVALUE + desc TRIMVALUE + 13 + 8 + read-write + + + + + CTL1 + desc CTL1 + 0x4 + 32 + read-write + 0x2022BB7F + + + RLVALUE + desc RLVALUE + 15 + 0 + read-write + + + CKLIM + desc CKLIM + 23 + 16 + read-write + + + REFPSC + desc REFPSC + 26 + 24 + read-write + + + REFSEL + desc REFSEL + 29 + 28 + read-write + + + REFPOL + desc REFPOL + 31 + 31 + read-write + + + + + SR + desc SR + 0x8 + 32 + read-only + 0x0 + + + CKOKIF + desc CKOKIF + 0 + 0 + read-only + + + CKWARNIF + desc CKWARNIF + 1 + 1 + read-only + + + ERRIF + desc ERRIF + 2 + 2 + read-only + + + EREFIF + desc EREFIF + 3 + 3 + read-only + + + CKERR + desc CKERR + 8 + 8 + read-only + + + REFMISS + desc REFMISS + 9 + 9 + read-only + + + TRIMERR + desc TRIMERR + 10 + 10 + read-only + + + REFDIR + desc REFDIR + 15 + 15 + read-only + + + REFCAP + desc REFCAP + 31 + 16 + read-only + + + + + INTC + desc INTC + 0xC + 32 + write-only + 0x0 + + + CKOKIC + desc CKOKIC + 0 + 0 + write-only + + + CKWARNIC + desc CKWARNIC + 1 + 1 + write-only + + + ERRIC + desc ERRIC + 2 + 2 + write-only + + + EREFIC + desc EREFIC + 3 + 3 + write-only + + + + + + + DAC + desc DAC + DAC + 0x40007400 + + 0x0 + 0x400 + registers + + + TIM6_LPTIM1_DAC + TIM6, LPTIM1, DAC global Interrupts + 17 + + + + CR + desc CR + 0x0 + 32 + read-write + 0x0 + + + EN1 + desc EN1 + 0 + 0 + read-write + + + BOFF1 + desc BOFF1 + 1 + 1 + read-write + + + TEN1 + desc TEN1 + 2 + 2 + read-write + + + TSEL1 + desc TSEL1 + 5 + 3 + read-write + + + WAVE1 + desc WAVE1 + 7 + 6 + read-write + + + MAMP1 + desc MAMP1 + 11 + 8 + read-write + + + DMAEN1 + desc DMAEN1 + 12 + 12 + read-write + + + DMAUDRIE1 + desc DMAUDRIE1 + 13 + 13 + read-write + + + DAC1CEN + desc DAC1CEN + 14 + 14 + read-write + + + EN2 + desc EN2 + 16 + 16 + read-write + + + BOFF2 + desc BOFF2 + 17 + 17 + read-write + + + TEN2 + desc TEN2 + 18 + 18 + read-write + + + TSEL2 + desc TSEL2 + 21 + 19 + read-write + + + WAVE2 + desc WAVE2 + 23 + 22 + read-write + + + MAMP2 + desc MAMP2 + 27 + 24 + read-write + + + DMAEN2 + desc DMAEN2 + 28 + 28 + read-write + + + DMAUDRIE2 + desc DMAUDRIE2 + 29 + 29 + read-write + + + DAC2CEN + desc DAC2CEN + 30 + 30 + read-write + + + + + SWTRIGR + desc SWTRIGR + 0x4 + 32 + write-only + 0x0 + + + SWTRIG1 + desc SWTRIG1 + 0 + 0 + write-only + + + SWTRIG2 + desc SWTRIG2 + 1 + 1 + write-only + + + + + DHR12R1 + desc DHR12R1 + 0x8 + 32 + read-write + 0x0 + + + DACC1DHR + desc DACC1DHR + 11 + 0 + read-write + + + + + DHR12L1 + desc DHR12L1 + 0xC + 32 + read-write + 0x0 + + + DACC1DHR + desc DACC1DHR + 14 + 3 + read-write + + + + + DHR8R1 + desc DHR8R1 + 0x10 + 32 + read-write + 0x0 + + + DACC1DHR + desc DACC1DHR + 7 + 0 + read-write + + + + + DHR12R2 + desc DHR12R2 + 0x14 + 32 + read-write + 0x0 + + + DACC2DHR + desc DACC2DHR + 11 + 0 + read-write + + + + + DHR12L2 + desc DHR12L2 + 0x18 + 32 + read-write + 0x0 + + + DACC2DHR + desc DACC2DHR + 15 + 4 + read-write + + + + + DHR8R2 + desc DHR8R2 + 0x1C + 32 + read-write + 0x0 + + + DACC2DHR + desc DACC2DHR + 7 + 0 + read-write + + + + + DHR12RD + desc DHR12RD + 0x20 + 32 + read-write + 0x0 + + + DACC1DHR + desc DACC1DHR + 11 + 0 + read-write + + + DACC2DHR + desc DACC2DHR + 27 + 16 + read-write + + + + + DHR12LD + desc DHR12LD + 0x24 + 32 + read-write + 0x0 + + + DACC1DHR + desc DACC1DHR + 15 + 4 + read-write + + + DACC2DHR + desc DACC2DHR + 31 + 20 + read-write + + + + + DHR8RD + desc DHR8RD + 0x28 + 32 + read-write + 0x0 + + + DACC1DHR + desc DACC1DHR + 7 + 0 + read-write + + + DACC2DHR + desc DACC2DHR + 15 + 8 + read-write + + + + + DOR1 + desc DOR1 + 0x2C + 32 + read-only + 0x0 + + + DACC1DOR + desc DACC1DOR + 11 + 0 + read-only + + + + + DOR2 + desc DOR2 + 0x30 + 32 + read-only + 0x0 + + + DACC2DOR + desc DACC2DOR + 11 + 0 + read-only + + + + + SR + desc SR + 0x34 + 32 + read-only + 0x0 + + + DMAUDR1 + desc DMAUDR1 + 13 + 13 + read-only + + + DMAUDR2 + desc DMAUDR2 + 29 + 29 + read-only + + + + + + + DBGMCU + Debug support + DBGMCU + 0x40015800 + + 0x0 + 0x400 + registers + + + + IDCODE + IDCODE + MCU Device ID Code Register + 0x0 + 0x20 + read-only + 0x0 + + + DBG_ID + DBG_ID + 0 + 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 + + + + + APB_FZ1 + APB_FZ1 + APB Freeze Register1 + 0x8 + 0x20 + read-write + 0x0 + + + DBG_TIMER2_STOP + + Debug Timer 2 stopped when Core is + halted + + 0 + 1 + + + DBG_TIMER3_STOP + + Debug Timer 3 stopped when Core is + halted + + 1 + 1 + + + DBG_TIMER6_STOP + + Debug Timer 6 stopped when Core is + halted + + 4 + 1 + + + DBG_TIMER7_STOP + + Debug Timer 7 stopped when Core is + halted + + 5 + 1 + + + DBG_RTC_STOP + + Debug RTC stopped when Core is + halted + + 10 + 1 + + + DBG_WWDG_STOP + + Debug Window Wachdog stopped when Core + is halted + + 11 + 1 + + + DBG_IWDG_STOP + + Debug Independent Wachdog stopped when + Core is halted + + 12 + 1 + + + DBG_CAN_STOP + DBG_CAN_STOP + 19 + 1 + + + DBG_I2C1_SMBUS_TIMEOUT + DBG_I2C1_SMBUS_TIMEOUT + 21 + 1 + + + DBG_I2C2_SMBUS_TIMEOUT + DBG_I2C2_SMBUS_TIMEOUT + 22 + 1 + read-only + + + DBG_LPTIM_STOP + + Debug LPTIM stopped when Core is + halted + + 31 + 1 + + + + + APB_FZ2 + APB_FZ2 + APB Freeze Register2 + 0xC + 0x20 + read-write + 0x0 + + + DBG_TIMER1_STOP + + Debug Timer 1 stopped when Core is + halted + + 11 + 1 + + + DBG_TIMER14_STOP + + Debug Timer 14 stopped when Core is + halted + + 15 + 1 + + + DBG_TIMER15_STOP + + Debug Timer 15 stopped when Core is + halted + + 16 + 1 + + + DBG_TIMER16_STOP + + Debug Timer 16 stopped when Core is + halted + + 17 + 1 + + + DBG_TIMER17_STOP + + Debug Timer 17 stopped when Core is + halted + + 18 + 1 + + + + + + + DV + Divider + DV + 0x40023800 + + 0x0 + 0x400 + registers + + + + DEND + DEND + Dividend + 0x0 + 0x20 + read-write + 0x0 + + + DEND + Dividend + 0 + 32 + + + + + SOR + SOR + Divisor + 0x4 + 0x20 + read-write + 0x0 + + + SOR + Divisor + 0 + 32 + + + + + QUOT + QUOT + Quotient + 0x8 + 0x20 + read-only + 0x0 + + + QUOT + Quotient + 0 + 32 + + + + + REMA + REMA + Remainder + 0xC + 0x20 + read-only + 0x0 + + + REMA + Remainder + 0 + 32 + read-only + + + + + SIGN + SIGN + des SIGN + 0x10 + 0x20 + read-write + 0x0 + + + DIV_SIGN + des DIV_SIGN + 0 + 1 + + + + + STAT + STAT + des SIGN + 0x14 + 0x20 + read-write + 0x0 + + + DIV_END + des DIV_END + 0 + 1 + + + DIV_ZERO + des DIV_ZERO + 1 + 1 + + + + + + + DMA + Direct memory access + DMA + 0x40020000 + + 0x0 + 0x400 + registers + + + DMA1_Channel1 + DMA1 Channel 1 Interrupt + 9 + + + DMA1_Channel2_3 + DMA1 Channel 2 and Channel 3 Interrupt + 10 + + + DMA1_Channel4_5_6_7 + DMA1 Channel 4, 5, 6, 7 Interrupts + 11 + + + + ISR + desc ISR + 0x0 + 32 + read-only + 0x0 + + + GIF1 + desc GIF1 + 0 + 0 + read-only + + + TCIF1 + desc TCIF1 + 1 + 1 + read-only + + + HTIF1 + desc HTIF1 + 2 + 2 + read-only + + + TEIF1 + desc TEIF1 + 3 + 3 + read-only + + + GIF2 + desc GIF2 + 4 + 4 + read-only + + + TCIF2 + desc TCIF2 + 5 + 5 + read-only + + + HTIF2 + desc HTIF2 + 6 + 6 + read-only + + + TEIF2 + desc TEIF2 + 7 + 7 + read-only + + + GIF3 + desc GIF3 + 8 + 8 + read-only + + + TCIF3 + desc TCIF3 + 9 + 9 + read-only + + + HTIF3 + desc HTIF3 + 10 + 10 + read-only + + + TEIF3 + desc TEIF3 + 11 + 11 + read-only + + + GIF4 + desc GIF4 + 12 + 12 + read-only + + + TCIF4 + desc TCIF4 + 13 + 13 + read-only + + + HTIF4 + desc HTIF4 + 14 + 14 + read-only + + + TEIF4 + desc TEIF4 + 15 + 15 + read-only + + + GIF5 + desc GIF5 + 16 + 16 + read-only + + + TCIF5 + desc TCIF5 + 17 + 17 + read-only + + + HTIF5 + desc HTIF5 + 18 + 18 + read-only + + + TEIF5 + desc TEIF5 + 19 + 19 + read-only + + + GIF6 + desc GIF6 + 20 + 20 + read-only + + + TCIF6 + desc TCIF6 + 21 + 21 + read-only + + + HTIF6 + desc HTIF6 + 22 + 22 + read-only + + + TEIF6 + desc TEIF6 + 23 + 23 + read-only + + + GIF7 + desc GIF7 + 24 + 24 + read-only + + + TCIF7 + desc TCIF7 + 25 + 25 + read-only + + + HTIF7 + desc HTIF7 + 26 + 26 + read-only + + + TEIF7 + desc TEIF7 + 27 + 27 + read-only + + + + + IFCR + desc IFCR + 0x4 + 32 + write-only + 0x0 + + + CGIF1 + desc CGIF1 + 0 + 0 + write-only + + + CTCIF1 + desc CTCIF1 + 1 + 1 + write-only + + + CHTIF1 + desc CHTIF1 + 2 + 2 + write-only + + + CTEIF1 + desc CTEIF1 + 3 + 3 + write-only + + + CGIF2 + desc CGIF2 + 4 + 4 + write-only + + + CTCIF2 + desc CTCIF2 + 5 + 5 + write-only + + + CHTIF2 + desc CHTIF2 + 6 + 6 + write-only + + + CTEIF2 + desc CTEIF2 + 7 + 7 + write-only + + + CGIF3 + desc CGIF3 + 8 + 8 + write-only + + + CTCIF3 + desc CTCIF3 + 9 + 9 + write-only + + + CHTIF3 + desc CHTIF3 + 10 + 10 + write-only + + + CTEIF3 + desc CTEIF3 + 11 + 11 + write-only + + + CGIF4 + desc CGIF4 + 12 + 12 + write-only + + + CTCIF4 + desc CTCIF4 + 13 + 13 + write-only + + + CHTIF4 + desc CHTIF4 + 14 + 14 + write-only + + + CTEIF4 + desc CTEIF4 + 15 + 15 + write-only + + + CGIF5 + desc CGIF5 + 16 + 16 + write-only + + + CTCIF5 + desc CTCIF5 + 17 + 17 + write-only + + + CHTIF5 + desc CHTIF5 + 18 + 18 + write-only + + + CTEIF5 + desc CTEIF5 + 19 + 19 + write-only + + + CGIF6 + desc CGIF6 + 20 + 20 + write-only + + + CTCIF6 + desc CTCIF6 + 21 + 21 + write-only + + + CHTIF6 + desc CHTIF6 + 22 + 22 + write-only + + + CTEIF6 + desc CTEIF6 + 23 + 23 + write-only + + + CGIF7 + desc CGIF7 + 24 + 24 + write-only + + + CTCIF7 + desc CTCIF7 + 25 + 25 + write-only + + + CHTIF7 + desc CHTIF7 + 26 + 26 + write-only + + + CTEIF7 + desc CTEIF7 + 27 + 27 + write-only + + + + + CCR1 + desc CCR1 + 0x8 + 32 + read-write + 0x0 + + + EN + desc EN + 0 + 0 + read-write + + + TCIE + desc TCIE + 1 + 1 + read-write + + + HTIE + desc HTIE + 2 + 2 + read-write + + + TEIE + desc TEIE + 3 + 3 + read-write + + + DIR + desc DIR + 4 + 4 + read-write + + + CIRC + desc CIRC + 5 + 5 + read-write + + + PINC + desc PINC + 6 + 6 + read-write + + + MINC + desc MINC + 7 + 7 + read-write + + + PSIZE + desc PSIZE + 9 + 8 + read-write + + + MSIZE + desc MSIZE + 11 + 10 + read-write + + + PL + desc PL + 13 + 12 + read-write + + + MEM2MEM + desc MEM2MEM + 14 + 14 + read-write + + + + + CNDTR1 + desc CNDTR1 + 0xC + 32 + read-write + 0x0 + + + NDT + desc NDT + 15 + 0 + read-write + + + + + CPAR1 + desc CPAR1 + 0x10 + 32 + read-write + 0x0 + + + PA + desc PA + 31 + 0 + read-write + + + + + CMAR1 + desc CMAR1 + 0x14 + 32 + read-write + 0x0 + + + MA + desc MA + 31 + 0 + read-write + + + + + CCR2 + desc CCR2 + 0x1C + 32 + read-write + 0x0 + + + EN + desc EN + 0 + 0 + read-write + + + TCIE + desc TCIE + 1 + 1 + read-write + + + HTIE + desc HTIE + 2 + 2 + read-write + + + TEIE + desc TEIE + 3 + 3 + read-write + + + DIR + desc DIR + 4 + 4 + read-write + + + CIRC + desc CIRC + 5 + 5 + read-write + + + PINC + desc PINC + 6 + 6 + read-write + + + MINC + desc MINC + 7 + 7 + read-write + + + PSIZE + desc PSIZE + 9 + 8 + read-write + + + MSIZE + desc MSIZE + 11 + 10 + read-write + + + PL + desc PL + 13 + 12 + read-write + + + MEM2MEM + desc MEM2MEM + 14 + 14 + read-write + + + + + CNDTR2 + desc CNDTR2 + 0x20 + 32 + read-write + 0x0 + + + NDT + desc NDT + 15 + 0 + read-write + + + + + CPAR2 + desc CPAR2 + 0x24 + 32 + read-write + 0x0 + + + PA + desc PA + 31 + 0 + read-write + + + + + CMAR2 + desc CMAR2 + 0x28 + 32 + read-write + 0x0 + + + MA + desc MA + 31 + 0 + read-write + + + + + CCR3 + desc CCR3 + 0x30 + 32 + read-write + 0x0 + + + EN + desc EN + 0 + 0 + read-write + + + TCIE + desc TCIE + 1 + 1 + read-write + + + HTIE + desc HTIE + 2 + 2 + read-write + + + TEIE + desc TEIE + 3 + 3 + read-write + + + DIR + desc DIR + 4 + 4 + read-write + + + CIRC + desc CIRC + 5 + 5 + read-write + + + PINC + desc PINC + 6 + 6 + read-write + + + MINC + desc MINC + 7 + 7 + read-write + + + PSIZE + desc PSIZE + 9 + 8 + read-write + + + MSIZE + desc MSIZE + 11 + 10 + read-write + + + PL + desc PL + 13 + 12 + read-write + + + MEM2MEM + desc MEM2MEM + 14 + 14 + read-write + + + + + CNDTR3 + desc CNDTR3 + 0x34 + 32 + read-write + 0x0 + + + NDT + desc NDT + 15 + 0 + read-write + + + + + CPAR3 + desc CPAR3 + 0x38 + 32 + read-write + 0x0 + + + PA + desc PA + 31 + 0 + read-write + + + + + CMAR3 + desc CMAR3 + 0x3C + 32 + read-write + 0x0 + + + MA + desc MA + 31 + 0 + read-write + + + + + CCR4 + desc CCR4 + 0x44 + 32 + read-write + 0x0 + + + EN + desc EN + 0 + 0 + read-write + + + TCIE + desc TCIE + 1 + 1 + read-write + + + HTIE + desc HTIE + 2 + 2 + read-write + + + TEIE + desc TEIE + 3 + 3 + read-write + + + DIR + desc DIR + 4 + 4 + read-write + + + CIRC + desc CIRC + 5 + 5 + read-write + + + PINC + desc PINC + 6 + 6 + read-write + + + MINC + desc MINC + 7 + 7 + read-write + + + PSIZE + desc PSIZE + 9 + 8 + read-write + + + MSIZE + desc MSIZE + 11 + 10 + read-write + + + PL + desc PL + 13 + 12 + read-write + + + MEM2MEM + desc MEM2MEM + 14 + 14 + read-write + + + + + CNDTR4 + desc CNDTR4 + 0x48 + 32 + read-write + 0x0 + + + NDT + desc NDT + 15 + 0 + read-write + + + + + CPAR4 + desc CPAR4 + 0x4C + 32 + read-write + 0x0 + + + PA + desc PA + 31 + 0 + read-write + + + + + CMAR4 + desc CMAR4 + 0x50 + 32 + read-write + 0x0 + + + MA + desc MA + 31 + 0 + read-write + + + + + CCR5 + desc CCR5 + 0x58 + 32 + read-write + 0x0 + + + EN + desc EN + 0 + 0 + read-write + + + TCIE + desc TCIE + 1 + 1 + read-write + + + HTIE + desc HTIE + 2 + 2 + read-write + + + TEIE + desc TEIE + 3 + 3 + read-write + + + DIR + desc DIR + 4 + 4 + read-write + + + CIRC + desc CIRC + 5 + 5 + read-write + + + PINC + desc PINC + 6 + 6 + read-write + + + MINC + desc MINC + 7 + 7 + read-write + + + PSIZE + desc PSIZE + 9 + 8 + read-write + + + MSIZE + desc MSIZE + 11 + 10 + read-write + + + PL + desc PL + 13 + 12 + read-write + + + MEM2MEM + desc MEM2MEM + 14 + 14 + read-write + + + + + CNDTR5 + desc CNDTR5 + 0x5C + 32 + read-write + 0x0 + + + NDT + desc NDT + 15 + 0 + read-write + + + + + CPAR5 + desc CPAR5 + 0x60 + 32 + read-write + 0x0 + + + PA + desc PA + 31 + 0 + read-write + + + + + CMAR5 + desc CMAR5 + 0x64 + 32 + read-write + 0x0 + + + MA + desc MA + 31 + 0 + read-write + + + + + CCR6 + desc CCR6 + 0x6C + 32 + read-write + 0x0 + + + EN + desc EN + 0 + 0 + read-write + + + TCIE + desc TCIE + 1 + 1 + read-write + + + HTIE + desc HTIE + 2 + 2 + read-write + + + TEIE + desc TEIE + 3 + 3 + read-write + + + DIR + desc DIR + 4 + 4 + read-write + + + CIRC + desc CIRC + 5 + 5 + read-write + + + PINC + desc PINC + 6 + 6 + read-write + + + MINC + desc MINC + 7 + 7 + read-write + + + PSIZE + desc PSIZE + 9 + 8 + read-write + + + MSIZE + desc MSIZE + 11 + 10 + read-write + + + PL + desc PL + 13 + 12 + read-write + + + MEM2MEM + desc MEM2MEM + 14 + 14 + read-write + + + + + CNDTR6 + desc CNDTR6 + 0x70 + 32 + read-write + 0x0 + + + NDT + desc NDT + 15 + 0 + read-write + + + + + CPAR6 + desc CPAR6 + 0x74 + 32 + read-write + 0x0 + + + PA + desc PA + 31 + 0 + read-write + + + + + CMAR6 + desc CMAR6 + 0x78 + 32 + read-write + 0x0 + + + MA + desc MA + 31 + 0 + read-write + + + + + CCR7 + desc CCR7 + 0x80 + 32 + read-write + 0x0 + + + EN + desc EN + 0 + 0 + read-write + + + TCIE + desc TCIE + 1 + 1 + read-write + + + HTIE + desc HTIE + 2 + 2 + read-write + + + TEIE + desc TEIE + 3 + 3 + read-write + + + DIR + desc DIR + 4 + 4 + read-write + + + CIRC + desc CIRC + 5 + 5 + read-write + + + PINC + desc PINC + 6 + 6 + read-write + + + MINC + desc MINC + 7 + 7 + read-write + + + PSIZE + desc PSIZE + 9 + 8 + read-write + + + MSIZE + desc MSIZE + 11 + 10 + read-write + + + PL + desc PL + 13 + 12 + read-write + + + MEM2MEM + desc MEM2MEM + 14 + 14 + read-write + + + + + CNDTR7 + desc CNDTR7 + 0x84 + 32 + read-write + 0x0 + + + NDT + desc NDT + 15 + 0 + read-write + + + + + CPAR7 + desc CPAR7 + 0x88 + 32 + read-write + 0x0 + + + PA + desc PA + 31 + 0 + read-write + + + + + CMAR7 + desc CMAR7 + 0x8C + 32 + read-write + 0x0 + + + MA + desc MA + 31 + 0 + read-write + + + + + + + EXTI + + External interrupt/event + controller + + EXTI + 0x40021800 + + 0x0 + 0x400 + registers + + + PVD + PVD Interrupt through EXTI Lines 16 + 1 + + + EXTI0_1 + EXTI Line 0 and 1 Interrupt + 5 + + + EXTI2_3 + EXTI Line 2 and 3 Interrupt + 6 + + + EXTI4_15 + EXTI Line 4 to 15 Interrupt + 7 + + + + RTSR + RTSR + + EXTI rising trigger selection + register + + 0x0 + 0x20 + read-write + 0x00000000 + + + RT20 + + Rising trigger event configuration bit + of Configurable Event input + + 20 + 1 + + + RT19 + + Rising trigger event configuration bit + of Configurable Event input + + 19 + 1 + + + RT18 + + Rising trigger event configuration bit + of Configurable Event input + + 18 + 1 + + + RT17 + + Rising trigger event configuration bit + of Configurable Event input + + 17 + 1 + + + RT16 + + Rising trigger event configuration bit + of Configurable Event input + + 16 + 1 + + + RT15 + + Rising trigger event configuration bit + of Configurable Event input + + 15 + 1 + + + RT14 + + Rising trigger event configuration bit + of Configurable Event input + + 14 + 1 + + + RT13 + + Rising trigger event configuration bit + of Configurable Event input + + 13 + 1 + + + RT12 + + Rising trigger event configuration bit + of Configurable Event input + + 12 + 1 + + + RT11 + + Rising trigger event configuration bit + of Configurable Event input + + 11 + 1 + + + RT10 + + Rising trigger event configuration bit + of Configurable Event input + + 10 + 1 + + + RT9 + + Rising trigger event configuration bit + of Configurable Event input + + 9 + 1 + + + RT8 + + Rising trigger event configuration bit + of Configurable Event input + + 8 + 1 + + + RT7 + + Rising trigger event configuration bit + of Configurable Event input + + 7 + 1 + + + RT6 + + Rising trigger event configuration bit + of Configurable Event input + + 6 + 1 + + + RT5 + + Rising trigger event configuration bit + of Configurable Event input + + 5 + 1 + + + RT4 + + Rising trigger event configuration bit + of Configurable Event input + + 4 + 1 + + + RT3 + + Rising trigger event configuration bit + of Configurable Event input + + 3 + 1 + + + RT2 + + Rising trigger event configuration bit + of Configurable Event input + + 2 + 1 + + + RT1 + + Rising trigger event configuration bit + of Configurable Event input + + 1 + 1 + + + RT0 + + Rising trigger event configuration bit + of Configurable Event input + + 0 + 1 + + + + + FTSR + FTSR + + EXTI falling trigger selection + register + + 0x4 + 0x20 + read-write + 0x00000000 + + + FT20 + + Falling trigger event configuration bit + of Configurable Event input + + 20 + 1 + + + FT19 + + Falling trigger event configuration bit + of Configurable Event input + + 19 + 1 + + + FT18 + + Falling trigger event configuration bit + of Configurable Event input + + 18 + 1 + + + FT17 + + Falling trigger event configuration bit + of Configurable Event input + + 17 + 1 + + + FT16 + + Falling trigger event configuration bit + of Configurable Event input + + 16 + 1 + + + FT15 + + Falling trigger event configuration bit + of Configurable Event input + + 15 + 1 + + + FT14 + + Falling trigger event configuration bit + of Configurable Event input + + 14 + 1 + + + FT13 + + Falling trigger event configuration bit + of Configurable Event input + + 13 + 1 + + + FT12 + + Falling trigger event configuration bit + of Configurable Event input + + 12 + 1 + + + FT11 + + Falling trigger event configuration bit + of Configurable Event input + + 11 + 1 + + + FT10 + + Falling trigger event configuration bit + of Configurable Event input + + 10 + 1 + + + FT9 + + Falling trigger event configuration bit + of Configurable Event input + + 9 + 1 + + + FT8 + + Falling trigger event configuration bit + of Configurable Event input + + 8 + 1 + + + FT7 + + Falling trigger event configuration bit + of Configurable Event input + + 7 + 1 + + + FT6 + + Falling trigger event configuration bit + of Configurable Event input + + 6 + 1 + + + FT5 + + Falling trigger event configuration bit + of Configurable Event input + + 5 + 1 + + + FT4 + + Falling trigger event configuration bit + of Configurable Event input + + 4 + 1 + + + FT3 + + Falling trigger event configuration bit + of Configurable Event input + + 3 + 1 + + + FT2 + + Falling trigger event configuration bit + of Configurable Event input + + 2 + 1 + + + FT1 + + Falling trigger event configuration bit + of Configurable Event input + + 1 + 1 + + + FT0 + + Falling trigger event configuration bit + of Configurable Event input + + 0 + 1 + + + + + SWIER + SWIER + + EXTI software interrupt event + register + + 0x8 + 0x20 + read-write + 0x00000000 + + + SWI20 + + Rising trigger event configuration bit + of Configurable Event input + + 20 + 1 + + + SWI19 + + Rising trigger event configuration bit + of Configurable Event input + + 19 + 1 + + + SWI18 + + Rising trigger event configuration bit + of Configurable Event input + + 18 + 1 + + + SWI17 + + Rising trigger event configuration bit + of Configurable Event input + + 17 + 1 + + + SWI16 + + Rising trigger event configuration bit + of Configurable Event input + + 16 + 1 + + + SWI15 + + Rising trigger event configuration bit + of Configurable Event input + + 15 + 1 + + + SWI14 + + Rising trigger event configuration bit + of Configurable Event input + + 14 + 1 + + + SWI13 + + Rising trigger event configuration bit + of Configurable Event input + + 13 + 1 + + + SWI12 + + Rising trigger event configuration bit + of Configurable Event input + + 12 + 1 + + + SWI11 + + Rising trigger event configuration bit + of Configurable Event input + + 11 + 1 + + + SWI10 + + Rising trigger event configuration bit + of Configurable Event input + + 10 + 1 + + + SWI9 + + Rising trigger event configuration bit + of Configurable Event input + + 9 + 1 + + + SWI8 + + Rising trigger event configuration bit + of Configurable Event input + + 8 + 1 + + + SWI7 + + Rising trigger event configuration bit + of Configurable Event input + + 7 + 1 + + + SWI6 + + Rising trigger event configuration bit + of Configurable Event input + + 6 + 1 + + + SWI5 + + Rising trigger event configuration bit + of Configurable Event input + + 5 + 1 + + + SWI4 + + Rising trigger event configuration bit + of Configurable Event input + + 4 + 1 + + + SWI3 + + Rising trigger event configuration bit + of Configurable Event input + + 3 + 1 + + + SWI2 + + Rising trigger event configuration bit + of Configurable Event input + + 2 + 1 + + + SWI1 + + Rising trigger event configuration bit + of Configurable Event input + + 1 + 1 + + + SWI0 + + Rising trigger event configuration bit + of Configurable Event input + + 0 + 1 + + + + + PR + PR + + EXTI pending register + + 0xC + 0x20 + read-write + 0x00000000 + + + PR20 + + configurable event inputs x rising edge + Pending bit. + + 20 + 1 + + + PR19 + + configurable event inputs x rising edge + Pending bit. + + 19 + 1 + + + PR18 + + configurable event inputs x rising edge + Pending bit. + + 18 + 1 + + + PR17 + + configurable event inputs x rising edge + Pending bit. + + 17 + 1 + + + PR16 + + configurable event inputs x rising edge + Pending bit. + + 16 + 1 + + + PR15 + + configurable event inputs x rising edge + Pending bit. + + 15 + 1 + + + PR14 + + configurable event inputs x rising edge + Pending bit. + + 14 + 1 + + + PR13 + + configurable event inputs x rising edge + Pending bit + + 13 + 1 + + + PR12 + + configurable event inputs x rising edge + Pending bit. + + 12 + 1 + + + PR11 + + configurable event inputs x rising edge + Pending bit. + + 11 + 1 + + + PR10 + + configurable event inputs x rising edge + Pending bit. + + 10 + 1 + + + PR9 + + configurable event inputs x rising edge + Pending bit. + + 9 + 1 + + + PR8 + + configurable event inputs x rising edge + Pending bit. + + 8 + 1 + + + PR7 + + configurable event inputs x rising edge + Pending bit. + + 7 + 1 + + + PR6 + + configurable event inputs x rising edge + Pending bit. + + 6 + 1 + + + PR5 + + configurable event inputs x rising edge + Pending bit. + + 5 + 1 + + + PR4 + + configurable event inputs x rising edge + Pending bit. + + 4 + 1 + + + PR3 + + configurable event inputs x rising edge + Pending bit. + + 3 + 1 + + + PR2 + + configurable event inputs x rising edge + Pending bit. + + 2 + 1 + + + PR1 + + configurable event inputs x rising edge + Pending bit. + + 1 + 1 + + + PR0 + + configurable event inputs x rising edge + Pending bit. + + 0 + 1 + + + + + EXTICR1 + EXTICR1 + + EXTI external interrupt selection + register + + 0x60 + 0x20 + read-write + 0x00000000 + + + EXTI3 + GPIO port selection + 24 + 2 + + + EXTI2 + GPIO port selection + 16 + 2 + + + EXTI1 + GPIO port selection + 8 + 2 + + + EXTI0 + GPIO port selection + 0 + 2 + + + + + EXTICR2 + EXTICR2 + + EXTI external interrupt selection + register + + 0x64 + 0x20 + read-write + 0x00000000 + + + EXTI7 + GPIO port selection + 24 + 2 + + + EXTI6 + GPIO port selection + 16 + 2 + + + EXTI5 + GPIO port selection + 8 + 2 + + + EXTI4 + GPIO port selection + 0 + 2 + + + + + EXTICR3 + EXTICR3 + + EXTI external interrupt selection + register + + 0x68 + 0x20 + read-write + 0x00000000 + + + EXTI11 + GPIO port selection + 24 + 2 + + + EXTI10 + GPIO port selection + 16 + 2 + + + EXTI9 + GPIO port selection + 8 + 2 + + + EXTI8 + GPIO port selection + 0 + 2 + + + + + EXTICR4 + EXTICR4 + + EXTI external interrupt selection + register + + 0x6C + 0x20 + read-write + 0x00000000 + + + EXTI15 + GPIO port selection + 24 + 2 + + + EXTI14 + GPIO port selection + 16 + 2 + + + EXTI13 + GPIO port selection + 8 + 2 + + + EXTI12 + GPIO port selection + 0 + 2 + + + + + IMR + IMR + + EXTI CPU wakeup with interrupt mask + register + + 0x80 + 0x20 + read-write + 0xFFF80000 + + + IM29 + + CPU wakeup with interrupt mask on event + input + + 29 + 1 + + + IM20 + + CPU wakeup with interrupt mask on event + input + + 20 + 1 + + + IM19 + + CPU wakeup with interrupt mask on event + input + + 19 + 1 + + + IM18 + + CPU wakeup with interrupt mask on event + input + + 18 + 1 + + + IM17 + + CPU wakeup with interrupt mask on event + input + + 17 + 1 + + + IM16 + + CPU wakeup with interrupt mask on event + input + + 16 + 1 + + + IM15 + + CPU wakeup with interrupt mask on event + input + + 15 + 1 + + + IM14 + + CPU wakeup with interrupt mask on event + input + + 14 + 1 + + + IM13 + + CPU wakeup with interrupt mask on event + input + + 13 + 1 + + + IM12 + + CPU wakeup with interrupt mask on event + input + + 12 + 1 + + + IM11 + + CPU wakeup with interrupt mask on event + input + + 11 + 1 + + + IM10 + + CPU wakeup with interrupt mask on event + input + + 10 + 1 + + + IM9 + + CPU wakeup with interrupt mask on event + input + + 9 + 1 + + + IM8 + + CPU wakeup with interrupt mask on event + input + + 8 + 1 + + + IM7 + + CPU wakeup with interrupt mask on event + input + + 7 + 1 + + + IM6 + + CPU wakeup with interrupt mask on event + input + + 6 + 1 + + + IM5 + + CPU wakeup with interrupt mask on event + input + + 5 + 1 + + + IM4 + + CPU wakeup with interrupt mask on event + input + + 4 + 1 + + + IM3 + + CPU wakeup with interrupt mask on event + input + + 3 + 1 + + + IM2 + + CPU wakeup with interrupt mask on event + input + + 2 + 1 + + + IM1 + + CPU wakeup with interrupt mask on event + input + + 1 + 1 + + + IM0 + + CPU wakeup with interrupt mask on event + input + + 0 + 1 + + + + + EMR + EMR + + EXTI CPU wakeup with event mask + register + + 0x84 + 0x20 + read-write + 0x00000000 + + + EM29 + + CPU wakeup with event mask on event + input + + 29 + 1 + + + EM20 + + CPU wakeup with event mask on event + input + + 20 + 1 + + + EM19 + + CPU wakeup with event mask on event + input + + 19 + 1 + + + EM18 + + CPU wakeup with event mask on event + input + + 18 + 1 + + + EM17 + + CPU wakeup with event mask on event + input + + 17 + 1 + + + EM16 + + CPU wakeup with event mask on event + input + + 16 + 1 + + + EM15 + + CPU wakeup with event mask on event + input + + 15 + 1 + + + EM14 + + CPU wakeup with event mask on event + input + + 14 + 1 + + + EM13 + + CPU wakeup with event mask on event + input + + 13 + 1 + + + EM12 + + CPU wakeup with event mask on event + input + + 12 + 1 + + + EM11 + + CPU wakeup with event mask on event + input + + 11 + 1 + + + EM10 + + CPU wakeup with event mask on event + input + + 10 + 1 + + + EM9 + + CPU wakeup with event mask on event + input + + 9 + 1 + + + EM8 + + CPU wakeup with event mask on event + input + + 8 + 1 + + + EM7 + + CPU wakeup with event mask on event + input + + 7 + 1 + + + EM6 + + CPU wakeup with event mask on event + input + + 6 + 1 + + + EM5 + + CPU wakeup with event mask on event + input + + 5 + 1 + + + EM4 + + CPU wakeup with event mask on event + input + + 4 + 1 + + + EM3 + + CPU wakeup with event mask on event + input + + 3 + 1 + + + EM2 + + CPU wakeup with event mask on event + input + + 2 + 1 + + + EM1 + + CPU wakeup with event mask on event + input + + 1 + 1 + + + EM0 + + CPU wakeup with event mask on event + input + + 0 + 1 + + + + + + + FLASH + desc FLASH + FLASH + 0x40022000 + + 0x0 + 0x400 + registers + + + FLASH + FLASH global Interrupt + 3 + + + + ACR + desc ACR + 0x0 + 32 + read-write + 0x500 + + + LATENCY + desc LATENCY + 1 + 0 + read-write + + + PRFTEN + desc PRFTEN + 8 + 8 + read-write + + + ICEN + desc ICEN + 9 + 9 + read-write + + + DCEN + desc DCEN + 10 + 10 + read-write + + + + + KEYR + desc KEYR + 0x8 + 32 + write-only + 0x0 + + + KEY + desc KEY + 31 + 0 + write-only + + + + + OPTKEYR + desc OPTKEYR + 0xC + 32 + write-only + 0x0 + + + OPTKEY + desc OPTKEY + 31 + 0 + write-only + + + + + SR + desc SR + 0x10 + 32 + read-write + 0x0 + + + EOP + desc EOP + 0 + 0 + read-write + + + WRPERR + desc WRPERR + 4 + 4 + read-write + + + OPTVERR + desc OPTVERR + 15 + 15 + read-write + + + BSY + desc BSY + 16 + 16 + read-only + + + + + CR + desc CR + 0x14 + 32 + read-write + 0x0 + + + PG + desc PG + 0 + 0 + read-write + + + PER + desc PER + 1 + 1 + read-write + + + MER + desc MER + 2 + 2 + read-write + + + SER + desc SER + 11 + 11 + read-write + + + OPTSTRT + desc OPTSTRT + 17 + 17 + read-write + + + PGSTRT + desc PGSTRT + 19 + 19 + read-write + + + EOPIE + desc EOPIE + 24 + 24 + read-write + + + ERRIE + desc ERRIE + 25 + 25 + read-write + + + OBL_LAUNCH + desc OBL_LAUNCH + 27 + 27 + read-write + + + OPTLOCK + desc OPTLOCK + 30 + 30 + read-write + + + LOCK + desc LOCK + 31 + 31 + read-write + + + + + OPTR + desc OPTR + 0x20 + 32 + read-only + 0x0 + + + RDP + desc RDP + 7 + 0 + read-only + + + IWDG_SW + desc IWDG_SW + 11 + 11 + read-only + + + WWDG_SW + desc WWDG_SW + 12 + 12 + read-only + + + NRST_MODE + desc NRST_MODE + 13 + 13 + read-only + + + NBOOT1 + desc nBOOT1 + 14 + 14 + read-only + + + IWDG_STOP + desc IWDG_STOP + 15 + 15 + read-only + + + + + SDKR + desc SDKR + 0x24 + 32 + read-only + 0x0 + + + SDK_STRT + desc SDK_STRT + 4 + 0 + read-only + + + BOR_EN + desc BOR_EN + 5 + 5 + read-only + + + SDK_END + desc SDK_END + 12 + 8 + read-only + + + BOR_LEV + desc BOR_LEV + 15 + 13 + read-only + + + + + PCK_EN + desc PCK_EN + 0x28 + 32 + read-only + 0x0 + + + USB_CLK_EN + desc USB_CLK_EN + 0 + 0 + read-only + + + CAN_CLK_EN + desc CAN_CLK_EN + 1 + 1 + read-only + + + TIM2_CLK_EN + desc TIM2_CLK_EN + 2 + 2 + read-only + + + TIM3_CLK_EN + desc TIM3_CLK_EN + 3 + 3 + read-only + + + TIM7_CLK_EN + desc TIM7_CLK_EN + 4 + 4 + read-only + + + I2C2_CLK_EN + desc I2C2_CLK_EN + 5 + 5 + read-only + + + USART3_CLK_EN + desc USART3_CLK_EN + 6 + 6 + read-only + + + USART4_CLK_EN + desc USART4_CLK_EN + 7 + 7 + read-only + + + LCD_CLK_EN + desc LCD_CLK_EN + 8 + 8 + read-only + + + TIM14_CLK_EN + desc TIM14_CLK_EN + 9 + 9 + read-only + + + TIM15_CLK_EN + desc TIM15_CLK_EN + 10 + 10 + read-only + + + TIM17_CLK_EN + desc TIM17_CLK_EN + 11 + 11 + read-only + + + + + WRPR + desc WRPR + 0x2C + 32 + read-write + 0x0 + + + WRP + desc WRP + 15 + 0 + read-write + + + + + STCR + desc STCR + 0x90 + 32 + read-write + 0x00006400 + + + SLEEP_EN + desc SLEEP_EN + 0 + 0 + read-write + + + SLEEP_TIME + desc SLEEP_TIME + 15 + 8 + read-write + + + + + TS0 + desc TS0 + 0x100 + 32 + read-write + 0xB4 + + + TS0 + desc TS0 + 7 + 0 + read-write + + + + + TS1 + desc TS1 + 0x104 + 32 + read-write + 0x1B0 + + + TS1 + desc TS1 + 8 + 0 + read-write + + + + + TS2P + desc TS2P + 0x108 + 32 + read-write + 0xB4 + + + TS2P + desc TS2P + 7 + 0 + read-write + + + + + TPS3 + desc TPS3 + 0x10C + 32 + read-write + 0x6C0 + + + TPS3 + desc TPS3 + 10 + 0 + read-write + + + + + TS3 + desc TS3 + 0x110 + 32 + read-write + 0xB4 + + + TS3 + desc TS3 + 7 + 0 + read-write + + + + + PERTPE + desc PERTPE + 0x114 + 32 + read-write + 0xEA60 + + + PERTPE + desc PERTPE + 16 + 0 + read-write + + + + + SMERTPE + desc SMERTPE + 0x118 + 32 + read-write + 0xFD20 + + + SMERTPE + desc SMERTPE + 16 + 0 + read-write + + + + + PRGTPE + desc PRGTPE + 0x11C + 32 + read-write + 0x8CA0 + + + PRGTPE + desc PRGTPE + 15 + 0 + read-write + + + + + PRETPE + desc PRETPE + 0x120 + 32 + read-write + 0x12C0 + + + PRETPE + desc PRETPE + 13 + 0 + read-write + + + + + TRMLSR + desc TRMLSR + 0x290 + 32 + read-only + 0x0 + + + PMU_TRIM0_ERR + desc PMU_TRIM0_ERR + 0 + 0 + read-only + + + PMU_TRIM1_ERR + desc PMU_TRIM1_ERR + 1 + 1 + read-only + + + HSI_TRIM_ERR + desc HSI_TRIM_ERR + 2 + 2 + read-only + + + LSI_TRIM_ERR + desc LSI_TRIM_ERR + 3 + 3 + read-only + + + FLASH_TRIM0_ERR + desc FLASH_TRIM0_ERR + 4 + 4 + read-only + + + FLASH_TRIM1_ERR + desc FLASH_TRIM1_ERR + 5 + 5 + read-only + + + FLASH_TRIM2_ERR + desc FLASH_TRIM2_ERR + 6 + 6 + read-only + + + FLASH_TRIM3_ERR + desc FLASH_TRIM3_ERR + 7 + 7 + read-only + + + FLASH_TRIM4_ERR + desc FLASH_TRIM4_ERR + 8 + 8 + read-only + + + FLASH_TRIM5_ERR + desc FLASH_TRIM5_ERR + 9 + 9 + read-only + + + TS_TRIM_ERR + desc TS_TRIM_ERR + 10 + 10 + read-only + + + CHIP_CFG_ERR + desc CHIP_CFG_ERR + 11 + 11 + read-only + + + CHKRD0_PASS + desc CHKRD0_PASS + 16 + 16 + read-only + + + CHKRD1_PASS + desc CHKRD1_PASS + 17 + 17 + read-only + + + CHKRD2_PASS + desc CHKRD2_PASS + 18 + 18 + read-only + + + CHKRD3_PASS + desc CHKRD3_PASS + 19 + 19 + read-only + + + + + TRMDR0 + desc TRMDR0 + 0x294 + 32 + read-only + 0x0 + + + BIAS_CR + desc BIAS_CR + 3 + 0 + read-only + + + TRIM_MR + desc TRIM_MR + 8 + 4 + read-only + + + TRIM_VREF + desc TRIM_VREF + 13 + 9 + read-only + + + TRIM_POR + desc TRIM_POR + 19 + 16 + read-only + + + TRIM_BG + desc TRIM_BG + 27 + 20 + read-only + + + + + TRMDR1 + desc TRMDR1 + 0x298 + 32 + read-only + 0x0 + + + LSI_TRIM + desc LSI_TRIM + 8 + 0 + read-only + + + HSI_TRIM + desc HSI_TRIM + 28 + 16 + read-only + + + HSI_FS + desc HSI_FS + 31 + 29 + read-only + + + + + TRMDR2 + desc TRMDR2 + 0x29C + 32 + read-only + 0x0 + + + FLASH_OP + desc FLASH_OP + 31 + 0 + read-only + + + + + TRMDR3 + desc TRMDR3 + 0x2A0 + 32 + read-only + 0x0 + + + FLASH_OP + desc FLASH_OP + 31 + 0 + read-only + + + + + TRMDR4 + desc TRMDR4 + 0x2A4 + 32 + read-only + 0x0 + + + FLASH_ERASE_VPOS + desc FLASH_ERASE_VPOS + 4 + 0 + read-only + + + FLASH_ERASE_VNEG + desc FLASH_ERASE_VNEG + 9 + 5 + read-only + + + FLASH_PROG_VPOS + desc FLASH_PROG_VPOS + 20 + 16 + read-only + + + FLASH_PROG_VNEG + desc FLASH_PROG_VNEG + 25 + 21 + read-only + + + + + TRMDR5 + desc TRMDR5 + 0x2A8 + 32 + read-only + 0x0 + + + FLASH_SIZE + desc FLASH_SIZE + 2 + 0 + read-only + + + SRAM_SIZE + desc SRAM_SIZE + 6 + 4 + read-only + + + TS_TRIM + desc TS_TRIM + 11 + 8 + read-only + + + + + TRMDR6 + desc TRMDR6 + 0x2AC + 32 + read-only + 0x0 + + + OPA0_TRIM + desc OPA0_TRIM + 3 + 0 + read-only + + + OPA1_TRIM + desc OPA1_TRIM + 7 + 4 + read-only + + + OPA2_TRIM + desc OPA2_TRIM + 11 + 8 + read-only + + + OPA3_TRIM + desc OPA3_TRIM + 15 + 12 + read-only + + + OPA4_TRIM + desc OPA4_TRIM + 19 + 16 + read-only + + + LCD_TRIM + desc LCD_TRIM + 27 + 20 + read-only + + + + + TRMDR7 + desc TRMDR7 + 0x2B0 + 32 + read-only + 0x0 + + + TS_DATA_0_TRIM + desc TS_DATA_0_TRIM + 11 + 0 + read-only + + + TS_DATA_1_TRIM + desc TS_DATA_1_TRIM + 23 + 12 + read-only + + + + + TRMDR8 + desc TRMDR8 + 0x2B4 + 32 + read-only + 0x0 + + + DAC_0_TRIM + desc DAC_0_TRIM + 11 + 0 + read-only + + + DAC_1_TRIM + desc DAC_1_TRIM + 23 + 12 + read-only + + + VREF_BUF_TRIM + desc VREF_BUF_TRIM + 28 + 24 + read-only + + + + + + + GPIOA + General-purpose I/Os + GPIO + 0x50000000 + + 0x0 + 0x400 + registers + + + + MODER + MODER + GPIO port mode register + 0x0 + 0x20 + read-write + 0xEBFFFFFF + + + MODE15 + + Port x configuration bits (y=0-15) + + 30 + 2 + + + MODE14 + + Port x configuration bits (y=0-15) + + 28 + 2 + + + MODE13 + + Port x configuration bits (y=0-15) + + 26 + 2 + + + MODE12 + + Port x configuration bits (y=0-15) + + 24 + 2 + + + MODE11 + + Port x configuration bits (y=0-15) + + 22 + 2 + + + MODE10 + + Port x configuration bits (y=0-15) + + 20 + 2 + + + MODE9 + + Port x configuration bits (y=0-15) + + 18 + 2 + + + MODE8 + + Port x configuration bits (y=0-15) + + 16 + 2 + + + MODE7 + + Port x configuration bits (y=0-15) + + 14 + 2 + + + MODE6 + + Port x configuration bits (y=0-15) + + 12 + 2 + + + MODE5 + + Port x configuration bits (y=0-15) + + 10 + 2 + + + MODE4 + + Port x configuration bits (y=0-15) + + 8 + 2 + + + MODE3 + + Port x configuration bits (y=0-15) + + 6 + 2 + + + MODE2 + + Port x configuration bits (y=0-15) + + 4 + 2 + + + MODE1 + + Port x configuration bits (y=0-15) + + 2 + 2 + + + MODE0 + + 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 + + + OSPEED15 + + Port x configuration bits (y=0-15) + + 30 + 2 + + + OSPEED14 + + Port x configuration bits (y=0-15) + + 28 + 2 + + + OSPEED13 + + Port x configuration bits (y=0-15) + + 26 + 2 + + + OSPEED12 + + Port x configuration bits (y=0-15) + + 24 + 2 + + + OSPEED11 + + Port x configuration bits (y=0-15) + + 22 + 2 + + + OSPEED10 + + Port x configuration bits (y=0-15) + + 20 + 2 + + + OSPEED9 + + Port x configuration bits (y=0-15) + + 18 + 2 + + + OSPEED8 + + Port x configuration bits (y=0-15) + + 16 + 2 + + + OSPEED7 + + Port x configuration bits (y=0-15) + + 14 + 2 + + + OSPEED6 + + Port x configuration bits (y=0-15) + + 12 + 2 + + + OSPEED5 + + Port x configuration bits (y=0-15) + + 10 + 2 + + + OSPEED4 + + Port x configuration bits (y=0-15) + + 8 + 2 + + + OSPEED3 + + Port x configuration bits (y=0-15) + + 6 + 2 + + + OSPEED2 + + Port x configuration bits (y=0-15) + + 4 + 2 + + + OSPEED1 + + Port x configuration bits (y=0-15) + + 2 + 2 + + + OSPEED0 + + Port x configuration bits (y=0-15) + + 0 + 2 + + + + + PUPDR + PUPDR + + GPIO port pull-up/pull-down + register + + 0xC + 0x20 + read-write + 0x24000000 + + + PUPD15 + + Port x configuration bits (y=0-15) + + 30 + 2 + + + PUPD14 + + Port x configuration bits (y=0-15) + + 28 + 2 + + + PUPD13 + + Port x configuration bits (y=0-15) + + 26 + 2 + + + PUPD12 + + Port x configuration bits (y=0-15) + + 24 + 2 + + + PUPD11 + + Port x configuration bits (y=0-15) + + 22 + 2 + + + PUPD10 + + Port x configuration bits (y=0-15) + + 20 + 2 + + + PUPD9 + + Port x configuration bits (y=0-15) + + 18 + 2 + + + PUPD8 + + Port x configuration bits (y=0-15) + + 16 + 2 + + + PUPD7 + + Port x configuration bits (y=0-15) + + 14 + 2 + + + PUPD6 + + Port x configuration bits (y=0-15) + + 12 + 2 + + + PUPD5 + + Port x configuration bits (y=0-15) + + 10 + 2 + + + PUPD4 + + Port x configuration bits (y=0-15) + + 8 + 2 + + + PUPD3 + + Port x configuration bits (y=0-15) + + 6 + 2 + + + PUPD2 + + Port x configuration bits (y=0-15) + + 4 + 2 + + + PUPD1 + + Port x configuration bits (y=0-15) + + 2 + 2 + + + PUPD0 + + Port x configuration bits (y=0-15) + + 0 + 2 + + + + + IDR + IDR + GPIO port input data register + 0x10 + 0x20 + read-only + 0x00000000 + + + ID15 + + Port input data (y=0-15) + + 15 + 1 + + + ID14 + + Port input data (y=0-15) + + 14 + 1 + + + ID13 + + Port input data (y=0-15) + + 13 + 1 + + + ID12 + + Port input data (y=0-15) + + 12 + 1 + + + ID11 + + Port input data (y=0-15) + + 11 + 1 + + + ID10 + + Port input data (y=0-15) + + 10 + 1 + + + ID9 + + Port input data (y=0-15) + + 9 + 1 + + + ID8 + + Port input data (y=0-15) + + 8 + 1 + + + ID7 + + Port input data (y=0-15) + + 7 + 1 + + + ID6 + + Port input data (y=0-15) + + 6 + 1 + + + ID5 + + Port input data (y=0-15) + + 5 + 1 + + + ID4 + + Port input data (y=0-15) + + 4 + 1 + + + ID3 + + Port input data (y=0-15) + + 3 + 1 + + + ID2 + + Port input data (y=0-15) + + 2 + 1 + + + ID1 + + Port input data (y=0-15) + + 1 + 1 + + + ID0 + + Port input data (y=0-15) + + 0 + 1 + + + + + ODR + ODR + GPIO port output data register + 0x14 + 0x20 + read-write + 0x00000000 + + + OD15 + + Port output data (y=0-15) + + 15 + 1 + + + OD14 + + Port output data (y=0-15) + + 14 + 1 + + + OD13 + + Port output data (y=0-15) + + 13 + 1 + + + OD12 + + Port output data (y=0-15) + + 12 + 1 + + + OD11 + + Port output data (y=0-15) + + 11 + 1 + + + OD10 + + Port output data (y=0-15) + + 10 + 1 + + + OD9 + + Port output data (y=0-15) + + 9 + 1 + + + OD8 + + Port output data (y=0-15) + + 8 + 1 + + + OD7 + + Port output data (y=0-15) + + 7 + 1 + + + OD6 + + Port output data (y=0-15) + + 6 + 1 + + + OD5 + + Port output data (y=0-15) + + 5 + 1 + + + OD4 + + Port output data (y=0-15) + + 4 + 1 + + + OD3 + + Port output data (y=0-15) + + 3 + 1 + + + OD2 + + Port output data (y=0-15) + + 2 + 1 + + + OD1 + + Port output data (y=0-15) + + 1 + 1 + + + OD0 + + 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 (LCKK) + + 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 + + + BR15 + Port Reset bit + 15 + 1 + + + BR14 + Port Reset bit + 14 + 1 + + + BR13 + Port Reset bit + 13 + 1 + + + BR12 + Port Reset bit + 12 + 1 + + + BR11 + Port Reset bit + 11 + 1 + + + BR10 + Port Reset bit + 10 + 1 + + + BR9 + Port Reset bit + 9 + 1 + + + BR8 + Port Reset bit + 8 + 1 + + + BR7 + Port Reset bit + 7 + 1 + + + BR6 + Port Reset bit + 6 + 1 + + + BR5 + Port Reset bit + 5 + 1 + + + BR4 + Port Reset bit + 4 + 1 + + + BR3 + Port Reset bit + 3 + 1 + + + BR2 + Port Reset bit + 2 + 1 + + + BR1 + Port Reset bit + 1 + 1 + + + BR0 + Port Reset bit + 0 + 1 + + + + + + + GPIOB + General-purpose I/Os + GPIO + 0x50000400 + + 0x0 + 0x400 + registers + + + + GPIOC + General-purpose I/Os + GPIO + 0x50000800 + + 0x0 + 0x400 + registers + + + + GPIOF + General-purpose I/Os + GPIO + 0x50001400 + + 0x0 + 0x400 + registers + + + + I2C1 + Inter integrated circuit + I2C + 0x40005400 + + 0x0 + 0x400 + registers + + + I2C1 + I2C1 global Interrupt + 23 + + + + CR1 + desc CR1 + 0x0 + 32 + read-write + 0x0 + + + PE + desc PE + 0 + 0 + read-write + + + SMBUS + desc SMBUS + 1 + 1 + read-write + + + SMBTYPE + desc SMBTYPE + 3 + 3 + read-write + + + ENARP + desc ENARP + 4 + 4 + read-write + + + ENPEC + desc ENPEC + 5 + 5 + read-write + + + ENGC + desc ENGC + 6 + 6 + read-write + + + NOSTRETCH + desc NOSTRETCH + 7 + 7 + read-write + + + START + desc START + 8 + 8 + read-write + + + STOP + desc STOP + 9 + 9 + read-write + + + ACK + desc ACK + 10 + 10 + read-write + + + POS + desc POS + 11 + 11 + read-write + + + PEC + desc PEC + 12 + 12 + read-write + + + ALERT + desc ALERT + 13 + 13 + read-write + + + SWRST + desc SWRST + 15 + 15 + read-write + + + + + CR2 + desc CR2 + 0x4 + 32 + read-write + 0x0 + + + FREQ + desc FREQ + 5 + 0 + read-write + + + ITERREN + desc ITERREN + 8 + 8 + read-write + + + ITEVTEN + desc ITEVTEN + 9 + 9 + read-write + + + ITBUFEN + desc ITBUFEN + 10 + 10 + read-write + + + DMAEN + desc DMAEN + 11 + 11 + read-write + + + LAST + desc LAST + 12 + 12 + read-write + + + + + OAR1 + desc OAR1 + 0x8 + 32 + read-write + 0x0 + + + ADD0 + desc ADD0 + 0 + 0 + read-write + + + ADD1_7 + desc ADD1_7 + 7 + 1 + read-write + + + ADD8_9 + desc ADD8_9 + 9 + 8 + read-write + + + ADDMODE + desc ADDMODE + 15 + 15 + read-write + + + + + OAR2 + desc OAR2 + 0xC + 32 + read-write + 0x0 + + + ENDUAL + desc ENDUAL + 0 + 0 + read-write + + + ADD2 + desc ADD2 + 7 + 1 + read-write + + + + + DR + desc DR + 0x10 + 32 + read-write + 0x0 + + + DR + desc DR + 7 + 0 + read-write + + + + + SR1 + desc SR1 + 0x14 + 32 + read-write + 0x0 + + + SB + desc SB + 0 + 0 + read-only + + + ADDR + desc ADDR + 1 + 1 + read-only + + + BTF + desc BTF + 2 + 2 + read-only + + + ADD10 + desc ADD10 + 3 + 3 + read-only + + + STOPF + desc STOPF + 4 + 4 + read-only + + + RXNE + desc RXNE + 6 + 6 + read-only + + + TXE + desc TXE + 7 + 7 + read-only + + + BERR + desc BERR + 8 + 8 + read-write + + + ARLO + desc ARLO + 9 + 9 + read-write + + + AF + desc AF + 10 + 10 + read-write + + + OVR + desc OVR + 11 + 11 + read-write + + + PECERR + desc PECERR + 12 + 12 + read-write + + + TIMEOUT + desc TIMEOUT + 14 + 14 + read-write + + + SMBALERT + desc SMBALERT + 15 + 15 + read-write + + + + + SR2 + desc SR2 + 0x18 + 32 + read-only + 0x0 + + + MSL + desc MSL + 0 + 0 + read-only + + + BUSY + desc BUSY + 1 + 1 + read-only + + + TRA + desc TRA + 2 + 2 + read-only + + + GENCALL + desc GENCALL + 4 + 4 + read-only + + + SMBDEFAULT + desc SMBDEFAULT + 5 + 5 + read-only + + + SMBHOST + desc SMBHOST + 6 + 6 + read-only + + + DUALF + desc DUALF + 7 + 7 + read-only + + + PEC + desc PEC + 15 + 8 + read-only + + + + + CCR + desc CCR + 0x1C + 32 + read-write + 0x0 + + + CCR + desc CCR + 11 + 0 + read-write + + + DUTY + desc DUTY + 14 + 14 + read-write + + + FS + desc FS + 15 + 15 + read-write + + + + + TRISE + desc TRISE + 0x20 + 32 + read-write + 0x2 + + + + TRISE + desc TRISE + 5 + 0 + read-write + + + + + + + I2C2 + desc I2C + I2C + 0x40005800 + + 0x0 + 0x400 + registers + + + I2C2 + I2C2 Event Interrupt + 24 + + + + IWDG + Independent watchdog + IWDG + 0x40003000 + + 0x0 + 0x400 + registers + + + + KR + KR + Key register (IWDG_KR) + 0x0 + 0x20 + write-only + 0x00000000 + + + KEY + Key value + 0 + 16 + + + + + PR + PR + Prescaler register (IWDG_PR) + 0x4 + 0x20 + read-write + 0x00000000 + + + PR + Prescaler divider + 0 + 3 + + + + + RLR + RLR + Reload register (IWDG_RLR) + 0x8 + 0x20 + read-write + 0x00000FFF + + + RL + + Watchdog counter reload + value + + 0 + 12 + + + + + SR + SR + Status register (IWDG_SR) + 0xC + 0x20 + read-only + 0x00000000 + + + RVU + + Watchdog counter reload value + update + + 1 + 1 + + + PVU + + Watchdog prescaler value + update + + 0 + 1 + + + + + + + LCD + LCD CONTROLLER + LCD + 0x40002400 + + 0x0 + 0x400 + registers + + + LCD + LCD global Interrupt + 8 + + + + CR0 + CR0 + Control register + 0x0 + 0x20 + read-write + 0x0000 + + + EN + EN + 0 + 1 + + + LCDCLK + LCDCLK + 1 + 2 + + + BIAS + BIAS + 6 + 1 + + + DUTY + DUTY + 7 + 3 + + + BSEL + BSEL + 10 + 3 + + + CONTRAST + CONTRAST + 13 + 4 + + + + + CR1 + CR1 + CR1 + 0x4 + 0x20 + read-write + 0x0000 + + + BLINKCNT + BLINKCNT + 0 + 6 + + + BLINKEN + BLINKEN + 6 + 1 + + + MODE + MODE + 8 + 1 + + + IE + IE + 10 + 1 + + + INTF + INTF + 11 + 1 + + + + + INTCLR + INTCLR + INTCLR + 0x8 + 0x20 + read-write + 0x0000 + + + INTF_CLR + INTF_CLR + 10 + 1 + + + + + POEN0 + POEN0 + POEN0 + 0x0C + 0x20 + read-write + 0x0000 + + + S0 + S0 + 0 + 1 + + + S1 + S1 + 1 + 1 + + + S2 + S2 + 2 + 1 + + + S3 + S3 + 3 + 1 + + + S4 + S4 + 4 + 1 + + + S5 + S5 + 5 + 1 + + + S6 + S6 + 6 + 1 + + + S7 + S7 + 7 + 1 + + + S8 + S8 + 8 + 1 + + + S9 + S9 + 9 + 1 + + + S10 + S10 + 10 + 1 + + + S11 + S11 + 11 + 1 + + + S12 + S12 + 12 + 1 + + + S13 + S13 + 13 + 1 + + + S14 + S14 + 14 + 1 + + + S15 + S15 + 15 + 1 + + + S16 + S16 + 16 + 1 + + + S17 + S17 + 17 + 1 + + + S18 + S18 + 18 + 1 + + + S19 + S19 + 19 + 1 + + + S20 + S20 + 20 + 1 + + + S21 + S21 + 21 + 1 + + + S22 + S22 + 22 + 1 + + + S23 + S23 + 23 + 1 + + + S24 + S24 + 24 + 1 + + + S25 + S25 + 25 + 1 + + + S26 + S26 + 26 + 1 + + + S27 + S27 + 27 + 1 + + + S28 + S28 + 28 + 1 + + + S29 + S29 + 29 + 1 + + + S30 + S30 + 30 + 1 + + + S31 + S31 + 31 + 1 + + + + + POEN1 + POEN1 + POEN1 + 0x10 + 0x20 + read-write + 0x0000 + + + S32 + S32 + 0 + 1 + + + S33 + S33 + 1 + 1 + + + S34 + S34 + 2 + 1 + + + S35 + S35 + 3 + 1 + + + S36 + S36 + 4 + 1 + + + S37 + S37 + 5 + 1 + + + S38 + S38 + 6 + 1 + + + S39 + S39 + 7 + 1 + + + C0 + C0 + 8 + 1 + + + C1 + C1 + 9 + 1 + + + C2 + C2 + 10 + 1 + + + C3 + C3 + 11 + 1 + + + MUX + MUX + 12 + 1 + + + + + RAM0 + RAM0 + des RAM0 + 0x14 + 0x20 + read-write + 0x0000 + + + D + des D + 0 + 32 + + + + + RAM1 + RAM1 + des RAM1 + 0x18 + 0x20 + read-write + 0x0000 + + + D + des D + 0 + 32 + + + + + RAM2 + RAM2 + des RAM2 + 0x1C + 0x20 + read-write + 0x0000 + + + D + des D + 0 + 32 + + + + + RAM3 + RAM3 + des RAM3 + 0x20 + 0x20 + read-write + 0x0000 + + + D + des D + 0 + 32 + + + + + RAM4 + RAM4 + des RAM4 + 0x24 + 0x20 + read-write + 0x0000 + + + D + des D + 0 + 32 + + + + + RAM5 + RAM5 + des RAM5 + 0x28 + 0x20 + read-write + 0x0000 + + + D + des D + 0 + 32 + + + + + RAM6 + RAM6 + des RAM6 + 0x2C + 0x20 + read-write + 0x0000 + + + D + des D + 0 + 32 + + + + + RAM7 + RAM7 + des RAM7 + 0x30 + 0x20 + read-write + 0x0000 + + + D + des D + 0 + 32 + + + + + RAM8 + RAM8 + des RAM8 + 0x34 + 0x20 + read-write + 0x0000 + + + D + des D + 0 + 8 + + + + + RAM9 + RAM9 + des RAM9 + 0x38 + 0x20 + read-write + 0x0000 + + + D + des D + 0 + 8 + + + + + RAM10 + RAM10 + des RAM10 + 0x3C + 0x20 + read-write + 0x0000 + + + D + des D + 0 + 8 + + + + + RAM11 + RAM11 + des RAM11 + 0x40 + 0x20 + read-write + 0x0000 + + + D + des D + 0 + 8 + + + + + RAM12 + RAM12 + des RAM12 + 0x44 + 0x20 + read-write + 0x0000 + + + D + des D + 0 + 8 + + + + + RAM13 + RAM13 + des RAM13 + 0x48 + 0x20 + read-write + 0x0000 + + + D + des D + 0 + 8 + + + + + RAM14 + RAM14 + des RAM14 + 0x4C + 0x20 + read-write + 0x0000 + + + D + des D + 0 + 8 + + + + + RAM15 + RAM15 + des RAM15 + 0x50 + 0x20 + read-write + 0x0000 + + + D + des D + 0 + 8 + + + + + + + LPTIM1 + Low power timer + LPTIM1 + 0x40007C00 + + 0x0 + 0x400 + registers + + + TIM6_LPTIM1_DAC + TIM6, LPTIM1, DAC global Interrupts + 17 + + + + ISR + ISR + Interrupt and Status Register + 0x0 + 0x20 + read-only + 0x00000000 + + + ARRM + Autoreload match + 1 + 1 + + + ARROK + Autoreload match update OK + 4 + 1 + + + + + ICR + ICR + Interrupt Clear Register + 0x4 + 0x20 + write-only + 0x00000000 + + + ARRMCF + + Autoreload match Clear + Flag + + 1 + 1 + + + ARROKCF + + Autoreload match update OK + Clear Flag + + 4 + 1 + + + + + IER + IER + Interrupt Enable Register + 0x8 + 0x20 + read-write + 0x00000000 + + + ARRMIE + + Autoreload matchInterrupt + Enable + + 1 + 1 + + + ARROKIE + + Autoreload match update + OK Interrupt Enable + + 4 + 1 + + + + + CFGR + CFGR + Configuration Register + 0xC + 0x20 + read-write + 0x00000000 + + + PRELOAD + Registers update mode + 22 + 1 + + + PRESC + Clock prescaler + 9 + 3 + + + + + CR + CR + Control Register + 0x10 + 0x20 + read-write + 0x00000000 + + + RSTARE + Reset after read enable + 4 + 1 + + + CNTSTRT + CNTSTRT + 2 + 1 + + + SNGSTRT + LPTIM start in single mode + 1 + 1 + + + ENABLE + LPTIM Enable + 0 + 1 + + + + + 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 + + + + + + + OPA + des OPA + OPA + 0x40010300 + + 0x0 + 0x400 + registers + + + + CR0 + CR0 + CR0 register + 0x30 + 0x20 + read-write + 0xFFFFFFFF + + + OP1OEN1 + OP1OEN1 + 1 + 1 + + + OP2OEN1 + OP2OEN1 + 6 + 1 + + + OP3OEN1 + OP3OEN1 + 11 + 1 + + + + + CR1 + CR1 + CR1 register + 0x34 + 0x20 + read-write + 0x00000000 + + + EN1 + EN1 + 5 + 1 + + + EN2 + EN2 + 6 + 1 + + + EN3 + EN3 + 7 + 1 + + + + + + + PWR + Power control + PWR + 0x40007000 + + 0x0 + 0x400 + registers + + + + CR1 + CR1 + Power control register 1 + 0x0 + 0x20 + read-write + 0x00030000 + + + HSION_CTRL + HSI open time control + 19 + 1 + + + SRAM_RETV + SRAM retention voltage control + 16 + 3 + + + LPR + Low-power run + 14 + 1 + + + FLS_SLPTIME + Flash wait time after wakeup from the stop mode + 12 + 2 + + + VOS + + Voltage scaling range + selection + + 9 + 2 + + + DBP + + Disable backup domain write + protection + + 8 + 1 + + + BIAS_CR_SEL + MR Bias current selection + 4 + 1 + + + BIAS_CR + MR Bias current + 0 + 3 + + + + + CR2 + CR2 + Power control register 2 + 0x4 + 0x20 + read-write + 0x00000500 + + + FLT_TIME + Digital filter time configuration + 9 + 3 + + + FLTEN + Digital filter enable + 8 + 1 + + + PVDT + + Power voltage detector threshold selection + + 4 + 3 + + + SRCSEL + + Power voltage detector volatage + selection + + 2 + 1 + + + PVDE + + Power voltage detector + enable + + 0 + 1 + + + + + SR + SR + Power status register + 0x14 + 0x20 + read-only + 0x00000000 + + + PVDO + PVD output + 11 + 1 + + + + + + + RCC + Reset and clock control + RCC + 0x40021000 + + 0x0 + 0x400 + registers + + + RCC_CTC + RCC and CTC global Interrupts + 4 + + + + CR + CR + Clock control register + 0x0 + 0x20 + read-write + 0x00000100 + + + PLLRDY + PLL clock ready flag + 25 + 1 + + + PLLON + PLL enable + 24 + 1 + + + ADC_DIV + ADC Frequency Division + 21 + 2 + + + CSSON + + Clock security system + enable + + 19 + 1 + + + HSEBYP + + HSE crystal oscillator + bypass + + 18 + 1 + + + HSERDY + HSE clock ready flag + 17 + 1 + + + HSEON + HSE clock enable + 16 + 1 + + + HSIDIV + + HSI16 clock division + factor + + 11 + 3 + + + HSIRDY + HSI16 clock ready flag + 10 + 1 + + + HSION + HSI16 clock enable + 8 + 1 + + + + + ICSCR + ICSCR + + Internal clock sources calibration + register + + 0x4 + 0x20 + 0x10000000 + + + LSI_TRIM + LSI clock trimming + 16 + 9 + read-write + + + HSI_FS + HSI frequency selection + 13 + 3 + read-write + + + HSI_TRIM + HSI clock trimming + 0 + 13 + read-write + + + + + CFGR + CFGR + Clock configuration register + 0x8 + 0x20 + 0x00000000 + + + MCOPRE + + Microcontroller clock output + prescaler + + 28 + 3 + read-write + + + MCOSEL + + Microcontroller clock + output + + 24 + 3 + read-write + + + PPRE + APB prescaler + 12 + 3 + read-write + + + HPRE + AHB prescaler + 8 + 4 + read-write + + + SWS + System clock switch status + 3 + 3 + read-only + + + SW + System clock switch + 0 + 3 + read-write + + + + + PLLCFGR + PLLCFGR + PLL configuration register + 0xC + 0x20 + 0x00000000 + + + PLLSRC + PLL clock source selection + 0 + 2 + read-write + + + PLLMUL + PLLMUL + 2 + 2 + read-write + + + + + ECSCR + ECSCR + External clock source control register + 0x10 + 0x20 + 0x00000000 + + + HSE_DRV + HSE_DRV + 0 + 2 + read-write + + + HSE_STARTUP + HSE_STARTUP + 3 + 2 + read-write + + + LSE_DRIVER + LSE clock driver selection + 16 + 2 + read-write + + + LSE_STARTUP + LSE_STARTUP + 20 + 2 + read-write + + + + + CIER + CIER + + Clock interrupt enable + register + + 0x18 + 0x20 + read-write + 0x00000000 + + + PLLRDYIE + PLL ready interrupt enable + 5 + 1 + + + HSERDYIE + HSE ready interrupt enable + 4 + 1 + + + HSIRDYIE + HSI ready interrupt enable + 3 + 1 + + + LSERDYIE + LSE ready interrupt enable + 1 + 1 + + + LSIRDYIE + LSI ready interrupt enable + 0 + 1 + + + + + CIFR + CIFR + Clock interrupt flag register + 0x1C + 0x20 + read-only + 0x00000000 + + + LSECSSF + LSE clock secure system interrupt flag + 9 + 1 + + + CSSF + HSE clock secure system interrupt flag + 8 + 1 + + + PLLRDYF + PLL ready interrupt flag + 5 + 1 + + + HSERDYF + HSE ready interrupt flag + 4 + 1 + + + HSIRDYF + HSI ready interrupt flag + 3 + 1 + + + LSERDYF + LSE ready interrupt flag + 1 + 1 + + + LSIRDYF + LSI ready interrupt flag + 0 + 1 + + + + + CICR + CICR + Clock interrupt clear register + 0x20 + 0x20 + write-only + 0x00000000 + + + LSECSSC + LSE clock secure system interrupt flag clear + 9 + 1 + + + CSSC + clock secure system interrupt flag clear + 8 + 1 + + + PLLRDYC + PLL ready interrupt clear + 5 + 1 + + + HSERDYC + HSE ready interrupt clear + 4 + 1 + + + HSIRDYC + HSI ready interrupt clear + 3 + 1 + + + LSERDYC + LSE ready interrupt clear + 1 + 1 + + + LSIRDYC + LSI ready interrupt clear + 0 + 1 + + + + + IOPRSTR + IOPRSTR + GPIO reset register + 0x24 + 0x20 + read-write + 0x00000000 + + + GPIOFRST + I/O port F reset + 5 + 1 + + + GPIOCRST + I/O port F reset + 2 + 1 + + + GPIOBRST + I/O port B reset + 1 + 1 + + + GPIOARST + I/O port A reset + 0 + 1 + + + + + AHBRSTR + AHBRSTR + AHB peripheral reset register + 0x28 + 0x20 + read-write + 0x00000000 + + + DIVRST + DIV reset + 24 + 1 + + + CRCRST + CRC reset + 12 + 1 + + + DMARST + DMA reset + 0 + 1 + + + + + APBRSTR1 + APBRSTR1 + + APB peripheral reset register + 1 + + 0x2C + 0x20 + read-write + 0x00000000 + + + LPTIMRST + Low Power Timer reset + 31 + 1 + + + OPARST + OPARST + 30 + 1 + + + DACRST + DACRST + 29 + 1 + + + PWRRST + Power interface reset + 28 + 1 + + + CTCRST + CTCRST + 27 + 1 + + + CANRST + CANRST + 25 + 1 + + + USBRST + USB reset + 23 + 1 + + + I2C2RST + I2C2 reset + 22 + 1 + + + I2C1RST + I2C1 reset + 21 + 1 + + + USART4RST + USART4 reset + 19 + 1 + + + USART3RST + USART3 reset + 18 + 1 + + + USART2RST + USART2 reset + 17 + 1 + + + SPI2RST + SPI2 reset + 14 + 1 + + + WWDGRST + WWDG reset + 11 + 1 + + + RTCAPBRST + RTCAPB reset + 10 + 1 + + + TIM7RST + TIM7 timer reset + 5 + 1 + + + TIM6RST + TIM6 timer reset + 4 + 1 + + + TIM3RST + TIM3 timer reset + 1 + 1 + + + TIM2RST + TIM2 timer reset + 0 + 1 + + + + + APBRSTR2 + APBRSTR2 + + APB peripheral reset register + 2 + + 0x30 + 0x20 + read-write + 0x00000000 + + + SYSCFGRST + SYSCFG reset + 0 + 1 + + + ADCRST + ADC reset + 9 + 1 + + + DBGRST + DBG reset + 10 + 1 + + + TIM1RST + TIM1 reset + 11 + 1 + + + SPI1RST + SPI1 reset + 12 + 1 + + + USART1RST + USART1 reset + 14 + 1 + + + TIM14RST + TIM14 reset + 15 + 1 + + + TIM15RST + TIM15 reset + 16 + 1 + + + TIM16RST + TIM16 reset + 17 + 1 + + + TIM17RST + TIM17 reset + 18 + 1 + + + COMP1RST + COMP1 reset + 20 + 1 + + + COMP2RST + COMP2 reset + 21 + 1 + + + COMP3RST + COMP3 reset + 22 + 1 + + + LCDRST + LCD reset + 23 + 1 + + + + + IOPENR + IOPENR + GPIO clock enable register + 0x34 + 0x20 + read-write + 0x00000000 + + + GPIOFEN + I/O port F clock enable + 5 + 1 + + + GPIOCEN + I/O port C clock enable + 2 + 1 + + + GPIOBEN + I/O port B clock enable + 1 + 1 + + + GPIOAEN + I/O port A clock enable + 0 + 1 + + + + + AHBENR + AHBENR + + AHB peripheral clock enable + register + + 0x38 + 0x20 + read-write + 0x00000000 + + + DIVEN + DIVEN + 24 + 1 + + + CRCEN + CRC clock enable + 12 + 1 + + + SRAMEN + + SRAM memory interface clock + enable + + 9 + 1 + + + FLASHEN + + Flash memory interface clock + enable + + 8 + 1 + + + DMAEN + DMA clock enable + 0 + 1 + + + + + APBENR1 + APBENR1 + + APB peripheral clock enable register + 1 + + 0x3C + 0x20 + read-write + 0x00000000 + + + LPTIMEN + LPTIM clock enable + 31 + 1 + + + + OPAEN + OPA clock enable + 30 + 1 + + + DACEN + DAC clock enable + 29 + 1 + + + PWREN + + Power interface clock + enable + + 28 + 1 + + + CTCEN + CTC clock enable + 27 + 1 + + + CANEN + CAN clock enable + 25 + 1 + + + USBEN + USB clock enable + 23 + 1 + + + I2C2EN + I2C2 clock enable + 22 + 1 + + + I2C1EN + I2C1 clock enable + 21 + 1 + + + USART4EN + USART4 clock enable + 19 + 1 + + + USART3EN + USART3 clock enable + 18 + 1 + + + USART2EN + USART2 clock enable + 17 + 1 + + + SPI2EN + SPI2 clock enable + 14 + 1 + + + WWDGEN + WWDG clock enable + 11 + 1 + + + RTCAPBEN + RTC APB clock enable + 10 + 1 + + + TIM7EN + TIM7 timer clock enable + 5 + 1 + + + TIM6EN + TIM6 timer clock enable + 4 + 1 + + + TIM3EN + TIM3 timer clock enable + 1 + 1 + + + TIM2EN + TIM2 timer clock enable + 0 + 1 + + + + + APBENR2 + APBENR2 + + APB peripheral clock enable register + 2 + + 0x40 + 0x20 + read-write + 0x00000000 + + + SYSCFGEN + + SYSCFG, COMP and VREFBUF clock + enable + + 0 + 1 + + + ADCEN + ADCEN clock enable + 9 + 1 + + + DBGEN + DBG clock enable + 10 + 1 + + + TIM1EN + TIM1 clock enable + 11 + 1 + + + SPI1EN + SPI1 clock enable + 12 + 1 + + + USART1EN + USART1 clock enable + 14 + 1 + + + TIM14EN + TIM14 clock enable + 15 + 1 + + + TIM15EN + TIM15 clock enable + 16 + 1 + + + TIM16EN + TIM16 clock enable + 17 + 1 + + + TIM17EN + TIM17 clock enable + 18 + 1 + + + COMP1EN + COMP1 clock enable + 20 + 1 + + + COMP2EN + COMP2 clock enable + 21 + 1 + + + COMP3EN + COMP3 clock enable + 22 + 1 + + + LCDEN + LCD clock enable + 23 + 1 + + + + + CCIPR + CCIPR + + Peripherals independent clock configuration + register + + 0x54 + 0x20 + read-write + 0x00000000 + + + LPTIM1SEL + + LPTIM1 clock source + selection + + 18 + 2 + + + COMP3SEL + + COMP3 clock source + selection + + 10 + 1 + + + COMP2SEL + + COMP2 clock source + selection + + 9 + 1 + + + COMP1SEL + + COMP1 clock source + selection + + 8 + 1 + + + PVDSEL + + PVD detect clock source + selection + + 7 + 1 + + + CANSEL + + CAN detect clock source + selection + + 6 + 1 + + + + + BDCR + BDCR + RTC domain control register + 0x5C + 0x20 + read-write + 0x00000000 + + + LSCOSEL + + Low-speed clock output + selection + + 25 + 1 + + + LSCOEN + + Low-speed clock output (LSCO) + enable + + 24 + 1 + + + BDRST + RTC domain software reset + 16 + 1 + + + RTCEN + RTC clock source enable + 15 + 1 + + + RTCSEL + RTC clock source selection + 8 + 2 + + + LSECSSD + LSE CSS detect + 6 + 1 + + + LSECSSON + LSE CSS enable + 5 + 1 + + + LSEBYP + LSE oscillator bypass + 2 + 1 + + + LSERDY + LSE oscillator ready + 1 + 1 + + + LSEON + LSE oscillator enable + 0 + 1 + + + + + CSR + CSR + Control/status register + 0x60 + 0x20 + read-write + 0x00000000 + + + WWDGRSTF + Window watchdog reset flag + 30 + 1 + + + IWDGRSTF + + Independent window watchdog reset + flag + + 29 + 1 + + + SFTRSTF + Software reset flag + 28 + 1 + + + PWRRSTF + BOR or POR/PDR flag + 27 + 1 + + + PINRSTF + Pin reset flag + 26 + 1 + + + OBLRSTF + + Option byte loader reset + flag + + 25 + 1 + + + RMVF + Remove reset flags + 23 + 1 + + + NRST_FLTDIS + NRST_FLTDIS oscillator ready + 8 + 1 + + + LSIRDY + LSI oscillator ready + 1 + 1 + + + LSION + LSI oscillator enable + 0 + 1 + + + + + + + RTC + desc RTC + RTC + 0x40002800 + + 0x0 + 0x400 + registers + + + RTC + RTC Interrupt through EXTI Lines 19 + 2 + + + + CRH + desc CRH + 0x0 + 32 + read-write + 0x0 + + + SECIE + desc SECIE + 0 + 0 + read-write + + + ALRIE + desc ALRIE + 1 + 1 + read-write + + + OWIE + desc OWIE + 2 + 2 + read-write + + + + + CRL + desc CRL + 0x4 + 32 + read-write + 0x20 + + + + SECF + desc SECF + 0 + 0 + read-write + + + ALRF + desc ALRF + 1 + 1 + read-write + + + OWF + desc OWF + 2 + 2 + read-write + + + RSF + desc RSF + 3 + 3 + read-write + + + CNF + desc CNF + 4 + 4 + read-write + + + RTOFF + desc RTOFF + 5 + 5 + read-only + + + + + PRLH + desc PRLH + 0x8 + 32 + write-only + 0x0 + + + PRL + desc PRL + 3 + 0 + write-only + + + + + PRLL + desc PRLL + 0xC + 32 + write-only + 0x8000 + + + PRL + desc PRL + 15 + 0 + write-only + + + + + DIVH + desc DIVH + 0x10 + 32 + read-only + 0x0 + + + DIV + desc DIV + 3 + 0 + read-only + + + + + DIVL + desc DIVL + 0x14 + 32 + read-only + 0x8000 + + + DIV + desc DIV + 15 + 0 + read-only + + + + + CNTH + desc CNTH + 0x18 + 32 + read-write + 0x0 + + + RTC_CNT + desc RTC_CNT + 15 + 0 + read-write + + + + + CNTL + desc CNTL + 0x1C + 32 + read-write + 0x0 + + + RTC_CNT + desc RTC_CNT + 15 + 0 + read-write + + + + + ALRH + desc ALRH + 0x20 + 32 + read-write + 0xFFFF + + + RTC_ALR + desc RTC_ALR + 15 + 0 + read-write + + + + + ALRL + desc ALRL + 0x24 + 32 + read-write + 0xFFFF + + + RTC_ALR + desc RTC_ALR + 15 + 0 + read-write + + + + + BKP_RTCCR + desc BKP_RTCCR + 0x2C + 32 + read-write + 0x0 + + + CAL + desc CAL + 6 + 0 + read-write + + + CCO + desc CCO + 7 + 7 + read-write + + + ASOE + desc ASOE + 8 + 8 + read-write + + + ASOS + desc ASOS + 9 + 9 + read-write + + + + + + + SPI1 + Serial peripheral interface + SPI + 0x40013000 + + 0x0 + 0x400 + registers + + + SPI1 + SPI1 global Interrupt + 25 + + + + CR1 + desc CR1 + 0x0 + 32 + read-write + 0x0 + + + CPHA + desc CPHA + 0 + 0 + read-write + + + CPOL + desc CPOL + 1 + 1 + read-write + + + MSTR + desc MSTR + 2 + 2 + read-write + + + BR + desc BR + 5 + 3 + read-write + + + SPE + desc SPE + 6 + 6 + read-write + + + LSBFIRST + desc LSBFIRST + 7 + 7 + read-write + + + SSI + desc SSI + 8 + 8 + read-write + + + SSM + desc SSM + 9 + 9 + read-write + + + RXONLY + desc RXONLY + 10 + 10 + read-write + + + DDF + desc DDF + 11 + 11 + read-write + + + CRCNEXT + desc CRCNEXT + 12 + 12 + read-write + + + CRCEN + desc CRCEN + 13 + 13 + read-write + + + BIDIOE + desc BIDIOE + 14 + 14 + read-write + + + BIDIMODE + desc BIDIMODE + 15 + 15 + read-write + + + + + CR2 + desc CR2 + 0x4 + 32 + read-write + 0x0 + + + RXDMAEN + desc RXDMAEN + 0 + 0 + read-write + + + TXDMAEN + desc TXDMAEN + 1 + 1 + read-write + + + SSOE + desc SSOE + 2 + 2 + read-write + + + CLRTXFIFO + desc CLRTXFIFO + 4 + 4 + read-write + + + ERRIE + desc ERRIE + 5 + 5 + read-write + + + RXNEIE + desc RXNEIE + 6 + 6 + read-write + + + TXEIE + desc TXEIE + 7 + 7 + read-write + + + FRXTH + desc FRXTH + 12 + 12 + read-write + + + LDMA_RX + desc LDMA_RX + 13 + 13 + read-write + + + LDMA_TX + desc LDMA_TX + 14 + 14 + read-write + + + + + SR + desc SR + 0x8 + 32 + read-write + 0x2 + + + RXNE + desc RXNE + 0 + 0 + read-only + + + TXE + desc TXE + 1 + 1 + read-only + + + CHSIDE + desc CHSIDE + 2 + 2 + read-only + + + UDR + desc UDR + 3 + 3 + read-only + + + CRCERR + desc CRCERR + 4 + 4 + read-write + + + MODF + desc MODF + 5 + 5 + read-only + + + OVR + desc OVR + 6 + 6 + read-only + + + BSY + desc BSY + 7 + 7 + read-only + + + FRLVL + desc FRLVL + 10 + 9 + read-only + + + FTLVL + desc FTLVL + 12 + 11 + read-only + + + + + DR + desc DR + 0xC + 32 + read-write + 0x0 + + + DR + desc DR + 15 + 0 + read-write + + + + + CRCPR + desc CRCPR + 0x10 + 32 + read-write + 0x7 + + + CRCPOLY + desc CRCPOLY + 15 + 0 + read-write + + + + + RXCRCR + desc RXCRCR + 0x14 + 32 + read-only + 0x0 + + + RXCRC + desc RXCRC + 15 + 0 + read-only + + + + + TXCRCR + desc TXCRCR + 0x18 + 32 + read-only + 0x0 + + + TXCRC + desc TXCRC + 15 + 0 + read-only + + + + + I2SCFGR + desc I2SCFGR + 0x1C + 32 + read-write + 0x0 + + + CHLEN + desc CHLEN + 0 + 0 + read-write + + + DATLEN + desc DATLEN + 2 + 1 + read-write + + + CKPOL + desc CKPOL + 3 + 3 + read-write + + + I2SSTD + desc I2SSTD + 5 + 4 + read-write + + + PCMSYNC + desc PCMSYNC + 7 + 7 + read-write + + + I2SCFG + desc I2SCFG + 9 + 8 + read-write + + + I2SE + desc I2SE + 10 + 10 + read-write + + + I2SMOD + desc I2SMOD + 11 + 11 + read-write + + + + + I2SPR + desc I2SPR + 0x20 + 32 + read-write + 0x2 + + + I2SDIV + desc I2SDIV + 7 + 0 + read-write + + + ODD + desc ODD + 8 + 8 + read-write + + + MCKOE + desc MCKOE + 9 + 9 + read-write + + + + + + + SPI2 + 0x40003800 + + SPI2 + SPI2 global Interrupt + 26 + + + + SYSCFG + desc SYSCFG + SYSCFG + 0x40010000 + + 0x0 + 0x200 + registers + + + + CFGR1 + desc CFGR1 + 0x0 + 32 + read-write + 0xFF0000 + + + MEM_MODE + desc MEM_MODE + 1 + 0 + read-write + + + TIM1_IC1_SRC + desc TIM1_IC1_SRC + 3 + 2 + read-write + + + TIM2_IC4_SRC + desc TIM2_IC4_SRC + 5 + 4 + read-write + + + TIM3_IC1_SRC + desc TIM3_IC1_SRC + 7 + 6 + read-write + + + ETR_SRC_TIM1 + desc ETR_SRC_TIM1 + 10 + 8 + read-write + + + ETR_SRC_TIM2 + desc ETR_SRC_TIM2 + 14 + 12 + read-write + + + ETR_SRC_TIM3 + desc ETR_SRC_TIM3 + 18 + 16 + read-write + + + GPIO_AHB_SEL + desc GPIO_AHB_SEL + 24 + 24 + read-write + + + + + CFGR2 + desc CFGR2 + 0x4 + 32 + read-write + 0x4 + + + LOCKUP_LOCK + desc LOCKUP_LOCK + 0 + 0 + read-write + + + PVD_LOCK + desc PVD_LOCK + 2 + 2 + read-write + + + COMP1_BRK_TIM1 + desc COMP1_BRK_TIM1 + 3 + 3 + read-write + + + COMP2_BRK_TIM1 + desc COMP2_BRK_TIM1 + 4 + 4 + read-write + + + COMP3_BRK_TIM1 + desc COMP3_BRK_TIM1 + 5 + 5 + read-write + + + COMP1_BRK_TIM15 + desc COMP1_BRK_TIM15 + 6 + 6 + read-write + + + COMP2_BRK_TIM15 + desc COMP2_BRK_TIM15 + 7 + 7 + read-write + + + COMP3_BRK_TIM15 + desc COMP3_BRK_TIM15 + 8 + 8 + read-write + + + COMP1_BRK_TIM16 + desc COMP1_BRK_TIM16 + 9 + 9 + read-write + + + COMP2_BRK_TIM16 + desc COMP2_BRK_TIM16 + 10 + 10 + read-write + + + COMP3_BRK_TIM16 + desc COMP3_BRK_TIM16 + 11 + 11 + read-write + + + COMP1_BRK_TIM17 + desc COMP1_BRK_TIM17 + 12 + 12 + read-write + + + COMP2_BRK_TIM17 + desc COMP2_BRK_TIM17 + 13 + 13 + read-write + + + COMP3_BRK_TIM17 + desc COMP3_BRK_TIM17 + 14 + 14 + read-write + + + COMP1_OCREF_CLR_TIM1 + desc COMP1_OCREF_CLR_TIM1 + 15 + 15 + read-write + + + COMP1_OCREF_CLR_TIM2 + desc COMP1_OCREF_CLR_TIM2 + 16 + 16 + read-write + + + COMP1_OCREF_CLR_TIM3 + desc COMP1_OCREF_CLR_TIM3 + 17 + 17 + read-write + + + COMP2_OCREF_CLR_TIM1 + desc COMP2_OCREF_CLR_TIM1 + 18 + 18 + read-write + + + COMP2_OCREF_CLR_TIM2 + desc COMP2_OCREF_CLR_TIM2 + 19 + 19 + read-write + + + COMP2_OCREF_CLR_TIM3 + desc COMP2_OCREF_CLR_TIM3 + 20 + 20 + read-write + + + COMP3_OCREF_CLR_TIM1 + desc COMP3_OCREF_CLR_TIM1 + 21 + 21 + read-write + + + COMP3_OCREF_CLR_TIM2 + desc COMP3_OCREF_CLR_TIM2 + 22 + 22 + read-write + + + COMP3_OCREF_CLR_TIM3 + desc COMP3_OCREF_CLR_TIM3 + 23 + 23 + read-write + + + + + CFGR3 + desc CFGR3 + 0x8 + 32 + read-write + 0x0 + + + DMA1_MAP + desc DMA1_MAP + 5 + 0 + read-write + + + DMA2_MAP + desc DMA2_MAP + 13 + 8 + read-write + + + DMA3_MAP + desc DMA3_MAP + 21 + 16 + read-write + + + DMA4_MAP + desc DMA4_MAP + 29 + 24 + read-write + + + + + CFGR4 + desc CFGR4 + 0xC + 32 + read-write + 0x0 + + + DMA5_MAP + desc DMA5_MAP + 5 + 0 + read-write + + + DMA6_MAP + desc DMA6_MAP + 13 + 8 + read-write + + + DMA7_MAP + desc DMA7_MAP + 21 + 16 + read-write + + + + + PAENS + desc PAENS + 0x10 + 32 + read-write + 0x0 + + + PA_ENS + desc PA_ENS + 15 + 0 + read-write + + + + + PBENS + desc PBENS + 0x14 + 32 + read-write + 0x0 + + + PB_ENS + desc PB_ENS + 15 + 0 + read-write + + + + + PCENS + desc PCENS + 0x18 + 32 + read-write + 0x0 + + + PC_ENS + desc PC_ENS + 15 + 0 + read-write + + + + + PFENS + desc PFENS + 0x1C + 32 + read-write + 0x0 + + + PF_ENS + desc PF_ENS + 15 + 0 + read-write + + + + + EIIC + desc EIIC + 0x20 + 32 + read-write + 0x0 + + + PA_EIIC + desc PA_EIIC + 1 + 0 + read-write + + + PB_EIIC + desc PB_EIIC + 16 + 8 + read-write + + + PF_EIIC + desc PF_EIIC + 25 + 24 + read-write + + + + + + + TIM1 + Advanced timer + TIM + 0x40012C00 + + 0x0 + 0x400 + registers + + + TIM1_BRK_UP_TRG_COM + TIM1 Break, Update, Trigger and Commutation Interrupt + 13 + + + TIM1_CC + TIM1 Capture Compare Interrupt + 14 + + + + CR1 + desc CR1 + 0x0 + 32 + read-write + 0x0 + 0x3FF + + + CEN + desc CEN + 0 + 0 + read-write + + + UDIS + desc UDIS + 1 + 1 + read-write + + + URS + desc URS + 2 + 2 + read-write + + + OPM + desc OPM + 3 + 3 + read-write + + + DIR + desc DIR + 4 + 4 + read-write + + + CMS + desc CMS + 6 + 5 + read-write + + + ARPE + desc ARPE + 7 + 7 + read-write + + + CKD + desc CKD + 9 + 8 + read-write + + + + + CR2 + desc CR2 + 0x4 + 32 + read-write + 0x0 + 0xF8 + + + CCDS + desc CCDS + 3 + 3 + read-write + + + MMS + desc MMS + 6 + 4 + read-write + + + TI1S + desc TI1S + 7 + 7 + read-write + + + + + SMCR + desc SMCR + 0x8 + 32 + read-write + 0x0 + 0xFFF7 + + + SMS + desc SMS + 2 + 0 + read-write + + + TS + desc TS + 6 + 4 + read-write + + + MSM + desc MSM + 7 + 7 + read-write + + + ETF + desc ETF + 11 + 8 + read-write + + + ETPS + desc ETPS + 13 + 12 + read-write + + + ECE + desc ECE + 14 + 14 + read-write + + + ETP + desc ETP + 15 + 15 + read-write + + + + + DIER + desc DIER + 0xC + 32 + read-write + 0x0 + 0x5F5F + + + UIE + desc UIE + 0 + 0 + read-write + + + CC1IE + desc CC1IE + 1 + 1 + read-write + + + CC2IE + desc CC2IE + 2 + 2 + read-write + + + CC3IE + desc CC3IE + 3 + 3 + read-write + + + CC4IE + desc CC4IE + 4 + 4 + read-write + + + TIE + desc TIE + 6 + 6 + read-write + + + UDE + desc UDE + 8 + 8 + read-write + + + CC1DE + desc CC1DE + 9 + 9 + read-write + + + CC2DE + desc CC2DE + 10 + 10 + read-write + + + CC3DE + desc CC3DE + 11 + 11 + read-write + + + CC4DE + desc CC4DE + 12 + 12 + read-write + + + TDE + desc TDE + 14 + 14 + read-write + + + + + SR + desc SR + 0x10 + 32 + read-write + 0x0 + 0x1E5F + + + UIF + desc UIF + 0 + 0 + read-write + + + CC1IF + desc CC1IF + 1 + 1 + read-write + + + CC2IF + desc CC2IF + 2 + 2 + read-write + + + CC3IF + desc CC3IF + 3 + 3 + read-write + + + CC4IF + desc CC4IF + 4 + 4 + read-write + + + COMIF + desc COMIF + 5 + 5 + read-write + + + TIF + desc TIF + 6 + 6 + read-write + + + BIF + desc BIF + 7 + 7 + read-write + + + CC1OF + desc CC1OF + 9 + 9 + read-write + + + CC2OF + desc CC2OF + 10 + 10 + read-write + + + CC3OF + desc CC3OF + 11 + 11 + read-write + + + CC4OF + desc CC4OF + 12 + 12 + read-write + + + IC1IR + desc IC1IR + 16 + 16 + read-write + + + IC2IR + desc IC2IR + 17 + 17 + read-write + + + IC3IR + desc IC3IR + 18 + 18 + read-write + + + IC4IR + desc IC3IR + 19 + 19 + read-write + + + IC1IF + desc IC1IF + 20 + 20 + read-write + + + IC2IF + desc IC2IF + 21 + 21 + read-write + + + IC3IF + desc IC3IF + 22 + 22 + read-write + + + IC4IF + desc IC3IF + 23 + 23 + read-write + + + + + EGR + desc EGR + 0x14 + 32 + write-only + 0x0 + 0x5F + + + UG + desc UG + 0 + 0 + write-only + + + CC1G + Capture/Compare 1 Generation + 1 + 1 + write-only + + + CC2G + desc CC2G + 2 + 2 + write-only + + + CC3G + desc CC3G + 3 + 3 + write-only + + + CC4G + desc CC4G + 4 + 4 + write-only + + + TG + desc TG + 6 + 6 + write-only + + + + + CCMR1_OUTPUT + desc CCMR1:OUTPUT + 0x18 + 32 + read-write + 0x0 + 0xFFFF + + + CC1S + desc CC1S + 1 + 0 + read-write + + + OC1FE + desc OC1FE + 2 + 2 + read-write + + + OC1PE + desc OC1PE + 3 + 3 + read-write + + + OC1M + desc OC1M + 6 + 4 + read-write + + + OC1CE + desc OC1CE + 7 + 7 + read-write + + + CC2S + desc CC2S + 9 + 8 + read-write + + + OC2FE + desc OC2FE + 10 + 10 + read-write + + + OC2PE + desc OC2PE + 11 + 11 + read-write + + + OC2M + desc OC2M + 14 + 12 + read-write + + + OC2CE + desc OC2CE + 15 + 15 + read-write + + + + + CCMR1_INPUT + desc CCMR1:INPUT + CCMR1_OUTPUT + 0x18 + 32 + read-write + 0x0 + 0xFFFF + + + CC1S + desc CC1S + 1 + 0 + read-write + + + IC1PSC + desc IC1PSC + 3 + 2 + read-write + + + IC1F + desc IC1F + 7 + 4 + read-write + + + CC2S + desc CC2S + 9 + 8 + read-write + + + IC2PSC + desc IC2PSC + 11 + 10 + read-write + + + IC2F + desc IC2F + 15 + 12 + read-write + + + + + CCMR2_OUTPUT + desc CCMR2:OUTPUT + 0x1C + 32 + read-write + 0x0 + 0xFFFF + + + CC3S + desc CC3S + 1 + 0 + read-write + + + OC3FE + desc OC3FE + 2 + 2 + read-write + + + OC3PE + desc OC3PE + 3 + 3 + read-write + + + OC3M + desc OC3M + 6 + 4 + read-write + + + OC3CE + desc OC3CE + 7 + 7 + read-write + + + CC4S + desc CC4S + 9 + 8 + read-write + + + OC4FE + desc OC4FE + 10 + 10 + read-write + + + OC4PE + desc OC4PE + 11 + 11 + read-write + + + OC4M + desc OC4M + 14 + 12 + read-write + + + OC4CE + desc OC4CE + 15 + 15 + read-write + + + + + CCMR2_INPUT + desc CCMR2:INPUT + CCMR2_OUTPUT + 0x1C + 32 + read-write + 0x0 + 0xFFFF + + + CC3S + desc CC3S + 1 + 0 + read-write + + + IC3PSC + desc IC3PSC + 3 + 2 + read-write + + + IC3F + desc IC3F + 7 + 4 + read-write + + + CC4S + desc CC4S + 9 + 8 + read-write + + + IC4PSC + desc IC4PSC + 11 + 10 + read-write + + + IC4F + desc IC4F + 15 + 12 + read-write + + + + + CCER + desc CCER + 0x20 + 32 + read-write + 0x0 + 0x3333 + + + CC1E + desc CC1E + 0 + 0 + read-write + + + CC1P + desc CC1P + 1 + 1 + read-write + + + CC2E + desc CC2E + 4 + 4 + read-write + + + CC2P + desc CC2P + 5 + 5 + read-write + + + CC3E + desc CC3E + 8 + 8 + read-write + + + CC3P + desc CC3P + 9 + 9 + read-write + + + CC4E + desc CC4E + 12 + 12 + read-write + + + CC4P + desc CC4P + 13 + 13 + read-write + + + + + CNT + desc CNT + 0x24 + 32 + read-write + 0x0 + 0xFFFF + + + CNT + desc CNT + 15 + 0 + read-write + + + + + PSC + desc PSC + 0x28 + 32 + read-write + 0x0 + 0xFFFF + + + PSC + desc PSC + 15 + 0 + read-write + + + + + ARR + desc ARR + 0x2C + 32 + read-write + 0xFFFF + 0xFFFF + + + ARR + desc ARR + 15 + 0 + read-write + + + + + RCR + desc RCR + 0x30 + 32 + read-write + 0xFFFF + 0xFFFF + + + REP + desc REP + 7 + 0 + read-write + + + + + CCR1 + desc CCR1 + 0x34 + 32 + read-write + 0x0 + 0xFFFF + + + CCR1 + desc CCR1 + 15 + 0 + read-write + + + + + CCR2 + desc CCR2 + 0x38 + 32 + read-write + 0x0 + 0xFFFF + + + CCR2 + desc CCR2 + 15 + 0 + read-write + + + + + CCR3 + desc CCR3 + 0x3C + 32 + read-write + 0x0 + 0xFFFF + + + CCR3 + desc CCR3 + 15 + 0 + read-write + + + + + CCR4 + desc CCR4 + 0x40 + 32 + read-write + 0x0 + 0xFFFF + + + CCR4 + desc CCR4 + 15 + 0 + read-write + + + + + BDTR + desc BDTR + 0x44 + 32 + read-write + 0x0 + 0xFFFF + + + DTG + desc DTG + 7 + 0 + read-write + + + LOCK + desc LOCK + 9 + 8 + read-write + + + OSSI + desc OSSI + 10 + 10 + read-write + + + OSSR + desc OSSR + 11 + 11 + read-write + + + BKE + desc BKE + 12 + 12 + read-write + + + BKP + desc BKP + 13 + 13 + read-write + + + AOE + desc AOE + 14 + 14 + read-write + + + MOE + desc MOE + 15 + 15 + read-write + + + + + DCR + desc DCR + 0x48 + 32 + read-write + 0x0 + 0x1F1F + + + DBA + desc DBA + 4 + 0 + read-write + + + DBL + desc DBL + 12 + 8 + read-write + + + + + DMAR + desc DMAR + 0x4C + 32 + read-write + 0x0 + 0xFFFF + + + DMAB + desc DMAB + 15 + 0 + read-write + + + + + + + TIM2 + desc TIM + TIM + 0x40000000 + + 0x0 + 0x400 + registers + + + TIM2 + TIM2 global Interrupt + 15 + + + + CR1 + desc CR1 + 0x0 + 32 + read-write + 0x0 + 0x3FF + + + CEN + desc CEN + 0 + 0 + read-write + + + UDIS + desc UDIS + 1 + 1 + read-write + + + URS + desc URS + 2 + 2 + read-write + + + OPM + desc OPM + 3 + 3 + read-write + + + DIR + desc DIR + 4 + 4 + read-write + + + CMS + desc CMS + 6 + 5 + read-write + + + ARPE + desc ARPE + 7 + 7 + read-write + + + CKD + desc CKD + 9 + 8 + read-write + + + + + CR2 + desc CR2 + 0x4 + 32 + read-write + 0x0 + 0xF8 + + + CCDS + desc CCDS + 3 + 3 + read-write + + + MMS + desc MMS + 6 + 4 + read-write + + + TI1S + desc TI1S + 7 + 7 + read-write + + + + + SMCR + desc SMCR + 0x8 + 32 + read-write + 0x0 + 0xFFF7 + + + SMS + desc SMS + 2 + 0 + read-write + + + TS + desc TS + 6 + 4 + read-write + + + MSM + desc MSM + 7 + 7 + read-write + + + ETF + desc ETF + 11 + 8 + read-write + + + ETPS + desc ETPS + 13 + 12 + read-write + + + ECE + desc ECE + 14 + 14 + read-write + + + ETP + desc ETP + 15 + 15 + read-write + + + + + DIER + desc DIER + 0xC + 32 + read-write + 0x0 + 0x5F5F + + + UIE + desc UIE + 0 + 0 + read-write + + + CC1IE + desc CC1IE + 1 + 1 + read-write + + + CC2IE + desc CC2IE + 2 + 2 + read-write + + + CC3IE + desc CC3IE + 3 + 3 + read-write + + + CC4IE + desc CC4IE + 4 + 4 + read-write + + + TIE + desc TIE + 6 + 6 + read-write + + + UDE + desc UDE + 8 + 8 + read-write + + + CC1DE + desc CC1DE + 9 + 9 + read-write + + + CC2DE + desc CC2DE + 10 + 10 + read-write + + + CC3DE + desc CC3DE + 11 + 11 + read-write + + + CC4DE + desc CC4DE + 12 + 12 + read-write + + + TDE + desc TDE + 14 + 14 + read-write + + + + + SR + desc SR + 0x10 + 32 + read-write + 0x0 + 0x1E5F + + + UIF + desc UIF + 0 + 0 + read-write + + + CC1IF + desc CC1IF + 1 + 1 + read-write + + + CC2IF + desc CC2IF + 2 + 2 + read-write + + + CC3IF + desc CC3IF + 3 + 3 + read-write + + + CC4IF + desc CC4IF + 4 + 4 + read-write + + + COMIF + desc COMIF + 5 + 5 + read-write + + + TIF + desc TIF + 6 + 6 + read-write + + + BIF + desc BIF + 7 + 7 + read-write + + + CC1OF + desc CC1OF + 9 + 9 + read-write + + + CC2OF + desc CC2OF + 10 + 10 + read-write + + + CC3OF + desc CC3OF + 11 + 11 + read-write + + + CC4OF + desc CC4OF + 12 + 12 + read-write + + + IC1IR + desc IC1IR + 16 + 16 + read-write + + + IC2IR + desc IC2IR + 17 + 17 + read-write + + + IC3IR + desc IC3IR + 18 + 18 + read-write + + + IC4IR + desc IC3IR + 19 + 19 + read-write + + + IC1IF + desc IC1IF + 20 + 20 + read-write + + + IC2IF + desc IC2IF + 21 + 21 + read-write + + + IC3IF + desc IC3IF + 22 + 22 + read-write + + + IC4IF + desc IC3IF + 23 + 23 + read-write + + + + + EGR + desc EGR + 0x14 + 32 + write-only + 0x0 + 0x5F + + + UG + desc UG + 0 + 0 + write-only + + + CC1G + Capture/Compare 1 Generation + 1 + 1 + write-only + + + CC2G + desc CC2G + 2 + 2 + write-only + + + CC3G + desc CC3G + 3 + 3 + write-only + + + CC4G + desc CC4G + 4 + 4 + write-only + + + TG + desc TG + 6 + 6 + write-only + + + + + CCMR1_OUTPUT + desc CCMR1:OUTPUT + 0x18 + 32 + read-write + 0x0 + 0xFFFF + + + CC1S + desc CC1S + 1 + 0 + read-write + + + OC1FE + desc OC1FE + 2 + 2 + read-write + + + OC1PE + desc OC1PE + 3 + 3 + read-write + + + OC1M + desc OC1M + 6 + 4 + read-write + + + OC1CE + desc OC1CE + 7 + 7 + read-write + + + CC2S + desc CC2S + 9 + 8 + read-write + + + OC2FE + desc OC2FE + 10 + 10 + read-write + + + OC2PE + desc OC2PE + 11 + 11 + read-write + + + OC2M + desc OC2M + 14 + 12 + read-write + + + OC2CE + desc OC2CE + 15 + 15 + read-write + + + + + CCMR1_INPUT + desc CCMR1:INPUT + CCMR1_OUTPUT + 0x18 + 32 + read-write + 0x0 + 0xFFFF + + + CC1S + desc CC1S + 1 + 0 + read-write + + + IC1PSC + desc IC1PSC + 3 + 2 + read-write + + + IC1F + desc IC1F + 7 + 4 + read-write + + + CC2S + desc CC2S + 9 + 8 + read-write + + + IC2PSC + desc IC2PSC + 11 + 10 + read-write + + + IC2F + desc IC2F + 15 + 12 + read-write + + + + + CCMR2_OUTPUT + desc CCMR2:OUTPUT + 0x1C + 32 + read-write + 0x0 + 0xFFFF + + + CC3S + desc CC3S + 1 + 0 + read-write + + + OC3FE + desc OC3FE + 2 + 2 + read-write + + + OC3PE + desc OC3PE + 3 + 3 + read-write + + + OC3M + desc OC3M + 6 + 4 + read-write + + + OC3CE + desc OC3CE + 7 + 7 + read-write + + + CC4S + desc CC4S + 9 + 8 + read-write + + + OC4FE + desc OC4FE + 10 + 10 + read-write + + + OC4PE + desc OC4PE + 11 + 11 + read-write + + + OC4M + desc OC4M + 14 + 12 + read-write + + + OC4CE + desc OC4CE + 15 + 15 + read-write + + + + + CCMR2_INPUT + desc CCMR2:INPUT + CCMR2_OUTPUT + 0x1C + 32 + read-write + 0x0 + 0xFFFF + + + CC3S + desc CC3S + 1 + 0 + read-write + + + IC3PSC + desc IC3PSC + 3 + 2 + read-write + + + IC3F + desc IC3F + 7 + 4 + read-write + + + CC4S + desc CC4S + 9 + 8 + read-write + + + IC4PSC + desc IC4PSC + 11 + 10 + read-write + + + IC4F + desc IC4F + 15 + 12 + read-write + + + + + CCER + desc CCER + 0x20 + 32 + read-write + 0x0 + 0x3333 + + + CC1E + desc CC1E + 0 + 0 + read-write + + + CC1P + desc CC1P + 1 + 1 + read-write + + + CC2E + desc CC2E + 4 + 4 + read-write + + + CC2P + desc CC2P + 5 + 5 + read-write + + + CC3E + desc CC3E + 8 + 8 + read-write + + + CC3P + desc CC3P + 9 + 9 + read-write + + + CC4E + desc CC4E + 12 + 12 + read-write + + + CC4P + desc CC4P + 13 + 13 + read-write + + + + + CNT + desc CNT + 0x24 + 32 + read-write + 0x0 + 0xFFFF + + + CNT + desc CNT + 15 + 0 + read-write + + + + + PSC + desc PSC + 0x28 + 32 + read-write + 0x0 + 0xFFFF + + + PSC + desc PSC + 15 + 0 + read-write + + + + + ARR + desc ARR + 0x2C + 32 + read-write + 0xFFFF + 0xFFFF + + + ARR + desc ARR + 15 + 0 + read-write + + + + + CCR1 + desc CCR1 + 0x34 + 32 + read-write + 0x0 + 0xFFFF + + + CCR1 + desc CCR1 + 15 + 0 + read-write + + + + + CCR2 + desc CCR2 + 0x38 + 32 + read-write + 0x0 + 0xFFFF + + + CCR2 + desc CCR2 + 15 + 0 + read-write + + + + + CCR3 + desc CCR3 + 0x3C + 32 + read-write + 0x0 + 0xFFFF + + + CCR3 + desc CCR3 + 15 + 0 + read-write + + + + + CCR4 + desc CCR4 + 0x40 + 32 + read-write + 0x0 + 0xFFFF + + + CCR4 + desc CCR4 + 15 + 0 + read-write + + + + + DCR + desc DCR + 0x48 + 32 + read-write + 0x0 + 0x1F1F + + + DBA + desc DBA + 4 + 0 + read-write + + + DBL + desc DBL + 12 + 8 + read-write + + + + + DMAR + desc DMAR + 0x4C + 32 + read-write + 0x0 + 0xFFFF + + + DMAB + desc DMAB + 15 + 0 + read-write + + + + + + + TIM3 + General purpose timer + TIM + 0x40000400 + + 0x00 + 0x400 + registers + + + TIM3 + TIM3 global Interrupt + 16 + + + + CR1 + desc CR1 + 0x0 + 32 + read-write + 0x0 + 0x3FF + + + CEN + desc CEN + 0 + 0 + read-write + + + UDIS + desc UDIS + 1 + 1 + read-write + + + URS + desc URS + 2 + 2 + read-write + + + OPM + desc OPM + 3 + 3 + read-write + + + DIR + desc DIR + 4 + 4 + read-write + + + CMS + desc CMS + 6 + 5 + read-write + + + ARPE + desc ARPE + 7 + 7 + read-write + + + CKD + desc CKD + 9 + 8 + read-write + + + + + CR2 + desc CR2 + 0x4 + 32 + read-write + 0x0 + 0xF8 + + + CCDS + desc CCDS + 3 + 3 + read-write + + + MMS + desc MMS + 6 + 4 + read-write + + + TI1S + desc TI1S + 7 + 7 + read-write + + + + + SMCR + desc SMCR + 0x8 + 32 + read-write + 0x0 + 0xFFF7 + + + SMS + desc SMS + 2 + 0 + read-write + + + TS + desc TS + 6 + 4 + read-write + + + MSM + desc MSM + 7 + 7 + read-write + + + ETF + desc ETF + 11 + 8 + read-write + + + ETPS + desc ETPS + 13 + 12 + read-write + + + ECE + desc ECE + 14 + 14 + read-write + + + ETP + desc ETP + 15 + 15 + read-write + + + + + DIER + desc DIER + 0xC + 32 + read-write + 0x0 + 0x5F5F + + + UIE + desc UIE + 0 + 0 + read-write + + + CC1IE + desc CC1IE + 1 + 1 + read-write + + + CC2IE + desc CC2IE + 2 + 2 + read-write + + + CC3IE + desc CC3IE + 3 + 3 + read-write + + + CC4IE + desc CC4IE + 4 + 4 + read-write + + + TIE + desc TIE + 6 + 6 + read-write + + + UDE + desc UDE + 8 + 8 + read-write + + + CC1DE + desc CC1DE + 9 + 9 + read-write + + + CC2DE + desc CC2DE + 10 + 10 + read-write + + + CC3DE + desc CC3DE + 11 + 11 + read-write + + + CC4DE + desc CC4DE + 12 + 12 + read-write + + + TDE + desc TDE + 14 + 14 + read-write + + + + + SR + desc SR + 0x10 + 32 + read-write + 0x0 + 0x1E5F + + + UIF + desc UIF + 0 + 0 + read-write + + + CC1IF + desc CC1IF + 1 + 1 + read-write + + + CC2IF + desc CC2IF + 2 + 2 + read-write + + + CC3IF + desc CC3IF + 3 + 3 + read-write + + + CC4IF + desc CC4IF + 4 + 4 + read-write + + + COMIF + desc COMIF + 5 + 5 + read-write + + + TIF + desc TIF + 6 + 6 + read-write + + + BIF + desc BIF + 7 + 7 + read-write + + + CC1OF + desc CC1OF + 9 + 9 + read-write + + + CC2OF + desc CC2OF + 10 + 10 + read-write + + + CC3OF + desc CC3OF + 11 + 11 + read-write + + + CC4OF + desc CC4OF + 12 + 12 + read-write + + + IC1IR + desc IC1IR + 16 + 16 + read-write + + + IC2IR + desc IC2IR + 17 + 17 + read-write + + + IC3IR + desc IC3IR + 18 + 18 + read-write + + + IC4IR + desc IC3IR + 19 + 19 + read-write + + + IC1IF + desc IC1IF + 20 + 20 + read-write + + + IC2IF + desc IC2IF + 21 + 21 + read-write + + + IC3IF + desc IC3IF + 22 + 22 + read-write + + + IC4IF + desc IC3IF + 23 + 23 + read-write + + + + + EGR + desc EGR + 0x14 + 32 + write-only + 0x0 + 0x5F + + + UG + desc UG + 0 + 0 + write-only + + + CC1G + Capture/Compare 1 Generation + 1 + 1 + write-only + + + CC2G + desc CC2G + 2 + 2 + write-only + + + CC3G + desc CC3G + 3 + 3 + write-only + + + CC4G + desc CC4G + 4 + 4 + write-only + + + TG + desc TG + 6 + 6 + write-only + + + + + CCMR1_OUTPUT + desc CCMR1:OUTPUT + 0x18 + 32 + read-write + 0x0 + 0xFFFF + + + CC1S + desc CC1S + 1 + 0 + read-write + + + OC1FE + desc OC1FE + 2 + 2 + read-write + + + OC1PE + desc OC1PE + 3 + 3 + read-write + + + OC1M + desc OC1M + 6 + 4 + read-write + + + OC1CE + desc OC1CE + 7 + 7 + read-write + + + CC2S + desc CC2S + 9 + 8 + read-write + + + OC2FE + desc OC2FE + 10 + 10 + read-write + + + OC2PE + desc OC2PE + 11 + 11 + read-write + + + OC2M + desc OC2M + 14 + 12 + read-write + + + OC2CE + desc OC2CE + 15 + 15 + read-write + + + + + CCMR1_INPUT + desc CCMR1:INPUT + CCMR1_OUTPUT + 0x18 + 32 + read-write + 0x0 + 0xFFFF + + + CC1S + desc CC1S + 1 + 0 + read-write + + + IC1PSC + desc IC1PSC + 3 + 2 + read-write + + + IC1F + desc IC1F + 7 + 4 + read-write + + + CC2S + desc CC2S + 9 + 8 + read-write + + + IC2PSC + desc IC2PSC + 11 + 10 + read-write + + + IC2F + desc IC2F + 15 + 12 + read-write + + + + + CCMR2_OUTPUT + desc CCMR2:OUTPUT + 0x1C + 32 + read-write + 0x0 + 0xFFFF + + + CC3S + desc CC3S + 1 + 0 + read-write + + + OC3FE + desc OC3FE + 2 + 2 + read-write + + + OC3PE + desc OC3PE + 3 + 3 + read-write + + + OC3M + desc OC3M + 6 + 4 + read-write + + + OC3CE + desc OC3CE + 7 + 7 + read-write + + + CC4S + desc CC4S + 9 + 8 + read-write + + + OC4FE + desc OC4FE + 10 + 10 + read-write + + + OC4PE + desc OC4PE + 11 + 11 + read-write + + + OC4M + desc OC4M + 14 + 12 + read-write + + + OC4CE + desc OC4CE + 15 + 15 + read-write + + + + + CCMR2_INPUT + desc CCMR2:INPUT + CCMR2_OUTPUT + 0x1C + 32 + read-write + 0x0 + 0xFFFF + + + CC3S + desc CC3S + 1 + 0 + read-write + + + IC3PSC + desc IC3PSC + 3 + 2 + read-write + + + IC3F + desc IC3F + 7 + 4 + read-write + + + CC4S + desc CC4S + 9 + 8 + read-write + + + IC4PSC + desc IC4PSC + 11 + 10 + read-write + + + IC4F + desc IC4F + 15 + 12 + read-write + + + + + CCER + desc CCER + 0x20 + 32 + read-write + 0x0 + 0x3333 + + + CC1E + desc CC1E + 0 + 0 + read-write + + + CC1P + desc CC1P + 1 + 1 + read-write + + + CC2E + desc CC2E + 4 + 4 + read-write + + + CC2P + desc CC2P + 5 + 5 + read-write + + + CC3E + desc CC3E + 8 + 8 + read-write + + + CC3P + desc CC3P + 9 + 9 + read-write + + + CC4E + desc CC4E + 12 + 12 + read-write + + + CC4P + desc CC4P + 13 + 13 + read-write + + + + + CNT + desc CNT + 0x24 + 32 + read-write + 0x0 + 0xFFFF + + + CNT + desc CNT + 15 + 0 + read-write + + + + + PSC + desc PSC + 0x28 + 32 + read-write + 0x0 + 0xFFFF + + + PSC + desc PSC + 15 + 0 + read-write + + + + + ARR + desc ARR + 0x2C + 32 + read-write + 0xFFFF + 0xFFFF + + + ARR + desc ARR + 15 + 0 + read-write + + + + + CCR1 + desc CCR1 + 0x34 + 32 + read-write + 0x0 + 0xFFFF + + + CCR1 + desc CCR1 + 15 + 0 + read-write + + + + + CCR2 + desc CCR2 + 0x38 + 32 + read-write + 0x0 + 0xFFFF + + + CCR2 + desc CCR2 + 15 + 0 + read-write + + + + + CCR3 + desc CCR3 + 0x3C + 32 + read-write + 0x0 + 0xFFFF + + + CCR3 + desc CCR3 + 15 + 0 + read-write + + + + + CCR4 + desc CCR4 + 0x40 + 32 + read-write + 0x0 + 0xFFFF + + + CCR4 + desc CCR4 + 15 + 0 + read-write + + + + + DCR + desc DCR + 0x48 + 32 + read-write + 0x0 + 0x1F1F + + + DBA + desc DBA + 4 + 0 + read-write + + + DBL + desc DBL + 12 + 8 + read-write + + + + + DMAR + desc DMAR + 0x4C + 32 + read-write + 0x0 + 0xFFFF + + + DMAB + desc DMAB + 15 + 0 + read-write + + + + + + + TIM6 + desc TIM + TIM + 0x40001000 + + 0x0 + 0x400 + registers + + + TIM6_LPTIM1_DAC + TIM6, LPTIM1, DAC global Interrupts + 17 + + + + CR1 + desc CR1 + 0x0 + 32 + read-write + 0x0 + 0x3FF + + + CEN + desc CEN + 0 + 0 + read-write + + + UDIS + desc UDIS + 1 + 1 + read-write + + + URS + desc URS + 2 + 2 + read-write + + + OPM + desc OPM + 3 + 3 + read-write + + + DIR + desc DIR + 4 + 4 + read-write + + + CMS + desc CMS + 6 + 5 + read-write + + + ARPE + desc ARPE + 7 + 7 + read-write + + + CKD + desc CKD + 9 + 8 + read-write + + + + + CR2 + desc CR2 + 0x4 + 32 + read-write + 0x0 + 0xF8 + + + CCDS + desc CCDS + 3 + 3 + read-write + + + MMS + desc MMS + 6 + 4 + read-write + + + TI1S + desc TI1S + 7 + 7 + read-write + + + + + DIER + desc DIER + 0xC + 32 + read-write + 0x0 + 0x5F5F + + + UIE + desc UIE + 0 + 0 + read-write + + + CC1IE + desc CC1IE + 1 + 1 + read-write + + + CC2IE + desc CC2IE + 2 + 2 + read-write + + + CC3IE + desc CC3IE + 3 + 3 + read-write + + + CC4IE + desc CC4IE + 4 + 4 + read-write + + + TIE + desc TIE + 6 + 6 + read-write + + + UDE + desc UDE + 8 + 8 + read-write + + + CC1DE + desc CC1DE + 9 + 9 + read-write + + + CC2DE + desc CC2DE + 10 + 10 + read-write + + + CC3DE + desc CC3DE + 11 + 11 + read-write + + + CC4DE + desc CC4DE + 12 + 12 + read-write + + + TDE + desc TDE + 14 + 14 + read-write + + + + + SR + desc SR + 0x10 + 32 + read-write + 0x0 + 0x1E5F + + + UIF + desc UIF + 0 + 0 + read-write + + + CC1IF + desc CC1IF + 1 + 1 + read-write + + + CC2IF + desc CC2IF + 2 + 2 + read-write + + + CC3IF + desc CC3IF + 3 + 3 + read-write + + + CC4IF + desc CC4IF + 4 + 4 + read-write + + + COMIF + desc COMIF + 5 + 5 + read-write + + + TIF + desc TIF + 6 + 6 + read-write + + + BIF + desc BIF + 7 + 7 + read-write + + + CC1OF + desc CC1OF + 9 + 9 + read-write + + + CC2OF + desc CC2OF + 10 + 10 + read-write + + + CC3OF + desc CC3OF + 11 + 11 + read-write + + + CC4OF + desc CC4OF + 12 + 12 + read-write + + + IC1IR + desc IC1IR + 16 + 16 + read-write + + + IC2IR + desc IC2IR + 17 + 17 + read-write + + + IC3IR + desc IC3IR + 18 + 18 + read-write + + + IC4IR + desc IC3IR + 19 + 19 + read-write + + + IC1IF + desc IC1IF + 20 + 20 + read-write + + + IC2IF + desc IC2IF + 21 + 21 + read-write + + + IC3IF + desc IC3IF + 22 + 22 + read-write + + + IC4IF + desc IC3IF + 23 + 23 + read-write + + + + + EGR + desc EGR + 0x14 + 32 + write-only + 0x0 + 0x5F + + + UG + desc UG + 0 + 0 + write-only + + + CC1G + Capture/Compare 1 Generation + 1 + 1 + write-only + + + CC2G + desc CC2G + 2 + 2 + write-only + + + CC3G + desc CC3G + 3 + 3 + write-only + + + CC4G + desc CC4G + 4 + 4 + write-only + + + TG + desc TG + 6 + 6 + write-only + + + + + CNT + desc CNT + 0x24 + 32 + read-write + 0x0 + 0xFFFF + + + CNT + desc CNT + 15 + 0 + read-write + + + + + PSC + desc PSC + 0x28 + 32 + read-write + 0x0 + 0xFFFF + + + PSC + desc PSC + 15 + 0 + read-write + + + + + ARR + desc ARR + 0x2C + 32 + read-write + 0xFFFF + 0xFFFF + + + ARR + desc ARR + 15 + 0 + read-write + + + + + + + TIM7 + desc TIM + TIM + 0x40001400 + + 0x0 + 0x400 + registers + + + TIM7 + TIM7 global Interrupt + 18 + + + + TIM14 + General purpose timer + TIM + 0x40002000 + + 0x00 + 0x400 + registers + + + TIM14 + TIM14 global Interrupt + 19 + + + + CR1 + desc CR1 + 0x0 + 32 + read-write + 0x0 + 0x3FF + + + CEN + desc CEN + 0 + 0 + read-write + + + UDIS + desc UDIS + 1 + 1 + read-write + + + URS + desc URS + 2 + 2 + read-write + + + OPM + desc OPM + 3 + 3 + read-write + + + DIR + desc DIR + 4 + 4 + read-write + + + CMS + desc CMS + 6 + 5 + read-write + + + ARPE + desc ARPE + 7 + 7 + read-write + + + CKD + desc CKD + 9 + 8 + read-write + + + + + DIER + desc DIER + 0xC + 32 + read-write + 0x0 + 0x5F5F + + + UIE + desc UIE + 0 + 0 + read-write + + + CC1IE + desc CC1IE + 1 + 1 + read-write + + + CC2IE + desc CC2IE + 2 + 2 + read-write + + + CC3IE + desc CC3IE + 3 + 3 + read-write + + + CC4IE + desc CC4IE + 4 + 4 + read-write + + + TIE + desc TIE + 6 + 6 + read-write + + + UDE + desc UDE + 8 + 8 + read-write + + + CC1DE + desc CC1DE + 9 + 9 + read-write + + + CC2DE + desc CC2DE + 10 + 10 + read-write + + + CC3DE + desc CC3DE + 11 + 11 + read-write + + + CC4DE + desc CC4DE + 12 + 12 + read-write + + + TDE + desc TDE + 14 + 14 + read-write + + + + + SR + desc SR + 0x10 + 32 + read-write + 0x0 + 0x1E5F + + + UIF + desc UIF + 0 + 0 + read-write + + + CC1IF + desc CC1IF + 1 + 1 + read-write + + + CC2IF + desc CC2IF + 2 + 2 + read-write + + + CC3IF + desc CC3IF + 3 + 3 + read-write + + + CC4IF + desc CC4IF + 4 + 4 + read-write + + + TIF + desc TIF + 6 + 6 + read-write + + + CC1OF + desc CC1OF + 9 + 9 + read-write + + + CC2OF + desc CC2OF + 10 + 10 + read-write + + + CC3OF + desc CC3OF + 11 + 11 + read-write + + + CC4OF + desc CC4OF + 12 + 12 + read-write + + + + + EGR + desc EGR + 0x14 + 32 + write-only + 0x0 + 0x5F + + + UG + desc UG + 0 + 0 + write-only + + + CC1G + Capture/Compare 1 Generation + 1 + 1 + write-only + + + CC2G + desc CC2G + 2 + 2 + write-only + + + CC3G + desc CC3G + 3 + 3 + write-only + + + CC4G + desc CC4G + 4 + 4 + write-only + + + TG + desc TG + 6 + 6 + write-only + + + + + CCMR1_OUTPUT + desc CCMR1:OUTPUT + 0x18 + 32 + read-write + 0x0 + 0xFFFF + + + CC1S + desc CC1S + 1 + 0 + read-write + + + OC1FE + desc OC1FE + 2 + 2 + read-write + + + OC1PE + desc OC1PE + 3 + 3 + read-write + + + OC1M + desc OC1M + 6 + 4 + read-write + + + OC1CE + desc OC1CE + 7 + 7 + read-write + + + CC2S + desc CC2S + 9 + 8 + read-write + + + OC2FE + desc OC2FE + 10 + 10 + read-write + + + OC2PE + desc OC2PE + 11 + 11 + read-write + + + OC2M + desc OC2M + 14 + 12 + read-write + + + OC2CE + desc OC2CE + 15 + 15 + read-write + + + + + CCMR1_INPUT + desc CCMR1:INPUT + CCMR1_OUTPUT + 0x18 + 32 + read-write + 0x0 + 0xFFFF + + + CC1S + desc CC1S + 1 + 0 + read-write + + + IC1PSC + desc IC1PSC + 3 + 2 + read-write + + + IC1F + desc IC1F + 7 + 4 + read-write + + + CC2S + desc CC2S + 9 + 8 + read-write + + + IC2PSC + desc IC2PSC + 11 + 10 + read-write + + + IC2F + desc IC2F + 15 + 12 + read-write + + + + + CCER + desc CCER + 0x20 + 32 + read-write + 0x0 + 0x3333 + + + CC1E + desc CC1E + 0 + 0 + read-write + + + CC1P + desc CC1P + 1 + 1 + read-write + + + CC2E + desc CC2E + 4 + 4 + read-write + + + CC2P + desc CC2P + 5 + 5 + read-write + + + CC3E + desc CC3E + 8 + 8 + read-write + + + CC3P + desc CC3P + 9 + 9 + read-write + + + CC4E + desc CC4E + 12 + 12 + read-write + + + CC4P + desc CC4P + 13 + 13 + read-write + + + + + CNT + desc CNT + 0x24 + 32 + read-write + 0x0 + 0xFFFF + + + CNT + desc CNT + 15 + 0 + read-write + + + + + PSC + desc PSC + 0x28 + 32 + read-write + 0x0 + 0xFFFF + + + PSC + desc PSC + 15 + 0 + read-write + + + + + ARR + desc ARR + 0x2C + 32 + read-write + 0xFFFF + 0xFFFF + + + ARR + desc ARR + 15 + 0 + read-write + + + + + CCR1 + desc CCR1 + 0x34 + 32 + read-write + 0x0 + 0xFFFF + + + CCR1 + desc CCR1 + 15 + 0 + read-write + + + + + OR + desc OR + 0x50 + 32 + read-write + 0x0 + + + TI1_RMP + desc TI1_RMP + 1 + 0 + read-write + + + + + + + TIM15 + 0x40014000 + + 0x0 + 0x400 + registers + + + TIM15 + TIM15 global Interrupt + 20 + + + + CR1 + desc CR1 + 0x0 + 32 + read-write + 0x0 + 0x3FF + + + CEN + desc CEN + 0 + 0 + read-write + + + UDIS + desc UDIS + 1 + 1 + read-write + + + URS + desc URS + 2 + 2 + read-write + + + OPM + desc OPM + 3 + 3 + read-write + + + DIR + desc DIR + 4 + 4 + read-write + + + CMS + desc CMS + 6 + 5 + read-write + + + ARPE + desc ARPE + 7 + 7 + read-write + + + CKD + desc CKD + 9 + 8 + read-write + + + + + CR2 + desc CR2 + 0x4 + 32 + read-write + 0x0 + 0xF8 + + + CCDS + desc CCDS + 3 + 3 + read-write + + + MMS + desc MMS + 6 + 4 + read-write + + + TI1S + desc TI1S + 7 + 7 + read-write + + + + + SMCR + desc SMCR + 0x8 + 32 + read-write + 0x0 + 0xFFF7 + + + SMS + desc SMS + 2 + 0 + read-write + + + TS + desc TS + 6 + 4 + read-write + + + MSM + desc MSM + 7 + 7 + read-write + + + ETF + desc ETF + 11 + 8 + read-write + + + ETPS + desc ETPS + 13 + 12 + read-write + + + ECE + desc ECE + 14 + 14 + read-write + + + ETP + desc ETP + 15 + 15 + read-write + + + + + DIER + desc DIER + 0xC + 32 + read-write + 0x0 + 0x5F5F + + + UIE + desc UIE + 0 + 0 + read-write + + + CC1IE + desc CC1IE + 1 + 1 + read-write + + + CC2IE + desc CC2IE + 2 + 2 + read-write + + + CC3IE + desc CC3IE + 3 + 3 + read-write + + + CC4IE + desc CC4IE + 4 + 4 + read-write + + + TIE + desc TIE + 6 + 6 + read-write + + + UDE + desc UDE + 8 + 8 + read-write + + + CC1DE + desc CC1DE + 9 + 9 + read-write + + + CC2DE + desc CC2DE + 10 + 10 + read-write + + + CC3DE + desc CC3DE + 11 + 11 + read-write + + + CC4DE + desc CC4DE + 12 + 12 + read-write + + + TDE + desc TDE + 14 + 14 + read-write + + + + + SR + desc SR + 0x10 + 32 + read-write + 0x0 + 0x1E5F + + + UIF + desc UIF + 0 + 0 + read-write + + + CC1IF + desc CC1IF + 1 + 1 + read-write + + + CC2IF + desc CC2IF + 2 + 2 + read-write + + + CC3IF + desc CC3IF + 3 + 3 + read-write + + + CC4IF + desc CC4IF + 4 + 4 + read-write + + + COMIF + desc COMIF + 5 + 5 + read-write + + + TIF + desc TIF + 6 + 6 + read-write + + + BIF + desc BIF + 7 + 7 + read-write + + + CC1OF + desc CC1OF + 9 + 9 + read-write + + + CC2OF + desc CC2OF + 10 + 10 + read-write + + + CC3OF + desc CC3OF + 11 + 11 + read-write + + + CC4OF + desc CC4OF + 12 + 12 + read-write + + + IC1IR + desc IC1IR + 16 + 16 + read-write + + + IC2IR + desc IC2IR + 17 + 17 + read-write + + + IC3IR + desc IC3IR + 18 + 18 + read-write + + + IC4IR + desc IC3IR + 19 + 19 + read-write + + + IC1IF + desc IC1IF + 20 + 20 + read-write + + + IC2IF + desc IC2IF + 21 + 21 + read-write + + + IC3IF + desc IC3IF + 22 + 22 + read-write + + + IC4IF + desc IC3IF + 23 + 23 + read-write + + + + + EGR + desc EGR + 0x14 + 32 + write-only + 0x0 + 0x5F + + + UG + desc UG + 0 + 0 + write-only + + + CC1G + Capture/Compare 1 Generation + 1 + 1 + write-only + + + CC2G + desc CC2G + 2 + 2 + write-only + + + CC3G + desc CC3G + 3 + 3 + write-only + + + CC4G + desc CC4G + 4 + 4 + write-only + + + TG + desc TG + 6 + 6 + write-only + + + + + CCMR1_OUTPUT + desc CCMR1:OUTPUT + 0x18 + 32 + read-write + 0x0 + 0xFFFF + + + CC1S + desc CC1S + 1 + 0 + read-write + + + OC1FE + desc OC1FE + 2 + 2 + read-write + + + OC1PE + desc OC1PE + 3 + 3 + read-write + + + OC1M + desc OC1M + 6 + 4 + read-write + + + OC1CE + desc OC1CE + 7 + 7 + read-write + + + CC2S + desc CC2S + 9 + 8 + read-write + + + OC2FE + desc OC2FE + 10 + 10 + read-write + + + OC2PE + desc OC2PE + 11 + 11 + read-write + + + OC2M + desc OC2M + 14 + 12 + read-write + + + OC2CE + desc OC2CE + 15 + 15 + read-write + + + + + CCMR1_INPUT + desc CCMR1:INPUT + CCMR1_OUTPUT + 0x18 + 32 + read-write + 0x0 + 0xFFFF + + + CC1S + desc CC1S + 1 + 0 + read-write + + + IC1PSC + desc IC1PSC + 3 + 2 + read-write + + + IC1F + desc IC1F + 7 + 4 + read-write + + + CC2S + desc CC2S + 9 + 8 + read-write + + + IC2PSC + desc IC2PSC + 11 + 10 + read-write + + + IC2F + desc IC2F + 15 + 12 + read-write + + + + + CCER + desc CCER + 0x20 + 32 + read-write + 0x0 + 0x3333 + + + CC1E + desc CC1E + 0 + 0 + read-write + + + CC1P + desc CC1P + 1 + 1 + read-write + + + CC2E + desc CC2E + 4 + 4 + read-write + + + CC2P + desc CC2P + 5 + 5 + read-write + + + CC3E + desc CC3E + 8 + 8 + read-write + + + CC3P + desc CC3P + 9 + 9 + read-write + + + CC4E + desc CC4E + 12 + 12 + read-write + + + CC4P + desc CC4P + 13 + 13 + read-write + + + + + CNT + desc CNT + 0x24 + 32 + read-write + 0x0 + 0xFFFF + + + CNT + desc CNT + 15 + 0 + read-write + + + + + PSC + desc PSC + 0x28 + 32 + read-write + 0x0 + 0xFFFF + + + PSC + desc PSC + 15 + 0 + read-write + + + + + ARR + desc ARR + 0x2C + 32 + read-write + 0xFFFF + 0xFFFF + + + ARR + desc ARR + 15 + 0 + read-write + + + + + RCR + desc RCR + 0x30 + 32 + read-write + 0xFFFF + 0xFFFF + + + REP + desc REP + 7 + 0 + read-write + + + + + CCR1 + desc CCR1 + 0x34 + 32 + read-write + 0x0 + 0xFFFF + + + CCR1 + desc CCR1 + 15 + 0 + read-write + + + + + CCR2 + desc CCR2 + 0x38 + 32 + read-write + 0x0 + 0xFFFF + + + CCR2 + desc CCR2 + 15 + 0 + read-write + + + + + BDTR + desc BDTR + 0x44 + 32 + read-write + 0x0 + 0xFFFF + + + DTG + desc DTG + 7 + 0 + read-write + + + LOCK + desc LOCK + 9 + 8 + read-write + + + OSSI + desc OSSI + 10 + 10 + read-write + + + OSSR + desc OSSR + 11 + 11 + read-write + + + BKE + desc BKE + 12 + 12 + read-write + + + BKP + desc BKP + 13 + 13 + read-write + + + AOE + desc AOE + 14 + 14 + read-write + + + MOE + desc MOE + 15 + 15 + read-write + + + + + DCR + desc DCR + 0x48 + 32 + read-write + 0x0 + 0x1F1F + + + DBA + desc DBA + 4 + 0 + read-write + + + DBL + desc DBL + 12 + 8 + read-write + + + + + DMAR + desc DMAR + 0x4C + 32 + read-write + 0x0 + 0xFFFF + + + DMAB + desc DMAB + 15 + 0 + read-write + + + + + + + TIM16 + General purpose timer + TIM + 0x40014400 + + 0x00 + 0x400 + registers + + + TIM16 + TIM16 global Interrupt + 21 + + + + CR1 + desc CR1 + 0x0 + 32 + read-write + 0x0 + 0x3FF + + + CEN + desc CEN + 0 + 0 + read-write + + + UDIS + desc UDIS + 1 + 1 + read-write + + + URS + desc URS + 2 + 2 + read-write + + + OPM + desc OPM + 3 + 3 + read-write + + + DIR + desc DIR + 4 + 4 + read-write + + + CMS + desc CMS + 6 + 5 + read-write + + + ARPE + desc ARPE + 7 + 7 + read-write + + + CKD + desc CKD + 9 + 8 + read-write + + + + + CR2 + desc CR2 + 0x4 + 32 + read-write + 0x0 + 0xF8 + + + CCDS + desc CCDS + 3 + 3 + read-write + + + MMS + desc MMS + 6 + 4 + read-write + + + TI1S + desc TI1S + 7 + 7 + read-write + + + + + DIER + desc DIER + 0xC + 32 + read-write + 0x0 + 0x5F5F + + + UIE + desc UIE + 0 + 0 + read-write + + + CC1IE + desc CC1IE + 1 + 1 + read-write + + + CC2IE + desc CC2IE + 2 + 2 + read-write + + + CC3IE + desc CC3IE + 3 + 3 + read-write + + + CC4IE + desc CC4IE + 4 + 4 + read-write + + + TIE + desc TIE + 6 + 6 + read-write + + + UDE + desc UDE + 8 + 8 + read-write + + + CC1DE + desc CC1DE + 9 + 9 + read-write + + + CC2DE + desc CC2DE + 10 + 10 + read-write + + + CC3DE + desc CC3DE + 11 + 11 + read-write + + + CC4DE + desc CC4DE + 12 + 12 + read-write + + + TDE + desc TDE + 14 + 14 + read-write + + + + + SR + desc SR + 0x10 + 32 + read-write + 0x0 + 0x1E5F + + + UIF + desc UIF + 0 + 0 + read-write + + + CC1IF + desc CC1IF + 1 + 1 + read-write + + + CC2IF + desc CC2IF + 2 + 2 + read-write + + + CC3IF + desc CC3IF + 3 + 3 + read-write + + + CC4IF + desc CC4IF + 4 + 4 + read-write + + + COMIF + desc COMIF + 5 + 5 + read-write + + + TIF + desc TIF + 6 + 6 + read-write + + + BIF + desc BIF + 7 + 7 + read-write + + + CC1OF + desc CC1OF + 9 + 9 + read-write + + + CC2OF + desc CC2OF + 10 + 10 + read-write + + + CC3OF + desc CC3OF + 11 + 11 + read-write + + + CC4OF + desc CC4OF + 12 + 12 + read-write + + + IC1IR + desc IC1IR + 16 + 16 + read-write + + + IC2IR + desc IC2IR + 17 + 17 + read-write + + + IC3IR + desc IC3IR + 18 + 18 + read-write + + + IC4IR + desc IC3IR + 19 + 19 + read-write + + + IC1IF + desc IC1IF + 20 + 20 + read-write + + + IC2IF + desc IC2IF + 21 + 21 + read-write + + + IC3IF + desc IC3IF + 22 + 22 + read-write + + + IC4IF + desc IC3IF + 23 + 23 + read-write + + + + + EGR + desc EGR + 0x14 + 32 + write-only + 0x0 + 0x5F + + + UG + desc UG + 0 + 0 + write-only + + + CC1G + Capture/Compare 1 Generation + 1 + 1 + write-only + + + CC2G + desc CC2G + 2 + 2 + write-only + + + CC3G + desc CC3G + 3 + 3 + write-only + + + CC4G + desc CC4G + 4 + 4 + write-only + + + TG + desc TG + 6 + 6 + write-only + + + + + CCMR1_OUTPUT + desc CCMR1:OUTPUT + 0x18 + 32 + read-write + 0x0 + 0xFFFF + + + CC1S + desc CC1S + 1 + 0 + read-write + + + OC1FE + desc OC1FE + 2 + 2 + read-write + + + OC1PE + desc OC1PE + 3 + 3 + read-write + + + OC1M + desc OC1M + 6 + 4 + read-write + + + OC1CE + desc OC1CE + 7 + 7 + read-write + + + CC2S + desc CC2S + 9 + 8 + read-write + + + OC2FE + desc OC2FE + 10 + 10 + read-write + + + OC2PE + desc OC2PE + 11 + 11 + read-write + + + OC2M + desc OC2M + 14 + 12 + read-write + + + OC2CE + desc OC2CE + 15 + 15 + read-write + + + + + CCMR1_INPUT + desc CCMR1:INPUT + CCMR1_OUTPUT + 0x18 + 32 + read-write + 0x0 + 0xFFFF + + + CC1S + desc CC1S + 1 + 0 + read-write + + + IC1PSC + desc IC1PSC + 3 + 2 + read-write + + + IC1F + desc IC1F + 7 + 4 + read-write + + + CC2S + desc CC2S + 9 + 8 + read-write + + + IC2PSC + desc IC2PSC + 11 + 10 + read-write + + + IC2F + desc IC2F + 15 + 12 + read-write + + + + + CCER + desc CCER + 0x20 + 32 + read-write + 0x0 + 0x3333 + + + CC1E + desc CC1E + 0 + 0 + read-write + + + CC1P + desc CC1P + 1 + 1 + read-write + + + CC2E + desc CC2E + 4 + 4 + read-write + + + CC2P + desc CC2P + 5 + 5 + read-write + + + CC3E + desc CC3E + 8 + 8 + read-write + + + CC3P + desc CC3P + 9 + 9 + read-write + + + CC4E + desc CC4E + 12 + 12 + read-write + + + CC4P + desc CC4P + 13 + 13 + read-write + + + + + CNT + desc CNT + 0x24 + 32 + read-write + 0x0 + 0xFFFF + + + CNT + desc CNT + 15 + 0 + read-write + + + + + PSC + desc PSC + 0x28 + 32 + read-write + 0x0 + 0xFFFF + + + PSC + desc PSC + 15 + 0 + read-write + + + + + ARR + desc ARR + 0x2C + 32 + read-write + 0xFFFF + 0xFFFF + + + ARR + desc ARR + 15 + 0 + read-write + + + + + RCR + desc RCR + 0x30 + 32 + read-write + 0xFFFF + 0xFFFF + + + REP + desc REP + 7 + 0 + read-write + + + + + CCR1 + desc CCR1 + 0x34 + 32 + read-write + 0x0 + 0xFFFF + + + CCR1 + desc CCR1 + 15 + 0 + read-write + + + + + BDTR + desc BDTR + 0x44 + 32 + read-write + 0x0 + 0xFFFF + + + DTG + desc DTG + 7 + 0 + read-write + + + LOCK + desc LOCK + 9 + 8 + read-write + + + OSSI + desc OSSI + 10 + 10 + read-write + + + OSSR + desc OSSR + 11 + 11 + read-write + + + BKE + desc BKE + 12 + 12 + read-write + + + BKP + desc BKP + 13 + 13 + read-write + + + AOE + desc AOE + 14 + 14 + read-write + + + MOE + desc MOE + 15 + 15 + read-write + + + + + DCR + desc DCR + 0x48 + 32 + read-write + 0x0 + 0x1F1F + + + DBA + desc DBA + 4 + 0 + read-write + + + DBL + desc DBL + 12 + 8 + read-write + + + + + DMAR + desc DMAR + 0x4C + 32 + read-write + 0x0 + 0xFFFF + + + DMAB + desc DMAB + 15 + 0 + read-write + + + + + + + TIM17 + 0x40014800 + + TIM17 + TIM17 global Interrupt + 22 + + + + USART1 + + Universal synchronous asynchronous receiver + transmitter + + USART + 0x40013800 + + 0x0 + 0x400 + registers + + + USART1 + USART1 global Interrupt + 27 + + + + SR + desc SR + 0x0 + 32 + read-write + 0xC0 + + + PE + desc PE + 0 + 0 + read-only + + + FE + desc FE + 1 + 1 + read-only + + + NE + desc NE + 2 + 2 + read-only + + + ORE + desc ORE + 3 + 3 + read-only + + + IDLE + desc IDLE + 4 + 4 + read-only + + + RXNE + desc RXNE + 5 + 5 + read-write + + + TC + desc TC + 6 + 6 + read-write + + + TXE + desc TXE + 7 + 7 + read-only + + + LBD + desc LBD + 8 + 8 + read-write + + + CTS + desc CTS + 9 + 9 + read-write + + + ABRF + desc ABRF + 10 + 10 + read-only + + + ABRE + desc ABRE + 11 + 11 + read-only + + + ABRRQ + desc ABRRQ + 12 + 12 + write-only + + + + + DR + desc DR + 0x4 + 32 + read-write + 0x0 + + + DR + desc DR + 8 + 0 + read-write + + + + + BRR + desc BRR + 0x8 + 32 + read-write + 0x0 + + + DIV_FRACTION + desc DIV_Fraction + 3 + 0 + read-write + + + DIV_MANTISSA + desc DIV_Mantissa + 15 + 4 + read-write + + + + + CR1 + desc CR1 + 0xC + 32 + read-write + 0x0 + + + SBK + desc SBK + 0 + 0 + read-write + + + RWU + desc RWU + 1 + 1 + read-write + + + RE + desc RE + 2 + 2 + read-write + + + TE + desc TE + 3 + 3 + read-write + + + IDLEIE + desc IDLEIE + 4 + 4 + read-write + + + RXNEIE + desc RXNEIE + 5 + 5 + read-write + + + TCIE + desc TCIE + 6 + 6 + read-write + + + TXEIE + desc TXEIE + 7 + 7 + read-write + + + PEIE + desc PEIE + 8 + 8 + read-write + + + PS + desc PS + 9 + 9 + read-write + + + PCE + desc PCE + 10 + 10 + read-write + + + WAKE + desc WAKE + 11 + 11 + read-write + + + M + desc M + 12 + 12 + read-write + + + UE + desc UE + 13 + 13 + read-write + + + + + CR2 + desc CR2 + 0x10 + 32 + read-write + 0x0 + + + ADD + desc ADD + 3 + 0 + read-write + + + LBDL + desc LBDL + 5 + 5 + read-write + + + LBDIE + desc LBDIE + 6 + 6 + read-write + + + LBCL + desc LBCL + 8 + 8 + read-write + + + CPHA + desc CPHA + 9 + 9 + read-write + + + CPOL + desc CPOL + 10 + 10 + read-write + + + CLKEN + desc CLKEN + 11 + 11 + read-write + + + STOP + desc STOP + 13 + 12 + read-write + + + LINEN + desc LINEN + 14 + 14 + read-write + + + + + CR3 + desc CR3 + 0x14 + 32 + read-write + 0x0 + + + EIE + desc EIE + 0 + 0 + read-write + + + IREN + desc IREN + 1 + 1 + read-write + + + IRLP + desc IRLP + 2 + 2 + read-write + + + HDSEL + desc HDSEL + 3 + 3 + read-write + + + NACK + desc NACK + 4 + 4 + read-write + + + SCEN + desc SCEN + 5 + 5 + read-write + + + DMAR + desc DMAR + 6 + 6 + read-write + + + DMAT + desc DMAT + 7 + 7 + read-write + + + RTSE + desc RTSE + 8 + 8 + read-write + + + CTSE + desc CTSE + 9 + 9 + read-write + + + CTSIE + desc CTSIE + 10 + 10 + read-write + + + OVER8 + desc OVER8 + 11 + 11 + read-write + + + ABREN + desc ABREN + 12 + 12 + read-write + + + ABRMODE + desc ABRMODE + 14 + 13 + read-write + + + + + GTPR + desc GTPR + 0x18 + 32 + read-write + 0x0 + + + PSC + desc PSC + 7 + 0 + read-write + + + GT + desc GT + 15 + 8 + read-write + + + + + + + USART2 + 0x40004400 + + USART2 + USART2 global Interrupt + 28 + + + + USART3 + desc USART + USART + 0x40004800 + + 0x0 + 0x400 + registers + + + USART3_4 + USART3, 4 global Interrupts + 29 + + + + USART4 + desc USART + USART + 0x40004C00 + + 0x0 + 0x400 + registers + + + USART3_4 + USART3, 4 global Interrupts + 29 + + + + USB + USB + USB + 0x40005C00 + + 0x0 + 0x400 + registers + + + USB + USB global Interrupts + 31 + + + + CR + CR + CR + 0x0 + 0x20 + read-write + 0xFFFFFFFF + + + ADD + ADD + 0 + 7 + + + UPDATE + UPDATE + 7 + 1 + + + Enable_Suspend + Enable_Suspend + 8 + 1 + + + Suspend_Mode + Suspend_Mode + 9 + 1 + + + Resume + Resume + 10 + 1 + + + Reset + Reset + 11 + 1 + + + ISO_Update + ISO_Update + 15 + 1 + + + + + INTR + INTR + INTR + 0x4 + 0x20 + read-write + 0x00000000 + + + Suspend + Suspend + 0 + 1 + + + Resume + Resume + 1 + 1 + + + Reset + Reset + 2 + 1 + + + SOF + SOF + 3 + 1 + + + EP1OUT + EP1OUT + 9 + 1 + + + EP2OUT + EP2OUT + 10 + 1 + + + EP3OUT + EP3OUT + 11 + 1 + + + EP4OUT + EP4OUT + 12 + 1 + + + EP5OUT + EP5OUT + 13 + 1 + + + EP0 + EP0 + 16 + 1 + + + EP1IN + EP1IN + 17 + 1 + + + EP2IN + EP2IN + 18 + 1 + + + EP3IN + EP3IN + 19 + 1 + + + EP4IN + EP4IN + 20 + 1 + + + EP5IN + EP5IN + 21 + 1 + + + + + INTRE + INTRE + INTRE + 0x8 + 0x20 + read-write + 0x00000000 + + + EN_Suspend + EN_Suspend + 0 + 1 + + + EN_Resume + EN_Resume + 1 + 1 + + + EN_Reset + EN_Reset + 2 + 1 + + + EN_SOF + EN_SOF + 3 + 1 + + + EP1OUTE + EP1OUTE + 9 + 1 + + + EP2OUTE + EP2OUTE + 10 + 1 + + + EP3OUTE + EP3OUTE + 11 + 1 + + + EP4OUTE + EP4OUTE + 12 + 1 + + + EP5OUTE + EP5OUTE + 13 + 1 + + + EP0 + EP0 + 16 + 1 + + + EP1INE + EP1INE + 17 + 1 + + + EP2INE + EP2INE + 18 + 1 + + + EP3INE + EP3INE + 19 + 1 + + + EP4INE + EP4INE + 20 + 1 + + + EP5INE + EP5INE + 21 + 1 + + + + + FRAME + FRAME + FRAME + 0xC + 0x20 + write-only + 0x00000000 + + + FramNUM + FramNUM + 0 + 11 + + + INDEX + INDEX + 16 + 4 + + + + + EP0CSR + EP0CSR + EP0CSR + 0x10 + 0x20 + write-only + 0x00000000 + + + OutPktRdy + OutPktRdy + 0 + 1 + + + InPktRdy + InPktRdy + 1 + 1 + + + SentStall + SentStall + 2 + 1 + + + DataEnd + DataEnd + 3 + 1 + + + SetupEnd + SetupEnd + 4 + 1 + + + SendStall + OutPktRdy + 5 + 1 + + + ServicedOutPktRdy + ServicedOutPktRdy + 6 + 1 + + + ServicedSetupEnd + ServicedSetupEnd + 7 + 1 + + + COUNT0 + COUNT0 + 8 + 1 + + + + + INEPxCSR + INEPxCSR + INEPxCSR + 0x14 + 0x20 + write-only + 0x00000000 + + + FrcDataTog + FrcDataTog + 3 + 1 + + + DMAEnab + DMAEnab + 4 + 1 + + + Mode + Mode + 5 + 1 + + + ISO + ISO + 6 + 1 + + + AutoSet + AutoSet + 7 + 1 + + + InPktRdy + InPktRdy + 8 + 1 + + + FIFONotEmpty + FIFONotEmpty + 9 + 1 + + + UnderRun + UnderRun + 10 + 1 + + + FlushFIFO + FlushFIFO + 11 + 1 + + + SendStall + SendStall + 12 + 1 + + + SentStall + SentStall + 13 + 1 + + + ClrDataTog + ClrDataTog + 14 + 1 + + + INMAXP + INMAXP + 16 + 1 + + + + + OUTEPxCSR + OUTEPxCSR + OUTEPxCSR + 0x18 + 0x20 + write-only + 0x00000000 + + + DMAMode + DMAMode + 4 + 1 + + + DMAEnab + DMAEnab + 5 + 1 + + + ISO + ISO + 6 + 1 + + + AutoClear + AutoClear + 7 + 1 + + + OutPktRdy + OutPktRdy + 8 + 1 + + + FIFOFull + FIFOFull + 9 + 1 + + + OverRun + OverRun + 10 + 1 + + + DataError + DataError + 11 + 1 + + + FlushFIFO + FlushFIFO + 12 + 1 + + + SendStall + SendStall + 13 + 1 + + + SentStall + SentStall + 14 + 1 + + + ClrDataTog + ClrDataTog + 15 + 1 + + + INMAXP + INMAXP + 16 + 1 + + + + + OUTCOUNT + OUTCOUNT + OUTCOUNT + 0x1C + 0x20 + write-only + 0x00000000 + + + OUTCOUNT + OUTCOUNT + 0 + 10 + + + + + + + WWDG + Window watchdog + WWDG + 0x40002C00 + + 0x0 + 0x400 + registers + + + WWDG + Window WatchDog Interrupt + 0 + + + + CR + CR + Control register (WWDG_CR) + 0x0 + 0x20 + read-write + 0x0000007F + + + WDGA + Activation bit + 7 + 1 + + + T + 7-bit counter (MSB to LSB) + 0 + 7 + + + + + CFR + CFR + + Configuration register + (WWDG_CFR) + + 0x4 + 0x20 + read-write + 0x0000007F + + + EWI + Early Wakeup Interrupt + 9 + 1 + + + WDGTB + Timer Base + 7 + 2 + + + W + 7-bit window value + 0 + 7 + + + + + SR + SR + Status register (WWDG_SR) + 0x8 + 0x20 + read-write + 0x00000000 + + + EWIF + Early Wakeup Interrupt flag + 0 + 1 + + + + + + + diff --git a/README.md b/README.md index 199bbb1..57a9fac 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,18 @@ # py32f0-template -* Puya PY32F003/030 template project for GNU Arm Embedded Toolchain +* Puya PY32F0 template project for GNU Arm Embedded Toolchain +* Puya PY32F0 family: + * PY32F002x5 + * PY32F002Ax5 + * PY32F003x4 + * PY32F003x6 + * PY32F003x8 + * PY32F030x3 + * PY32F030x4 + * PY32F030x6 + * PY32F030x7 + * PY32F030x8 + * PY32F072xB * Supported programmers: J-Link, DAPLink/PyOCD * Supported IDE: VSCode @@ -8,6 +20,7 @@ ``` ├── Build # Build results +├── Docs # Datesheets and User Manuals ├── Examples │   ├── FreeRTOS # FreeRTOS examples │   ├── Raw # NonFreeRTOS examples @@ -16,12 +29,15 @@ │   ├── BSP # SysTick delay and printf for debug │   ├── BSP_LL # SysTick delay and printf for debug │   ├── CMSIS -│   ├── LDScripts # ld files +│   ├── LDScripts # LD files │   ├── PY32F0xx_HAL_Driver # MCU peripheral driver │   └── PY32F0xx_LL_Driver # MCU low layer peripheral driver ├── Makefile # Make config ├── Misc -│   └── Devices # FLM files +│   ├── Flash +│   │   ├── Devices # FLM files +│   │   └── Sources # Flash algorithm source code +│   └── SVD # SVD files ├── README.md ├── rules.mk # Pre-defined rules include in Makefile └── User # User application code @@ -29,7 +45,7 @@ # Requirements -* PY32F0 EVB or boards of PY32F003/030 series +* PY32F0 EVB or boards of PY32F002/003/030/072 series * Programmer * J-Link: J-Link OB programmer * PyOCD: DAPLink or J-Link @@ -59,11 +75,11 @@ sudo dpkg -i JLink_Linux_V770a_x86_64.deb ``` The default installation directory is */opt/SEGGER* -Copy all .FLM files from [Project directory]/Misc/Devices/Puya to [JLink directory]/Devices/Puya +Copy all .FLM files from [Project directory]/Misc/Flash/Devices/Puya to [JLink directory]/Devices/Puya ```bash cd py32f0-template -sudo cp -r Misc/Devices/* /opt/SEGGER/JLink/Devices/ +sudo cp -r Misc/Flash/Devices/* /opt/SEGGER/JLink/Devices/ ``` Edit JLinkDevices.xml