/*! * \file main.c * * \brief Target main implementation * * \copyright Revised BSD License, see section \ref LICENSE. * * \code * * _ __ _ ________ _ * | |/ /(_)___ / ____/ /_ (_)___ * | // / __ \/ / / __ \/ / __ \ * / |/ / / / / /___/ / / / / /_/ / * /_/|_/_/_/ /_/\____/_/ /_/_/ .___/ * /_/ * (C) 2022-2025 XinChip * * \endcode * * \author ( XinChip ) Alex-J * * \author ( XinChip ) */ /*----------------------------------------------------------------------------------- INCLUDE HEADE FILES ------------------------------------------------------------------------------------*/ #include "main.h" /*------------------------------------------------------------------------------------ Macros -------------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------------ Global Variables -------------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------------ Func Prototype -------------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------------ Functions -------------------------------------------------------------------------------------*/ void flash_init() { uint32_t mid = 0; #if (PLF_NVDS) uint32_t flash_size; uint16_t flash_type; #endif xc_fmc_spi_init_oprt( ); xc_fmc_spi_flash_wake_up( ); xc_fmc_spi_flash_rdid((uint8_t*)&mid); printf("Flash RDID: 0x%08x\n", mid); uint8_t ruid[16]; xc_fmc_spi_flash_ruid(ruid); printf("Flash RUID11: "); for(int i = 0;i < 16;i++) { printf("%02x ", ruid[i]); } printf("\n"); #if (PLF_NVDS) if(false == flash_size_and_type_get(&flash_size, &flash_type)) { printf("Flash Memory size Get ERROR ! "); while(1); } nvds_space_init(flash_size); #endif } /** ************************************************************************************** * @brief app_uart_init * @details uart init , For debugging * @param void * @retval void *************************************************************************************** */ void app_uart_init(void) { GPIO_InitCfg_t gpio_cfg = {0}; gpio_cfg.Mux = GPIO_Mux0; gpio_cfg.Pull = GPIO_PULLUP; gpio_cfg.Int = NOT_INT; gpio_cfg.FunSel = UART0_TX; gpio_cfg.Pin = GPIO_16; gpio_cfg.Dir = GPIO_DIR_OUTPUT; xc_gpio_init(&gpio_cfg); gpio_cfg.FunSel = UART0_RX; gpio_cfg.Pin = GPIO_19; gpio_cfg.Dir = GPIO_DIR_INPUT; xc_gpio_init(&gpio_cfg); UART_InitCfg_t uart_cfg = {0}; uart_cfg.Parity = UART_PARITY_DISABLE; uart_cfg.StopBits = UART_STOP_1_BITS; uart_cfg.WordLength = UART_DATA_8_BITS; uart_cfg.BaudRate = UART_BAUDRATE_115200; uart_cfg.HardwareFlowControl = UART_HWFC_DISABLE; xc_uart_init(UART0_IDX, &uart_cfg); } /** ************************************************************************************** * @brief clock_init * @details Example Initialize the system clock * @param void * @retval void *************************************************************************************** */ void clock_init(void) { CLOCK_InitCfg_t clock_cfg; clock_cfg.hfclk_src = CLOCK_HFCLK_SRC_XTAL; //Source clock selection clock_cfg.hfclk_in = CLOCK_HFCLK_IN_32M; //system clock selection clock_cfg.lfclk_src = CLOCK_LFCLK_SRC_RC; //Internal 32K clock or external 32K clock if (clock_cfg.lfclk_src == CLOCK_LFCLK_SRC_XTAL) { clock_cfg.lfclk_in = CLOCK_LFCLK_IN_32768; } else if (clock_cfg.lfclk_src == CLOCK_LFCLK_SRC_RC) { clock_cfg.lfclk_in = CLOCK_LFCLK_IN_32K; } xc_clock_init_cfg(&clock_cfg); SysTick_Config(xc_clock_hfclk_in_get() / 100); SysTick->CTRL &= ~SysTick_CTRL_TICKINT_Msk; } int main(void) { /* system clock init */ clock_init(); /* uart init */ app_uart_init(); /* ADC DEMO */ adc_demo(); while (1) { /* main loop */ ; } }