MCUXpresso_LPC55S69/docs/MCUXpresso SDK API Referenc.../a00250.html

178 lines
10 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: SPI CMSIS 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('a00250.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="headertitle">
<div class="title">SPI CMSIS driver<div class="ingroups"><a class="el" href="a00249.html">SPI: Serial Peripheral Interface Driver</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>This section describes the programming interface of the SPI Cortex Microcontroller Software Interface Standard (CMSIS) driver. And this driver defines generic peripheral driver interfaces for middleware making it reusable across a wide range of supported microcontroller devices. The API connects microcontroller peripherals with middleware that implements for example communication stacks, file systems, or graphic user interfaces. More information and usage methord see <a href="http://www.keil.com/pack/doc/cmsis/Driver/html/index.html">http://www.keil.com/pack/doc/cmsis/Driver/html/index.html</a>.</p>
<h1><a class="anchor" id="SPIFunGrps"></a>
Function groups</h1>
<h2><a class="anchor" id="SPIGetVersionOps"></a>
SPI CMSIS GetVersion Operation</h2>
<p>This function group will return the SPI CMSIS Driver version to user.</p>
<h2><a class="anchor" id="SPIGetCapOps"></a>
SPI CMSIS GetCapabilities Operation</h2>
<p>This function group will return the capabilities of this driver.</p>
<h2><a class="anchor" id="SPIInitResetOps"></a>
SPI CMSIS Initialize and Uninitialize Operation</h2>
<p>This function will initialize and uninitialize the instance in master mode or slave mode. And this API must be called before you configure an instance or after you Deinit an instance.The right steps to start an instance is that you must initialize the instance which been slected firstly,then you can power on the instance.After these all have been done,you can configure the instance by using control operation.If you want to Uninitialize the instance, you must power off the instance first.</p>
<h2><a class="anchor" id="SPITransOps"></a>
SPI CMSIS Transfer Operation</h2>
<p>This function group controls the transfer, master send/receive data, and slave send/receive data.</p>
<h2><a class="anchor" id="SPIStatusOps"></a>
SPI CMSIS Status Operation</h2>
<p>This function group gets the SPI transfer status.</p>
<h2><a class="anchor" id="SPIControlOps"></a>
SPI CMSIS Control Operation</h2>
<p>This function can configure instance as master mode or slave mode, set baudrate for master mode transfer, get current baudrate of master mode transfer,set transfer data bits and other control command.</p>
<h1><a class="anchor" id="SPITpyUC"></a>
Typical use case</h1>
<h2><a class="anchor" id="SPIMasterOps"></a>
Master Operation</h2>
<div class="fragment"><div class="line"><span class="comment">/* Variables */</span></div>
<div class="line">uint8_t masterRxData[TRANSFER_SIZE] = {0U};</div>
<div class="line">uint8_t masterTxData[TRANSFER_SIZE] = {0U};</div>
<div class="line"></div>
<div class="line"><span class="comment">/*SPI master init*/</span></div>
<div class="line">DRIVER_MASTER_SPI.Initialize(SPI_MasterSignalEvent_t);</div>
<div class="line">DRIVER_MASTER_SPI.PowerControl(ARM_POWER_FULL);</div>
<div class="line">DRIVER_MASTER_SPI.Control(ARM_SPI_MODE_MASTER, TRANSFER_BAUDRATE);</div>
<div class="line"></div>
<div class="line"><span class="comment">/* Start master transfer */</span></div>
<div class="line">DRIVER_MASTER_SPI.Transfer(masterTxData, masterRxData, TRANSFER_SIZE);</div>
<div class="line"></div>
<div class="line"><span class="comment">/* Master power off */</span></div>
<div class="line">DRIVER_MASTER_SPI.PowerControl(ARM_POWER_OFF);</div>
<div class="line"></div>
<div class="line"><span class="comment">/* Master uninitialize */</span></div>
<div class="line">DRIVER_MASTER_SPI.Uninitialize();</div>
</div><!-- fragment --><h2><a class="anchor" id="LPSPISlaveOps"></a>
Slave Operation</h2>
<div class="fragment"><div class="line"><span class="comment">/* Variables */</span></div>
<div class="line">uint8_t slaveRxData[TRANSFER_SIZE] = {0U};</div>
<div class="line">uint8_t slaveTxData[TRANSFER_SIZE] = {0U};</div>
<div class="line"></div>
<div class="line"><span class="comment">/*SPI slave init*/</span></div>
<div class="line">DRIVER_SLAVE_SPI.Initialize(SPI_SlaveSignalEvent_t);</div>
<div class="line">DRIVER_SLAVE_SPI.PowerControl(ARM_POWER_FULL);</div>
<div class="line">DRIVER_SLAVE_SPI.Control(ARM_SPI_MODE_SLAVE, <span class="keyword">false</span>);</div>
<div class="line"></div>
<div class="line"><span class="comment">/* Start slave transfer */</span></div>
<div class="line">DRIVER_SLAVE_SPI.Transfer(slaveTxData, slaveRxData, TRANSFER_SIZE);</div>
<div class="line"></div>
<div class="line"><span class="comment">/* slave power off */</span></div>
<div class="line">DRIVER_SLAVE_SPI.PowerControl(ARM_POWER_OFF);</div>
<div class="line"></div>
<div class="line"><span class="comment">/* slave uninitialize */</span></div>
<div class="line">DRIVER_SLAVE_SPI.Uninitialize();</div>
</div><!-- fragment --> </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>