]> begriffs open source - cmsis/blob - main/Driver/html/group__usbd__interface__gr.html
Update documentation for branch main
[cmsis] / main / Driver / html / group__usbd__interface__gr.html
1 <!-- HTML header for doxygen 1.9.6-->
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
4 <head>
5 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
6 <meta http-equiv="X-UA-Compatible" content="IE=11"/>
7 <meta name="viewport" content="width=device-width, initial-scale=1"/>
8 <title>CMSIS-Driver: USB Device Interface</title>
9 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
10 <link href="tabs.css" rel="stylesheet" type="text/css"/>
11 <link href="extra_navtree.css" rel="stylesheet" type="text/css"/>
12 <link href="extra_stylesheet.css" rel="stylesheet" type="text/css"/>
13 <link href="extra_search.css" rel="stylesheet" type="text/css"/>
14 <script type="text/javascript" src="jquery.js"></script>
15 <script type="text/javascript" src="dynsections.js"></script>
16 <script type="text/javascript" src="printComponentTabs.js"></script>
17 <script type="text/javascript" src="footer.js"></script>
18 <script type="text/javascript" src="navtree.js"></script>
19 <link href="navtree.css" rel="stylesheet" type="text/css"/>
20 <script type="text/javascript" src="resize.js"></script>
21 <script type="text/javascript" src="navtreedata.js"></script>
22 <script type="text/javascript" src="navtree.js"></script>
23 <link href="search/search.css" rel="stylesheet" type="text/css"/>
24 <script type="text/javascript" src="search/searchdata.js"></script>
25 <script type="text/javascript" src="search/search.js"></script>
26 <script type="text/javascript">
27 /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
28   $(document).ready(function() { init_search(); });
29 /* @license-end */
30 </script>
31 <script type="text/javascript" src="darkmode_toggle.js"></script>
32 <link href="extra_stylesheet.css" rel="stylesheet" type="text/css"/>
33 <link href="extra_navtree.css" rel="stylesheet" type="text/css"/>
34 <link href="extra_search.css" rel="stylesheet" type="text/css"/>
35 <link href="version.css" rel="stylesheet" type="text/css" />
36 <script type="text/javascript" src="../../../version.js"></script>
37 </head>
38 <body>
39 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
40 <div id="titlearea">
41 <table cellspacing="0" cellpadding="0">
42  <tbody>
43  <tr style="height: 55px;">
44   <td id="projectlogo" style="padding: 1.5em;"><img alt="Logo" src="cmsis_logo_white_small.png"/></td>
45   <td style="padding-left: 1em; padding-bottom: 1em;padding-top: 1em;">
46    <div id="projectname">CMSIS-Driver
47    &#160;<span id="projectnumber"><script type="text/javascript">
48      <!--
49      writeHeader.call(this);
50      writeVersionDropdown.call(this);
51      //-->
52     </script>
53    </span>
54    </div>
55    <div id="projectbrief">Peripheral Interface for Middleware and Application Code</div>
56   </td>
57    <td>        <div id="MSearchBox" class="MSearchBoxInactive">
58         <span class="left">
59           <span id="MSearchSelect"                onmouseover="return searchBox.OnSearchSelectShow()"                onmouseout="return searchBox.OnSearchSelectHide()">&#160;</span>
60           <input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
61                onfocus="searchBox.OnSearchFieldFocus(true)" 
62                onblur="searchBox.OnSearchFieldFocus(false)" 
63                onkeyup="searchBox.OnSearchFieldChange(event)"/>
64           </span><span class="right">
65             <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
66           </span>
67         </div>
68 </td>
69   <!--END !PROJECT_NAME-->
70  </tr>
71  </tbody>
72 </table>
73 </div>
74 <!-- end header part -->
75 <div id="CMSISnav" class="tabs1">
76   <ul class="tablist">
77     <script type="text/javascript">
78       writeComponentTabs.call(this);
79     </script>
80   </ul>
81 </div>
82 <script type="text/javascript">
83   writeSubComponentTabs.call(this);
84 </script>
85 <!-- Generated by Doxygen 1.9.6 -->
86 <script type="text/javascript">
87 /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
88 var searchBox = new SearchBox("searchBox", "search/",'.html');
89 /* @license-end */
90 </script>
91 </div><!-- top -->
92 <div id="side-nav" class="ui-resizable side-nav-resizable">
93   <div id="nav-tree">
94     <div id="nav-tree-contents">
95       <div id="nav-sync" class="sync"></div>
96     </div>
97   </div>
98   <div id="splitbar" style="-moz-user-select:none;" 
99        class="ui-resizable-handle">
100   </div>
101 </div>
102 <script type="text/javascript">
103 /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
104 $(document).ready(function(){initNavTree('group__usbd__interface__gr.html',''); initResizable(); });
105 /* @license-end */
106 </script>
107 <div id="doc-content">
108 <!-- window showing the filter options -->
109 <div id="MSearchSelectWindow"
110      onmouseover="return searchBox.OnSearchSelectShow()"
111      onmouseout="return searchBox.OnSearchSelectHide()"
112      onkeydown="return searchBox.OnSearchSelectKey(event)">
113 </div>
114
115 <!-- iframe showing the search results (closed by default) -->
116 <div id="MSearchResultsWindow">
117 <div id="MSearchResults">
118 <div class="SRPage">
119 <div id="SRIndex">
120 <div id="SRResults"></div>
121 <div class="SRStatus" id="Loading">Loading...</div>
122 <div class="SRStatus" id="Searching">Searching...</div>
123 <div class="SRStatus" id="NoMatches">No Matches</div>
124 </div>
125 </div>
126 </div>
127 </div>
128
129 <div class="header">
130   <div class="summary">
131 <a href="#groups">Content</a> &#124;
132 <a href="#nested-classes">Data Structures</a> &#124;
133 <a href="#typedef-members">Typedefs</a> &#124;
134 <a href="#func-members">Functions</a>  </div>
135   <div class="headertitle"><div class="title">USB Device Interface<div class="ingroups"><a class="el" href="group__usb__interface__gr.html">USB Interface</a></div></div></div>
136 </div><!--header-->
137 <div class="contents">
138
139 <p>Driver API for USB Device Peripheral (Driver_USBD.h)  
140 <a href="#details">More...</a></p>
141 <table class="memberdecls">
142 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="groups" name="groups"></a>
143 Content</h2></td></tr>
144 <tr class="memitem:group__USBD__dev__events"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__USBD__dev__events.html">USBD Device Events</a></td></tr>
145 <tr class="memdesc:group__USBD__dev__events"><td class="mdescLeft">&#160;</td><td class="mdescRight">The USB Device driver generates Device call back events that are notified via the function <a class="el" href="group__usbd__interface__gr.html#gafe58a4db1d26b21ca5d418ee49e103a5">ARM_USBD_SignalDeviceEvent</a>. <br /></td></tr>
146 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
147 <tr class="memitem:group__USBD__ep__events"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__USBD__ep__events.html">USBD Endpoint Events</a></td></tr>
148 <tr class="memdesc:group__USBD__ep__events"><td class="mdescLeft">&#160;</td><td class="mdescRight">The USB Device driver generates Endpoint call back events that are notified via the function <a class="el" href="group__usbd__interface__gr.html#ga9aa5bc5cb45084194a77fae1457f6575">ARM_USBD_SignalEndpointEvent</a>. <br /></td></tr>
149 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
150 </table><table class="memberdecls">
151 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
152 Data Structures</h2></td></tr>
153 <tr class="memitem:structARM__DRIVER__USBD"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#structARM__DRIVER__USBD">ARM_DRIVER_USBD</a></td></tr>
154 <tr class="memdesc:structARM__DRIVER__USBD"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access structure of the USB Device Driver.  <a href="group__usbd__interface__gr.html#structARM__DRIVER__USBD">More...</a><br /></td></tr>
155 <tr class="separator:structARM__DRIVER__USBD"><td class="memSeparator" colspan="2">&#160;</td></tr>
156 <tr class="memitem:structARM__USBD__CAPABILITIES"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#structARM__USBD__CAPABILITIES">ARM_USBD_CAPABILITIES</a></td></tr>
157 <tr class="memdesc:structARM__USBD__CAPABILITIES"><td class="mdescLeft">&#160;</td><td class="mdescRight">USB Device Driver Capabilities.  <a href="group__usbd__interface__gr.html#structARM__USBD__CAPABILITIES">More...</a><br /></td></tr>
158 <tr class="separator:structARM__USBD__CAPABILITIES"><td class="memSeparator" colspan="2">&#160;</td></tr>
159 <tr class="memitem:structARM__USBD__STATE"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#structARM__USBD__STATE">ARM_USBD_STATE</a></td></tr>
160 <tr class="memdesc:structARM__USBD__STATE"><td class="mdescLeft">&#160;</td><td class="mdescRight">USB Device State.  <a href="group__usbd__interface__gr.html#structARM__USBD__STATE">More...</a><br /></td></tr>
161 <tr class="separator:structARM__USBD__STATE"><td class="memSeparator" colspan="2">&#160;</td></tr>
162 </table><table class="memberdecls">
163 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
164 Typedefs</h2></td></tr>
165 <tr class="memitem:ga7c1878799699ddd34cec696da499f7bd"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#ga7c1878799699ddd34cec696da499f7bd">ARM_USBD_SignalDeviceEvent_t</a>) (uint32_t event)</td></tr>
166 <tr class="memdesc:ga7c1878799699ddd34cec696da499f7bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to <a class="el" href="group__usbd__interface__gr.html#gafe58a4db1d26b21ca5d418ee49e103a5">ARM_USBD_SignalDeviceEvent</a> : Signal USB Device Event.  <br /></td></tr>
167 <tr class="separator:ga7c1878799699ddd34cec696da499f7bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
168 <tr class="memitem:gaae754763700fc5059a6bde57ea2d4e2c"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#gaae754763700fc5059a6bde57ea2d4e2c">ARM_USBD_SignalEndpointEvent_t</a>) (uint8_t ep_addr, uint32_t event)</td></tr>
169 <tr class="memdesc:gaae754763700fc5059a6bde57ea2d4e2c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to <a class="el" href="group__usbd__interface__gr.html#ga9aa5bc5cb45084194a77fae1457f6575">ARM_USBD_SignalEndpointEvent</a> : Signal USB Endpoint Event.  <br /></td></tr>
170 <tr class="separator:gaae754763700fc5059a6bde57ea2d4e2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
171 </table><table class="memberdecls">
172 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
173 Functions</h2></td></tr>
174 <tr class="memitem:ga1dcb8b7790f0e3613ee3da77e5fd18fc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__common__drv__gr.html#structARM__DRIVER__VERSION">ARM_DRIVER_VERSION</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#ga1dcb8b7790f0e3613ee3da77e5fd18fc">ARM_USBD_GetVersion</a> (void)</td></tr>
175 <tr class="memdesc:ga1dcb8b7790f0e3613ee3da77e5fd18fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get driver version.  <br /></td></tr>
176 <tr class="separator:ga1dcb8b7790f0e3613ee3da77e5fd18fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
177 <tr class="memitem:ga178d01ab7896e1c675b90bbccfe8ea7d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__usbd__interface__gr.html#structARM__USBD__CAPABILITIES">ARM_USBD_CAPABILITIES</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#ga178d01ab7896e1c675b90bbccfe8ea7d">ARM_USBD_GetCapabilities</a> (void)</td></tr>
178 <tr class="memdesc:ga178d01ab7896e1c675b90bbccfe8ea7d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get driver capabilities.  <br /></td></tr>
179 <tr class="separator:ga178d01ab7896e1c675b90bbccfe8ea7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
180 <tr class="memitem:ga60b95c9c0c6767ff5938464cfd748f81"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#ga60b95c9c0c6767ff5938464cfd748f81">ARM_USBD_Initialize</a> (<a class="el" href="group__usbd__interface__gr.html#ga7c1878799699ddd34cec696da499f7bd">ARM_USBD_SignalDeviceEvent_t</a> cb_device_event, <a class="el" href="group__usbd__interface__gr.html#gaae754763700fc5059a6bde57ea2d4e2c">ARM_USBD_SignalEndpointEvent_t</a> cb_endpoint_event)</td></tr>
181 <tr class="memdesc:ga60b95c9c0c6767ff5938464cfd748f81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize USB Device Interface.  <br /></td></tr>
182 <tr class="separator:ga60b95c9c0c6767ff5938464cfd748f81"><td class="memSeparator" colspan="2">&#160;</td></tr>
183 <tr class="memitem:gafaead6713f141be1734de0110eda966b"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#gafaead6713f141be1734de0110eda966b">ARM_USBD_Uninitialize</a> (void)</td></tr>
184 <tr class="memdesc:gafaead6713f141be1734de0110eda966b"><td class="mdescLeft">&#160;</td><td class="mdescRight">De-initialize USB Device Interface.  <br /></td></tr>
185 <tr class="separator:gafaead6713f141be1734de0110eda966b"><td class="memSeparator" colspan="2">&#160;</td></tr>
186 <tr class="memitem:gaa5bdaac19f6df30c6e569abef17cdb42"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#gaa5bdaac19f6df30c6e569abef17cdb42">ARM_USBD_PowerControl</a> (<a class="el" href="group__common__drv__gr.html#ga47d6d7c31f88f3b8ae4aaf9d8444afa5">ARM_POWER_STATE</a> state)</td></tr>
187 <tr class="memdesc:gaa5bdaac19f6df30c6e569abef17cdb42"><td class="mdescLeft">&#160;</td><td class="mdescRight">Control USB Device Interface Power.  <br /></td></tr>
188 <tr class="separator:gaa5bdaac19f6df30c6e569abef17cdb42"><td class="memSeparator" colspan="2">&#160;</td></tr>
189 <tr class="memitem:ga99207f7ff5e97a7f65754eab7f775fca"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#ga99207f7ff5e97a7f65754eab7f775fca">ARM_USBD_DeviceConnect</a> (void)</td></tr>
190 <tr class="memdesc:ga99207f7ff5e97a7f65754eab7f775fca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connect USB Device.  <br /></td></tr>
191 <tr class="separator:ga99207f7ff5e97a7f65754eab7f775fca"><td class="memSeparator" colspan="2">&#160;</td></tr>
192 <tr class="memitem:ga37234abecbb63e4e739f9676e489d2d1"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#ga37234abecbb63e4e739f9676e489d2d1">ARM_USBD_DeviceDisconnect</a> (void)</td></tr>
193 <tr class="memdesc:ga37234abecbb63e4e739f9676e489d2d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disconnect USB Device.  <br /></td></tr>
194 <tr class="separator:ga37234abecbb63e4e739f9676e489d2d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
195 <tr class="memitem:ga7624d6b2cbe5e6ab5016206ce641eee2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__usbd__interface__gr.html#structARM__USBD__STATE">ARM_USBD_STATE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#ga7624d6b2cbe5e6ab5016206ce641eee2">ARM_USBD_DeviceGetState</a> (void)</td></tr>
196 <tr class="memdesc:ga7624d6b2cbe5e6ab5016206ce641eee2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get current USB Device State.  <br /></td></tr>
197 <tr class="separator:ga7624d6b2cbe5e6ab5016206ce641eee2"><td class="memSeparator" colspan="2">&#160;</td></tr>
198 <tr class="memitem:ga7e149a4c6a0196da24a44f4fada75fb1"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#ga7e149a4c6a0196da24a44f4fada75fb1">ARM_USBD_DeviceRemoteWakeup</a> (void)</td></tr>
199 <tr class="memdesc:ga7e149a4c6a0196da24a44f4fada75fb1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Trigger USB Remote Wakeup.  <br /></td></tr>
200 <tr class="separator:ga7e149a4c6a0196da24a44f4fada75fb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
201 <tr class="memitem:gae66f696584e25fb2ddabe9070fa38670"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#gae66f696584e25fb2ddabe9070fa38670">ARM_USBD_DeviceSetAddress</a> (uint8_t dev_addr)</td></tr>
202 <tr class="memdesc:gae66f696584e25fb2ddabe9070fa38670"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set USB Device Address.  <br /></td></tr>
203 <tr class="separator:gae66f696584e25fb2ddabe9070fa38670"><td class="memSeparator" colspan="2">&#160;</td></tr>
204 <tr class="memitem:ga6bc0ebf699a0f28330f21cab83f85e9e"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#ga6bc0ebf699a0f28330f21cab83f85e9e">ARM_USBD_ReadSetupPacket</a> (uint8_t *setup)</td></tr>
205 <tr class="memdesc:ga6bc0ebf699a0f28330f21cab83f85e9e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read setup packet received over Control Endpoint.  <br /></td></tr>
206 <tr class="separator:ga6bc0ebf699a0f28330f21cab83f85e9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
207 <tr class="memitem:ga62d7d5bdcf9ca7bf7e6d8434368abad8"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#ga62d7d5bdcf9ca7bf7e6d8434368abad8">ARM_USBD_EndpointConfigure</a> (uint8_t ep_addr, uint8_t ep_type, uint16_t ep_max_packet_size)</td></tr>
208 <tr class="memdesc:ga62d7d5bdcf9ca7bf7e6d8434368abad8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configure USB Endpoint.  <br /></td></tr>
209 <tr class="separator:ga62d7d5bdcf9ca7bf7e6d8434368abad8"><td class="memSeparator" colspan="2">&#160;</td></tr>
210 <tr class="memitem:gaca913df5188dc0f0c4f707b57c2a88fc"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#gaca913df5188dc0f0c4f707b57c2a88fc">ARM_USBD_EndpointUnconfigure</a> (uint8_t ep_addr)</td></tr>
211 <tr class="memdesc:gaca913df5188dc0f0c4f707b57c2a88fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unconfigure USB Endpoint.  <br /></td></tr>
212 <tr class="separator:gaca913df5188dc0f0c4f707b57c2a88fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
213 <tr class="memitem:ga9502cd7b8e4c583920fccadc4ccf7975"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#ga9502cd7b8e4c583920fccadc4ccf7975">ARM_USBD_EndpointStall</a> (uint8_t ep_addr, bool stall)</td></tr>
214 <tr class="memdesc:ga9502cd7b8e4c583920fccadc4ccf7975"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set/Clear Stall for USB Endpoint.  <br /></td></tr>
215 <tr class="separator:ga9502cd7b8e4c583920fccadc4ccf7975"><td class="memSeparator" colspan="2">&#160;</td></tr>
216 <tr class="memitem:ga6e69ad097553125bb01a22dc719e0d30"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#ga6e69ad097553125bb01a22dc719e0d30">ARM_USBD_EndpointTransfer</a> (uint8_t ep_addr, uint8_t *data, uint32_t num)</td></tr>
217 <tr class="memdesc:ga6e69ad097553125bb01a22dc719e0d30"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read data from or Write data to USB Endpoint.  <br /></td></tr>
218 <tr class="separator:ga6e69ad097553125bb01a22dc719e0d30"><td class="memSeparator" colspan="2">&#160;</td></tr>
219 <tr class="memitem:gab81fac01522a4d504edcb7b7d3abba6c"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#gab81fac01522a4d504edcb7b7d3abba6c">ARM_USBD_EndpointTransferGetResult</a> (uint8_t ep_addr)</td></tr>
220 <tr class="memdesc:gab81fac01522a4d504edcb7b7d3abba6c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get result of USB Endpoint transfer.  <br /></td></tr>
221 <tr class="separator:gab81fac01522a4d504edcb7b7d3abba6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
222 <tr class="memitem:ga7cf3bcc105dbb8cbdc915e8caca8529e"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#ga7cf3bcc105dbb8cbdc915e8caca8529e">ARM_USBD_EndpointTransferAbort</a> (uint8_t ep_addr)</td></tr>
223 <tr class="memdesc:ga7cf3bcc105dbb8cbdc915e8caca8529e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abort current USB Endpoint transfer.  <br /></td></tr>
224 <tr class="separator:ga7cf3bcc105dbb8cbdc915e8caca8529e"><td class="memSeparator" colspan="2">&#160;</td></tr>
225 <tr class="memitem:ga4cd050b8343407fe465a27ad1cb7c264"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#ga4cd050b8343407fe465a27ad1cb7c264">ARM_USBD_GetFrameNumber</a> (void)</td></tr>
226 <tr class="memdesc:ga4cd050b8343407fe465a27ad1cb7c264"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get current USB Frame Number.  <br /></td></tr>
227 <tr class="separator:ga4cd050b8343407fe465a27ad1cb7c264"><td class="memSeparator" colspan="2">&#160;</td></tr>
228 <tr class="memitem:gafe58a4db1d26b21ca5d418ee49e103a5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#gafe58a4db1d26b21ca5d418ee49e103a5">ARM_USBD_SignalDeviceEvent</a> (uint32_t event)</td></tr>
229 <tr class="memdesc:gafe58a4db1d26b21ca5d418ee49e103a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signal USB Device Event.  <br /></td></tr>
230 <tr class="separator:gafe58a4db1d26b21ca5d418ee49e103a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
231 <tr class="memitem:ga9aa5bc5cb45084194a77fae1457f6575"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#ga9aa5bc5cb45084194a77fae1457f6575">ARM_USBD_SignalEndpointEvent</a> (uint8_t ep_addr, uint32_t ep_event)</td></tr>
232 <tr class="memdesc:ga9aa5bc5cb45084194a77fae1457f6575"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signal USB Endpoint Event.  <br /></td></tr>
233 <tr class="separator:ga9aa5bc5cb45084194a77fae1457f6575"><td class="memSeparator" colspan="2">&#160;</td></tr>
234 </table>
235 <a name="details" id="details"></a><h2 class="groupheader">Description</h2>
236 <p>Driver API for USB Device Peripheral (Driver_USBD.h) </p>
237 <p><b>USB Device API</b></p>
238 <p>The header file <b><a class="el" href="Driver__USBD_8h.html">Driver_USBD.h</a></b> defines the API for the <b>USB Device Driver</b> interface used by middleware components. The driver implementation itself is a typical part of the Device Family Pack, which provides entry points to the interface as function pointers in the struct <a class="el" href="group__usbd__interface__gr.html#structARM__DRIVER__USBD">ARM_DRIVER_USBD</a>. This structure can be available several times in each interface to control multiple USBD interfaces.</p>
239 <p>Header file <b><a class="el" href="Driver__USBD_8h.html">Driver_USBD.h</a></b> also defines callback routines that can be categorized as <b>device event callbacks</b> and <b>endpoint event callbacks</b>. Callbacks are called by the driver, in interrupt context when an appropriate event occurs, to signal device related events (<a class="el" href="group__USBD__dev__events.html">USBD Device Events</a>) and endpoint related events (<a class="el" href="group__USBD__ep__events.html">USBD Endpoint Events</a>).</p>
240 <p><b>USB Device Function Call Sequence</b></p>
241 <p>To use the USBD driver invoke the API functions in the following order:</p>
242 <div class="mscgraph">
243 <img src="msc_inline_mscgraph_2.png" alt="msc_inline_mscgraph_2" border="0" usemap="#msc_inline_mscgraph_2.map"/>
244 <map name="msc_inline_mscgraph_2.map" id="msc_inline_mscgraph_2.map"><area href="group__usbd__interface__gr.html#ga60b95c9c0c6767ff5938464cfd748f81" shape="rect" coords="244,58,357,71" alt=""/>
245 <area href="group__usbd__interface__gr.html#ga60b95c9c0c6767ff5938464cfd748f81" shape="rect" coords="187,90,414,103" alt=""/>
246 <area href="group__usbd__interface__gr.html#ga99207f7ff5e97a7f65754eab7f775fca" shape="rect" coords="235,122,366,135" alt=""/>
247 <area href="group__usbd__interface__gr.html#gafe58a4db1d26b21ca5d418ee49e103a5" shape="rect" coords="154,154,447,167" alt=""/>
248 <area href="group__usbd__interface__gr.html#ga7624d6b2cbe5e6ab5016206ce641eee2" shape="rect" coords="232,186,369,199" alt=""/>
249 <area href="group__usbd__interface__gr.html#ga62d7d5bdcf9ca7bf7e6d8434368abad8" shape="rect" coords="223,218,378,231" alt=""/>
250 <area href="group__usbd__interface__gr.html#ga6e69ad097553125bb01a22dc719e0d30" shape="rect" coords="226,269,375,282" alt=""/>
251 <area href="group__usbd__interface__gr.html#ga9aa5bc5cb45084194a77fae1457f6575" shape="rect" coords="217,301,384,314" alt=""/>
252 <area href="group__usbd__interface__gr.html#gab81fac01522a4d504edcb7b7d3abba6c" shape="rect" coords="199,333,402,346" alt=""/>
253 <area href="group__usbd__interface__gr.html#ga37234abecbb63e4e739f9676e489d2d1" shape="rect" coords="226,384,375,397" alt=""/>
254 <area href="group__usbd__interface__gr.html#ga60b95c9c0c6767ff5938464cfd748f81" shape="rect" coords="190,416,411,429" alt=""/>
255 <area href="group__usbd__interface__gr.html#gafaead6713f141be1734de0110eda966b" shape="rect" coords="238,448,363,461" alt=""/>
256 </map>
257 </div>
258  <hr/><h2 class="groupheader">Data Structure Documentation</h2>
259 <a name="structARM__DRIVER__USBD" id="structARM__DRIVER__USBD"></a>
260 <h2 class="memtitle"><span class="permalink"><a href="#structARM__DRIVER__USBD">&#9670;&#160;</a></span>ARM_DRIVER_USBD</h2>
261
262 <div class="memitem">
263 <div class="memproto">
264       <table class="memname">
265         <tr>
266           <td class="memname">struct ARM_DRIVER_USBD</td>
267         </tr>
268       </table>
269 </div><div class="memdoc">
270 <div class="textblock"><p>Access structure of the USB Device Driver. </p>
271 <p>The functions of the USB Device driver are accessed by function pointers. Refer to <a class="el" href="theoryOperation.html#DriverFunctions">Common Driver Functions</a> for overview information.</p>
272 <p>Each instance of an USBD provides such an access struct. The instance is indicated by a postfix in the symbol name of the access struct, for example:</p><ul>
273 <li><b>Driver_USBD0</b> is the name of the access struct of the first instance (no. 0).</li>
274 <li><b>Driver_USBD1</b> is the name of the access struct of the second instance (no. 1).</li>
275 </ul>
276 <p>A configuration setting in the middleware allows connecting the middleware to a specific driver instance <b>Driver_USBD<em>n</em></b>. The default is <span class="XML-Token">0</span>, which connects a middleware to the first instance of a driver.</p>
277 <dl class="section note"><dt>Note</dt><dd>The struct must remain unchanged. </dd></dl>
278 </div><table class="memberdecls">
279 <tr><td colspan="2"><h3>Data Fields</h3></td></tr>
280 <tr class="memitem:a30afd9cb3113c037b5f1926f5ef93b59"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__common__drv__gr.html#structARM__DRIVER__VERSION">ARM_DRIVER_VERSION</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#a30afd9cb3113c037b5f1926f5ef93b59">GetVersion</a> )(void)</td></tr>
281 <tr class="memdesc:a30afd9cb3113c037b5f1926f5ef93b59"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to <a class="el" href="group__usbd__interface__gr.html#ga1dcb8b7790f0e3613ee3da77e5fd18fc">ARM_USBD_GetVersion</a> : Get driver version.  <br /></td></tr>
282 <tr class="separator:a30afd9cb3113c037b5f1926f5ef93b59"><td class="memSeparator" colspan="2">&#160;</td></tr>
283 <tr class="memitem:a1de7fb4fa3f8ba93ce288af961d22124"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__usbd__interface__gr.html#structARM__USBD__CAPABILITIES">ARM_USBD_CAPABILITIES</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#a1de7fb4fa3f8ba93ce288af961d22124">GetCapabilities</a> )(void)</td></tr>
284 <tr class="memdesc:a1de7fb4fa3f8ba93ce288af961d22124"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to <a class="el" href="group__usbd__interface__gr.html#ga178d01ab7896e1c675b90bbccfe8ea7d">ARM_USBD_GetCapabilities</a> : Get driver capabilities.  <br /></td></tr>
285 <tr class="separator:a1de7fb4fa3f8ba93ce288af961d22124"><td class="memSeparator" colspan="2">&#160;</td></tr>
286 <tr class="memitem:a6f06dca6069ce4dec59669e8a264c886"><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#a6f06dca6069ce4dec59669e8a264c886">Initialize</a> )(<a class="el" href="group__usbd__interface__gr.html#ga7c1878799699ddd34cec696da499f7bd">ARM_USBD_SignalDeviceEvent_t</a> cb_device_event, <a class="el" href="group__usbd__interface__gr.html#gaae754763700fc5059a6bde57ea2d4e2c">ARM_USBD_SignalEndpointEvent_t</a> cb_endpoint_event)</td></tr>
287 <tr class="memdesc:a6f06dca6069ce4dec59669e8a264c886"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to <a class="el" href="group__usbd__interface__gr.html#ga60b95c9c0c6767ff5938464cfd748f81">ARM_USBD_Initialize</a> : Initialize USB Device Interface.  <br /></td></tr>
288 <tr class="separator:a6f06dca6069ce4dec59669e8a264c886"><td class="memSeparator" colspan="2">&#160;</td></tr>
289 <tr class="memitem:a5ce2b3d7a3a07099bf07d1eb253e92e3"><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#a5ce2b3d7a3a07099bf07d1eb253e92e3">Uninitialize</a> )(void)</td></tr>
290 <tr class="memdesc:a5ce2b3d7a3a07099bf07d1eb253e92e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to <a class="el" href="group__usbd__interface__gr.html#gafaead6713f141be1734de0110eda966b">ARM_USBD_Uninitialize</a> : De-initialize USB Device Interface.  <br /></td></tr>
291 <tr class="separator:a5ce2b3d7a3a07099bf07d1eb253e92e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
292 <tr class="memitem:a24ebae5c6011631f76027f9a16eaf5ce"><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#a24ebae5c6011631f76027f9a16eaf5ce">PowerControl</a> )(<a class="el" href="group__common__drv__gr.html#ga47d6d7c31f88f3b8ae4aaf9d8444afa5">ARM_POWER_STATE</a> state)</td></tr>
293 <tr class="memdesc:a24ebae5c6011631f76027f9a16eaf5ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to <a class="el" href="group__usbd__interface__gr.html#gaa5bdaac19f6df30c6e569abef17cdb42">ARM_USBD_PowerControl</a> : Control USB Device Interface Power.  <br /></td></tr>
294 <tr class="separator:a24ebae5c6011631f76027f9a16eaf5ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
295 <tr class="memitem:adb206e2099db1404e37b6defa226ef83"><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#adb206e2099db1404e37b6defa226ef83">DeviceConnect</a> )(void)</td></tr>
296 <tr class="memdesc:adb206e2099db1404e37b6defa226ef83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to <a class="el" href="group__usbd__interface__gr.html#ga99207f7ff5e97a7f65754eab7f775fca">ARM_USBD_DeviceConnect</a> : Connect USB Device.  <br /></td></tr>
297 <tr class="separator:adb206e2099db1404e37b6defa226ef83"><td class="memSeparator" colspan="2">&#160;</td></tr>
298 <tr class="memitem:af5af2217baa6b020ee425e7cb4fbd1e0"><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#af5af2217baa6b020ee425e7cb4fbd1e0">DeviceDisconnect</a> )(void)</td></tr>
299 <tr class="memdesc:af5af2217baa6b020ee425e7cb4fbd1e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to <a class="el" href="group__usbd__interface__gr.html#ga37234abecbb63e4e739f9676e489d2d1">ARM_USBD_DeviceDisconnect</a> : Disconnect USB Device.  <br /></td></tr>
300 <tr class="separator:af5af2217baa6b020ee425e7cb4fbd1e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
301 <tr class="memitem:a8b1e86e239772c9a0c13976ac239fea9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__usbd__interface__gr.html#structARM__USBD__STATE">ARM_USBD_STATE</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#a8b1e86e239772c9a0c13976ac239fea9">DeviceGetState</a> )(void)</td></tr>
302 <tr class="memdesc:a8b1e86e239772c9a0c13976ac239fea9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to <a class="el" href="group__usbd__interface__gr.html#ga7624d6b2cbe5e6ab5016206ce641eee2">ARM_USBD_DeviceGetState</a> : Get current USB Device State.  <br /></td></tr>
303 <tr class="separator:a8b1e86e239772c9a0c13976ac239fea9"><td class="memSeparator" colspan="2">&#160;</td></tr>
304 <tr class="memitem:a9284ceb4c0cdef209174076376354dd6"><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#a9284ceb4c0cdef209174076376354dd6">DeviceRemoteWakeup</a> )(void)</td></tr>
305 <tr class="memdesc:a9284ceb4c0cdef209174076376354dd6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to <a class="el" href="group__usbd__interface__gr.html#ga7e149a4c6a0196da24a44f4fada75fb1">ARM_USBD_DeviceRemoteWakeup</a> : Trigger USB Remote Wakeup.  <br /></td></tr>
306 <tr class="separator:a9284ceb4c0cdef209174076376354dd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
307 <tr class="memitem:a57ac19faf08d94e038ce19c2ccd606ce"><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#a57ac19faf08d94e038ce19c2ccd606ce">DeviceSetAddress</a> )(uint8_t dev_addr)</td></tr>
308 <tr class="memdesc:a57ac19faf08d94e038ce19c2ccd606ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to <a class="el" href="group__usbd__interface__gr.html#gae66f696584e25fb2ddabe9070fa38670">ARM_USBD_DeviceSetAddress</a> : Set USB Device Address.  <br /></td></tr>
309 <tr class="separator:a57ac19faf08d94e038ce19c2ccd606ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
310 <tr class="memitem:a3be60c2232d0c552f8916ae03e99a481"><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#a3be60c2232d0c552f8916ae03e99a481">ReadSetupPacket</a> )(uint8_t *setup)</td></tr>
311 <tr class="memdesc:a3be60c2232d0c552f8916ae03e99a481"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to <a class="el" href="group__usbd__interface__gr.html#ga6bc0ebf699a0f28330f21cab83f85e9e">ARM_USBD_ReadSetupPacket</a> : Read setup packet received over Control Endpoint.  <br /></td></tr>
312 <tr class="separator:a3be60c2232d0c552f8916ae03e99a481"><td class="memSeparator" colspan="2">&#160;</td></tr>
313 <tr class="memitem:a9dc8aa3d9779ca485d984cec7f61e9f5"><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#a9dc8aa3d9779ca485d984cec7f61e9f5">EndpointConfigure</a> )(uint8_t ep_addr, uint8_t ep_type, uint16_t ep_max_packet_size)</td></tr>
314 <tr class="memdesc:a9dc8aa3d9779ca485d984cec7f61e9f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to <a class="el" href="group__usbd__interface__gr.html#ga62d7d5bdcf9ca7bf7e6d8434368abad8">ARM_USBD_EndpointConfigure</a> : Configure USB Endpoint.  <br /></td></tr>
315 <tr class="separator:a9dc8aa3d9779ca485d984cec7f61e9f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
316 <tr class="memitem:a9de9ad848bf8dd8e0462df4c08b5f42b"><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#a9de9ad848bf8dd8e0462df4c08b5f42b">EndpointUnconfigure</a> )(uint8_t ep_addr)</td></tr>
317 <tr class="memdesc:a9de9ad848bf8dd8e0462df4c08b5f42b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to <a class="el" href="group__usbd__interface__gr.html#gaca913df5188dc0f0c4f707b57c2a88fc">ARM_USBD_EndpointUnconfigure</a> : Unconfigure USB Endpoint.  <br /></td></tr>
318 <tr class="separator:a9de9ad848bf8dd8e0462df4c08b5f42b"><td class="memSeparator" colspan="2">&#160;</td></tr>
319 <tr class="memitem:a4ddee6ccee081be81be53931aa5a8fcc"><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#a4ddee6ccee081be81be53931aa5a8fcc">EndpointStall</a> )(uint8_t ep_addr, bool stall)</td></tr>
320 <tr class="memdesc:a4ddee6ccee081be81be53931aa5a8fcc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to <a class="el" href="group__usbd__interface__gr.html#ga9502cd7b8e4c583920fccadc4ccf7975">ARM_USBD_EndpointStall</a> : Set/Clear Stall for USB Endpoint.  <br /></td></tr>
321 <tr class="separator:a4ddee6ccee081be81be53931aa5a8fcc"><td class="memSeparator" colspan="2">&#160;</td></tr>
322 <tr class="memitem:a6d0f259733f74c850625d063c1e734fa"><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#a6d0f259733f74c850625d063c1e734fa">EndpointTransfer</a> )(uint8_t ep_addr, uint8_t *data, uint32_t num)</td></tr>
323 <tr class="memdesc:a6d0f259733f74c850625d063c1e734fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to <a class="el" href="group__usbd__interface__gr.html#ga6e69ad097553125bb01a22dc719e0d30">ARM_USBD_EndpointTransfer</a> : Read data from or Write data to USB Endpoint.  <br /></td></tr>
324 <tr class="separator:a6d0f259733f74c850625d063c1e734fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
325 <tr class="memitem:aac17fa7640667830865110bf32ea2da9"><td class="memItemLeft" align="right" valign="top">uint32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#aac17fa7640667830865110bf32ea2da9">EndpointTransferGetResult</a> )(uint8_t ep_addr)</td></tr>
326 <tr class="memdesc:aac17fa7640667830865110bf32ea2da9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to <a class="el" href="group__usbd__interface__gr.html#gab81fac01522a4d504edcb7b7d3abba6c">ARM_USBD_EndpointTransferGetResult</a> : Get result of USB Endpoint transfer.  <br /></td></tr>
327 <tr class="separator:aac17fa7640667830865110bf32ea2da9"><td class="memSeparator" colspan="2">&#160;</td></tr>
328 <tr class="memitem:aea43c20079939ded8fc0011bfa00d4ea"><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#aea43c20079939ded8fc0011bfa00d4ea">EndpointTransferAbort</a> )(uint8_t ep_addr)</td></tr>
329 <tr class="memdesc:aea43c20079939ded8fc0011bfa00d4ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to <a class="el" href="group__usbd__interface__gr.html#ga7cf3bcc105dbb8cbdc915e8caca8529e">ARM_USBD_EndpointTransferAbort</a> : Abort current USB Endpoint transfer.  <br /></td></tr>
330 <tr class="separator:aea43c20079939ded8fc0011bfa00d4ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
331 <tr class="memitem:ab459c9ca3d6dd6969cb410ac965fa1f6"><td class="memItemLeft" align="right" valign="top">uint16_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__usbd__interface__gr.html#ab459c9ca3d6dd6969cb410ac965fa1f6">GetFrameNumber</a> )(void)</td></tr>
332 <tr class="memdesc:ab459c9ca3d6dd6969cb410ac965fa1f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to <a class="el" href="group__usbd__interface__gr.html#ga4cd050b8343407fe465a27ad1cb7c264">ARM_USBD_GetFrameNumber</a> : Get current USB Frame Number.  <br /></td></tr>
333 <tr class="separator:ab459c9ca3d6dd6969cb410ac965fa1f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
334 </table>
335 <h4 class="groupheader">Field Documentation</h4>
336 <a id="a30afd9cb3113c037b5f1926f5ef93b59" name="a30afd9cb3113c037b5f1926f5ef93b59"></a>
337 <h2 class="memtitle"><span class="permalink"><a href="#a30afd9cb3113c037b5f1926f5ef93b59">&#9670;&#160;</a></span>GetVersion</h2>
338
339 <div class="memitem">
340 <div class="memproto">
341       <table class="memname">
342         <tr>
343           <td class="memname"><a class="el" href="group__common__drv__gr.html#structARM__DRIVER__VERSION">ARM_DRIVER_VERSION</a>(* GetVersion) (void)</td>
344         </tr>
345       </table>
346 </div><div class="memdoc">
347
348 <p>Pointer to <a class="el" href="group__usbd__interface__gr.html#ga1dcb8b7790f0e3613ee3da77e5fd18fc">ARM_USBD_GetVersion</a> : Get driver version. </p>
349
350 </div>
351 </div>
352 <a id="a1de7fb4fa3f8ba93ce288af961d22124" name="a1de7fb4fa3f8ba93ce288af961d22124"></a>
353 <h2 class="memtitle"><span class="permalink"><a href="#a1de7fb4fa3f8ba93ce288af961d22124">&#9670;&#160;</a></span>GetCapabilities</h2>
354
355 <div class="memitem">
356 <div class="memproto">
357       <table class="memname">
358         <tr>
359           <td class="memname"><a class="el" href="group__usbd__interface__gr.html#structARM__USBD__CAPABILITIES">ARM_USBD_CAPABILITIES</a>(* GetCapabilities) (void)</td>
360         </tr>
361       </table>
362 </div><div class="memdoc">
363
364 <p>Pointer to <a class="el" href="group__usbd__interface__gr.html#ga178d01ab7896e1c675b90bbccfe8ea7d">ARM_USBD_GetCapabilities</a> : Get driver capabilities. </p>
365
366 </div>
367 </div>
368 <a id="a6f06dca6069ce4dec59669e8a264c886" name="a6f06dca6069ce4dec59669e8a264c886"></a>
369 <h2 class="memtitle"><span class="permalink"><a href="#a6f06dca6069ce4dec59669e8a264c886">&#9670;&#160;</a></span>Initialize</h2>
370
371 <div class="memitem">
372 <div class="memproto">
373       <table class="memname">
374         <tr>
375           <td class="memname">int32_t(* Initialize) (<a class="el" href="group__usbd__interface__gr.html#ga7c1878799699ddd34cec696da499f7bd">ARM_USBD_SignalDeviceEvent_t</a> cb_device_event, <a class="el" href="group__usbd__interface__gr.html#gaae754763700fc5059a6bde57ea2d4e2c">ARM_USBD_SignalEndpointEvent_t</a> cb_endpoint_event)</td>
376         </tr>
377       </table>
378 </div><div class="memdoc">
379
380 <p>Pointer to <a class="el" href="group__usbd__interface__gr.html#ga60b95c9c0c6767ff5938464cfd748f81">ARM_USBD_Initialize</a> : Initialize USB Device Interface. </p>
381
382 </div>
383 </div>
384 <a id="a5ce2b3d7a3a07099bf07d1eb253e92e3" name="a5ce2b3d7a3a07099bf07d1eb253e92e3"></a>
385 <h2 class="memtitle"><span class="permalink"><a href="#a5ce2b3d7a3a07099bf07d1eb253e92e3">&#9670;&#160;</a></span>Uninitialize</h2>
386
387 <div class="memitem">
388 <div class="memproto">
389       <table class="memname">
390         <tr>
391           <td class="memname">int32_t(* Uninitialize) (void)</td>
392         </tr>
393       </table>
394 </div><div class="memdoc">
395
396 <p>Pointer to <a class="el" href="group__usbd__interface__gr.html#gafaead6713f141be1734de0110eda966b">ARM_USBD_Uninitialize</a> : De-initialize USB Device Interface. </p>
397
398 </div>
399 </div>
400 <a id="a24ebae5c6011631f76027f9a16eaf5ce" name="a24ebae5c6011631f76027f9a16eaf5ce"></a>
401 <h2 class="memtitle"><span class="permalink"><a href="#a24ebae5c6011631f76027f9a16eaf5ce">&#9670;&#160;</a></span>PowerControl</h2>
402
403 <div class="memitem">
404 <div class="memproto">
405       <table class="memname">
406         <tr>
407           <td class="memname">int32_t(* PowerControl) (<a class="el" href="group__common__drv__gr.html#ga47d6d7c31f88f3b8ae4aaf9d8444afa5">ARM_POWER_STATE</a> state)</td>
408         </tr>
409       </table>
410 </div><div class="memdoc">
411
412 <p>Pointer to <a class="el" href="group__usbd__interface__gr.html#gaa5bdaac19f6df30c6e569abef17cdb42">ARM_USBD_PowerControl</a> : Control USB Device Interface Power. </p>
413
414 </div>
415 </div>
416 <a id="adb206e2099db1404e37b6defa226ef83" name="adb206e2099db1404e37b6defa226ef83"></a>
417 <h2 class="memtitle"><span class="permalink"><a href="#adb206e2099db1404e37b6defa226ef83">&#9670;&#160;</a></span>DeviceConnect</h2>
418
419 <div class="memitem">
420 <div class="memproto">
421       <table class="memname">
422         <tr>
423           <td class="memname">int32_t(* DeviceConnect) (void)</td>
424         </tr>
425       </table>
426 </div><div class="memdoc">
427
428 <p>Pointer to <a class="el" href="group__usbd__interface__gr.html#ga99207f7ff5e97a7f65754eab7f775fca">ARM_USBD_DeviceConnect</a> : Connect USB Device. </p>
429
430 </div>
431 </div>
432 <a id="af5af2217baa6b020ee425e7cb4fbd1e0" name="af5af2217baa6b020ee425e7cb4fbd1e0"></a>
433 <h2 class="memtitle"><span class="permalink"><a href="#af5af2217baa6b020ee425e7cb4fbd1e0">&#9670;&#160;</a></span>DeviceDisconnect</h2>
434
435 <div class="memitem">
436 <div class="memproto">
437       <table class="memname">
438         <tr>
439           <td class="memname">int32_t(* DeviceDisconnect) (void)</td>
440         </tr>
441       </table>
442 </div><div class="memdoc">
443
444 <p>Pointer to <a class="el" href="group__usbd__interface__gr.html#ga37234abecbb63e4e739f9676e489d2d1">ARM_USBD_DeviceDisconnect</a> : Disconnect USB Device. </p>
445
446 </div>
447 </div>
448 <a id="a8b1e86e239772c9a0c13976ac239fea9" name="a8b1e86e239772c9a0c13976ac239fea9"></a>
449 <h2 class="memtitle"><span class="permalink"><a href="#a8b1e86e239772c9a0c13976ac239fea9">&#9670;&#160;</a></span>DeviceGetState</h2>
450
451 <div class="memitem">
452 <div class="memproto">
453       <table class="memname">
454         <tr>
455           <td class="memname"><a class="el" href="group__usbd__interface__gr.html#structARM__USBD__STATE">ARM_USBD_STATE</a>(* DeviceGetState) (void)</td>
456         </tr>
457       </table>
458 </div><div class="memdoc">
459
460 <p>Pointer to <a class="el" href="group__usbd__interface__gr.html#ga7624d6b2cbe5e6ab5016206ce641eee2">ARM_USBD_DeviceGetState</a> : Get current USB Device State. </p>
461
462 </div>
463 </div>
464 <a id="a9284ceb4c0cdef209174076376354dd6" name="a9284ceb4c0cdef209174076376354dd6"></a>
465 <h2 class="memtitle"><span class="permalink"><a href="#a9284ceb4c0cdef209174076376354dd6">&#9670;&#160;</a></span>DeviceRemoteWakeup</h2>
466
467 <div class="memitem">
468 <div class="memproto">
469       <table class="memname">
470         <tr>
471           <td class="memname">int32_t(* DeviceRemoteWakeup) (void)</td>
472         </tr>
473       </table>
474 </div><div class="memdoc">
475
476 <p>Pointer to <a class="el" href="group__usbd__interface__gr.html#ga7e149a4c6a0196da24a44f4fada75fb1">ARM_USBD_DeviceRemoteWakeup</a> : Trigger USB Remote Wakeup. </p>
477
478 </div>
479 </div>
480 <a id="a57ac19faf08d94e038ce19c2ccd606ce" name="a57ac19faf08d94e038ce19c2ccd606ce"></a>
481 <h2 class="memtitle"><span class="permalink"><a href="#a57ac19faf08d94e038ce19c2ccd606ce">&#9670;&#160;</a></span>DeviceSetAddress</h2>
482
483 <div class="memitem">
484 <div class="memproto">
485       <table class="memname">
486         <tr>
487           <td class="memname">int32_t(* DeviceSetAddress) (uint8_t dev_addr)</td>
488         </tr>
489       </table>
490 </div><div class="memdoc">
491
492 <p>Pointer to <a class="el" href="group__usbd__interface__gr.html#gae66f696584e25fb2ddabe9070fa38670">ARM_USBD_DeviceSetAddress</a> : Set USB Device Address. </p>
493
494 </div>
495 </div>
496 <a id="a3be60c2232d0c552f8916ae03e99a481" name="a3be60c2232d0c552f8916ae03e99a481"></a>
497 <h2 class="memtitle"><span class="permalink"><a href="#a3be60c2232d0c552f8916ae03e99a481">&#9670;&#160;</a></span>ReadSetupPacket</h2>
498
499 <div class="memitem">
500 <div class="memproto">
501       <table class="memname">
502         <tr>
503           <td class="memname">int32_t(* ReadSetupPacket) (uint8_t *setup)</td>
504         </tr>
505       </table>
506 </div><div class="memdoc">
507
508 <p>Pointer to <a class="el" href="group__usbd__interface__gr.html#ga6bc0ebf699a0f28330f21cab83f85e9e">ARM_USBD_ReadSetupPacket</a> : Read setup packet received over Control Endpoint. </p>
509
510 </div>
511 </div>
512 <a id="a9dc8aa3d9779ca485d984cec7f61e9f5" name="a9dc8aa3d9779ca485d984cec7f61e9f5"></a>
513 <h2 class="memtitle"><span class="permalink"><a href="#a9dc8aa3d9779ca485d984cec7f61e9f5">&#9670;&#160;</a></span>EndpointConfigure</h2>
514
515 <div class="memitem">
516 <div class="memproto">
517       <table class="memname">
518         <tr>
519           <td class="memname">int32_t(* EndpointConfigure) (uint8_t ep_addr, uint8_t ep_type, uint16_t ep_max_packet_size)</td>
520         </tr>
521       </table>
522 </div><div class="memdoc">
523
524 <p>Pointer to <a class="el" href="group__usbd__interface__gr.html#ga62d7d5bdcf9ca7bf7e6d8434368abad8">ARM_USBD_EndpointConfigure</a> : Configure USB Endpoint. </p>
525
526 </div>
527 </div>
528 <a id="a9de9ad848bf8dd8e0462df4c08b5f42b" name="a9de9ad848bf8dd8e0462df4c08b5f42b"></a>
529 <h2 class="memtitle"><span class="permalink"><a href="#a9de9ad848bf8dd8e0462df4c08b5f42b">&#9670;&#160;</a></span>EndpointUnconfigure</h2>
530
531 <div class="memitem">
532 <div class="memproto">
533       <table class="memname">
534         <tr>
535           <td class="memname">int32_t(* EndpointUnconfigure) (uint8_t ep_addr)</td>
536         </tr>
537       </table>
538 </div><div class="memdoc">
539
540 <p>Pointer to <a class="el" href="group__usbd__interface__gr.html#gaca913df5188dc0f0c4f707b57c2a88fc">ARM_USBD_EndpointUnconfigure</a> : Unconfigure USB Endpoint. </p>
541
542 </div>
543 </div>
544 <a id="a4ddee6ccee081be81be53931aa5a8fcc" name="a4ddee6ccee081be81be53931aa5a8fcc"></a>
545 <h2 class="memtitle"><span class="permalink"><a href="#a4ddee6ccee081be81be53931aa5a8fcc">&#9670;&#160;</a></span>EndpointStall</h2>
546
547 <div class="memitem">
548 <div class="memproto">
549       <table class="memname">
550         <tr>
551           <td class="memname">int32_t(* EndpointStall) (uint8_t ep_addr, bool stall)</td>
552         </tr>
553       </table>
554 </div><div class="memdoc">
555
556 <p>Pointer to <a class="el" href="group__usbd__interface__gr.html#ga9502cd7b8e4c583920fccadc4ccf7975">ARM_USBD_EndpointStall</a> : Set/Clear Stall for USB Endpoint. </p>
557
558 </div>
559 </div>
560 <a id="a6d0f259733f74c850625d063c1e734fa" name="a6d0f259733f74c850625d063c1e734fa"></a>
561 <h2 class="memtitle"><span class="permalink"><a href="#a6d0f259733f74c850625d063c1e734fa">&#9670;&#160;</a></span>EndpointTransfer</h2>
562
563 <div class="memitem">
564 <div class="memproto">
565       <table class="memname">
566         <tr>
567           <td class="memname">int32_t(* EndpointTransfer) (uint8_t ep_addr, uint8_t *data, uint32_t num)</td>
568         </tr>
569       </table>
570 </div><div class="memdoc">
571
572 <p>Pointer to <a class="el" href="group__usbd__interface__gr.html#ga6e69ad097553125bb01a22dc719e0d30">ARM_USBD_EndpointTransfer</a> : Read data from or Write data to USB Endpoint. </p>
573
574 </div>
575 </div>
576 <a id="aac17fa7640667830865110bf32ea2da9" name="aac17fa7640667830865110bf32ea2da9"></a>
577 <h2 class="memtitle"><span class="permalink"><a href="#aac17fa7640667830865110bf32ea2da9">&#9670;&#160;</a></span>EndpointTransferGetResult</h2>
578
579 <div class="memitem">
580 <div class="memproto">
581       <table class="memname">
582         <tr>
583           <td class="memname">uint32_t(* EndpointTransferGetResult) (uint8_t ep_addr)</td>
584         </tr>
585       </table>
586 </div><div class="memdoc">
587
588 <p>Pointer to <a class="el" href="group__usbd__interface__gr.html#gab81fac01522a4d504edcb7b7d3abba6c">ARM_USBD_EndpointTransferGetResult</a> : Get result of USB Endpoint transfer. </p>
589
590 </div>
591 </div>
592 <a id="aea43c20079939ded8fc0011bfa00d4ea" name="aea43c20079939ded8fc0011bfa00d4ea"></a>
593 <h2 class="memtitle"><span class="permalink"><a href="#aea43c20079939ded8fc0011bfa00d4ea">&#9670;&#160;</a></span>EndpointTransferAbort</h2>
594
595 <div class="memitem">
596 <div class="memproto">
597       <table class="memname">
598         <tr>
599           <td class="memname">int32_t(* EndpointTransferAbort) (uint8_t ep_addr)</td>
600         </tr>
601       </table>
602 </div><div class="memdoc">
603
604 <p>Pointer to <a class="el" href="group__usbd__interface__gr.html#ga7cf3bcc105dbb8cbdc915e8caca8529e">ARM_USBD_EndpointTransferAbort</a> : Abort current USB Endpoint transfer. </p>
605
606 </div>
607 </div>
608 <a id="ab459c9ca3d6dd6969cb410ac965fa1f6" name="ab459c9ca3d6dd6969cb410ac965fa1f6"></a>
609 <h2 class="memtitle"><span class="permalink"><a href="#ab459c9ca3d6dd6969cb410ac965fa1f6">&#9670;&#160;</a></span>GetFrameNumber</h2>
610
611 <div class="memitem">
612 <div class="memproto">
613       <table class="memname">
614         <tr>
615           <td class="memname">uint16_t(* GetFrameNumber) (void)</td>
616         </tr>
617       </table>
618 </div><div class="memdoc">
619
620 <p>Pointer to <a class="el" href="group__usbd__interface__gr.html#ga4cd050b8343407fe465a27ad1cb7c264">ARM_USBD_GetFrameNumber</a> : Get current USB Frame Number. </p>
621
622 </div>
623 </div>
624
625 </div>
626 </div>
627 <a name="structARM__USBD__CAPABILITIES" id="structARM__USBD__CAPABILITIES"></a>
628 <h2 class="memtitle"><span class="permalink"><a href="#structARM__USBD__CAPABILITIES">&#9670;&#160;</a></span>ARM_USBD_CAPABILITIES</h2>
629
630 <div class="memitem">
631 <div class="memproto">
632       <table class="memname">
633         <tr>
634           <td class="memname">struct ARM_USBD_CAPABILITIES</td>
635         </tr>
636       </table>
637 </div><div class="memdoc">
638 <div class="textblock"><p>USB Device Driver Capabilities. </p>
639 <p>A USB Device driver can be implemented with different capabilities. The data fields of this structure encode the capabilities implemented by this driver.</p>
640 <p><b>Returned by:</b></p><ul>
641 <li><a class="el" href="group__usbd__interface__gr.html#ga178d01ab7896e1c675b90bbccfe8ea7d">ARM_USBD_GetCapabilities</a></li>
642 </ul>
643 <dl class="section note"><dt>Note</dt><dd>The struct must remain unchanged. </dd></dl>
644 </div><table class="fieldtable">
645 <tr><th colspan="3">Data Fields</th></tr>
646 <tr><td class="fieldtype">
647 <a id="a6673fc1aa13f62122ecf51e52a605c6e" name="a6673fc1aa13f62122ecf51e52a605c6e"></a>uint32_t</td>
648 <td class="fieldname">
649 vbus_detection: 1</td>
650 <td class="fielddoc">
651 VBUS detection. </td></tr>
652 <tr><td class="fieldtype">
653 <a id="a53f95b9ecb7c84197947e7542501c7d3" name="a53f95b9ecb7c84197947e7542501c7d3"></a>uint32_t</td>
654 <td class="fieldname">
655 event_vbus_on: 1</td>
656 <td class="fielddoc">
657 Signal VBUS On event. </td></tr>
658 <tr><td class="fieldtype">
659 <a id="a72d905bc20735bafda40d73c91829709" name="a72d905bc20735bafda40d73c91829709"></a>uint32_t</td>
660 <td class="fieldname">
661 event_vbus_off: 1</td>
662 <td class="fielddoc">
663 Signal VBUS Off event. </td></tr>
664 <tr><td class="fieldtype">
665 <a id="aa43c4c21b173ada1b6b7568956f0d650" name="aa43c4c21b173ada1b6b7568956f0d650"></a>uint32_t</td>
666 <td class="fieldname">
667 reserved: 29</td>
668 <td class="fielddoc">
669 Reserved (must be zero) </td></tr>
670 </table>
671
672 </div>
673 </div>
674 <a name="structARM__USBD__STATE" id="structARM__USBD__STATE"></a>
675 <h2 class="memtitle"><span class="permalink"><a href="#structARM__USBD__STATE">&#9670;&#160;</a></span>ARM_USBD_STATE</h2>
676
677 <div class="memitem">
678 <div class="memproto">
679       <table class="memname">
680         <tr>
681           <td class="memname">struct ARM_USBD_STATE</td>
682         </tr>
683       </table>
684 </div><div class="memdoc">
685 <div class="textblock"><p>USB Device State. </p>
686 <p>This structure stores information about the state of the USB Device. The data fields encode the established speed, whether the device is powered and active.</p>
687 <p><b>Returned by:</b></p><ul>
688 <li><a class="el" href="group__usbd__interface__gr.html#ga7624d6b2cbe5e6ab5016206ce641eee2">ARM_USBD_DeviceGetState</a> </li>
689 </ul>
690 </div><table class="fieldtable">
691 <tr><th colspan="3">Data Fields</th></tr>
692 <tr><td class="fieldtype">
693 <a id="aa961d5fb2bd3d2960578f1ac3b903070" name="aa961d5fb2bd3d2960578f1ac3b903070"></a>uint32_t</td>
694 <td class="fieldname">
695 vbus: 1</td>
696 <td class="fielddoc">
697 USB Device VBUS flag. </td></tr>
698 <tr><td class="fieldtype">
699 <a id="a220859a8b5da0232739a11cbe7f79fc5" name="a220859a8b5da0232739a11cbe7f79fc5"></a>uint32_t</td>
700 <td class="fieldname">
701 speed: 2</td>
702 <td class="fielddoc">
703 USB Device speed setting (ARM_USB_SPEED_xxx) </td></tr>
704 <tr><td class="fieldtype">
705 <a id="ab22b96a3efad48f5a542f46c1b224800" name="ab22b96a3efad48f5a542f46c1b224800"></a>uint32_t</td>
706 <td class="fieldname">
707 active: 1</td>
708 <td class="fielddoc">
709 USB Device active flag. </td></tr>
710 <tr><td class="fieldtype">
711 <a id="aa43c4c21b173ada1b6b7568956f0d650" name="aa43c4c21b173ada1b6b7568956f0d650"></a>uint32_t</td>
712 <td class="fieldname">
713 reserved: 28</td>
714 <td class="fielddoc">
715 </td></tr>
716 </table>
717
718 </div>
719 </div>
720 <h2 class="groupheader">Typedef Documentation</h2>
721 <a id="ga7c1878799699ddd34cec696da499f7bd" name="ga7c1878799699ddd34cec696da499f7bd"></a>
722 <h2 class="memtitle"><span class="permalink"><a href="#ga7c1878799699ddd34cec696da499f7bd">&#9670;&#160;</a></span>ARM_USBD_SignalDeviceEvent_t</h2>
723
724 <div class="memitem">
725 <div class="memproto">
726       <table class="memname">
727         <tr>
728           <td class="memname">ARM_USBD_SignalDeviceEvent_t</td>
729         </tr>
730       </table>
731 </div><div class="memdoc">
732
733 <p>Pointer to <a class="el" href="group__usbd__interface__gr.html#gafe58a4db1d26b21ca5d418ee49e103a5">ARM_USBD_SignalDeviceEvent</a> : Signal USB Device Event. </p>
734 <p>Provides the typedef for the callback function <a class="el" href="group__usbd__interface__gr.html#gafe58a4db1d26b21ca5d418ee49e103a5">ARM_USBD_SignalDeviceEvent</a>.</p>
735 <p><b>Parameter for:</b></p><ul>
736 <li><a class="el" href="group__usbd__interface__gr.html#ga60b95c9c0c6767ff5938464cfd748f81">ARM_USBD_Initialize</a> </li>
737 </ul>
738
739 </div>
740 </div>
741 <a id="gaae754763700fc5059a6bde57ea2d4e2c" name="gaae754763700fc5059a6bde57ea2d4e2c"></a>
742 <h2 class="memtitle"><span class="permalink"><a href="#gaae754763700fc5059a6bde57ea2d4e2c">&#9670;&#160;</a></span>ARM_USBD_SignalEndpointEvent_t</h2>
743
744 <div class="memitem">
745 <div class="memproto">
746       <table class="memname">
747         <tr>
748           <td class="memname">ARM_USBD_SignalEndpointEvent_t</td>
749         </tr>
750       </table>
751 </div><div class="memdoc">
752
753 <p>Pointer to <a class="el" href="group__usbd__interface__gr.html#ga9aa5bc5cb45084194a77fae1457f6575">ARM_USBD_SignalEndpointEvent</a> : Signal USB Endpoint Event. </p>
754 <p>Provides the typedef for the callback function <a class="el" href="group__usbd__interface__gr.html#ga9aa5bc5cb45084194a77fae1457f6575">ARM_USBD_SignalEndpointEvent</a>.</p>
755 <p><b>Parameter for:</b></p><ul>
756 <li><a class="el" href="group__usbd__interface__gr.html#ga60b95c9c0c6767ff5938464cfd748f81">ARM_USBD_Initialize</a> </li>
757 </ul>
758
759 </div>
760 </div>
761 <h2 class="groupheader">Function Documentation</h2>
762 <a id="ga1dcb8b7790f0e3613ee3da77e5fd18fc" name="ga1dcb8b7790f0e3613ee3da77e5fd18fc"></a>
763 <h2 class="memtitle"><span class="permalink"><a href="#ga1dcb8b7790f0e3613ee3da77e5fd18fc">&#9670;&#160;</a></span>ARM_USBD_GetVersion()</h2>
764
765 <div class="memitem">
766 <div class="memproto">
767       <table class="memname">
768         <tr>
769           <td class="memname"><a class="el" href="group__common__drv__gr.html#structARM__DRIVER__VERSION">ARM_DRIVER_VERSION</a> ARM_USBD_GetVersion </td>
770           <td>(</td>
771           <td class="paramtype">void&#160;</td>
772           <td class="paramname"></td><td>)</td>
773           <td></td>
774         </tr>
775       </table>
776 </div><div class="memdoc">
777
778 <p>Get driver version. </p>
779 <dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__common__drv__gr.html#structARM__DRIVER__VERSION">ARM_DRIVER_VERSION</a></dd></dl>
780 <p>The function <b>ARM_USBD_GetVersion</b> returns version information of the driver implementation in <a class="el" href="group__common__drv__gr.html#structARM__DRIVER__VERSION">ARM_DRIVER_VERSION</a></p><ul>
781 <li>API version is the version of the CMSIS-Driver specification used to implement this driver.</li>
782 <li>Driver version is source code version of the actual driver implementation.</li>
783 </ul>
784 <p>Example: </p><div class="fragment"><div class="line"><span class="keyword">extern</span> <a class="code hl_struct" href="group__usbd__interface__gr.html#structARM__DRIVER__USBD">ARM_DRIVER_USBD</a> Driver_USBD0;</div>
785 <div class="line"><a class="code hl_struct" href="group__usbd__interface__gr.html#structARM__DRIVER__USBD">ARM_DRIVER_USBD</a> *drv_info;</div>
786 <div class="line"> </div>
787 <div class="line"><span class="keywordtype">void</span> setup_usbd (<span class="keywordtype">void</span>)  {</div>
788 <div class="line">  <a class="code hl_struct" href="group__common__drv__gr.html#structARM__DRIVER__VERSION">ARM_DRIVER_VERSION</a>  version;</div>
789 <div class="line"> </div>
790 <div class="line">  drv_info = &amp;Driver_USBD0;  </div>
791 <div class="line">  version = drv_info-&gt;<a class="code hl_variable" href="group__usbd__interface__gr.html#a30afd9cb3113c037b5f1926f5ef93b59">GetVersion</a> ();</div>
792 <div class="line">  <span class="keywordflow">if</span> (version.<a class="code hl_variable" href="group__common__drv__gr.html#ad180da20fbde1d3dafc074af87c19540">api</a> &lt; 0x10A)   {      <span class="comment">// requires at minimum API version 1.10 or higher</span></div>
793 <div class="line">    <span class="comment">// error handling</span></div>
794 <div class="line">    <span class="keywordflow">return</span>;</div>
795 <div class="line">  }</div>
796 <div class="line">}</div>
797 <div class="ttc" id="agroup__common__drv__gr_html_ad180da20fbde1d3dafc074af87c19540"><div class="ttname"><a href="group__common__drv__gr.html#ad180da20fbde1d3dafc074af87c19540">ARM_DRIVER_VERSION::api</a></div><div class="ttdeci">uint16_t api</div><div class="ttdoc">API version.</div><div class="ttdef"><b>Definition:</b> Driver_Common.h:47</div></div>
798 <div class="ttc" id="agroup__common__drv__gr_html_structARM__DRIVER__VERSION"><div class="ttname"><a href="group__common__drv__gr.html#structARM__DRIVER__VERSION">ARM_DRIVER_VERSION</a></div><div class="ttdoc">Driver Version.</div><div class="ttdef"><b>Definition:</b> Driver_Common.h:46</div></div>
799 <div class="ttc" id="agroup__usbd__interface__gr_html_a30afd9cb3113c037b5f1926f5ef93b59"><div class="ttname"><a href="group__usbd__interface__gr.html#a30afd9cb3113c037b5f1926f5ef93b59">ARM_DRIVER_USBD::GetVersion</a></div><div class="ttdeci">ARM_DRIVER_VERSION(* GetVersion)(void)</div><div class="ttdoc">Pointer to ARM_USBD_GetVersion : Get driver version.</div><div class="ttdef"><b>Definition:</b> Driver_USBD.h:250</div></div>
800 <div class="ttc" id="agroup__usbd__interface__gr_html_structARM__DRIVER__USBD"><div class="ttname"><a href="group__usbd__interface__gr.html#structARM__DRIVER__USBD">ARM_DRIVER_USBD</a></div><div class="ttdoc">Access structure of the USB Device Driver.</div><div class="ttdef"><b>Definition:</b> Driver_USBD.h:249</div></div>
801 </div><!-- fragment --> 
802 </div>
803 </div>
804 <a id="ga178d01ab7896e1c675b90bbccfe8ea7d" name="ga178d01ab7896e1c675b90bbccfe8ea7d"></a>
805 <h2 class="memtitle"><span class="permalink"><a href="#ga178d01ab7896e1c675b90bbccfe8ea7d">&#9670;&#160;</a></span>ARM_USBD_GetCapabilities()</h2>
806
807 <div class="memitem">
808 <div class="memproto">
809       <table class="memname">
810         <tr>
811           <td class="memname"><a class="el" href="group__usbd__interface__gr.html#structARM__USBD__CAPABILITIES">ARM_USBD_CAPABILITIES</a> ARM_USBD_GetCapabilities </td>
812           <td>(</td>
813           <td class="paramtype">void&#160;</td>
814           <td class="paramname"></td><td>)</td>
815           <td></td>
816         </tr>
817       </table>
818 </div><div class="memdoc">
819
820 <p>Get driver capabilities. </p>
821 <dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__usbd__interface__gr.html#structARM__USBD__CAPABILITIES">ARM_USBD_CAPABILITIES</a></dd></dl>
822 <p>The function <b>ARM_USBD_GetCapabilities</b> returns information about capabilities in this driver implementation. The data fields of the structure <a class="el" href="group__usbd__interface__gr.html#structARM__USBD__CAPABILITIES">ARM_USBD_CAPABILITIES</a> encode various capabilities, for example if the hardware can create signal events using the <a class="el" href="group__usbd__interface__gr.html#gafe58a4db1d26b21ca5d418ee49e103a5">ARM_USBD_SignalDeviceEvent</a> callback function.</p>
823 <p>Example: </p><div class="fragment"><div class="line"><span class="keyword">extern</span> <a class="code hl_struct" href="group__usbd__interface__gr.html#structARM__DRIVER__USBD">ARM_DRIVER_USBD</a> Driver_USBD0;</div>
824 <div class="line"><a class="code hl_struct" href="group__usbd__interface__gr.html#structARM__DRIVER__USBD">ARM_DRIVER_USBD</a> *drv_info;</div>
825 <div class="line">  </div>
826 <div class="line"><span class="keywordtype">void</span> read_capabilities (<span class="keywordtype">void</span>)  {</div>
827 <div class="line">  <a class="code hl_struct" href="group__usbd__interface__gr.html#structARM__USBD__CAPABILITIES">ARM_USBD_CAPABILITIES</a> drv_capabilities;</div>
828 <div class="line"> </div>
829 <div class="line">  drv_info = &amp;Driver_USBD0;  </div>
830 <div class="line">  drv_capabilities = drv_info-&gt;<a class="code hl_variable" href="group__usbd__interface__gr.html#a1de7fb4fa3f8ba93ce288af961d22124">GetCapabilities</a> ();</div>
831 <div class="line">  <span class="comment">// interrogate capabilities</span></div>
832 <div class="line"> </div>
833 <div class="line">}</div>
834 <div class="ttc" id="agroup__usbd__interface__gr_html_a1de7fb4fa3f8ba93ce288af961d22124"><div class="ttname"><a href="group__usbd__interface__gr.html#a1de7fb4fa3f8ba93ce288af961d22124">ARM_DRIVER_USBD::GetCapabilities</a></div><div class="ttdeci">ARM_USBD_CAPABILITIES(* GetCapabilities)(void)</div><div class="ttdoc">Pointer to ARM_USBD_GetCapabilities : Get driver capabilities.</div><div class="ttdef"><b>Definition:</b> Driver_USBD.h:251</div></div>
835 <div class="ttc" id="agroup__usbd__interface__gr_html_structARM__USBD__CAPABILITIES"><div class="ttname"><a href="group__usbd__interface__gr.html#structARM__USBD__CAPABILITIES">ARM_USBD_CAPABILITIES</a></div><div class="ttdoc">USB Device Driver Capabilities.</div><div class="ttdef"><b>Definition:</b> Driver_USBD.h:238</div></div>
836 </div><!-- fragment --> 
837 </div>
838 </div>
839 <a id="ga60b95c9c0c6767ff5938464cfd748f81" name="ga60b95c9c0c6767ff5938464cfd748f81"></a>
840 <h2 class="memtitle"><span class="permalink"><a href="#ga60b95c9c0c6767ff5938464cfd748f81">&#9670;&#160;</a></span>ARM_USBD_Initialize()</h2>
841
842 <div class="memitem">
843 <div class="memproto">
844       <table class="memname">
845         <tr>
846           <td class="memname">int32_t ARM_USBD_Initialize </td>
847           <td>(</td>
848           <td class="paramtype"><a class="el" href="group__usbd__interface__gr.html#ga7c1878799699ddd34cec696da499f7bd">ARM_USBD_SignalDeviceEvent_t</a>&#160;</td>
849           <td class="paramname"><em>cb_device_event</em>, </td>
850         </tr>
851         <tr>
852           <td class="paramkey"></td>
853           <td></td>
854           <td class="paramtype"><a class="el" href="group__usbd__interface__gr.html#gaae754763700fc5059a6bde57ea2d4e2c">ARM_USBD_SignalEndpointEvent_t</a>&#160;</td>
855           <td class="paramname"><em>cb_endpoint_event</em>&#160;</td>
856         </tr>
857         <tr>
858           <td></td>
859           <td>)</td>
860           <td></td><td></td>
861         </tr>
862       </table>
863 </div><div class="memdoc">
864
865 <p>Initialize USB Device Interface. </p>
866 <dl class="params"><dt>Parameters</dt><dd>
867   <table class="params">
868     <tr><td class="paramdir">[in]</td><td class="paramname">cb_device_event</td><td>Pointer to <a class="el" href="group__usbd__interface__gr.html#gafe58a4db1d26b21ca5d418ee49e103a5">ARM_USBD_SignalDeviceEvent</a> </td></tr>
869     <tr><td class="paramdir">[in]</td><td class="paramname">cb_endpoint_event</td><td>Pointer to <a class="el" href="group__usbd__interface__gr.html#ga9aa5bc5cb45084194a77fae1457f6575">ARM_USBD_SignalEndpointEvent</a> </td></tr>
870   </table>
871   </dd>
872 </dl>
873 <dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__execution__status.html">Status Error Codes</a></dd></dl>
874 <p>The function <b>ARM_USBD_Initialize</b> initializes the USB Device interface. It is called when the middleware component starts operation.</p>
875 <p>The function performs the following operations:</p><ul>
876 <li>Initializes the resources needed for the USBD interface.</li>
877 <li>Registers the <a class="el" href="group__usbd__interface__gr.html#gafe58a4db1d26b21ca5d418ee49e103a5">ARM_USBD_SignalDeviceEvent</a> callback function.</li>
878 <li>Registers the <a class="el" href="group__usbd__interface__gr.html#ga9aa5bc5cb45084194a77fae1457f6575">ARM_USBD_SignalEndpointEvent</a> callback function.</li>
879 </ul>
880 <p>The parameter <em>cb_device_event</em> is a pointer to the <a class="el" href="group__usbd__interface__gr.html#gafe58a4db1d26b21ca5d418ee49e103a5">ARM_USBD_SignalDeviceEvent</a> callback function; use a NULL pointer when no device callback signals are required. <br  />
881 The parameter <em>cb_endpoint_event</em> is a pointer to the <a class="el" href="group__usbd__interface__gr.html#ga9aa5bc5cb45084194a77fae1457f6575">ARM_USBD_SignalEndpointEvent</a> callback function.</p>
882 <p><b>Example:</b> </p><ul>
883 <li>see <a class="el" href="group__usbd__interface__gr.html">USB Device Interface</a> - Driver Functions </li>
884 </ul>
885
886 </div>
887 </div>
888 <a id="gafaead6713f141be1734de0110eda966b" name="gafaead6713f141be1734de0110eda966b"></a>
889 <h2 class="memtitle"><span class="permalink"><a href="#gafaead6713f141be1734de0110eda966b">&#9670;&#160;</a></span>ARM_USBD_Uninitialize()</h2>
890
891 <div class="memitem">
892 <div class="memproto">
893       <table class="memname">
894         <tr>
895           <td class="memname">int32_t ARM_USBD_Uninitialize </td>
896           <td>(</td>
897           <td class="paramtype">void&#160;</td>
898           <td class="paramname"></td><td>)</td>
899           <td></td>
900         </tr>
901       </table>
902 </div><div class="memdoc">
903
904 <p>De-initialize USB Device Interface. </p>
905 <dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__execution__status.html">Status Error Codes</a></dd></dl>
906 <p>The function <b>ARM_USBD_Uninitialize</b> de-initializes the resources of USBD interface.</p>
907 <p>It is called when the middleware component stops operation and releases the software resources used by the interface. </p>
908
909 </div>
910 </div>
911 <a id="gaa5bdaac19f6df30c6e569abef17cdb42" name="gaa5bdaac19f6df30c6e569abef17cdb42"></a>
912 <h2 class="memtitle"><span class="permalink"><a href="#gaa5bdaac19f6df30c6e569abef17cdb42">&#9670;&#160;</a></span>ARM_USBD_PowerControl()</h2>
913
914 <div class="memitem">
915 <div class="memproto">
916       <table class="memname">
917         <tr>
918           <td class="memname">int32_t ARM_USBD_PowerControl </td>
919           <td>(</td>
920           <td class="paramtype"><a class="el" href="group__common__drv__gr.html#ga47d6d7c31f88f3b8ae4aaf9d8444afa5">ARM_POWER_STATE</a>&#160;</td>
921           <td class="paramname"><em>state</em></td><td>)</td>
922           <td></td>
923         </tr>
924       </table>
925 </div><div class="memdoc">
926
927 <p>Control USB Device Interface Power. </p>
928 <dl class="params"><dt>Parameters</dt><dd>
929   <table class="params">
930     <tr><td class="paramdir">[in]</td><td class="paramname">state</td><td>Power state </td></tr>
931   </table>
932   </dd>
933 </dl>
934 <dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__execution__status.html">Status Error Codes</a></dd></dl>
935 <p>The function <b>ARM_USBD_PowerControl</b> operates the power modes of the USB Device interface. <br  />
936 </p>
937 <p>The parameter <em>state</em> sets the operation and can have the following values:</p><ul>
938 <li><a class="el" href="Driver__Common_8h.html#ga47d6d7c31f88f3b8ae4aaf9d8444afa5abed52b77a9ce4775570e44a842b1295e">ARM_POWER_FULL</a> : set-up peripheral for data transfers, enable interrupts (NVIC) and optionally DMA. Can be called multiple times. If the peripheral is already in this mode the function performs no operation and returns with <a class="el" href="group__execution__status.html#ga85752c5de59e8adeb001e35ff5be6be7">ARM_DRIVER_OK</a>.</li>
939 <li><a class="el" href="Driver__Common_8h.html#ga47d6d7c31f88f3b8ae4aaf9d8444afa5a9ef9e57cbcc948d0e22314e73dc8c434">ARM_POWER_LOW</a> : may use power saving. Returns <a class="el" href="group__execution__status.html#ga2efa59e480d82697795439220e6884e4">ARM_DRIVER_ERROR_UNSUPPORTED</a> when not implemented.</li>
940 <li><a class="el" href="Driver__Common_8h.html#ga47d6d7c31f88f3b8ae4aaf9d8444afa5ab6f5becc85ebd51c3dd2524a95d2ca35">ARM_POWER_OFF</a> : terminates any pending data transfers, disables peripheral, disables related interrupts and DMA.</li>
941 </ul>
942 <p>Refer to <a class="el" href="theoryOperation.html#CallSequence">Function Call Sequence</a> for more information. </p>
943
944 </div>
945 </div>
946 <a id="ga99207f7ff5e97a7f65754eab7f775fca" name="ga99207f7ff5e97a7f65754eab7f775fca"></a>
947 <h2 class="memtitle"><span class="permalink"><a href="#ga99207f7ff5e97a7f65754eab7f775fca">&#9670;&#160;</a></span>ARM_USBD_DeviceConnect()</h2>
948
949 <div class="memitem">
950 <div class="memproto">
951       <table class="memname">
952         <tr>
953           <td class="memname">int32_t ARM_USBD_DeviceConnect </td>
954           <td>(</td>
955           <td class="paramtype">void&#160;</td>
956           <td class="paramname"></td><td>)</td>
957           <td></td>
958         </tr>
959       </table>
960 </div><div class="memdoc">
961
962 <p>Connect USB Device. </p>
963 <dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__execution__status.html">Status Error Codes</a></dd></dl>
964 <p>The function <b>ARM_USBD_DeviceConnect</b> signals to the host that the device is connected. </p>
965
966 </div>
967 </div>
968 <a id="ga37234abecbb63e4e739f9676e489d2d1" name="ga37234abecbb63e4e739f9676e489d2d1"></a>
969 <h2 class="memtitle"><span class="permalink"><a href="#ga37234abecbb63e4e739f9676e489d2d1">&#9670;&#160;</a></span>ARM_USBD_DeviceDisconnect()</h2>
970
971 <div class="memitem">
972 <div class="memproto">
973       <table class="memname">
974         <tr>
975           <td class="memname">int32_t ARM_USBD_DeviceDisconnect </td>
976           <td>(</td>
977           <td class="paramtype">void&#160;</td>
978           <td class="paramname"></td><td>)</td>
979           <td></td>
980         </tr>
981       </table>
982 </div><div class="memdoc">
983
984 <p>Disconnect USB Device. </p>
985 <dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__execution__status.html">Status Error Codes</a></dd></dl>
986 <p>The function <b>ARM_USBD_DeviceDisconnect</b> signals to the host that the device is disconnected. </p>
987
988 </div>
989 </div>
990 <a id="ga7624d6b2cbe5e6ab5016206ce641eee2" name="ga7624d6b2cbe5e6ab5016206ce641eee2"></a>
991 <h2 class="memtitle"><span class="permalink"><a href="#ga7624d6b2cbe5e6ab5016206ce641eee2">&#9670;&#160;</a></span>ARM_USBD_DeviceGetState()</h2>
992
993 <div class="memitem">
994 <div class="memproto">
995       <table class="memname">
996         <tr>
997           <td class="memname"><a class="el" href="group__usbd__interface__gr.html#structARM__USBD__STATE">ARM_USBD_STATE</a> ARM_USBD_DeviceGetState </td>
998           <td>(</td>
999           <td class="paramtype">void&#160;</td>
1000           <td class="paramname"></td><td>)</td>
1001           <td></td>
1002         </tr>
1003       </table>
1004 </div><div class="memdoc">
1005
1006 <p>Get current USB Device State. </p>
1007 <dl class="section return"><dt>Returns</dt><dd>Device State <a class="el" href="group__usbd__interface__gr.html#structARM__USBD__STATE">ARM_USBD_STATE</a></dd></dl>
1008 <p>Retrieves the current USB device state. </p>
1009
1010 </div>
1011 </div>
1012 <a id="ga7e149a4c6a0196da24a44f4fada75fb1" name="ga7e149a4c6a0196da24a44f4fada75fb1"></a>
1013 <h2 class="memtitle"><span class="permalink"><a href="#ga7e149a4c6a0196da24a44f4fada75fb1">&#9670;&#160;</a></span>ARM_USBD_DeviceRemoteWakeup()</h2>
1014
1015 <div class="memitem">
1016 <div class="memproto">
1017       <table class="memname">
1018         <tr>
1019           <td class="memname">int32_t ARM_USBD_DeviceRemoteWakeup </td>
1020           <td>(</td>
1021           <td class="paramtype">void&#160;</td>
1022           <td class="paramname"></td><td>)</td>
1023           <td></td>
1024         </tr>
1025       </table>
1026 </div><div class="memdoc">
1027
1028 <p>Trigger USB Remote Wakeup. </p>
1029 <dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__execution__status.html">Status Error Codes</a></dd></dl>
1030 <p>The function <b>ARM_USBD_DeviceRemoteWakeup</b> signals remote wakeup to the host. </p>
1031
1032 </div>
1033 </div>
1034 <a id="gae66f696584e25fb2ddabe9070fa38670" name="gae66f696584e25fb2ddabe9070fa38670"></a>
1035 <h2 class="memtitle"><span class="permalink"><a href="#gae66f696584e25fb2ddabe9070fa38670">&#9670;&#160;</a></span>ARM_USBD_DeviceSetAddress()</h2>
1036
1037 <div class="memitem">
1038 <div class="memproto">
1039       <table class="memname">
1040         <tr>
1041           <td class="memname">int32_t ARM_USBD_DeviceSetAddress </td>
1042           <td>(</td>
1043           <td class="paramtype">uint8_t&#160;</td>
1044           <td class="paramname"><em>dev_addr</em></td><td>)</td>
1045           <td></td>
1046         </tr>
1047       </table>
1048 </div><div class="memdoc">
1049
1050 <p>Set USB Device Address. </p>
1051 <dl class="params"><dt>Parameters</dt><dd>
1052   <table class="params">
1053     <tr><td class="paramdir">[in]</td><td class="paramname">dev_addr</td><td>Device Address </td></tr>
1054   </table>
1055   </dd>
1056 </dl>
1057 <dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__execution__status.html">Status Error Codes</a></dd></dl>
1058 <p>Assigns an address to the device. </p><dl class="section note"><dt>Note</dt><dd>This function is called after status stage of the Set Address request (after IN packet in status stage was sent with the old address). </dd></dl>
1059
1060 </div>
1061 </div>
1062 <a id="ga6bc0ebf699a0f28330f21cab83f85e9e" name="ga6bc0ebf699a0f28330f21cab83f85e9e"></a>
1063 <h2 class="memtitle"><span class="permalink"><a href="#ga6bc0ebf699a0f28330f21cab83f85e9e">&#9670;&#160;</a></span>ARM_USBD_ReadSetupPacket()</h2>
1064
1065 <div class="memitem">
1066 <div class="memproto">
1067       <table class="memname">
1068         <tr>
1069           <td class="memname">int32_t ARM_USBD_ReadSetupPacket </td>
1070           <td>(</td>
1071           <td class="paramtype">uint8_t *&#160;</td>
1072           <td class="paramname"><em>setup</em></td><td>)</td>
1073           <td></td>
1074         </tr>
1075       </table>
1076 </div><div class="memdoc">
1077
1078 <p>Read setup packet received over Control Endpoint. </p>
1079 <dl class="params"><dt>Parameters</dt><dd>
1080   <table class="params">
1081     <tr><td class="paramdir">[out]</td><td class="paramname">setup</td><td>Pointer to buffer for setup packet </td></tr>
1082   </table>
1083   </dd>
1084 </dl>
1085 <dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__execution__status.html">Status Error Codes</a></dd></dl>
1086 <p>The function <b>ARM_USBD_ReadSetupPacket</b> reads the last SETUP packet (8 bytes) that was received over Control Endpoint (Endpoint 0) which is indicated by <a class="el" href="group__USBD__ep__events.html#gaa0814f6880f4c0ac302ac9ebc8170739">ARM_USBD_EVENT_SETUP</a> event.</p>
1087 <p><b>See also:</b></p><ul>
1088 <li><a class="el" href="group__usbd__interface__gr.html#ga9aa5bc5cb45084194a77fae1457f6575">ARM_USBD_SignalEndpointEvent</a> </li>
1089 </ul>
1090
1091 </div>
1092 </div>
1093 <a id="ga62d7d5bdcf9ca7bf7e6d8434368abad8" name="ga62d7d5bdcf9ca7bf7e6d8434368abad8"></a>
1094 <h2 class="memtitle"><span class="permalink"><a href="#ga62d7d5bdcf9ca7bf7e6d8434368abad8">&#9670;&#160;</a></span>ARM_USBD_EndpointConfigure()</h2>
1095
1096 <div class="memitem">
1097 <div class="memproto">
1098       <table class="memname">
1099         <tr>
1100           <td class="memname">int32_t ARM_USBD_EndpointConfigure </td>
1101           <td>(</td>
1102           <td class="paramtype">uint8_t&#160;</td>
1103           <td class="paramname"><em>ep_addr</em>, </td>
1104         </tr>
1105         <tr>
1106           <td class="paramkey"></td>
1107           <td></td>
1108           <td class="paramtype">uint8_t&#160;</td>
1109           <td class="paramname"><em>ep_type</em>, </td>
1110         </tr>
1111         <tr>
1112           <td class="paramkey"></td>
1113           <td></td>
1114           <td class="paramtype">uint16_t&#160;</td>
1115           <td class="paramname"><em>ep_max_packet_size</em>&#160;</td>
1116         </tr>
1117         <tr>
1118           <td></td>
1119           <td>)</td>
1120           <td></td><td></td>
1121         </tr>
1122       </table>
1123 </div><div class="memdoc">
1124
1125 <p>Configure USB Endpoint. </p>
1126 <dl class="params"><dt>Parameters</dt><dd>
1127   <table class="params">
1128     <tr><td class="paramdir">[in]</td><td class="paramname">ep_addr</td><td>Endpoint Address<ul>
1129 <li>ep_addr.0..3: Address</li>
1130 <li>ep_addr.7: Direction </li>
1131 </ul>
1132 </td></tr>
1133     <tr><td class="paramdir">[in]</td><td class="paramname">ep_type</td><td>Endpoint Type (ARM_USB_ENDPOINT_xxx) </td></tr>
1134     <tr><td class="paramdir">[in]</td><td class="paramname">ep_max_packet_size</td><td>Endpoint Maximum Packet Size </td></tr>
1135   </table>
1136   </dd>
1137 </dl>
1138 <dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__execution__status.html">Status Error Codes</a></dd></dl>
1139 <p><br  />
1140  The function <b>ARM_USBD_EndpointConfigure</b> configures an endpoint for transfers. </p>
1141
1142 </div>
1143 </div>
1144 <a id="gaca913df5188dc0f0c4f707b57c2a88fc" name="gaca913df5188dc0f0c4f707b57c2a88fc"></a>
1145 <h2 class="memtitle"><span class="permalink"><a href="#gaca913df5188dc0f0c4f707b57c2a88fc">&#9670;&#160;</a></span>ARM_USBD_EndpointUnconfigure()</h2>
1146
1147 <div class="memitem">
1148 <div class="memproto">
1149       <table class="memname">
1150         <tr>
1151           <td class="memname">int32_t ARM_USBD_EndpointUnconfigure </td>
1152           <td>(</td>
1153           <td class="paramtype">uint8_t&#160;</td>
1154           <td class="paramname"><em>ep_addr</em></td><td>)</td>
1155           <td></td>
1156         </tr>
1157       </table>
1158 </div><div class="memdoc">
1159
1160 <p>Unconfigure USB Endpoint. </p>
1161 <dl class="params"><dt>Parameters</dt><dd>
1162   <table class="params">
1163     <tr><td class="paramdir">[in]</td><td class="paramname">ep_addr</td><td>Endpoint Address<ul>
1164 <li>ep_addr.0..3: Address</li>
1165 <li>ep_addr.7: Direction </li>
1166 </ul>
1167 </td></tr>
1168   </table>
1169   </dd>
1170 </dl>
1171 <dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__execution__status.html">Status Error Codes</a></dd></dl>
1172 <p>The function <b>ARM_USBD_EndpointUnconfigure</b> de-configures the specified endpoint.</p>
1173 <p>The parameter <em>ep_addr</em> specifies the endpoint address. </p>
1174
1175 </div>
1176 </div>
1177 <a id="ga9502cd7b8e4c583920fccadc4ccf7975" name="ga9502cd7b8e4c583920fccadc4ccf7975"></a>
1178 <h2 class="memtitle"><span class="permalink"><a href="#ga9502cd7b8e4c583920fccadc4ccf7975">&#9670;&#160;</a></span>ARM_USBD_EndpointStall()</h2>
1179
1180 <div class="memitem">
1181 <div class="memproto">
1182       <table class="memname">
1183         <tr>
1184           <td class="memname">int32_t ARM_USBD_EndpointStall </td>
1185           <td>(</td>
1186           <td class="paramtype">uint8_t&#160;</td>
1187           <td class="paramname"><em>ep_addr</em>, </td>
1188         </tr>
1189         <tr>
1190           <td class="paramkey"></td>
1191           <td></td>
1192           <td class="paramtype">bool&#160;</td>
1193           <td class="paramname"><em>stall</em>&#160;</td>
1194         </tr>
1195         <tr>
1196           <td></td>
1197           <td>)</td>
1198           <td></td><td></td>
1199         </tr>
1200       </table>
1201 </div><div class="memdoc">
1202
1203 <p>Set/Clear Stall for USB Endpoint. </p>
1204 <dl class="params"><dt>Parameters</dt><dd>
1205   <table class="params">
1206     <tr><td class="paramdir">[in]</td><td class="paramname">ep_addr</td><td>Endpoint Address<ul>
1207 <li>ep_addr.0..3: Address</li>
1208 <li>ep_addr.7: Direction </li>
1209 </ul>
1210 </td></tr>
1211     <tr><td class="paramdir">[in]</td><td class="paramname">stall</td><td>Operation<ul>
1212 <li><b>false</b> Clear</li>
1213 <li><b>true</b> Set </li>
1214 </ul>
1215 </td></tr>
1216   </table>
1217   </dd>
1218 </dl>
1219 <dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__execution__status.html">Status Error Codes</a></dd></dl>
1220 <p>The function <b>ARM_USBD_EndpointStall</b> sets or clears stall condition for the specified endpoint.</p>
1221 <p>The parameter <em>ep_addr</em> specifies the endpoint address. <br  />
1222 The parameter <em>stall</em> is a boolean parameter. </p>
1223
1224 </div>
1225 </div>
1226 <a id="ga6e69ad097553125bb01a22dc719e0d30" name="ga6e69ad097553125bb01a22dc719e0d30"></a>
1227 <h2 class="memtitle"><span class="permalink"><a href="#ga6e69ad097553125bb01a22dc719e0d30">&#9670;&#160;</a></span>ARM_USBD_EndpointTransfer()</h2>
1228
1229 <div class="memitem">
1230 <div class="memproto">
1231       <table class="memname">
1232         <tr>
1233           <td class="memname">int32_t ARM_USBD_EndpointTransfer </td>
1234           <td>(</td>
1235           <td class="paramtype">uint8_t&#160;</td>
1236           <td class="paramname"><em>ep_addr</em>, </td>
1237         </tr>
1238         <tr>
1239           <td class="paramkey"></td>
1240           <td></td>
1241           <td class="paramtype">uint8_t *&#160;</td>
1242           <td class="paramname"><em>data</em>, </td>
1243         </tr>
1244         <tr>
1245           <td class="paramkey"></td>
1246           <td></td>
1247           <td class="paramtype">uint32_t&#160;</td>
1248           <td class="paramname"><em>num</em>&#160;</td>
1249         </tr>
1250         <tr>
1251           <td></td>
1252           <td>)</td>
1253           <td></td><td></td>
1254         </tr>
1255       </table>
1256 </div><div class="memdoc">
1257
1258 <p>Read data from or Write data to USB Endpoint. </p>
1259 <dl class="params"><dt>Parameters</dt><dd>
1260   <table class="params">
1261     <tr><td class="paramdir">[in]</td><td class="paramname">ep_addr</td><td>Endpoint Address<ul>
1262 <li>ep_addr.0..3: Address</li>
1263 <li>ep_addr.7: Direction </li>
1264 </ul>
1265 </td></tr>
1266     <tr><td class="paramdir">[out]</td><td class="paramname">data</td><td>Pointer to buffer for data to read or with data to write </td></tr>
1267     <tr><td class="paramdir">[in]</td><td class="paramname">num</td><td>Number of data bytes to transfer </td></tr>
1268   </table>
1269   </dd>
1270 </dl>
1271 <dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__execution__status.html">Status Error Codes</a></dd></dl>
1272 <p>The function <b>ARM_USBD_EndpointTransfer</b> reads from or writes data to an USB Endpoint.</p>
1273 <p>The parameter <em>ep_addr</em> specifies the endpoint address. <br  />
1274 The parameter <em>data</em> is a buffer for data to read or data to write. <br  />
1275 The parameter <em>num</em> is the number of bytes to transfer (must be multiple of endpoint maximum packet size for Read transfers).</p>
1276 <p>The function is non-blocking and returns as soon as the driver starts the operation on the specified endpoint. During the operation it is not allowed to call this function again on the same endpoint. Also the data buffer must stay allocated and the contents of data must not be modified.</p>
1277 <p>Direction in the endpoint address specifies the type of transfer:</p><ul>
1278 <li>Endpoint Read for OUT endpoint (direction = 0)</li>
1279 <li>Endpoint Write for IN endpoint (direction = 1)</li>
1280 </ul>
1281 <p>Endpoint Read is finished when the requested number of data bytes have been received or when a short packet or ZLP (Zero-Length Packet) has been received. Completion of operation is indicated by <a class="el" href="group__USBD__ep__events.html#ga35f7340508acb5fe7a5f43bbcac1887a">ARM_USBD_EVENT_OUT</a> event. Number of successfully received data bytes can be retrieved by calling <a class="el" href="group__usbd__interface__gr.html#gab81fac01522a4d504edcb7b7d3abba6c">ARM_USBD_EndpointTransferGetResult</a>.</p>
1282 <p>Endpoint Write is finished when the requested number of data bytes have been sent. Completion of operation is indicated by <a class="el" href="group__USBD__ep__events.html#ga375d3d8f363a056ff607c5ab3b92a864">ARM_USBD_EVENT_IN</a> event. Number of successfully sent data bytes can be retrieved by calling <a class="el" href="group__usbd__interface__gr.html#gab81fac01522a4d504edcb7b7d3abba6c">ARM_USBD_EndpointTransferGetResult</a>.</p>
1283 <p>Transfer operation can be aborted by calling <a class="el" href="group__usbd__interface__gr.html#ga7cf3bcc105dbb8cbdc915e8caca8529e">ARM_USBD_EndpointTransferAbort</a>. </p>
1284
1285 </div>
1286 </div>
1287 <a id="gab81fac01522a4d504edcb7b7d3abba6c" name="gab81fac01522a4d504edcb7b7d3abba6c"></a>
1288 <h2 class="memtitle"><span class="permalink"><a href="#gab81fac01522a4d504edcb7b7d3abba6c">&#9670;&#160;</a></span>ARM_USBD_EndpointTransferGetResult()</h2>
1289
1290 <div class="memitem">
1291 <div class="memproto">
1292       <table class="memname">
1293         <tr>
1294           <td class="memname">uint32_t ARM_USBD_EndpointTransferGetResult </td>
1295           <td>(</td>
1296           <td class="paramtype">uint8_t&#160;</td>
1297           <td class="paramname"><em>ep_addr</em></td><td>)</td>
1298           <td></td>
1299         </tr>
1300       </table>
1301 </div><div class="memdoc">
1302
1303 <p>Get result of USB Endpoint transfer. </p>
1304 <dl class="params"><dt>Parameters</dt><dd>
1305   <table class="params">
1306     <tr><td class="paramdir">[in]</td><td class="paramname">ep_addr</td><td>Endpoint Address<ul>
1307 <li>ep_addr.0..3: Address</li>
1308 <li>ep_addr.7: Direction </li>
1309 </ul>
1310 </td></tr>
1311   </table>
1312   </dd>
1313 </dl>
1314 <dl class="section return"><dt>Returns</dt><dd>number of successfully transferred data bytes</dd></dl>
1315 <p>The function <b>ARM_USBD_EndpointTransferGetResult</b> returns the number of successfully transferred data bytes started by <a class="el" href="group__usbd__interface__gr.html#ga6e69ad097553125bb01a22dc719e0d30">ARM_USBD_EndpointTransfer</a>.</p>
1316 <p>The parameter <em>ep_addr</em> specifies the endpoint address. </p>
1317
1318 </div>
1319 </div>
1320 <a id="ga7cf3bcc105dbb8cbdc915e8caca8529e" name="ga7cf3bcc105dbb8cbdc915e8caca8529e"></a>
1321 <h2 class="memtitle"><span class="permalink"><a href="#ga7cf3bcc105dbb8cbdc915e8caca8529e">&#9670;&#160;</a></span>ARM_USBD_EndpointTransferAbort()</h2>
1322
1323 <div class="memitem">
1324 <div class="memproto">
1325       <table class="memname">
1326         <tr>
1327           <td class="memname">int32_t ARM_USBD_EndpointTransferAbort </td>
1328           <td>(</td>
1329           <td class="paramtype">uint8_t&#160;</td>
1330           <td class="paramname"><em>ep_addr</em></td><td>)</td>
1331           <td></td>
1332         </tr>
1333       </table>
1334 </div><div class="memdoc">
1335
1336 <p>Abort current USB Endpoint transfer. </p>
1337 <dl class="params"><dt>Parameters</dt><dd>
1338   <table class="params">
1339     <tr><td class="paramdir">[in]</td><td class="paramname">ep_addr</td><td>Endpoint Address<ul>
1340 <li>ep_addr.0..3: Address</li>
1341 <li>ep_addr.7: Direction </li>
1342 </ul>
1343 </td></tr>
1344   </table>
1345   </dd>
1346 </dl>
1347 <dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__execution__status.html">Status Error Codes</a></dd></dl>
1348 <p>The function <b>ARM_USBD_EndpointTransferAbort</b> aborts the transfer to an endpoint started by <a class="el" href="group__usbd__interface__gr.html#ga6e69ad097553125bb01a22dc719e0d30">ARM_USBD_EndpointTransfer</a>.</p>
1349 <p>The parameter <em>ep_addr</em> specifies the endpoint address. </p>
1350
1351 </div>
1352 </div>
1353 <a id="ga4cd050b8343407fe465a27ad1cb7c264" name="ga4cd050b8343407fe465a27ad1cb7c264"></a>
1354 <h2 class="memtitle"><span class="permalink"><a href="#ga4cd050b8343407fe465a27ad1cb7c264">&#9670;&#160;</a></span>ARM_USBD_GetFrameNumber()</h2>
1355
1356 <div class="memitem">
1357 <div class="memproto">
1358       <table class="memname">
1359         <tr>
1360           <td class="memname">uint16_t ARM_USBD_GetFrameNumber </td>
1361           <td>(</td>
1362           <td class="paramtype">void&#160;</td>
1363           <td class="paramname"></td><td>)</td>
1364           <td></td>
1365         </tr>
1366       </table>
1367 </div><div class="memdoc">
1368
1369 <p>Get current USB Frame Number. </p>
1370 <dl class="section return"><dt>Returns</dt><dd>Frame Number</dd></dl>
1371 <p>Retrieves the sequential 11-bit frame number of the last Start of Frame (SOF) packet. </p>
1372
1373 </div>
1374 </div>
1375 <a id="gafe58a4db1d26b21ca5d418ee49e103a5" name="gafe58a4db1d26b21ca5d418ee49e103a5"></a>
1376 <h2 class="memtitle"><span class="permalink"><a href="#gafe58a4db1d26b21ca5d418ee49e103a5">&#9670;&#160;</a></span>ARM_USBD_SignalDeviceEvent()</h2>
1377
1378 <div class="memitem">
1379 <div class="memproto">
1380       <table class="memname">
1381         <tr>
1382           <td class="memname">void ARM_USBD_SignalDeviceEvent </td>
1383           <td>(</td>
1384           <td class="paramtype">uint32_t&#160;</td>
1385           <td class="paramname"><em>event</em></td><td>)</td>
1386           <td></td>
1387         </tr>
1388       </table>
1389 </div><div class="memdoc">
1390
1391 <p>Signal USB Device Event. </p>
1392 <dl class="params"><dt>Parameters</dt><dd>
1393   <table class="params">
1394     <tr><td class="paramdir">[in]</td><td class="paramname">event</td><td><a class="el" href="group__USBD__dev__events.html">USBD Device Events</a> </td></tr>
1395   </table>
1396   </dd>
1397 </dl>
1398 <dl class="section return"><dt>Returns</dt><dd>none</dd></dl>
1399 <p>The function <b>ARM_USBD_SignalDeviceEvent</b> is a callback function registered by the function <a class="el" href="group__usbd__interface__gr.html#ga60b95c9c0c6767ff5938464cfd748f81">ARM_USBD_Initialize</a>.</p>
1400 <p>The parameter <em>event</em> indicates one or more events that occurred during driver operation. Each event is encoded in a separate bit and therefore it is possible to signal multiple events within the same call.</p>
1401 <p>Not every event is necessarily generated by the driver. This depends on the implemented capabilities stored in the data fields of the structure <a class="el" href="group__usbd__interface__gr.html#structARM__USBD__CAPABILITIES">ARM_USBD_CAPABILITIES</a>, which can be retrieved with the function <a class="el" href="group__usbd__interface__gr.html#ga178d01ab7896e1c675b90bbccfe8ea7d">ARM_USBD_GetCapabilities</a>.</p>
1402 <p>The following events can be generated:</p>
1403 <table class="markdownTable">
1404 <tr class="markdownTableHead">
1405 <th class="markdownTableHeadLeft">Event   </th><th class="markdownTableHeadRight">Bit   </th><th class="markdownTableHeadLeft">Description   </th><th class="markdownTableHeadNone">supported when <a class="el" href="group__usbd__interface__gr.html#structARM__USBD__CAPABILITIES">ARM_USBD_CAPABILITIES</a>    </th></tr>
1406 <tr class="markdownTableRowOdd">
1407 <td class="markdownTableBodyLeft"><a class="el" href="group__USBD__dev__events.html#ga32546413cfe55154351f74fb56de1045">ARM_USBD_EVENT_VBUS_ON</a>   </td><td class="markdownTableBodyRight">0   </td><td class="markdownTableBodyLeft">Occurs when valid VBUS voltage is detected.   </td><td class="markdownTableBodyNone">data field <em>event_vbus_on</em> = <span class="XML-Token">1</span>    </td></tr>
1408 <tr class="markdownTableRowEven">
1409 <td class="markdownTableBodyLeft"><a class="el" href="group__USBD__dev__events.html#ga6810c08a6e6a46ba443899e5ba9c3aec">ARM_USBD_EVENT_VBUS_OFF</a>   </td><td class="markdownTableBodyRight">1   </td><td class="markdownTableBodyLeft">Occurs when VBUS voltage is turned off.   </td><td class="markdownTableBodyNone">data field <em>event_vbus_off</em> = <span class="XML-Token">1</span>    </td></tr>
1410 <tr class="markdownTableRowOdd">
1411 <td class="markdownTableBodyLeft"><a class="el" href="group__USBD__dev__events.html#ga489e1b88f7b0361494ca3a8dc73c227a">ARM_USBD_EVENT_RESET</a>   </td><td class="markdownTableBodyRight">2   </td><td class="markdownTableBodyLeft">Occurs when USB Reset is detected.   </td><td class="markdownTableBodyNone"><em>always supported</em>    </td></tr>
1412 <tr class="markdownTableRowEven">
1413 <td class="markdownTableBodyLeft"><a class="el" href="group__USBD__dev__events.html#ga689d1e031013d0e66aeef4243490d843">ARM_USBD_EVENT_HIGH_SPEED</a>   </td><td class="markdownTableBodyRight">3   </td><td class="markdownTableBodyLeft">Occurs when USB Device is switched to High-speed.   </td><td class="markdownTableBodyNone"><em>always supported</em>    </td></tr>
1414 <tr class="markdownTableRowOdd">
1415 <td class="markdownTableBodyLeft"><a class="el" href="group__USBD__dev__events.html#ga74dc7c0ba71baf285400d5a555224653">ARM_USBD_EVENT_SUSPEND</a>   </td><td class="markdownTableBodyRight">4   </td><td class="markdownTableBodyLeft">Occurs when USB Suspend is detected.   </td><td class="markdownTableBodyNone"><em>always supported</em>    </td></tr>
1416 <tr class="markdownTableRowEven">
1417 <td class="markdownTableBodyLeft"><a class="el" href="group__USBD__dev__events.html#ga5b1c9884b237ba7778f79761e5db9f45">ARM_USBD_EVENT_RESUME</a>   </td><td class="markdownTableBodyRight">5   </td><td class="markdownTableBodyLeft">Occurs when USB Resume is detected.   </td><td class="markdownTableBodyNone"><em>always supported</em>   </td></tr>
1418 </table>
1419
1420 </div>
1421 </div>
1422 <a id="ga9aa5bc5cb45084194a77fae1457f6575" name="ga9aa5bc5cb45084194a77fae1457f6575"></a>
1423 <h2 class="memtitle"><span class="permalink"><a href="#ga9aa5bc5cb45084194a77fae1457f6575">&#9670;&#160;</a></span>ARM_USBD_SignalEndpointEvent()</h2>
1424
1425 <div class="memitem">
1426 <div class="memproto">
1427       <table class="memname">
1428         <tr>
1429           <td class="memname">void ARM_USBD_SignalEndpointEvent </td>
1430           <td>(</td>
1431           <td class="paramtype">uint8_t&#160;</td>
1432           <td class="paramname"><em>ep_addr</em>, </td>
1433         </tr>
1434         <tr>
1435           <td class="paramkey"></td>
1436           <td></td>
1437           <td class="paramtype">uint32_t&#160;</td>
1438           <td class="paramname"><em>event</em>&#160;</td>
1439         </tr>
1440         <tr>
1441           <td></td>
1442           <td>)</td>
1443           <td></td><td></td>
1444         </tr>
1445       </table>
1446 </div><div class="memdoc">
1447
1448 <p>Signal USB Endpoint Event. </p>
1449 <dl class="params"><dt>Parameters</dt><dd>
1450   <table class="params">
1451     <tr><td class="paramdir">[in]</td><td class="paramname">ep_addr</td><td>Endpoint Address<ul>
1452 <li>ep_addr.0..3: Address</li>
1453 <li>ep_addr.7: Direction </li>
1454 </ul>
1455 </td></tr>
1456     <tr><td class="paramdir">[in]</td><td class="paramname">event</td><td><a class="el" href="group__USBD__ep__events.html">USBD Endpoint Events</a> </td></tr>
1457   </table>
1458   </dd>
1459 </dl>
1460 <dl class="section return"><dt>Returns</dt><dd>none</dd></dl>
1461 <p>The function <b>ARM_USBD_SignalEndpointEvent</b> is a callback function registered by the function <a class="el" href="group__usbd__interface__gr.html#ga60b95c9c0c6767ff5938464cfd748f81">ARM_USBD_Initialize</a>.</p>
1462 <p>The argument <em>ep_addr</em> specifies the endpoint. <br  />
1463 The parameter <em>event</em> indicates one or more events that occurred during driver operation. Each event is encoded in a separate bit and therefore it is possible to signal multiple events within the same call.</p>
1464 <p>The following events can be generated:</p>
1465 <table class="markdownTable">
1466 <tr class="markdownTableHead">
1467 <th class="markdownTableHeadLeft">Event   </th><th class="markdownTableHeadRight">Bit   </th><th class="markdownTableHeadLeft">Description    </th></tr>
1468 <tr class="markdownTableRowOdd">
1469 <td class="markdownTableBodyLeft"><a class="el" href="group__USBD__ep__events.html#gaa0814f6880f4c0ac302ac9ebc8170739">ARM_USBD_EVENT_SETUP</a>   </td><td class="markdownTableBodyRight">0   </td><td class="markdownTableBodyLeft">Occurs when SETUP packet is received over Control Endpoint.    </td></tr>
1470 <tr class="markdownTableRowEven">
1471 <td class="markdownTableBodyLeft"><a class="el" href="group__USBD__ep__events.html#ga35f7340508acb5fe7a5f43bbcac1887a">ARM_USBD_EVENT_OUT</a>   </td><td class="markdownTableBodyRight">1   </td><td class="markdownTableBodyLeft">Occurs when data is received over OUT Endpoint.    </td></tr>
1472 <tr class="markdownTableRowOdd">
1473 <td class="markdownTableBodyLeft"><a class="el" href="group__USBD__ep__events.html#ga375d3d8f363a056ff607c5ab3b92a864">ARM_USBD_EVENT_IN</a>   </td><td class="markdownTableBodyRight">2   </td><td class="markdownTableBodyLeft">Occurs when data is sent over IN Endpoint.   </td></tr>
1474 </table>
1475
1476 </div>
1477 </div>
1478 </div><!-- contents -->
1479 </div><!-- doc-content -->
1480 <!-- start footer part -->
1481 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
1482   <ul>
1483     <li class="footer">
1484       <script type="text/javascript">
1485         <!--
1486         writeFooter.call(this);
1487         //-->
1488       </script> 
1489     </li>
1490   </ul>
1491 </div>
1492 </body>
1493 </html>