Example of UART-DMA transfers taken form the npx cmsis driver libary

Dependencies:   mbed

Committer:
dpslwk
Date:
Thu Sep 30 20:13:24 2010 +0000
Revision:
0:7480abd3b63b

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dpslwk 0:7480abd3b63b 1 /***********************************************************************//**
dpslwk 0:7480abd3b63b 2 * @file lpc17xx_pinsel.h
dpslwk 0:7480abd3b63b 3 * @brief Contains all macro definitions and function prototypes
dpslwk 0:7480abd3b63b 4 * support for Pin connect block firmware library on LPC17xx
dpslwk 0:7480abd3b63b 5 * @version 2.0
dpslwk 0:7480abd3b63b 6 * @date 21. May. 2010
dpslwk 0:7480abd3b63b 7 * @author NXP MCU SW Application Team
dpslwk 0:7480abd3b63b 8 **************************************************************************
dpslwk 0:7480abd3b63b 9 * Software that is described herein is for illustrative purposes only
dpslwk 0:7480abd3b63b 10 * which provides customers with programming information regarding the
dpslwk 0:7480abd3b63b 11 * products. This software is supplied "AS IS" without any warranties.
dpslwk 0:7480abd3b63b 12 * NXP Semiconductors assumes no responsibility or liability for the
dpslwk 0:7480abd3b63b 13 * use of the software, conveys no license or title under any patent,
dpslwk 0:7480abd3b63b 14 * copyright, or mask work right to the product. NXP Semiconductors
dpslwk 0:7480abd3b63b 15 * reserves the right to make changes in the software without
dpslwk 0:7480abd3b63b 16 * notification. NXP Semiconductors also make no representation or
dpslwk 0:7480abd3b63b 17 * warranty that such application will be suitable for the specified
dpslwk 0:7480abd3b63b 18 * use without further testing or modification.
dpslwk 0:7480abd3b63b 19 **************************************************************************/
dpslwk 0:7480abd3b63b 20
dpslwk 0:7480abd3b63b 21 /* Peripheral group ----------------------------------------------------------- */
dpslwk 0:7480abd3b63b 22 /** @defgroup PINSEL PINSEL
dpslwk 0:7480abd3b63b 23 * @ingroup LPC1700CMSIS_FwLib_Drivers
dpslwk 0:7480abd3b63b 24 * @{
dpslwk 0:7480abd3b63b 25 */
dpslwk 0:7480abd3b63b 26
dpslwk 0:7480abd3b63b 27 #ifndef LPC17XX_PINSEL_H_
dpslwk 0:7480abd3b63b 28 #define LPC17XX_PINSEL_H_
dpslwk 0:7480abd3b63b 29
dpslwk 0:7480abd3b63b 30 /* Includes ------------------------------------------------------------------- */
dpslwk 0:7480abd3b63b 31 #include "LPC17xx.h"
dpslwk 0:7480abd3b63b 32 #include "lpc_types.h"
dpslwk 0:7480abd3b63b 33
dpslwk 0:7480abd3b63b 34 #ifdef __cplusplus
dpslwk 0:7480abd3b63b 35 extern "C"
dpslwk 0:7480abd3b63b 36 {
dpslwk 0:7480abd3b63b 37 #endif
dpslwk 0:7480abd3b63b 38
dpslwk 0:7480abd3b63b 39 /* Public Macros -------------------------------------------------------------- */
dpslwk 0:7480abd3b63b 40 /** @defgroup PINSEL_Public_Macros PINSEL Public Macros
dpslwk 0:7480abd3b63b 41 * @{
dpslwk 0:7480abd3b63b 42 */
dpslwk 0:7480abd3b63b 43
dpslwk 0:7480abd3b63b 44 /*********************************************************************//**
dpslwk 0:7480abd3b63b 45 *!< Macros define for PORT Selection
dpslwk 0:7480abd3b63b 46 ***********************************************************************/
dpslwk 0:7480abd3b63b 47 #define PINSEL_PORT_0 ((0)) /**< PORT 0*/
dpslwk 0:7480abd3b63b 48 #define PINSEL_PORT_1 ((1)) /**< PORT 1*/
dpslwk 0:7480abd3b63b 49 #define PINSEL_PORT_2 ((2)) /**< PORT 2*/
dpslwk 0:7480abd3b63b 50 #define PINSEL_PORT_3 ((3)) /**< PORT 3*/
dpslwk 0:7480abd3b63b 51 #define PINSEL_PORT_4 ((4)) /**< PORT 4*/
dpslwk 0:7480abd3b63b 52
dpslwk 0:7480abd3b63b 53 /***********************************************************************
dpslwk 0:7480abd3b63b 54 * Macros define for Pin Function selection
dpslwk 0:7480abd3b63b 55 **********************************************************************/
dpslwk 0:7480abd3b63b 56 #define PINSEL_FUNC_0 ((0)) /**< default function*/
dpslwk 0:7480abd3b63b 57 #define PINSEL_FUNC_1 ((1)) /**< first alternate function*/
dpslwk 0:7480abd3b63b 58 #define PINSEL_FUNC_2 ((2)) /**< second alternate function*/
dpslwk 0:7480abd3b63b 59 #define PINSEL_FUNC_3 ((3)) /**< third or reserved alternate function*/
dpslwk 0:7480abd3b63b 60
dpslwk 0:7480abd3b63b 61 /***********************************************************************
dpslwk 0:7480abd3b63b 62 * Macros define for Pin Number of Port
dpslwk 0:7480abd3b63b 63 **********************************************************************/
dpslwk 0:7480abd3b63b 64 #define PINSEL_PIN_0 ((0)) /**< Pin 0 */
dpslwk 0:7480abd3b63b 65 #define PINSEL_PIN_1 ((1)) /**< Pin 1 */
dpslwk 0:7480abd3b63b 66 #define PINSEL_PIN_2 ((2)) /**< Pin 2 */
dpslwk 0:7480abd3b63b 67 #define PINSEL_PIN_3 ((3)) /**< Pin 3 */
dpslwk 0:7480abd3b63b 68 #define PINSEL_PIN_4 ((4)) /**< Pin 4 */
dpslwk 0:7480abd3b63b 69 #define PINSEL_PIN_5 ((5)) /**< Pin 5 */
dpslwk 0:7480abd3b63b 70 #define PINSEL_PIN_6 ((6)) /**< Pin 6 */
dpslwk 0:7480abd3b63b 71 #define PINSEL_PIN_7 ((7)) /**< Pin 7 */
dpslwk 0:7480abd3b63b 72 #define PINSEL_PIN_8 ((8)) /**< Pin 8 */
dpslwk 0:7480abd3b63b 73 #define PINSEL_PIN_9 ((9)) /**< Pin 9 */
dpslwk 0:7480abd3b63b 74 #define PINSEL_PIN_10 ((10)) /**< Pin 10 */
dpslwk 0:7480abd3b63b 75 #define PINSEL_PIN_11 ((11)) /**< Pin 11 */
dpslwk 0:7480abd3b63b 76 #define PINSEL_PIN_12 ((12)) /**< Pin 12 */
dpslwk 0:7480abd3b63b 77 #define PINSEL_PIN_13 ((13)) /**< Pin 13 */
dpslwk 0:7480abd3b63b 78 #define PINSEL_PIN_14 ((14)) /**< Pin 14 */
dpslwk 0:7480abd3b63b 79 #define PINSEL_PIN_15 ((15)) /**< Pin 15 */
dpslwk 0:7480abd3b63b 80 #define PINSEL_PIN_16 ((16)) /**< Pin 16 */
dpslwk 0:7480abd3b63b 81 #define PINSEL_PIN_17 ((17)) /**< Pin 17 */
dpslwk 0:7480abd3b63b 82 #define PINSEL_PIN_18 ((18)) /**< Pin 18 */
dpslwk 0:7480abd3b63b 83 #define PINSEL_PIN_19 ((19)) /**< Pin 19 */
dpslwk 0:7480abd3b63b 84 #define PINSEL_PIN_20 ((20)) /**< Pin 20 */
dpslwk 0:7480abd3b63b 85 #define PINSEL_PIN_21 ((21)) /**< Pin 21 */
dpslwk 0:7480abd3b63b 86 #define PINSEL_PIN_22 ((22)) /**< Pin 22 */
dpslwk 0:7480abd3b63b 87 #define PINSEL_PIN_23 ((23)) /**< Pin 23 */
dpslwk 0:7480abd3b63b 88 #define PINSEL_PIN_24 ((24)) /**< Pin 24 */
dpslwk 0:7480abd3b63b 89 #define PINSEL_PIN_25 ((25)) /**< Pin 25 */
dpslwk 0:7480abd3b63b 90 #define PINSEL_PIN_26 ((26)) /**< Pin 26 */
dpslwk 0:7480abd3b63b 91 #define PINSEL_PIN_27 ((27)) /**< Pin 27 */
dpslwk 0:7480abd3b63b 92 #define PINSEL_PIN_28 ((28)) /**< Pin 28 */
dpslwk 0:7480abd3b63b 93 #define PINSEL_PIN_29 ((29)) /**< Pin 29 */
dpslwk 0:7480abd3b63b 94 #define PINSEL_PIN_30 ((30)) /**< Pin 30 */
dpslwk 0:7480abd3b63b 95 #define PINSEL_PIN_31 ((31)) /**< Pin 31 */
dpslwk 0:7480abd3b63b 96
dpslwk 0:7480abd3b63b 97 /***********************************************************************
dpslwk 0:7480abd3b63b 98 * Macros define for Pin mode
dpslwk 0:7480abd3b63b 99 **********************************************************************/
dpslwk 0:7480abd3b63b 100 #define PINSEL_PINMODE_PULLUP ((0)) /**< Internal pull-up resistor*/
dpslwk 0:7480abd3b63b 101 #define PINSEL_PINMODE_TRISTATE ((2)) /**< Tri-state */
dpslwk 0:7480abd3b63b 102 #define PINSEL_PINMODE_PULLDOWN ((3)) /**< Internal pull-down resistor */
dpslwk 0:7480abd3b63b 103
dpslwk 0:7480abd3b63b 104 /***********************************************************************
dpslwk 0:7480abd3b63b 105 * Macros define for Pin mode (normal/open drain)
dpslwk 0:7480abd3b63b 106 **********************************************************************/
dpslwk 0:7480abd3b63b 107 #define PINSEL_PINMODE_NORMAL ((0)) /**< Pin is in the normal (not open drain) mode.*/
dpslwk 0:7480abd3b63b 108 #define PINSEL_PINMODE_OPENDRAIN ((1)) /**< Pin is in the open drain mode */
dpslwk 0:7480abd3b63b 109
dpslwk 0:7480abd3b63b 110 /***********************************************************************
dpslwk 0:7480abd3b63b 111 * Macros define for I2C mode
dpslwk 0:7480abd3b63b 112 ***********************************************************************/
dpslwk 0:7480abd3b63b 113 #define PINSEL_I2C_Normal_Mode ((0)) /**< The standard drive mode */
dpslwk 0:7480abd3b63b 114 #define PINSEL_I2C_Fast_Mode ((1)) /**< Fast Mode Plus drive mode */
dpslwk 0:7480abd3b63b 115
dpslwk 0:7480abd3b63b 116 /**
dpslwk 0:7480abd3b63b 117 * @}
dpslwk 0:7480abd3b63b 118 */
dpslwk 0:7480abd3b63b 119
dpslwk 0:7480abd3b63b 120 /* Private Macros ------------------------------------------------------------- */
dpslwk 0:7480abd3b63b 121 /** @defgroup PINSEL_Private_Macros PINSEL Private Macros
dpslwk 0:7480abd3b63b 122 * @{
dpslwk 0:7480abd3b63b 123 */
dpslwk 0:7480abd3b63b 124
dpslwk 0:7480abd3b63b 125 /* Pin selection define */
dpslwk 0:7480abd3b63b 126 /* I2C Pin Configuration register bit description */
dpslwk 0:7480abd3b63b 127 #define PINSEL_I2CPADCFG_SDADRV0 _BIT(0) /**< Drive mode control for the SDA0 pin, P0.27 */
dpslwk 0:7480abd3b63b 128 #define PINSEL_I2CPADCFG_SDAI2C0 _BIT(1) /**< I2C mode control for the SDA0 pin, P0.27 */
dpslwk 0:7480abd3b63b 129 #define PINSEL_I2CPADCFG_SCLDRV0 _BIT(2) /**< Drive mode control for the SCL0 pin, P0.28 */
dpslwk 0:7480abd3b63b 130 #define PINSEL_I2CPADCFG_SCLI2C0 _BIT(3) /**< I2C mode control for the SCL0 pin, P0.28 */
dpslwk 0:7480abd3b63b 131
dpslwk 0:7480abd3b63b 132 /**
dpslwk 0:7480abd3b63b 133 * @}
dpslwk 0:7480abd3b63b 134 */
dpslwk 0:7480abd3b63b 135
dpslwk 0:7480abd3b63b 136
dpslwk 0:7480abd3b63b 137 /* Public Types --------------------------------------------------------------- */
dpslwk 0:7480abd3b63b 138 /** @defgroup PINSEL_Public_Types PINSEL Public Types
dpslwk 0:7480abd3b63b 139 * @{
dpslwk 0:7480abd3b63b 140 */
dpslwk 0:7480abd3b63b 141
dpslwk 0:7480abd3b63b 142 /** @brief Pin configuration structure */
dpslwk 0:7480abd3b63b 143 typedef struct
dpslwk 0:7480abd3b63b 144 {
dpslwk 0:7480abd3b63b 145 uint8_t Portnum; /**< Port Number, should be PINSEL_PORT_x,
dpslwk 0:7480abd3b63b 146 where x should be in range from 0 to 4 */
dpslwk 0:7480abd3b63b 147 uint8_t Pinnum; /**< Pin Number, should be PINSEL_PIN_x,
dpslwk 0:7480abd3b63b 148 where x should be in range from 0 to 31 */
dpslwk 0:7480abd3b63b 149 uint8_t Funcnum; /**< Function Number, should be PINSEL_FUNC_x,
dpslwk 0:7480abd3b63b 150 where x should be in range from 0 to 3 */
dpslwk 0:7480abd3b63b 151 uint8_t Pinmode; /**< Pin Mode, should be:
dpslwk 0:7480abd3b63b 152 - PINSEL_PINMODE_PULLUP: Internal pull-up resistor
dpslwk 0:7480abd3b63b 153 - PINSEL_PINMODE_TRISTATE: Tri-state
dpslwk 0:7480abd3b63b 154 - PINSEL_PINMODE_PULLDOWN: Internal pull-down resistor */
dpslwk 0:7480abd3b63b 155 uint8_t OpenDrain; /**< OpenDrain mode, should be:
dpslwk 0:7480abd3b63b 156 - PINSEL_PINMODE_NORMAL: Pin is in the normal (not open drain) mode
dpslwk 0:7480abd3b63b 157 - PINSEL_PINMODE_OPENDRAIN: Pin is in the open drain mode */
dpslwk 0:7480abd3b63b 158 } PINSEL_CFG_Type;
dpslwk 0:7480abd3b63b 159
dpslwk 0:7480abd3b63b 160 /**
dpslwk 0:7480abd3b63b 161 * @}
dpslwk 0:7480abd3b63b 162 */
dpslwk 0:7480abd3b63b 163
dpslwk 0:7480abd3b63b 164
dpslwk 0:7480abd3b63b 165 /* Public Functions ----------------------------------------------------------- */
dpslwk 0:7480abd3b63b 166 /** @defgroup PINSEL_Public_Functions PINSEL Public Functions
dpslwk 0:7480abd3b63b 167 * @{
dpslwk 0:7480abd3b63b 168 */
dpslwk 0:7480abd3b63b 169
dpslwk 0:7480abd3b63b 170 void PINSEL_ConfigPin(PINSEL_CFG_Type *PinCfg);
dpslwk 0:7480abd3b63b 171 void PINSEL_ConfigTraceFunc (FunctionalState NewState);
dpslwk 0:7480abd3b63b 172 void PINSEL_SetI2C0Pins(uint8_t i2cPinMode, FunctionalState filterSlewRateEnable);
dpslwk 0:7480abd3b63b 173
dpslwk 0:7480abd3b63b 174
dpslwk 0:7480abd3b63b 175 /**
dpslwk 0:7480abd3b63b 176 * @}
dpslwk 0:7480abd3b63b 177 */
dpslwk 0:7480abd3b63b 178
dpslwk 0:7480abd3b63b 179
dpslwk 0:7480abd3b63b 180 #ifdef __cplusplus
dpslwk 0:7480abd3b63b 181 }
dpslwk 0:7480abd3b63b 182 #endif
dpslwk 0:7480abd3b63b 183
dpslwk 0:7480abd3b63b 184 #endif /* LPC17XX_PINSEL_H_ */
dpslwk 0:7480abd3b63b 185
dpslwk 0:7480abd3b63b 186 /**
dpslwk 0:7480abd3b63b 187 * @}
dpslwk 0:7480abd3b63b 188 */
dpslwk 0:7480abd3b63b 189
dpslwk 0:7480abd3b63b 190 /* --------------------------------- End Of File ------------------------------ */
dpslwk 0:7480abd3b63b 191