/*********************************************************************************
|
* Copyright: (C) 2014 Guo Wenxue<guowenxue@gmail.com>
|
* All rights reserved.
|
*
|
* Filename: gpio_i2c.h
|
* Description: STM8 GPIOÄ£ÄâI2C´úÂë
|
*
|
* Version: 1.0.0(09/28/2014)
|
* Author: Guo Wenxue <guowenxue@gmail.com>
|
* ChangeLog: 1, Release initial version on "09/28/2014 10:58:17 PM"
|
*
|
********************************************************************************/
|
#include "stm8s.h"
|
#ifndef __GPIO_I2C_H_
|
#define __GPIO_I2C_H_
|
|
#define I2C_GPIO_BASE GPIOC
|
|
#define I2C_ACK 0
|
#define I2C_NAK 1
|
|
#define I2C_OK 0
|
#define I2C_ERROR -1
|
|
#define I2C_DIR_READ 1
|
#define I2C_DIR_WRITE 0
|
|
/*PC7: I2C SDA */
|
#define SDA_MODE_OUT I2C_GPIO_BASE->DDR |= GPIO_PIN_7
|
#define SDA_HIGH I2C_GPIO_BASE->ODR |= GPIO_PIN_7
|
#define SDA_LOW I2C_GPIO_BASE->ODR &= (uint8_t)(~(GPIO_PIN_7))
|
|
#define SDA_MODE_IN I2C_GPIO_BASE->DDR &= (uint8_t)(~(GPIO_PIN_7))
|
#define SDA_DAT I2C_GPIO_BASE->IDR & (uint8_t)GPIO_PIN_7
|
|
/*PC6: I2C SCL */
|
#define SCL_HIGH I2C_GPIO_BASE->ODR |= GPIO_PIN_6
|
#define SCL_LOW I2C_GPIO_BASE->ODR &= (uint8_t)(~(GPIO_PIN_6))
|
|
extern void gpio_i2c_init(void);
|
extern void gpio_i2c_start(void);
|
extern void gpio_i2c_stop(void);
|
extern uint8_t gpio_i2c_write_byte(uint8_t byte);
|
extern uint8_t gpio_i2c_read_byte(void);
|
extern uint8_t gpio_i2c_read(uint8_t addr, uint8_t reg_addr);
|
extern int gpio_i2c_write(uint8_t addr, uint8_t reg_addr, uint8_t data);
|
|
#endif /* __GPIO_I2C_H_ */
|