Files
discoverpixy/group___s_a_i.html
2015-05-12 11:12:43 +02:00

1270 lines
67 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>discoverpixy: SAI</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">discoverpixy
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#groups">Modules</a> &#124;
<a href="#nested-classes">Classes</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">SAI<div class="ingroups"><a class="el" href="group___s_t_m32_f4xx___std_periph___driver.html">STM32F4xx_StdPeriph_Driver</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>SAI driver modules.
<a href="#details">More...</a></p>
<div class="dynheader">
Collaboration diagram for SAI:</div>
<div class="dyncontent">
<center><table><tr><td><img src="group___s_a_i.png" border="0" alt="" usemap="#group______s__a__i"/>
<map name="group______s__a__i" id="group______s__a__i">
<area shape="rect" id="node2" href="group___s_a_i___exported___constants.html" title="SAI_Exported_Constants" alt="" coords="300,5,468,32"/><area shape="rect" id="node4" href="group___s_a_i___private___functions.html" title="SAI_Private_Functions" alt="" coords="307,56,461,83"/><area shape="rect" id="node3" href="group___s_t_m32_f4xx___std_periph___driver.html" title="STM32F4xx_StdPeriph\l_Driver" alt="" coords="5,23,161,65"/></map>
</td></tr></table></center>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
Modules</h2></td></tr>
<tr class="memitem:group___s_a_i___exported___constants"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_a_i___exported___constants.html">SAI_Exported_Constants</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group___s_a_i___private___functions"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_a_i___private___functions.html">SAI_Private_Functions</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_s_a_i___init_type_def.html">SAI_InitTypeDef</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">SAI <a class="el" href="struct_block.html">Block</a> Init structure definition. <a href="struct_s_a_i___init_type_def.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_s_a_i___frame_init_type_def.html">SAI_FrameInitTypeDef</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">SAI <a class="el" href="struct_block.html">Block</a> Frame Init structure definition. <a href="struct_s_a_i___frame_init_type_def.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_s_a_i___slot_init_type_def.html">SAI_SlotInitTypeDef</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">SAI <a class="el" href="struct_block.html">Block</a> Slot Init Structure definition. <a href="struct_s_a_i___slot_init_type_def.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga8d425258898b4af4ebc820f52635fad8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8d425258898b4af4ebc820f52635fad8"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>CR1_CLEAR_MASK</b>&#160;&#160;&#160;((uint32_t)0xFF07C010)</td></tr>
<tr class="separator:ga8d425258898b4af4ebc820f52635fad8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5faf6cf5d2301a9a983aa7eceb47bb87"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5faf6cf5d2301a9a983aa7eceb47bb87"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FRCR_CLEAR_MASK</b>&#160;&#160;&#160;((uint32_t)0xFFF88000)</td></tr>
<tr class="separator:ga5faf6cf5d2301a9a983aa7eceb47bb87"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacb66fbd819193484edca3f37d4dd085c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gacb66fbd819193484edca3f37d4dd085c"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>SLOTR_CLEAR_MASK</b>&#160;&#160;&#160;((uint32_t)0x0000F020)</td></tr>
<tr class="separator:gacb66fbd819193484edca3f37d4dd085c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gadcef52be2d2792a70f67b6e7872b334e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_a_i.html#gadcef52be2d2792a70f67b6e7872b334e">SAI_DeInit</a> (<a class="el" href="struct_s_a_i___type_def.html">SAI_TypeDef</a> *SAIx)</td></tr>
<tr class="memdesc:gadcef52be2d2792a70f67b6e7872b334e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deinitialize the SAIx peripheral registers to their default reset values. <a href="#gadcef52be2d2792a70f67b6e7872b334e">More...</a><br /></td></tr>
<tr class="separator:gadcef52be2d2792a70f67b6e7872b334e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga691f0efcdbf335df101c52bacb22c0c8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_a_i.html#ga691f0efcdbf335df101c52bacb22c0c8">SAI_Init</a> (<a class="el" href="struct_s_a_i___block___type_def.html">SAI_Block_TypeDef</a> *SAI_Block_x, <a class="el" href="struct_s_a_i___init_type_def.html">SAI_InitTypeDef</a> *SAI_InitStruct)</td></tr>
<tr class="memdesc:ga691f0efcdbf335df101c52bacb22c0c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the SAI <a class="el" href="struct_block.html">Block</a> x peripheral according to the specified parameters in the SAI_InitStruct. <a href="#ga691f0efcdbf335df101c52bacb22c0c8">More...</a><br /></td></tr>
<tr class="separator:ga691f0efcdbf335df101c52bacb22c0c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6aa8c14b58a574974e43ab98e1d17713"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_a_i.html#ga6aa8c14b58a574974e43ab98e1d17713">SAI_FrameInit</a> (<a class="el" href="struct_s_a_i___block___type_def.html">SAI_Block_TypeDef</a> *SAI_Block_x, <a class="el" href="struct_s_a_i___frame_init_type_def.html">SAI_FrameInitTypeDef</a> *SAI_FrameInitStruct)</td></tr>
<tr class="memdesc:ga6aa8c14b58a574974e43ab98e1d17713"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the SAI <a class="el" href="struct_block.html">Block</a> Audio frame according to the specified parameters in the SAI_FrameInitStruct. <a href="#ga6aa8c14b58a574974e43ab98e1d17713">More...</a><br /></td></tr>
<tr class="separator:ga6aa8c14b58a574974e43ab98e1d17713"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac8d5348bb79f75884e52866883891e95"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_a_i.html#gac8d5348bb79f75884e52866883891e95">SAI_SlotInit</a> (<a class="el" href="struct_s_a_i___block___type_def.html">SAI_Block_TypeDef</a> *SAI_Block_x, <a class="el" href="struct_s_a_i___slot_init_type_def.html">SAI_SlotInitTypeDef</a> *SAI_SlotInitStruct)</td></tr>
<tr class="memdesc:gac8d5348bb79f75884e52866883891e95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the SAI <a class="el" href="struct_block.html">Block</a> audio Slot according to the specified parameters in the SAI_SlotInitStruct. <a href="#gac8d5348bb79f75884e52866883891e95">More...</a><br /></td></tr>
<tr class="separator:gac8d5348bb79f75884e52866883891e95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6b7ca40703634d2e3bf5c00201006a94"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_a_i.html#ga6b7ca40703634d2e3bf5c00201006a94">SAI_StructInit</a> (<a class="el" href="struct_s_a_i___init_type_def.html">SAI_InitTypeDef</a> *SAI_InitStruct)</td></tr>
<tr class="memdesc:ga6b7ca40703634d2e3bf5c00201006a94"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fills each SAI_InitStruct member with its default value. <a href="#ga6b7ca40703634d2e3bf5c00201006a94">More...</a><br /></td></tr>
<tr class="separator:ga6b7ca40703634d2e3bf5c00201006a94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaff2daf4640fb7204fc9eabeda8a6d381"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_a_i.html#gaff2daf4640fb7204fc9eabeda8a6d381">SAI_FrameStructInit</a> (<a class="el" href="struct_s_a_i___frame_init_type_def.html">SAI_FrameInitTypeDef</a> *SAI_FrameInitStruct)</td></tr>
<tr class="memdesc:gaff2daf4640fb7204fc9eabeda8a6d381"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fills each SAI_FrameInitStruct member with its default value. <a href="#gaff2daf4640fb7204fc9eabeda8a6d381">More...</a><br /></td></tr>
<tr class="separator:gaff2daf4640fb7204fc9eabeda8a6d381"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0a86dde0514e7e8d0fd11b327b304e81"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_a_i.html#ga0a86dde0514e7e8d0fd11b327b304e81">SAI_SlotStructInit</a> (<a class="el" href="struct_s_a_i___slot_init_type_def.html">SAI_SlotInitTypeDef</a> *SAI_SlotInitStruct)</td></tr>
<tr class="memdesc:ga0a86dde0514e7e8d0fd11b327b304e81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fills each SAI_SlotInitStruct member with its default value. <a href="#ga0a86dde0514e7e8d0fd11b327b304e81">More...</a><br /></td></tr>
<tr class="separator:ga0a86dde0514e7e8d0fd11b327b304e81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaac565e4e94f3b4242e2fb02ae917a3a6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_a_i.html#gaac565e4e94f3b4242e2fb02ae917a3a6">SAI_Cmd</a> (<a class="el" href="struct_s_a_i___block___type_def.html">SAI_Block_TypeDef</a> *SAI_Block_x, FunctionalState NewState)</td></tr>
<tr class="memdesc:gaac565e4e94f3b4242e2fb02ae917a3a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables or disables the specified SAI <a class="el" href="struct_block.html">Block</a> peripheral. <a href="#gaac565e4e94f3b4242e2fb02ae917a3a6">More...</a><br /></td></tr>
<tr class="separator:gaac565e4e94f3b4242e2fb02ae917a3a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5e770be163845d4d15907df2ebed387e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_a_i.html#ga5e770be163845d4d15907df2ebed387e">SAI_MonoModeConfig</a> (<a class="el" href="struct_s_a_i___block___type_def.html">SAI_Block_TypeDef</a> *SAI_Block_x, uint32_t SAI_Mono_StreoMode)</td></tr>
<tr class="memdesc:ga5e770be163845d4d15907df2ebed387e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configures the mono mode for the selected SAI block. <a href="#ga5e770be163845d4d15907df2ebed387e">More...</a><br /></td></tr>
<tr class="separator:ga5e770be163845d4d15907df2ebed387e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga33f1dc1098182a0d262199eb377857e3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_a_i.html#ga33f1dc1098182a0d262199eb377857e3">SAI_TRIStateConfig</a> (<a class="el" href="struct_s_a_i___block___type_def.html">SAI_Block_TypeDef</a> *SAI_Block_x, uint32_t SAI_TRIState)</td></tr>
<tr class="memdesc:ga33f1dc1098182a0d262199eb377857e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configures the TRIState managment on data line for the selected SAI block. <a href="#ga33f1dc1098182a0d262199eb377857e3">More...</a><br /></td></tr>
<tr class="separator:ga33f1dc1098182a0d262199eb377857e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8f7784717ee1e44faf638e58bcc4deea"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_a_i.html#ga8f7784717ee1e44faf638e58bcc4deea">SAI_CompandingModeConfig</a> (<a class="el" href="struct_s_a_i___block___type_def.html">SAI_Block_TypeDef</a> *SAI_Block_x, uint32_t SAI_CompandingMode)</td></tr>
<tr class="memdesc:ga8f7784717ee1e44faf638e58bcc4deea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configures the companding mode for the selected SAI block. <a href="#ga8f7784717ee1e44faf638e58bcc4deea">More...</a><br /></td></tr>
<tr class="separator:ga8f7784717ee1e44faf638e58bcc4deea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf438564ee4cce7a5ab3fa2364f6512a0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_a_i.html#gaf438564ee4cce7a5ab3fa2364f6512a0">SAI_MuteModeCmd</a> (<a class="el" href="struct_s_a_i___block___type_def.html">SAI_Block_TypeDef</a> *SAI_Block_x, FunctionalState NewState)</td></tr>
<tr class="memdesc:gaf438564ee4cce7a5ab3fa2364f6512a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables or disables the Mute mode for the selected SAI block. <a href="#gaf438564ee4cce7a5ab3fa2364f6512a0">More...</a><br /></td></tr>
<tr class="separator:gaf438564ee4cce7a5ab3fa2364f6512a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8b9a38f8201fef64dde06d2402f9d32e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_a_i.html#ga8b9a38f8201fef64dde06d2402f9d32e">SAI_MuteValueConfig</a> (<a class="el" href="struct_s_a_i___block___type_def.html">SAI_Block_TypeDef</a> *SAI_Block_x, uint32_t SAI_MuteValue)</td></tr>
<tr class="memdesc:ga8b9a38f8201fef64dde06d2402f9d32e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configure the mute value for the selected SAI block. <a href="#ga8b9a38f8201fef64dde06d2402f9d32e">More...</a><br /></td></tr>
<tr class="separator:ga8b9a38f8201fef64dde06d2402f9d32e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadfdef0e5fbbc6ed6b3c9a750e3b87613"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_a_i.html#gadfdef0e5fbbc6ed6b3c9a750e3b87613">SAI_MuteFrameCounterConfig</a> (<a class="el" href="struct_s_a_i___block___type_def.html">SAI_Block_TypeDef</a> *SAI_Block_x, uint32_t SAI_MuteCounter)</td></tr>
<tr class="memdesc:gadfdef0e5fbbc6ed6b3c9a750e3b87613"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables or disables the Mute mode for the selected SAI block. <a href="#gadfdef0e5fbbc6ed6b3c9a750e3b87613">More...</a><br /></td></tr>
<tr class="separator:gadfdef0e5fbbc6ed6b3c9a750e3b87613"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9451d32f12114ef02c2a4e8e921abcd8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_a_i.html#ga9451d32f12114ef02c2a4e8e921abcd8">SAI_FlushFIFO</a> (<a class="el" href="struct_s_a_i___block___type_def.html">SAI_Block_TypeDef</a> *SAI_Block_x)</td></tr>
<tr class="memdesc:ga9451d32f12114ef02c2a4e8e921abcd8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reinitialize the FIFO pointer. <a href="#ga9451d32f12114ef02c2a4e8e921abcd8">More...</a><br /></td></tr>
<tr class="separator:ga9451d32f12114ef02c2a4e8e921abcd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga57f0cc79e2e4058638db1a8783072ad4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_a_i.html#ga57f0cc79e2e4058638db1a8783072ad4">SAI_SendData</a> (<a class="el" href="struct_s_a_i___block___type_def.html">SAI_Block_TypeDef</a> *SAI_Block_x, uint32_t Data)</td></tr>
<tr class="memdesc:ga57f0cc79e2e4058638db1a8783072ad4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transmits a Data through the SAI block x peripheral. <a href="#ga57f0cc79e2e4058638db1a8783072ad4">More...</a><br /></td></tr>
<tr class="separator:ga57f0cc79e2e4058638db1a8783072ad4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6d2c4b069ea32a288cde7ab4bbda0b0f"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_a_i.html#ga6d2c4b069ea32a288cde7ab4bbda0b0f">SAI_ReceiveData</a> (<a class="el" href="struct_s_a_i___block___type_def.html">SAI_Block_TypeDef</a> *SAI_Block_x)</td></tr>
<tr class="memdesc:ga6d2c4b069ea32a288cde7ab4bbda0b0f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the most recent received data by the SAI block x peripheral. <a href="#ga6d2c4b069ea32a288cde7ab4bbda0b0f">More...</a><br /></td></tr>
<tr class="separator:ga6d2c4b069ea32a288cde7ab4bbda0b0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac1ec1aa3ec5a1f3053a8e30253434aee"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_a_i.html#gac1ec1aa3ec5a1f3053a8e30253434aee">SAI_DMACmd</a> (<a class="el" href="struct_s_a_i___block___type_def.html">SAI_Block_TypeDef</a> *SAI_Block_x, FunctionalState NewState)</td></tr>
<tr class="memdesc:gac1ec1aa3ec5a1f3053a8e30253434aee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables or disables the SAI <a class="el" href="struct_block.html">Block</a> x DMA interface. <a href="#gac1ec1aa3ec5a1f3053a8e30253434aee">More...</a><br /></td></tr>
<tr class="separator:gac1ec1aa3ec5a1f3053a8e30253434aee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga77597e3c2eb2613de8c79f72d2f10929"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_a_i.html#ga77597e3c2eb2613de8c79f72d2f10929">SAI_ITConfig</a> (<a class="el" href="struct_s_a_i___block___type_def.html">SAI_Block_TypeDef</a> *SAI_Block_x, uint32_t SAI_IT, FunctionalState NewState)</td></tr>
<tr class="memdesc:ga77597e3c2eb2613de8c79f72d2f10929"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables or disables the specified SAI <a class="el" href="struct_block.html">Block</a> interrupts. <a href="#ga77597e3c2eb2613de8c79f72d2f10929">More...</a><br /></td></tr>
<tr class="separator:ga77597e3c2eb2613de8c79f72d2f10929"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga538f303601c97a0ef68817ac2d7d9fd4"><td class="memItemLeft" align="right" valign="top">FlagStatus&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_a_i.html#ga538f303601c97a0ef68817ac2d7d9fd4">SAI_GetFlagStatus</a> (<a class="el" href="struct_s_a_i___block___type_def.html">SAI_Block_TypeDef</a> *SAI_Block_x, uint32_t SAI_FLAG)</td></tr>
<tr class="memdesc:ga538f303601c97a0ef68817ac2d7d9fd4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks whether the specified SAI block x flag is set or not. <a href="#ga538f303601c97a0ef68817ac2d7d9fd4">More...</a><br /></td></tr>
<tr class="separator:ga538f303601c97a0ef68817ac2d7d9fd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf860a01907d09f518de3bee94f85e3f9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_a_i.html#gaf860a01907d09f518de3bee94f85e3f9">SAI_ClearFlag</a> (<a class="el" href="struct_s_a_i___block___type_def.html">SAI_Block_TypeDef</a> *SAI_Block_x, uint32_t SAI_FLAG)</td></tr>
<tr class="memdesc:gaf860a01907d09f518de3bee94f85e3f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears the specified SAI <a class="el" href="struct_block.html">Block</a> x flag. <a href="#gaf860a01907d09f518de3bee94f85e3f9">More...</a><br /></td></tr>
<tr class="separator:gaf860a01907d09f518de3bee94f85e3f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga59e69b3e20a327395bc89b5e643c3e9a"><td class="memItemLeft" align="right" valign="top">ITStatus&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_a_i.html#ga59e69b3e20a327395bc89b5e643c3e9a">SAI_GetITStatus</a> (<a class="el" href="struct_s_a_i___block___type_def.html">SAI_Block_TypeDef</a> *SAI_Block_x, uint32_t SAI_IT)</td></tr>
<tr class="memdesc:ga59e69b3e20a327395bc89b5e643c3e9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks whether the specified SAI <a class="el" href="struct_block.html">Block</a> x interrupt has occurred or not. <a href="#ga59e69b3e20a327395bc89b5e643c3e9a">More...</a><br /></td></tr>
<tr class="separator:ga59e69b3e20a327395bc89b5e643c3e9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4aa9cc16b2722d001540a4c7fd278efd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_a_i.html#ga4aa9cc16b2722d001540a4c7fd278efd">SAI_ClearITPendingBit</a> (<a class="el" href="struct_s_a_i___block___type_def.html">SAI_Block_TypeDef</a> *SAI_Block_x, uint32_t SAI_IT)</td></tr>
<tr class="memdesc:ga4aa9cc16b2722d001540a4c7fd278efd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears the SAI <a class="el" href="struct_block.html">Block</a> x interrupt pending bit. <a href="#ga4aa9cc16b2722d001540a4c7fd278efd">More...</a><br /></td></tr>
<tr class="separator:ga4aa9cc16b2722d001540a4c7fd278efd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabe56cd82fe1137249f5acb8907d28fd3"><td class="memItemLeft" align="right" valign="top">FunctionalState&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_a_i.html#gabe56cd82fe1137249f5acb8907d28fd3">SAI_GetCmdStatus</a> (<a class="el" href="struct_s_a_i___block___type_def.html">SAI_Block_TypeDef</a> *SAI_Block_x)</td></tr>
<tr class="memdesc:gabe56cd82fe1137249f5acb8907d28fd3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the status of EN bit for the specified SAI <a class="el" href="struct_block.html">Block</a> x. <a href="#gabe56cd82fe1137249f5acb8907d28fd3">More...</a><br /></td></tr>
<tr class="separator:gabe56cd82fe1137249f5acb8907d28fd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga03d763ba656a9eec5dd5e7b83b8ee361"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_a_i.html#ga03d763ba656a9eec5dd5e7b83b8ee361">SAI_GetFIFOStatus</a> (<a class="el" href="struct_s_a_i___block___type_def.html">SAI_Block_TypeDef</a> *SAI_Block_x)</td></tr>
<tr class="memdesc:ga03d763ba656a9eec5dd5e7b83b8ee361"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the current SAI <a class="el" href="struct_block.html">Block</a> x FIFO filled level. <a href="#ga03d763ba656a9eec5dd5e7b83b8ee361">More...</a><br /></td></tr>
<tr class="separator:ga03d763ba656a9eec5dd5e7b83b8ee361"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>SAI driver modules. </p>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="gaf860a01907d09f518de3bee94f85e3f9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_ClearFlag </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_s_a_i___block___type_def.html">SAI_Block_TypeDef</a> *&#160;</td>
<td class="paramname"><em>SAI_Block_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>SAI_FLAG</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Clears the specified SAI <a class="el" href="struct_block.html">Block</a> x flag. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">SAI_Block_x</td><td>where x can be A or B to select the SAI <a class="el" href="struct_block.html">Block</a> peripheral. </td></tr>
<tr><td class="paramname">SAI_FLAG</td><td>specifies the SAI block flag to check. This parameter can be one of the following values: <ul>
<li>SAI_FLAG_MUTEDET: MUTE detection flag. </li>
<li>SAI_FLAG_OVRUDR: overrun/underrun flag. </li>
<li>SAI_FLAG_WCKCFG: wrong clock configuration flag. </li>
<li>SAI_FLAG_CNRDY: codec not ready flag. </li>
<li>SAI_FLAG_AFSDET: anticipated frame synchronization detection flag. </li>
<li>SAI_FLAG_LFSDET: late frame synchronization detection flag.</li>
</ul>
</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>FREQ (FIFO Request) flag is cleared :<ul>
<li>When the audio block is transmitter and the FIFO is full or the FIFO has one data (one buffer mode) depending the bit FTH in the SAI_xCR2 register.</li>
<li>When the audio block is receiver and the FIFO is not empty</li>
</ul>
</dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">None</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga4aa9cc16b2722d001540a4c7fd278efd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_ClearITPendingBit </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_s_a_i___block___type_def.html">SAI_Block_TypeDef</a> *&#160;</td>
<td class="paramname"><em>SAI_Block_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>SAI_IT</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Clears the SAI <a class="el" href="struct_block.html">Block</a> x interrupt pending bit. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">SAI_Block_x</td><td>where x can be A or B to select the SAI <a class="el" href="struct_block.html">Block</a> peripheral. </td></tr>
<tr><td class="paramname">SAI_IT</td><td>specifies the SAI <a class="el" href="struct_block.html">Block</a> interrupt pending bit to clear. This parameter can be one of the following values: <ul>
<li>SAI_IT_MUTEDET: MUTE detection interrupt. </li>
<li>SAI_IT_OVRUDR: overrun/underrun interrupt. </li>
<li>SAI_IT_WCKCFG: wrong clock configuration interrupt. </li>
<li>SAI_IT_CNRDY: codec not ready interrupt. </li>
<li>SAI_IT_AFSDET: anticipated frame synchronization detection interrupt. </li>
<li>SAI_IT_LFSDET: late frame synchronization detection interrupt.</li>
</ul>
</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>FREQ (FIFO Request) flag is cleared :<ul>
<li>When the audio block is transmitter and the FIFO is full or the FIFO has one data (one buffer mode) depending the bit FTH in the SAI_xCR2 register.</li>
<li>When the audio block is receiver and the FIFO is not empty</li>
</ul>
</dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">None</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gaac565e4e94f3b4242e2fb02ae917a3a6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_Cmd </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_s_a_i___block___type_def.html">SAI_Block_TypeDef</a> *&#160;</td>
<td class="paramname"><em>SAI_Block_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">FunctionalState&#160;</td>
<td class="paramname"><em>NewState</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Enables or disables the specified SAI <a class="el" href="struct_block.html">Block</a> peripheral. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">SAI_Block_x</td><td>where x can be A or B to select the SAI <a class="el" href="struct_block.html">Block</a> peripheral. </td></tr>
<tr><td class="paramname">NewState</td><td>new state of the SAI_Block_x peripheral. This parameter can be: ENABLE or DISABLE. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">None</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga8f7784717ee1e44faf638e58bcc4deea"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_CompandingModeConfig </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_s_a_i___block___type_def.html">SAI_Block_TypeDef</a> *&#160;</td>
<td class="paramname"><em>SAI_Block_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>SAI_CompandingMode</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Configures the companding mode for the selected SAI block. </p>
<dl class="section note"><dt>Note</dt><dd>The data expansion or data compression are determined by the state of SAI block selected (transmitter or receiver).</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">SAI_Block_x</td><td>where x can be A or B to select the SAI <a class="el" href="struct_block.html">Block</a> peripheral. </td></tr>
<tr><td class="paramname">SAI_CompandingMode</td><td>specifies the SAI block companding mode. This parameter can be one of the following values: <ul>
<li>SAI_NoCompanding : no companding algorithm set </li>
<li>SAI_ULaw_1CPL_Companding : Set U law (algorithm 1's complement representation) </li>
<li>SAI_ALaw_1CPL_Companding : Set A law (algorithm 1's complement repesentation) </li>
<li>SAI_ULaw_2CPL_Companding : Set U law (algorithm 2's complement representation) </li>
<li>SAI_ALaw_2CPL_Companding : Set A law (algorithm 2's complement repesentation) </li>
</ul>
</td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">None</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gadcef52be2d2792a70f67b6e7872b334e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_DeInit </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_s_a_i___type_def.html">SAI_TypeDef</a> *&#160;</td>
<td class="paramname"><em>SAIx</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Deinitialize the SAIx peripheral registers to their default reset values. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">SAIx</td><td>To select the SAIx peripheral, where x can be the different instances</td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">None</td><td></td></tr>
</table>
</dd>
</dl>
<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="group___s_a_i_gadcef52be2d2792a70f67b6e7872b334e_cgraph.png" border="0" usemap="#group___s_a_i_gadcef52be2d2792a70f67b6e7872b334e_cgraph" alt=""/></div>
<map name="group___s_a_i_gadcef52be2d2792a70f67b6e7872b334e_cgraph" id="group___s_a_i_gadcef52be2d2792a70f67b6e7872b334e_cgraph">
<area shape="rect" id="node2" href="group___r_c_c.html#gad94553850ac07106a27ee85fec37efdf" title="Forces or releases High Speed APB (APB2) peripheral reset. " alt="" coords="136,5,324,32"/></map>
</div>
</p>
</div>
</div>
<a class="anchor" id="gac1ec1aa3ec5a1f3053a8e30253434aee"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_DMACmd </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_s_a_i___block___type_def.html">SAI_Block_TypeDef</a> *&#160;</td>
<td class="paramname"><em>SAI_Block_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">FunctionalState&#160;</td>
<td class="paramname"><em>NewState</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Enables or disables the SAI <a class="el" href="struct_block.html">Block</a> x DMA interface. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">SAI_Block_x</td><td>where x can be A or B to select the SAI <a class="el" href="struct_block.html">Block</a> peripheral. </td></tr>
<tr><td class="paramname">NewState</td><td>new state of the selected SAI block DMA transfer request. This parameter can be: ENABLE or DISABLE. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">None</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga9451d32f12114ef02c2a4e8e921abcd8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_FlushFIFO </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_s_a_i___block___type_def.html">SAI_Block_TypeDef</a> *&#160;</td>
<td class="paramname"><em>SAI_Block_x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Reinitialize the FIFO pointer. </p>
<dl class="section note"><dt>Note</dt><dd>The FIFO pointers can be reinitialized at anytime The data present into the FIFO, if it is not empty, will be lost.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">SAI_Block_x</td><td>where x can be A or B to select the SAI <a class="el" href="struct_block.html">Block</a> peripheral. </td></tr>
<tr><td class="paramname">NewState</td><td>new state of the selected SAI TI communication mode. This parameter can be: ENABLE or DISABLE. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">None</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga6aa8c14b58a574974e43ab98e1d17713"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_FrameInit </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_s_a_i___block___type_def.html">SAI_Block_TypeDef</a> *&#160;</td>
<td class="paramname"><em>SAI_Block_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="struct_s_a_i___frame_init_type_def.html">SAI_FrameInitTypeDef</a> *&#160;</td>
<td class="paramname"><em>SAI_FrameInitStruct</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes the SAI <a class="el" href="struct_block.html">Block</a> Audio frame according to the specified parameters in the SAI_FrameInitStruct. </p>
<dl class="section note"><dt>Note</dt><dd>this function has no meaning if the AC'97 or SPDIF audio protocol are selected.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">SAI_Block_x</td><td>where x can be A or B to select the SAI <a class="el" href="struct_block.html">Block</a> peripheral. </td></tr>
<tr><td class="paramname">SAI_FrameInitStruct</td><td>pointer to an <a class="el" href="struct_s_a_i___frame_init_type_def.html" title="SAI Block Frame Init structure definition. ">SAI_FrameInitTypeDef</a> structure that contains the configuration of audio frame for a specified SAI <a class="el" href="struct_block.html">Block</a> </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">None</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gaff2daf4640fb7204fc9eabeda8a6d381"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_FrameStructInit </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_s_a_i___frame_init_type_def.html">SAI_FrameInitTypeDef</a> *&#160;</td>
<td class="paramname"><em>SAI_FrameInitStruct</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Fills each SAI_FrameInitStruct member with its default value. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">SAI_FrameInitStruct</td><td>pointer to a <a class="el" href="struct_s_a_i___frame_init_type_def.html" title="SAI Block Frame Init structure definition. ">SAI_FrameInitTypeDef</a> structure which will be initialized. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">None</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gabe56cd82fe1137249f5acb8907d28fd3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">FunctionalState SAI_GetCmdStatus </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_s_a_i___block___type_def.html">SAI_Block_TypeDef</a> *&#160;</td>
<td class="paramname"><em>SAI_Block_x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the status of EN bit for the specified SAI <a class="el" href="struct_block.html">Block</a> x. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">SAI_Block_x</td><td>where x can be A or B to select the SAI <a class="el" href="struct_block.html">Block</a> peripheral.</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>After disabling a SAI <a class="el" href="struct_block.html">Block</a>, it is recommended to check (or wait until) the SAI <a class="el" href="struct_block.html">Block</a> is effectively disabled. If a <a class="el" href="struct_block.html">Block</a> is disabled while an audio frame transfer is ongoing, the current frame will be transferred and the block will be effectively disabled only at the end of audio frame.</dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">Current</td><td>state of the DMAy Streamx (ENABLE or DISABLE). </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga03d763ba656a9eec5dd5e7b83b8ee361"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t SAI_GetFIFOStatus </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_s_a_i___block___type_def.html">SAI_Block_TypeDef</a> *&#160;</td>
<td class="paramname"><em>SAI_Block_x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the current SAI <a class="el" href="struct_block.html">Block</a> x FIFO filled level. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">SAI_Block_x</td><td>where x can be A or B to select the SAI <a class="el" href="struct_block.html">Block</a> peripheral.</td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">The</td><td>FIFO filling state.<ul>
<li>SAI_FIFOStatus_Empty: when FIFO is empty</li>
<li>SAI_FIFOStatus_Less1QuarterFull: when FIFO is less than 1 quarter-full and not empty.</li>
<li>SAI_FIFOStatus_1QuarterFull: if more than 1 quarter-full.</li>
<li>SAI_FIFOStatus_HalfFull: if more than 1 half-full.</li>
<li>SAI_FIFOStatus_3QuartersFull: if more than 3 quarters-full.</li>
<li>SAI_FIFOStatus_Full: when FIFO is full </li>
</ul>
</td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga538f303601c97a0ef68817ac2d7d9fd4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">FlagStatus SAI_GetFlagStatus </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_s_a_i___block___type_def.html">SAI_Block_TypeDef</a> *&#160;</td>
<td class="paramname"><em>SAI_Block_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>SAI_FLAG</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Checks whether the specified SAI block x flag is set or not. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">SAI_Block_x</td><td>where x can be A or B to select the SAI <a class="el" href="struct_block.html">Block</a> peripheral. </td></tr>
<tr><td class="paramname">SAI_FLAG</td><td>specifies the SAI block flag to check. This parameter can be one of the following values: <ul>
<li>SAI_FLAG_FREQ: FIFO Request flag. </li>
<li>SAI_FLAG_MUTEDET: MUTE detection flag. </li>
<li>SAI_FLAG_OVRUDR: overrun/underrun flag. </li>
<li>SAI_FLAG_WCKCFG: wrong clock configuration flag. </li>
<li>SAI_FLAG_CNRDY: codec not ready flag. </li>
<li>SAI_FLAG_AFSDET: anticipated frame synchronization detection flag. </li>
<li>SAI_FLAG_LFSDET: late frame synchronization detection flag. </li>
</ul>
</td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">The</td><td>new state of SAI_FLAG (SET or RESET). </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga59e69b3e20a327395bc89b5e643c3e9a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ITStatus SAI_GetITStatus </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_s_a_i___block___type_def.html">SAI_Block_TypeDef</a> *&#160;</td>
<td class="paramname"><em>SAI_Block_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>SAI_IT</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Checks whether the specified SAI <a class="el" href="struct_block.html">Block</a> x interrupt has occurred or not. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">SAI_Block_x</td><td>where x can be A or B to select the SAI <a class="el" href="struct_block.html">Block</a> peripheral. </td></tr>
<tr><td class="paramname">SAI_IT</td><td>specifies the SAI interrupt source to be enabled or disabled. This parameter can be one of the following values: <ul>
<li>SAI_IT_FREQ: FIFO Request interrupt </li>
<li>SAI_IT_MUTEDET: MUTE detection interrupt </li>
<li>SAI_IT_OVRUDR: overrun/underrun interrupt </li>
<li>SAI_IT_AFSDET: anticipated frame synchronization detection interrupt </li>
<li>SAI_IT_LFSDET: late frame synchronization detection interrupt </li>
<li>SAI_IT_CNRDY: codec not ready interrupt </li>
<li>SAI_IT_WCKCFG: wrong clock configuration interrupt</li>
</ul>
</td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">The</td><td>new state of SAI_IT (SET or RESET). </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga691f0efcdbf335df101c52bacb22c0c8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_Init </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_s_a_i___block___type_def.html">SAI_Block_TypeDef</a> *&#160;</td>
<td class="paramname"><em>SAI_Block_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="struct_s_a_i___init_type_def.html">SAI_InitTypeDef</a> *&#160;</td>
<td class="paramname"><em>SAI_InitStruct</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes the SAI <a class="el" href="struct_block.html">Block</a> x peripheral according to the specified parameters in the SAI_InitStruct. </p>
<dl class="section note"><dt>Note</dt><dd>SAI clock is generated from a specific output of the PLLSAI or a specific output of the PLLI2S or from an alternate function bypassing the PLL I2S.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">SAI_Block_x</td><td>where x can be A or B to select the SAI <a class="el" href="struct_block.html">Block</a> peripheral. </td></tr>
<tr><td class="paramname">SAI_InitStruct</td><td>pointer to a <a class="el" href="struct_s_a_i___init_type_def.html" title="SAI Block Init structure definition. ">SAI_InitTypeDef</a> structure that contains the configuration information for the specified SAI <a class="el" href="struct_block.html">Block</a> peripheral. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">None</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga77597e3c2eb2613de8c79f72d2f10929"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_ITConfig </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_s_a_i___block___type_def.html">SAI_Block_TypeDef</a> *&#160;</td>
<td class="paramname"><em>SAI_Block_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>SAI_IT</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">FunctionalState&#160;</td>
<td class="paramname"><em>NewState</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Enables or disables the specified SAI <a class="el" href="struct_block.html">Block</a> interrupts. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">SAI_Block_x</td><td>where x can be A or B to select the SAI <a class="el" href="struct_block.html">Block</a> peripheral. </td></tr>
<tr><td class="paramname">SAI_IT</td><td>specifies the SAI interrupt source to be enabled or disabled. This parameter can be one of the following values: <ul>
<li>SAI_IT_FREQ: FIFO Request interrupt mask </li>
<li>SAI_IT_MUTEDET: MUTE detection interrupt mask </li>
<li>SAI_IT_OVRUDR: overrun/underrun interrupt mask </li>
<li>SAI_IT_AFSDET: anticipated frame synchronization detection interrupt mask </li>
<li>SAI_IT_LFSDET: late frame synchronization detection interrupt mask </li>
<li>SAI_IT_CNRDY: codec not ready interrupt mask </li>
<li>SAI_IT_WCKCFG: wrong clock configuration interrupt mask </li>
</ul>
</td></tr>
<tr><td class="paramname">NewState</td><td>new state of the specified SAI interrupt. This parameter can be: ENABLE or DISABLE. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">None</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga5e770be163845d4d15907df2ebed387e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_MonoModeConfig </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_s_a_i___block___type_def.html">SAI_Block_TypeDef</a> *&#160;</td>
<td class="paramname"><em>SAI_Block_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>SAI_Mono_StreoMode</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Configures the mono mode for the selected SAI block. </p>
<dl class="section note"><dt>Note</dt><dd>This function has a meaning only when the number of slot is equal to 2.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">SAI_Block_x</td><td>where x can be A or B to select the SAI <a class="el" href="struct_block.html">Block</a> peripheral. </td></tr>
<tr><td class="paramname">SAI_MonoMode</td><td>specifies the SAI block mono mode. This parameter can be one of the following values: <ul>
<li>SAI_MonoMode : Set mono audio mode </li>
<li>SAI_StreoMode : Set streo audio mode </li>
</ul>
</td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">None</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gadfdef0e5fbbc6ed6b3c9a750e3b87613"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_MuteFrameCounterConfig </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_s_a_i___block___type_def.html">SAI_Block_TypeDef</a> *&#160;</td>
<td class="paramname"><em>SAI_Block_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>SAI_MuteCounter</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Enables or disables the Mute mode for the selected SAI block. </p>
<dl class="section note"><dt>Note</dt><dd>This function has a meaning only when the audio block is Receiver </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">SAI_Block_x</td><td>where x can be A or B to select the SAI <a class="el" href="struct_block.html">Block</a> peripheral. </td></tr>
<tr><td class="paramname">SAI_MuteCounter</td><td>specifies the SAI block mute value. This parameter can be a number between 0 and 63.</td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">None</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gaf438564ee4cce7a5ab3fa2364f6512a0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_MuteModeCmd </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_s_a_i___block___type_def.html">SAI_Block_TypeDef</a> *&#160;</td>
<td class="paramname"><em>SAI_Block_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">FunctionalState&#160;</td>
<td class="paramname"><em>NewState</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Enables or disables the Mute mode for the selected SAI block. </p>
<dl class="section note"><dt>Note</dt><dd>This function has a meaning only when the audio block is transmitter </dd>
<dd>
Mute mode is applied for an entire frame for all the valid slot It becomes active at the end of an audio frame when set somewhere in a frame. Mute mode exit occurs at the end of the frame in which the bit MUTE has been set.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">SAI_Block_x</td><td>where x can be A or B to select the SAI <a class="el" href="struct_block.html">Block</a> peripheral. </td></tr>
<tr><td class="paramname">NewState</td><td>new state of the SAIx block. This parameter can be: ENABLE or DISABLE. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">None</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga8b9a38f8201fef64dde06d2402f9d32e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_MuteValueConfig </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_s_a_i___block___type_def.html">SAI_Block_TypeDef</a> *&#160;</td>
<td class="paramname"><em>SAI_Block_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>SAI_MuteValue</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Configure the mute value for the selected SAI block. </p>
<dl class="section note"><dt>Note</dt><dd>This function has a meaning only when the audio block is transmitter </dd>
<dd>
the configuration last value sent during mute mode has only a meaning when the number of slot is lower or equal to 2 and if the MUTE bit is set.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">SAI_Block_x</td><td>where x can be A or B to select the SAI <a class="el" href="struct_block.html">Block</a> peripheral. </td></tr>
<tr><td class="paramname">SAI_MuteValue</td><td>specifies the SAI block mute value. This parameter can be one of the following values: <ul>
<li>SAI_ZeroValue : bit value 0 is sent during Mute Mode </li>
<li>SAI_LastSentValue : Last value is sent during Mute Mode </li>
</ul>
</td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">None</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga6d2c4b069ea32a288cde7ab4bbda0b0f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t SAI_ReceiveData </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_s_a_i___block___type_def.html">SAI_Block_TypeDef</a> *&#160;</td>
<td class="paramname"><em>SAI_Block_x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the most recent received data by the SAI block x peripheral. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">SAI_Block_x</td><td>where x can be A or B to select the SAI <a class="el" href="struct_block.html">Block</a> peripheral.</td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">The</td><td>value of the received data. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga57f0cc79e2e4058638db1a8783072ad4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_SendData </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_s_a_i___block___type_def.html">SAI_Block_TypeDef</a> *&#160;</td>
<td class="paramname"><em>SAI_Block_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>Data</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Transmits a Data through the SAI block x peripheral. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">SAI_Block_x</td><td>where x can be A or B to select the SAI <a class="el" href="struct_block.html">Block</a> peripheral.</td></tr>
<tr><td class="paramname">Data</td><td>Data to be transmitted. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">None</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gac8d5348bb79f75884e52866883891e95"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_SlotInit </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_s_a_i___block___type_def.html">SAI_Block_TypeDef</a> *&#160;</td>
<td class="paramname"><em>SAI_Block_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="struct_s_a_i___slot_init_type_def.html">SAI_SlotInitTypeDef</a> *&#160;</td>
<td class="paramname"><em>SAI_SlotInitStruct</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes the SAI <a class="el" href="struct_block.html">Block</a> audio Slot according to the specified parameters in the SAI_SlotInitStruct. </p>
<dl class="section note"><dt>Note</dt><dd>this function has no meaning if the AC'97 or SPDIF audio protocol are selected.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">SAI_Block_x</td><td>where x can be A or B to select the SAI <a class="el" href="struct_block.html">Block</a> peripheral. </td></tr>
<tr><td class="paramname">SAI_SlotInitStruct</td><td>pointer to an <a class="el" href="struct_s_a_i___slot_init_type_def.html" title="SAI Block Slot Init Structure definition. ">SAI_SlotInitTypeDef</a> structure that contains the configuration of audio slot for a specified SAI <a class="el" href="struct_block.html">Block</a> </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">None</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga0a86dde0514e7e8d0fd11b327b304e81"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_SlotStructInit </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_s_a_i___slot_init_type_def.html">SAI_SlotInitTypeDef</a> *&#160;</td>
<td class="paramname"><em>SAI_SlotInitStruct</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Fills each SAI_SlotInitStruct member with its default value. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">SAI_SlotInitStruct</td><td>pointer to a <a class="el" href="struct_s_a_i___slot_init_type_def.html" title="SAI Block Slot Init Structure definition. ">SAI_SlotInitTypeDef</a> structure which will be initialized. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">None</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga6b7ca40703634d2e3bf5c00201006a94"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_StructInit </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_s_a_i___init_type_def.html">SAI_InitTypeDef</a> *&#160;</td>
<td class="paramname"><em>SAI_InitStruct</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Fills each SAI_InitStruct member with its default value. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">SAI_InitStruct</td><td>pointer to a <a class="el" href="struct_s_a_i___init_type_def.html" title="SAI Block Init structure definition. ">SAI_InitTypeDef</a> structure which will be initialized. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">None</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga33f1dc1098182a0d262199eb377857e3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_TRIStateConfig </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_s_a_i___block___type_def.html">SAI_Block_TypeDef</a> *&#160;</td>
<td class="paramname"><em>SAI_Block_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>SAI_TRIState</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Configures the TRIState managment on data line for the selected SAI block. </p>
<dl class="section note"><dt>Note</dt><dd>This function has a meaning only when the SAI block is configured in transmitter</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">SAI_Block_x</td><td>where x can be A or B to select the SAI <a class="el" href="struct_block.html">Block</a> peripheral. </td></tr>
<tr><td class="paramname">SAI_TRIState</td><td>specifies the SAI block TRIState management. This parameter can be one of the following values: <ul>
<li>SAI_Output_NotReleased : SD output line is still drived by the SAI. </li>
<li>SAI_Output_Released : SD output line is released (HI-Z) </li>
</ul>
</td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">None</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sun May 10 2015 15:15:20 for discoverpixy by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
</body>
</html>