// SPDX-License-Identifier: GPL-3.0-only /* * Copyright (c) 2008-2023 100askTeam : Dongshan WEI * Discourse: https://forums.100ask.net */ /* Copyright (C) 2008-2023 深圳百问网科技有限公司 * All rights reserved * * * 免责声明: 百问网编写的文档,仅供学员学习使用,可以转发或引用(请保留作者信息),禁止用于商业用途! * 免责声明: 百问网编写的程序,可以用于商业用途,但百问网不承担任何后果! * * * 本程序遵循GPL V3协议,使用请遵循协议许可 * 本程序所用的开发板: DShanMCU-F103 * 百问网嵌入式学习平台:https://www.100ask.net * 百问网技术交流社区: https://forums.100ask.net * 百问网官方B站: https://space.bilibili.com/275908810 * 百问网官方淘宝: https://100ask.taobao.com * 联系我们(E-mail): weidongshan@qq.com * * 版权所有,盗版必究。 * * 修改历史 版本号 作者 修改内容 *----------------------------------------------------- * 2023.08.04 v01 百问科技 创建文件 *----------------------------------------------------- */ #include "driver_ir_sender.h" #include "driver_lcd.h" #include "driver_timer.h" #include "stm32f1xx_hal.h" #include "tim.h" #define IR_SENDER_GPIO_GROUP GPIOA #define IR_SENDER_GPIO_PIN GPIO_PIN_8 #define IR_SENDER_CHANNEL TIM_CHANNEL_1 extern TIM_HandleTypeDef htim1; static TIM_HandleTypeDef *g_HPWM_IRSender = &htim1; /********************************************************************** * 函数名称: IRSender_Init * 功能描述: 红外发送器的初始化函数 * 输入参数: 无 * 输出参数: 无 * 返 回 值: 无 * 修改日期: 版本号 修改人 修改内容 * ----------------------------------------------- * 2023/08/04 V1.0 韦东山 创建 ***********************************************************************/ void IRSender_Init(void) { TIM_OC_InitTypeDef sConfig; HAL_TIM_Base_DeInit(g_HPWM_IRSender); g_HPWM_IRSender->Instance = TIM1; g_HPWM_IRSender->Init.Prescaler = 0; g_HPWM_IRSender->Init.CounterMode = TIM_COUNTERMODE_UP; g_HPWM_IRSender->Init.Period = 1894; /* 38KHz */ g_HPWM_IRSender->Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; g_HPWM_IRSender->Init.RepetitionCounter = 0; g_HPWM_IRSender->Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE; HAL_TIM_Base_Init(g_HPWM_IRSender); sConfig.OCMode = TIM_OCMODE_PWM1; // PWM 输出的两种模式:PWM1 当极性为低,CCR= 0; j--) { HAL_TIM_PWM_Start(g_HPWM_IRSender, IR_SENDER_CHANNEL); udelay(560); HAL_TIM_PWM_Stop(g_HPWM_IRSender, IR_SENDER_CHANNEL); if (datas[i] & (1<