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