手把手从0到1教你做STM32+FreeRTOS智能家居--第8篇之红外按键接收

一、硬件设计

IRRX红外接收引脚连接stm32的PA1对应到定时器TIM2的通道2。

二、软件设计

(3)红框部分:把定时器设置为上升沿捕获,计数的频率为1MHz(72M/72),自动重装载值为10000,溢出的时间为10000*us = 10ms。开启定时器输入捕获更新中断,配置为上升沿捕获,定时器计数溢出时产生更新中断。

ir.c文件

#include "ir.h"

extern TIM_HandleTypeDef htim2;

/* 遥控器接收状态
 * [7]  : 收到了引导码标志
 * [6]  : 得到了一个按键的所有信息
 * [5]  : 保留
 * [4]  : 标记上升沿是否已经被捕获
 * [3:0]: 溢出计时器
 */
uint8_t g_remote_sta = 0;
uint32_t g_remote_data = 0; /* 红外接收到的数据 */
uint8_t  g_remote_cnt = 0;  /* 按键按下的次数 */
 
uint8_t log1;
/**
 * @brief       定时器更新中断回调函数
 * @param       htim:定时器句柄
 * @retval      无
 */
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
    if (htim->Instance == TIM2)
    {
        if (g_remote_sta & 0x8
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值