The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
AnnaBridge
Date:
Wed Feb 20 20:53:29 2019 +0000
Revision:
172:65be27845400
Parent:
171:3a7713b1edbc
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Kojto 109:9296ab0bfc11 1 /* mbed Microcontroller Library
Kojto 109:9296ab0bfc11 2 *******************************************************************************
Kojto 109:9296ab0bfc11 3 * Copyright (c) 2015 WIZnet Co.,Ltd. All rights reserved.
Kojto 109:9296ab0bfc11 4 * All rights reserved.
Kojto 109:9296ab0bfc11 5 *
Kojto 109:9296ab0bfc11 6 * Redistribution and use in source and binary forms, with or without
Kojto 109:9296ab0bfc11 7 * modification, are permitted provided that the following conditions are met:
Kojto 109:9296ab0bfc11 8 *
Kojto 109:9296ab0bfc11 9 * 1. Redistributions of source code must retain the above copyright notice,
Kojto 109:9296ab0bfc11 10 * this list of conditions and the following disclaimer.
Kojto 109:9296ab0bfc11 11 * 2. Redistributions in binary form must reproduce the above copyright notice,
Kojto 109:9296ab0bfc11 12 * this list of conditions and the following disclaimer in the documentation
Kojto 109:9296ab0bfc11 13 * and/or other materials provided with the distribution.
Kojto 109:9296ab0bfc11 14 * 3. Neither the name of ARM Limited nor the names of its contributors
Kojto 109:9296ab0bfc11 15 * may be used to endorse or promote products derived from this software
Kojto 109:9296ab0bfc11 16 * without specific prior written permission.
Kojto 109:9296ab0bfc11 17 *
Kojto 109:9296ab0bfc11 18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
Kojto 109:9296ab0bfc11 19 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
Kojto 109:9296ab0bfc11 20 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
Kojto 109:9296ab0bfc11 21 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
Kojto 109:9296ab0bfc11 22 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
Kojto 109:9296ab0bfc11 23 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
Kojto 109:9296ab0bfc11 24 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
Kojto 109:9296ab0bfc11 25 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
Kojto 109:9296ab0bfc11 26 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
Kojto 109:9296ab0bfc11 27 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Kojto 109:9296ab0bfc11 28 *******************************************************************************
Kojto 109:9296ab0bfc11 29 */
Kojto 109:9296ab0bfc11 30 /*include -------------------------------------*/
Kojto 109:9296ab0bfc11 31 #ifndef __W7500X_I2C_H
Kojto 109:9296ab0bfc11 32 #define __W7500X_I2C_H
Kojto 109:9296ab0bfc11 33
Kojto 109:9296ab0bfc11 34 #include "W7500x.h"
Kojto 109:9296ab0bfc11 35
Kojto 109:9296ab0bfc11 36
Kojto 109:9296ab0bfc11 37 typedef enum {
Kojto 109:9296ab0bfc11 38 I2C_PA_5 = 0x05,
Kojto 109:9296ab0bfc11 39 I2C_PA_6 = 0x06,
Kojto 109:9296ab0bfc11 40 I2C_PA_9 = 0x09,
Kojto 109:9296ab0bfc11 41 I2C_PA_10 = 0x0A,
Kojto 109:9296ab0bfc11 42 I2C_PC_4 = 0x24,
Kojto 109:9296ab0bfc11 43 I2C_PC_5 = 0x25,
Kojto 109:9296ab0bfc11 44 I2C_PC_8 = 0x28,
Kojto 109:9296ab0bfc11 45 // Not connected
Kojto 109:9296ab0bfc11 46 I2C_NC = (int)0xFFFFFFFF
Kojto 109:9296ab0bfc11 47 } I2C_PinName;
Kojto 109:9296ab0bfc11 48
Kojto 109:9296ab0bfc11 49 typedef struct
Kojto 109:9296ab0bfc11 50 {
Kojto 109:9296ab0bfc11 51 I2C_PinName scl;
Kojto 109:9296ab0bfc11 52 I2C_PinName sda;
Kojto 109:9296ab0bfc11 53 }I2C_ConfigStruct;
Kojto 109:9296ab0bfc11 54
Kojto 109:9296ab0bfc11 55
Kojto 109:9296ab0bfc11 56 #define I2C_PORT(X) (((uint32_t)(X) >> 4) & 0xF) // port number (0=A, 1=B, 2=C, 3=D)
Kojto 109:9296ab0bfc11 57 #define I2C_PIN_INDEX(X) (1 << ((uint32_t)(X) & 0xF)) // pin index : flag bit
Kojto 109:9296ab0bfc11 58
Kojto 109:9296ab0bfc11 59 uint32_t I2C_Init(I2C_ConfigStruct* conf);
Kojto 109:9296ab0bfc11 60
Kojto 109:9296ab0bfc11 61 void I2C_WriteBitSDA(I2C_ConfigStruct* conf, uint8_t data);
Kojto 109:9296ab0bfc11 62 void I2C_WriteBitSCL(I2C_ConfigStruct* conf, uint8_t data);
Kojto 109:9296ab0bfc11 63 uint8_t I2C_ReadBitSDA(I2C_ConfigStruct* conf);
Kojto 109:9296ab0bfc11 64
Kojto 109:9296ab0bfc11 65 void I2C_SendACK(I2C_ConfigStruct* conf);
Kojto 109:9296ab0bfc11 66 void I2C_SendNACK(I2C_ConfigStruct* conf);
Kojto 109:9296ab0bfc11 67
Kojto 109:9296ab0bfc11 68 uint8_t I2C_WriteByte(I2C_ConfigStruct* conf, uint8_t data);
Kojto 109:9296ab0bfc11 69 uint8_t I2C_ReadByte(I2C_ConfigStruct* conf);
Kojto 109:9296ab0bfc11 70
Kojto 109:9296ab0bfc11 71 void I2C_Start(I2C_ConfigStruct* conf);
Kojto 109:9296ab0bfc11 72 void I2C_Stop(I2C_ConfigStruct* conf);
Kojto 109:9296ab0bfc11 73
Kojto 109:9296ab0bfc11 74 int I2C_Write(I2C_ConfigStruct* conf, uint8_t addr, uint8_t* data, uint32_t len);
Kojto 109:9296ab0bfc11 75 int I2C_WriteRepeated(I2C_ConfigStruct* conf, uint8_t addr, uint8_t* data, uint32_t len);
Kojto 109:9296ab0bfc11 76 int I2C_Read(I2C_ConfigStruct* conf, uint8_t addr, uint8_t* data, uint32_t len);
Kojto 109:9296ab0bfc11 77 int I2C_ReadRepeated(I2C_ConfigStruct* conf, uint8_t addr, uint8_t* data, uint32_t len);
Kojto 109:9296ab0bfc11 78
Kojto 109:9296ab0bfc11 79
Kojto 109:9296ab0bfc11 80 #endif //__W7500X_I2C_H
Kojto 109:9296ab0bfc11 81