QAQ ==!

Dependencies:   mbed QEI-1 nRF24L01P xiugai

Revision:
9:d03b1af2b8d8
Child:
13:99e774135a00
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/drivers/irda.h	Wed Nov 13 09:14:24 2019 +0000
@@ -0,0 +1,90 @@
+/*****************************************************
+*
+*制作人:
+*
+* 单位:    深圳市宏芯达科技有限公司
+*
+* 部门:   技术部
+*
+* 目的:  STM32与HXD019通讯
+*
+* 日期:   2013年夏
+******************************************************/
+
+#ifndef __IRDA_H__
+#define __IRDA_H__
+#include "irdaDataType.h"
+#include "mbed.h"
+
+//#define DEBUG
+
+struct IRDA_io_t{
+	DigitalInOut SCL;
+	DigitalInOut SDA;
+	DigitalInOut Busy;
+	
+	IRDA_io_t(PinName scl, PinName sda, PinName busy):
+		SCL(scl,PIN_OUTPUT,OpenDrain,1),SDA(sda,PIN_OUTPUT,OpenDrain,1),Busy(busy,PIN_OUTPUT,OpenDrain,1){}
+};
+
+extern IRDA_io_t *IRDA_IO;
+
+#ifdef DEBUG
+extern Serial Serial_1;
+#define MSG_DBG(fmt, ...) Serial_1.printf("[DBG]%s:" fmt "\r\n", __func__, ##__VA_ARGS__)
+#else
+#define MSG_DBG(fmt, ...)
+#endif
+
+#define     IRDA_NO_ERROR   0
+
+#define     IRDA_DELAY_40US     4
+#define     IRDA_DELAY_20MS     20
+
+#define     IRDA_SCL_H()    IRDA_IO->SCL.write(1)
+#define     IRDA_SCL_L()    IRDA_IO->SCL.write(0)
+#define     IRDA_SET_SCL_OUT()    IRDA_IO->SCL.output()
+#define     IRDA_SET_SCL_IN()     IRDA_IO->SCL.input()
+#define     IRDA_SDA_H()    IRDA_IO->SDA.write(1)
+#define     IRDA_SDA_L()    IRDA_IO->SDA.write(0)
+#define     IRDA_SET_SDA_OUT()    IRDA_IO->SDA.output()
+#define     IRDA_SET_SDA_IN()     IRDA_IO->SDA.input()
+#define     IRDA_GET_ACK()  IRDA_IO->SDA.read()
+#define     IRDA_GET_DATA() IRDA_IO->SDA.read()
+#define     IRDA_BUSY_H()   IRDA_IO->Busy.write(1)
+#define     IRDA_BUSY_L()   IRDA_IO->Busy.write(0)
+#define     IRDA_BUSY_S()   IRDA_IO->Busy.read()
+#define     IRDA_SET_BUSY_OUT()   IRDA_IO->Busy.output()
+#define     IRDA_SET_BUSY_IN()    IRDA_IO->Busy.input()
+
+//#define         IRDA_LED_OFF()  GPIO_SetBits(GPIOB,GPIO_Pin_0)
+//#define         IRDA_LED_ON()   GPIO_ResetBits(GPIOB,GPIO_Pin_0)
+
+
+void    IRDA_INIT();
+void    IRDA_delay_10us(czx_vu32 t);
+void    IRDA_delay_1ms(czx_vu32 t);
+//void    IRDA_SET_SDA_OUT(void);
+//void    IRDA_SET_SDA_IN(void);
+//void    IRDA_SET_SCL_OUT(void);
+//void    IRDA_SET_BUSY_IN(void);
+//void    IRDA_SET_BUSY_OUT(void);
+czx_u8  IRDA_getACKsign(void);
+void    IRDA_sendACKsign(void);
+
+czx_u16 IRDA_open(void);
+#define IRDA_close()  IRDA_open()
+
+czx_u16 IRDA_start(void);
+czx_u16 IRDA_stop(void);
+czx_u16 IRDA_write(czx_vu8 d);
+void    IRDA_tx_data(czx_vu8 *d, czx_vu8 len); //发送数据
+czx_u16 IRDA_read(czx_vu8 *d);
+void    IRDA_learn_start(void);
+czx_u8  IRDA_rx_data(czx_vu8 *d);
+czx_u8  IRDA_learn_data_in_out(czx_vu8*learn_data_out);
+
+
+//czx_vu8       IRDA_learn_data_in_out(czx_vu8  *pd);//学习遥控
+#endif // __IRDA_H__
+