Barcode reader with a TCD1304AP TOSHIBA CCD linear image sensor and NUCLEO-F103RB board.

Dependencies:   mbed zbar

Barcode Reader

Barcodes represent data by varying the widths of spaces and bars. These barcodes, now commonly referred to as linear or one-dimensional (1D), can be scanned by barcode readers. In this project a TCD1304AP TOSHIBA CCD linear image sensor is used to scan barcodes. The obtained light intensity stream is passed to the ZBar library streamlined for embedded use.

Flow charthttps://os.mbed.com/media/uploads/hudakz/barcodereader_diagram.png
TCD1304AP Driver

The TCD1304AP requires three clock signals (see below the Timing chart). It can operate with or without a built-in electronic shutter. In this project the electronic shutter is used to control the integration (exposure) time:

https://os.mbed.com/media/uploads/hudakz/barcodereader_timing.png




I used STM32CubeIDE to build the driver for the TCD1304AP sensor and then merged it with the Mbed OS 2 project.

STM32F103RB clock configuration
https://os.mbed.com/media/uploads/hudakz/barcodereader_clockconf.png


STM32F103RB pinout
https://os.mbed.com/media/uploads/hudakz/barcodereader_pinout.png


  • The signal for TCD1304AP's master clock (fiM) is generated by STM32F103's TIM1 timer and it is output at pin PA_8.
  • The Shift Gate clock signal (SH) is produced by timer TIM2 and it's available at pin PA_15.
  • The Integration Clear Gate pulses (ICG) are generated by timer TIM3 at pin PA_6.

The TCD1304AP's master clock runs at 1.714MHz. Pixel data is available at its output (OS) after each four pulses. To keep up with such speed DMA (Direct Memmory Access) is used to move the voltage data produced by the ADC (Analog to Digital Convertor) into the STM32F103's SRAM. The ADC is clocked with a 12MHz signal and runs in continuous mode.

https://os.mbed.com/media/uploads/hudakz/barcodereader_clocking.png

Committer:
hudakz
Date:
Fri Jan 10 22:10:07 2020 +0000
Revision:
3:f2e67488f5ab
Parent:
0:cd0771c3346e
Barcode reader with a TCD1304AP TOSHIBA CCD linear image sensor and NUCLEO-F103RB board.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hudakz 0:cd0771c3346e 1 /* USER CODE BEGIN Header */
hudakz 0:cd0771c3346e 2 /**
hudakz 0:cd0771c3346e 3 ******************************************************************************
hudakz 0:cd0771c3346e 4 * File Name : stm32f1xx_hal_msp.c
hudakz 0:cd0771c3346e 5 * Description : This file provides code for the MSP Initialization
hudakz 0:cd0771c3346e 6 * and de-Initialization codes.
hudakz 0:cd0771c3346e 7 ******************************************************************************
hudakz 0:cd0771c3346e 8 * @attention
hudakz 0:cd0771c3346e 9 *
hudakz 0:cd0771c3346e 10 * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
hudakz 0:cd0771c3346e 11 * All rights reserved.</center></h2>
hudakz 0:cd0771c3346e 12 *
hudakz 0:cd0771c3346e 13 * This software component is licensed by ST under BSD 3-Clause license,
hudakz 0:cd0771c3346e 14 * the "License"; You may not use this file except in compliance with the
hudakz 0:cd0771c3346e 15 * License. You may obtain a copy of the License at:
hudakz 0:cd0771c3346e 16 * opensource.org/licenses/BSD-3-Clause
hudakz 0:cd0771c3346e 17 *
hudakz 0:cd0771c3346e 18 ******************************************************************************
hudakz 0:cd0771c3346e 19 */
hudakz 0:cd0771c3346e 20 /* USER CODE END Header */
hudakz 0:cd0771c3346e 21
hudakz 0:cd0771c3346e 22 /* Includes ------------------------------------------------------------------*/
hudakz 0:cd0771c3346e 23 #include "main.h"
hudakz 0:cd0771c3346e 24 /* USER CODE BEGIN Includes */
hudakz 0:cd0771c3346e 25
hudakz 0:cd0771c3346e 26 /* USER CODE END Includes */
hudakz 0:cd0771c3346e 27 extern DMA_HandleTypeDef hdma_adc1;
hudakz 0:cd0771c3346e 28
hudakz 0:cd0771c3346e 29 /* Private typedef -----------------------------------------------------------*/
hudakz 0:cd0771c3346e 30 /* USER CODE BEGIN TD */
hudakz 0:cd0771c3346e 31
hudakz 0:cd0771c3346e 32 /* USER CODE END TD */
hudakz 0:cd0771c3346e 33
hudakz 0:cd0771c3346e 34 /* Private define ------------------------------------------------------------*/
hudakz 0:cd0771c3346e 35 /* USER CODE BEGIN Define */
hudakz 0:cd0771c3346e 36
hudakz 0:cd0771c3346e 37 /* USER CODE END Define */
hudakz 0:cd0771c3346e 38
hudakz 0:cd0771c3346e 39 /* Private macro -------------------------------------------------------------*/
hudakz 0:cd0771c3346e 40 /* USER CODE BEGIN Macro */
hudakz 0:cd0771c3346e 41
hudakz 0:cd0771c3346e 42 /* USER CODE END Macro */
hudakz 0:cd0771c3346e 43
hudakz 0:cd0771c3346e 44 /* Private variables ---------------------------------------------------------*/
hudakz 0:cd0771c3346e 45 /* USER CODE BEGIN PV */
hudakz 0:cd0771c3346e 46
hudakz 0:cd0771c3346e 47 /* USER CODE END PV */
hudakz 0:cd0771c3346e 48
hudakz 0:cd0771c3346e 49 /* Private function prototypes -----------------------------------------------*/
hudakz 0:cd0771c3346e 50 /* USER CODE BEGIN PFP */
hudakz 0:cd0771c3346e 51
hudakz 0:cd0771c3346e 52 /* USER CODE END PFP */
hudakz 0:cd0771c3346e 53
hudakz 0:cd0771c3346e 54 /* External functions --------------------------------------------------------*/
hudakz 0:cd0771c3346e 55 /* USER CODE BEGIN ExternalFunctions */
hudakz 0:cd0771c3346e 56
hudakz 0:cd0771c3346e 57 /* USER CODE END ExternalFunctions */
hudakz 0:cd0771c3346e 58
hudakz 0:cd0771c3346e 59 /* USER CODE BEGIN 0 */
hudakz 0:cd0771c3346e 60
hudakz 0:cd0771c3346e 61 /* USER CODE END 0 */
hudakz 0:cd0771c3346e 62
hudakz 0:cd0771c3346e 63 void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
hudakz 0:cd0771c3346e 64 /**
hudakz 0:cd0771c3346e 65 * Initializes the Global MSP.
hudakz 0:cd0771c3346e 66 */
hudakz 0:cd0771c3346e 67 void HAL_MspInit(void)
hudakz 0:cd0771c3346e 68 {
hudakz 0:cd0771c3346e 69 /* USER CODE BEGIN MspInit 0 */
hudakz 0:cd0771c3346e 70
hudakz 0:cd0771c3346e 71 /* USER CODE END MspInit 0 */
hudakz 0:cd0771c3346e 72
hudakz 0:cd0771c3346e 73 __HAL_RCC_AFIO_CLK_ENABLE();
hudakz 0:cd0771c3346e 74 __HAL_RCC_PWR_CLK_ENABLE();
hudakz 0:cd0771c3346e 75
hudakz 0:cd0771c3346e 76 /* System interrupt init*/
hudakz 0:cd0771c3346e 77
hudakz 0:cd0771c3346e 78 /** NOJTAG: JTAG-DP Disabled and SW-DP Enabled
hudakz 0:cd0771c3346e 79 */
hudakz 0:cd0771c3346e 80 __HAL_AFIO_REMAP_SWJ_NOJTAG();
hudakz 0:cd0771c3346e 81
hudakz 0:cd0771c3346e 82 /* USER CODE BEGIN MspInit 1 */
hudakz 0:cd0771c3346e 83
hudakz 0:cd0771c3346e 84 /* USER CODE END MspInit 1 */
hudakz 0:cd0771c3346e 85 }
hudakz 0:cd0771c3346e 86
hudakz 0:cd0771c3346e 87 /**
hudakz 0:cd0771c3346e 88 * @brief ADC MSP Initialization
hudakz 0:cd0771c3346e 89 * This function configures the hardware resources used in this example
hudakz 0:cd0771c3346e 90 * @param hadc: ADC handle pointer
hudakz 0:cd0771c3346e 91 * @retval None
hudakz 0:cd0771c3346e 92 */
hudakz 0:cd0771c3346e 93 void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
hudakz 0:cd0771c3346e 94 {
hudakz 0:cd0771c3346e 95 GPIO_InitTypeDef GPIO_InitStruct = {0};
hudakz 0:cd0771c3346e 96 if(hadc->Instance==ADC1)
hudakz 0:cd0771c3346e 97 {
hudakz 0:cd0771c3346e 98 /* USER CODE BEGIN ADC1_MspInit 0 */
hudakz 0:cd0771c3346e 99
hudakz 0:cd0771c3346e 100 /* USER CODE END ADC1_MspInit 0 */
hudakz 0:cd0771c3346e 101 /* Peripheral clock enable */
hudakz 0:cd0771c3346e 102 __HAL_RCC_ADC1_CLK_ENABLE();
hudakz 0:cd0771c3346e 103
hudakz 0:cd0771c3346e 104 __HAL_RCC_GPIOA_CLK_ENABLE();
hudakz 0:cd0771c3346e 105 /**ADC1 GPIO Configuration
hudakz 0:cd0771c3346e 106 PA0-WKUP ------> ADC1_IN0
hudakz 0:cd0771c3346e 107 */
hudakz 0:cd0771c3346e 108 GPIO_InitStruct.Pin = GPIO_PIN_0;
hudakz 0:cd0771c3346e 109 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
hudakz 0:cd0771c3346e 110 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
hudakz 0:cd0771c3346e 111
hudakz 0:cd0771c3346e 112 /* ADC1 DMA Init */
hudakz 0:cd0771c3346e 113 /* ADC1 Init */
hudakz 0:cd0771c3346e 114 hdma_adc1.Instance = DMA1_Channel1;
hudakz 0:cd0771c3346e 115 hdma_adc1.Init.Direction = DMA_PERIPH_TO_MEMORY;
hudakz 0:cd0771c3346e 116 hdma_adc1.Init.PeriphInc = DMA_PINC_DISABLE;
hudakz 0:cd0771c3346e 117 hdma_adc1.Init.MemInc = DMA_MINC_ENABLE;
hudakz 0:cd0771c3346e 118 hdma_adc1.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD;
hudakz 0:cd0771c3346e 119 hdma_adc1.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD;
hudakz 0:cd0771c3346e 120 hdma_adc1.Init.Mode = DMA_NORMAL;
hudakz 0:cd0771c3346e 121 hdma_adc1.Init.Priority = DMA_PRIORITY_LOW;
hudakz 0:cd0771c3346e 122 if (HAL_DMA_Init(&hdma_adc1) != HAL_OK)
hudakz 0:cd0771c3346e 123 {
hudakz 0:cd0771c3346e 124 Error_Handler();
hudakz 0:cd0771c3346e 125 }
hudakz 0:cd0771c3346e 126
hudakz 0:cd0771c3346e 127 __HAL_LINKDMA(hadc,DMA_Handle,hdma_adc1);
hudakz 0:cd0771c3346e 128
hudakz 0:cd0771c3346e 129 /* USER CODE BEGIN ADC1_MspInit 1 */
hudakz 0:cd0771c3346e 130
hudakz 0:cd0771c3346e 131 /* USER CODE END ADC1_MspInit 1 */
hudakz 0:cd0771c3346e 132 }
hudakz 0:cd0771c3346e 133
hudakz 0:cd0771c3346e 134 }
hudakz 0:cd0771c3346e 135
hudakz 0:cd0771c3346e 136 /**
hudakz 0:cd0771c3346e 137 * @brief ADC MSP De-Initialization
hudakz 0:cd0771c3346e 138 * This function freeze the hardware resources used in this example
hudakz 0:cd0771c3346e 139 * @param hadc: ADC handle pointer
hudakz 0:cd0771c3346e 140 * @retval None
hudakz 0:cd0771c3346e 141 */
hudakz 0:cd0771c3346e 142 void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
hudakz 0:cd0771c3346e 143 {
hudakz 0:cd0771c3346e 144 if(hadc->Instance==ADC1)
hudakz 0:cd0771c3346e 145 {
hudakz 0:cd0771c3346e 146 /* USER CODE BEGIN ADC1_MspDeInit 0 */
hudakz 0:cd0771c3346e 147
hudakz 0:cd0771c3346e 148 /* USER CODE END ADC1_MspDeInit 0 */
hudakz 0:cd0771c3346e 149 /* Peripheral clock disable */
hudakz 0:cd0771c3346e 150 __HAL_RCC_ADC1_CLK_DISABLE();
hudakz 0:cd0771c3346e 151
hudakz 0:cd0771c3346e 152 /**ADC1 GPIO Configuration
hudakz 0:cd0771c3346e 153 PA0-WKUP ------> ADC1_IN0
hudakz 0:cd0771c3346e 154 */
hudakz 0:cd0771c3346e 155 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_0);
hudakz 0:cd0771c3346e 156
hudakz 0:cd0771c3346e 157 /* ADC1 DMA DeInit */
hudakz 0:cd0771c3346e 158 HAL_DMA_DeInit(hadc->DMA_Handle);
hudakz 0:cd0771c3346e 159 /* USER CODE BEGIN ADC1_MspDeInit 1 */
hudakz 0:cd0771c3346e 160
hudakz 0:cd0771c3346e 161 /* USER CODE END ADC1_MspDeInit 1 */
hudakz 0:cd0771c3346e 162 }
hudakz 0:cd0771c3346e 163
hudakz 0:cd0771c3346e 164 }
hudakz 0:cd0771c3346e 165
hudakz 0:cd0771c3346e 166 /**
hudakz 0:cd0771c3346e 167 * @brief TIM_Base MSP Initialization
hudakz 0:cd0771c3346e 168 * This function configures the hardware resources used in this example
hudakz 0:cd0771c3346e 169 * @param htim_base: TIM_Base handle pointer
hudakz 0:cd0771c3346e 170 * @retval None
hudakz 0:cd0771c3346e 171 */
hudakz 0:cd0771c3346e 172 void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
hudakz 0:cd0771c3346e 173 {
hudakz 0:cd0771c3346e 174 if(htim_base->Instance==TIM1)
hudakz 0:cd0771c3346e 175 {
hudakz 0:cd0771c3346e 176 /* USER CODE BEGIN TIM1_MspInit 0 */
hudakz 0:cd0771c3346e 177
hudakz 0:cd0771c3346e 178 /* USER CODE END TIM1_MspInit 0 */
hudakz 0:cd0771c3346e 179 /* Peripheral clock enable */
hudakz 0:cd0771c3346e 180 __HAL_RCC_TIM1_CLK_ENABLE();
hudakz 0:cd0771c3346e 181 /* TIM1 interrupt Init */
hudakz 0:cd0771c3346e 182 HAL_NVIC_SetPriority(TIM1_UP_IRQn, 0, 0);
hudakz 0:cd0771c3346e 183 HAL_NVIC_EnableIRQ(TIM1_UP_IRQn);
hudakz 0:cd0771c3346e 184 /* USER CODE BEGIN TIM1_MspInit 1 */
hudakz 0:cd0771c3346e 185
hudakz 0:cd0771c3346e 186 /* USER CODE END TIM1_MspInit 1 */
hudakz 0:cd0771c3346e 187 }
hudakz 0:cd0771c3346e 188 else if(htim_base->Instance==TIM2)
hudakz 0:cd0771c3346e 189 {
hudakz 0:cd0771c3346e 190 /* USER CODE BEGIN TIM2_MspInit 0 */
hudakz 0:cd0771c3346e 191
hudakz 0:cd0771c3346e 192 /* USER CODE END TIM2_MspInit 0 */
hudakz 0:cd0771c3346e 193 /* Peripheral clock enable */
hudakz 0:cd0771c3346e 194 __HAL_RCC_TIM2_CLK_ENABLE();
hudakz 0:cd0771c3346e 195 /* USER CODE BEGIN TIM2_MspInit 1 */
hudakz 0:cd0771c3346e 196
hudakz 0:cd0771c3346e 197 /* USER CODE END TIM2_MspInit 1 */
hudakz 0:cd0771c3346e 198 }
hudakz 0:cd0771c3346e 199 else if(htim_base->Instance==TIM3)
hudakz 0:cd0771c3346e 200 {
hudakz 0:cd0771c3346e 201 /* USER CODE BEGIN TIM3_MspInit 0 */
hudakz 0:cd0771c3346e 202
hudakz 0:cd0771c3346e 203 /* USER CODE END TIM3_MspInit 0 */
hudakz 0:cd0771c3346e 204 /* Peripheral clock enable */
hudakz 0:cd0771c3346e 205 __HAL_RCC_TIM3_CLK_ENABLE();
hudakz 0:cd0771c3346e 206 /* TIM3 interrupt Init */
hudakz 0:cd0771c3346e 207 HAL_NVIC_SetPriority(TIM3_IRQn, 0, 0);
hudakz 0:cd0771c3346e 208 HAL_NVIC_EnableIRQ(TIM3_IRQn);
hudakz 0:cd0771c3346e 209 /* USER CODE BEGIN TIM3_MspInit 1 */
hudakz 0:cd0771c3346e 210
hudakz 0:cd0771c3346e 211 /* USER CODE END TIM3_MspInit 1 */
hudakz 0:cd0771c3346e 212 }
hudakz 0:cd0771c3346e 213
hudakz 0:cd0771c3346e 214 }
hudakz 0:cd0771c3346e 215
hudakz 0:cd0771c3346e 216 void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
hudakz 0:cd0771c3346e 217 {
hudakz 0:cd0771c3346e 218 GPIO_InitTypeDef GPIO_InitStruct = {0};
hudakz 0:cd0771c3346e 219 if(htim->Instance==TIM1)
hudakz 0:cd0771c3346e 220 {
hudakz 0:cd0771c3346e 221 /* USER CODE BEGIN TIM1_MspPostInit 0 */
hudakz 0:cd0771c3346e 222
hudakz 0:cd0771c3346e 223 /* USER CODE END TIM1_MspPostInit 0 */
hudakz 0:cd0771c3346e 224 __HAL_RCC_GPIOA_CLK_ENABLE();
hudakz 0:cd0771c3346e 225 /**TIM1 GPIO Configuration
hudakz 0:cd0771c3346e 226 PA8 ------> TIM1_CH1
hudakz 0:cd0771c3346e 227 */
hudakz 0:cd0771c3346e 228 GPIO_InitStruct.Pin = GPIO_PIN_8;
hudakz 0:cd0771c3346e 229 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
hudakz 0:cd0771c3346e 230 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
hudakz 0:cd0771c3346e 231 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
hudakz 0:cd0771c3346e 232
hudakz 0:cd0771c3346e 233 /* USER CODE BEGIN TIM1_MspPostInit 1 */
hudakz 0:cd0771c3346e 234
hudakz 0:cd0771c3346e 235 /* USER CODE END TIM1_MspPostInit 1 */
hudakz 0:cd0771c3346e 236 }
hudakz 0:cd0771c3346e 237 else if(htim->Instance==TIM2)
hudakz 0:cd0771c3346e 238 {
hudakz 0:cd0771c3346e 239 /* USER CODE BEGIN TIM2_MspPostInit 0 */
hudakz 0:cd0771c3346e 240
hudakz 0:cd0771c3346e 241 /* USER CODE END TIM2_MspPostInit 0 */
hudakz 0:cd0771c3346e 242
hudakz 0:cd0771c3346e 243 __HAL_RCC_GPIOA_CLK_ENABLE();
hudakz 0:cd0771c3346e 244 /**TIM2 GPIO Configuration
hudakz 0:cd0771c3346e 245 PA15 ------> TIM2_CH1
hudakz 0:cd0771c3346e 246 */
hudakz 0:cd0771c3346e 247 GPIO_InitStruct.Pin = GPIO_PIN_15;
hudakz 0:cd0771c3346e 248 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
hudakz 0:cd0771c3346e 249 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
hudakz 0:cd0771c3346e 250 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
hudakz 0:cd0771c3346e 251
hudakz 0:cd0771c3346e 252 __HAL_AFIO_REMAP_TIM2_PARTIAL_1();
hudakz 0:cd0771c3346e 253
hudakz 0:cd0771c3346e 254 /* USER CODE BEGIN TIM2_MspPostInit 1 */
hudakz 0:cd0771c3346e 255
hudakz 0:cd0771c3346e 256 /* USER CODE END TIM2_MspPostInit 1 */
hudakz 0:cd0771c3346e 257 }
hudakz 0:cd0771c3346e 258 else if(htim->Instance==TIM3)
hudakz 0:cd0771c3346e 259 {
hudakz 0:cd0771c3346e 260 /* USER CODE BEGIN TIM3_MspPostInit 0 */
hudakz 0:cd0771c3346e 261
hudakz 0:cd0771c3346e 262 /* USER CODE END TIM3_MspPostInit 0 */
hudakz 0:cd0771c3346e 263
hudakz 0:cd0771c3346e 264 __HAL_RCC_GPIOA_CLK_ENABLE();
hudakz 0:cd0771c3346e 265 /**TIM3 GPIO Configuration
hudakz 0:cd0771c3346e 266 PA6 ------> TIM3_CH1
hudakz 0:cd0771c3346e 267 */
hudakz 0:cd0771c3346e 268 GPIO_InitStruct.Pin = GPIO_PIN_6;
hudakz 0:cd0771c3346e 269 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
hudakz 0:cd0771c3346e 270 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
hudakz 0:cd0771c3346e 271 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
hudakz 0:cd0771c3346e 272
hudakz 0:cd0771c3346e 273 /* USER CODE BEGIN TIM3_MspPostInit 1 */
hudakz 0:cd0771c3346e 274
hudakz 0:cd0771c3346e 275 /* USER CODE END TIM3_MspPostInit 1 */
hudakz 0:cd0771c3346e 276 }
hudakz 0:cd0771c3346e 277
hudakz 0:cd0771c3346e 278 }
hudakz 0:cd0771c3346e 279 /**
hudakz 0:cd0771c3346e 280 * @brief TIM_Base MSP De-Initialization
hudakz 0:cd0771c3346e 281 * This function freeze the hardware resources used in this example
hudakz 0:cd0771c3346e 282 * @param htim_base: TIM_Base handle pointer
hudakz 0:cd0771c3346e 283 * @retval None
hudakz 0:cd0771c3346e 284 */
hudakz 0:cd0771c3346e 285 void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
hudakz 0:cd0771c3346e 286 {
hudakz 0:cd0771c3346e 287 if(htim_base->Instance==TIM1)
hudakz 0:cd0771c3346e 288 {
hudakz 0:cd0771c3346e 289 /* USER CODE BEGIN TIM1_MspDeInit 0 */
hudakz 0:cd0771c3346e 290
hudakz 0:cd0771c3346e 291 /* USER CODE END TIM1_MspDeInit 0 */
hudakz 0:cd0771c3346e 292 /* Peripheral clock disable */
hudakz 0:cd0771c3346e 293 __HAL_RCC_TIM1_CLK_DISABLE();
hudakz 0:cd0771c3346e 294
hudakz 0:cd0771c3346e 295 /* TIM1 interrupt DeInit */
hudakz 0:cd0771c3346e 296 HAL_NVIC_DisableIRQ(TIM1_UP_IRQn);
hudakz 0:cd0771c3346e 297 /* USER CODE BEGIN TIM1_MspDeInit 1 */
hudakz 0:cd0771c3346e 298
hudakz 0:cd0771c3346e 299 /* USER CODE END TIM1_MspDeInit 1 */
hudakz 0:cd0771c3346e 300 }
hudakz 0:cd0771c3346e 301 else if(htim_base->Instance==TIM2)
hudakz 0:cd0771c3346e 302 {
hudakz 0:cd0771c3346e 303 /* USER CODE BEGIN TIM2_MspDeInit 0 */
hudakz 0:cd0771c3346e 304
hudakz 0:cd0771c3346e 305 /* USER CODE END TIM2_MspDeInit 0 */
hudakz 0:cd0771c3346e 306 /* Peripheral clock disable */
hudakz 0:cd0771c3346e 307 __HAL_RCC_TIM2_CLK_DISABLE();
hudakz 0:cd0771c3346e 308 /* USER CODE BEGIN TIM2_MspDeInit 1 */
hudakz 0:cd0771c3346e 309
hudakz 0:cd0771c3346e 310 /* USER CODE END TIM2_MspDeInit 1 */
hudakz 0:cd0771c3346e 311 }
hudakz 0:cd0771c3346e 312 else if(htim_base->Instance==TIM3)
hudakz 0:cd0771c3346e 313 {
hudakz 0:cd0771c3346e 314 /* USER CODE BEGIN TIM3_MspDeInit 0 */
hudakz 0:cd0771c3346e 315
hudakz 0:cd0771c3346e 316 /* USER CODE END TIM3_MspDeInit 0 */
hudakz 0:cd0771c3346e 317 /* Peripheral clock disable */
hudakz 0:cd0771c3346e 318 __HAL_RCC_TIM3_CLK_DISABLE();
hudakz 0:cd0771c3346e 319
hudakz 0:cd0771c3346e 320 /* TIM3 interrupt DeInit */
hudakz 0:cd0771c3346e 321 HAL_NVIC_DisableIRQ(TIM3_IRQn);
hudakz 0:cd0771c3346e 322 /* USER CODE BEGIN TIM3_MspDeInit 1 */
hudakz 0:cd0771c3346e 323
hudakz 0:cd0771c3346e 324 /* USER CODE END TIM3_MspDeInit 1 */
hudakz 0:cd0771c3346e 325 }
hudakz 0:cd0771c3346e 326
hudakz 0:cd0771c3346e 327 }
hudakz 0:cd0771c3346e 328
hudakz 0:cd0771c3346e 329 /* USER CODE BEGIN 1 */
hudakz 0:cd0771c3346e 330
hudakz 0:cd0771c3346e 331 /* USER CODE END 1 */
hudakz 0:cd0771c3346e 332
hudakz 0:cd0771c3346e 333 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
hudakz 0:cd0771c3346e 334