RT-Thread+STM32L475VET6实现红外遥控实验


文章目录

  • 前言
  • 一、板载资源介绍
  • 二、具体步骤
    • [1. 确定红外接收头引脚编号](#1. 确定红外接收头引脚编号)
    • [2. 下载infrared软件包](#2. 下载infrared软件包)
    • [3. 配置infrared软件包](#3. 配置infrared软件包)
    • [4. 打开STM32CubeMX进行相关配置](#4. 打开STM32CubeMX进行相关配置)
      • [4.1 使用外部高速时钟,并修改时钟树](#4.1 使用外部高速时钟,并修改时钟树)
      • [4.2 打开定时器16(定时器根据自己需求调整)](#4.2 打开定时器16(定时器根据自己需求调整))
      • [4.3 打开串口](#4.3 打开串口)
      • [4.4 生成工程](#4.4 生成工程)
    • [5. 打开HWTIMER设备驱动](#5. 打开HWTIMER设备驱动)
    • [6. 配置定时器](#6. 配置定时器)
    • [7. 编译,烧录](#7. 编译,烧录)

前言

本文采用开发板为STM32L475VET6(潘多拉开发板),使用RT_Thread Studio基于芯片开发模式,完成红外遥控接收实验


一、板载资源介绍


二、具体步骤

1. 确定红外接收头引脚编号

STM32L475VET6(潘多拉开发板)红外接收头对应的引脚为PB1,17号,可参考工程项目中的drv.gpio.c确定

2. 下载infrared软件包

使用NEC协议

3. 配置infrared软件包

这里的定时器作者试过timer16可以,timer3不可以

4. 打开STM32CubeMX进行相关配置

4.1 使用外部高速时钟,并修改时钟树


4.2 打开定时器16(定时器根据自己需求调整)

4.3 打开串口

4.4 生成工程

5. 打开HWTIMER设备驱动

在RT-Thread Setting的组件栏中

6. 配置定时器

RT-Thread+STM32L475VET6定时器配置

7. 编译,烧录

测试代码

cpp 复制代码
#include <rtthread.h>
#include <rtdevice.h>
#include <board.h>
#include "decoder.h"

/* defined the LED0 pin: PE7 */
#define LEDG    GET_PIN(E, 8)

int main(void)
{
    int count = 1;
    /* set LED0 pin mode to output */
    rt_pin_mode(LEDG, PIN_MODE_OUTPUT);

    rt_pin_write(LEDG, PIN_HIGH);
    struct infrared_decoder_data Tdata;
    ir_select_decoder("nec");
    while (count++)
    {
        if(infrared_read("nec", &Tdata)==RT_EOK){
            rt_pin_write(LEDG, PIN_LOW);
            HAL_Delay(200);
            printf("recive:  addr:0x%02X key:0x%02X repeat:%d \n",
                    Tdata.data.nec.addr,Tdata.data.nec.key,Tdata.data.nec.repeat);
        }
        rt_pin_write(LEDG, PIN_HIGH);
    }

    return RT_EOK;
}

按下遥控器,终端会有显示


相关推荐
蓝斯49713 小时前
从.到实现一个Windows上的虚拟hid键盘设备
windows·单片机·计算机外设
熙芯XiChip13 小时前
硬实时与软实时RTOS核心区别
嵌入式硬件
伟大的前程14 小时前
unsigned int 定义的变量 在 电脑的 64 位系统中 和 32 位 cortex-m0 和 8 位的 51 单片机
单片机·嵌入式硬件
小渔村的拉线工14 小时前
1.HPM6E80 解析芯片整体工作原理和存储架构
单片机·嵌入式硬件·mcu·架构·hpm6e80
熙芯XiChip15 小时前
CAN与CANopen的本质区别
单片机
lilihewo15 小时前
Altium Designer 封装库的创建(分享pcb 3D封装库)
嵌入式硬件·51单片机
神罚天下ET16 小时前
典型arm位单片机启动流程(从上电到main.c)
c语言·arm开发·单片机
碧海银沙音频科技研究院17 小时前
蓝牙耳机使用WSDF5361锂保芯片进入船运模式实现方法
嵌入式硬件·算法
Zevalin爱灰灰18 小时前
模拟信号链电路——基于TL431的电压基准电路
单片机·嵌入式硬件
csdn杰哥18 小时前
瑞萨单片机开发教程[二十七] DTC 外部中断触发传输实验
单片机·嵌入式硬件·mongodb·瑞萨·ra6m5