欢迎光临散文网 会员登陆 & 注册

STM32CUBEMX(5)--自定义红外NEC解码,定时器TIM捕获方式

2021-05-31 13:02 作者:记帖  | 我要投稿

概述

    本篇文章主要介绍如何使用STM32CubeMX对红外波形进行解码,并通过串口打印。

硬件准备

     首先需要准备一个开发板,这里我准备的是NUCLEO-F030R8的开发板:  

选择芯片型号

配置时钟源

    HSE与LSE分别为外部高速时钟和低速时钟,在本文中使用内置的时钟源,故都选择Disable选项,如下所示。

配置时钟树

    STM32F0的最高主频到48M,所以配置48即可。

  串口配置

    本次实验使用的串口1进行串口通信,波特率配置为115200。

定时器配置

    本次使用定时器1的通道2进行检测,配置入下。

红外接收管

    这里使用VS838的接收管,如下所示。

红外编码

    NEC协议载波:38khz

    其逻辑1与逻辑0的表示如图所示。

    NEC协议格式。

  自定义红外编码

    协议如下。

代码

    在main.c中,添加头文件,若不添加会出现 identifier "FILE" is undefined报错。

    红外接收口定义。

    函数声明和串口重定向。

    定时器配置。

    红外接收代码

  • [4400,5000]是用于捕获4.5ms的信号

  • [550,700]是用于捕获560us的数据0信号

  • [1100,1250]是用于捕获1120us的数据1信号

  • [2000,2500]是用于捕获2240us的截止位信号

    主函数。

结果演示

    红外连续发送5次码值,发送分别为:

  • 1011(11)

  • 11 1010(58)

  • 11 0001(49)

  • 11 1111(63)

  • 11 0011(51)

    分别如下所示:

教学视频




STM32CUBEMX(5)--自定义红外NEC解码,定时器TIM捕获方式的评论 (共 条)

分享到微博请遵守国家法律