311 lines
		
	
	
		
			7.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			311 lines
		
	
	
		
			7.9 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.
 | |
|  *******************************************************************************
 | |
|  */
 | |
| 
 | |
| #include "pins_arduino.h"
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| #ifdef ARDUINO_STEVAL
 | |
| // Pin number
 | |
| // This array allows to wrap Arduino pin number(Dx or x)
 | |
| // to STM32 PinName (PX_n)
 | |
| const PinName digitalPin[] = {
 | |
|   PA_9,  // TX
 | |
|   PA_10, // RX
 | |
| 
 | |
|   // WIFI
 | |
|   PD_3,  // CTS
 | |
|   PD_4,  // RTS
 | |
|   PD_5,  // TX
 | |
|   PD_6,  // RX
 | |
|   PB_5,  // WIFI_WAKEUP
 | |
|   PE_11, // WIFI_RESET
 | |
|   PE_12, // WIFI_BOOT
 | |
| 
 | |
|   // STATUS_LED
 | |
|   PE_1,  //STATUS_LED
 | |
| 
 | |
|   // SPI USER
 | |
|   PB_12, // SPI_CS
 | |
|   PB_15, // SPI_MOSI
 | |
|   PB_14, // SPI_MISO
 | |
|   PB_13, // SPI_SCK
 | |
| 
 | |
|   // I2C USER
 | |
|   PB_7,  // SDA
 | |
|   PB_6,  // SCL
 | |
| 
 | |
|   // SPI
 | |
|   PA_4,  // SPI_CS
 | |
|   PA_5,  // SPI_SCK
 | |
|   PA_6,  // SPI_MISO
 | |
|   PA_7,  // SPI_MOSI
 | |
| 
 | |
|   // JTAG
 | |
|   PA_13, // JTAG_TMS/SWDIO
 | |
|   PA_14, // JTAG_TCK/SWCLK
 | |
|   PB_3,  // JTAG_TDO/SWO
 | |
| 
 | |
|   // SDCARD
 | |
|   PC_8,  // SDIO_D0
 | |
|   PC_9,  // SDIO_D1
 | |
|   PA_15, // SD_CARD_DETECT
 | |
|   PC_10, // SDIO_D2
 | |
|   PC_11, // SDIO_D3
 | |
|   PC_12, // SDIO_CK
 | |
|   PD_2,  // SDIO_CMD
 | |
| 
 | |
|   // OTG
 | |
|   PA_11, // OTG_DM
 | |
|   PA_12, // OTG_DP
 | |
| 
 | |
|   // IR/PROBE
 | |
|   PD_1,  // IR_OUT
 | |
|   PC_1,  // IR_ON
 | |
| 
 | |
|   // USER_PINS
 | |
|   PD_7,  // USER3
 | |
|   PB_9,  // USER1
 | |
|   PE_0,  // USER2
 | |
|   PB_4,  // USER4
 | |
| 
 | |
|   // USERKET
 | |
|   PE_7,  // USER_BUTTON
 | |
| 
 | |
|   // ENDSTOPS
 | |
|   PD_8,  // X_STOP
 | |
|   PD_9,  // Y_STOP
 | |
|   PD_10, // Z_STOP
 | |
|   PD_11, // U_STOP
 | |
|   PA_8,  // V_STOP
 | |
|   PD_0,  // W_STOP
 | |
| 
 | |
|   // HEATERS
 | |
|   PD_13, // BED_HEAT_2
 | |
|   PD_14, // BED_HEAT_1
 | |
|   PD_15, // BED_HEAT_3
 | |
|   PC_7,  // E1_HEAT_PWM
 | |
|   PB_0,  // E2_HEAT_PWM
 | |
|   PB_1,  // E3_HEAT_PWM
 | |
| 
 | |
|   // THERMISTOR
 | |
|   PC_2,  // BED_THERMISTOR_1
 | |
|   PC_3,  // BED_THERMISTOR_2
 | |
|   PA_3,  // BED_THERMISTOR_3
 | |
|   PA_0,  // E1_THERMISTOR
 | |
|   PA_1,  // E2_THERMISTOR
 | |
|   PA_2,  // E3_THERMISTOR
 | |
| 
 | |
|   // FANS
 | |
|   PC_4,  // E1_FAN
 | |
|   PC_5,  // E2_FAN
 | |
|   PE_8,  // E3_FAN
 | |
| 
 | |
|   // X_MOTOR
 | |
|   PE_13, // X_RESET
 | |
|   PE_14, // X_PWM
 | |
|   PE_15, // X_DIR
 | |
| 
 | |
|   // Y_MOTOR
 | |
|   PE_10, // Y_RESET
 | |
|   PB_10, // Y_PWM
 | |
|   PE_9,  // Y_DIR
 | |
| 
 | |
|   // Z_MOTOR
 | |
|   PC_15, // Z_RESET
 | |
|   PC_6,  // Z_PWM
 | |
|   PC_0,  // Z_DIR
 | |
| 
 | |
|   // E1_MOTOR
 | |
|   PC_14, // E1_RESET
 | |
|   PC_13, // E1_DIR
 | |
|   PD_12, // E1_PWM
 | |
| 
 | |
|   // E2_MOTOR
 | |
|   PE_4,  // E2_RESET
 | |
|   PE_5,  // E2_PWM
 | |
|   PE_6,  // E2_DIR
 | |
| 
 | |
|   // E3_MOTOR
 | |
|   PE_3,  // E3_RESET
 | |
|   PE_2,  // E3_DIR
 | |
|   PB_8   // E3_PWM
 | |
| };
 | |
| #endif
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 | |
| 
 | |
| // ----------------------------------------------------------------------------
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| /**
 | |
|   * @brief  System Clock Configuration
 | |
|   *         The system Clock is configured as follow :
 | |
|   *            System Clock source            = PLL (HSI)
 | |
|   *            SYSCLK(Hz)                     = 84000000
 | |
|   *            HCLK(Hz)                       = 84000000
 | |
|   *            AHB Prescaler                  = 1
 | |
|   *            APB1 Prescaler                 = 2
 | |
|   *            APB2 Prescaler                 = 1
 | |
|   *            HSI Frequency(Hz)              = 16000000
 | |
|   *            PLL_M                          = 16
 | |
|   *            PLL_N                          = 336
 | |
|   *            PLL_P                          = 4
 | |
|   *            PLL_Q                          = 7
 | |
|   *            VDD(V)                         = 3.3
 | |
|   *            Main regulator output voltage  = Scale2 mode
 | |
|   *            Flash Latency(WS)              = 2
 | |
|   * @param  None
 | |
|   * @retval None
 | |
|   */
 | |
| WEAK void SystemClock_Config(void)
 | |
| {
 | |
|   RCC_OscInitTypeDef RCC_OscInitStruct = {};
 | |
|   RCC_ClkInitTypeDef RCC_ClkInitStruct = {};
 | |
| 
 | |
|   /* Configure the main internal regulator output voltage */
 | |
|   __HAL_RCC_PWR_CLK_ENABLE();
 | |
|   __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE2);
 | |
| 
 | |
|   /* Initializes the CPU, AHB and APB busses clocks */
 | |
|   RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
 | |
|   RCC_OscInitStruct.HSEState = RCC_HSE_ON;
 | |
|   RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
 | |
|   RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
 | |
|   RCC_OscInitStruct.PLL.PLLM = 15;
 | |
|   RCC_OscInitStruct.PLL.PLLN = 144;
 | |
|   RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV4;
 | |
|   RCC_OscInitStruct.PLL.PLLQ = 5;
 | |
|   if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
 | |
|     Error_Handler();
 | |
|   }
 | |
|   /* Initializes the CPU, AHB and APB busses clocks */
 | |
|   RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK
 | |
|                                 | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
 | |
|   RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
 | |
|   RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
 | |
|   RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
 | |
|   RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
 | |
| 
 | |
|   if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK) {
 | |
|     Error_Handler();
 | |
|   }
 | |
| }
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 | |
| 
 | |
| 
 | |
| // PA_0  54 // E1_THERMISTOR
 | |
| // PA_1  55 // E2_THERMISTOR
 | |
| // PA_2  56 // E3_THERMISTOR
 | |
| // PA_3  53 // BED_THERMISTOR_3
 | |
| // PA_4  16 // SPI_CS
 | |
| // PA_5  17 // SPI_SCK
 | |
| // PA_6  18 // SPI_MISO
 | |
| // PA_7  19 // SPI_MOSI
 | |
| // PA_8  43 // V_STOP
 | |
| // PA_9   0 //TX
 | |
| // PA_10  1 //RX
 | |
| // PA_11 30 //OTG_DM
 | |
| // PA_12 31 //OTG_DP
 | |
| // PA_13 20 // JTAG_TMS/SWDIO
 | |
| // PA_14 21 // JTAG_TCK/SWCLK
 | |
| // PA_15 25 // SD_CARD_DETECT
 | |
| // PB_0  49 // E2_HEAT_PWM
 | |
| // PB_1  50 // E3_HEAT_PWM
 | |
| // PB_3  22 // JTAG_TDO/SWO
 | |
| // PB_4  37 // USER4
 | |
| // PB_5   6 // WIFI_WAKEUP
 | |
| // PB_6  15 // SCL
 | |
| // PB_7  14 // SDA
 | |
| // PB_8  77 // E3_PWM
 | |
| // PB_9  35 // USER1
 | |
| // PB_10 64 // Y_PWM
 | |
| // PB_12 10 // SPI_CS
 | |
| // PB_13 13 // SPI_SCK
 | |
| // PB_14 12 // SPI_MISO
 | |
| // PB_15 11 // SPI_MOSI
 | |
| // PC_0  68 // Z_DIR
 | |
| // PC_1  33 //IR_ON
 | |
| // PC_2  51 // BED_THERMISTOR_1
 | |
| // PC_3  52 // BED_THERMISTOR_2
 | |
| // PC_4  57 // E1_FAN
 | |
| // PC_5  58 // E2_FAN
 | |
| // PC_6  67 // Z_PWM
 | |
| // PC_7  48 // E1_HEAT_PWM
 | |
| // PC_8  23 // SDIO_D0
 | |
| // PC_9  24 // SDIO_D1
 | |
| // PC_10 26 // SDIO_D2
 | |
| // PC_11 27 // SDIO_D3
 | |
| // PC_12 28 // SDIO_CK
 | |
| // PC_13 70 // E1_DIR
 | |
| // PC_14 69 // E1_RESET
 | |
| // PC_15 66 // Z_RESET
 | |
| // PD_0  44 // W_STOP
 | |
| // PD_1  32 //IR_OUT
 | |
| // PD_2  29 // SDIO_CMD
 | |
| // PD_3   2 // CTS
 | |
| // PD_4   3 // RTS
 | |
| // PD_5   4 // TX
 | |
| // PD_6   5 // RX
 | |
| // PD_7  34 // USER3
 | |
| // PD_8  39 // X_STOP
 | |
| // PD_9  40 // Y_STOP
 | |
| // PD_10 41 // Z_STOP
 | |
| // PD_11 42 // U_STOP
 | |
| // PD_12 71 // E1_PWM
 | |
| // PD_13 45 // BED_HEAT_2
 | |
| // PD_14 46 // BED_HEAT_1
 | |
| // PD_15 47 // BED_HEAT_3
 | |
| // PE_0  36 // USER2
 | |
| // PE_1   9 // STATUS_LED
 | |
| // PE_2  76 // E3_DIR
 | |
| // PE_3  75 // E3_RESET
 | |
| // PE_4  72 // E2_RESET
 | |
| // PE_5  73 // E2_PWM
 | |
| // PE_6  74 // E2_DIR
 | |
| // PE_7  38 // USER_BUTTON
 | |
| // PE_8  59 // E3_FAN
 | |
| // PE_9  65 // Y_DIR
 | |
| // PE_10 63 // Y_RESET
 | |
| // PE_11  7 // WIFI_RESET
 | |
| // PE_12  8 // WIFI_BOOT
 | |
| // PE_13 60 // X_RESET
 | |
| // PE_14 61 // X_PWM
 | |
| // PE_15 62 // X_DIR
 |