initial commit

This commit is contained in:
shell committed 2026-10-11 21:48:59 +08:00
commit b44ce7bd77
2716 files changed
+559005

No files matched your search

@@ -0,0 +1,83 @@
/*
* The MIT License (MIT)
*
* Copyright (c) 2026, HiFiPhile
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
* This file is part of the TinyUSB stack.
*/
/* metadata:
name: STM32C542 Nucleo
url: https://www.st.com/en/evaluation-tools/nucleo-c542rc.html
*/
#ifndef BOARD_H_
#define BOARD_H_
// LED
#define LED_PORT HAL_GPIOA
#define LED_PIN HAL_GPIO_PIN_5
// Button
#define BUTTON_PORT HAL_GPIOC
#define BUTTON_PIN HAL_GPIO_PIN_13
#define BUTTON_STATE_ACTIVE 1
// Enable UART serial communication with the ST-Link
#define UART_ID 2
#define UART_GPIO_PORT HAL_GPIOA
#define UART_GPIO_AF HAL_GPIO_AF_7
#define UART_TX_PIN HAL_GPIO_PIN_2
#define UART_RX_PIN HAL_GPIO_PIN_3
static inline void board_clock_init(void) {
HAL_RCC_HSE_Enable(HAL_RCC_HSE_ON);
hal_rcc_psi_config_t config_psi;
config_psi.psi_source = HAL_RCC_PSI_SRC_HSE;
config_psi.psi_ref = HAL_RCC_PSI_REF_24MHZ;
config_psi.psi_out = HAL_RCC_PSI_OUT_144MHZ;
HAL_RCC_PSI_SetConfig(&config_psi);
HAL_RCC_PSIS_Enable();
/** Initializes the CPU, AHB and APB busses clocks */
hal_rcc_bus_clk_config_t config_bus;
config_bus.hclk_prescaler = HAL_RCC_HCLK_PRESCALER1;
config_bus.pclk1_prescaler = HAL_RCC_PCLK_PRESCALER1;
config_bus.pclk2_prescaler = HAL_RCC_PCLK_PRESCALER1;
config_bus.pclk3_prescaler = HAL_RCC_PCLK_PRESCALER1;
HAL_RCC_SetBusClockConfig(&config_bus);
/** Frequency will be increased */
HAL_FLASH_ITF_SetLatency(HAL_FLASH, HAL_FLASH_ITF_LATENCY_4);
HAL_RCC_SetSYSCLKSource(HAL_RCC_SYSCLK_SRC_PSIS);
HAL_FLASH_ITF_SetProgrammingDelay(HAL_FLASH, HAL_FLASH_ITF_PROGRAM_DELAY_2);
HAL_UpdateCoreClock();
HAL_RCC_USART2_SetKernelClkSource(HAL_RCC_USART2_CLK_SRC_PCLK1);
HAL_RCC_PSIDIV3_Enable();
HAL_RCC_CK48_SetKernelClkSource(HAL_RCC_CK48_CLK_SRC_PSIDIV3);
}
#endif /* BOARD_H_ */