MCUXpresso_MIMXRT1052xxxxB/docs/MCUXpresso SDK API Referenc.../a00031.html

1927 lines
112 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>MCUXpresso SDK API Reference Manual: FlexIO I2C Master Driver</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
$(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="fs_logo.gif"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">MCUXpresso SDK API Reference Manual
&#160;<span id="projectnumber">Rev 2.15.000</span>
</div>
<div id="projectbrief">NXP Semiconductors</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>API&#160;Reference</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('a00031.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> </div>
<div class="headertitle">
<div class="title">FlexIO I2C Master Driver<div class="ingroups"><a class="el" href="a00278.html">FlexIO: FlexIO Driver</a></div></div> </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Overview</h2>
<p>The MCUXpresso SDK provides a peripheral driver for I2C master function using Flexible I/O module of MCUXpresso SDK devices.</p>
<p>The FlexIO I2C master driver includes functional APIs and transactional APIs.</p>
<p>Functional APIs target low level APIs. Functional APIs can be used for the FlexIO I2C master initialization/configuration/operation for the optimization/customization purpose. Using the functional APIs requires the knowledge of the FlexIO I2C master peripheral and how to organize functional APIs to meet the application requirements. The FlexIO I2C master functional operation groups provide the functional APIs set.</p>
<p>Transactional APIs target high-level APIs. The transactional APIs can be used to enable the peripheral quickly and also in the application if the code size and performance of transactional APIs satisfy the requirements. If the code size and performance are critical requirements, see the transactional API implementation and write custom code using the functional APIs or accessing the hardware registers.</p>
<p>Transactional APIs support an asynchronous transfer. This means that the functions <a class="el" href="a00031.html#ga4e21323685831e0ee3f88d50e4c8872c" title="Performs a master interrupt non-blocking transfer on the I2C bus. ">FLEXIO_I2C_MasterTransferNonBlocking()</a> set up the interrupt non-blocking transfer. When the transfer completes, the upper layer is notified through a callback function with the kStatus_Success status.</p>
<h1><a class="anchor" id="FlexIO_I2CMasterCase"></a>
Typical use case</h1>
<h2><a class="anchor" id="FlexIO_I2CMasterCaseInterrupt"></a>
FlexIO I2C master transfer using an interrupt method</h2>
<div class="fragment"><div class="line"><a class="code" href="a00031.html#a00389">flexio_i2c_master_handle_t</a> g_m_handle;</div>
<div class="line"><a class="code" href="a00031.html#a00388">flexio_i2c_master_config_t</a> masterConfig;</div>
<div class="line"><a class="code" href="a00031.html#a00390">flexio_i2c_master_transfer_t</a> masterXfer;</div>
<div class="line"><span class="keyword">volatile</span> <span class="keywordtype">bool</span> completionFlag = <span class="keyword">false</span>;</div>
<div class="line"><span class="keyword">const</span> uint8_t sendData[] = [......];</div>
<div class="line"><a class="code" href="a00031.html#a00391">FLEXIO_I2C_Type</a> i2cDev;</div>
<div class="line"></div>
<div class="line"><span class="keywordtype">void</span> FLEXIO_I2C_MasterCallback(<a class="code" href="a00031.html#a00391">FLEXIO_I2C_Type</a> *base, <a class="code" href="a00272.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> status, <span class="keywordtype">void</span> *userData)</div>
<div class="line">{</div>
<div class="line"> userData = userData;</div>
<div class="line"></div>
<div class="line"> <span class="keywordflow">if</span> (<a class="code" href="a00272.html#ggabed82baf7f470b522273a3e37c24c600a829bee76c6b02225d9c891ae8ef70881">kStatus_Success</a> == status)</div>
<div class="line"> {</div>
<div class="line"> completionFlag = <span class="keyword">true</span>;</div>
<div class="line"> }</div>
<div class="line">}</div>
<div class="line"></div>
<div class="line"><span class="keywordtype">void</span> main(<span class="keywordtype">void</span>)</div>
<div class="line">{</div>
<div class="line"> <span class="comment">//...</span></div>
<div class="line"></div>
<div class="line"> <a class="code" href="a00031.html#gaa85599771e53091102f0823217ad0bcc">FLEXIO_I2C_MasterGetDefaultConfig</a>(&amp;masterConfig);</div>
<div class="line"></div>
<div class="line"> <a class="code" href="a00031.html#gaaacd8cca7de1ff3a8c33c86d4f7f88fd">FLEXIO_I2C_MasterInit</a>(&amp;i2cDev, &amp;user_config);</div>
<div class="line"> <a class="code" href="a00031.html#ga2d26c2cb21b034487ba8b8d4c5da2ef5">FLEXIO_I2C_MasterTransferCreateHandle</a>(&amp;i2cDev, &amp;g_m_handle, FLEXIO_I2C_MasterCallback, NULL);</div>
<div class="line"></div>
<div class="line"> <span class="comment">// Prepares to send.</span></div>
<div class="line"> masterXfer.<a class="code" href="a00031.html#ad40d580b11006c7b47931d5a16482a01">slaveAddress</a> = g_accel_address[0];</div>
<div class="line"> masterXfer.<a class="code" href="a00031.html#a3a0e94bf1d8f89f9a0f3c36b919e6a09">direction</a> = kI2C_Read;</div>
<div class="line"> masterXfer.<a class="code" href="a00031.html#a3404710ebddd14a8b17023b52bb9879b">subaddress</a> = &amp;who_am_i_reg;</div>
<div class="line"> masterXfer.<a class="code" href="a00031.html#af41d8d9c777f5e6413561a92601ec930">subaddressSize</a> = 1;</div>
<div class="line"> masterXfer.<a class="code" href="a00031.html#a0104b33e9efa445c26bde6cc0be3ddce">data</a> = &amp;who_am_i_value;</div>
<div class="line"> masterXfer.<a class="code" href="a00031.html#a8539ca8b74e1d6335754daf6e819fd47">dataSize</a> = 1;</div>
<div class="line"> masterXfer.<a class="code" href="a00031.html#aa74dd7104b75a95d9128fce2f9731628">flags</a> = kI2C_TransferDefaultFlag;</div>
<div class="line"></div>
<div class="line"> <span class="comment">// Sends out.</span></div>
<div class="line"> <a class="code" href="a00031.html#ga4e21323685831e0ee3f88d50e4c8872c">FLEXIO_I2C_MasterTransferNonBlocking</a>(&amp;i2cDev, &amp;g_m_handle, &amp;masterXfer);</div>
<div class="line"></div>
<div class="line"> <span class="comment">// Wait for sending is complete.</span></div>
<div class="line"> <span class="keywordflow">while</span> (!completionFlag)</div>
<div class="line"> {</div>
<div class="line"> }</div>
<div class="line"></div>
<div class="line"> <span class="comment">// ...</span></div>
<div class="line">}</div>
</div><!-- fragment --> <table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:a00391"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#a00391">_flexio_i2c_type</a></td></tr>
<tr class="memdesc:a00391"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define FlexIO I2C master access structure typedef. <a href="a00031.html#a00391">More...</a><br/></td></tr>
<tr class="separator:a00391"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00388"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#a00388">_flexio_i2c_master_config</a></td></tr>
<tr class="memdesc:a00388"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define FlexIO I2C master user configuration structure. <a href="a00031.html#a00388">More...</a><br/></td></tr>
<tr class="separator:a00388"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00390"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#a00390">_flexio_i2c_master_transfer</a></td></tr>
<tr class="memdesc:a00390"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define FlexIO I2C master transfer structure. <a href="a00031.html#a00390">More...</a><br/></td></tr>
<tr class="separator:a00390"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00389"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#a00389">_flexio_i2c_master_handle</a></td></tr>
<tr class="memdesc:a00389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define FlexIO I2C master handle structure. <a href="a00031.html#a00389">More...</a><br/></td></tr>
<tr class="separator:a00389"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:gaac288786aaa7d0cb947c91591baf42d7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#gaac288786aaa7d0cb947c91591baf42d7">I2C_RETRY_TIMES</a>&#160;&#160;&#160;0U /* Define to zero means keep waiting until the flag is assert/deassert. */</td></tr>
<tr class="memdesc:gaac288786aaa7d0cb947c91591baf42d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retry times for waiting flag. <a href="#gaac288786aaa7d0cb947c91591baf42d7">More...</a><br/></td></tr>
<tr class="separator:gaac288786aaa7d0cb947c91591baf42d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga038697c86a5538e572c14a8cede654b3"><td class="memItemLeft" align="right" valign="top">typedef enum <a class="el" href="a00031.html#gabe134561df742c0ed1d6c56196255ccb">_flexio_i2c_direction</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#ga038697c86a5538e572c14a8cede654b3">flexio_i2c_direction_t</a></td></tr>
<tr class="memdesc:ga038697c86a5538e572c14a8cede654b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Direction of master transfer. <a href="#ga038697c86a5538e572c14a8cede654b3">More...</a><br/></td></tr>
<tr class="separator:ga038697c86a5538e572c14a8cede654b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga79ef07860cbf29ed2c2ebce2876f8186"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a00031.html#a00391">_flexio_i2c_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a></td></tr>
<tr class="memdesc:ga79ef07860cbf29ed2c2ebce2876f8186"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define FlexIO I2C master access structure typedef. <a href="#ga79ef07860cbf29ed2c2ebce2876f8186">More...</a><br/></td></tr>
<tr class="separator:ga79ef07860cbf29ed2c2ebce2876f8186"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga241764390b12485a028350187b87e3b0"><td class="memItemLeft" align="right" valign="top">typedef struct <br class="typebreak"/>
<a class="el" href="a00031.html#a00388">_flexio_i2c_master_config</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#ga241764390b12485a028350187b87e3b0">flexio_i2c_master_config_t</a></td></tr>
<tr class="memdesc:ga241764390b12485a028350187b87e3b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define FlexIO I2C master user configuration structure. <a href="#ga241764390b12485a028350187b87e3b0">More...</a><br/></td></tr>
<tr class="separator:ga241764390b12485a028350187b87e3b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad8cb291a190361416d2281573c658220"><td class="memItemLeft" align="right" valign="top">typedef struct <br class="typebreak"/>
<a class="el" href="a00031.html#a00390">_flexio_i2c_master_transfer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#gad8cb291a190361416d2281573c658220">flexio_i2c_master_transfer_t</a></td></tr>
<tr class="memdesc:gad8cb291a190361416d2281573c658220"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define FlexIO I2C master transfer structure. <a href="#gad8cb291a190361416d2281573c658220">More...</a><br/></td></tr>
<tr class="separator:gad8cb291a190361416d2281573c658220"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5f9254ffdddf26ddcd5838437c07c7f2"><td class="memItemLeft" align="right" valign="top">typedef struct <br class="typebreak"/>
<a class="el" href="a00031.html#a00389">_flexio_i2c_master_handle</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#ga5f9254ffdddf26ddcd5838437c07c7f2">flexio_i2c_master_handle_t</a></td></tr>
<tr class="memdesc:ga5f9254ffdddf26ddcd5838437c07c7f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">FlexIO I2C master handle typedef. <a href="#ga5f9254ffdddf26ddcd5838437c07c7f2">More...</a><br/></td></tr>
<tr class="separator:ga5f9254ffdddf26ddcd5838437c07c7f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4a92b2aafd0ea1e7746dc23a7b0f0691"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#ga4a92b2aafd0ea1e7746dc23a7b0f0691">flexio_i2c_master_transfer_callback_t</a> )(<a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *base, <a class="el" href="a00031.html#ga5f9254ffdddf26ddcd5838437c07c7f2">flexio_i2c_master_handle_t</a> *handle, <a class="el" href="a00272.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> status, void *userData)</td></tr>
<tr class="memdesc:ga4a92b2aafd0ea1e7746dc23a7b0f0691"><td class="mdescLeft">&#160;</td><td class="mdescRight">FlexIO I2C master transfer callback typedef. <a href="#ga4a92b2aafd0ea1e7746dc23a7b0f0691">More...</a><br/></td></tr>
<tr class="separator:ga4a92b2aafd0ea1e7746dc23a7b0f0691"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga4caf8d8f829279fba122163d961608a4"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
&#160;&#160;<a class="el" href="a00031.html#gga4caf8d8f829279fba122163d961608a4a8ab8145bc386f3630f13b87c38496331">kStatus_FLEXIO_I2C_Busy</a> = MAKE_STATUS(kStatusGroup_FLEXIO_I2C, 0),
<br/>
&#160;&#160;<a class="el" href="a00031.html#gga4caf8d8f829279fba122163d961608a4a2f105638fc06422cc54cf5337d507873">kStatus_FLEXIO_I2C_Idle</a> = MAKE_STATUS(kStatusGroup_FLEXIO_I2C, 1),
<br/>
&#160;&#160;<a class="el" href="a00031.html#gga4caf8d8f829279fba122163d961608a4af5e4a932f6f9e6ae30a42dc31fab8bd5">kStatus_FLEXIO_I2C_Nak</a> = MAKE_STATUS(kStatusGroup_FLEXIO_I2C, 2),
<br/>
&#160;&#160;<a class="el" href="a00031.html#gga4caf8d8f829279fba122163d961608a4a3d8bcc4ffd332948cb8b28f7982ac4d1">kStatus_FLEXIO_I2C_Timeout</a> = MAKE_STATUS(kStatusGroup_FLEXIO_I2C, 3)
<br/>
}</td></tr>
<tr class="memdesc:ga4caf8d8f829279fba122163d961608a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">FlexIO I2C transfer status. <a href="a00031.html#ga4caf8d8f829279fba122163d961608a4">More...</a><br/></td></tr>
<tr class="separator:ga4caf8d8f829279fba122163d961608a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa4597b532bb2a564c329076dc5da8155"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#gaa4597b532bb2a564c329076dc5da8155">_flexio_i2c_master_interrupt</a> { <br/>
&#160;&#160;<a class="el" href="a00031.html#ggaa4597b532bb2a564c329076dc5da8155ac34fefcbb2d45dd7bfd385586439923b">kFLEXIO_I2C_TxEmptyInterruptEnable</a> = 0x1U,
<br/>
&#160;&#160;<a class="el" href="a00031.html#ggaa4597b532bb2a564c329076dc5da8155a46a53a6077c43dfb924d46e9a218eb6b">kFLEXIO_I2C_RxFullInterruptEnable</a> = 0x2U
<br/>
}</td></tr>
<tr class="memdesc:gaa4597b532bb2a564c329076dc5da8155"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define FlexIO I2C master interrupt mask. <a href="a00031.html#gaa4597b532bb2a564c329076dc5da8155">More...</a><br/></td></tr>
<tr class="separator:gaa4597b532bb2a564c329076dc5da8155"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafc92480bf28b1161b62a1f10a23e7458"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#gafc92480bf28b1161b62a1f10a23e7458">_flexio_i2c_master_status_flags</a> { <br/>
&#160;&#160;<a class="el" href="a00031.html#ggafc92480bf28b1161b62a1f10a23e7458a5eb41467be294db469f4604a010405e3">kFLEXIO_I2C_TxEmptyFlag</a> = 0x1U,
<br/>
&#160;&#160;<a class="el" href="a00031.html#ggafc92480bf28b1161b62a1f10a23e7458a4eba9f70c326fcea72a255cba80dc42d">kFLEXIO_I2C_RxFullFlag</a> = 0x2U,
<br/>
&#160;&#160;<a class="el" href="a00031.html#ggafc92480bf28b1161b62a1f10a23e7458a8774a1fedf2a596d2647864bd4f27664">kFLEXIO_I2C_ReceiveNakFlag</a> = 0x4U
<br/>
}</td></tr>
<tr class="memdesc:gafc92480bf28b1161b62a1f10a23e7458"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define FlexIO I2C master status mask. <a href="a00031.html#gafc92480bf28b1161b62a1f10a23e7458">More...</a><br/></td></tr>
<tr class="separator:gafc92480bf28b1161b62a1f10a23e7458"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabe134561df742c0ed1d6c56196255ccb"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#gabe134561df742c0ed1d6c56196255ccb">_flexio_i2c_direction</a> { <br/>
&#160;&#160;<a class="el" href="a00031.html#ggabe134561df742c0ed1d6c56196255ccba666a4c181486b773264ce1e038e14850">kFLEXIO_I2C_Write</a> = 0x0U,
<br/>
&#160;&#160;<a class="el" href="a00031.html#ggabe134561df742c0ed1d6c56196255ccbaeac2a6bd710680e5f644763dea0c89c4">kFLEXIO_I2C_Read</a> = 0x1U
<br/>
}</td></tr>
<tr class="memdesc:gabe134561df742c0ed1d6c56196255ccb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Direction of master transfer. <a href="a00031.html#gabe134561df742c0ed1d6c56196255ccb">More...</a><br/></td></tr>
<tr class="separator:gabe134561df742c0ed1d6c56196255ccb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Driver version</h2></td></tr>
<tr class="memitem:ga869dccb29d32c1ccd2057003826d07cc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga869dccb29d32c1ccd2057003826d07cc"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FSL_FLEXIO_I2C_MASTER_DRIVER_VERSION</b>&#160;&#160;&#160;(<a class="el" href="a00272.html#ga812138aa3315b0c6953c1a26130bcc37">MAKE_VERSION</a>(2, 5, 0))</td></tr>
<tr class="separator:ga869dccb29d32c1ccd2057003826d07cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Initialization and deinitialization</h2></td></tr>
<tr class="memitem:ga2ded19f42c2b7e09764e6e926c501b67"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00272.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#ga2ded19f42c2b7e09764e6e926c501b67">FLEXIO_I2C_CheckForBusyBus</a> (<a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *base)</td></tr>
<tr class="memdesc:ga2ded19f42c2b7e09764e6e926c501b67"><td class="mdescLeft">&#160;</td><td class="mdescRight">Make sure the bus isn't already pulled down. <a href="#ga2ded19f42c2b7e09764e6e926c501b67">More...</a><br/></td></tr>
<tr class="separator:ga2ded19f42c2b7e09764e6e926c501b67"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaacd8cca7de1ff3a8c33c86d4f7f88fd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00272.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#gaaacd8cca7de1ff3a8c33c86d4f7f88fd">FLEXIO_I2C_MasterInit</a> (<a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *base, <a class="el" href="a00031.html#ga241764390b12485a028350187b87e3b0">flexio_i2c_master_config_t</a> *masterConfig, uint32_t srcClock_Hz)</td></tr>
<tr class="memdesc:gaaacd8cca7de1ff3a8c33c86d4f7f88fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ungates the FlexIO clock, resets the FlexIO module, and configures the FlexIO I2C hardware configuration. <a href="#gaaacd8cca7de1ff3a8c33c86d4f7f88fd">More...</a><br/></td></tr>
<tr class="separator:gaaacd8cca7de1ff3a8c33c86d4f7f88fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2da731bfa4e1e36b5d6d0235898b26dd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#ga2da731bfa4e1e36b5d6d0235898b26dd">FLEXIO_I2C_MasterDeinit</a> (<a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *base)</td></tr>
<tr class="memdesc:ga2da731bfa4e1e36b5d6d0235898b26dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">De-initializes the FlexIO I2C master peripheral. <a href="#ga2da731bfa4e1e36b5d6d0235898b26dd">More...</a><br/></td></tr>
<tr class="separator:ga2da731bfa4e1e36b5d6d0235898b26dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa85599771e53091102f0823217ad0bcc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#gaa85599771e53091102f0823217ad0bcc">FLEXIO_I2C_MasterGetDefaultConfig</a> (<a class="el" href="a00031.html#ga241764390b12485a028350187b87e3b0">flexio_i2c_master_config_t</a> *masterConfig)</td></tr>
<tr class="memdesc:gaa85599771e53091102f0823217ad0bcc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the default configuration to configure the FlexIO module. <a href="#gaa85599771e53091102f0823217ad0bcc">More...</a><br/></td></tr>
<tr class="separator:gaa85599771e53091102f0823217ad0bcc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga287dc7896229cd705bb8abbf51ca63a7"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#ga287dc7896229cd705bb8abbf51ca63a7">FLEXIO_I2C_MasterEnable</a> (<a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *base, bool enable)</td></tr>
<tr class="memdesc:ga287dc7896229cd705bb8abbf51ca63a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables/disables the FlexIO module operation. <a href="#ga287dc7896229cd705bb8abbf51ca63a7">More...</a><br/></td></tr>
<tr class="separator:ga287dc7896229cd705bb8abbf51ca63a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Status</h2></td></tr>
<tr class="memitem:ga5ac748fc7ff593cfa7a9b9a64cd479fa"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#ga5ac748fc7ff593cfa7a9b9a64cd479fa">FLEXIO_I2C_MasterGetStatusFlags</a> (<a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *base)</td></tr>
<tr class="memdesc:ga5ac748fc7ff593cfa7a9b9a64cd479fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the FlexIO I2C master status flags. <a href="#ga5ac748fc7ff593cfa7a9b9a64cd479fa">More...</a><br/></td></tr>
<tr class="separator:ga5ac748fc7ff593cfa7a9b9a64cd479fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad7509c6f4a8885650c313bb0b56e6bfc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#gad7509c6f4a8885650c313bb0b56e6bfc">FLEXIO_I2C_MasterClearStatusFlags</a> (<a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *base, uint32_t mask)</td></tr>
<tr class="memdesc:gad7509c6f4a8885650c313bb0b56e6bfc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears the FlexIO I2C master status flags. <a href="#gad7509c6f4a8885650c313bb0b56e6bfc">More...</a><br/></td></tr>
<tr class="separator:gad7509c6f4a8885650c313bb0b56e6bfc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Interrupts</h2></td></tr>
<tr class="memitem:ga07198112aef949ac73874e7d446f7d38"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#ga07198112aef949ac73874e7d446f7d38">FLEXIO_I2C_MasterEnableInterrupts</a> (<a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *base, uint32_t mask)</td></tr>
<tr class="memdesc:ga07198112aef949ac73874e7d446f7d38"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables the FlexIO i2c master interrupt requests. <a href="#ga07198112aef949ac73874e7d446f7d38">More...</a><br/></td></tr>
<tr class="separator:ga07198112aef949ac73874e7d446f7d38"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3fcce197e268d6e7310a0087d9288b08"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#ga3fcce197e268d6e7310a0087d9288b08">FLEXIO_I2C_MasterDisableInterrupts</a> (<a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *base, uint32_t mask)</td></tr>
<tr class="memdesc:ga3fcce197e268d6e7310a0087d9288b08"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disables the FlexIO I2C master interrupt requests. <a href="#ga3fcce197e268d6e7310a0087d9288b08">More...</a><br/></td></tr>
<tr class="separator:ga3fcce197e268d6e7310a0087d9288b08"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Bus Operations</h2></td></tr>
<tr class="memitem:gac1cb6e0f52c2e9e2b4373415dff1f24c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#gac1cb6e0f52c2e9e2b4373415dff1f24c">FLEXIO_I2C_MasterSetBaudRate</a> (<a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *base, uint32_t baudRate_Bps, uint32_t srcClock_Hz)</td></tr>
<tr class="memdesc:gac1cb6e0f52c2e9e2b4373415dff1f24c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the FlexIO I2C master transfer baudrate. <a href="#gac1cb6e0f52c2e9e2b4373415dff1f24c">More...</a><br/></td></tr>
<tr class="separator:gac1cb6e0f52c2e9e2b4373415dff1f24c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6f9def4b064e4747675dfc16e9fdde00"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#ga6f9def4b064e4747675dfc16e9fdde00">FLEXIO_I2C_MasterStart</a> (<a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *base, uint8_t address, <a class="el" href="a00031.html#ga038697c86a5538e572c14a8cede654b3">flexio_i2c_direction_t</a> direction)</td></tr>
<tr class="memdesc:ga6f9def4b064e4747675dfc16e9fdde00"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends START + 7-bit address to the bus. <a href="#ga6f9def4b064e4747675dfc16e9fdde00">More...</a><br/></td></tr>
<tr class="separator:ga6f9def4b064e4747675dfc16e9fdde00"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6b921453ee8e263f9a2a198b497c88ec"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#ga6b921453ee8e263f9a2a198b497c88ec">FLEXIO_I2C_MasterStop</a> (<a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *base)</td></tr>
<tr class="memdesc:ga6b921453ee8e263f9a2a198b497c88ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends the stop signal on the bus. <a href="#ga6b921453ee8e263f9a2a198b497c88ec">More...</a><br/></td></tr>
<tr class="separator:ga6b921453ee8e263f9a2a198b497c88ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8c2b3776c1630e0bf8e64927a0012b2f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#ga8c2b3776c1630e0bf8e64927a0012b2f">FLEXIO_I2C_MasterRepeatedStart</a> (<a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *base)</td></tr>
<tr class="memdesc:ga8c2b3776c1630e0bf8e64927a0012b2f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends the repeated start signal on the bus. <a href="#ga8c2b3776c1630e0bf8e64927a0012b2f">More...</a><br/></td></tr>
<tr class="separator:ga8c2b3776c1630e0bf8e64927a0012b2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga20efb0f28522d945694d509b5e4bf52d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#ga20efb0f28522d945694d509b5e4bf52d">FLEXIO_I2C_MasterAbortStop</a> (<a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *base)</td></tr>
<tr class="memdesc:ga20efb0f28522d945694d509b5e4bf52d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends the stop signal when transfer is still on-going. <a href="#ga20efb0f28522d945694d509b5e4bf52d">More...</a><br/></td></tr>
<tr class="separator:ga20efb0f28522d945694d509b5e4bf52d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaca2e797a84bc5b68a75ba10cf2750fc0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#gaca2e797a84bc5b68a75ba10cf2750fc0">FLEXIO_I2C_MasterEnableAck</a> (<a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *base, bool enable)</td></tr>
<tr class="memdesc:gaca2e797a84bc5b68a75ba10cf2750fc0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configures the sent ACK/NAK for the following byte. <a href="#gaca2e797a84bc5b68a75ba10cf2750fc0">More...</a><br/></td></tr>
<tr class="separator:gaca2e797a84bc5b68a75ba10cf2750fc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6239ded74ab146f5f04c6355edf6e64a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00272.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#ga6239ded74ab146f5f04c6355edf6e64a">FLEXIO_I2C_MasterSetTransferCount</a> (<a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *base, uint16_t count)</td></tr>
<tr class="memdesc:ga6239ded74ab146f5f04c6355edf6e64a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the number of bytes to be transferred from a start signal to a stop signal. <a href="#ga6239ded74ab146f5f04c6355edf6e64a">More...</a><br/></td></tr>
<tr class="separator:ga6239ded74ab146f5f04c6355edf6e64a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7e82edf243f26522ea3ecedddb4760ba"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#ga7e82edf243f26522ea3ecedddb4760ba">FLEXIO_I2C_MasterWriteByte</a> (<a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *base, uint32_t data)</td></tr>
<tr class="memdesc:ga7e82edf243f26522ea3ecedddb4760ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes one byte of data to the I2C bus. <a href="#ga7e82edf243f26522ea3ecedddb4760ba">More...</a><br/></td></tr>
<tr class="separator:ga7e82edf243f26522ea3ecedddb4760ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2a790d99cbabf8bf7df3216b6da904e5"><td class="memItemLeft" align="right" valign="top">static uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#ga2a790d99cbabf8bf7df3216b6da904e5">FLEXIO_I2C_MasterReadByte</a> (<a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *base)</td></tr>
<tr class="memdesc:ga2a790d99cbabf8bf7df3216b6da904e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads one byte of data from the I2C bus. <a href="#ga2a790d99cbabf8bf7df3216b6da904e5">More...</a><br/></td></tr>
<tr class="separator:ga2a790d99cbabf8bf7df3216b6da904e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga13c8be777cb7336878e161ab32fba000"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00272.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#ga13c8be777cb7336878e161ab32fba000">FLEXIO_I2C_MasterWriteBlocking</a> (<a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *base, const uint8_t *txBuff, uint8_t txSize)</td></tr>
<tr class="memdesc:ga13c8be777cb7336878e161ab32fba000"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a buffer of data in bytes. <a href="#ga13c8be777cb7336878e161ab32fba000">More...</a><br/></td></tr>
<tr class="separator:ga13c8be777cb7336878e161ab32fba000"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5713e8dca1e7e896c3aed89e8961547a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00272.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#ga5713e8dca1e7e896c3aed89e8961547a">FLEXIO_I2C_MasterReadBlocking</a> (<a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *base, uint8_t *rxBuff, uint8_t rxSize)</td></tr>
<tr class="memdesc:ga5713e8dca1e7e896c3aed89e8961547a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Receives a buffer of bytes. <a href="#ga5713e8dca1e7e896c3aed89e8961547a">More...</a><br/></td></tr>
<tr class="separator:ga5713e8dca1e7e896c3aed89e8961547a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7b4b3c280a860777e98b5065225a3150"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00272.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#ga7b4b3c280a860777e98b5065225a3150">FLEXIO_I2C_MasterTransferBlocking</a> (<a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *base, <a class="el" href="a00031.html#gad8cb291a190361416d2281573c658220">flexio_i2c_master_transfer_t</a> *xfer)</td></tr>
<tr class="memdesc:ga7b4b3c280a860777e98b5065225a3150"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs a master polling transfer on the I2C bus. <a href="#ga7b4b3c280a860777e98b5065225a3150">More...</a><br/></td></tr>
<tr class="separator:ga7b4b3c280a860777e98b5065225a3150"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Transactional</h2></td></tr>
<tr class="memitem:ga2d26c2cb21b034487ba8b8d4c5da2ef5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00272.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#ga2d26c2cb21b034487ba8b8d4c5da2ef5">FLEXIO_I2C_MasterTransferCreateHandle</a> (<a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *base, <a class="el" href="a00031.html#ga5f9254ffdddf26ddcd5838437c07c7f2">flexio_i2c_master_handle_t</a> *handle, <a class="el" href="a00031.html#ga4a92b2aafd0ea1e7746dc23a7b0f0691">flexio_i2c_master_transfer_callback_t</a> callback, void *userData)</td></tr>
<tr class="memdesc:ga2d26c2cb21b034487ba8b8d4c5da2ef5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the I2C handle which is used in transactional functions. <a href="#ga2d26c2cb21b034487ba8b8d4c5da2ef5">More...</a><br/></td></tr>
<tr class="separator:ga2d26c2cb21b034487ba8b8d4c5da2ef5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4e21323685831e0ee3f88d50e4c8872c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00272.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#ga4e21323685831e0ee3f88d50e4c8872c">FLEXIO_I2C_MasterTransferNonBlocking</a> (<a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *base, <a class="el" href="a00031.html#ga5f9254ffdddf26ddcd5838437c07c7f2">flexio_i2c_master_handle_t</a> *handle, <a class="el" href="a00031.html#gad8cb291a190361416d2281573c658220">flexio_i2c_master_transfer_t</a> *xfer)</td></tr>
<tr class="memdesc:ga4e21323685831e0ee3f88d50e4c8872c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs a master interrupt non-blocking transfer on the I2C bus. <a href="#ga4e21323685831e0ee3f88d50e4c8872c">More...</a><br/></td></tr>
<tr class="separator:ga4e21323685831e0ee3f88d50e4c8872c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga79fed99f5f4524619e2c2e28ad037544"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00272.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#ga79fed99f5f4524619e2c2e28ad037544">FLEXIO_I2C_MasterTransferGetCount</a> (<a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *base, <a class="el" href="a00031.html#ga5f9254ffdddf26ddcd5838437c07c7f2">flexio_i2c_master_handle_t</a> *handle, size_t *count)</td></tr>
<tr class="memdesc:ga79fed99f5f4524619e2c2e28ad037544"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the master transfer status during a interrupt non-blocking transfer. <a href="#ga79fed99f5f4524619e2c2e28ad037544">More...</a><br/></td></tr>
<tr class="separator:ga79fed99f5f4524619e2c2e28ad037544"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga75ecfe909fcd0ae47303eb90af39dea2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#ga75ecfe909fcd0ae47303eb90af39dea2">FLEXIO_I2C_MasterTransferAbort</a> (<a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *base, <a class="el" href="a00031.html#ga5f9254ffdddf26ddcd5838437c07c7f2">flexio_i2c_master_handle_t</a> *handle)</td></tr>
<tr class="memdesc:ga75ecfe909fcd0ae47303eb90af39dea2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Aborts an interrupt non-blocking transfer early. <a href="#ga75ecfe909fcd0ae47303eb90af39dea2">More...</a><br/></td></tr>
<tr class="separator:ga75ecfe909fcd0ae47303eb90af39dea2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga29129d78b9166b7bcb585e336746bec6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#ga29129d78b9166b7bcb585e336746bec6">FLEXIO_I2C_MasterTransferHandleIRQ</a> (void *i2cType, void *i2cHandle)</td></tr>
<tr class="memdesc:ga29129d78b9166b7bcb585e336746bec6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Master interrupt handler. <a href="#ga29129d78b9166b7bcb585e336746bec6">More...</a><br/></td></tr>
<tr class="separator:ga29129d78b9166b7bcb585e336746bec6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/><h2 class="groupheader">Data Structure Documentation</h2>
<a name="a00391" id="a00391"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct _flexio_i2c_type</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:a8c612e804a704d10af7495010447506d"><td class="memItemLeft" align="right" valign="top">FLEXIO_Type *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#a8c612e804a704d10af7495010447506d">flexioBase</a></td></tr>
<tr class="memdesc:a8c612e804a704d10af7495010447506d"><td class="mdescLeft">&#160;</td><td class="mdescRight">FlexIO base pointer. <a href="#a8c612e804a704d10af7495010447506d">More...</a><br/></td></tr>
<tr class="separator:a8c612e804a704d10af7495010447506d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0dd4c317807ba1701e561d3f6b9131ce"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#a0dd4c317807ba1701e561d3f6b9131ce">SDAPinIndex</a></td></tr>
<tr class="memdesc:a0dd4c317807ba1701e561d3f6b9131ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pin select for I2C SDA. <a href="#a0dd4c317807ba1701e561d3f6b9131ce">More...</a><br/></td></tr>
<tr class="separator:a0dd4c317807ba1701e561d3f6b9131ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90f9f1c5d3181e6ac34b475c6eb0da56"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#a90f9f1c5d3181e6ac34b475c6eb0da56">SCLPinIndex</a></td></tr>
<tr class="memdesc:a90f9f1c5d3181e6ac34b475c6eb0da56"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pin select for I2C SCL. <a href="#a90f9f1c5d3181e6ac34b475c6eb0da56">More...</a><br/></td></tr>
<tr class="separator:a90f9f1c5d3181e6ac34b475c6eb0da56"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae1646b8581dea1779059dd37ad4c8515"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#ae1646b8581dea1779059dd37ad4c8515">shifterIndex</a> [2]</td></tr>
<tr class="memdesc:ae1646b8581dea1779059dd37ad4c8515"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shifter index used in FlexIO I2C. <a href="#ae1646b8581dea1779059dd37ad4c8515">More...</a><br/></td></tr>
<tr class="separator:ae1646b8581dea1779059dd37ad4c8515"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00c9a97524f0d5c42585aacf4c4de4ca"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#a00c9a97524f0d5c42585aacf4c4de4ca">timerIndex</a> [3]</td></tr>
<tr class="memdesc:a00c9a97524f0d5c42585aacf4c4de4ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Timer index used in FlexIO I2C. <a href="#a00c9a97524f0d5c42585aacf4c4de4ca">More...</a><br/></td></tr>
<tr class="separator:a00c9a97524f0d5c42585aacf4c4de4ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae684d7f95a201dbb4104801e0311f247"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#ae684d7f95a201dbb4104801e0311f247">baudrate</a></td></tr>
<tr class="memdesc:ae684d7f95a201dbb4104801e0311f247"><td class="mdescLeft">&#160;</td><td class="mdescRight">Master transfer baudrate, used to calculate delay time. <a href="#ae684d7f95a201dbb4104801e0311f247">More...</a><br/></td></tr>
<tr class="separator:ae684d7f95a201dbb4104801e0311f247"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="a8c612e804a704d10af7495010447506d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">FLEXIO_Type* _flexio_i2c_type::flexioBase</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a0dd4c317807ba1701e561d3f6b9131ce"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t _flexio_i2c_type::SDAPinIndex</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a90f9f1c5d3181e6ac34b475c6eb0da56"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t _flexio_i2c_type::SCLPinIndex</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ae1646b8581dea1779059dd37ad4c8515"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t _flexio_i2c_type::shifterIndex[2]</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a00c9a97524f0d5c42585aacf4c4de4ca"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t _flexio_i2c_type::timerIndex[3]</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ae684d7f95a201dbb4104801e0311f247"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t _flexio_i2c_type::baudrate</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div>
</div>
<a name="a00388" id="a00388"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct _flexio_i2c_master_config</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:a91a87b7bd8d4bae9e406390ae9776155"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#a91a87b7bd8d4bae9e406390ae9776155">enableMaster</a></td></tr>
<tr class="memdesc:a91a87b7bd8d4bae9e406390ae9776155"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables the FlexIO I2C peripheral at initialization time. <a href="#a91a87b7bd8d4bae9e406390ae9776155">More...</a><br/></td></tr>
<tr class="separator:a91a87b7bd8d4bae9e406390ae9776155"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae4c1517363576758cff67f9537927b88"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#ae4c1517363576758cff67f9537927b88">enableInDoze</a></td></tr>
<tr class="memdesc:ae4c1517363576758cff67f9537927b88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable/disable FlexIO operation in doze mode. <a href="#ae4c1517363576758cff67f9537927b88">More...</a><br/></td></tr>
<tr class="separator:ae4c1517363576758cff67f9537927b88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f9e31f1448e28351002384106e332f0"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#a7f9e31f1448e28351002384106e332f0">enableInDebug</a></td></tr>
<tr class="memdesc:a7f9e31f1448e28351002384106e332f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable/disable FlexIO operation in debug mode. <a href="#a7f9e31f1448e28351002384106e332f0">More...</a><br/></td></tr>
<tr class="separator:a7f9e31f1448e28351002384106e332f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a689dee0d3ab98623b8f5c0b5bd83183d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#a689dee0d3ab98623b8f5c0b5bd83183d">enableFastAccess</a></td></tr>
<tr class="memdesc:a689dee0d3ab98623b8f5c0b5bd83183d"><td class="mdescLeft">&#160;</td><td class="mdescRight"><pre class="fragment"> Enable/disable fast access to FlexIO registers, fast access requires
</pre><p> the FlexIO clock to be at least twice the frequency of the bus clock. <a href="#a689dee0d3ab98623b8f5c0b5bd83183d">More...</a><br/></td></tr>
<tr class="separator:a689dee0d3ab98623b8f5c0b5bd83183d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf5d294be79f4687caa730c2674de22e"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#abf5d294be79f4687caa730c2674de22e">baudRate_Bps</a></td></tr>
<tr class="memdesc:abf5d294be79f4687caa730c2674de22e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Baud rate in Bps. <a href="#abf5d294be79f4687caa730c2674de22e">More...</a><br/></td></tr>
<tr class="separator:abf5d294be79f4687caa730c2674de22e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="a91a87b7bd8d4bae9e406390ae9776155"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool _flexio_i2c_master_config::enableMaster</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ae4c1517363576758cff67f9537927b88"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool _flexio_i2c_master_config::enableInDoze</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a7f9e31f1448e28351002384106e332f0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool _flexio_i2c_master_config::enableInDebug</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a689dee0d3ab98623b8f5c0b5bd83183d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool _flexio_i2c_master_config::enableFastAccess</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="abf5d294be79f4687caa730c2674de22e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t _flexio_i2c_master_config::baudRate_Bps</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div>
</div>
<a name="a00390" id="a00390"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct _flexio_i2c_master_transfer</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:aa74dd7104b75a95d9128fce2f9731628"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#aa74dd7104b75a95d9128fce2f9731628">flags</a></td></tr>
<tr class="memdesc:aa74dd7104b75a95d9128fce2f9731628"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transfer flag which controls the transfer, reserved for FlexIO I2C. <a href="#aa74dd7104b75a95d9128fce2f9731628">More...</a><br/></td></tr>
<tr class="separator:aa74dd7104b75a95d9128fce2f9731628"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad40d580b11006c7b47931d5a16482a01"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#ad40d580b11006c7b47931d5a16482a01">slaveAddress</a></td></tr>
<tr class="memdesc:ad40d580b11006c7b47931d5a16482a01"><td class="mdescLeft">&#160;</td><td class="mdescRight">7-bit slave address. <a href="#ad40d580b11006c7b47931d5a16482a01">More...</a><br/></td></tr>
<tr class="separator:ad40d580b11006c7b47931d5a16482a01"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a0e94bf1d8f89f9a0f3c36b919e6a09"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00031.html#ga038697c86a5538e572c14a8cede654b3">flexio_i2c_direction_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#a3a0e94bf1d8f89f9a0f3c36b919e6a09">direction</a></td></tr>
<tr class="memdesc:a3a0e94bf1d8f89f9a0f3c36b919e6a09"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transfer direction, read or write. <a href="#a3a0e94bf1d8f89f9a0f3c36b919e6a09">More...</a><br/></td></tr>
<tr class="separator:a3a0e94bf1d8f89f9a0f3c36b919e6a09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3404710ebddd14a8b17023b52bb9879b"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#a3404710ebddd14a8b17023b52bb9879b">subaddress</a></td></tr>
<tr class="memdesc:a3404710ebddd14a8b17023b52bb9879b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sub address. <a href="#a3404710ebddd14a8b17023b52bb9879b">More...</a><br/></td></tr>
<tr class="separator:a3404710ebddd14a8b17023b52bb9879b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af41d8d9c777f5e6413561a92601ec930"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#af41d8d9c777f5e6413561a92601ec930">subaddressSize</a></td></tr>
<tr class="memdesc:af41d8d9c777f5e6413561a92601ec930"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of command buffer. <a href="#af41d8d9c777f5e6413561a92601ec930">More...</a><br/></td></tr>
<tr class="separator:af41d8d9c777f5e6413561a92601ec930"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0104b33e9efa445c26bde6cc0be3ddce"><td class="memItemLeft" align="right" valign="top">uint8_t volatile *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#a0104b33e9efa445c26bde6cc0be3ddce">data</a></td></tr>
<tr class="memdesc:a0104b33e9efa445c26bde6cc0be3ddce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transfer buffer. <a href="#a0104b33e9efa445c26bde6cc0be3ddce">More...</a><br/></td></tr>
<tr class="separator:a0104b33e9efa445c26bde6cc0be3ddce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8539ca8b74e1d6335754daf6e819fd47"><td class="memItemLeft" align="right" valign="top">volatile size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#a8539ca8b74e1d6335754daf6e819fd47">dataSize</a></td></tr>
<tr class="memdesc:a8539ca8b74e1d6335754daf6e819fd47"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transfer size. <a href="#a8539ca8b74e1d6335754daf6e819fd47">More...</a><br/></td></tr>
<tr class="separator:a8539ca8b74e1d6335754daf6e819fd47"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="aa74dd7104b75a95d9128fce2f9731628"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t _flexio_i2c_master_transfer::flags</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ad40d580b11006c7b47931d5a16482a01"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t _flexio_i2c_master_transfer::slaveAddress</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a3a0e94bf1d8f89f9a0f3c36b919e6a09"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00031.html#ga038697c86a5538e572c14a8cede654b3">flexio_i2c_direction_t</a> _flexio_i2c_master_transfer::direction</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a3404710ebddd14a8b17023b52bb9879b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t _flexio_i2c_master_transfer::subaddress</td>
</tr>
</table>
</div><div class="memdoc">
<p>Transferred MSB first. </p>
</div>
</div>
<a class="anchor" id="af41d8d9c777f5e6413561a92601ec930"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t _flexio_i2c_master_transfer::subaddressSize</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a0104b33e9efa445c26bde6cc0be3ddce"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t volatile* _flexio_i2c_master_transfer::data</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a8539ca8b74e1d6335754daf6e819fd47"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">volatile size_t _flexio_i2c_master_transfer::dataSize</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div>
</div>
<a name="a00389" id="a00389"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct _flexio_i2c_master_handle</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:a5532e06e5a1f46f2ee953951d6ddb45e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00031.html#gad8cb291a190361416d2281573c658220">flexio_i2c_master_transfer_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#a5532e06e5a1f46f2ee953951d6ddb45e">transfer</a></td></tr>
<tr class="memdesc:a5532e06e5a1f46f2ee953951d6ddb45e"><td class="mdescLeft">&#160;</td><td class="mdescRight">FlexIO I2C master transfer copy. <a href="#a5532e06e5a1f46f2ee953951d6ddb45e">More...</a><br/></td></tr>
<tr class="separator:a5532e06e5a1f46f2ee953951d6ddb45e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8453802324d3032c21902f09bd05382"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#aa8453802324d3032c21902f09bd05382">transferSize</a></td></tr>
<tr class="memdesc:aa8453802324d3032c21902f09bd05382"><td class="mdescLeft">&#160;</td><td class="mdescRight">Total bytes to be transferred. <a href="#aa8453802324d3032c21902f09bd05382">More...</a><br/></td></tr>
<tr class="separator:aa8453802324d3032c21902f09bd05382"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b70729eb68c9344be4f40542dfa248f"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#a3b70729eb68c9344be4f40542dfa248f">state</a></td></tr>
<tr class="memdesc:a3b70729eb68c9344be4f40542dfa248f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transfer state maintained during transfer. <a href="#a3b70729eb68c9344be4f40542dfa248f">More...</a><br/></td></tr>
<tr class="separator:a3b70729eb68c9344be4f40542dfa248f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b7bc5ea292a14712aec27ee849b34bd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00031.html#ga4a92b2aafd0ea1e7746dc23a7b0f0691">flexio_i2c_master_transfer_callback_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#a4b7bc5ea292a14712aec27ee849b34bd">completionCallback</a></td></tr>
<tr class="memdesc:a4b7bc5ea292a14712aec27ee849b34bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function called at transfer event. <a href="#a4b7bc5ea292a14712aec27ee849b34bd">More...</a><br/></td></tr>
<tr class="separator:a4b7bc5ea292a14712aec27ee849b34bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7727d87a3ccfd45513d77026b3c3958e"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#a7727d87a3ccfd45513d77026b3c3958e">userData</a></td></tr>
<tr class="memdesc:a7727d87a3ccfd45513d77026b3c3958e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback parameter passed to callback function. <a href="#a7727d87a3ccfd45513d77026b3c3958e">More...</a><br/></td></tr>
<tr class="separator:a7727d87a3ccfd45513d77026b3c3958e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af59e068af6c05ffa9e2906aa992ef6cf"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#af59e068af6c05ffa9e2906aa992ef6cf">needRestart</a></td></tr>
<tr class="memdesc:af59e068af6c05ffa9e2906aa992ef6cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether master needs to send re-start signal. <a href="#af59e068af6c05ffa9e2906aa992ef6cf">More...</a><br/></td></tr>
<tr class="separator:af59e068af6c05ffa9e2906aa992ef6cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="a5532e06e5a1f46f2ee953951d6ddb45e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00031.html#gad8cb291a190361416d2281573c658220">flexio_i2c_master_transfer_t</a> _flexio_i2c_master_handle::transfer</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aa8453802324d3032c21902f09bd05382"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">size_t _flexio_i2c_master_handle::transferSize</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a3b70729eb68c9344be4f40542dfa248f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t _flexio_i2c_master_handle::state</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a4b7bc5ea292a14712aec27ee849b34bd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00031.html#ga4a92b2aafd0ea1e7746dc23a7b0f0691">flexio_i2c_master_transfer_callback_t</a> _flexio_i2c_master_handle::completionCallback</td>
</tr>
</table>
</div><div class="memdoc">
<p>Callback function called at transfer event. </p>
</div>
</div>
<a class="anchor" id="a7727d87a3ccfd45513d77026b3c3958e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* _flexio_i2c_master_handle::userData</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="af59e068af6c05ffa9e2906aa992ef6cf"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool _flexio_i2c_master_handle::needRestart</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div>
</div>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="gaac288786aaa7d0cb947c91591baf42d7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define I2C_RETRY_TIMES&#160;&#160;&#160;0U /* Define to zero means keep waiting until the flag is assert/deassert. */</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="ga038697c86a5538e572c14a8cede654b3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef enum <a class="el" href="a00031.html#gabe134561df742c0ed1d6c56196255ccb">_flexio_i2c_direction</a> <a class="el" href="a00031.html#ga038697c86a5538e572c14a8cede654b3">flexio_i2c_direction_t</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga79ef07860cbf29ed2c2ebce2876f8186"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="a00031.html#a00391">_flexio_i2c_type</a> <a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga241764390b12485a028350187b87e3b0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="a00031.html#a00388">_flexio_i2c_master_config</a> <a class="el" href="a00031.html#ga241764390b12485a028350187b87e3b0">flexio_i2c_master_config_t</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gad8cb291a190361416d2281573c658220"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="a00031.html#a00390">_flexio_i2c_master_transfer</a> <a class="el" href="a00031.html#gad8cb291a190361416d2281573c658220">flexio_i2c_master_transfer_t</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga5f9254ffdddf26ddcd5838437c07c7f2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="a00031.html#a00389">_flexio_i2c_master_handle</a> <a class="el" href="a00031.html#ga5f9254ffdddf26ddcd5838437c07c7f2">flexio_i2c_master_handle_t</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga4a92b2aafd0ea1e7746dc23a7b0f0691"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* flexio_i2c_master_transfer_callback_t)(<a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *base, <a class="el" href="a00031.html#ga5f9254ffdddf26ddcd5838437c07c7f2">flexio_i2c_master_handle_t</a> *handle, <a class="el" href="a00272.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> status, void *userData)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="ga4caf8d8f829279fba122163d961608a4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">anonymous enum</td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga4caf8d8f829279fba122163d961608a4a8ab8145bc386f3630f13b87c38496331"></a>kStatus_FLEXIO_I2C_Busy</em>&nbsp;</td><td class="fielddoc">
<p>I2C is busy doing transfer. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga4caf8d8f829279fba122163d961608a4a2f105638fc06422cc54cf5337d507873"></a>kStatus_FLEXIO_I2C_Idle</em>&nbsp;</td><td class="fielddoc">
<p>I2C is busy doing transfer. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga4caf8d8f829279fba122163d961608a4af5e4a932f6f9e6ae30a42dc31fab8bd5"></a>kStatus_FLEXIO_I2C_Nak</em>&nbsp;</td><td class="fielddoc">
<p>NAK received during transfer. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga4caf8d8f829279fba122163d961608a4a3d8bcc4ffd332948cb8b28f7982ac4d1"></a>kStatus_FLEXIO_I2C_Timeout</em>&nbsp;</td><td class="fielddoc">
<p>Timeout polling status flags. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="gaa4597b532bb2a564c329076dc5da8155"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00031.html#gaa4597b532bb2a564c329076dc5da8155">_flexio_i2c_master_interrupt</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggaa4597b532bb2a564c329076dc5da8155ac34fefcbb2d45dd7bfd385586439923b"></a>kFLEXIO_I2C_TxEmptyInterruptEnable</em>&nbsp;</td><td class="fielddoc">
<p>Tx buffer empty interrupt enable. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4597b532bb2a564c329076dc5da8155a46a53a6077c43dfb924d46e9a218eb6b"></a>kFLEXIO_I2C_RxFullInterruptEnable</em>&nbsp;</td><td class="fielddoc">
<p>Rx buffer full interrupt enable. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="gafc92480bf28b1161b62a1f10a23e7458"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00031.html#gafc92480bf28b1161b62a1f10a23e7458">_flexio_i2c_master_status_flags</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggafc92480bf28b1161b62a1f10a23e7458a5eb41467be294db469f4604a010405e3"></a>kFLEXIO_I2C_TxEmptyFlag</em>&nbsp;</td><td class="fielddoc">
<p>Tx shifter empty flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggafc92480bf28b1161b62a1f10a23e7458a4eba9f70c326fcea72a255cba80dc42d"></a>kFLEXIO_I2C_RxFullFlag</em>&nbsp;</td><td class="fielddoc">
<p>Rx shifter full/Transfer complete flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggafc92480bf28b1161b62a1f10a23e7458a8774a1fedf2a596d2647864bd4f27664"></a>kFLEXIO_I2C_ReceiveNakFlag</em>&nbsp;</td><td class="fielddoc">
<p>Receive NAK flag. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="gabe134561df742c0ed1d6c56196255ccb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00031.html#gabe134561df742c0ed1d6c56196255ccb">_flexio_i2c_direction</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggabe134561df742c0ed1d6c56196255ccba666a4c181486b773264ce1e038e14850"></a>kFLEXIO_I2C_Write</em>&nbsp;</td><td class="fielddoc">
<p>Master send to slave. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggabe134561df742c0ed1d6c56196255ccbaeac2a6bd710680e5f644763dea0c89c4"></a>kFLEXIO_I2C_Read</em>&nbsp;</td><td class="fielddoc">
<p>Master receive from slave. </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga2ded19f42c2b7e09764e6e926c501b67"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00272.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> FLEXIO_I2C_CheckForBusyBus </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Check the FLEXIO pin status to see whether either of SDA and SCL pin is pulled down.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>Pointer to FLEXIO_I2C_Type structure.. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_Success</td><td></td></tr>
<tr><td class="paramname">kStatus_FLEXIO_I2C_Busy</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gaaacd8cca7de1ff3a8c33c86d4f7f88fd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00272.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> FLEXIO_I2C_MasterInit </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00031.html#ga241764390b12485a028350187b87e3b0">flexio_i2c_master_config_t</a> *&#160;</td>
<td class="paramname"><em>masterConfig</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>srcClock_Hz</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Example </p>
<div class="fragment"><div class="line"><a class="code" href="a00031.html#a00391">FLEXIO_I2C_Type</a> base = {</div>
<div class="line">.<a class="code" href="a00031.html#a8c612e804a704d10af7495010447506d">flexioBase</a> = FLEXIO,</div>
<div class="line">.SDAPinIndex = 0,</div>
<div class="line">.SCLPinIndex = 1,</div>
<div class="line">.shifterIndex = {0,1},</div>
<div class="line">.timerIndex = {0,1}</div>
<div class="line">};</div>
<div class="line"><a class="code" href="a00031.html#a00388">flexio_i2c_master_config_t</a> config = {</div>
<div class="line">.<a class="code" href="a00028.html#aa02ab61ea07cea94dd5e64c0c1191a95">enableInDoze</a> = <span class="keyword">false</span>,</div>
<div class="line">.enableInDebug = <span class="keyword">true</span>,</div>
<div class="line">.enableFastAccess = <span class="keyword">false</span>,</div>
<div class="line">.baudRate_Bps = 100000</div>
<div class="line">};</div>
<div class="line"><a class="code" href="a00031.html#gaaacd8cca7de1ff3a8c33c86d4f7f88fd">FLEXIO_I2C_MasterInit</a>(base, &amp;config, srcClock_Hz);</div>
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>Pointer to FLEXIO_I2C_Type structure. </td></tr>
<tr><td class="paramname">masterConfig</td><td>Pointer to flexio_i2c_master_config_t structure. </td></tr>
<tr><td class="paramname">srcClock_Hz</td><td>FlexIO source clock in Hz. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_Success</td><td>Initialization successful </td></tr>
<tr><td class="paramname">kStatus_InvalidArgument</td><td>The source clock exceed upper range limitation </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga2da731bfa4e1e36b5d6d0235898b26dd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FLEXIO_I2C_MasterDeinit </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Calling this API Resets the FlexIO I2C master shifer and timer config, module can't work unless the FLEXIO_I2C_MasterInit is called.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>pointer to FLEXIO_I2C_Type structure. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gaa85599771e53091102f0823217ad0bcc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FLEXIO_I2C_MasterGetDefaultConfig </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00031.html#ga241764390b12485a028350187b87e3b0">flexio_i2c_master_config_t</a> *&#160;</td>
<td class="paramname"><em>masterConfig</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>The configuration can be used directly for calling the <a class="el" href="a00031.html#gaaacd8cca7de1ff3a8c33c86d4f7f88fd" title="Ungates the FlexIO clock, resets the FlexIO module, and configures the FlexIO I2C hardware configurat...">FLEXIO_I2C_MasterInit()</a>.</p>
<p>Example: </p>
<div class="fragment"><div class="line"><a class="code" href="a00031.html#a00388">flexio_i2c_master_config_t</a> config;</div>
<div class="line"><a class="code" href="a00031.html#gaa85599771e53091102f0823217ad0bcc">FLEXIO_I2C_MasterGetDefaultConfig</a>(&amp;config);</div>
</div><!-- fragment --> <dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">masterConfig</td><td>Pointer to flexio_i2c_master_config_t structure. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga287dc7896229cd705bb8abbf51ca63a7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void FLEXIO_I2C_MasterEnable </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>enable</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>Pointer to FLEXIO_I2C_Type structure. </td></tr>
<tr><td class="paramname">enable</td><td>Pass true to enable module, false does not have any effect. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga5ac748fc7ff593cfa7a9b9a64cd479fa"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t FLEXIO_I2C_MasterGetStatusFlags </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>Pointer to FLEXIO_I2C_Type structure </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Status flag, use status flag to AND <a class="el" href="a00031.html#gafc92480bf28b1161b62a1f10a23e7458" title="Define FlexIO I2C master status mask. ">_flexio_i2c_master_status_flags</a> can get the related status. </dd></dl>
</div>
</div>
<a class="anchor" id="gad7509c6f4a8885650c313bb0b56e6bfc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FLEXIO_I2C_MasterClearStatusFlags </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>mask</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>Pointer to FLEXIO_I2C_Type structure. </td></tr>
<tr><td class="paramname">mask</td><td>Status flag. The parameter can be any combination of the following values: <ul>
<li>kFLEXIO_I2C_RxFullFlag </li>
<li>kFLEXIO_I2C_ReceiveNakFlag </li>
</ul>
</td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga07198112aef949ac73874e7d446f7d38"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FLEXIO_I2C_MasterEnableInterrupts </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>mask</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>Pointer to FLEXIO_I2C_Type structure. </td></tr>
<tr><td class="paramname">mask</td><td>Interrupt source. Currently only one interrupt request source: <ul>
<li>kFLEXIO_I2C_TransferCompleteInterruptEnable </li>
</ul>
</td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga3fcce197e268d6e7310a0087d9288b08"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FLEXIO_I2C_MasterDisableInterrupts </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>mask</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>Pointer to FLEXIO_I2C_Type structure. </td></tr>
<tr><td class="paramname">mask</td><td>Interrupt source. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gac1cb6e0f52c2e9e2b4373415dff1f24c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FLEXIO_I2C_MasterSetBaudRate </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>baudRate_Bps</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>srcClock_Hz</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>Pointer to FLEXIO_I2C_Type structure </td></tr>
<tr><td class="paramname">baudRate_Bps</td><td>the baud rate value in HZ </td></tr>
<tr><td class="paramname">srcClock_Hz</td><td>source clock in HZ </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga6f9def4b064e4747675dfc16e9fdde00"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FLEXIO_I2C_MasterStart </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>address</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00031.html#ga038697c86a5538e572c14a8cede654b3">flexio_i2c_direction_t</a>&#160;</td>
<td class="paramname"><em>direction</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section note"><dt>Note</dt><dd>This API should be called when the transfer configuration is ready to send a START signal and 7-bit address to the bus. This is a non-blocking API, which returns directly after the address is put into the data register but the address transfer is not finished on the bus. Ensure that the kFLEXIO_I2C_RxFullFlag status is asserted before calling this API. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>Pointer to FLEXIO_I2C_Type structure. </td></tr>
<tr><td class="paramname">address</td><td>7-bit address. </td></tr>
<tr><td class="paramname">direction</td><td>transfer direction. This parameter is one of the values in flexio_i2c_direction_t: <ul>
<li>kFLEXIO_I2C_Write: Transmit </li>
<li>kFLEXIO_I2C_Read: Receive </li>
</ul>
</td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga6b921453ee8e263f9a2a198b497c88ec"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FLEXIO_I2C_MasterStop </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>Pointer to FLEXIO_I2C_Type structure. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga8c2b3776c1630e0bf8e64927a0012b2f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FLEXIO_I2C_MasterRepeatedStart </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>Pointer to FLEXIO_I2C_Type structure. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga20efb0f28522d945694d509b5e4bf52d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FLEXIO_I2C_MasterAbortStop </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>Pointer to FLEXIO_I2C_Type structure. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gaca2e797a84bc5b68a75ba10cf2750fc0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FLEXIO_I2C_MasterEnableAck </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>enable</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>Pointer to FLEXIO_I2C_Type structure. </td></tr>
<tr><td class="paramname">enable</td><td>True to configure send ACK, false configure to send NAK. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga6239ded74ab146f5f04c6355edf6e64a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00272.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> FLEXIO_I2C_MasterSetTransferCount </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>count</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section note"><dt>Note</dt><dd>Call this API before a transfer begins because the timer generates a number of clocks according to the number of bytes that need to be transferred.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>Pointer to FLEXIO_I2C_Type structure. </td></tr>
<tr><td class="paramname">count</td><td>Number of bytes need to be transferred from a start signal to a re-start/stop signal </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_Success</td><td>Successfully configured the count. </td></tr>
<tr><td class="paramname">kStatus_InvalidArgument</td><td>Input argument is invalid. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga7e82edf243f26522ea3ecedddb4760ba"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void FLEXIO_I2C_MasterWriteByte </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>data</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section note"><dt>Note</dt><dd>This is a non-blocking API, which returns directly after the data is put into the data register but the data transfer is not finished on the bus. Ensure that the TxEmptyFlag is asserted before calling this API.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>Pointer to FLEXIO_I2C_Type structure. </td></tr>
<tr><td class="paramname">data</td><td>a byte of data. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga2a790d99cbabf8bf7df3216b6da904e5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static uint8_t FLEXIO_I2C_MasterReadByte </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section note"><dt>Note</dt><dd>This is a non-blocking API, which returns directly after the data is read from the data register. Ensure that the data is ready in the register.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>Pointer to FLEXIO_I2C_Type structure. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>data byte read. </dd></dl>
</div>
</div>
<a class="anchor" id="ga13c8be777cb7336878e161ab32fba000"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00272.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> FLEXIO_I2C_MasterWriteBlocking </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint8_t *&#160;</td>
<td class="paramname"><em>txBuff</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>txSize</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section note"><dt>Note</dt><dd>This function blocks via polling until all bytes have been sent.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>Pointer to FLEXIO_I2C_Type structure. </td></tr>
<tr><td class="paramname">txBuff</td><td>The data bytes to send. </td></tr>
<tr><td class="paramname">txSize</td><td>The number of data bytes to send. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_Success</td><td>Successfully write data. </td></tr>
<tr><td class="paramname">kStatus_FLEXIO_I2C_Nak</td><td>Receive NAK during writing data. </td></tr>
<tr><td class="paramname">kStatus_FLEXIO_I2C_Timeout</td><td>Timeout polling status flags. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga5713e8dca1e7e896c3aed89e8961547a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00272.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> FLEXIO_I2C_MasterReadBlocking </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>rxBuff</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>rxSize</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section note"><dt>Note</dt><dd>This function blocks via polling until all bytes have been received.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>Pointer to FLEXIO_I2C_Type structure. </td></tr>
<tr><td class="paramname">rxBuff</td><td>The buffer to store the received bytes. </td></tr>
<tr><td class="paramname">rxSize</td><td>The number of data bytes to be received. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_Success</td><td>Successfully read data. </td></tr>
<tr><td class="paramname">kStatus_FLEXIO_I2C_Timeout</td><td>Timeout polling status flags. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga7b4b3c280a860777e98b5065225a3150"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00272.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> FLEXIO_I2C_MasterTransferBlocking </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00031.html#gad8cb291a190361416d2281573c658220">flexio_i2c_master_transfer_t</a> *&#160;</td>
<td class="paramname"><em>xfer</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section note"><dt>Note</dt><dd>The API does not return until the transfer succeeds or fails due to receiving NAK.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>pointer to FLEXIO_I2C_Type structure. </td></tr>
<tr><td class="paramname">xfer</td><td>pointer to flexio_i2c_master_transfer_t structure. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>status of status_t. </dd></dl>
</div>
</div>
<a class="anchor" id="ga2d26c2cb21b034487ba8b8d4c5da2ef5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00272.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> FLEXIO_I2C_MasterTransferCreateHandle </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00031.html#ga5f9254ffdddf26ddcd5838437c07c7f2">flexio_i2c_master_handle_t</a> *&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00031.html#ga4a92b2aafd0ea1e7746dc23a7b0f0691">flexio_i2c_master_transfer_callback_t</a>&#160;</td>
<td class="paramname"><em>callback</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>userData</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>Pointer to FLEXIO_I2C_Type structure. </td></tr>
<tr><td class="paramname">handle</td><td>Pointer to flexio_i2c_master_handle_t structure to store the transfer state. </td></tr>
<tr><td class="paramname">callback</td><td>Pointer to user callback function. </td></tr>
<tr><td class="paramname">userData</td><td>User param passed to the callback function. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_Success</td><td>Successfully create the handle. </td></tr>
<tr><td class="paramname">kStatus_OutOfRange</td><td>The FlexIO type/handle/isr table out of range. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga4e21323685831e0ee3f88d50e4c8872c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00272.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> FLEXIO_I2C_MasterTransferNonBlocking </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00031.html#ga5f9254ffdddf26ddcd5838437c07c7f2">flexio_i2c_master_handle_t</a> *&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00031.html#gad8cb291a190361416d2281573c658220">flexio_i2c_master_transfer_t</a> *&#160;</td>
<td class="paramname"><em>xfer</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section note"><dt>Note</dt><dd>The API returns immediately after the transfer initiates. Call FLEXIO_I2C_MasterTransferGetCount to poll the transfer status to check whether the transfer is finished. If the return status is not kStatus_FLEXIO_I2C_Busy, the transfer is finished.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>Pointer to FLEXIO_I2C_Type structure </td></tr>
<tr><td class="paramname">handle</td><td>Pointer to flexio_i2c_master_handle_t structure which stores the transfer state </td></tr>
<tr><td class="paramname">xfer</td><td>pointer to flexio_i2c_master_transfer_t structure </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_Success</td><td>Successfully start a transfer. </td></tr>
<tr><td class="paramname">kStatus_FLEXIO_I2C_Busy</td><td>FlexIO I2C is not idle, is running another transfer. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga79fed99f5f4524619e2c2e28ad037544"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00272.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> FLEXIO_I2C_MasterTransferGetCount </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00031.html#ga5f9254ffdddf26ddcd5838437c07c7f2">flexio_i2c_master_handle_t</a> *&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t *&#160;</td>
<td class="paramname"><em>count</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>Pointer to FLEXIO_I2C_Type structure. </td></tr>
<tr><td class="paramname">handle</td><td>Pointer to flexio_i2c_master_handle_t structure which stores the transfer state. </td></tr>
<tr><td class="paramname">count</td><td>Number of bytes transferred so far by the non-blocking transaction. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_InvalidArgument</td><td>count is Invalid. </td></tr>
<tr><td class="paramname">kStatus_NoTransferInProgress</td><td>There is not a non-blocking transaction currently in progress. </td></tr>
<tr><td class="paramname">kStatus_Success</td><td>Successfully return the count. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga75ecfe909fcd0ae47303eb90af39dea2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FLEXIO_I2C_MasterTransferAbort </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00031.html#ga79ef07860cbf29ed2c2ebce2876f8186">FLEXIO_I2C_Type</a> *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00031.html#ga5f9254ffdddf26ddcd5838437c07c7f2">flexio_i2c_master_handle_t</a> *&#160;</td>
<td class="paramname"><em>handle</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section note"><dt>Note</dt><dd>This API can be called at any time when an interrupt non-blocking transfer initiates to abort the transfer early.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>Pointer to FLEXIO_I2C_Type structure </td></tr>
<tr><td class="paramname">handle</td><td>Pointer to flexio_i2c_master_handle_t structure which stores the transfer state </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga29129d78b9166b7bcb585e336746bec6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FLEXIO_I2C_MasterTransferHandleIRQ </td>
<td>(</td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>i2cType</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>i2cHandle</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">i2cType</td><td>Pointer to FLEXIO_I2C_Type structure </td></tr>
<tr><td class="paramname">i2cHandle</td><td>Pointer to flexio_i2c_master_transfer_t structure </td></tr>
</table>
</dd>
</dl>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.5-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul class="foot">
<li class="footer">&copy; 2016 NXP Semiconductors. All rights reserved.
</li>
</ul>
</div>
</body>
</html>