i2c.h
Go to the documentation of this file.
1 /* --COPYRIGHT--,BSD
2  * Copyright (c) 2017, Texas Instruments Incorporated
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  *
9  * * Redistributions of source code must retain the above copyright
10  * notice, this list of conditions and the following disclaimer.
11  *
12  * * Redistributions in binary form must reproduce the above copyright
13  * notice, this list of conditions and the following disclaimer in the
14  * documentation and/or other materials provided with the distribution.
15  *
16  * * Neither the name of Texas Instruments Incorporated nor the names of
17  * its contributors may be used to endorse or promote products derived
18  * from this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  * --/COPYRIGHT--*/
32 #ifndef I2C_H_
33 #define I2C_H_
34 
35 //*****************************************************************************
36 //
39 //
40 //*****************************************************************************
41 
42 //*****************************************************************************
43 //
44 // If building with a C++ compiler, make all of the definitions in this header
45 // have a C binding.
46 //
47 //*****************************************************************************
48 #ifdef __cplusplus
49 extern "C"
50 {
51 #endif
52 
53 #include <stdint.h>
54 #include <stdbool.h>
55 #include <ti/devices/msp432p4xx/inc/msp.h>
56 #include <ti/devices/msp432p4xx/driverlib/eusci.h>
57 
58 #define EUSCI_B_I2C_NO_AUTO_STOP EUSCI_B_CTLW1_ASTP_0
59 #define EUSCI_B_I2C_SET_BYTECOUNT_THRESHOLD_FLAG EUSCI_B_CTLW1_ASTP_1
60 #define EUSCI_B_I2C_SEND_STOP_AUTOMATICALLY_ON_BYTECOUNT_THRESHOLD \
61  EUSCI_B_CTLW1_ASTP_2
62 
63 #define EUSCI_B_I2C_SET_DATA_RATE_1MBPS 1000000
64 #define EUSCI_B_I2C_SET_DATA_RATE_400KBPS 400000
65 #define EUSCI_B_I2C_SET_DATA_RATE_100KBPS 100000
66 
67 #define EUSCI_B_I2C_CLOCKSOURCE_ACLK EUSCI_B_CTLW0_SSEL__ACLK
68 #define EUSCI_B_I2C_CLOCKSOURCE_SMCLK EUSCI_B_CTLW0_SSEL__SMCLK
69 
70 #define EUSCI_B_I2C_OWN_ADDRESS_OFFSET0 0x00
71 #define EUSCI_B_I2C_OWN_ADDRESS_OFFSET1 0x02
72 #define EUSCI_B_I2C_OWN_ADDRESS_OFFSET2 0x04
73 #define EUSCI_B_I2C_OWN_ADDRESS_OFFSET3 0x06
74 
75 #define EUSCI_B_I2C_OWN_ADDRESS_DISABLE 0x00
76 #define EUSCI_B_I2C_OWN_ADDRESS_ENABLE EUSCI_B_I2COA0_OAEN
77 
78 #define EUSCI_B_I2C_TRANSMIT_MODE EUSCI_B_CTLW0_TR
79 #define EUSCI_B_I2C_RECEIVE_MODE 0x00
80 
81 #define EUSCI_B_I2C_TIMEOUT_DISABLE EUSCI_B_CTLW1_CLTO_0
82 #define EUSCI_B_I2C_TIMEOUT_28_MS EUSCI_B_CTLW1_CLTO_1
83 #define EUSCI_B_I2C_TIMEOUT_31_MS EUSCI_B_CTLW1_CLTO_2
84 #define EUSCI_B_I2C_TIMEOUT_34_MS EUSCI_B_CTLW1_CLTO_3
85 
86 #define EUSCI_B_I2C_NAK_INTERRUPT EUSCI_B_IE_NACKIE
87 #define EUSCI_B_I2C_ARBITRATIONLOST_INTERRUPT EUSCI_B_IE_ALIE
88 #define EUSCI_B_I2C_STOP_INTERRUPT EUSCI_B_IE_STPIE
89 #define EUSCI_B_I2C_START_INTERRUPT EUSCI_B_IE_STTIE
90 #define EUSCI_B_I2C_TRANSMIT_INTERRUPT0 EUSCI_B_IE_TXIE0
91 #define EUSCI_B_I2C_TRANSMIT_INTERRUPT1 EUSCI_B_IE_TXIE1
92 #define EUSCI_B_I2C_TRANSMIT_INTERRUPT2 EUSCI_B_IE_TXIE2
93 #define EUSCI_B_I2C_TRANSMIT_INTERRUPT3 EUSCI_B_IE_TXIE3
94 #define EUSCI_B_I2C_RECEIVE_INTERRUPT0 EUSCI_B_IE_RXIE0
95 #define EUSCI_B_I2C_RECEIVE_INTERRUPT1 EUSCI_B_IE_RXIE1
96 #define EUSCI_B_I2C_RECEIVE_INTERRUPT2 EUSCI_B_IE_RXIE2
97 #define EUSCI_B_I2C_RECEIVE_INTERRUPT3 EUSCI_B_IE_RXIE3
98 #define EUSCI_B_I2C_BIT9_POSITION_INTERRUPT EUSCI_B_IE_BIT9IE
99 #define EUSCI_B_I2C_CLOCK_LOW_TIMEOUT_INTERRUPT EUSCI_B_IE_CLTOIE
100 #define EUSCI_B_I2C_BYTE_COUNTER_INTERRUPT EUSCI_B_IE_BCNTIE
101 
102 #define EUSCI_B_I2C_BUS_BUSY EUSCI_B_STATW_BBUSY
103 #define EUSCI_B_I2C_BUS_NOT_BUSY 0x00
104 
105 #define EUSCI_B_I2C_STOP_SEND_COMPLETE 0x00
106 #define EUSCI_B_I2C_SENDING_STOP EUSCI_B_CTLW0_TXSTP
107 
108 #define EUSCI_B_I2C_START_SEND_COMPLETE 0x00
109 #define EUSCI_B_I2C_SENDING_START EUSCI_B_CTLW0_TXSTT
110 
111 //*****************************************************************************
112 //
119 //
120 //*****************************************************************************
121 typedef struct
122 {
123  uint_fast8_t selectClockSource;
124  uint32_t i2cClk;
125  uint32_t dataRate;
126  uint_fast8_t byteCounterThreshold;
127  uint_fast8_t autoSTOPGeneration;
129 
130 
131 //*****************************************************************************
132 //
178 //
179 //*****************************************************************************
180 extern void I2C_initMaster(uint32_t moduleInstance,
181  const eUSCI_I2C_MasterConfig *config);
182 
183 //*****************************************************************************
184 //
222 //
223 //*****************************************************************************
224 extern void I2C_initSlave(uint32_t moduleInstance, uint_fast16_t slaveAddress,
225  uint_fast8_t slaveAddressOffset, uint32_t slaveOwnAddressEnable);
226 
227 //*****************************************************************************
228 //
245 //
246 //*****************************************************************************
247 extern void I2C_enableModule(uint32_t moduleInstance);
248 
249 //*****************************************************************************
250 //
267 //
268 //*****************************************************************************
269 extern void I2C_disableModule(uint32_t moduleInstance);
270 
271 //*****************************************************************************
272 //
292 //
293 //*****************************************************************************
294 extern void I2C_setSlaveAddress(uint32_t moduleInstance,
295  uint_fast16_t slaveAddress);
296 
297 //*****************************************************************************
298 //
318 //
319 //*****************************************************************************
320 extern void I2C_setMode(uint32_t moduleInstance, uint_fast8_t mode);
321 
322 //*****************************************************************************
323 //
346 //
347 //*****************************************************************************
348 extern void I2C_setTimeout(uint32_t moduleInstance, uint_fast16_t timeout);
349 
350 //*****************************************************************************
351 //
373 //
374 //*****************************************************************************
375 extern uint_fast8_t I2C_getMode(uint32_t moduleInstance);
376 
377 //*****************************************************************************
378 //
398 //
399 //*****************************************************************************
400 extern void I2C_slavePutData(uint32_t moduleInstance, uint8_t transmitData);
401 
402 //*****************************************************************************
403 //
421 //
422 //*****************************************************************************
423 extern uint8_t I2C_slaveGetData(uint32_t moduleInstance);
424 
425 //*****************************************************************************
426 //
446 //
447 //*****************************************************************************
448 extern uint8_t I2C_isBusBusy(uint32_t moduleInstance);
449 
450 //*****************************************************************************
451 //
476 //
477 //*****************************************************************************
478 extern void I2C_masterSendSingleByte(uint32_t moduleInstance, uint8_t txData);
479 
480 //*****************************************************************************
481 //
507 //
508 //*****************************************************************************
509 extern bool I2C_masterSendSingleByteWithTimeout(uint32_t moduleInstance,
510  uint8_t txData, uint32_t timeout);
511 
512 //*****************************************************************************
513 //
537 //
538 //*****************************************************************************
539 extern void I2C_masterSendMultiByteStart(uint32_t moduleInstance,
540  uint8_t txData);
541 
542 //*****************************************************************************
543 //
568 //
569 //*****************************************************************************
570 extern bool I2C_masterSendMultiByteStartWithTimeout(uint32_t moduleInstance,
571  uint8_t txData, uint32_t timeout);
572 
573 //*****************************************************************************
574 //
596 //
597 //*****************************************************************************
598 extern void I2C_masterSendMultiByteNext(uint32_t moduleInstance,
599  uint8_t txData);
600 
601 //*****************************************************************************
602 //
626 //
627 //*****************************************************************************
628 extern bool I2C_masterSendMultiByteNextWithTimeout(uint32_t moduleInstance,
629  uint8_t txData, uint32_t timeout);
630 
631 //*****************************************************************************
632 //
656 //
657 //*****************************************************************************
658 extern bool I2C_masterSendMultiByteFinish(uint32_t moduleInstance,
659  uint8_t txData);
660 
661 //*****************************************************************************
662 //
687 //
688 //*****************************************************************************
689 extern bool I2C_masterSendMultiByteFinishWithTimeout(uint32_t moduleInstance,
690  uint8_t txData, uint32_t timeout);
691 
692 //*****************************************************************************
693 //
715 //
716 //*****************************************************************************
717 extern void I2C_masterSendMultiByteStop(uint32_t moduleInstance);
718 
719 //*****************************************************************************
720 //
744 //
745 //*****************************************************************************
746 extern bool I2C_masterSendMultiByteStopWithTimeout(uint32_t moduleInstance,
747  uint32_t timeout);
748 
749 //*****************************************************************************
750 //
770 //
771 //*****************************************************************************
772 extern void I2C_masterReceiveStart(uint32_t moduleInstance);
773 
774 //*****************************************************************************
775 //
795 //
796 //*****************************************************************************
797 extern uint8_t I2C_masterReceiveMultiByteNext(uint32_t moduleInstance);
798 
799 //*****************************************************************************
800 //
822 //
823 //*****************************************************************************
824 extern uint8_t I2C_masterReceiveMultiByteFinish(uint32_t moduleInstance);
825 
826 //*****************************************************************************
827 //
852 //
853 //*****************************************************************************
854 extern bool I2C_masterReceiveMultiByteFinishWithTimeout(uint32_t moduleInstance,
855  uint8_t *txData, uint32_t timeout);
856 
857 //*****************************************************************************
858 //
877 //
878 //*****************************************************************************
879 extern void I2C_masterReceiveMultiByteStop(uint32_t moduleInstance);
880 
881 //*****************************************************************************
882 //
905 //
906 //*****************************************************************************
907 extern uint8_t I2C_masterReceiveSingleByte(uint32_t moduleInstance);
908 
909 //*****************************************************************************
910 //
928 //
929 //*****************************************************************************
930 extern uint8_t I2C_masterReceiveSingle(uint32_t moduleInstance);
931 
932 //*****************************************************************************
933 //
951 //
952 //*****************************************************************************
953 extern uint32_t I2C_getReceiveBufferAddressForDMA(uint32_t moduleInstance);
954 
955 //*****************************************************************************
956 //
974 //
975 //*****************************************************************************
976 extern uint32_t I2C_getTransmitBufferAddressForDMA(uint32_t moduleInstance);
977 
978 //*****************************************************************************
979 //
999 //
1000 //*****************************************************************************
1001 extern uint8_t I2C_masterIsStopSent(uint32_t moduleInstance);
1002 
1003 //*****************************************************************************
1004 //
1024 //
1025 //*****************************************************************************
1026 extern bool I2C_masterIsStartSent(uint32_t moduleInstance);
1027 
1028 //*****************************************************************************
1029 //
1048 //
1049 //*****************************************************************************
1050 extern void I2C_masterSendStart(uint32_t moduleInstance);
1051 
1052 //*****************************************************************************
1053 //
1074 //
1075 //*****************************************************************************
1076 extern void I2C_enableMultiMasterMode(uint32_t moduleInstance);
1077 
1078 //*****************************************************************************
1079 //
1100 //
1101 //*****************************************************************************
1102 extern void I2C_disableMultiMasterMode(uint32_t moduleInstance);
1103 
1104 //*****************************************************************************
1105 //
1147 //
1148 //*****************************************************************************
1149 extern void I2C_enableInterrupt(uint32_t moduleInstance, uint_fast16_t mask);
1150 
1151 //*****************************************************************************
1152 //
1194 //
1195 //*****************************************************************************
1196 extern void I2C_disableInterrupt(uint32_t moduleInstance, uint_fast16_t mask);
1197 
1198 //*****************************************************************************
1199 //
1224 //
1225 //*****************************************************************************
1226 extern void I2C_clearInterruptFlag(uint32_t moduleInstance, uint_fast16_t mask);
1227 
1228 //*****************************************************************************
1229 //
1279 //
1280 //*****************************************************************************
1281 extern uint_fast16_t I2C_getInterruptStatus(uint32_t moduleInstance, uint16_t mask);
1282 
1283 //*****************************************************************************
1284 //
1316 //
1317 //*****************************************************************************
1318 extern uint_fast16_t I2C_getEnabledInterruptStatus(uint32_t moduleInstance);
1319 
1320 //*****************************************************************************
1321 //
1347 //
1348 //*****************************************************************************
1349 extern void I2C_registerInterrupt(uint32_t moduleInstance,
1350  void (*intHandler)(void));
1351 
1352 //*****************************************************************************
1353 //
1374 //
1375 //*****************************************************************************
1376 extern void I2C_unregisterInterrupt(uint32_t moduleInstance);
1377 
1378 
1379 //*****************************************************************************
1380 //
1394 //
1395 //*****************************************************************************
1396 extern void I2C_slaveSendNAK(uint32_t moduleInstance);
1397 
1398 /* Backwards Compatibility Layer */
1399 #define EUSCI_B_I2C_slaveInit I2C_initSlave
1400 #define EUSCI_B_I2C_enable I2C_enableModule
1401 #define EUSCI_B_I2C_disable I2C_disableModule
1402 #define EUSCI_B_I2C_setSlaveAddress I2C_setSlaveAddress
1403 #define EUSCI_B_I2C_setMode I2C_setMode
1404 #define EUSCI_B_I2C_getMode I2C_getMode
1405 #define EUSCI_B_I2C_slaveDataPut I2C_slavePutData
1406 #define EUSCI_B_I2C_slaveDataGet I2C_slaveGetData
1407 #define EUSCI_B_I2C_isBusBusy I2C_isBusBusy
1408 #define EUSCI_B_I2C_masterIsStopSent I2C_masterIsStopSent
1409 #define EUSCI_B_I2C_masterIsStartSent I2C_masterIsStartSent
1410 #define EUSCI_B_I2C_enableInterrupt I2C_enableInterrupt
1411 #define EUSCI_B_I2C_disableInterrupt I2C_disableInterrupt
1412 #define EUSCI_B_I2C_clearInterruptFlag I2C_clearInterruptFlag
1413 #define EUSCI_B_I2C_getInterruptStatus I2C_getEnabledInterruptStatus
1414 #define EUSCI_B_I2C_masterSendSingleByte I2C_masterSendSingleByte
1415 #define EUSCI_B_I2C_masterReceiveSingleByte I2C_masterReceiveSingleByte
1416 #define EUSCI_B_I2C_masterSendSingleByteWithTimeout I2C_masterSendSingleByteWithTimeout
1417 #define EUSCI_B_I2C_masterMultiByteSendStart I2C_masterSendMultiByteStart
1418 #define EUSCI_B_I2C_masterMultiByteSendStartWithTimeout I2C_masterSendMultiByteStartWithTimeout
1419 #define EUSCI_B_I2C_masterMultiByteSendNext I2C_masterSendMultiByteNext
1420 #define EUSCI_B_I2C_masterMultiByteSendNextWithTimeout I2C_masterSendMultiByteNextWithTimeout
1421 #define EUSCI_B_I2C_masterMultiByteSendFinish I2C_masterSendMultiByteFinish
1422 #define EUSCI_B_I2C_masterMultiByteSendFinishWithTimeout I2C_masterSendMultiByteFinishWithTimeout
1423 #define EUSCI_B_I2C_masterSendStart I2C_masterSendStart
1424 #define EUSCI_B_I2C_masterMultiByteSendStop I2C_masterSendMultiByteStop
1425 #define EUSCI_B_I2C_masterMultiByteSendStopWithTimeout I2C_masterSendMultiByteStopWithTimeout
1426 #define EUSCI_B_I2C_masterReceiveStart I2C_masterReceiveStart
1427 #define EUSCI_B_I2C_masterMultiByteReceiveNext I2C_masterReceiveMultiByteNext
1428 #define EUSCI_B_I2C_masterMultiByteReceiveFinish I2C_masterReceiveMultiByteFinish
1429 #define EUSCI_B_I2C_masterMultiByteReceiveFinishWithTimeout I2C_masterReceiveMultiByteFinishWithTimeout
1430 #define EUSCI_B_I2C_masterMultiByteReceiveStop I2C_masterReceiveMultiByteStop
1431 #define EUSCI_B_I2C_enableMultiMasterMode I2C_enableMultiMasterMode
1432 #define EUSCI_B_I2C_disableMultiMasterMode I2C_disableMultiMasterMode
1433 #define EUSCI_B_I2C_masterSingleReceive I2C_masterReceiveSingle
1434 #define EUSCI_B_I2C_getReceiveBufferAddressForDMA I2C_getReceiveBufferAddressForDMA
1435 #define EUSCI_B_I2C_getTransmitBufferAddressForDMA I2C_getTransmitBufferAddressForDMA
1436 
1437 
1438 //*****************************************************************************
1439 //
1440 // Mark the end of the C bindings section for C++ compilers.
1441 //
1442 //*****************************************************************************
1443 #ifdef __cplusplus
1444 }
1445 #endif
1446 
1447 //*****************************************************************************
1448 //
1449 // Close the Doxygen group.
1451 //
1452 //*****************************************************************************
1453 
1454 #endif /* I2C_H_ */
1455 
void I2C_slaveSendNAK(uint32_t moduleInstance)
Definition: i2c.c:832
bool I2C_masterSendMultiByteFinishWithTimeout(uint32_t moduleInstance, uint8_t txData, uint32_t timeout)
Definition: i2c.c:448
bool I2C_masterSendMultiByteStartWithTimeout(uint32_t moduleInstance, uint8_t txData, uint32_t timeout)
Definition: i2c.c:342
void I2C_setMode(uint32_t moduleInstance, uint_fast8_t mode)
Definition: i2c.c:138
uint8_t I2C_masterReceiveSingleByte(uint32_t moduleInstance)
Definition: i2c.c:173
void I2C_disableInterrupt(uint32_t moduleInstance, uint_fast16_t mask)
Definition: i2c.c:689
uint32_t dataRate
Definition: i2c.h:125
bool I2C_masterSendMultiByteStopWithTimeout(uint32_t moduleInstance, uint32_t timeout)
Definition: i2c.c:505
void I2C_masterReceiveMultiByteStop(uint32_t moduleInstance)
Definition: i2c.c:599
uint8_t I2C_masterReceiveMultiByteFinish(uint32_t moduleInstance)
Definition: i2c.c:542
uint8_t I2C_masterReceiveSingle(uint32_t moduleInstance)
Definition: i2c.c:606
uint_fast8_t byteCounterThreshold
Definition: i2c.h:126
uint8_t I2C_isBusBusy(uint32_t moduleInstance)
Definition: i2c.c:222
uint32_t I2C_getTransmitBufferAddressForDMA(uint32_t moduleInstance)
Definition: i2c.c:625
uint_fast8_t autoSTOPGeneration
Definition: i2c.h:127
bool I2C_masterIsStartSent(uint32_t moduleInstance)
Definition: i2c.c:636
uint8_t I2C_masterIsStopSent(uint32_t moduleInstance)
Definition: i2c.c:630
bool I2C_masterSendSingleByteWithTimeout(uint32_t moduleInstance, uint8_t txData, uint32_t timeout)
Definition: i2c.c:264
bool I2C_masterSendMultiByteNextWithTimeout(uint32_t moduleInstance, uint8_t txData, uint32_t timeout)
Definition: i2c.c:394
uint_fast16_t I2C_getEnabledInterruptStatus(uint32_t moduleInstance)
Definition: i2c.c:762
void I2C_masterSendMultiByteStart(uint32_t moduleInstance, uint8_t txData)
Definition: i2c.c:317
bool I2C_masterReceiveMultiByteFinishWithTimeout(uint32_t moduleInstance, uint8_t *txData, uint32_t timeout)
Definition: i2c.c:563
void I2C_registerInterrupt(uint32_t moduleInstance, void(*intHandler)(void))
Definition: i2c.c:774
void I2C_slavePutData(uint32_t moduleInstance, uint8_t transmitData)
Definition: i2c.c:210
uint_fast8_t I2C_getMode(uint32_t moduleInstance)
Gets the mode of the I2C device.
Definition: i2c.c:768
void I2C_masterReceiveStart(uint32_t moduleInstance)
Definition: i2c.c:530
uint8_t I2C_masterReceiveMultiByteNext(uint32_t moduleInstance)
Definition: i2c.c:537
void I2C_initMaster(uint32_t moduleInstance, const eUSCI_I2C_MasterConfig *config)
Definition: i2c.c:36
uint_fast16_t I2C_getInterruptStatus(uint32_t moduleInstance, uint16_t mask)
Definition: i2c.c:738
void I2C_setTimeout(uint32_t moduleInstance, uint_fast16_t timeout)
Definition: i2c.c:149
void I2C_masterSendMultiByteNext(uint32_t moduleInstance, uint8_t txData)
Definition: i2c.c:379
void I2C_initSlave(uint32_t moduleInstance, uint_fast16_t slaveAddress, uint_fast8_t slaveAddressOffset, uint32_t slaveOwnAddressEnable)
Definition: i2c.c:92
void I2C_clearInterruptFlag(uint32_t moduleInstance, uint_fast16_t mask)
Definition: i2c.c:714
void I2C_masterSendSingleByte(uint32_t moduleInstance, uint8_t txData)
Definition: i2c.c:229
void I2C_unregisterInterrupt(uint32_t moduleInstance)
Definition: i2c.c:803
uint32_t i2cClk
Definition: i2c.h:124
void I2C_enableMultiMasterMode(uint32_t moduleInstance)
Definition: i2c.c:648
uint32_t I2C_getReceiveBufferAddressForDMA(uint32_t moduleInstance)
Definition: i2c.c:620
void I2C_masterSendStart(uint32_t moduleInstance)
Definition: i2c.c:642
void I2C_enableInterrupt(uint32_t moduleInstance, uint_fast16_t mask)
Definition: i2c.c:664
uint8_t I2C_slaveGetData(uint32_t moduleInstance)
Definition: i2c.c:216
Definition: i2c.h:121
void I2C_masterSendMultiByteStop(uint32_t moduleInstance)
Definition: i2c.c:489
void I2C_setSlaveAddress(uint32_t moduleInstance, uint_fast16_t slaveAddress)
Definition: i2c.c:132
void I2C_disableModule(uint32_t moduleInstance)
Definition: i2c.c:124
void I2C_disableMultiMasterMode(uint32_t moduleInstance)
Definition: i2c.c:656
uint_fast8_t selectClockSource
Definition: i2c.h:123
bool I2C_masterSendMultiByteFinish(uint32_t moduleInstance, uint8_t txData)
Definition: i2c.c:418
void I2C_enableModule(uint32_t moduleInstance)
Definition: i2c.c:117

Copyright 2019, Texas Instruments Incorporated