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

424 lines
21 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: RNG</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="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">RNG<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>RNG driver modules.
<a href="#details">More...</a></p>
<div class="dynheader">
Collaboration diagram for RNG:</div>
<div class="dyncontent">
<center><table><tr><td><img src="group___r_n_g.png" border="0" alt="" usemap="#group______r__n__g"/>
<map name="group______r__n__g" id="group______r__n__g">
<area shape="rect" id="node3" href="group___r_n_g___exported___constants.html" title="RNG_Exported_Constants" alt="" coords="308,5,483,32"/><area shape="rect" id="node4" href="group___r_n_g___private___functions.html" title="RNG_Private_Functions" alt="" coords="315,56,475,83"/><area shape="rect" id="node2" 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___r_n_g___exported___constants"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_n_g___exported___constants.html">RNG_Exported_Constants</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group___r_n_g___private___functions"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_n_g___private___functions.html">RNG_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="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga15ff5e649080076eebd51143b9ac4491"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_n_g.html#ga15ff5e649080076eebd51143b9ac4491">RNG_DeInit</a> (void)</td></tr>
<tr class="memdesc:ga15ff5e649080076eebd51143b9ac4491"><td class="mdescLeft">&#160;</td><td class="mdescRight">De-initializes the RNG peripheral registers to their default reset values. <a href="#ga15ff5e649080076eebd51143b9ac4491">More...</a><br /></td></tr>
<tr class="separator:ga15ff5e649080076eebd51143b9ac4491"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6c1a8372da6e8a06819903c63faecd7b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_n_g.html#ga6c1a8372da6e8a06819903c63faecd7b">RNG_Cmd</a> (FunctionalState NewState)</td></tr>
<tr class="memdesc:ga6c1a8372da6e8a06819903c63faecd7b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables or disables the RNG peripheral. <a href="#ga6c1a8372da6e8a06819903c63faecd7b">More...</a><br /></td></tr>
<tr class="separator:ga6c1a8372da6e8a06819903c63faecd7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2cead4780224fd74a3fc15543c98ed36"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_n_g.html#ga2cead4780224fd74a3fc15543c98ed36">RNG_GetRandomNumber</a> (void)</td></tr>
<tr class="memdesc:ga2cead4780224fd74a3fc15543c98ed36"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a 32-bit random number. <a href="#ga2cead4780224fd74a3fc15543c98ed36">More...</a><br /></td></tr>
<tr class="separator:ga2cead4780224fd74a3fc15543c98ed36"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga41d9be4c303ba0875a82c62dc7085f08"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_n_g.html#ga41d9be4c303ba0875a82c62dc7085f08">RNG_ITConfig</a> (FunctionalState NewState)</td></tr>
<tr class="memdesc:ga41d9be4c303ba0875a82c62dc7085f08"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables or disables the RNG interrupt. <a href="#ga41d9be4c303ba0875a82c62dc7085f08">More...</a><br /></td></tr>
<tr class="separator:ga41d9be4c303ba0875a82c62dc7085f08"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab70d6cc7d943dfb8eac15ccecf6cd7b3"><td class="memItemLeft" align="right" valign="top">FlagStatus&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_n_g.html#gab70d6cc7d943dfb8eac15ccecf6cd7b3">RNG_GetFlagStatus</a> (uint8_t RNG_FLAG)</td></tr>
<tr class="memdesc:gab70d6cc7d943dfb8eac15ccecf6cd7b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks whether the specified RNG flag is set or not. <a href="#gab70d6cc7d943dfb8eac15ccecf6cd7b3">More...</a><br /></td></tr>
<tr class="separator:gab70d6cc7d943dfb8eac15ccecf6cd7b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac3c67fe6bacdc4529f1707025224f954"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_n_g.html#gac3c67fe6bacdc4529f1707025224f954">RNG_ClearFlag</a> (uint8_t RNG_FLAG)</td></tr>
<tr class="memdesc:gac3c67fe6bacdc4529f1707025224f954"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears the RNG flags. <a href="#gac3c67fe6bacdc4529f1707025224f954">More...</a><br /></td></tr>
<tr class="separator:gac3c67fe6bacdc4529f1707025224f954"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab58eaab67698770d9ea9775fb280271f"><td class="memItemLeft" align="right" valign="top">ITStatus&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_n_g.html#gab58eaab67698770d9ea9775fb280271f">RNG_GetITStatus</a> (uint8_t RNG_IT)</td></tr>
<tr class="memdesc:gab58eaab67698770d9ea9775fb280271f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks whether the specified RNG interrupt has occurred or not. <a href="#gab58eaab67698770d9ea9775fb280271f">More...</a><br /></td></tr>
<tr class="separator:gab58eaab67698770d9ea9775fb280271f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2b1c78c003cd5c886e09fdbc2c89cacb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_n_g.html#ga2b1c78c003cd5c886e09fdbc2c89cacb">RNG_ClearITPendingBit</a> (uint8_t RNG_IT)</td></tr>
<tr class="memdesc:ga2b1c78c003cd5c886e09fdbc2c89cacb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears the RNG interrupt pending bit(s). <a href="#ga2b1c78c003cd5c886e09fdbc2c89cacb">More...</a><br /></td></tr>
<tr class="separator:ga2b1c78c003cd5c886e09fdbc2c89cacb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>RNG driver modules. </p>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="gac3c67fe6bacdc4529f1707025224f954"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void RNG_ClearFlag </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>RNG_FLAG</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Clears the RNG flags. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">RNG_FLAG</td><td>specifies the flag to clear. This parameter can be any combination of the following values: <ul>
<li>RNG_FLAG_CECS: Clock Error Current flag. </li>
<li>RNG_FLAG_SECS: Seed Error Current flag. </li>
</ul>
</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>RNG_FLAG_DRDY can not be cleared by <a class="el" href="group___r_n_g___group3.html#gac3c67fe6bacdc4529f1707025224f954" title="Clears the RNG flags. ">RNG_ClearFlag()</a> function. This flag is cleared only by reading the Random number data (using <a class="el" href="group___r_n_g___group2.html#ga2cead4780224fd74a3fc15543c98ed36" title="Returns a 32-bit random number. ">RNG_GetRandomNumber()</a> function). </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="ga2b1c78c003cd5c886e09fdbc2c89cacb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void RNG_ClearITPendingBit </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>RNG_IT</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Clears the RNG interrupt pending bit(s). </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">RNG_IT</td><td>specifies the RNG interrupt pending bit(s) to clear. This parameter can be any combination of the following values: <ul>
<li>RNG_IT_CEI: Clock Error Interrupt. </li>
<li>RNG_IT_SEI: Seed Error Interrupt. </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="ga6c1a8372da6e8a06819903c63faecd7b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void RNG_Cmd </td>
<td>(</td>
<td class="paramtype">FunctionalState&#160;</td>
<td class="paramname"><em>NewState</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Enables or disables the RNG peripheral. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">NewState</td><td>new state of the RNG 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="ga15ff5e649080076eebd51143b9ac4491"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void RNG_DeInit </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>De-initializes the RNG peripheral registers to their default reset values. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">None</td><td></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___r_n_g_ga15ff5e649080076eebd51143b9ac4491_cgraph.png" border="0" usemap="#group___r_n_g_ga15ff5e649080076eebd51143b9ac4491_cgraph" alt=""/></div>
<map name="group___r_n_g_ga15ff5e649080076eebd51143b9ac4491_cgraph" id="group___r_n_g_ga15ff5e649080076eebd51143b9ac4491_cgraph">
<area shape="rect" id="node2" href="group___r_c_c.html#gafb119d6d1955d1b8c361e8140845ac5a" title="Forces or releases AHB2 peripheral reset. " alt="" coords="144,5,332,32"/></map>
</div>
</p>
</div>
</div>
<a class="anchor" id="gab70d6cc7d943dfb8eac15ccecf6cd7b3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">FlagStatus RNG_GetFlagStatus </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>RNG_FLAG</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Checks whether the specified RNG flag is set or not. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">RNG_FLAG</td><td>specifies the RNG flag to check. This parameter can be one of the following values: <ul>
<li>RNG_FLAG_DRDY: Data Ready flag. </li>
<li>RNG_FLAG_CECS: Clock Error Current flag. </li>
<li>RNG_FLAG_SECS: Seed Error Current 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 RNG_FLAG (SET or RESET). </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gab58eaab67698770d9ea9775fb280271f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ITStatus RNG_GetITStatus </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>RNG_IT</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Checks whether the specified RNG interrupt has occurred or not. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">RNG_IT</td><td>specifies the RNG interrupt source to check. This parameter can be one of the following values: <ul>
<li>RNG_IT_CEI: Clock Error Interrupt. </li>
<li>RNG_IT_SEI: Seed Error 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 RNG_IT (SET or RESET). </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga2cead4780224fd74a3fc15543c98ed36"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t RNG_GetRandomNumber </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a 32-bit random number. </p>
<dl class="section note"><dt>Note</dt><dd>Before to call this function you have to wait till DRDY (data ready) flag is set, using RNG_GetFlagStatus(RNG_FLAG_DRDY) function. </dd>
<dd>
Each time the the Random number data is read (using <a class="el" href="group___r_n_g___group2.html#ga2cead4780224fd74a3fc15543c98ed36" title="Returns a 32-bit random number. ">RNG_GetRandomNumber()</a> function), the RNG_FLAG_DRDY flag is automatically cleared. </dd>
<dd>
In the case of a seed error, the generation of random numbers is interrupted for as long as the SECS bit is '1'. If a number is available in the RNG_DR register, it must not be used because it may not have enough entropy. In this case, it is recommended to clear the SEIS bit(using RNG_ClearFlag(RNG_FLAG_SECS) function), then disable and enable the RNG peripheral (using <a class="el" href="group___r_n_g___group1.html#ga6c1a8372da6e8a06819903c63faecd7b" title="Enables or disables the RNG peripheral. ">RNG_Cmd()</a> function) to reinitialize and restart the RNG. </dd>
<dd>
In the case of a clock error, the RNG is no more able to generate random numbers because the PLL48CLK clock is not correct. User have to check that the clock controller is correctly configured to provide the RNG clock and clear the CEIS bit (using RNG_ClearFlag(RNG_FLAG_CECS) function) . The clock error has no impact on the previously generated random numbers, and the RNG_DR register contents can be used.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">None</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">32-bit</td><td>random number. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga41d9be4c303ba0875a82c62dc7085f08"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void RNG_ITConfig </td>
<td>(</td>
<td class="paramtype">FunctionalState&#160;</td>
<td class="paramname"><em>NewState</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Enables or disables the RNG interrupt. </p>
<dl class="section note"><dt>Note</dt><dd>The RNG provides 3 interrupt sources,<ul>
<li>Computed data is ready event (DRDY), and</li>
<li>Seed error Interrupt (SEI) and</li>
<li>Clock error Interrupt (CEI), all these interrupts sources are enabled by setting the IE bit in CR register. However, each interrupt have its specific status bit (see <a class="el" href="group___r_n_g___group3.html#gab58eaab67698770d9ea9775fb280271f" title="Checks whether the specified RNG interrupt has occurred or not. ">RNG_GetITStatus()</a> function) and clear bit except the DRDY event (see <a class="el" href="group___r_n_g___group3.html#ga2b1c78c003cd5c886e09fdbc2c89cacb" title="Clears the RNG interrupt pending bit(s). ">RNG_ClearITPendingBit()</a> function). </li>
</ul>
</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">NewState</td><td>new state of the RNG 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>
</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>