智能车制作

标题: STM32F4演示例程之带死区互补PWM输出 [打印本页]

作者: demon    时间: 2012-5-20 23:48
标题: STM32F4演示例程之带死区互补PWM输出
[attach]24762[/attach]
/************************************
    标题:死区互补PWM
    软件平台:IAR for ARM6.21
    硬件平台:stm32f4-discovery
    主频:168M
    描述:三对死区互补PWM、一路普通PWM
          PE8 ----- TIM1_CH1N
          PE9 ----- TIM1_CH1
          PE10 ----- TIM1_CH2N
          PE11 ----- TIM1_CH2
          PE12 ----- TIM1_CH3N
          PE13 ----- TIM1_CH3
          PE14 ----- TIM1_CH4
   
    author:小船
    data:2012-02-09
*************************************/
#include <stm32f4xx.h>
void main ()
{   
  SCB->AIRCR = 0x05AF0000 | 0x400;  //中断优先级分组 抢占:响应=3:1
  
  RCC->AHB1ENR |= (1<<4); //打开GPIOE时钟
  GPIOE->MODER |= 0X2AAA0000;//PE8、9、10、11、12、13、14第二功能
        //推挽输出
  GPIOE->OSPEEDR |= 0x3fff0000;//速度100m
  GPIOE->PUPDR |= 0x15550000;//上拉  
  
  //PE8、9、10、11、12、13、14第二功能AF1
  GPIOE->AFR[1] |= 0x01111111;
  
  RCC->APB2ENR |= (1<<0); //打开TIM1时钟
  TIM1->PSC = 167; //对时钟168M进行168分频,使得计数频率为1M
  TIM1->ARR = 10000;  //周期10ms
  TIM1->EGR |= 1; //产生一次更新事件
  
  TIM1->CCMR1 |= 0x6060;//PWM模式1
  TIM1->CCMR2 |= 0x6060;//PWM模式1
  
  TIM1->CCR1 = 8000;//设置占空比
  TIM1->CCR2 = 6000;
  TIM1->CCR3 = 4000;
  TIM1->CCR4 = 2000;
  
  TIM1->CCER |= 0x1ddd;//使能比较输出
  
  TIM1->CCMR1 |= 0x0808;//启动预装载
  TIM1->CCMR2 |= 0x0808;
  
  TIM1->BDTR|=1<<15;    // 刹车使能位置1,开启所有输出通道
  TIM1->BDTR|=0xCD;     // 死区时间设定
  TIM1->CR1 |= 1; //开始计时
  while(1)
  {
  };
}


作者: 0726silence    时间: 2012-5-21 12:51
沙发,嘿嘿顶,正打算学32 的




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2