]> git.piffa.net Git - arduino/blob - sheets/gyro/GY-52 Three-axis gyroscope sending data /Three-axis gyroscope sending data/GY-52 Test program/STM32-CODE/serial port output MPU-3050/serial/Libraries/STM32F10x_StdPeriph_Driver/inc/stm32f10x_i2c.h
first commit
[arduino] / sheets / gyro / GY-52 Three-axis gyroscope sending data / Three-axis gyroscope sending data / GY-52 Test program / STM32-CODE / serial port output MPU-3050 / serial / Libraries / STM32F10x_StdPeriph_Driver / inc / stm32f10x_i2c.h
1 /**\r
2   ******************************************************************************\r
3   * @file    stm32f10x_i2c.h\r
4   * @author  MCD Application Team\r
5   * @version V3.1.2\r
6   * @date    09/28/2009\r
7   * @brief   This file contains all the functions prototypes for the I2C firmware \r
8   *          library.\r
9   ******************************************************************************\r
10   * @copy\r
11   *\r
12   * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS\r
13   * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE\r
14   * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY\r
15   * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING\r
16   * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE\r
17   * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.\r
18   *\r
19   * <h2><center>&copy; COPYRIGHT 2009 STMicroelectronics</center></h2>\r
20   */ \r
21 \r
22 /* Define to prevent recursive inclusion -------------------------------------*/\r
23 #ifndef __STM32F10x_I2C_H\r
24 #define __STM32F10x_I2C_H\r
25 \r
26 #ifdef __cplusplus\r
27  extern "C" {\r
28 #endif\r
29 \r
30 /* Includes ------------------------------------------------------------------*/\r
31 #include "stm32f10x.h"\r
32 \r
33 /** @addtogroup STM32F10x_StdPeriph_Driver\r
34   * @{\r
35   */\r
36 \r
37 /** @addtogroup I2C\r
38   * @{\r
39   */\r
40 \r
41 /** @defgroup I2C_Exported_Types\r
42   * @{\r
43   */\r
44 \r
45 /** \r
46   * @brief  I2C Init structure definition  \r
47   */\r
48 \r
49 typedef struct\r
50 {\r
51   uint32_t I2C_ClockSpeed;          /*!< Specifies the clock frequency.\r
52                                          This parameter must be set to a value lower than 400kHz */\r
53 \r
54   uint16_t I2C_Mode;                /*!< Specifies the I2C mode.\r
55                                          This parameter can be a value of @ref I2C_mode */\r
56 \r
57   uint16_t I2C_DutyCycle;           /*!< Specifies the I2C fast mode duty cycle.\r
58                                          This parameter can be a value of @ref I2C_duty_cycle_in_fast_mode */\r
59 \r
60   uint16_t I2C_OwnAddress1;         /*!< Specifies the first device own address.\r
61                                          This parameter can be a 7-bit or 10-bit address. */\r
62 \r
63   uint16_t I2C_Ack;                 /*!< Enables or disables the acknowledgement.\r
64                                          This parameter can be a value of @ref I2C_acknowledgement */\r
65 \r
66   uint16_t I2C_AcknowledgedAddress; /*!< Specifies if 7-bit or 10-bit address is acknowledged.\r
67                                          This parameter can be a value of @ref I2C_acknowledged_address */\r
68 }I2C_InitTypeDef;\r
69 \r
70 /**\r
71   * @}\r
72   */ \r
73 \r
74 \r
75 /** @defgroup I2C_Exported_Constants\r
76   * @{\r
77   */\r
78 \r
79 #define IS_I2C_ALL_PERIPH(PERIPH) (((PERIPH) == I2C1) || \\r
80                                    ((PERIPH) == I2C2))\r
81 /** @defgroup I2C_mode \r
82   * @{\r
83   */\r
84 \r
85 #define I2C_Mode_I2C                    ((uint16_t)0x0000)\r
86 #define I2C_Mode_SMBusDevice            ((uint16_t)0x0002)  \r
87 #define I2C_Mode_SMBusHost              ((uint16_t)0x000A)\r
88 #define IS_I2C_MODE(MODE) (((MODE) == I2C_Mode_I2C) || \\r
89                            ((MODE) == I2C_Mode_SMBusDevice) || \\r
90                            ((MODE) == I2C_Mode_SMBusHost))\r
91 /**\r
92   * @}\r
93   */\r
94 \r
95 /** @defgroup I2C_duty_cycle_in_fast_mode \r
96   * @{\r
97   */\r
98 \r
99 #define I2C_DutyCycle_16_9              ((uint16_t)0x4000) /*!< I2C fast mode Tlow/Thigh = 16/9 */\r
100 #define I2C_DutyCycle_2                 ((uint16_t)0xBFFF) /*!< I2C fast mode Tlow/Thigh = 2 */\r
101 #define IS_I2C_DUTY_CYCLE(CYCLE) (((CYCLE) == I2C_DutyCycle_16_9) || \\r
102                                   ((CYCLE) == I2C_DutyCycle_2))\r
103 /**\r
104   * @}\r
105   */ \r
106 \r
107 /** @defgroup I2C_acknowledgement\r
108   * @{\r
109   */\r
110 \r
111 #define I2C_Ack_Enable                  ((uint16_t)0x0400)\r
112 #define I2C_Ack_Disable                 ((uint16_t)0x0000)\r
113 #define IS_I2C_ACK_STATE(STATE) (((STATE) == I2C_Ack_Enable) || \\r
114                                  ((STATE) == I2C_Ack_Disable))\r
115 /**\r
116   * @}\r
117   */\r
118 \r
119 /** @defgroup I2C_transfer_direction \r
120   * @{\r
121   */\r
122 \r
123 #define  I2C_Direction_Transmitter      ((uint8_t)0x00)\r
124 #define  I2C_Direction_Receiver         ((uint8_t)0x01)\r
125 #define IS_I2C_DIRECTION(DIRECTION) (((DIRECTION) == I2C_Direction_Transmitter) || \\r
126                                      ((DIRECTION) == I2C_Direction_Receiver))\r
127 /**\r
128   * @}\r
129   */\r
130 \r
131 /** @defgroup I2C_acknowledged_address \r
132   * @{\r
133   */\r
134 \r
135 #define I2C_AcknowledgedAddress_7bit    ((uint16_t)0x4000)\r
136 #define I2C_AcknowledgedAddress_10bit   ((uint16_t)0xC000)\r
137 #define IS_I2C_ACKNOWLEDGE_ADDRESS(ADDRESS) (((ADDRESS) == I2C_AcknowledgedAddress_7bit) || \\r
138                                              ((ADDRESS) == I2C_AcknowledgedAddress_10bit))\r
139 /**\r
140   * @}\r
141   */ \r
142 \r
143 /** @defgroup I2C_registers \r
144   * @{\r
145   */\r
146 \r
147 #define I2C_Register_CR1                ((uint8_t)0x00)\r
148 #define I2C_Register_CR2                ((uint8_t)0x04)\r
149 #define I2C_Register_OAR1               ((uint8_t)0x08)\r
150 #define I2C_Register_OAR2               ((uint8_t)0x0C)\r
151 #define I2C_Register_DR                 ((uint8_t)0x10)\r
152 #define I2C_Register_SR1                ((uint8_t)0x14)\r
153 #define I2C_Register_SR2                ((uint8_t)0x18)\r
154 #define I2C_Register_CCR                ((uint8_t)0x1C)\r
155 #define I2C_Register_TRISE              ((uint8_t)0x20)\r
156 #define IS_I2C_REGISTER(REGISTER) (((REGISTER) == I2C_Register_CR1) || \\r
157                                    ((REGISTER) == I2C_Register_CR2) || \\r
158                                    ((REGISTER) == I2C_Register_OAR1) || \\r
159                                    ((REGISTER) == I2C_Register_OAR2) || \\r
160                                    ((REGISTER) == I2C_Register_DR) || \\r
161                                    ((REGISTER) == I2C_Register_SR1) || \\r
162                                    ((REGISTER) == I2C_Register_SR2) || \\r
163                                    ((REGISTER) == I2C_Register_CCR) || \\r
164                                    ((REGISTER) == I2C_Register_TRISE))\r
165 /**\r
166   * @}\r
167   */\r
168 \r
169 /** @defgroup I2C_SMBus_alert_pin_level \r
170   * @{\r
171   */\r
172 \r
173 #define I2C_SMBusAlert_Low              ((uint16_t)0x2000)\r
174 #define I2C_SMBusAlert_High             ((uint16_t)0xDFFF)\r
175 #define IS_I2C_SMBUS_ALERT(ALERT) (((ALERT) == I2C_SMBusAlert_Low) || \\r
176                                    ((ALERT) == I2C_SMBusAlert_High))\r
177 /**\r
178   * @}\r
179   */\r
180 \r
181 /** @defgroup I2C_PEC_position \r
182   * @{\r
183   */\r
184 \r
185 #define I2C_PECPosition_Next            ((uint16_t)0x0800)\r
186 #define I2C_PECPosition_Current         ((uint16_t)0xF7FF)\r
187 #define IS_I2C_PEC_POSITION(POSITION) (((POSITION) == I2C_PECPosition_Next) || \\r
188                                        ((POSITION) == I2C_PECPosition_Current))\r
189 /**\r
190   * @}\r
191   */ \r
192 \r
193 /** @defgroup I2C_interrupts_definition \r
194   * @{\r
195   */\r
196 \r
197 #define I2C_IT_BUF                      ((uint16_t)0x0400)\r
198 #define I2C_IT_EVT                      ((uint16_t)0x0200)\r
199 #define I2C_IT_ERR                      ((uint16_t)0x0100)\r
200 #define IS_I2C_CONFIG_IT(IT) ((((IT) & (uint16_t)0xF8FF) == 0x00) && ((IT) != 0x00))\r
201 /**\r
202   * @}\r
203   */ \r
204 \r
205 /** @defgroup I2C_interrupts_definition \r
206   * @{\r
207   */\r
208 \r
209 #define I2C_IT_SMBALERT                 ((uint32_t)0x01008000)\r
210 #define I2C_IT_TIMEOUT                  ((uint32_t)0x01004000)\r
211 #define I2C_IT_PECERR                   ((uint32_t)0x01001000)\r
212 #define I2C_IT_OVR                      ((uint32_t)0x01000800)\r
213 #define I2C_IT_AF                       ((uint32_t)0x01000400)\r
214 #define I2C_IT_ARLO                     ((uint32_t)0x01000200)\r
215 #define I2C_IT_BERR                     ((uint32_t)0x01000100)\r
216 #define I2C_IT_TXE                      ((uint32_t)0x06000080)\r
217 #define I2C_IT_RXNE                     ((uint32_t)0x06000040)\r
218 #define I2C_IT_STOPF                    ((uint32_t)0x02000010)\r
219 #define I2C_IT_ADD10                    ((uint32_t)0x02000008)\r
220 #define I2C_IT_BTF                      ((uint32_t)0x02000004)\r
221 #define I2C_IT_ADDR                     ((uint32_t)0x02000002)\r
222 #define I2C_IT_SB                       ((uint32_t)0x02000001)\r
223 \r
224 #define IS_I2C_CLEAR_IT(IT) ((((IT) & (uint16_t)0x20FF) == 0x00) && ((IT) != (uint16_t)0x00))\r
225 \r
226 #define IS_I2C_GET_IT(IT) (((IT) == I2C_IT_SMBALERT) || ((IT) == I2C_IT_TIMEOUT) || \\r
227                            ((IT) == I2C_IT_PECERR) || ((IT) == I2C_IT_OVR) || \\r
228                            ((IT) == I2C_IT_AF) || ((IT) == I2C_IT_ARLO) || \\r
229                            ((IT) == I2C_IT_BERR) || ((IT) == I2C_IT_TXE) || \\r
230                            ((IT) == I2C_IT_RXNE) || ((IT) == I2C_IT_STOPF) || \\r
231                            ((IT) == I2C_IT_ADD10) || ((IT) == I2C_IT_BTF) || \\r
232                            ((IT) == I2C_IT_ADDR) || ((IT) == I2C_IT_SB))\r
233 /**\r
234   * @}\r
235   */\r
236 \r
237 /** @defgroup I2C_flags_definition \r
238   * @{\r
239   */\r
240 \r
241 /** \r
242   * @brief  SR2 register flags  \r
243   */\r
244 \r
245 #define I2C_FLAG_DUALF                  ((uint32_t)0x00800000)\r
246 #define I2C_FLAG_SMBHOST                ((uint32_t)0x00400000)\r
247 #define I2C_FLAG_SMBDEFAULT             ((uint32_t)0x00200000)\r
248 #define I2C_FLAG_GENCALL                ((uint32_t)0x00100000)\r
249 #define I2C_FLAG_TRA                    ((uint32_t)0x00040000)\r
250 #define I2C_FLAG_BUSY                   ((uint32_t)0x00020000)\r
251 #define I2C_FLAG_MSL                    ((uint32_t)0x00010000)\r
252 \r
253 /** \r
254   * @brief  SR1 register flags  \r
255   */\r
256 \r
257 #define I2C_FLAG_SMBALERT               ((uint32_t)0x10008000)\r
258 #define I2C_FLAG_TIMEOUT                ((uint32_t)0x10004000)\r
259 #define I2C_FLAG_PECERR                 ((uint32_t)0x10001000)\r
260 #define I2C_FLAG_OVR                    ((uint32_t)0x10000800)\r
261 #define I2C_FLAG_AF                     ((uint32_t)0x10000400)\r
262 #define I2C_FLAG_ARLO                   ((uint32_t)0x10000200)\r
263 #define I2C_FLAG_BERR                   ((uint32_t)0x10000100)\r
264 #define I2C_FLAG_TXE                    ((uint32_t)0x10000080)\r
265 #define I2C_FLAG_RXNE                   ((uint32_t)0x10000040)\r
266 #define I2C_FLAG_STOPF                  ((uint32_t)0x10000010)\r
267 #define I2C_FLAG_ADD10                  ((uint32_t)0x10000008)\r
268 #define I2C_FLAG_BTF                    ((uint32_t)0x10000004)\r
269 #define I2C_FLAG_ADDR                   ((uint32_t)0x10000002)\r
270 #define I2C_FLAG_SB                     ((uint32_t)0x10000001)\r
271 \r
272 #define IS_I2C_CLEAR_FLAG(FLAG) ((((FLAG) & (uint16_t)0x20FF) == 0x00) && ((FLAG) != (uint16_t)0x00))\r
273 \r
274 #define IS_I2C_GET_FLAG(FLAG) (((FLAG) == I2C_FLAG_DUALF) || ((FLAG) == I2C_FLAG_SMBHOST) || \\r
275                                ((FLAG) == I2C_FLAG_SMBDEFAULT) || ((FLAG) == I2C_FLAG_GENCALL) || \\r
276                                ((FLAG) == I2C_FLAG_TRA) || ((FLAG) == I2C_FLAG_BUSY) || \\r
277                                ((FLAG) == I2C_FLAG_MSL) || ((FLAG) == I2C_FLAG_SMBALERT) || \\r
278                                ((FLAG) == I2C_FLAG_TIMEOUT) || ((FLAG) == I2C_FLAG_PECERR) || \\r
279                                ((FLAG) == I2C_FLAG_OVR) || ((FLAG) == I2C_FLAG_AF) || \\r
280                                ((FLAG) == I2C_FLAG_ARLO) || ((FLAG) == I2C_FLAG_BERR) || \\r
281                                ((FLAG) == I2C_FLAG_TXE) || ((FLAG) == I2C_FLAG_RXNE) || \\r
282                                ((FLAG) == I2C_FLAG_STOPF) || ((FLAG) == I2C_FLAG_ADD10) || \\r
283                                ((FLAG) == I2C_FLAG_BTF) || ((FLAG) == I2C_FLAG_ADDR) || \\r
284                                ((FLAG) == I2C_FLAG_SB))\r
285 /**\r
286   * @}\r
287   */\r
288 \r
289 /** @defgroup I2C_Events \r
290   * @{\r
291   */\r
292 \r
293 /** \r
294   * @brief  EV1\r
295   */\r
296 \r
297 #define  I2C_EVENT_SLAVE_TRANSMITTER_ADDRESS_MATCHED       ((uint32_t)0x00060082) /* TRA, BUSY, TXE and ADDR flags */\r
298 #define  I2C_EVENT_SLAVE_RECEIVER_ADDRESS_MATCHED          ((uint32_t)0x00020002) /* BUSY and ADDR flags */\r
299 #define  I2C_EVENT_SLAVE_TRANSMITTER_SECONDADDRESS_MATCHED ((uint32_t)0x00860080)  /* DUALF, TRA, BUSY and TXE flags */\r
300 #define  I2C_EVENT_SLAVE_RECEIVER_SECONDADDRESS_MATCHED    ((uint32_t)0x00820000)  /* DUALF and BUSY flags */\r
301 #define  I2C_EVENT_SLAVE_GENERALCALLADDRESS_MATCHED        ((uint32_t)0x00120000)  /* GENCALL and BUSY flags */\r
302 \r
303 /** \r
304   * @brief  EV2  \r
305   */\r
306 \r
307 #define  I2C_EVENT_SLAVE_BYTE_RECEIVED                     ((uint32_t)0x00020040)  /* BUSY and RXNE flags */\r
308 \r
309 /** \r
310   * @brief  EV3  \r
311   */\r
312 \r
313 #define  I2C_EVENT_SLAVE_BYTE_TRANSMITTED                  ((uint32_t)0x00060084)  /* TRA, BUSY, TXE and BTF flags */\r
314 \r
315 /** \r
316   * @brief  EV4\r
317   */\r
318 \r
319 #define  I2C_EVENT_SLAVE_STOP_DETECTED                     ((uint32_t)0x00000010)  /* STOPF flag */\r
320 \r
321 /** \r
322   * @brief  EV5\r
323   */\r
324 \r
325 #define  I2C_EVENT_MASTER_MODE_SELECT                      ((uint32_t)0x00030001)  /* BUSY, MSL and SB flag */\r
326 \r
327 /** \r
328   * @brief  EV6\r
329   */\r
330 \r
331 #define  I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED        ((uint32_t)0x00070082)  /* BUSY, MSL, ADDR, TXE and TRA flags */\r
332 #define  I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED           ((uint32_t)0x00030002)  /* BUSY, MSL and ADDR flags */\r
333 \r
334 /** \r
335   * @brief  EV7\r
336   */\r
337 \r
338 #define  I2C_EVENT_MASTER_BYTE_RECEIVED                    ((uint32_t)0x00030040)  /* BUSY, MSL and RXNE flags */\r
339 \r
340 /** \r
341   * @brief  EV8\r
342   */\r
343 \r
344 #define I2C_EVENT_MASTER_BYTE_TRANSMITTING                 ((uint32_t)0x00070080) /* TRA, BUSY, MSL, TXE flags */\r
345 \r
346 /** \r
347   * @brief  EV8_2\r
348   */\r
349 \r
350 #define  I2C_EVENT_MASTER_BYTE_TRANSMITTED                 ((uint32_t)0x00070084)  /* TRA, BUSY, MSL, TXE and BTF flags */\r
351 \r
352 /** \r
353   * @brief  EV9\r
354   */\r
355 \r
356 #define  I2C_EVENT_MASTER_MODE_ADDRESS10                   ((uint32_t)0x00030008)  /* BUSY, MSL and ADD10 flags */\r
357 \r
358 /** \r
359   * @brief  EV3_2\r
360   */\r
361 \r
362 #define  I2C_EVENT_SLAVE_ACK_FAILURE                       ((uint32_t)0x00000400)  /* AF flag */\r
363 \r
364 #define IS_I2C_EVENT(EVENT) (((EVENT) == I2C_EVENT_SLAVE_TRANSMITTER_ADDRESS_MATCHED) || \\r
365                              ((EVENT) == I2C_EVENT_SLAVE_RECEIVER_ADDRESS_MATCHED) || \\r
366                              ((EVENT) == I2C_EVENT_SLAVE_TRANSMITTER_SECONDADDRESS_MATCHED) || \\r
367                              ((EVENT) == I2C_EVENT_SLAVE_RECEIVER_SECONDADDRESS_MATCHED) || \\r
368                              ((EVENT) == I2C_EVENT_SLAVE_GENERALCALLADDRESS_MATCHED) || \\r
369                              ((EVENT) == I2C_EVENT_SLAVE_BYTE_RECEIVED) || \\r
370                              ((EVENT) == (I2C_EVENT_SLAVE_BYTE_RECEIVED | I2C_FLAG_DUALF)) || \\r
371                              ((EVENT) == (I2C_EVENT_SLAVE_BYTE_RECEIVED | I2C_FLAG_GENCALL)) || \\r
372                              ((EVENT) == I2C_EVENT_SLAVE_BYTE_TRANSMITTED) || \\r
373                              ((EVENT) == (I2C_EVENT_SLAVE_BYTE_TRANSMITTED | I2C_FLAG_DUALF)) || \\r
374                              ((EVENT) == (I2C_EVENT_SLAVE_BYTE_TRANSMITTED | I2C_FLAG_GENCALL)) || \\r
375                              ((EVENT) == I2C_EVENT_SLAVE_STOP_DETECTED) || \\r
376                              ((EVENT) == I2C_EVENT_MASTER_MODE_SELECT) || \\r
377                              ((EVENT) == I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED) || \\r
378                              ((EVENT) == I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED) || \\r
379                              ((EVENT) == I2C_EVENT_MASTER_BYTE_RECEIVED) || \\r
380                              ((EVENT) == I2C_EVENT_MASTER_BYTE_TRANSMITTED) || \\r
381                              ((EVENT) == I2C_EVENT_MASTER_BYTE_TRANSMITTING) || \\r
382                              ((EVENT) == I2C_EVENT_MASTER_MODE_ADDRESS10) || \\r
383                              ((EVENT) == I2C_EVENT_SLAVE_ACK_FAILURE))\r
384 /**\r
385   * @}\r
386   */\r
387 \r
388 /** @defgroup I2C_own_address1 \r
389   * @{\r
390   */\r
391 \r
392 #define IS_I2C_OWN_ADDRESS1(ADDRESS1) ((ADDRESS1) <= 0x3FF)\r
393 /**\r
394   * @}\r
395   */\r
396 \r
397 /** @defgroup I2C_clock_speed \r
398   * @{\r
399   */\r
400 \r
401 #define IS_I2C_CLOCK_SPEED(SPEED) (((SPEED) >= 0x1) && ((SPEED) <= 400000))\r
402 /**\r
403   * @}\r
404   */\r
405 \r
406 /**\r
407   * @}\r
408   */\r
409 \r
410 /** @defgroup I2C_Exported_Macros\r
411   * @{\r
412   */\r
413 \r
414 /**\r
415   * @}\r
416   */\r
417 \r
418 /** @defgroup I2C_Exported_Functions\r
419   * @{\r
420   */\r
421 \r
422 void I2C_DeInit(I2C_TypeDef* I2Cx);\r
423 void I2C_Init(I2C_TypeDef* I2Cx, I2C_InitTypeDef* I2C_InitStruct);\r
424 void I2C_StructInit(I2C_InitTypeDef* I2C_InitStruct);\r
425 void I2C_Cmd(I2C_TypeDef* I2Cx, FunctionalState NewState);\r
426 void I2C_DMACmd(I2C_TypeDef* I2Cx, FunctionalState NewState);\r
427 void I2C_DMALastTransferCmd(I2C_TypeDef* I2Cx, FunctionalState NewState);\r
428 void I2C_GenerateSTART(I2C_TypeDef* I2Cx, FunctionalState NewState);\r
429 void I2C_GenerateSTOP(I2C_TypeDef* I2Cx, FunctionalState NewState);\r
430 void I2C_AcknowledgeConfig(I2C_TypeDef* I2Cx, FunctionalState NewState);\r
431 void I2C_OwnAddress2Config(I2C_TypeDef* I2Cx, uint8_t Address);\r
432 void I2C_DualAddressCmd(I2C_TypeDef* I2Cx, FunctionalState NewState);\r
433 void I2C_GeneralCallCmd(I2C_TypeDef* I2Cx, FunctionalState NewState);\r
434 void I2C_ITConfig(I2C_TypeDef* I2Cx, uint16_t I2C_IT, FunctionalState NewState);\r
435 void I2C_SendData(I2C_TypeDef* I2Cx, uint8_t Data);\r
436 uint8_t I2C_ReceiveData(I2C_TypeDef* I2Cx);\r
437 void I2C_Send7bitAddress(I2C_TypeDef* I2Cx, uint8_t Address, uint8_t I2C_Direction);\r
438 uint16_t I2C_ReadRegister(I2C_TypeDef* I2Cx, uint8_t I2C_Register);\r
439 void I2C_SoftwareResetCmd(I2C_TypeDef* I2Cx, FunctionalState NewState);\r
440 void I2C_SMBusAlertConfig(I2C_TypeDef* I2Cx, uint16_t I2C_SMBusAlert);\r
441 void I2C_TransmitPEC(I2C_TypeDef* I2Cx, FunctionalState NewState);\r
442 void I2C_PECPositionConfig(I2C_TypeDef* I2Cx, uint16_t I2C_PECPosition);\r
443 void I2C_CalculatePEC(I2C_TypeDef* I2Cx, FunctionalState NewState);\r
444 uint8_t I2C_GetPEC(I2C_TypeDef* I2Cx);\r
445 void I2C_ARPCmd(I2C_TypeDef* I2Cx, FunctionalState NewState);\r
446 void I2C_StretchClockCmd(I2C_TypeDef* I2Cx, FunctionalState NewState);\r
447 void I2C_FastModeDutyCycleConfig(I2C_TypeDef* I2Cx, uint16_t I2C_DutyCycle);\r
448 uint32_t I2C_GetLastEvent(I2C_TypeDef* I2Cx);\r
449 ErrorStatus I2C_CheckEvent(I2C_TypeDef* I2Cx, uint32_t I2C_EVENT);\r
450 FlagStatus I2C_GetFlagStatus(I2C_TypeDef* I2Cx, uint32_t I2C_FLAG);\r
451 void I2C_ClearFlag(I2C_TypeDef* I2Cx, uint32_t I2C_FLAG);\r
452 ITStatus I2C_GetITStatus(I2C_TypeDef* I2Cx, uint32_t I2C_IT);\r
453 void I2C_ClearITPendingBit(I2C_TypeDef* I2Cx, uint32_t I2C_IT);\r
454 \r
455 #ifdef __cplusplus\r
456 }\r
457 #endif\r
458 \r
459 #endif /*__STM32F10x_I2C_H */\r
460 /**\r
461   * @}\r
462   */ \r
463 \r
464 /**\r
465   * @}\r
466   */ \r
467 \r
468 /**\r
469   * @}\r
470   */ \r
471 \r
472 /******************* (C) COPYRIGHT 2009 STMicroelectronics *****END OF FILE****/\r