PWM_Output\PWM_Output\main.c (7106, 2015-04-21)
PWM_Output\PWM_Output\stm32l1xx_conf.h (3435, 2015-04-21)
PWM_Output\PWM_Output\stm32l1xx_it.c (4959, 2015-04-21)
PWM_Output\PWM_Output\stm32l1xx_it.h (2119, 2015-04-21)
PWM_Output\PWM_Output\system_stm32l1xx.c (20175, 2015-04-21)
PWM_Output\PWM_Output.rar (12843, 2017-11-27)
PWM_Output\PWM_Output (0, 2015-11-10)
PWM_Output (0, 2017-11-27)
/**
@page TIM_PWM_Output TIM PWM Output example
@verbatim
******************** (C) COPYRIGHT 2015 STMicroelectronics *******************
* @file TIM/PWM_Output/readme.txt
* @author MCD Application Team
* @version V1.2.1
* @date 20-April-2015
* @brief Description of the TIM PWM Output example.
******************************************************************************
*
* Licensed under MCD-ST Liberty SW License Agreement V2, (the "License");
* You may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://www.st.com/software_license_agreement_liberty_v2
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
******************************************************************************
@endverbatim
@par Example Description
This example shows how to configure the TIM peripheral in PWM (Pulse Width Modulation)
mode.
The TIM3CLK frequency is set to SystemCoreClock / 3 (Hz), to get TIM3 counter
clock at 8 MHz the Prescaler is computed as following:
- Prescaler = (TIM3CLK / TIM3 counter clock) - 1
SystemCoreClock is set to 32 MHz for Ultra Low Power Medium-Density and High-Density
Devices.
The TIM3 is running at 12 KHz: TIM3 Frequency = TIM3 counter clock/(ARR + 1)
= 8 MHz / 666 = 12 KHz
The TIM3 CCR1 register value is equal to 333, so the TIM3 Channel 1 generates a
PWM signal with a frequency equal to 12 KHz and a duty cycle equal to 50%:
TIM3 Channel1 duty cycle = (TIM3_CCR1/ TIM3_ARR + 1)* 100 = 50%
The TIM3 CCR2 register value is equal to 249, so the TIM3 Channel 2 generates a
PWM signal with a frequency equal to 12 KHz and a duty cycle equal to 37.5%:
TIM3 Channel2 duty cycle = (TIM3_CCR2/ TIM3_ARR + 1)* 100 = 37.5%
The TIM3 CCR3 register value is equal to 166, so the TIM3 Channel 3 generates a
PWM signal with a frequency equal to 12 KHz and a duty cycle equal to 25%:
TIM3 Channel3 duty cycle = (TIM3_CCR3/ TIM3_ARR + 1)* 100 = 25%
The TIM3 CCR4 register value is equal to 83, so the TIM3 Channel 4 generates a
PWM signal with a frequency equal to 12 KHz and a duty cycle equal to 12.5%:
TIM3 Channel4 duty cycle = (TIM3_CCR4/ TIM3_ARR + 1)* 100 = 12.5%
The PWM waveform can be displayed using an oscilloscope.
@par Directory contents
- TIM/PWM_Output/stm32l1xx_conf.h Library Configuration file
- TIM/PWM_Output/stm32l1xx_it.c Interrupt handlers
- TIM/PWM_Output/stm32l1xx_it.h Interrupt handlers header file
- TIM/PWM_Output/main.c Main program
- TIM/PWM_Output/system_stm32l1xx.c STM32L1xx system source file
@note The "system_stm32l1xx.c" is generated by an automatic clock configuration
system and can be easily customized to your own configuration.
To select different clock setup, use the "STM32L1xx_Clock_Configuration_V1.1.0.xls"
provided with the AN3309 package available on
ST Microcontrollers
@par Hardware and Software environment
- This example runs on STM32L1xx Ultra Low Power High-, Medium-Density and Medium-Density Plus Devices.
- This example has been tested with STMicroelectronics STM32L152D-EVAL (STM32L1xx
Ultra Low Power High-Density) and STM32L152-EVAL (STM32L1xx Ultra Low
Power Medium-Density) evaluation board and can be easily tailored to any
other supported device and development board.
- STM32L152-EVAL and STM32L152D-EVAL Set-up
- Connect the following pins(TIM3 full remapping pins) to an oscilloscope to monitor the different
waveforms:
- PA.06: (TIM3_CH1)
- PA.07: (TIM3_CH2)
- PB.00: (TIM3_CH3)
- PB.01: (TIM3_CH4)
@par How to use it ?
In order to make the program work, you must do the following:
- Copy all source files from this example folder to the template folder under
Project\STM32L1xx_StdPeriph_Templates
- Open your preferred toolchain
- Rebuild all files and load your image into target memory
- Run the example
@note
- Ultra Low Power Medium-density devices: - STM32L151x6xx, STM32L151x8xx, STM32L151xBxx, STM32L152x6xx,
STM32L152x8xx, STM32L152xBxx, STM32L151x6xxA, STM32L151x8xxA,
STM32L151xBxxA, STM32L152x6xxA, STM32L152x8xxA and STM32L152xBxxA
- STM32L100x6xx, STM32L100x8xx and STM32L100xBxx
- Ultra Low Power Medium-density Plus devices: - STM32L151xCxx, STM32L152xCxx and STM32L162xCxx
- STM32L100xCxx
- Ultra Low Power High-density devices: STM32L151xDxx, STM32L152xDxx and STM32L162xDxx
- Ultra Low Power XL-density devices: STM32L151xExx, STM32L152xExx and STM32L162xExx
*
© COPYRIGHT STMicroelectronics
*/