当前位置: 首页 > news >正文

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


文章目录

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

测试代码

#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;
}


按下遥控器,终端会有显示
在这里插入图片描述


相关文章:

  • 开题报告——基于Spring Boot的垃圾分类预约回收系统
  • 深度学习pytorch之19种优化算法(optimizer)解析
  • 【算法】动态规划专题⑦ —— 多重背包问题 + 二进制分解优化 python
  • umi react+antd 判断渲染消息提示、input搜索、多选按钮组
  • 【核心算法篇十二】《深入解剖DeepSeek多任务学习:共享表示层的24个设计细节与实战密码 》
  • 数组和指针常见笔试题(深度剖析)
  • Ubuntu:20.04更新cmake到更高版本
  • WebGPU 中的缓冲区输入速率:逐顶点与逐实例模式详解
  • FreeSwitch中mod_dptools和mod_easyroute两个模块及应用场景
  • DeepSeek VS ChatGPT-速度、准确性和成本
  • 使用GDI+、文件和目录和打印API,批量将图片按文件名分组打包成PDF
  • mysql兼容模式下smallint类型修改成boolean类型失败的处理办法
  • 使用 GPTQ 进行 4 位 LLM 量化
  • 校园网架构设计与部署实战
  • 一个网址,详细请求流程
  • leetcode150-逆波兰表达式求值
  • web入侵实战分析-常见web攻击类应急处置实验1
  • LeetCode:两两交换链表中的节点
  • 鸿蒙应用中使用本地存储实现数据共享
  • 教学资料档案管理系统
  • 中国海警依法驱离日非法进入我钓鱼岛领海船只
  • 金融监管局:已设立74支私募股权投资基金,支持投资科技创新企业
  • 上海如何为街镇营商环境赋能?送政策、配资源、解难题、强活力
  • 明查|这是“C919迫降在农田”?实为飞机模型将用于科普体验
  • “子宫内膜异位症”相关论文男性患者样本超六成?福建省人民医院展开调查
  • 台湾花莲县海域发生5.7级地震,震源深度15公里