STM8S003F输出PWM波

2019-07-19 21:03发布

用示波器检测没有PWM波输出
PWM波输出程序如下:

PC_DDR=0X30;  //PC4(TIM1_CH4),PC5(TIM2_CH1)为PWM波的输出,设置为推挽输出模式,其他没用到的I/O口上拉输入
PC_CR1=0XFF;
PC_ODR = 0X00;

CLK_PCKENR1=0xA0;           //使能外部时钟TIM1,TIM2;
  TIM2_PSCR=0x03;           //计数器的时钟频率为1MHz  8/2^3=1
  TIM2_CCMR1 |= 0x70;  // PWM 模式 2  通道1输出
  TIM2_CCER1 |= 0x03;         // CC1配置为输出
  TIM2_ARRH = (u8)(PWM_Hz>>8);           // 配置PWM分辨率为10位,PWM_Hz=500
  TIM2_ARRL = (u8)(PWM_Hz);           // PWM频率=1M/500=2KHz   0x01f4 频率为2K
  TIM2_CCR1H = (u8)(P_CCR1>>8);
  TIM2_CCR1L = (u8)(P_CCR1);   //高8位直接舍去
  TIM2_CR1 |= 0x01;      

TIM1_PSCRH=0X00;
TIM1_PSCRL=0x07;            //计数器的时钟频率为1MHz   8/(7+1)=1
TIM1_CCMR4 |= 0x70;
TIM1_CCER2 |=0x30;
TIM1_ARRH = (u8)(PWM_Hz>>8);
TIM1_ARRL = (u8)(PWM_Hz);
TIM1_CCR4H =(u8)(P_CCR2>>8);
TIM1_CCR4L =(u8)(P_CCR2);
TIM1_CR1 |= 0x01;

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。