X2UWaterWmbusEEI/app/UWater_ir_app.c

332 lines
10 KiB
C
Raw Normal View History

2024-06-03 15:49:39 +08:00
/*
* File: __GP22GAS_IR_APP_C
* Author:
*
* Created on<EFBFBD><EFBFBD>2016-3-7
*/
#ifdef __cplusplus
extern "C"
{
#endif
#include "UWater_ir_app.h"
#include "UWater_frame_app.h"
#include "UWater_timer1uS_driver.h"
#include "UWater_uart_driver.h"
#include "UWater_lcd_app.h"
#include "UWater_key_app.h"
#include "UWater_DebugPrint.h"
u8 s_g_ir_control_state = IR_CONTROL_S0;
u8 s_g_ir_state = 0;
/************************************************
Function: void UartIrOpen()
Description: <EFBFBD>򿪺<EFBFBD><EFBFBD><EFBFBD>
Input:
return:
Others:
*************************************************/
void UartIrOpen(void)
{
IR_38KCarrier_Close();
Gpio_WriteOutputIO(IR_UART_CTL_PORT, IR_UART_CTL_PIN, FALSE);
UartInit(IR_UART_COM, BAUD2400, DATA_BIT_8, STOPBIT_1, UART_EVEN_PARITY, UART_LPUART_Disable);
}
/************************************************
Function: void UartIrClose()
Description: <EFBFBD>رպ<EFBFBD><EFBFBD><EFBFBD>
Input:
return:
Others:
*************************************************/
void UartIrClose(void)
{
// Sysctrl_SetPeripheralGate(SysctrlPeripheralBaseTim, FALSE); //Base Timer<65><72><EFBFBD><EFBFBD>ʱ<EFBFBD>ӹر<D3B9>
Bt_M0_Stop(TIM2);
UartPreSleep(IR_UART_COM);
Gpio_WriteOutputIO(IR_UART_CTL_PORT, IR_UART_CTL_PIN, TRUE);//<2F><>Դ<EFBFBD><D4B4><EFBFBD>ƽſ<C6BD>©<EFBFBD><C2A9><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD><DFA3><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>ϵ<EFBFBD>
//<2F><><EFBFBD>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>RX<52><58>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>Ϊ<EFBFBD>˷<EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>оƬ©<C6AC><C2A9>
stc_gpio_cfg_t stcGpioCfg;
DDL_ZERO_STRUCT(stcGpioCfg);
stcGpioCfg.enDir = GpioDirOut; ///< <20>˿ڷ<CBBF><DAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
stcGpioCfg.enDrv = GpioDrvL; ///< <20>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
stcGpioCfg.enPu = GpioPuDisable; ///< <20>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-><3E><>
stcGpioCfg.enPd = GpioPdDisable;
stcGpioCfg.enOD = GpioOdDisable; ///< <20>˿ڿ<CBBF>©<EFBFBD><C2A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
stcGpioCfg.enCtrlMode = GpioAHB; ///< <20>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߿<EFBFBD><DFBF><EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD>->AHB
Gpio_Init(LPUART0_RX_PORT, LPUART0_RX_PIN, &stcGpioCfg);
Gpio_WriteOutputIO(LPUART0_RX_PORT, LPUART0_RX_PIN, FALSE);
Gpio_Init(LPUART0_TX_PORT, LPUART0_TX_PIN, &stcGpioCfg);
Gpio_WriteOutputIO(LPUART0_TX_PORT, LPUART0_TX_PIN, TRUE); //TXҲ<58><D2B2><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Gpio_Init(IR_38K_PORT, IR_38K_PIN, &stcGpioCfg);
Gpio_SetAfMode(IR_38K_PORT,IR_38K_PIN,GpioAf0); //<2F><>ͨIO
Gpio_WriteOutputIO(IR_38K_PORT, IR_38K_PIN, TRUE);//38K<38><4B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>
}
/************************************************
Function: void IrInitApp()
Description: <EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>
Input:
return:
Others:
*************************************************/
void IrInitApp(void)
{
IR_Uart_38K_Config();
//< RX <20><><EFBFBD>ƽų<C6BD>ʼ<EFBFBD><CABC>
stc_gpio_cfg_t stcGpioCfg;
DDL_ZERO_STRUCT(stcGpioCfg);
stcGpioCfg.enDir = GpioDirOut; ///< <20>˿ڷ<CBBF><DAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
stcGpioCfg.enDrv = GpioDrvL; ///< <20>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
stcGpioCfg.enPu = GpioPuDisable; ///< <20>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-><3E><>
stcGpioCfg.enPd = GpioPdDisable;
stcGpioCfg.enOD = GpioOdEnable; ///< <20>˿ڿ<CBBF>©<EFBFBD><C2A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
stcGpioCfg.enCtrlMode = GpioAHB; ///< <20>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߿<EFBFBD><DFBF><EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD>->AHB
Gpio_Init(IR_UART_CTL_PORT, IR_UART_CTL_PIN, &stcGpioCfg);
Gpio_WriteOutputIO(IR_UART_CTL_PORT, IR_UART_CTL_PIN, TRUE);
UartIrOpen();
s_g_ir_control_state = IR_CONTROL_S0;
FrameSetMsgApp(MsgOpenIr);
}
/************************************************
Function: IrIfSleepApp()
Description: <EFBFBD><EFBFBD>ѯӦ<EFBFBD>ò<EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Input:
return: 1 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Others:
*************************************************/
u8 IrIfSleepApp(void)
{
if( IR_CONTROL_S0 == s_g_ir_control_state)
{
return TRUE;
}
return FALSE;
}
u8 IrIfInS0WakeTime(void)
{
if(s_g_ir_control_state == IR_CONTROL_S0)
{
return TRUE;
}
return FALSE;
}
/************************************************
Function: IrMachineApp()
Description:
Input:
return:
Others:
*************************************************/
void IrMachineApp(void)
{
switch (s_g_ir_control_state)
{
case IR_CONTROL_S0:
{
if(FrameCheckMsgApp(MsgOpenIr))
{
FrameClearMsgApp(MsgOpenIr);
Set100msTimer(TIMER_100MS_IR_OPEN, 600);//<2F><>λ֮<CEBB><D6AE><EFBFBD><EFBFBD>ʱ60<36><30>,<2C>ر<EFBFBD>
s_g_ir_control_state = IR_CONTROL_S1;
}
else if(KeyCheckIrOpenMsg() == TRUE )//<2F><><EFBFBD><EFBFBD><E2B5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
{
KeyClearIrOpenMsg();//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
Set100msTimer(TIMER_100MS_IR_OPEN, 200);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѷ<EFBFBD>ʱ20<32><30>,<2C>ر<EFBFBD>
s_g_ir_control_state = IR_CONTROL_S1;
}
break;
}
case IR_CONTROL_S1:
{
if(TASK_IDLE == UartIfIdle(IR_UART_COM))
{
UartIrOpen();
s_g_ir_control_state = IR_CONTROL_S2;
}
break;
}
case IR_CONTROL_S2:
{
//<2F>Ǽ춨<C7BC><ECB6A8>ʱ<EFBFBD>
if((0 == Check100msTimer(TIMER_100MS_IR_OPEN)) &&
(TASK_IDLE == UartIfIdle(IR_UART_COM))&&
(10 == LcdCheckStateApp())&&
(FALSE ==GetPrintNbDataSwitch()&&
(FrameIfSleepApp() == TRUE)))
{
UartIrClose();
KeyClearIrOpenMsg();//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
s_g_ir_control_state = IR_DEAL_S0;
}
break;
}
default:
{
s_g_ir_control_state = IR_DEAL_S0;
break;
}
}
}
/*************************************************
Function: static void IR_Uart_38K_Config(void)
Description: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>38K <EFBFBD><EFBFBD><EFBFBD><EFBFBD>PWM<EFBFBD><EFBFBD><EFBFBD>ؼĴ<EFBFBD><EFBFBD><EFBFBD>
Input: <EFBFBD><EFBFBD>
Return: <EFBFBD><EFBFBD>
Others:
*************************************************/
void IR_Uart_38K_Config(void)
{
#if IR_38K_OPEN
u16 u16ArrValue;
u16 u16CntValue;
u16 u16Period;
stc_bt_mode0_cfg_t stcBtBaseCfg;
stc_gpio_cfg_t stcTIM1APort;
DDL_ZERO_STRUCT(stcTIM1APort);
DDL_ZERO_STRUCT(stcBtBaseCfg);
//PA03<30><33><EFBFBD><EFBFBD>ΪTIM2_CHB
stcTIM1APort.enDir = GpioDirOut;
Gpio_Init(IR_38K_PORT, IR_38K_PIN, &stcTIM1APort);
Gpio_SetAfMode(IR_38K_PORT,IR_38K_PIN,IR_38K_AF);
Sysctrl_SetPeripheralGate(SysctrlPeripheralBaseTim, TRUE); //Base Timer<65><72><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ʹ<EFBFBD><CAB9>
stcBtBaseCfg.enWorkMode = BtWorkMode0; //<2F><>ʱ<EFBFBD><CAB1>ģʽ
stcBtBaseCfg.enCT = BtTimer; //<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Ϊ<EFBFBD>ڲ<EFBFBD>PCLK
stcBtBaseCfg.enPRS = BtPCLKDiv1; //PCLK/3
stcBtBaseCfg.enCntMode = Bt16bitArrMode; //<2F>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>16λ<36><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><>ʱ<EFBFBD><CAB1>
stcBtBaseCfg.bEnTog = TRUE;
stcBtBaseCfg.bEnGate = FALSE;
stcBtBaseCfg.enGateP = BtGatePositive;
Bt_Mode0_Init(TIM2, &stcBtBaseCfg); //TIM2 <20><>ģʽ0<CABD><30><EFBFBD>ܳ<EFBFBD>ʼ<EFBFBD><CABC>8 *
u16Period = Sysctrl_GetPClkFreq() /(2 * 38000);
u16ArrValue = 0x10000 - u16Period;
Bt_M0_ARRSet(TIM2, u16ArrValue); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ(ARR = 0x10000 - <20><><EFBFBD><EFBFBD>)
u16CntValue = 0x10000 - u16Period;
Bt_M0_Cnt16Set(TIM2, u16CntValue); //<2F><><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD>ֵ
Bt_M0_Enable_Output(TIM2, TRUE); //TIM2 <20>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>
#endif
}
//
void IR_Uart_38K_PreSleep(void)
{
Sysctrl_SetPeripheralGate(SysctrlPeripheralBaseTim, FALSE); //Base Timer<65><72><EFBFBD><EFBFBD>ʱ<EFBFBD>ӹر<D3B9>
Bt_M0_Stop(TIM2);
Gpio_WriteOutputIO(IR_UART_CTL_PORT, IR_UART_CTL_PIN, TRUE);//<2F><>Դ<EFBFBD><D4B4><EFBFBD>ƽſ<C6BD>©<EFBFBD><C2A9><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD><DFA3><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>ϵ<EFBFBD>
//<2F><><EFBFBD>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>RX<52><58>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>Ϊ<EFBFBD>˷<EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>оƬ©<C6AC><C2A9>
stc_gpio_cfg_t stcGpioCfg;
DDL_ZERO_STRUCT(stcGpioCfg);
stcGpioCfg.enDir = GpioDirOut; ///< <20>˿ڷ<CBBF><DAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
stcGpioCfg.enDrv = GpioDrvL; ///< <20>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
stcGpioCfg.enPu = GpioPuDisable; ///< <20>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-><3E><>
stcGpioCfg.enPd = GpioPdDisable;
stcGpioCfg.enOD = GpioOdDisable; ///< <20>˿ڿ<CBBF>©<EFBFBD><C2A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
stcGpioCfg.enCtrlMode = GpioAHB; ///< <20>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߿<EFBFBD><DFBF><EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD>->AHB
Gpio_Init(LPUART0_RX_PORT, LPUART0_RX_PIN, &stcGpioCfg);
Gpio_WriteOutputIO(LPUART0_RX_PORT, LPUART0_RX_PIN, FALSE);
Gpio_Init(LPUART0_TX_PORT, LPUART0_TX_PIN, &stcGpioCfg);
Gpio_WriteOutputIO(LPUART0_TX_PORT, LPUART0_TX_PIN, TRUE); //TXҲ<58><D2B2><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Gpio_Init(IR_38K_PORT, IR_38K_PIN, &stcGpioCfg);
Gpio_SetAfMode(IR_38K_PORT,IR_38K_PIN,GpioAf0); //<2F><>ͨIO
Gpio_WriteOutputIO(IR_38K_PORT, IR_38K_PIN, TRUE);//38K<38><4B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>
}
//
//void IR_Uart_38K_Enable(boolean_t enCmd)
//{
//#if IR_38K_OPEN
// if(TRUE == enCmd)
// {
// UartInit(IR_UART_COM,BAUD2400,DATA_BIT_8,STOPBIT_1,UART_EVEN_PARITY,UART_LPUART_Disable);//UART_EVEN_PARITY UART_NONE_PARITY
// IR_Uart_38K_Config();
// Bt_M0_Run(TIM2); //TIM2 <20><><EFBFBD><EFBFBD>
//
// Gpio_WriteOutputIO(IR_UART_CTL_PORT, IR_UART_CTL_PIN, FALSE);
// }
// else
// {
// Gpio_WriteOutputIO(IR_38K_PORT,IR_38K_PIN, TRUE);//38K<38><4B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>
// Gpio_WriteOutputIO(IR_UART_CTL_PORT, IR_UART_CTL_PIN, TRUE);//<2F><>Դ<EFBFBD><D4B4><EFBFBD>ƽſ<C6BD>©<EFBFBD><C2A9><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD><DFA3><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>ϵ<EFBFBD>
// //<2F><><EFBFBD>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>RX<52><58>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>Ϊ<EFBFBD>˷<EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>оƬ©<C6AC><C2A9>
// stc_gpio_cfg_t stcGpioCfg;
// DDL_ZERO_STRUCT(stcGpioCfg);
// stcGpioCfg.enDir = GpioDirOut; ///< <20>˿ڷ<CBBF><DAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// stcGpioCfg.enDrv = GpioDrvL; ///< <20>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// stcGpioCfg.enPu = GpioPuDisable; ///< <20>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-><3E><>
// stcGpioCfg.enPd = GpioPdDisable;
// stcGpioCfg.enOD = GpioOdDisable; ///< <20>˿ڿ<CBBF>©<EFBFBD><C2A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// stcGpioCfg.enCtrlMode = GpioAHB; ///< <20>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߿<EFBFBD><DFBF><EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD>->AHB
// Gpio_Init(LPUART0_RX_PORT, LPUART0_RX_PIN, &stcGpioCfg);
// Gpio_WriteOutputIO(LPUART0_RX_PORT, LPUART0_RX_PIN, FALSE);
// Gpio_Init(LPUART0_TX_PORT, LPUART0_TX_PIN, &stcGpioCfg);
// Gpio_WriteOutputIO(LPUART0_TX_PORT, LPUART0_TX_PIN, TRUE); //TXҲ<58><D2B2><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// Gpio_WriteOutputIO(IR_38K_PORT, IR_38K_PIN, TRUE);//38K<38><4B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>
// }
//#endif
//}
/*************************************************
Function: void IR_38K_Open(void)
Description: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>38K <EFBFBD><EFBFBD><EFBFBD><EFBFBD>PWM<EFBFBD><EFBFBD><EFBFBD>ؼĴ<EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>38K<EFBFBD>ز<EFBFBD>
Input: <EFBFBD><EFBFBD>
Return: <EFBFBD><EFBFBD>
Others:
*************************************************/
void IR_38KCarrier_Open(void)
{
IR_Uart_38K_Config();
Bt_M0_Run(TIM2);
}
/*************************************************
Function: void IR_38K_Close(void)
Description: <EFBFBD>ر<EFBFBD>38K<EFBFBD>ز<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Input: <EFBFBD><EFBFBD>
Return: <EFBFBD><EFBFBD>
Others:
*************************************************/
void IR_38KCarrier_Close(void)
{
Bt_M0_Stop(TIM2);
stc_gpio_cfg_t stcGpioCfg;
DDL_ZERO_STRUCT(stcGpioCfg);
stcGpioCfg.enDir = GpioDirOut; ///< <20>˿ڷ<CBBF><DAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
stcGpioCfg.enDrv = GpioDrvL; ///< <20>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
stcGpioCfg.enPu = GpioPuDisable; ///< <20>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-><3E><>
stcGpioCfg.enPd = GpioPdDisable;
stcGpioCfg.enOD = GpioOdDisable; ///< <20>˿ڿ<CBBF>©<EFBFBD><C2A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
stcGpioCfg.enCtrlMode = GpioAHB; ///< <20>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߿<EFBFBD><DFBF><EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD>->AHB
Gpio_Init(IR_38K_PORT, IR_38K_PIN, &stcGpioCfg);
Gpio_SetAfMode(IR_38K_PORT,IR_38K_PIN,GpioAf0); //<2F><>ͨIO
Gpio_WriteOutputIO(IR_38K_PORT, IR_38K_PIN, TRUE);//38K<38><4B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>
}
#ifdef __cplusplus
}
#endif //#ifdef __cplusplus