Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of locate_by_hello_enc by
EncoderMspInitF3.cpp
00001 #include "mbed.h" 00002 /* 00003 * HAL_TIM_Encoder_MspInit() 00004 * Overrides the __weak function stub in stm32f3xx_hal_tim.h 00005 * 00006 * Edit the below for your preferred pin wiring & pullup/down 00007 * I have encoder common at 3V3, using GPIO_PULLDOWN on inputs. 00008 * Encoder A&B outputs connected directly to GPIOs. 00009 * 00010 * http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/DM00093333.pdf 00011 * http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/DM00097745.pdf 00012 * http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/DM00133117.pdf 00013 * Table 14 has GPIO alternate function pinout mappings. 00014 * 00015 * TIM1_CH1: AF2 @ PC_0, PE_9; AF6 @ PA_8 00016 * TIM1_CH2: AF2 @ PC_1, PE_11; AF6 @ PA_9 00017 * 00018 * (TIM2_CH1: AF1 @ PA_0, PA_5, PA_15; AF2 @ PD_3) TIM2 is the mbed system ticker, so unavailable as encoder. 00019 * (TIM2_CH2: AF1 @ PA_1, PB_3; AF2 @ PD_4) 00020 * 00021 * TIM3_CH1: AF2 @ PA_6, PB_4, PC_6, PE_2 not for F302R8, OK @ F334R8 00022 * TIM3_CH2: AF2 @ PA_4, PA_7, PB_5, PC_7, PE_3 00023 * 00024 * TIM4_CH1: AF2 @ PB_6, PD_12; AF10 @ PA_11 not for both F302R8 & F334R8 00025 * TIM4_CH2: AF2 @ PB_7, PD_13; AF10 @ PA_12 00026 * 00027 */ 00028 00029 #ifdef TARGET_STM32F3 00030 00031 void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef *htim) 00032 { 00033 GPIO_InitTypeDef GPIO_InitStruct; 00034 00035 if (htim->Instance == TIM1) { //PA8 PA9 = Nucleo D7 D8 00036 __TIM1_CLK_ENABLE(); 00037 __GPIOA_CLK_ENABLE(); 00038 GPIO_InitStruct.Pin = GPIO_PIN_8 | GPIO_PIN_9; 00039 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 00040 GPIO_InitStruct.Pull = GPIO_PULLDOWN; 00041 GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; 00042 GPIO_InitStruct.Alternate = GPIO_AF6_TIM1; 00043 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); 00044 } 00045 #if 0 //TIM2 is the mbed system ticker 00046 else if (htim->Instance == TIM2) { //PA0 PA1 = Nucleo A0 A1 00047 __TIM2_CLK_ENABLE(); 00048 __GPIOA_CLK_ENABLE(); 00049 GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1; 00050 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 00051 GPIO_InitStruct.Pull = GPIO_PULLDOWN; 00052 GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; 00053 GPIO_InitStruct.Alternate = GPIO_AF1_TIM2; 00054 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); 00055 } 00056 #endif 00057 #if defined TARGET_STM32F334R8 00058 else if (htim->Instance == TIM3) { //PB4 PB5 = Nucleo D5 D4 00059 __TIM3_CLK_ENABLE(); 00060 __GPIOB_CLK_ENABLE(); 00061 GPIO_InitStruct.Pin = GPIO_PIN_4 | GPIO_PIN_5; 00062 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 00063 GPIO_InitStruct.Pull = GPIO_PULLDOWN; 00064 GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; 00065 GPIO_InitStruct.Alternate = GPIO_AF2_TIM3; 00066 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); 00067 } 00068 #endif 00069 #if 0 00070 else if (htim->Instance == TIM4) { // PB6 PB7 = Nucleo D10 MORPHO_PB7 00071 __TIM4_CLK_ENABLE(); 00072 __GPIOB_CLK_ENABLE(); 00073 GPIO_InitStruct.Pin = GPIO_PIN_6 | GPIO_PIN_7; 00074 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 00075 GPIO_InitStruct.Pull = GPIO_PULLDOWN; 00076 GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; 00077 GPIO_InitStruct.Alternate = GPIO_AF2_TIM4; 00078 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); 00079 } 00080 #endif 00081 } 00082 #endif
Generated on Sun Jul 17 2022 23:05:29 by
