QAQ ==!
Dependencies: mbed QEI-1 nRF24L01P xiugai
drivers/irda.h@13:99e774135a00, 2019-12-02 (annotated)
- 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?
User | Revision | Line number | New 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 |