×
单片机 > 单片机程序设计 > 详情

使用STM32CubeMX捕获外来PWM高低电平并在串口调试助手显示

发布时间:2020-05-30 发布时间:
|

大家好,本人也是最近才开始接触STM32Cube,它极大的提高了软件开发的速度。


闲话少说,切入正题。本人使用的芯片是STM32L151C8T6一款低功耗的芯片。前提条件是:已知外来传感器PWM波周期是1S,通过低电平脉宽来发送有效数据,我们使用PWM捕获,将低电平时间显示在串口调试助手。所使用的管脚配置图如下:

接下来本人将详细的操作顺序一步一步给出,方便初学者学习。


1.配置RCC时钟,本人使用外部高速时钟,如下图。



2.配置PWM输入捕获通道,这里本人采用到的是TIM2CH1(这个根据自己MCU情况设定,没有太多要求),如下图:


3.配置串口输出,这里我们只是用到了RX,如下图:


4.配置时钟树,这里只需要配置两个参数即可,然后回车(至于时钟树怎么配置这里忽略,不做详细介绍,网上资料一大堆)

6.根据需要配置自己串口的波特率,这里我设置的事9600,当然常见和默认是115200.



7.定时器2配置,这里系统时钟是32MHZ,3200进行分频后是10KHZ,也就是说计数10000次就是1S。这里我设定了20000,也就是计数2S肯定能捕获1S周期的PWM。并在GPIO下进行如下设置。至此,配置过程结束,打开代码。


8.在打开工程下,本人将一一介绍变动的程序,没有作变动的,不做任何介绍。在串口.C文件最后面添加打印映射函数,也就是下图这一段代码:

9.在初始化程序中添加HAL_TIM_IC_Start(&htim2, TIM_CHANNEL_1);和  HAL_TIM_IC_Start_IT(&htim2,TIM_CHANNEL_1);  在main.c后面添加下图所示的回调函数。




10,编译,下载之后在串口调试助手上面显示如下:





『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
ARM 汇编的必知必会