zoukankan      html  css  js  c++  java
  • 基于STM32Cube的脉冲输出

    方法一:定时器定时I/O反转生成脉冲波形
    1、建立STM32Cube选择STM32F429,我使用的STM32F429-discovery开发板,晶振是8MHz,时钟配置为180M,这样定时器内部时钟源为90HHz。
    2、使能TIM2,时钟源选择内部时钟,如下图所示:
                                                               
    3、这里采用通用定时器产生定时中断,在中断里面翻转芯片管脚,定时器配置如下:
                                       
                                         
    4、生成源代码,设置在keil 5环境下,编译工程;
    5、中断回调函数处进行管脚翻转,另为了能够实现不同频率的脉冲波,同时添加了修改定时器的周期的命令,如下图所示:
                                         
    在主循环之前需要打开定时器,使用函数:HAL_TIM_Base_Start_IT(&htim2);
    方法二:使用定时器的PWM波功能可生成脉冲波形
    1、建立STM32Cube工程,与方法一相同;
    2、使能TIM2,时钟源选择内部时钟,选择channel 1,PWM Generation CH1功能,如下图所示;
                                                                            
    3、定时器配置如下图所示:
                                      
                                      
    4、生成源代码,我的环境是Keil 5;
    5、为了能够实现不同频率的脉冲波,我特意在中断回调函数的地方,添加了修改定时器的周期的命令,如下图所示
                                   
       在主循环之前打开定时器,使用函数:HAL_TIM_OC_Start_IT(&htim2, TIM_CHANNEL_1);
    注意:在这里必须直接使用寄存器设置,方能实现周期变化,如果使用HAL_TIM_OC_Init(),则波形出现乱码,具体原因没有查明;
    6、最终通过示波器,查看输出波形如下图所示:
                                     
    刚好10个周期为一个循环,高电平脉宽不变,而周期逐次增大。




  • 相关阅读:
    hdu 1171 Big Event in HDU (01背包)
    Codeforces 86C Genetic engineering (AC自己主动机+dp)
    ANDROID L——Material Design具体解释(动画篇)
    三层架构理论篇
    Linux下的tree命令 --Linux下文件夹树查看
    排序之冒泡排序、插入排序及希尔排序
    TRIZ系列-创新原理-9~11-预先反作用原理、预处理原理、预先防范原理
    Linux 获得机器的IP和网卡信息
    Hackerrank
    Android编程之Fragment使用动画造成Unknown animation name: objectAnimator异常
  • 原文地址:https://www.cnblogs.com/121792730applllo/p/5049115.html
Copyright © 2011-2022 走看看