QAQ ==!

Dependencies:   mbed QEI-1 nRF24L01P xiugai

Committer:
zhangyx
Date:
Mon Dec 02 06:53:14 2019 +0000
Revision:
13:99e774135a00
Parent:
9:d03b1af2b8d8
change i2c timings of IR module

Who changed what in which revision?

UserRevisionLine numberNew contents of line
zhangyx 13:99e774135a00 1 /*****************************************************
zhangyx 13:99e774135a00 2 *
zhangyx 13:99e774135a00 3 *制作人:
zhangyx 13:99e774135a00 4 *
zhangyx 13:99e774135a00 5 * 单位: 深圳市宏芯达科技有限公司
zhangyx 13:99e774135a00 6 *
zhangyx 13:99e774135a00 7 * 部门: 技术部
zhangyx 13:99e774135a00 8 *
zhangyx 13:99e774135a00 9 * 目的: STM32与HXD019通讯
zhangyx 13:99e774135a00 10 *
zhangyx 13:99e774135a00 11 * 日期: 2013年夏
zhangyx 13:99e774135a00 12 ******************************************************/
zhangyx 13:99e774135a00 13
zhangyx 13:99e774135a00 14 #ifndef __IRDA_H__
zhangyx 13:99e774135a00 15 #define __IRDA_H__
zhangyx 13:99e774135a00 16 #include "irdaDataType.h"
zhangyx 13:99e774135a00 17 #include "mbed.h"
zhangyx 13:99e774135a00 18
zhangyx 13:99e774135a00 19 //#define DEBUG
zhangyx 13:99e774135a00 20
zhangyx 13:99e774135a00 21 struct IRDA_io_t{
zhangyx 13:99e774135a00 22 DigitalInOut SCL;
zhangyx 13:99e774135a00 23 DigitalInOut SDA;
zhangyx 13:99e774135a00 24 DigitalInOut Busy;
zhangyx 13:99e774135a00 25
zhangyx 13:99e774135a00 26 IRDA_io_t(PinName scl, PinName sda, PinName busy):
zhangyx 13:99e774135a00 27 SCL(scl,PIN_OUTPUT,OpenDrain,1),SDA(sda,PIN_OUTPUT,OpenDrain,1),Busy(busy,PIN_OUTPUT,OpenDrain,1){}
zhangyx 13:99e774135a00 28 };
zhangyx 13:99e774135a00 29
zhangyx 13:99e774135a00 30 extern IRDA_io_t *IRDA_IO;
zhangyx 13:99e774135a00 31 //#define DEBUG
zhangyx 13:99e774135a00 32 #ifdef DEBUG
zhangyx 13:99e774135a00 33 extern Serial Serial_2;
zhangyx 13:99e774135a00 34 #define MSG_DBG(fmt, ...) Serial_2.printf("[DBG]%s:" fmt "\r\n", __func__, ##__VA_ARGS__)
zhangyx 13:99e774135a00 35 #else
zhangyx 13:99e774135a00 36 #define MSG_DBG(fmt, ...)
zhangyx 13:99e774135a00 37 #endif
zhangyx 13:99e774135a00 38
zhangyx 13:99e774135a00 39 #define IRDA_NO_ERROR 0
zhangyx 13:99e774135a00 40
zhangyx 13:99e774135a00 41 #define IRDA_DELAY_40US 4
zhangyx 13:99e774135a00 42 #define IRDA_DELAY_20MS 20
zhangyx 9:d03b1af2b8d8 43
zhangyx 13:99e774135a00 44 #define IRDA_SCL_H() IRDA_IO->SCL.write(1)
zhangyx 13:99e774135a00 45 #define IRDA_SCL_L() IRDA_IO->SCL.write(0)
zhangyx 13:99e774135a00 46 #define IRDA_SET_SCL_OUT() IRDA_IO->SCL.output()
zhangyx 13:99e774135a00 47 #define IRDA_SET_SCL_IN() IRDA_IO->SCL.input()
zhangyx 13:99e774135a00 48 #define IRDA_SDA_H() IRDA_IO->SDA.write(1)
zhangyx 13:99e774135a00 49 #define IRDA_SDA_L() IRDA_IO->SDA.write(0)
zhangyx 13:99e774135a00 50 #define IRDA_SET_SDA_OUT() IRDA_IO->SDA.output()
zhangyx 13:99e774135a00 51 #define IRDA_SET_SDA_IN() IRDA_IO->SDA.input()
zhangyx 13:99e774135a00 52 #define IRDA_GET_ACK() IRDA_IO->SDA.read()
zhangyx 13:99e774135a00 53 #define IRDA_GET_DATA() IRDA_IO->SDA.read()
zhangyx 13:99e774135a00 54 #define IRDA_BUSY_H() IRDA_IO->Busy.write(1)
zhangyx 13:99e774135a00 55 #define IRDA_BUSY_L() IRDA_IO->Busy.write(0)
zhangyx 13:99e774135a00 56 #define IRDA_BUSY_S() IRDA_IO->Busy.read()
zhangyx 13:99e774135a00 57 #define IRDA_SET_BUSY_OUT() IRDA_IO->Busy.output()
zhangyx 13:99e774135a00 58 #define IRDA_SET_BUSY_IN() IRDA_IO->Busy.input()
zhangyx 13:99e774135a00 59
zhangyx 13:99e774135a00 60 //#define IRDA_LED_OFF() GPIO_SetBits(GPIOB,GPIO_Pin_0)
zhangyx 13:99e774135a00 61 //#define IRDA_LED_ON() GPIO_ResetBits(GPIOB,GPIO_Pin_0)
zhangyx 13:99e774135a00 62
zhangyx 13:99e774135a00 63
zhangyx 13:99e774135a00 64 void IRDA_INIT();
zhangyx 13:99e774135a00 65 void IRDA_delay_10us(czx_vu32 t);
zhangyx 13:99e774135a00 66 void IRDA_delay_1ms(czx_vu32 t);
zhangyx 13:99e774135a00 67 //void IRDA_SET_SDA_OUT(void);
zhangyx 13:99e774135a00 68 //void IRDA_SET_SDA_IN(void);
zhangyx 13:99e774135a00 69 //void IRDA_SET_SCL_OUT(void);
zhangyx 13:99e774135a00 70 //void IRDA_SET_BUSY_IN(void);
zhangyx 13:99e774135a00 71 //void IRDA_SET_BUSY_OUT(void);
zhangyx 13:99e774135a00 72 czx_u8 IRDA_getACKsign(void);
zhangyx 13:99e774135a00 73 void IRDA_sendACKsign(void);
zhangyx 13:99e774135a00 74
zhangyx 13:99e774135a00 75 czx_u16 IRDA_open(void);
zhangyx 13:99e774135a00 76 #define IRDA_close() IRDA_open()
zhangyx 13:99e774135a00 77
zhangyx 13:99e774135a00 78 czx_u16 IRDA_start(void);
zhangyx 13:99e774135a00 79 czx_u16 IRDA_stop(void);
zhangyx 13:99e774135a00 80 czx_u16 IRDA_write(czx_vu8 d);
zhangyx 13:99e774135a00 81 void IRDA_tx_data(czx_vu8 *d, czx_vu8 len); //发送数据
zhangyx 13:99e774135a00 82 czx_u16 IRDA_read(czx_vu8 *d);
zhangyx 13:99e774135a00 83 void IRDA_learn_start(void);
zhangyx 13:99e774135a00 84 czx_u8 IRDA_rx_data(czx_vu8 *d);
zhangyx 13:99e774135a00 85 czx_u8 IRDA_learn_data_in_out(czx_vu8*learn_data_out);
zhangyx 13:99e774135a00 86
zhangyx 13:99e774135a00 87
zhangyx 13:99e774135a00 88 //czx_vu8 IRDA_learn_data_in_out(czx_vu8 *pd);//学习遥控
zhangyx 13:99e774135a00 89 #endif // __IRDA_H__
zhangyx 13:99e774135a00 90