⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pwm.c

📁 stm32初级例程
💻 C
字号:
/*----------------------------------------------------------------------------
QQ: 958664258
21IC用户名:banhushui
交流平台:http://blog.21ic.com/user1/5817/index.html
淘宝店铺:http://shop58559908.taobao.com
旺旺:半壶水电子
编译器版本:MDK4.12
 *---------------------------------------------------------------------------*/

#include <stm32f10x_lib.h>                        // STM32F10x Library Definitions
#include "STM32_Init.h"                           // STM32 Initialization


unsigned short Ccr = 0;                // Capture , Compare value
int Dir = 1;                           // in- decrease CCR

/*------------------------------------------------------------------------------
  Timer4 Update Interrupt Handler
 *------------------------------------------------------------------------------*/
void TIM4_IRQHandler(void)
{
   if (TIM4->SR & (1 << 0))
   {
      // UIF set?
      // lower limit reached ? move up
      //判断占空比到最小
      if (Ccr == 0)
         Dir = 1;                     
      // upper limit reached ? move down
      //判断占空比到最大
      if (Ccr == 100)
         Dir = -1;
      Ccr = Ccr + Dir;   
      TIM4->CCR3 = Ccr;                             // change ccr
      TIM4->CCR4 = 100 - Ccr;                       // change ccr

      TIM4->SR &= ~(1 << 0);                          // clear UIF flag
   }
} // end TIM4_IRQHandler

/*----------------------------------------------------------------------------
  MAIN function
 *----------------------------------------------------------------------------*/
int main(void)
{
   stm32_Init();                                  // STM32 setup

   while (1)
   {
      // Loop forever
       ;} // end while
} // end main


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -