/** * @brief TSC MSP Initialization * This function configures the hardware resources used in this example: * - Peripheral's clock enable * - Peripheral's GPIO Configuration * @param htsc: TSC handle pointer * @retval None */ void HAL_TSC_MspInit(TSC_HandleTypeDef *htsc) { GPIO_InitTypeDef GPIO_InitStruct; /*##-1- Enable TSC and GPIO clocks #########################################*/ TSCx_CLK_ENABLE(); TSCx_TS1_IO_GPIO_CLK_ENABLE(); TSCx_TS2_IO_GPIO_CLK_ENABLE(); TSCx_SHIELD_GPIO_CLK_ENABLE(); /*##-2- Configure Sampling Capacitor IOs (Alternate-Function Open-Drain) ###*/ GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; /* Shield Sampling Capacitor IO = TSC_GROUP6_IO1 */ GPIO_InitStruct.Pin = TSCx_SHIELD_SAMPLING_PIN; GPIO_InitStruct.Alternate = TSCx_SHIELD_SAMPLING_AF; HAL_GPIO_Init(TSCx_SHIELD_SAMPLING_GPIO_PORT, &GPIO_InitStruct); /* Channel TS1 Sampling Capacitor IO = TSC_GROUP8_IO3 */ GPIO_InitStruct.Pin = TSCx_TS1_SAMPLING_PIN; GPIO_InitStruct.Alternate = TSCx_TS1_SAMPLING_AF; HAL_GPIO_Init(TSCx_TS1_SAMPLING_GPIO_PORT, &GPIO_InitStruct); /* Channel TS2 Sampling Capacitor IO = TSC_GROUP8_IO3 */ GPIO_InitStruct.Pin = TSCx_TS2_SAMPLING_PIN; GPIO_InitStruct.Alternate = TSCx_TS2_SAMPLING_AF; HAL_GPIO_Init(TSCx_TS2_SAMPLING_GPIO_PORT, &GPIO_InitStruct); /*##-3- Configure Channel & Shield IOs (Alternate-Function Output PP) ######*/ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; /* Shield IO = TSC_GROUP6_IO2 */ GPIO_InitStruct.Pin = TSCx_SHIELD_IO_PIN; GPIO_InitStruct.Alternate = TSCx_SHIELD_IO_AF; HAL_GPIO_Init(TSCx_SHIELD_IO_GPIO_PORT, &GPIO_InitStruct); /* Channel IO (TS1) = TSC_GROUP8_IO2 */ GPIO_InitStruct.Pin = TSCx_TS1_IO_PIN; GPIO_InitStruct.Alternate = TSCx_TS1_IO_AF; HAL_GPIO_Init(TSCx_TS2_IO_GPIO_PORT, &GPIO_InitStruct); /* Channel IO (TS2) = TSC_GROUP8_IO2 */ GPIO_InitStruct.Pin = TSCx_TS2_IO_PIN; GPIO_InitStruct.Alternate = TSCx_TS2_IO_AF; HAL_GPIO_Init(TSCx_TS2_IO_GPIO_PORT, &GPIO_InitStruct); /*##-4- Configure the NVIC for TSC #########################################*/ /* Not used in this example. Keep it for reference. HAL_NVIC_SetPriority(TSCx_EXTI_IRQn, 1, 0); HAL_NVIC_EnableIRQ(TSCx_EXTI_IRQn); */ }
/** * @brief TSC MSP Initialization * This function configures the hardware resources used in this example: * - Peripheral's clock enable * - Peripheral's GPIO Configuration * @param htsc: TSC handle pointer * @retval None */ void HAL_TSC_MspInit(TSC_HandleTypeDef *htsc) { GPIO_InitTypeDef GPIO_InitStruct; /*##-1- Enable TSC and GPIO clocks #########################################*/ TSCx_CLK_ENABLE(); TSCx_TS1_IO_GPIO_CLK_ENABLE(); TSCx_TS2_IO_GPIO_CLK_ENABLE(); TSCx_TS3_IO_GPIO_CLK_ENABLE(); /*##-2- Configure Sampling Capacitor IOs (Alternate-Function Open-Drain) ###*/ GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_LOW; /* Channel TS1 Sampling Capacitor IO = TSC_GROUP1_IO4 */ GPIO_InitStruct.Pin = TSCx_TS1_SAMPLING_PIN; GPIO_InitStruct.Alternate = TSCx_TS1_SAMPLING_AF; HAL_GPIO_Init(TSCx_TS1_SAMPLING_GPIO_PORT, &GPIO_InitStruct); /* Channel TS2 Sampling Capacitor IO = TSC_GROUP2_IO4 */ GPIO_InitStruct.Pin = TSCx_TS2_SAMPLING_PIN; GPIO_InitStruct.Alternate = TSCx_TS2_SAMPLING_AF; HAL_GPIO_Init(TSCx_TS2_SAMPLING_GPIO_PORT, &GPIO_InitStruct); /* Channel TS3 Sampling Capacitor IO = TSC_GROUP3_IO3 */ GPIO_InitStruct.Pin = TSCx_TS3_SAMPLING_PIN; GPIO_InitStruct.Alternate = TSCx_TS3_SAMPLING_AF; HAL_GPIO_Init(TSCx_TS3_SAMPLING_GPIO_PORT, &GPIO_InitStruct); /*##-3- Configure Channel IOs (Alternate-Function Output PP) ###############*/ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_LOW; /* Channel IO (TS1) = TSC_GROUP1_IO3 */ GPIO_InitStruct.Pin = TSCx_TS1_IO_PIN; GPIO_InitStruct.Alternate = TSCx_TS1_IO_AF; HAL_GPIO_Init(TSCx_TS1_IO_GPIO_PORT, &GPIO_InitStruct); /* Channel IO (TS2) = TSC_GROUP2_IO3 */ GPIO_InitStruct.Pin = TSCx_TS2_IO_PIN; GPIO_InitStruct.Alternate = TSCx_TS2_IO_AF; HAL_GPIO_Init(TSCx_TS2_IO_GPIO_PORT, &GPIO_InitStruct); /* Channel IO (TS3) = TSC_GROUP3_IO2 */ GPIO_InitStruct.Pin = TSCx_TS3_IO_PIN; GPIO_InitStruct.Alternate = TSCx_TS3_IO_AF; HAL_GPIO_Init(TSCx_TS3_IO_GPIO_PORT, &GPIO_InitStruct); /*##-4- Configure the NVIC for TSC #########################################*/ HAL_NVIC_SetPriority(TSCx_EXTI_IRQn, 1, 0); HAL_NVIC_EnableIRQ(TSCx_EXTI_IRQn); }