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

307 lines
38 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: discovery/libs/StmCoreNPheriph/src/stm32f4xx_can.c File Reference</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 class="current"><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 id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<!-- 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 id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_84db96586f7d962b526d6d9627d831c2.html">discovery</a></li><li class="navelem"><a class="el" href="dir_07523c13f04fd35d8848cb17a371cb5b.html">libs</a></li><li class="navelem"><a class="el" href="dir_1d60ba7d807ff336a2be2f2de640bf2b.html">StmCoreNPheriph</a></li><li class="navelem"><a class="el" href="dir_12f7a99b9d2a0e5955a2ac990af20021.html">src</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">stm32f4xx_can.c File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>This file provides firmware functions to manage the following functionalities of the Controller area network (CAN) peripheral:
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="stm32f4xx__can_8h_source.html">stm32f4xx_can.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="stm32f4xx__rcc_8h_source.html">stm32f4xx_rcc.h</a>&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for stm32f4xx_can.c:</div>
<div class="dyncontent">
<div class="center"><img src="stm32f4xx__can_8c__incl.png" border="0" usemap="#discovery_2libs_2_stm_core_n_pheriph_2src_2stm32f4xx__can_8c" alt=""/></div>
<map name="discovery_2libs_2_stm_core_n_pheriph_2src_2stm32f4xx__can_8c" id="discovery_2libs_2_stm_core_n_pheriph_2src_2stm32f4xx__can_8c">
<area shape="rect" id="node2" href="stm32f4xx__can_8h.html" title="This file contains all the functions prototypes for the CAN firmware library. " alt="" coords="2288,95,2409,121"/><area shape="rect" id="node21" href="stm32f4xx__rcc_8h.html" title="This file contains all the functions prototypes for the RCC firmware library. " alt="" coords="4025,319,4144,345"/><area shape="rect" id="node3" href="stm32f4xx_8h.html" title="CMSIS Cortex&#45;M4 Device Peripheral Access Layer Header File. This file contains all the peripheral reg..." alt="" coords="2177,169,2270,196"/><area shape="rect" id="node4" href="core__cm4_8h.html" title="CMSIS Cortex&#45;M4 Core Peripheral Access Layer Header File. " alt="" coords="350,244,441,271"/><area shape="rect" id="node9" href="system__stm32f4xx_8h.html" title="CMSIS Cortex&#45;M4 Device System Source File for STM32F4xx devices. " alt="" coords="183,244,325,271"/><area shape="rect" id="node10" href="stm32f4xx__conf_8h_source.html" title="stm32f4xx_conf.h" alt="" coords="2287,244,2411,271"/><area shape="rect" id="node6" href="core__cm_instr_8h.html" title="CMSIS Cortex&#45;M Core Instruction Access Header File. " alt="" coords="245,319,351,345"/><area shape="rect" id="node7" href="core__cm_func_8h.html" title="CMSIS Cortex&#45;M Core Function Access Header File. " alt="" coords="375,319,487,345"/><area shape="rect" id="node8" href="core__cm4__simd_8h.html" title="CMSIS Cortex&#45;M4 SIMD Header File. " alt="" coords="95,319,221,345"/><area shape="rect" id="node11" href="stm32f4xx__adc_8h.html" title="This file contains all the functions prototypes for the ADC firmware library. " alt="" coords="512,319,633,345"/><area shape="rect" id="node12" href="stm32f4xx__crc_8h.html" title="This file contains all the functions prototypes for the CRC firmware library. " alt="" coords="657,319,776,345"/><area shape="rect" id="node13" href="stm32f4xx__dbgmcu_8h.html" title="This file contains all the functions prototypes for the DBGMCU firmware library. " alt="" coords="801,319,947,345"/><area shape="rect" id="node14" href="stm32f4xx__dma_8h.html" title="This file contains all the functions prototypes for the DMA firmware library. " alt="" coords="971,319,1097,345"/><area shape="rect" id="node15" href="stm32f4xx__exti_8h.html" title="This file contains all the functions prototypes for the EXTI firmware library. " alt="" coords="1121,319,1243,345"/><area shape="rect" id="node16" href="stm32f4xx__flash_8h.html" title="This file contains all the functions prototypes for the FLASH firmware library. " alt="" coords="1267,319,1393,345"/><area shape="rect" id="node17" href="stm32f4xx__gpio_8h.html" title="This file contains all the functions prototypes for the GPIO firmware library. " alt="" coords="1417,319,1541,345"/><area shape="rect" id="node18" href="stm32f4xx__i2c_8h.html" title="This file contains all the functions prototypes for the I2C firmware library. " alt="" coords="1565,319,1682,345"/><area shape="rect" id="node19" href="stm32f4xx__iwdg_8h.html" title="This file contains all the functions prototypes for the IWDG firmware library. " alt="" coords="1707,319,1833,345"/><area shape="rect" id="node20" href="stm32f4xx__pwr_8h.html" title="This file contains all the functions prototypes for the PWR firmware library. " alt="" coords="1857,319,1976,345"/><area shape="rect" id="node22" href="stm32f4xx__rtc_8h.html" title="This file contains all the functions prototypes for the RTC firmware library. " alt="" coords="2001,319,2115,345"/><area shape="rect" id="node23" href="stm32f4xx__sdio_8h.html" title="This file contains all the functions prototypes for the SDIO firmware library. " alt="" coords="2140,319,2264,345"/><area shape="rect" id="node24" href="stm32f4xx__spi_8h.html" title="This file contains all the functions prototypes for the SPI firmware library. " alt="" coords="2287,319,2405,345"/><area shape="rect" id="node25" href="stm32f4xx__syscfg_8h.html" title="This file contains all the functions prototypes for the SYSCFG firmware library. " alt="" coords="2429,319,2567,345"/><area shape="rect" id="node26" href="stm32f4xx__tim_8h.html" title="This file contains all the functions prototypes for the TIM firmware library. " alt="" coords="2592,319,2711,345"/><area shape="rect" id="node27" href="stm32f4xx__usart_8h.html" title="This file contains all the functions prototypes for the USART firmware library. " alt="" coords="2735,319,2864,345"/><area shape="rect" id="node28" href="stm32f4xx__wwdg_8h.html" title="This file contains all the functions prototypes for the WWDG firmware library. " alt="" coords="2888,319,3020,345"/><area shape="rect" id="node29" href="misc_8h.html" title="This file contains all the functions prototypes for the miscellaneous firmware library functions (add..." alt="" coords="3045,319,3106,345"/><area shape="rect" id="node30" href="stm32f4xx__cryp_8h.html" title="This file contains all the functions prototypes for the Cryptographic processor(CRYP) firmware librar..." alt="" coords="3130,319,3255,345"/><area shape="rect" id="node31" href="stm32f4xx__hash_8h.html" title="This file contains all the functions prototypes for the HASH firmware library. " alt="" coords="3279,319,3407,345"/><area shape="rect" id="node32" href="stm32f4xx__rng_8h.html" title="This file contains all the functions prototypes for the Random Number Generator(RNG) firmware library..." alt="" coords="3432,319,3551,345"/><area shape="rect" id="node33" href="stm32f4xx__dac_8h.html" title="This file contains all the functions prototypes for the DAC firmware library. " alt="" coords="3575,319,3696,345"/><area shape="rect" id="node34" href="stm32f4xx__dcmi_8h.html" title="This file contains all the functions prototypes for the DCMI firmware library. " alt="" coords="3721,319,3849,345"/><area shape="rect" id="node35" href="stm32f4xx__fsmc_8h.html" title="This file contains all the functions prototypes for the FSMC firmware library. " alt="" coords="3873,319,4001,345"/></map>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga1ded3736beb63c49281f2983fc68c36d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1ded3736beb63c49281f2983fc68c36d"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>MCR_DBF</b>&#160;&#160;&#160;((uint32_t)0x00010000) /* software master reset */</td></tr>
<tr class="separator:ga1ded3736beb63c49281f2983fc68c36d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabeb6db5ba5c01da5084ec1605f868e18"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabeb6db5ba5c01da5084ec1605f868e18"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>TMIDxR_TXRQ</b>&#160;&#160;&#160;((uint32_t)0x00000001) /* Transmit mailbox request */</td></tr>
<tr class="separator:gabeb6db5ba5c01da5084ec1605f868e18"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6125d0273c466e402db1a8f5bf888857"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6125d0273c466e402db1a8f5bf888857"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FMR_FINIT</b>&#160;&#160;&#160;((uint32_t)0x00000001) /* Filter init mode */</td></tr>
<tr class="separator:ga6125d0273c466e402db1a8f5bf888857"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga60a32132df242146efd3e9f7a079f0f0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga60a32132df242146efd3e9f7a079f0f0"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>INAK_TIMEOUT</b>&#160;&#160;&#160;((uint32_t)0x0000FFFF)</td></tr>
<tr class="separator:ga60a32132df242146efd3e9f7a079f0f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1bb8107706c8b4039ac55a122f3c65bb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1bb8107706c8b4039ac55a122f3c65bb"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>SLAK_TIMEOUT</b>&#160;&#160;&#160;((uint32_t)0x0000FFFF)</td></tr>
<tr class="separator:ga1bb8107706c8b4039ac55a122f3c65bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac67e7d905ba11441bf9e14180805cf3a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac67e7d905ba11441bf9e14180805cf3a"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>CAN_FLAGS_TSR</b>&#160;&#160;&#160;((uint32_t)0x08000000)</td></tr>
<tr class="separator:gac67e7d905ba11441bf9e14180805cf3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2a03d73273ab353c8deb3a4730431977"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2a03d73273ab353c8deb3a4730431977"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>CAN_FLAGS_RF1R</b>&#160;&#160;&#160;((uint32_t)0x04000000)</td></tr>
<tr class="separator:ga2a03d73273ab353c8deb3a4730431977"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4b22b2552759778ac07825240823a45f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4b22b2552759778ac07825240823a45f"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>CAN_FLAGS_RF0R</b>&#160;&#160;&#160;((uint32_t)0x02000000)</td></tr>
<tr class="separator:ga4b22b2552759778ac07825240823a45f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3aaa7df395ce1a90cb6e2ff3d2c4b24e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3aaa7df395ce1a90cb6e2ff3d2c4b24e"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>CAN_FLAGS_MSR</b>&#160;&#160;&#160;((uint32_t)0x01000000)</td></tr>
<tr class="separator:ga3aaa7df395ce1a90cb6e2ff3d2c4b24e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga14f7bb0b320da21443c9bd60b1f86b5d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga14f7bb0b320da21443c9bd60b1f86b5d"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>CAN_FLAGS_ESR</b>&#160;&#160;&#160;((uint32_t)0x00F00000)</td></tr>
<tr class="separator:ga14f7bb0b320da21443c9bd60b1f86b5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa62f09d0693681cb7576f61c93b7cf0f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa62f09d0693681cb7576f61c93b7cf0f"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>CAN_TXMAILBOX_0</b>&#160;&#160;&#160;((uint8_t)0x00)</td></tr>
<tr class="separator:gaa62f09d0693681cb7576f61c93b7cf0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4e20f0aac1ac940014a6c66971890943"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4e20f0aac1ac940014a6c66971890943"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>CAN_TXMAILBOX_1</b>&#160;&#160;&#160;((uint8_t)0x01)</td></tr>
<tr class="separator:ga4e20f0aac1ac940014a6c66971890943"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8a842aa352d72321930cc963b26bf6d7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8a842aa352d72321930cc963b26bf6d7"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>CAN_TXMAILBOX_2</b>&#160;&#160;&#160;((uint8_t)0x02)</td></tr>
<tr class="separator:ga8a842aa352d72321930cc963b26bf6d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga79094ce5a3a2f717140e8cc9b7c161b6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga79094ce5a3a2f717140e8cc9b7c161b6"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>CAN_MODE_MASK</b>&#160;&#160;&#160;((uint32_t) 0x00000003)</td></tr>
<tr class="separator:ga79094ce5a3a2f717140e8cc9b7c161b6"><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:ga002b74cd69574a14b17ad445090245cd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_a_n___group1.html#ga002b74cd69574a14b17ad445090245cd">CAN_DeInit</a> (<a class="el" href="struct_c_a_n___type_def.html">CAN_TypeDef</a> *CANx)</td></tr>
<tr class="memdesc:ga002b74cd69574a14b17ad445090245cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deinitializes the CAN peripheral registers to their default reset values. <a href="group___c_a_n___group1.html#ga002b74cd69574a14b17ad445090245cd">More...</a><br /></td></tr>
<tr class="separator:ga002b74cd69574a14b17ad445090245cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9023c35a9ab931ad4513fc5d19b4bd6c"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_a_n___group1.html#ga9023c35a9ab931ad4513fc5d19b4bd6c">CAN_Init</a> (<a class="el" href="struct_c_a_n___type_def.html">CAN_TypeDef</a> *CANx, <a class="el" href="struct_c_a_n___init_type_def.html">CAN_InitTypeDef</a> *CAN_InitStruct)</td></tr>
<tr class="memdesc:ga9023c35a9ab931ad4513fc5d19b4bd6c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the CAN peripheral according to the specified parameters in the CAN_InitStruct. <a href="group___c_a_n___group1.html#ga9023c35a9ab931ad4513fc5d19b4bd6c">More...</a><br /></td></tr>
<tr class="separator:ga9023c35a9ab931ad4513fc5d19b4bd6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga39476830280340363c51041be6b12647"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_a_n___group1.html#ga39476830280340363c51041be6b12647">CAN_FilterInit</a> (<a class="el" href="struct_c_a_n___filter_init_type_def.html">CAN_FilterInitTypeDef</a> *CAN_FilterInitStruct)</td></tr>
<tr class="memdesc:ga39476830280340363c51041be6b12647"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configures the CAN reception filter according to the specified parameters in the CAN_FilterInitStruct. <a href="group___c_a_n___group1.html#ga39476830280340363c51041be6b12647">More...</a><br /></td></tr>
<tr class="separator:ga39476830280340363c51041be6b12647"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad77ad810868ed111755fc9e8ae0c7646"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_a_n___group1.html#gad77ad810868ed111755fc9e8ae0c7646">CAN_StructInit</a> (<a class="el" href="struct_c_a_n___init_type_def.html">CAN_InitTypeDef</a> *CAN_InitStruct)</td></tr>
<tr class="memdesc:gad77ad810868ed111755fc9e8ae0c7646"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fills each CAN_InitStruct member with its default value. <a href="group___c_a_n___group1.html#gad77ad810868ed111755fc9e8ae0c7646">More...</a><br /></td></tr>
<tr class="separator:gad77ad810868ed111755fc9e8ae0c7646"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga109ff8960bc59f44b984c9646f17b3c0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_a_n___group1.html#ga109ff8960bc59f44b984c9646f17b3c0">CAN_SlaveStartBank</a> (uint8_t CAN_BankNumber)</td></tr>
<tr class="memdesc:ga109ff8960bc59f44b984c9646f17b3c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Select the start bank filter for slave CAN. <a href="group___c_a_n___group1.html#ga109ff8960bc59f44b984c9646f17b3c0">More...</a><br /></td></tr>
<tr class="separator:ga109ff8960bc59f44b984c9646f17b3c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac0e2d33e08caf49d1f1251f0dcc20213"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_a_n___group1.html#gac0e2d33e08caf49d1f1251f0dcc20213">CAN_DBGFreeze</a> (<a class="el" href="struct_c_a_n___type_def.html">CAN_TypeDef</a> *CANx, FunctionalState NewState)</td></tr>
<tr class="memdesc:gac0e2d33e08caf49d1f1251f0dcc20213"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables or disables the DBG Freeze for CAN. <a href="group___c_a_n___group1.html#gac0e2d33e08caf49d1f1251f0dcc20213">More...</a><br /></td></tr>
<tr class="separator:gac0e2d33e08caf49d1f1251f0dcc20213"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga94740177bab153ca5b102d122f9a8cca"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_a_n___group1.html#ga94740177bab153ca5b102d122f9a8cca">CAN_TTComModeCmd</a> (<a class="el" href="struct_c_a_n___type_def.html">CAN_TypeDef</a> *CANx, FunctionalState NewState)</td></tr>
<tr class="memdesc:ga94740177bab153ca5b102d122f9a8cca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables or disables the CAN Time TriggerOperation communication mode. <a href="group___c_a_n___group1.html#ga94740177bab153ca5b102d122f9a8cca">More...</a><br /></td></tr>
<tr class="separator:ga94740177bab153ca5b102d122f9a8cca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaccfcb81f76f58400077c7b2d8641dd83"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_a_n___group2.html#gaccfcb81f76f58400077c7b2d8641dd83">CAN_Transmit</a> (<a class="el" href="struct_c_a_n___type_def.html">CAN_TypeDef</a> *CANx, <a class="el" href="struct_can_tx_msg.html">CanTxMsg</a> *TxMessage)</td></tr>
<tr class="memdesc:gaccfcb81f76f58400077c7b2d8641dd83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initiates and transmits a CAN frame message. <a href="group___c_a_n___group2.html#gaccfcb81f76f58400077c7b2d8641dd83">More...</a><br /></td></tr>
<tr class="separator:gaccfcb81f76f58400077c7b2d8641dd83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga68ab05a0a6cdfcc2b6f6b6b2c10848e2"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_a_n___group2.html#ga68ab05a0a6cdfcc2b6f6b6b2c10848e2">CAN_TransmitStatus</a> (<a class="el" href="struct_c_a_n___type_def.html">CAN_TypeDef</a> *CANx, uint8_t TransmitMailbox)</td></tr>
<tr class="memdesc:ga68ab05a0a6cdfcc2b6f6b6b2c10848e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks the transmission status of a CAN Frame. <a href="group___c_a_n___group2.html#ga68ab05a0a6cdfcc2b6f6b6b2c10848e2">More...</a><br /></td></tr>
<tr class="separator:ga68ab05a0a6cdfcc2b6f6b6b2c10848e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga81106cdf5395a1947bfc87ec1685829e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_a_n___group2.html#ga81106cdf5395a1947bfc87ec1685829e">CAN_CancelTransmit</a> (<a class="el" href="struct_c_a_n___type_def.html">CAN_TypeDef</a> *CANx, uint8_t Mailbox)</td></tr>
<tr class="memdesc:ga81106cdf5395a1947bfc87ec1685829e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cancels a transmit request. <a href="group___c_a_n___group2.html#ga81106cdf5395a1947bfc87ec1685829e">More...</a><br /></td></tr>
<tr class="separator:ga81106cdf5395a1947bfc87ec1685829e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga351b90bb8a3bb0c846f85bbd56ef4dc8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_a_n___group3.html#ga351b90bb8a3bb0c846f85bbd56ef4dc8">CAN_Receive</a> (<a class="el" href="struct_c_a_n___type_def.html">CAN_TypeDef</a> *CANx, uint8_t FIFONumber, <a class="el" href="struct_can_rx_msg.html">CanRxMsg</a> *RxMessage)</td></tr>
<tr class="memdesc:ga351b90bb8a3bb0c846f85bbd56ef4dc8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Receives a correct CAN frame. <a href="group___c_a_n___group3.html#ga351b90bb8a3bb0c846f85bbd56ef4dc8">More...</a><br /></td></tr>
<tr class="separator:ga351b90bb8a3bb0c846f85bbd56ef4dc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1bc3b39471e579b4101624c33d27918b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_a_n___group3.html#ga1bc3b39471e579b4101624c33d27918b">CAN_FIFORelease</a> (<a class="el" href="struct_c_a_n___type_def.html">CAN_TypeDef</a> *CANx, uint8_t FIFONumber)</td></tr>
<tr class="memdesc:ga1bc3b39471e579b4101624c33d27918b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Releases the specified receive FIFO. <a href="group___c_a_n___group3.html#ga1bc3b39471e579b4101624c33d27918b">More...</a><br /></td></tr>
<tr class="separator:ga1bc3b39471e579b4101624c33d27918b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7100459a95ce1b3cfe8ab15e112029fe"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_a_n___group3.html#ga7100459a95ce1b3cfe8ab15e112029fe">CAN_MessagePending</a> (<a class="el" href="struct_c_a_n___type_def.html">CAN_TypeDef</a> *CANx, uint8_t FIFONumber)</td></tr>
<tr class="memdesc:ga7100459a95ce1b3cfe8ab15e112029fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of pending received messages. <a href="group___c_a_n___group3.html#ga7100459a95ce1b3cfe8ab15e112029fe">More...</a><br /></td></tr>
<tr class="separator:ga7100459a95ce1b3cfe8ab15e112029fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab2a3630e9e3024114eb117d14e514208"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_a_n___group4.html#gab2a3630e9e3024114eb117d14e514208">CAN_OperatingModeRequest</a> (<a class="el" href="struct_c_a_n___type_def.html">CAN_TypeDef</a> *CANx, uint8_t CAN_OperatingMode)</td></tr>
<tr class="memdesc:gab2a3630e9e3024114eb117d14e514208"><td class="mdescLeft">&#160;</td><td class="mdescRight">Selects the CAN Operation mode. <a href="group___c_a_n___group4.html#gab2a3630e9e3024114eb117d14e514208">More...</a><br /></td></tr>
<tr class="separator:gab2a3630e9e3024114eb117d14e514208"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga640215e38765759d7eceb8a039046667"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_a_n___group4.html#ga640215e38765759d7eceb8a039046667">CAN_Sleep</a> (<a class="el" href="struct_c_a_n___type_def.html">CAN_TypeDef</a> *CANx)</td></tr>
<tr class="memdesc:ga640215e38765759d7eceb8a039046667"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enters the Sleep (low power) mode. <a href="group___c_a_n___group4.html#ga640215e38765759d7eceb8a039046667">More...</a><br /></td></tr>
<tr class="separator:ga640215e38765759d7eceb8a039046667"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga78cdfbf1884b9e33c552bcbca15bed10"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_a_n___group4.html#ga78cdfbf1884b9e33c552bcbca15bed10">CAN_WakeUp</a> (<a class="el" href="struct_c_a_n___type_def.html">CAN_TypeDef</a> *CANx)</td></tr>
<tr class="memdesc:ga78cdfbf1884b9e33c552bcbca15bed10"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wakes up the CAN peripheral from sleep mode . <a href="group___c_a_n___group4.html#ga78cdfbf1884b9e33c552bcbca15bed10">More...</a><br /></td></tr>
<tr class="separator:ga78cdfbf1884b9e33c552bcbca15bed10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaee721a392b6b21bfd15dc160aeb6924"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_a_n___group5.html#gaaee721a392b6b21bfd15dc160aeb6924">CAN_GetLastErrorCode</a> (<a class="el" href="struct_c_a_n___type_def.html">CAN_TypeDef</a> *CANx)</td></tr>
<tr class="memdesc:gaaee721a392b6b21bfd15dc160aeb6924"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the CANx's last error code (LEC). <a href="group___c_a_n___group5.html#gaaee721a392b6b21bfd15dc160aeb6924">More...</a><br /></td></tr>
<tr class="separator:gaaee721a392b6b21bfd15dc160aeb6924"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6903eecbec40eb1361d915ddde9a3274"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_a_n___group5.html#ga6903eecbec40eb1361d915ddde9a3274">CAN_GetReceiveErrorCounter</a> (<a class="el" href="struct_c_a_n___type_def.html">CAN_TypeDef</a> *CANx)</td></tr>
<tr class="memdesc:ga6903eecbec40eb1361d915ddde9a3274"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the CANx Receive Error Counter (REC). <a href="group___c_a_n___group5.html#ga6903eecbec40eb1361d915ddde9a3274">More...</a><br /></td></tr>
<tr class="separator:ga6903eecbec40eb1361d915ddde9a3274"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga85ee0c35bf7ca15d4e4c862eef534843"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_a_n___group5.html#ga85ee0c35bf7ca15d4e4c862eef534843">CAN_GetLSBTransmitErrorCounter</a> (<a class="el" href="struct_c_a_n___type_def.html">CAN_TypeDef</a> *CANx)</td></tr>
<tr class="memdesc:ga85ee0c35bf7ca15d4e4c862eef534843"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the LSB of the 9-bit CANx Transmit Error Counter(TEC). <a href="group___c_a_n___group5.html#ga85ee0c35bf7ca15d4e4c862eef534843">More...</a><br /></td></tr>
<tr class="separator:ga85ee0c35bf7ca15d4e4c862eef534843"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad1a8b2499a780b5bfa4accb3597b02f4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_a_n___group6.html#gad1a8b2499a780b5bfa4accb3597b02f4">CAN_ITConfig</a> (<a class="el" href="struct_c_a_n___type_def.html">CAN_TypeDef</a> *CANx, uint32_t CAN_IT, FunctionalState NewState)</td></tr>
<tr class="memdesc:gad1a8b2499a780b5bfa4accb3597b02f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables or disables the specified CANx interrupts. <a href="group___c_a_n___group6.html#gad1a8b2499a780b5bfa4accb3597b02f4">More...</a><br /></td></tr>
<tr class="separator:gad1a8b2499a780b5bfa4accb3597b02f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2faad96caf823ef463cc5b5b25c480bb"><td class="memItemLeft" align="right" valign="top">FlagStatus&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_a_n___group6.html#ga2faad96caf823ef463cc5b5b25c480bb">CAN_GetFlagStatus</a> (<a class="el" href="struct_c_a_n___type_def.html">CAN_TypeDef</a> *CANx, uint32_t CAN_FLAG)</td></tr>
<tr class="memdesc:ga2faad96caf823ef463cc5b5b25c480bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks whether the specified CAN flag is set or not. <a href="group___c_a_n___group6.html#ga2faad96caf823ef463cc5b5b25c480bb">More...</a><br /></td></tr>
<tr class="separator:ga2faad96caf823ef463cc5b5b25c480bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2c01646d5d3a2d7045e8dd71f58f8742"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_a_n___group6.html#ga2c01646d5d3a2d7045e8dd71f58f8742">CAN_ClearFlag</a> (<a class="el" href="struct_c_a_n___type_def.html">CAN_TypeDef</a> *CANx, uint32_t CAN_FLAG)</td></tr>
<tr class="memdesc:ga2c01646d5d3a2d7045e8dd71f58f8742"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears the CAN's pending flags. <a href="group___c_a_n___group6.html#ga2c01646d5d3a2d7045e8dd71f58f8742">More...</a><br /></td></tr>
<tr class="separator:ga2c01646d5d3a2d7045e8dd71f58f8742"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9aca05b3013e1b3438f3559f80b33c82"><td class="memItemLeft" align="right" valign="top">ITStatus&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_a_n___group6.html#ga9aca05b3013e1b3438f3559f80b33c82">CAN_GetITStatus</a> (<a class="el" href="struct_c_a_n___type_def.html">CAN_TypeDef</a> *CANx, uint32_t CAN_IT)</td></tr>
<tr class="memdesc:ga9aca05b3013e1b3438f3559f80b33c82"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks whether the specified CANx interrupt has occurred or not. <a href="group___c_a_n___group6.html#ga9aca05b3013e1b3438f3559f80b33c82">More...</a><br /></td></tr>
<tr class="separator:ga9aca05b3013e1b3438f3559f80b33c82"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga30bf7ac0c1793f6622a4a1adbb7dbc8a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_a_n___group6.html#ga30bf7ac0c1793f6622a4a1adbb7dbc8a">CAN_ClearITPendingBit</a> (<a class="el" href="struct_c_a_n___type_def.html">CAN_TypeDef</a> *CANx, uint32_t CAN_IT)</td></tr>
<tr class="memdesc:ga30bf7ac0c1793f6622a4a1adbb7dbc8a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears the CANx's interrupt pending bits. <a href="group___c_a_n___group6.html#ga30bf7ac0c1793f6622a4a1adbb7dbc8a">More...</a><br /></td></tr>
<tr class="separator:ga30bf7ac0c1793f6622a4a1adbb7dbc8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>This file provides firmware functions to manage the following functionalities of the Controller area network (CAN) peripheral: </p>
<dl class="section author"><dt>Author</dt><dd>MCD Application Team </dd></dl>
<dl class="section version"><dt>Version</dt><dd>V1.4.0 </dd></dl>
<dl class="section date"><dt>Date</dt><dd>04-August-2014<ul>
<li>Initialization and Configuration</li>
<li>CAN Frames Transmission</li>
<li>CAN Frames Reception</li>
<li>Operation modes switch</li>
<li>Error management</li>
<li>Interrupts and flags</li>
</ul>
</dd></dl>
<pre class="fragment"> ===============================================================================
##### How to use this driver #####
===============================================================================
[..]
(#) Enable the CAN controller interface clock using
RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE); for CAN1
and RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN2, ENABLE); for CAN2
-@- In case you are using CAN2 only, you have to enable the CAN1 clock.
(#) CAN pins configuration
(++) Enable the clock for the CAN GPIOs using the following function:
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOx, ENABLE);
(++) Connect the involved CAN pins to AF9 using the following function
GPIO_PinAFConfig(GPIOx, GPIO_PinSourcex, GPIO_AF_CANx);
(++) Configure these CAN pins in alternate function mode by calling
the function GPIO_Init();
(#) Initialise and configure the CAN using CAN_Init() and
CAN_FilterInit() functions.
(#) Transmit the desired CAN frame using CAN_Transmit() function.
(#) Check the transmission of a CAN frame using CAN_TransmitStatus()
function.
(#) Cancel the transmission of a CAN frame using CAN_CancelTransmit()
function.
(#) Receive a CAN frame using CAN_Recieve() function.
(#) Release the receive FIFOs using CAN_FIFORelease() function.
(#) Return the number of pending received frames using
CAN_MessagePending() function.
(#) To control CAN events you can use one of the following two methods:
(++) Check on CAN flags using the CAN_GetFlagStatus() function.
(++) Use CAN interrupts through the function CAN_ITConfig() at
initialization phase and CAN_GetITStatus() function into
interrupt routines to check if the event has occurred or not.
After checking on a flag you should clear it using CAN_ClearFlag()
function. And after checking on an interrupt event you should
clear it using CAN_ClearITPendingBit() function. </pre><pre class="fragment">@attention
&lt;h2&gt;&lt;center&gt;&amp;copy; COPYRIGHT 2014 STMicroelectronics&lt;/center&gt;&lt;/h2&gt;
Licensed under MCD-ST Liberty SW License Agreement V2, (the "License");
You may not use this file except in compliance with the License.
You may obtain a copy of the License at:
http://www.st.com/software_license_agreement_liberty_v2
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.</pre></div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sun May 10 2015 15:15:18 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>