220 lines
		
	
	
		
			7.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			220 lines
		
	
	
		
			7.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  *******************************************************************************
 | |
|  * Copyright (c) 2017, STMicroelectronics
 | |
|  * All rights reserved.
 | |
|  *
 | |
|  * Redistribution and use in source and binary forms, with or without
 | |
|  * modification, are permitted provided that the following conditions are met:
 | |
|  *
 | |
|  * 1. Redistributions of source code must retain the above copyright notice,
 | |
|  *    this list of conditions and the following disclaimer.
 | |
|  * 2. Redistributions in binary form must reproduce the above copyright notice,
 | |
|  *    this list of conditions and the following disclaimer in the documentation
 | |
|  *    and/or other materials provided with the distribution.
 | |
|  * 3. Neither the name of STMicroelectronics nor the names of its contributors
 | |
|  *    may be used to endorse or promote products derived from this software
 | |
|  *    without specific prior written permission.
 | |
|  *
 | |
|  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 | |
|  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | |
|  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 | |
|  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
 | |
|  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | |
|  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 | |
|  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 | |
|  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 | |
|  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 | |
|  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | |
|  *******************************************************************************
 | |
|  */
 | |
| 
 | |
| #ifndef _VARIANT_ARDUINO_STM32_
 | |
| #define _VARIANT_ARDUINO_STM32_
 | |
| 
 | |
| /*----------------------------------------------------------------------------
 | |
|  *        Headers
 | |
|  *----------------------------------------------------------------------------*/
 | |
| #include "PeripheralPins.h"
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif // __cplusplus
 | |
| 
 | |
| /*----------------------------------------------------------------------------
 | |
|  *        Pins
 | |
|  *----------------------------------------------------------------------------*/
 | |
| extern const PinName digitalPin[];
 | |
| // Right Side
 | |
| #define PE1  0
 | |
| #define PE0  1
 | |
| #define PB9  2
 | |
| #define PB8  3
 | |
| #define PB7  4
 | |
| #define PB6  5
 | |
| #define PB5  6
 | |
| #define PB3  7
 | |
| #define PD7  8
 | |
| #define PD6  9
 | |
| #define PD5  10
 | |
| #define PD4  11
 | |
| #define PD3  12
 | |
| #define PD2  13
 | |
| #define PD1  14
 | |
| #define PD0  15
 | |
| #define PC12 16
 | |
| #define PC11 17
 | |
| #define PC10 18
 | |
| #define PA15 19
 | |
| #define PA12 20 // USB_DP
 | |
| #define PA11 21 // USB_DM
 | |
| #define PA10 22
 | |
| #define PA9  23
 | |
| #define PA8  24
 | |
| #define PC9  25
 | |
| #define PC8  26
 | |
| #define PC7  27
 | |
| #define PC6  28
 | |
| #define PD15 29
 | |
| #define PD14 30
 | |
| #define PD13 31
 | |
| #define PD12 32
 | |
| #define PD11 33
 | |
| #define PD10 34
 | |
| #define PD9  35
 | |
| #define PD8  36
 | |
| #define PB15 37
 | |
| // Left Side
 | |
| #define PE2  38
 | |
| #define PE3  39
 | |
| #define PE4  40 // BUT K0
 | |
| #define PE5  41 // BUT K1
 | |
| #define PE6  42
 | |
| #define PC13 43
 | |
| #define PC0  44 // A0
 | |
| #define PC1  45 // A1
 | |
| #define PC2  46 // A2
 | |
| #define PC3  47 // A3
 | |
| #define PA0  48 // A4/WK_UP: BUT K_UP
 | |
| #define PA1  49 // A5
 | |
| #define PA2  50 // A6
 | |
| #define PA3  51 // A7
 | |
| #define PA4  52 // A8
 | |
| #define PA5  53 // A9
 | |
| #define PC4  54 // A10
 | |
| #define PC5  55 // A11
 | |
| #define PB0  56 // A12
 | |
| #define PB1  57 // A13
 | |
| #define PA6  58 // LED D2
 | |
| #define PA7  59 // LED D3 (active LOW)
 | |
| #define PE7  60
 | |
| #define PE8  61
 | |
| #define PE9  62
 | |
| #define PE10 63
 | |
| #define PE11 64
 | |
| #define PE12 65
 | |
| #define PE13 66
 | |
| #define PE14 67
 | |
| #define PE15 68
 | |
| #define PB10 69
 | |
| #define PB11 70
 | |
| #define PB12 71
 | |
| #define PB13 72
 | |
| #define PB14 73
 | |
| #define PB4  74
 | |
| 
 | |
| // This must be a literal
 | |
| #define NUM_DIGITAL_PINS        75
 | |
| // This must be a literal with a value less than or equal to MAX_ANALOG_INPUTS
 | |
| #define NUM_ANALOG_INPUTS       14
 | |
| #define NUM_ANALOG_FIRST        44
 | |
| 
 | |
| // Below ADC, DAC and PWM definitions already done in the core
 | |
| // Could be redefined here if needed
 | |
| // ADC resolution is 12bits
 | |
| //#define ADC_RESOLUTION          12
 | |
| //#define DACC_RESOLUTION         12
 | |
| 
 | |
| // PWM resolution
 | |
| #define PWM_RESOLUTION          8
 | |
| #define PWM_FREQUENCY           20000
 | |
| #define PWM_MAX_DUTY_CYCLE      255
 | |
| 
 | |
| // On-board LED pin number
 | |
| #define LED_D2                  PA6
 | |
| #define LED_D3                  PA7
 | |
| 
 | |
| // Board specific button
 | |
| #define BTN_K_UP                PA0
 | |
| 
 | |
| #define LED_BUILTIN             LED_D2
 | |
| #define LED_GREEN               LED_D2
 | |
| 
 | |
| // On-board user button
 | |
| #define BTN_K0                  PE4
 | |
| #define BTN_K1                  PE3
 | |
| #define USER_BTN                BTN_K0
 | |
| 
 | |
| // Below SPI and I2C definitions already done in the core
 | |
| // Could be redefined here if differs from the default one
 | |
| // SPI Definitions
 | |
| #define PIN_SPI_MOSI            PB15
 | |
| #define PIN_SPI_MISO            PB14
 | |
| #define PIN_SPI_SCK             PB13
 | |
| #define PIN_SPI_SS              PB12
 | |
| //#define PIN_SPI_SS1             PB0 // W25Q16 (on board flash)
 | |
| 
 | |
| // I2C Definitions
 | |
| #define PIN_WIRE_SDA            PB7
 | |
| #define PIN_WIRE_SCL            PB6
 | |
| 
 | |
| // Timer Definitions
 | |
| //Do not use timer used by PWM pins when possible. See PinMap_PWM in PeripheralPins.c
 | |
| #define TIMER_TONE              TIM6
 | |
| 
 | |
| // Do not use basic timer: OC is required
 | |
| #define TIMER_SERVO             TIM2  //TODO: advanced-control timers don't work
 | |
| 
 | |
| // UART Definitions
 | |
| // Define here Serial instance number to map on Serial generic name
 | |
| #define SERIAL_UART_INSTANCE    1 //ex: 2 for Serial2 (USART2)
 | |
| // DEBUG_UART could be redefined to print on another instance than 'Serial'
 | |
| //#define DEBUG_UART              ((USART_TypeDef *) U(S)ARTX) // ex: USART3
 | |
| // DEBUG_UART baudrate, default: 9600 if not defined
 | |
| //#define DEBUG_UART_BAUDRATE     x
 | |
| // DEBUG_UART Tx pin name, default: the first one found in PinMap_UART_TX for DEBUG_UART
 | |
| //#define DEBUG_PINNAME_TX        PX_n // PinName used for TX
 | |
| 
 | |
| // Default pin used for 'Serial' instance (ex: ST-Link)
 | |
| // Mandatory for Firmata
 | |
| #define PIN_SERIAL_RX           PA10
 | |
| #define PIN_SERIAL_TX           PA9
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| } // extern "C"
 | |
| #endif
 | |
| /*----------------------------------------------------------------------------
 | |
|  *        Arduino objects - C++ only
 | |
|  *----------------------------------------------------------------------------*/
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| // These serial port names are intended to allow libraries and architecture-neutral
 | |
| // sketches to automatically default to the correct port name for a particular type
 | |
| // of use.  For example, a GPS module would normally connect to SERIAL_PORT_HARDWARE_OPEN,
 | |
| // the first hardware serial port whose RX/TX pins are not dedicated to another use.
 | |
| //
 | |
| // SERIAL_PORT_MONITOR        Port which normally prints to the Arduino Serial Monitor
 | |
| //
 | |
| // SERIAL_PORT_USBVIRTUAL     Port which is USB virtual serial
 | |
| //
 | |
| // SERIAL_PORT_LINUXBRIDGE    Port which connects to a Linux system via Bridge library
 | |
| //
 | |
| // SERIAL_PORT_HARDWARE       Hardware serial port, physical RX & TX pins.
 | |
| //
 | |
| // SERIAL_PORT_HARDWARE_OPEN  Hardware serial ports which are open for use.  Their RX & TX
 | |
| //                            pins are NOT connected to anything by default.
 | |
| #define SERIAL_PORT_MONITOR     Serial
 | |
| #define SERIAL_PORT_HARDWARE    Serial1
 | |
| #endif
 | |
| 
 | |
| #endif /* _VARIANT_ARDUINO_STM32_ */
 |