Initial commit

This commit is contained in:
2024-10-25 21:01:00 +02:00
parent 3f7932870d
commit 42a09c0a91
2865 changed files with 1662903 additions and 0 deletions
.devcontainer
.editorconfig.gitattributes
.github
.gitignore
.vscode
LICENSEMakefile
Marlin
Configuration.hConfiguration_adv.hMakefileMarlin.inoVersion.hconfig.ini
lib
src
HAL
AVR
DUE
ESP32
HAL.h
LINUX
LPC1768
NATIVE_SIM
SAMD21
SAMD51
STM32
STM32F1
TEENSY31_32
TEENSY35_36
TEENSY40_41
platforms.h
shared
MarlinCore.cppMarlinCore.h
core
feature
adc
ammeter.cppammeter.hbabystep.cppbabystep.hbacklash.cppbacklash.hbaricuda.cppbaricuda.h
bedlevel
binary_stream.cppbinary_stream.hbltouch.cppbltouch.hcancel_object.cppcancel_object.hcaselight.cppcaselight.hclosedloop.cppclosedloop.hcontrollerfan.cppcontrollerfan.hcooler.cppcooler.h
dac
digipot
direct_stepping.cppdirect_stepping.he_parser.cppe_parser.heasythreed_ui.cppeasythreed_ui.hencoder_i2c.cppencoder_i2c.hethernet.cppethernet.hfancheck.cppfancheck.hfanmux.cppfanmux.hfilwidth.cppfilwidth.hfwretract.cppfwretract.hhost_actions.cpphost_actions.hhotend_idle.cpphotend_idle.hjoystick.cppjoystick.h
leds
max7219.cppmax7219.hmeatpack.cppmeatpack.hmixing.cppmixing.h
mmu
password
pause.cpppause.hpower.cpppower.hpower_monitor.cpppower_monitor.hpowerloss.cpppowerloss.hprobe_temp_comp.cppprobe_temp_comp.hrepeat.cpprepeat.hrunout.cpprunout.hsolenoid.cppsolenoid.hspindle_laser.cppspindle_laser.hspindle_laser_types.hstepper_driver_safety.cppstepper_driver_safety.htmc_util.cpptmc_util.htramming.cpptramming.htwibus.cpptwibus.hx_twist.cppx_twist.hz_stepper_align.cppz_stepper_align.h
gcode
bedlevel
calibrate
config
control
eeprom
feature
gcode.cppgcode.hgcode_d.cpp
geometry
host
lcd
motion
parser.cppparser.h
probe
queue.cppqueue.h
scara
sd
stats
temp
units
inc
lcd
HD44780
TFTGLCD
buttons.h
dogm
e3v2
extui
anycubic_chiron
anycubic_i3mega
dgus
dgus_reloaded
example
ftdi_eve_touch_ui
archim2-flash
bioprinter
cocoa_press
compat.hconfig.hftdi_eve_extui.cpp
ftdi_eve_lib
generic
about_screen.cppabout_screen.hadvanced_settings_menu.cppadvanced_settings_menu.halert_dialog_box.cppalert_dialog_box.hbacklash_compensation_screen.cppbacklash_compensation_screen.hbase_numeric_adjustment_screen.cppbase_numeric_adjustment_screen.hbase_screen.cppbase_screen.hbed_mesh_base.cppbed_mesh_base.hbed_mesh_edit_screen.cppbed_mesh_edit_screen.hbed_mesh_view_screen.cppbed_mesh_view_screen.hboot_screen.cppboot_screen.hcase_light_screen.cppcase_light_screen.hchange_filament_screen.cppchange_filament_screen.hconfirm_abort_print_dialog_box.cppconfirm_abort_print_dialog_box.hconfirm_auto_calibration_dialog_box.cppconfirm_auto_calibration_dialog_box.hconfirm_erase_flash_dialog_box.cppconfirm_erase_flash_dialog_box.hconfirm_start_print_dialog_box.cppconfirm_start_print_dialog_box.hconfirm_user_request_alert_box.cppconfirm_user_request_alert_box.hcustom_user_menus.cppcustom_user_menus.hdefault_acceleration_screen.cppdefault_acceleration_screen.hdeveloper_menu.cppdeveloper_menu.hdialog_box_base_class.cppdialog_box_base_class.hdisplay_tuning_screen.cppdisplay_tuning_screen.hendstop_state_screen.cppendstop_state_screen.hfeedrate_percent_screen.cppfeedrate_percent_screen.hfilament_menu.cppfilament_menu.hfilament_runout_screen.cppfilament_runout_screen.hfiles_screen.cppfiles_screen.hflow_percent_screen.cppflow_percent_screen.hinterface_settings_screen.cppinterface_settings_screen.hinterface_sounds_screen.cppinterface_sounds_screen.hjerk_screen.cppjerk_screen.hjunction_deviation_screen.cppjunction_deviation_screen.hkill_screen.cppkill_screen.hlanguage_menu.cpplanguage_menu.hleveling_menu.cppleveling_menu.hlinear_advance_screen.cpplinear_advance_screen.hlock_screen.cpplock_screen.hmain_menu.cppmain_menu.hmax_acceleration_screen.cppmax_acceleration_screen.hmax_velocity_screen.cppmax_velocity_screen.hmedia_player_screen.cppmedia_player_screen.hmove_axis_screen.cppmove_axis_screen.hnozzle_offsets_screen.cppnozzle_offsets_screen.hnudge_nozzle_screen.cppnudge_nozzle_screen.hrestore_failsafe_dialog_box.cpprestore_failsafe_dialog_box.hsave_settings_dialog_box.cppsave_settings_dialog_box.hscreens.hspinner_dialog_box.cppspinner_dialog_box.hstatistics_screen.cppstatistics_screen.hstatus_screen.cppstatus_screen.hstepper_bump_sensitivity_screen.cppstepper_bump_sensitivity_screen.hstepper_current_screen.cppstepper_current_screen.hsteps_screen.cppsteps_screen.hstress_test_screen.cppstress_test_screen.hstring_format.cppstring_format.htemperature_screen.cpptemperature_screen.htouch_calibration_screen.cpptouch_calibration_screen.htouch_registers_screen.cpptouch_registers_screen.htune_menu.cpptune_menu.hwidget_demo_screen.cppwidget_demo_screen.hz_offset_screen.cppz_offset_screen.h
language
pin_mappings.hscreen_data.hscreens.cppscreens.h
theme
malyan
mks_ui
SPIFlashStorage.cppSPIFlashStorage.hSPI_TFT.cppSPI_TFT.hdraw_about.cppdraw_about.hdraw_acceleration_settings.cppdraw_acceleration_settings.hdraw_advance_settings.cppdraw_advance_settings.hdraw_auto_level_offset_settings.cppdraw_auto_level_offset_settings.hdraw_baby_stepping.cppdraw_baby_stepping.hdraw_change_speed.cppdraw_change_speed.hdraw_cloud_bind.cppdraw_cloud_bind.hdraw_dialog.cppdraw_dialog.hdraw_eeprom_settings.cppdraw_eeprom_settings.hdraw_encoder_settings.cppdraw_encoder_settings.hdraw_error_message.cppdraw_error_message.hdraw_extrusion.cppdraw_extrusion.hdraw_fan.cppdraw_fan.hdraw_filament_change.cppdraw_filament_change.hdraw_filament_settings.cppdraw_filament_settings.hdraw_gcode.cppdraw_gcode.hdraw_home.cppdraw_home.hdraw_homing_sensitivity_settings.cppdraw_homing_sensitivity_settings.hdraw_jerk_settings.cppdraw_jerk_settings.hdraw_keyboard.cppdraw_keyboard.hdraw_language.cppdraw_language.hdraw_level_settings.cppdraw_level_settings.hdraw_machine_para.cppdraw_machine_para.hdraw_machine_settings.cppdraw_machine_settings.hdraw_manuaLevel.cppdraw_manuaLevel.hdraw_max_feedrate_settings.cppdraw_max_feedrate_settings.hdraw_media_select.cppdraw_media_select.hdraw_more.cppdraw_more.hdraw_motor_settings.cppdraw_motor_settings.hdraw_move_motor.cppdraw_move_motor.hdraw_number_key.cppdraw_number_key.hdraw_operation.cppdraw_operation.hdraw_pause_message.cppdraw_pause_message.hdraw_pause_position.cppdraw_pause_position.hdraw_preHeat.cppdraw_preHeat.hdraw_print_file.cppdraw_print_file.hdraw_printing.cppdraw_printing.hdraw_ready_print.cppdraw_ready_print.hdraw_set.cppdraw_set.hdraw_step_settings.cppdraw_step_settings.hdraw_tmc_current_settings.cppdraw_tmc_current_settings.hdraw_tmc_step_mode_settings.cppdraw_tmc_step_mode_settings.hdraw_tool.cppdraw_tool.hdraw_touch_calibration.cppdraw_touch_calibration.hdraw_tramming_pos_settings.cppdraw_tramming_pos_settings.hdraw_ui.cppdraw_ui.hdraw_wifi.cppdraw_wifi.hdraw_wifi_list.cppdraw_wifi_list.hdraw_wifi_settings.cppdraw_wifi_settings.hdraw_wifi_tips.cppdraw_wifi_tips.hdraw_z_offset_wizard.cppdraw_z_offset_wizard.hgb2312_puhui16.cppirq_overrid.cppmks_hardware.cppmks_hardware.hpic_manager.cpppic_manager.hprinter_operation.cppprinter_operation.htft_Language_en.htft_Language_fr.htft_Language_it.htft_Language_ru.htft_Language_s_cn.htft_Language_sp.htft_Language_t_cn.htft_lvgl_configuration.cpptft_lvgl_configuration.htft_multi_language.cpptft_multi_language.hwifiSerial.hwifiSerial_STM32.cppwifiSerial_STM32.hwifiSerial_STM32F1.cppwifiSerial_STM32F1.hwifi_module.cppwifi_module.hwifi_upload.cppwifi_upload.h
nextion
ui_api.cppui_api.h
language
lcdprint.cpplcdprint.hmarlinui.cppmarlinui.h
menu
scaled_tft.h
tft
bitmaps
canvas.cppcanvas.h
fontdata
images
tft.cpptft.htft_color.htft_image.cpptft_image.htft_queue.cpptft_queue.htft_string.cpptft_string.htouch.cpptouch.hui_1024x600.cppui_1024x600.hui_320x240.cppui_320x240.hui_480x320.cppui_480x320.hui_common.cppui_common.h
tft_io
thermistornames.h
touch
utf8.cpputf8.h
libs
module
pins
esp32
gd32f1
linux
lpc1768
lpc1769
mega
pins.hpinsDebug.hpinsDebug_list.hpins_postprocess.h
rambo
ramps
sam
samd
sanguino
sensitive_pins.h
stm32f0
stm32f1
stm32f4
stm32f7
stm32g0
stm32h7
teensy2
teensy3
teensy4
sd
tests
buildroot
bin
etc
share
PlatformIO
boards
debugging
ldscripts
scripts
variants
MARLIN_ARCHIM
MARLIN_ARTILLERY_RUBY
MARLIN_BIGTREE_BTT002
MARLIN_BIGTREE_E3_RRF
MARLIN_BIGTREE_GTR_V1
MARLIN_BIGTREE_OCTOPUS_PRO_V1_F429
MARLIN_BIGTREE_OCTOPUS_V1
MARLIN_BIGTREE_SKR_PRO_11
MARLIN_BTT_EBB42_V1_1
MARLIN_BTT_SKR_SE_BX
MARLIN_CREALITY_STM32F401RC
MARLIN_CREALITY_STM32F401RE
MARLIN_F103Rx
MARLIN_F103VE_LONGER
MARLIN_F103Vx
MARLIN_F103Zx
MARLIN_F401RC
MARLIN_F407VE
MARLIN_F407ZE
MARLIN_F446VE
MARLIN_F446Zx_TRONXY
MARLIN_F4x7Vx
MARLIN_FLY_F407ZG
MARLIN_FYSETC_CHEETAH_V20
MARLIN_FYSETC_S6
MARLIN_FYSETC_SPIDER_KING407
MARLIN_G0B1RE
MARLIN_G0B1VE
MARLIN_H723VG
MARLIN_H723ZE
MARLIN_H743VI
MARLIN_LERDGE
MARLIN_MEGA_EXTENDED
MARLIN_MKS_ROBIN2
MARLIN_MKS_SKIPR_V1
MARLIN_TH3D_EZBOARD_V2
marlin_maple_CHITU_F103
marlin_maple_MEEB_3DP
cmake
dwin
bin
icons-3
icons-4
icons-7
000-ICON_LOGO_Creality.jpg001-ICON_Print_0.jpg002-ICON_Print_1.jpg003-ICON_Prepare_0.jpg004-ICON_Prepare_1.jpg005-ICON_Control_0.jpg006-ICON_Control_1.jpg007-ICON_Leveling_0.jpg008-ICON_Leveling_1.jpg009-ICON_HotendTemp.jpg010-ICON_BedTemp.jpg011-ICON_Speed.jpg012-ICON_Zoffset.jpg013-ICON_Back.jpg014-ICON_File.jpg015-ICON_PrintTime.jpg016-ICON_RemainTime.jpg017-ICON_Setup_0.jpg018-ICON_Setup_1.jpg019-ICON_Pause_0.jpg020-ICON_Pause_1.jpg021-ICON_Continue_0.jpg022-ICON_Continue_1.jpg023-ICON_Stop_0.jpg024-ICON_Stop_1.jpg025-ICON_Bar.jpg026-ICON_More.jpg027-ICON_Axis.jpg028-ICON_CloseMotor.jpg029-ICON_Homing.jpg030-ICON_SetHome.jpg031-ICON_PLAPreheat.jpg032-ICON_ABSPreheat.jpg033-ICON_Cool.jpg034-ICON_Language.jpg035-ICON_MoveX.jpg036-ICON_MoveY.jpg037-ICON_MoveZ.jpg038-ICON_Extruder.jpg040-ICON_Temperature.jpg041-ICON_Motion.jpg042-ICON_WriteEEPROM.jpg043-ICON_ReadEEPROM.jpg044-ICON_ResetEEPROM.jpg045-ICON_Info.jpg046-ICON_SetEndTemp.jpg047-ICON_SetBedTemp.jpg048-ICON_FanSpeed.jpg049-ICON_SetPLAPreheat.jpg050-ICON_SetABSPreheat.jpg051-ICON_MaxSpeed.jpg052-ICON_MaxAccelerated.jpg053-ICON_MaxJerk.jpg054-ICON_Step.jpg055-ICON_PrintSize.jpg056-ICON_Version.jpg057-ICON_Contact.jpg058-ICON_StockConfiguraton.jpg059-ICON_MaxSpeedX.jpg060-ICON_MaxSpeedY.jpg061-ICON_MaxSpeedZ.jpg062-ICON_MaxSpeedE.jpg063-ICON_MaxAccX.jpg064-ICON_MaxAccY.jpg065-ICON_MaxAccZ.jpg066-ICON_MaxAccE.jpg067-ICON_MaxSpeedJerkX.jpg068-ICON_MaxSpeedJerkY.jpg069-ICON_MaxSpeedJerkZ.jpg070-ICON_MaxSpeedJerkE.jpg071-ICON_StepX.jpg072-ICON_StepY.jpg073-ICON_StepZ.jpg074-ICON_StepE.jpg075-ICON_Setspeed.jpg076-ICON_SetZOffset.jpg077-ICON_Rectangle.jpg078-ICON_BLTouch.jpg079-ICON_TempTooLow.jpg080-ICON_AutoLeveling.jpg081-ICON_TempTooHigh.jpg082-ICON_NoTips_C.jpg083-ICON_NoTips_E.jpg084-ICON_Continue_C.jpg085-ICON_Continue_E.jpg086-ICON_Cancel_C.jpg087-ICON_Cancel_E.jpg088-ICON_Confirm_C.jpg089-ICON_Confirm_E.jpg090-ICON_Info_0.jpg091-ICON_Info_1.jpg
icons-svg
make_jpgs.sh
extras
fonts
git
pin_interrupt_test
pixmaps
scripts
sublime
vscode
test-gcode
tests
web-ui
config
docker
docs
ini
platformio.iniprocess-palette.json

@ -0,0 +1,320 @@
/*
Copyright (c) 2011 Arduino. All right reserved.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "pins_arduino.h"
#ifdef __cplusplus
extern "C" {
#endif
// Pin number
const PinName digitalPin[] = {
PA_0, //D0
PA_1, //D1
PA_2, //D2
PA_3, //D3
PA_4, //D4
PA_5, //D5
PA_6, //D6
PA_7, //D7
PA_8, //D8
PA_9, //D9
PA_10, //D10
PA_11, //D11
PA_12, //D12
PA_13, //D13
PA_14, //D14
PA_15, //D15
PB_0, //D16
PB_1, //D17
PB_2, //D18
PB_3, //D19
PB_4, //D20
PB_5, //D21
PB_6, //D22
PB_7, //D23
PB_8, //D24
PB_9, //D25
PB_10, //D26
PB_11, //D27
PB_12, //D28
PB_13, //D29
PB_14, //D30
PB_15, //D31
PC_0, //D32
PC_1, //D33
PC_2, //D34
PC_3, //D35
PC_4, //D36
PC_5, //D37
PC_6, //D38
PC_7, //D39
PC_8, //D40
PC_9, //D41
PC_10, //D42
PC_11, //D43
PC_12, //D44
PC_13, //D45
PC_14, //D46
PC_15, //D47
PD_0, //D48
PD_1, //D49
PD_2, //D50
PD_3, //D51
PD_4, //D52
PD_5, //D53
PD_6, //D54
PD_7, //D55
PD_8, //D56
PD_9, //D57
PD_10, //D58
PD_11, //D59
PD_12, //D60
PD_13, //D61
PD_14, //D62
PD_15, //D63
PE_0, //D64
PE_1, //D65
PE_2, //D66
PE_3, //D67
PE_4, //D68
PE_5, //D69
PE_6, //D70
PE_7, //D71
PE_8, //D72
PE_9, //D73
PE_10, //D74
PE_11, //D75
PE_12, //D76
PE_13, //D77
PE_14, //D78
PE_15, //D79
PF_0, //D80
PF_1, //D81
PF_2, //D82
PF_3, //D83
PF_4, //D84
PF_5, //D85
PF_6, //D86
PF_7, //D87
PF_8, //D88
PF_9, //D89
PF_10, //D90
PF_11, //D91
PF_12, //D92
PF_13, //D93
PF_14, //D94
PF_15, //D95
PG_0, //D96
PG_1, //D97
PG_2, //D98
PG_3, //D99
PG_4, //D100
PG_5, //D101
PG_6, //D102
PG_7, //D103
PG_8, //D104
PG_9, //D105
PG_10, //D106
PG_11, //D107
PG_12, //D108
PG_13, //D109
PG_14, //D110
PG_15, //D111
PH_0, //D112
PH_1, //D113
PH_2, //D114
PH_3, //D115
PH_4, //D116
PH_5, //D117
PH_6, //D118
PH_7, //D119
PH_8, //D120
PH_9, //D121
PH_10, //D122
PH_11, //D123
PH_12, //D124
PH_13, //D125
PH_14, //D126
PH_15, //D127
//Duplicated ADC Pins
PC_3, //A0 T0 D128
PC_0, //A1 T1 D129
PC_2, //A2 BED D130
};
#ifdef __cplusplus
}
#endif
// ----------------------------------------------------------------------------
#ifdef __cplusplus
extern "C" {
#endif
uint32_t myvar[] = {1,2,3,4,5,6,7,8};
void myshow(int fre, int times) // YSZ-WORK
{
uint32_t index = 10;
RCC->AHB1ENR |= 1 << 6; // port G clock
GPIOG->MODER &= ~(3UL << 2 * index); // clear old mode
GPIOG->MODER |= 1 << 2 * index; // mode is output
GPIOG->OSPEEDR &= ~(3UL << 2 * index); // Clear old output speed
GPIOG->OSPEEDR |= 2 << 2 * index; // Set output speed
GPIOG->OTYPER &= ~(1UL << index); // clear old output
GPIOG->OTYPER |= 0 << index; // Set the output mode to push-pull
GPIOG->PUPDR &= ~(3 << 2 * index); // Clear the original settings first
GPIOG->PUPDR |= 1 << 2 * index; // Set new up and down
while (times != 0) {
GPIOG->BSRR = 1UL << index;
for (int i = 0; i < fre; i++)
for (int j = 0; j < 1000000; j++) __NOP();
GPIOG->BSRR = 1UL << (index + 16);
for (int i = 0; i < fre; i++)
for (int j = 0; j < 1000000; j++) __NOP();
if (times > 0) times--;
}
}
HAL_StatusTypeDef SDMMC_IsProgramming(SDIO_TypeDef *SDIOx,uint32_t RCA)
{
HAL_SD_CardStateTypeDef CardState;
volatile uint32_t respR1 = 0, status = 0;
SDIO_CmdInitTypeDef sdmmc_cmdinit;
do {
sdmmc_cmdinit.Argument = RCA << 16;
sdmmc_cmdinit.CmdIndex = SDMMC_CMD_SEND_STATUS;
sdmmc_cmdinit.Response = SDIO_RESPONSE_SHORT;
sdmmc_cmdinit.WaitForInterrupt = SDIO_WAIT_NO;
sdmmc_cmdinit.CPSM = SDIO_CPSM_ENABLE;
SDIO_SendCommand(SDIOx,&sdmmc_cmdinit); // send CMD13
do status = SDIOx->STA;
while (!(status & ((1 << 0) | (1 << 6) | (1 << 2)))); // wait for the operation to complete
if (status & (1 << 0)) { // CRC check failed
SDIOx->ICR |= 1 << 0; // clear error flag
return HAL_ERROR;
}
if (status & (1 << 2)) { // command timed out
SDIOx->ICR |= 1 << 2; // clear error flag
return HAL_ERROR;
}
if (SDIOx->RESPCMD != SDMMC_CMD_SEND_STATUS) return HAL_ERROR;
SDIOx->ICR = 0X5FF; // clear all tags
respR1 = SDIOx->RESP1;
CardState = (respR1 >> 9) & 0x0000000F;
} while ((CardState == HAL_SD_CARD_RECEIVING) || (CardState == HAL_SD_CARD_SENDING) || (CardState == HAL_SD_CARD_PROGRAMMING));
return HAL_OK;
}
void debugStr(const char *str) {
while (*str) {
while ((USART1->SR & 0x40) == 0);
USART1->DR = *str++;
}
}
/**
* @brief System Clock Configuration
* The system Clock is configured as follows:
* System Clock source = PLL (HSE)
* SYSCLK(Hz) = 168000000/120000000/180000000
* HCLK(Hz) = 168000000/120000000/180000000
* AHB Prescaler = 1
* APB1 Prescaler = 4
* APB2 Prescaler = 2
* HSE Frequency(Hz) = 8000000
* PLL_M = 8/4/8
* PLL_N = 336/120/360
* PLL_P = 2
* PLL_Q = 7/5/7
* VDD(V) = 3.3
* Main regulator output voltage = Scale1 mode
* Flash Latency(WS) = 5
* @param None
* @retval None
*/
WEAK void SystemClock_Config(void)
{
RCC_ClkInitTypeDef RCC_ClkInitStruct;
RCC_OscInitTypeDef RCC_OscInitStruct;
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct;
HAL_StatusTypeDef ret = HAL_OK;
__HAL_FLASH_INSTRUCTION_CACHE_ENABLE();
__HAL_FLASH_DATA_CACHE_ENABLE();
__HAL_FLASH_PREFETCH_BUFFER_ENABLE();
HAL_RCC_DeInit();
/* Enable Power Control clock */
__HAL_RCC_PWR_CLK_ENABLE();
/* The voltage scaling allows optimizing the power consumption when the device is
clocked below the maximum system frequency, to update the voltage scaling value
regarding system frequency refer to product datasheet. */
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
/* Enable HSE Oscillator and activate PLL with HSE as source */
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 = 8;
RCC_OscInitStruct.PLL.PLLN = 336;
RCC_OscInitStruct.PLL.PLLP = 2;
RCC_OscInitStruct.PLL.PLLQ = 7;
RCC_OscInitStruct.PLL.PLLR = 2;
ret = HAL_RCC_OscConfig(&RCC_OscInitStruct);
if (ret != HAL_OK) myshow(10,-1);
HAL_PWREx_EnableOverDrive();
/* Select PLLSAI output as USB clock source */
PeriphClkInitStruct.PLLSAI.PLLSAIM = 8;
PeriphClkInitStruct.PLLSAI.PLLSAIN = 192;
PeriphClkInitStruct.PLLSAI.PLLSAIP = RCC_PLLSAIP_DIV4;
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_CLK48 | RCC_PERIPHCLK_SDIO;
PeriphClkInitStruct.Clk48ClockSelection = RCC_CK48CLKSOURCE_PLLSAIP;
PeriphClkInitStruct.SdioClockSelection = RCC_SDIOCLKSOURCE_CLK48; // SDIO Clock Mux
HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct);
/* Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2 clocks dividers */
RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2);
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;
ret = HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5);
if (ret != HAL_OK) myshow(10,-1);
SystemCoreClockUpdate();
/* Configure the Systick interrupt time */
HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq() / 1000);
/* Configure the Systick */
HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);
/* SysTick_IRQn interrupt configuration */
HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);
__enable_irq(); // Turn on the interrupt here because it is turned off in the bootloader
}
#ifdef __cplusplus
}
#endif