BLE5.2 1.0
开发文档说明
xc_drv_sw_i2c.h
浏览该文件的文档.
1
25/* Define to prevent recursive inclusion -------------------------------------*/
26#ifndef __XC_DRV_SW_I2C_H_
27#define __XC_DRV_SW_I2C_H_
28
29/*-----------------------------------------------------------------------------------
30 INCLUDE HEADE FILES
31 ------------------------------------------------------------------------------------*/
32#include "xc6xxx.h"
33
34/*------------------------------------------------------------------------------------
35 TypeDef
36 -------------------------------------------------------------------------------------*/
37
38/*------------------------------------------------------------------------------------
39 Macros
40 -------------------------------------------------------------------------------------*/
41
42#define SDA_OUT_HIGH(pin) \
43 { \
44 xc_gpio_direction_config(pin, GPIO_DIR_OUTPUT); \
45 xc_gpio_write_pin(pin, GPIO_PIN_SET); \
46 }
47#define SDA_OUT_LOW(pin) \
48 { \
49 xc_gpio_direction_config(pin, GPIO_DIR_OUTPUT); \
50 xc_gpio_write_pin(pin, GPIO_PIN_RESET); \
51 }
52
53#define SCL_OUT_HIGH(pin) \
54 { \
55 xc_gpio_direction_config(pin, GPIO_DIR_OUTPUT); \
56 xc_gpio_write_pin(pin, GPIO_PIN_SET); \
57 }
58
59#define SCL_OUT_LOW(pin) \
60 { \
61 xc_gpio_direction_config(pin, GPIO_DIR_OUTPUT); \
62 xc_gpio_write_pin(pin, GPIO_PIN_RESET); \
63 }
64
65#define SDA_INPUT(pin, pull) \
66 { \
67 xc_gpio_direction_config(pin, GPIO_DIR_INPUT); \
68 xc_gpio_pull_config(pin, pull); \
69 }
70#define SDA_INPUT_VAL(pin) xc_gpio_read_pin(pin)
71
72#define SCL_PIN 2
73#define SDA_PIN 3
74
75/*------------------------------------------------------------------------------------
76 Inline Functions
77 -------------------------------------------------------------------------------------*/
78
79/*------------------------------------------------------------------------------------
80 Global Variables
81 -------------------------------------------------------------------------------------*/
82
83/*------------------------------------------------------------------------------------
84 Exported Functions
85 -------------------------------------------------------------------------------------*/
86void i2c_start(void);
87void i2c_stop(void);
88void i2c_send_byte(uint8_t txd);
89void i2c_ack(void);
90uint8_t i2c_read_byte(unsigned char ack);
91void i2c_nack(void);
92uint8_t i2c_wait_ack(void);
93
94void i2c_software_init(void);
95uint8_t at24cxx_read_byte(uint16_t addr);
96void at24cxx_write_byte(uint16_t addr, uint8_t data);
97
98void at24cxx_write_nbytes(uint16_t addr, uint8_t *buff, uint32_t num);
99void at24cxx_read_nbytes(uint16_t addr, uint8_t *buff, uint32_t num);
100
101#endif /* __XC60xx_SW_I2C_H_ */
void i2c_send_byte(uint8_t txd)
uint8_t i2c_read_byte(unsigned char ack)
void at24cxx_read_nbytes(uint16_t addr, uint8_t *buff, uint32_t num)
void i2c_ack(void)
void at24cxx_write_byte(uint16_t addr, uint8_t data)
uint8_t at24cxx_read_byte(uint16_t addr)
void at24cxx_write_nbytes(uint16_t addr, uint8_t *buff, uint32_t num)
uint8_t i2c_wait_ack(void)
void i2c_stop(void)
void i2c_software_init(void)
void i2c_nack(void)
void i2c_start(void)