/** @page Networking  Networking with CAN to control Leds
  @verbatim
  ******************** (C)COPYRIGHT 2011 STMicroelectronics *******************
  * @file    CAN/CAN_Networking/readme.txt
  * @author  MCD Application Team
  * @version V2.1.0
  * @date    18-November-2011
  * @brief   This file contains the main function for CAN networking example.
  ******************************************************************************
  *
  * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
  * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
  * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
  * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
  * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
  * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
  ******************************************************************************
  @endverbatim
  
  @par Example description

  This example provides a short description of how to use the CAN peripheral:
  CAN peripheral is configured to send and receive CAN frames. 
  The sent frames  are used to control Leds.
  An LCD is used to give information about : 
   - CAN sender (sender of the frame)
   - CAN receiver (receiver of the frame)
   - Controlled Led (set ON)

  The CAN serial communication link is a bus to which a number of units may be
  connected. This number has no theoretical limit. Practically the total number
  of units will be limited by delay times and/or electrical loads on the bus line.

  @note This example is tested with a bus of 3 units. The same program example 
  is loaded in all units to send and receive frames.

  CAN is configured as follow:
    - Bit Rate   = 1 Mbit/s  
    - CAN Clock  = Internal (HSI)
    - ID Filter = All identifiers are allowed
    - RTR = Data
    - DLC = 1 byte

  @par Directory contents

  - CAN\CAN_Networking\main.c             Main file containing the "main" function
  - CAN\CAN_Networking\main.h             Main file declaration
  - CAN\CAN_Networking\stm8s_conf.h       Library Configuration file
  - CAN\CAN_Networking\stm8s_it.c         Interrupt routines source 
  - CAN\CAN_Networking\stm8s_it.h         Interrupt routines declaration
  

  @par Hardware environment

  - This example runs only on STM8S208 and STM8A52Ax devices.
  
  - This example has been tested with STMicroelectronics STM8/128-EVAL evaluation 
    board and can be easily tailored to any other development board.

  - STM8/128-EVAL Set-up
     - Key push button
     - LD1..LD4
     - Mono LCD

 
  - If another board is used, consider the folloing hardware connections :
      - PH3 -> LED1 -> resistor -> ground
      - PH2 -> LED2 -> resistor -> ground
      - PH1 -> LED3 -> resistor -> ground
      - PH0 -> LED4 -> resistor -> ground
      - PC0 -> Key Button -> ground + pull-up on 5V
      - PG1 (CAN Rx) and PG0 (CAN Tx) connected to a DB9 connector using a CAN Bus
        transceiver (eg. L9616).

  - Connect a female/female CAN cable between at least 2 EVAL CAN connectors
  (CN8 on STM8/128-EVAL board) 
    - Connector 1 DB9_PIN2 to Connector 2 DB9_PIN2  (CAN_L)
    - Connector 1 DB9_PIN5 to Connector 2 DB9_PIN5  ( GND )
    - Connector 1 DB9_PIN7 to Connector 2 DB9_PIN7  (CAN_H)


  @par How to use it ?

  In order to make the program work, you must do the following :

  - Copy all source files from this example folder to the template folder under
    Project\Template
  - Open your preferred toolchain 
  - Add the required file:
    - stm8s_eval_lcd.c  (under Utilities\STM8S_EVAL\Common)
  - Rebuild all files and load your image into target memory
  - Run the example
  - In the first time the LCD shows the message "STM8S CAN  Press Key".
  - (1) By Pressing on Key Button : CAN send a Frame to command LED1 (LD1 ON)
    on the N eval-boards connected to the bus, all other Leds are OFF. 
    The sender LCD shows "STM8S CAN  Sender  LD1 ON".
    The N-1 receivers LCD shows "STM8S CAN  Receiver  LD1 ON".
  - Press on Key Button again to send CAN Frame to command LD2 ON on the N eval-boards,
    all other Leds are OFF.
    The sender LCD shows "STM8S CAN  Sender  LD2 ON".
    The N-1 receivers LCD shows "STM8S CAN  Receiver  LD2 ON".
  - Press on Key Button again to send CAN Frame to command LD3 ON on the N eval-boards,
    all other Leds are OFF.
    The sender LCD shows "STM8S CAN  Sender  LD3 ON".
    The N-1 receivers LCD shows "STM8S CAN  Receiver  LD3 ON".
  - Press on Key Button again to send CAN Frame to command LD4 ON on the N eval-boards,
    all other Leds are OFF.
    The sender LCD shows "STM8S CAN  Sender  LD4 ON".
    The N-1 receivers LCD shows "STM8S CAN  Receiver  LD4 ON".
  - Press on Key Button again to go to step (1)
  @note Any unit in the CAN bus may play the role of sender (by pressing on the
        key) or receiver.

  @note
  - High-Density STM8A devices are the STM8AF52xx STM8AF6269/8x/Ax,
    STM8AF51xx, and STM8AF6169/7x/8x/9x/Ax microcontrollers where the Flash memory
    density ranges between 32 to 128 Kbytes
  - Medium-Density STM8A devices are the STM8AF622x/4x, STM8AF6266/68,
    STM8AF612x/4x, and STM8AF6166/68 microcontrollers where the Flash memory 
    density ranges between 8 to 32 Kbytes
  - High-Density STM8S devices are the STM8S207xx, STM8S007 and STM8S208xx microcontrollers
    where the Flash memory density ranges between 32 to 128 Kbytes.
  - Medium-Density STM8S devices are the STM8S105x and STM8S005 microcontrollers
    where the Flash memory density ranges between 16 to 32-Kbytes.
  - Low-Density STM8S devices are the STM8S103xx, STM8S003 and STM8S903xx microcontrollers
    where the Flash density is 8 Kbytes.
      
 * <h3><center>&copy; COPYRIGHT 2011 STMicroelectronics</center></h3>
 */
