• 大小: 920KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-23
  • 语言: 其他
  • 标签: PWM  

资源简介

对于STM32同一定时器各通道产生不同的PWM,程序写得简单,易懂,多多交流学习一下,有用处哦。

资源截图

代码片段和文件信息

/*include------------------------------------------*/
#include “STM32f10x_lib.h“

/*Private variables--------------------------------*/
u16 CCR2_TIM3=250;
  
/*Private function prototypes----------------------*/
void RCC_Configutation(void);
void GPIO_Configuration(void);
void TIM3_Configuration(void);
void TIM3_PWM(void); 
void Delay(vu32 nCount); 


/****************************************************
*函数名:main 主程序
****************************************************/
int main (void)
{
  #ifdef DEBUG
 debug();
 #endif

  RCC_Configutation();  //RCC初始化
  GPIO_Configuration();  //GPIO初始化
  TIM3_Configuration();  //TIM2初始化


  TIM3_PWM();

  while (1) 
  {
  }

}


/****************************************************
*函数名:RCC_Configutation 配置不同的系统时钟
****************************************************/
void RCC_Configutation(void)
{
 ErrorStatus HSEStartUpStatus;
 RCC_DeInit();
 RCC_HSEConfig(RCC_HSE_ON);   //使能外部晶振,配置为外部高速时钟
 HSEStartUpStatus = RCC_WaitForHSEStartUp();   //等待外部晶振稳定
 if(HSEStartUpStatus == SUCCESS)
 {
  RCC_HCLKConfig(RCC_SYSCLK_Div1);   //HCLK(AHB) = SYSCLK  将系统时钟进行分频后,作为AHB总线时钟
  RCC_PCLK1Config(RCC_HCLK_Div2);   //PCLK1(APB1) = HCLK/2 将HCLK时钟2分频后给低速外部总线 36MHz
  RCC_PCLK2Config(RCC_HCLK_Div1);   //PCLK2(APB2) = HCLK   将HCLK时钟配置给高速外部总线  72MHZ
  FLASH_SetLatency(FLASH_Latency_2);   //设置代码延时值为2个周期
  FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);    //使能FLASH预取缓冲区
  RCC_PLLConfig(RCC_PLLSource_HSE_Div1 RCC_PLLMul_9);//PLLCLK = 8MHz * 9 = 72MHz
  RCC_PLLCmd(ENABLE);   //使能PLL
  while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)  //等待PLL有效
  {  }
  RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);   //以PLL作为系统时钟源,即系统时钟SYSCLK来自PLL输出
  while(RCC_GetSYSCLKSource()!=0x08)   //等待PLL成为系统时钟源有效
  {  }
 }
                                                      //下面是外设总线上所挂的外部设备时钟的配置
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA ENABLE);
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB ENABLE);
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF ENABLE);
 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3 ENABLE);
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO ENABLE);     //开启引脚复用时钟AFIO。

}

/****************************************************
*函数名:GPIO_Configutation 配置引脚
****************************************************/
void GPIO_Configuration(void)
{
 GPIO_InitTypeDef GPIO_InitStructure;

 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;                         //PA8配置为TIM1通道1输出    转速输出
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //配置引脚为推拉输出复用功能
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //配置选定引脚速度为50MHz
 GPIO_Init(GPIOA &GPIO_InitStructure);

}  


/****************************************************
 //输出频率400Hz   72周期  预分频2500
****************************************************/    
void TIM3_Configuration(void)
{
 TIM_TimebaseInitTypeDef  TIM3_TimebaseInitStructure;  //定时器初始化结构体
 TIM_DeInit(TIM3);    

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2012-10-01 21:54  TIM3\
     文件         497  2012-11-12 22:16  TIM3\Jlink Regs CM3.txt
     文件       99944  2012-11-12 22:17  TIM3\JlinkLog.txt
     文件         285  2012-11-02 09:08  TIM3\JlinkSettings.ini
     目录           0  2012-11-01 22:49  TIM3\Source\
     目录           0  2012-11-01 22:49  TIM3\Source\FWLib\
     目录           0  2012-11-01 22:49  TIM3\Source\FWLib\inc\
     文件        2225  2008-09-23 09:19  TIM3\Source\FWLib\inc\cortexm3_macro.h
     文件       18854  2008-09-23 09:19  TIM3\Source\FWLib\inc\stm32f10x_adc.h
     文件        6911  2008-09-23 09:19  TIM3\Source\FWLib\inc\stm32f10x_bkp.h
     文件       12279  2008-09-23 09:19  TIM3\Source\FWLib\inc\stm32f10x_can.h
     文件        1881  2008-09-23 09:19  TIM3\Source\FWLib\inc\stm32f10x_crc.h
     文件        9598  2008-09-23 09:19  TIM3\Source\FWLib\inc\stm32f10x_dac.h
     文件        2859  2008-09-23 09:19  TIM3\Source\FWLib\inc\stm32f10x_dbgmcu.h
     文件       17974  2008-09-23 09:19  TIM3\Source\FWLib\inc\stm32f10x_dma.h
     文件        5776  2008-09-23 09:19  TIM3\Source\FWLib\inc\stm32f10x_exti.h
     文件       13996  2008-09-23 09:19  TIM3\Source\FWLib\inc\stm32f10x_flash.h
     文件       19041  2008-09-23 09:19  TIM3\Source\FWLib\inc\stm32f10x_fsmc.h
     文件       14820  2008-09-23 09:19  TIM3\Source\FWLib\inc\stm32f10x_gpio.h
     文件       16213  2008-09-23 09:19  TIM3\Source\FWLib\inc\stm32f10x_i2c.h
     文件        3414  2008-09-23 09:19  TIM3\Source\FWLib\inc\stm32f10x_iwdg.h
     文件        3200  2008-09-23 09:19  TIM3\Source\FWLib\inc\stm32f10x_lib.h
     文件       28290  2008-09-23 09:19  TIM3\Source\FWLib\inc\stm32f10x_map.h
     文件       19198  2008-09-23 09:19  TIM3\Source\FWLib\inc\stm32f10x_nvic.h
     文件        3865  2008-09-23 09:19  TIM3\Source\FWLib\inc\stm32f10x_pwr.h
     文件       14783  2008-09-23 09:19  TIM3\Source\FWLib\inc\stm32f10x_rcc.h
     文件        3619  2008-09-23 09:19  TIM3\Source\FWLib\inc\stm32f10x_rtc.h
     文件       18326  2008-09-23 09:19  TIM3\Source\FWLib\inc\stm32f10x_sdio.h
     文件       13782  2008-09-23 09:19  TIM3\Source\FWLib\inc\stm32f10x_spi.h
     文件        3212  2008-09-23 09:19  TIM3\Source\FWLib\inc\stm32f10x_systick.h
     文件       47203  2008-09-23 09:19  TIM3\Source\FWLib\inc\stm32f10x_tim.h
............此处省略100个文件信息

评论

共有 条评论