zoukankan      html  css  js  c++  java
  • 重学STM32---(四)

      今天把定时器看了一遍,觉得很有必要把记下来时常看一看

    定时器3初始化,很简单,开时钟,装载ARR,PSC寄存器就行了,想要开什么中断在DIER寄存器设置就行了(不过当时我花了很长时间,用寄存器真的不熟)

    void Timer3_init(u16 arr,u16 psc)
    {
    RCC->APB1ENR |= 1<<0;


    TIM3->CR1 |= (1<<7)|(1<<4); //自动预装载,向下计数

    TIM3->PSC = psc;   //预分频寄存器     72000000/psc     定时器工作频率

    TIM3->ARR = arr;    //装载值    

    TIM3->DIER |= 1<<0;

    MY_NVIC_Init (3,3,TIM3_IRQn,2);

    TIM3->CR1 |= (1<<0); //定时器使能
    }

    //中断函数
    void TIM3_IRQHandler()
    {
    while(TIM3->SR & (1<<0))
    {
    TIM3->SR &= ~(1<<0);
    LED1 = !LED1;
    }
    }

    后来又用定时器的PWM利用led编了呼吸灯的程序:(花了很长时间,,,)

    先开启时钟(定时器的,特别一个辅助时钟,不开不能正常工作),再设置CHx所在的IO口为复用推挽输出,需要重映射的使用AFIO->MAPR寄存器,然后再配置TIM3->CCER,TIM3->CCMR1 寄存器,向上向下计数,高低电平有效,pwm1还是pwm2,自己选择就好了,看情况决定

    void Timer3_pwm_Init(u16 arr,u16 psc)
    {
    RCC->APB1ENR |= 1<<1; //使能TIM3
    RCC->APB2ENR|=1<<0; //开启辅助时钟          //必须要开定时间1时钟,说是什么辅助时钟,到现在还不知道怎么回事,
    RCC->APB2ENR|=1<<3; //使能PORTB时钟

    MYGPIOB ->CRL &= ~0x00F00000; //设置PB5为推挽复用输出
    MYGPIOB ->CRL |= 0x00B00000;



    AFIO->MAPR&=0XFFFFF3FF; //清除MAPR的[11:10]
    AFIO->MAPR|=1<<11; //部分重映像,TIM3_CH2->PB5



    TIM3->ARR = arr;
    TIM3->PSC = psc;

    TIM3->CCER |= 1<<4; //通道2输出使能
    TIM3->CR1 |= (1<<7); //自动预装载,向下计数               这两个可以默认,自己知道就行了

    TIM3->CCER |= (1<<5); //输出低电平有效

    TIM3->CCMR1 |= 1<<11; //CH2使能输出
    TIM3->CCMR1 &= ~(7<<12); //清零bit4-6
    TIM3->CCMR1 |= (6<<12); //设置110,为pwm1模式

    TIM3->CR1 |= (1<<0); //使能定时器
    }

    主函数:(这个自己看着写就行了)

    int main()
    {
    u8 dir = 0;
    short crr_count = 0;
    Stm32_Clock_Init (9);
    LED_Init ();
    delay_init(72);
    Timer3_Init(899,0);

    while(1)
    {
    delay_ms(10);
    if (dir == 0)
    crr_count ++;
    else
    crr_count --;
    if (crr_count > 899)
    dir = 1;
    if (crr_count < 0)
    dir = 0;
    TIM3->CCR2 = crr_count ;
    }
    }

  • 相关阅读:
    C#与独孤九剑
    C#系列视频教程字符和字符串操作
    【设计模式】迪米特法则
    【设计模式】考题 模板方法模式
    C#字符和字符串
    【热门技术】解决Win7 下面很多软件安装不兼容的问题
    C#使电脑发出嗡鸣声
    C#视频教程下载(第一章)
    【设计模式】牛市股票还会亏钱 外观模式
    【设计模式】好菜每回味不同 建造者模式
  • 原文地址:https://www.cnblogs.com/qigaohua/p/5326936.html
Copyright © 2011-2022 走看看