prepare for LL
This commit is contained in:
		
							parent
							
								
									84d00d8178
								
							
						
					
					
						commit
						91beef5d0b
					
				
					 16 changed files with 0 additions and 0 deletions
				
			
		
							
								
								
									
										145
									
								
								myapps/OLD/practice/00-uart-tx/Makefile
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										145
									
								
								myapps/OLD/practice/00-uart-tx/Makefile
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,145 @@ | |||
| ######################################
 | ||||
| # target
 | ||||
| ######################################
 | ||||
| TARGET = stm32g0_blinky | ||||
| PART = STM32G030xx | ||||
| PYOCD_TARGET = stm32g030f6px | ||||
| 
 | ||||
| 
 | ||||
| ######################################
 | ||||
| # building variables
 | ||||
| ######################################
 | ||||
| # debug build?
 | ||||
| DEBUG = 1 | ||||
| # optimization for size
 | ||||
| OPT = -Os | ||||
| 
 | ||||
| 
 | ||||
| #######################################
 | ||||
| # paths
 | ||||
| #######################################
 | ||||
| # Build path
 | ||||
| BUILD_DIR = build | ||||
| VND_DIR = ../../../vendor | ||||
| 
 | ||||
| ######################################
 | ||||
| # source
 | ||||
| ######################################
 | ||||
| # C sources
 | ||||
| include hal.mk | ||||
| C_SOURCES += \
 | ||||
| $(VND_DIR)/STM32CubeG0/Drivers/CMSIS/Device/ST/STM32G0xx/Source/Templates/system_stm32g0xx.c \ | ||||
| src/main.c | ||||
| 
 | ||||
| 
 | ||||
| # ASM sources
 | ||||
| ASM_SOURCES =  \
 | ||||
| $(VND_DIR)/STM32CubeG0/Drivers/CMSIS/Device/ST/STM32G0xx/Source/Templates/gcc/startup_stm32g030xx.s | ||||
| 
 | ||||
| #######################################
 | ||||
| # binaries
 | ||||
| #######################################
 | ||||
| PREFIX = arm-none-eabi- | ||||
| 
 | ||||
| CC = $(PREFIX)gcc | ||||
| CP = $(PREFIX)objcopy | ||||
| #SZ = $(PREFIX)size
 | ||||
| 
 | ||||
| BIN = $(CP) -O binary -S | ||||
| 
 | ||||
| #######################################
 | ||||
| # CFLAGS
 | ||||
| #######################################
 | ||||
| # cpu
 | ||||
| CPU = \
 | ||||
|  -mcpu=cortex-m0plus \
 | ||||
|  -mthumb | ||||
| 
 | ||||
| DEFINES = -D$(PART) | ||||
| 
 | ||||
| # fpu
 | ||||
| FPU =  | ||||
| 
 | ||||
| # float-abi
 | ||||
| FLOAT-ABI = | ||||
| 
 | ||||
| # mcu
 | ||||
| MCU = $(CPU) $(FPU) $(FLOAT-ABI) | ||||
| 
 | ||||
| # C includes
 | ||||
| C_INCLUDES +=  \
 | ||||
|  -Isrc/inc \
 | ||||
|  -I$(VND_DIR)/STM32CubeG0/Drivers/CMSIS/Core/Include \
 | ||||
|  -I$(VND_DIR)/STM32CubeG0/Drivers/CMSIS/Device/ST/STM32G0xx/Include | ||||
| 
 | ||||
| # compile gcc flags
 | ||||
| ADDN_CFLAGS = \
 | ||||
|  -Wall \
 | ||||
|  -fno-common \
 | ||||
|  -fdata-sections \
 | ||||
|  -ffunction-sections | ||||
| 
 | ||||
| CFLAGS = $(MCU) $(ADDN_CFLAGS) $(C_INCLUDES) $(OPT) $(DEFINES) | ||||
| 
 | ||||
| ifeq ($(DEBUG), 1) | ||||
| CFLAGS += -ggdb3 | ||||
| endif | ||||
| 
 | ||||
| 
 | ||||
| # Generate dependency information
 | ||||
| #CFLAGS += -MMD -MP -MF"$(@:%.o=%.d)"
 | ||||
| 
 | ||||
| 
 | ||||
| #######################################
 | ||||
| # LDFLAGS
 | ||||
| #######################################
 | ||||
| # link script
 | ||||
| LDSCRIPT = $(VND_DIR)/Ld/STM32G030F6MX_FLASH.ld | ||||
| 
 | ||||
| LIBDIR =  | ||||
| LDFLAGS =  \
 | ||||
|  $(MCU)  \
 | ||||
|  -T $(LDSCRIPT) \
 | ||||
|  --specs=nano.specs \
 | ||||
|  -Wl,--gc-sections \
 | ||||
|  -Wl,--print-memory-usage \
 | ||||
|  -Wl,--no-warn-rwx-segments | ||||
| 
 | ||||
| # default action: build all
 | ||||
| all: $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).bin | ||||
| 
 | ||||
| 
 | ||||
| #######################################
 | ||||
| # build the application
 | ||||
| #######################################
 | ||||
| # list of objects
 | ||||
| OBJECTS = $(addprefix $(BUILD_DIR)/,$(notdir $(C_SOURCES:.c=.o))) | ||||
| vpath %.c $(sort $(dir $(C_SOURCES))) | ||||
| 
 | ||||
| $(BUILD_DIR)/%.o: %.c Makefile | $(BUILD_DIR) | ||||
| 	$(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.c=.lst)) $< -o $@ | ||||
| 
 | ||||
| #$(LUAOBJECTS) $(OBJECTS)
 | ||||
| $(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) Makefile | ||||
| 	$(CC) $(OBJECTS) $(LDFLAGS) $(ASM_SOURCES) -o $@ | ||||
| 
 | ||||
| $(BUILD_DIR)/%.bin: $(BUILD_DIR)/%.elf | $(BUILD_DIR) | ||||
| 	$(BIN) $< $@	 | ||||
| 	 | ||||
| $(BUILD_DIR): | ||||
| 	mkdir $@		 | ||||
| 
 | ||||
| #######################################
 | ||||
| # Program
 | ||||
| #######################################
 | ||||
| 
 | ||||
| flash: $(BUILD_DIR)/$(TARGET).bin | ||||
| 	pyocd load --target $(PYOCD_TARGET) $(BUILD_DIR)/$(TARGET).bin | ||||
| 
 | ||||
| #######################################
 | ||||
| # clean up
 | ||||
| #######################################
 | ||||
| clean: | ||||
| 	-rm -fR $(BUILD_DIR) | ||||
|    | ||||
| # *** EOF ***
 | ||||
							
								
								
									
										20
									
								
								myapps/OLD/practice/00-uart-tx/hal.mk
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								myapps/OLD/practice/00-uart-tx/hal.mk
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,20 @@ | |||
| C_INCLUDES += \
 | ||||
|  -I$(VND_DIR)/STM32CubeG0/Drivers/STM32G0xx_HAL_Driver/Inc | ||||
| 
 | ||||
| 
 | ||||
| C_SOURCES += \
 | ||||
|  $(VND_DIR)/STM32CubeG0/Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal.c \
 | ||||
|  $(VND_DIR)/STM32CubeG0/Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_cortex.c \
 | ||||
|  $(VND_DIR)/STM32CubeG0/Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_pwr.c \
 | ||||
|  $(VND_DIR)/STM32CubeG0/Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_pwr_ex.c \
 | ||||
|  $(VND_DIR)/STM32CubeG0/Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_rcc.c \
 | ||||
|  $(VND_DIR)/STM32CubeG0/Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_rcc_ex.c \
 | ||||
|  $(VND_DIR)/STM32CubeG0/Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_exti.c \
 | ||||
|  $(VND_DIR)/STM32CubeG0/Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_dma.c \
 | ||||
|  $(VND_DIR)/STM32CubeG0/Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_dma_ex.c \
 | ||||
|  $(VND_DIR)/STM32CubeG0/Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c \
 | ||||
|  $(VND_DIR)/STM32CubeG0/Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash_ex.c \
 | ||||
|  $(VND_DIR)/STM32CubeG0/Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_gpio.c \
 | ||||
|  $(VND_DIR)/STM32CubeG0/Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_uart.c \
 | ||||
|  src/stm32g0xx_hal_msp.c | ||||
| 
 | ||||
							
								
								
									
										351
									
								
								myapps/OLD/practice/00-uart-tx/src/inc/stm32g0xx_hal_conf.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										351
									
								
								myapps/OLD/practice/00-uart-tx/src/inc/stm32g0xx_hal_conf.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,351 @@ | |||
| /* USER CODE BEGIN Header */ | ||||
| /**
 | ||||
|   ****************************************************************************** | ||||
|   * @file    stm32g0xx_hal_conf.h | ||||
|   * @author  MCD Application Team | ||||
|   * @brief   HAL configuration file. | ||||
|   ****************************************************************************** | ||||
|   * @attention | ||||
|   * | ||||
|   * Copyright (c) 2018-2020 STMicroelectronics. | ||||
|   * All rights reserved. | ||||
|   * | ||||
|   * This software is licensed under terms that can be found in the LICENSE file | ||||
|   * in the root directory of this software component. | ||||
|   * If no LICENSE file comes with this software, it is provided AS-IS. | ||||
|   * | ||||
|   ****************************************************************************** | ||||
|   */ | ||||
| /* USER CODE END Header */ | ||||
| 
 | ||||
| /* Define to prevent recursive inclusion -------------------------------------*/ | ||||
| #ifndef STM32G0xx_HAL_CONF_H | ||||
| #define STM32G0xx_HAL_CONF_H | ||||
| 
 | ||||
| #ifdef __cplusplus | ||||
| extern "C" { | ||||
| #endif | ||||
| 
 | ||||
| /* Exported types ------------------------------------------------------------*/ | ||||
| /* Exported constants --------------------------------------------------------*/ | ||||
| 
 | ||||
| /* ########################## Module Selection ############################## */ | ||||
| /**
 | ||||
|   * @brief This is the list of modules to be used in the HAL driver | ||||
|   */ | ||||
| #define HAL_MODULE_ENABLED | ||||
| /* #define HAL_ADC_MODULE_ENABLED   */ | ||||
| /* #define HAL_CEC_MODULE_ENABLED   */ | ||||
| /* #define HAL_COMP_MODULE_ENABLED   */ | ||||
| /* #define HAL_CRC_MODULE_ENABLED   */ | ||||
| /* #define HAL_CRYP_MODULE_ENABLED   */ | ||||
| /* #define HAL_DAC_MODULE_ENABLED   */ | ||||
| /* #define HAL_EXTI_MODULE_ENABLED   */ | ||||
| /* #define HAL_FDCAN_MODULE_ENABLED   */ | ||||
| /* #define HAL_HCD_MODULE_ENABLED   */ | ||||
| /* #define HAL_I2C_MODULE_ENABLED   */ | ||||
| /* #define HAL_I2S_MODULE_ENABLED   */ | ||||
| /* #define HAL_IWDG_MODULE_ENABLED   */ | ||||
| /* #define HAL_IRDA_MODULE_ENABLED   */ | ||||
| /* #define HAL_LPTIM_MODULE_ENABLED   */ | ||||
| /* #define HAL_PCD_MODULE_ENABLED   */ | ||||
| /* #define HAL_RNG_MODULE_ENABLED   */ | ||||
| /* #define HAL_RTC_MODULE_ENABLED   */ | ||||
| /* #define HAL_SMARTCARD_MODULE_ENABLED   */ | ||||
| /* #define HAL_SMBUS_MODULE_ENABLED   */ | ||||
| /* #define HAL_SPI_MODULE_ENABLED   */ | ||||
| /* #define HAL_TIM_MODULE_ENABLED   */ | ||||
| #define HAL_UART_MODULE_ENABLED | ||||
| /* #define HAL_USART_MODULE_ENABLED   */ | ||||
| /* #define HAL_WWDG_MODULE_ENABLED   */ | ||||
| #define HAL_GPIO_MODULE_ENABLED | ||||
| #define HAL_EXTI_MODULE_ENABLED | ||||
| #define HAL_DMA_MODULE_ENABLED | ||||
| #define HAL_RCC_MODULE_ENABLED | ||||
| #define HAL_FLASH_MODULE_ENABLED | ||||
| #define HAL_PWR_MODULE_ENABLED | ||||
| #define HAL_CORTEX_MODULE_ENABLED | ||||
| 
 | ||||
| /* ########################## Register Callbacks selection ############################## */ | ||||
| /**
 | ||||
|   * @brief This is the list of modules where register callback can be used | ||||
|   */ | ||||
| #define USE_HAL_ADC_REGISTER_CALLBACKS    0u | ||||
| #define USE_HAL_CEC_REGISTER_CALLBACKS    0u | ||||
| #define USE_HAL_COMP_REGISTER_CALLBACKS   0u | ||||
| #define USE_HAL_CRYP_REGISTER_CALLBACKS   0u | ||||
| #define USE_HAL_DAC_REGISTER_CALLBACKS    0u | ||||
| #define USE_HAL_FDCAN_REGISTER_CALLBACKS  0u | ||||
| #define USE_HAL_HCD_REGISTER_CALLBACKS    0u | ||||
| #define USE_HAL_I2C_REGISTER_CALLBACKS    0u | ||||
| #define USE_HAL_I2S_REGISTER_CALLBACKS    0u | ||||
| #define USE_HAL_IRDA_REGISTER_CALLBACKS   0u | ||||
| #define USE_HAL_LPTIM_REGISTER_CALLBACKS  0u | ||||
| #define USE_HAL_PCD_REGISTER_CALLBACKS    0u | ||||
| #define USE_HAL_RNG_REGISTER_CALLBACKS    0u | ||||
| #define USE_HAL_RTC_REGISTER_CALLBACKS    0u | ||||
| #define USE_HAL_SMBUS_REGISTER_CALLBACKS  0u | ||||
| #define USE_HAL_SPI_REGISTER_CALLBACKS    0u | ||||
| #define USE_HAL_TIM_REGISTER_CALLBACKS    0u | ||||
| #define USE_HAL_UART_REGISTER_CALLBACKS   0u | ||||
| #define USE_HAL_USART_REGISTER_CALLBACKS  0u | ||||
| #define USE_HAL_WWDG_REGISTER_CALLBACKS   0u | ||||
| 
 | ||||
| /* ########################## Oscillator Values adaptation ####################*/ | ||||
| /**
 | ||||
|   * @brief Adjust the value of External High Speed oscillator (HSE) used in your application. | ||||
|   *        This value is used by the RCC HAL module to compute the system frequency | ||||
|   *        (when HSE is used as system clock source, directly or through the PLL). | ||||
|   */ | ||||
| #if !defined  (HSE_VALUE) | ||||
| #define HSE_VALUE    (8000000UL)         /*!< Value of the External oscillator in Hz */ | ||||
| #endif /* HSE_VALUE */ | ||||
| 
 | ||||
| #if !defined  (HSE_STARTUP_TIMEOUT) | ||||
| #define HSE_STARTUP_TIMEOUT    (100UL)         /*!< Time out for HSE start up, in ms */ | ||||
| #endif /* HSE_STARTUP_TIMEOUT */ | ||||
| 
 | ||||
| /**
 | ||||
|   * @brief Internal High Speed oscillator (HSI) value. | ||||
|   *        This value is used by the RCC HAL module to compute the system frequency | ||||
|   *        (when HSI is used as system clock source, directly or through the PLL). | ||||
|   */ | ||||
| #if !defined  (HSI_VALUE) | ||||
| #define HSI_VALUE    (16000000UL)            /*!< Value of the Internal oscillator in Hz*/ | ||||
| #endif /* HSI_VALUE */ | ||||
| 
 | ||||
| #if defined(STM32G0C1xx) || defined(STM32G0B1xx) || defined(STM32G0B0xx) | ||||
| /**
 | ||||
|   * @brief Internal High Speed oscillator (HSI48) value for USB FS, SDMMC and RNG. | ||||
|   *        This internal oscillator is mainly dedicated to provide a high precision clock to | ||||
|   *        the USB peripheral by means of a special Clock Recovery System (CRS) circuitry. | ||||
|   *        When the CRS is not used, the HSI48 RC oscillator runs on it default frequency | ||||
|   *        which is subject to manufacturing process variations. | ||||
|   */ | ||||
| #if !defined  (HSI48_VALUE) | ||||
|   #define HSI48_VALUE   48000000U             /*!< Value of the Internal High Speed oscillator for USB FS/SDMMC/RNG in Hz. | ||||
|                                                The real value my vary depending on manufacturing process variations.*/ | ||||
| #endif /* HSI48_VALUE */ | ||||
| #endif | ||||
| 
 | ||||
| /**
 | ||||
|   * @brief Internal Low Speed oscillator (LSI) value. | ||||
|   */ | ||||
| #if !defined  (LSI_VALUE) | ||||
| #define LSI_VALUE  (32000UL)                /*!< LSI Typical Value in Hz*/ | ||||
| #endif /* LSI_VALUE */                      /*!< Value of the Internal Low Speed oscillator in Hz | ||||
| The real value may vary depending on the variations | ||||
| in voltage and temperature.*/ | ||||
| /**
 | ||||
|   * @brief External Low Speed oscillator (LSE) value. | ||||
|   *        This value is used by the UART, RTC HAL module to compute the system frequency | ||||
|   */ | ||||
| #if !defined  (LSE_VALUE) | ||||
| #define LSE_VALUE    (32768UL)               /*!< Value of the External oscillator in Hz*/ | ||||
| #endif /* LSE_VALUE */ | ||||
| 
 | ||||
| #if !defined  (LSE_STARTUP_TIMEOUT) | ||||
| #define LSE_STARTUP_TIMEOUT    (5000UL)      /*!< Time out for LSE start up, in ms */ | ||||
| #endif /* LSE_STARTUP_TIMEOUT */ | ||||
| 
 | ||||
| /**
 | ||||
|   * @brief External clock source for I2S1 peripheral | ||||
|   *        This value is used by the RCC HAL module to compute the I2S1 clock source | ||||
|   *        frequency. | ||||
|   */ | ||||
| #if !defined  (EXTERNAL_I2S1_CLOCK_VALUE) | ||||
| #define EXTERNAL_I2S1_CLOCK_VALUE    (48000UL) /*!< Value of the I2S1 External clock source in Hz*/ | ||||
| #endif /* EXTERNAL_I2S1_CLOCK_VALUE */ | ||||
| 
 | ||||
| #if defined(STM32G0C1xx) || defined(STM32G0B1xx) || defined(STM32G0B0xx) | ||||
| /**
 | ||||
|   * @brief External clock source for I2S2 peripheral | ||||
|   *        This value is used by the RCC HAL module to compute the I2S2 clock source | ||||
|   *        frequency. | ||||
|   */ | ||||
| #if !defined  (EXTERNAL_I2S2_CLOCK_VALUE) | ||||
|   #define EXTERNAL_I2S2_CLOCK_VALUE    48000U /*!< Value of the I2S2 External clock source in Hz*/ | ||||
| #endif /* EXTERNAL_I2S2_CLOCK_VALUE */ | ||||
| #endif | ||||
| 
 | ||||
| /* Tip: To avoid modifying this file each time you need to use different HSE,
 | ||||
|    ===  you can define the HSE value in your toolchain compiler preprocessor. */ | ||||
| 
 | ||||
| /* ########################### System Configuration ######################### */ | ||||
| /**
 | ||||
|   * @brief This is the HAL system configuration section | ||||
|   */ | ||||
| #define  VDD_VALUE                    (3300UL)                                        /*!< Value of VDD in mv */ | ||||
| #define  TICK_INT_PRIORITY            0U /*!< tick interrupt priority */ | ||||
| #define  USE_RTOS                     0U | ||||
| #define  PREFETCH_ENABLE              1U | ||||
| #define  INSTRUCTION_CACHE_ENABLE     1U | ||||
| 
 | ||||
| /* ################## SPI peripheral configuration ########################## */ | ||||
| 
 | ||||
| /* CRC FEATURE: Use to activate CRC feature inside HAL SPI Driver
 | ||||
| * Activated: CRC code is present inside driver | ||||
| * Deactivated: CRC code cleaned from driver | ||||
| */ | ||||
| 
 | ||||
| #define USE_SPI_CRC                     0U | ||||
| 
 | ||||
| /* ################## CRYP peripheral configuration ########################## */ | ||||
| 
 | ||||
| #define USE_HAL_CRYP_SUSPEND_RESUME     1U | ||||
| 
 | ||||
| /* ########################## Assert Selection ############################## */ | ||||
| /**
 | ||||
|   * @brief Uncomment the line below to expanse the "assert_param" macro in the | ||||
|   *        HAL drivers code | ||||
|   */ | ||||
| /* #define USE_FULL_ASSERT    1U */ | ||||
| 
 | ||||
| /* Includes ------------------------------------------------------------------*/ | ||||
| /**
 | ||||
|   * @brief Include modules header file | ||||
|   */ | ||||
| 
 | ||||
| #ifdef HAL_RCC_MODULE_ENABLED | ||||
| #include "stm32g0xx_hal_rcc.h" | ||||
| #endif /* HAL_RCC_MODULE_ENABLED */ | ||||
| 
 | ||||
| #ifdef HAL_GPIO_MODULE_ENABLED | ||||
| #include "stm32g0xx_hal_gpio.h" | ||||
| #endif /* HAL_GPIO_MODULE_ENABLED */ | ||||
| 
 | ||||
| #ifdef HAL_DMA_MODULE_ENABLED | ||||
| #include "stm32g0xx_hal_dma.h" | ||||
| #endif /* HAL_DMA_MODULE_ENABLED */ | ||||
| 
 | ||||
| #ifdef HAL_CORTEX_MODULE_ENABLED | ||||
| #include "stm32g0xx_hal_cortex.h" | ||||
| #endif /* HAL_CORTEX_MODULE_ENABLED */ | ||||
| 
 | ||||
| #ifdef HAL_ADC_MODULE_ENABLED | ||||
| #include "stm32g0xx_hal_adc.h" | ||||
| #include "stm32g0xx_hal_adc_ex.h" | ||||
| #endif /* HAL_ADC_MODULE_ENABLED */ | ||||
| 
 | ||||
| #ifdef HAL_CEC_MODULE_ENABLED | ||||
| #include "stm32g0xx_hal_cec.h" | ||||
| #endif /* HAL_CEC_MODULE_ENABLED */ | ||||
| 
 | ||||
| #ifdef HAL_COMP_MODULE_ENABLED | ||||
| #include "stm32g0xx_hal_comp.h" | ||||
| #endif /* HAL_COMP_MODULE_ENABLED */ | ||||
| 
 | ||||
| #ifdef HAL_CRC_MODULE_ENABLED | ||||
| #include "stm32g0xx_hal_crc.h" | ||||
| #endif /* HAL_CRC_MODULE_ENABLED */ | ||||
| 
 | ||||
| #ifdef HAL_CRYP_MODULE_ENABLED | ||||
| #include "stm32g0xx_hal_cryp.h" | ||||
| #endif /* HAL_CRYP_MODULE_ENABLED */ | ||||
| 
 | ||||
| #ifdef HAL_DAC_MODULE_ENABLED | ||||
| #include "stm32g0xx_hal_dac.h" | ||||
| #endif /* HAL_DAC_MODULE_ENABLED */ | ||||
| 
 | ||||
| #ifdef HAL_EXTI_MODULE_ENABLED | ||||
| #include "stm32g0xx_hal_exti.h" | ||||
| #endif /* HAL_EXTI_MODULE_ENABLED */ | ||||
| 
 | ||||
| #ifdef HAL_FLASH_MODULE_ENABLED | ||||
| #include "stm32g0xx_hal_flash.h" | ||||
| #endif /* HAL_FLASH_MODULE_ENABLED */ | ||||
| 
 | ||||
| #ifdef HAL_FDCAN_MODULE_ENABLED | ||||
| #include "stm32g0xx_hal_fdcan.h" | ||||
| #endif /* HAL_FDCAN_MODULE_ENABLED */ | ||||
| 
 | ||||
| #ifdef HAL_HCD_MODULE_ENABLED | ||||
| #include "stm32g0xx_hal_hcd.h" | ||||
| #endif /* HAL_HCD_MODULE_ENABLED */ | ||||
| 
 | ||||
| #ifdef HAL_I2C_MODULE_ENABLED | ||||
| #include "stm32g0xx_hal_i2c.h" | ||||
| #endif /* HAL_I2C_MODULE_ENABLED */ | ||||
| 
 | ||||
| #ifdef HAL_I2S_MODULE_ENABLED | ||||
| #include "stm32g0xx_hal_i2s.h" | ||||
| #endif /* HAL_I2S_MODULE_ENABLED */ | ||||
| 
 | ||||
| #ifdef HAL_IRDA_MODULE_ENABLED | ||||
| #include "stm32g0xx_hal_irda.h" | ||||
| #endif /* HAL_IRDA_MODULE_ENABLED */ | ||||
| 
 | ||||
| #ifdef HAL_IWDG_MODULE_ENABLED | ||||
| #include "stm32g0xx_hal_iwdg.h" | ||||
| #endif /* HAL_IWDG_MODULE_ENABLED */ | ||||
| 
 | ||||
| #ifdef HAL_LPTIM_MODULE_ENABLED | ||||
| #include "stm32g0xx_hal_lptim.h" | ||||
| #endif /* HAL_LPTIM_MODULE_ENABLED */ | ||||
| 
 | ||||
| #ifdef HAL_PCD_MODULE_ENABLED | ||||
| #include "stm32g0xx_hal_pcd.h" | ||||
| #endif /* HAL_PCD_MODULE_ENABLED */ | ||||
| 
 | ||||
| #ifdef HAL_PWR_MODULE_ENABLED | ||||
| #include "stm32g0xx_hal_pwr.h" | ||||
| #endif /* HAL_PWR_MODULE_ENABLED */ | ||||
| 
 | ||||
| #ifdef HAL_RNG_MODULE_ENABLED | ||||
| #include "stm32g0xx_hal_rng.h" | ||||
| #endif /* HAL_RNG_MODULE_ENABLED */ | ||||
| 
 | ||||
| #ifdef HAL_RTC_MODULE_ENABLED | ||||
| #include "stm32g0xx_hal_rtc.h" | ||||
| #endif /* HAL_RTC_MODULE_ENABLED */ | ||||
| 
 | ||||
| #ifdef HAL_SMARTCARD_MODULE_ENABLED | ||||
| #include "stm32g0xx_hal_smartcard.h" | ||||
| #endif /* HAL_SMARTCARD_MODULE_ENABLED */ | ||||
| 
 | ||||
| #ifdef HAL_SMBUS_MODULE_ENABLED | ||||
| #include "stm32g0xx_hal_smbus.h" | ||||
| #endif /* HAL_SMBUS_MODULE_ENABLED */ | ||||
| 
 | ||||
| #ifdef HAL_SPI_MODULE_ENABLED | ||||
| #include "stm32g0xx_hal_spi.h" | ||||
| #endif /* HAL_SPI_MODULE_ENABLED */ | ||||
| 
 | ||||
| #ifdef HAL_TIM_MODULE_ENABLED | ||||
| #include "stm32g0xx_hal_tim.h" | ||||
| #endif /* HAL_TIM_MODULE_ENABLED */ | ||||
| 
 | ||||
| #ifdef HAL_UART_MODULE_ENABLED | ||||
| #include "stm32g0xx_hal_uart.h" | ||||
| #endif /* HAL_UART_MODULE_ENABLED */ | ||||
| 
 | ||||
| #ifdef HAL_USART_MODULE_ENABLED | ||||
| #include "stm32g0xx_hal_usart.h" | ||||
| #endif /* HAL_USART_MODULE_ENABLED */ | ||||
| 
 | ||||
| #ifdef HAL_WWDG_MODULE_ENABLED | ||||
| #include "stm32g0xx_hal_wwdg.h" | ||||
| #endif /* HAL_WWDG_MODULE_ENABLED */ | ||||
| 
 | ||||
| /* Exported macro ------------------------------------------------------------*/ | ||||
| #ifdef  USE_FULL_ASSERT | ||||
| /**
 | ||||
|   * @brief  The assert_param macro is used for functions parameters check. | ||||
|   * @param  expr If expr is false, it calls assert_failed function | ||||
|   *         which reports the name of the source file and the source | ||||
|   *         line number of the call that failed. | ||||
|   *         If expr is true, it returns no value. | ||||
|   * @retval None | ||||
|   */ | ||||
| #define assert_param(expr) ((expr) ? (void)0U : assert_failed((uint8_t *)__FILE__, __LINE__)) | ||||
| /* Exported functions ------------------------------------------------------- */ | ||||
| void assert_failed(uint8_t *file, uint32_t line); | ||||
| #else | ||||
| #define assert_param(expr) ((void)0U) | ||||
| #endif /* USE_FULL_ASSERT */ | ||||
| 
 | ||||
| #ifdef __cplusplus | ||||
| } | ||||
| #endif | ||||
| 
 | ||||
| #endif /* STM32G0xx_HAL_CONF_H */ | ||||
							
								
								
									
										12
									
								
								myapps/OLD/practice/00-uart-tx/src/inc/stm32g0xx_hal_msp.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								myapps/OLD/practice/00-uart-tx/src/inc/stm32g0xx_hal_msp.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,12 @@ | |||
| 
 | ||||
| #include "stm32g0xx_hal.h" | ||||
| 
 | ||||
| 
 | ||||
| void SystemClock_Config(void); | ||||
| 
 | ||||
| /*
 | ||||
|  * Other functions (already defined weak in HAL): | ||||
|  * HAL_MspInit(void) | ||||
|  * void SysTick_Handler(void) | ||||
|  */ | ||||
| 
 | ||||
							
								
								
									
										60
									
								
								myapps/OLD/practice/00-uart-tx/src/main.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								myapps/OLD/practice/00-uart-tx/src/main.c
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,60 @@ | |||
| // Tx/Rx: PA09[PA11]/PA10[PA12]
 | ||||
| 
 | ||||
| //#include <string.h>
 | ||||
| //#include <stdio.h>
 | ||||
| #include "stm32g0xx_hal_msp.h" | ||||
| 
 | ||||
| UART_HandleTypeDef huart1; | ||||
| 
 | ||||
| char buffer[] = "Hello World\r\n"; | ||||
| #define TXBUFFERSIZE  14    //strlen(buffer)
 | ||||
| #define TIMEOUT 0xFFFF | ||||
| /*
 | ||||
| int __io_putchar(int ch) | ||||
| { | ||||
|   HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, TIMEOUT); | ||||
|   return ch; | ||||
| } | ||||
| */ | ||||
| /*
 | ||||
| setvbuf(stout, NULL, _IOLBF, 0); | ||||
| 
 | ||||
| int _write (int file, const void * ptr, size_t len) | ||||
| { | ||||
|   HAL_UART_Transmit(&huart1, ptr, len, TIMEOUT); | ||||
|   return len; | ||||
| } | ||||
| */ | ||||
| static void uart_init(void) | ||||
| { | ||||
| 
 | ||||
|   huart1.Instance = USART1;   // Defined in CMSIS header as peripheral address
 | ||||
|   huart1.Init.BaudRate = 115200; | ||||
|   huart1.Init.WordLength = UART_WORDLENGTH_8B; | ||||
|   huart1.Init.StopBits = UART_STOPBITS_1; | ||||
|   huart1.Init.Parity = UART_PARITY_NONE; | ||||
|   huart1.Init.Mode = UART_MODE_TX_RX; | ||||
|   huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; | ||||
|   huart1.Init.OverSampling = UART_OVERSAMPLING_16; | ||||
|   huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; | ||||
|   huart1.Init.ClockPrescaler = UART_PRESCALER_DIV1; | ||||
|   huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; | ||||
|   while (HAL_UART_Init(&huart1) != HAL_OK); | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| int main(void) | ||||
| { | ||||
|   HAL_Init(); | ||||
|   SystemClock_Config(); | ||||
|   uart_init(); | ||||
|    | ||||
|   while(1) | ||||
|   { | ||||
|     HAL_UART_Transmit(&huart1, (uint8_t *)buffer, TXBUFFERSIZE, TIMEOUT); | ||||
|     //printf("Hello World\r\n");
 | ||||
|     HAL_Delay(100); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
							
								
								
									
										107
									
								
								myapps/OLD/practice/00-uart-tx/src/stm32g0xx_hal_msp.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										107
									
								
								myapps/OLD/practice/00-uart-tx/src/stm32g0xx_hal_msp.c
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,107 @@ | |||
| 
 | ||||
| #include "stm32g0xx_hal_msp.h" | ||||
| 
 | ||||
| void HAL_MspInit(void) | ||||
| { | ||||
|   /* USER CODE BEGIN MspInit 0 */ | ||||
| 
 | ||||
|   /* USER CODE END MspInit 0 */ | ||||
| 
 | ||||
|   __HAL_RCC_SYSCFG_CLK_ENABLE(); | ||||
|   __HAL_RCC_PWR_CLK_ENABLE(); | ||||
| 
 | ||||
|   /* System interrupt init*/ | ||||
| 
 | ||||
|   HAL_SYSCFG_EnableRemap(SYSCFG_REMAP_PA11); | ||||
|   HAL_SYSCFG_EnableRemap(SYSCFG_REMAP_PA12); | ||||
| 
 | ||||
|   /* USER CODE BEGIN MspInit 1 */ | ||||
| 
 | ||||
|   /* USER CODE END MspInit 1 */ | ||||
| } | ||||
| 
 | ||||
| void HAL_UART_MspInit(UART_HandleTypeDef* huart) | ||||
| { | ||||
|   GPIO_InitTypeDef GPIO_InitStruct = {0}; | ||||
|   RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; | ||||
|   if(huart->Instance==USART1) | ||||
|   { | ||||
|     PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART1; | ||||
|     PeriphClkInit.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK1; | ||||
|     while (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK); | ||||
|      | ||||
|     __HAL_RCC_USART1_CLK_ENABLE(); | ||||
|     __HAL_RCC_GPIOA_CLK_ENABLE(); | ||||
|      | ||||
|     GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10;   // both push/pull??
 | ||||
|     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; | ||||
|     GPIO_InitStruct.Pull = GPIO_PULLUP; | ||||
|     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; | ||||
|     GPIO_InitStruct.Alternate = GPIO_AF1_USART1; | ||||
|     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| void SysTick_Handler(void) | ||||
| { | ||||
|   HAL_IncTick(); | ||||
| } | ||||
| 
 | ||||
| void Error_Handler(void) | ||||
| { | ||||
|   /* USER CODE BEGIN Error_Handler_Debug */ | ||||
|   /* User can add his own implementation to report the HAL error return state */ | ||||
|   __disable_irq(); | ||||
|   while (1) | ||||
|   { | ||||
|   } | ||||
|   /* USER CODE END Error_Handler_Debug */ | ||||
| } | ||||
| 
 | ||||
| void SystemClock_Config(void) | ||||
| { | ||||
|   RCC_OscInitTypeDef RCC_OscInitStruct = {0}; | ||||
|   RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; | ||||
| 
 | ||||
|   /** Configure the main internal regulator output voltage
 | ||||
|   */ | ||||
|   HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1); | ||||
| 
 | ||||
|   /** Configure LSE Drive Capability
 | ||||
|   */ | ||||
|   HAL_PWR_EnableBkUpAccess(); | ||||
|   __HAL_RCC_LSEDRIVE_CONFIG(RCC_LSEDRIVE_LOW); | ||||
| 
 | ||||
|   /** Initializes the RCC Oscillators according to the specified parameters
 | ||||
|   * in the RCC_OscInitTypeDef structure. | ||||
|   */ | ||||
|   RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_LSE; | ||||
|   RCC_OscInitStruct.LSEState = RCC_LSE_ON; | ||||
|   RCC_OscInitStruct.HSIState = RCC_HSI_ON; | ||||
|   RCC_OscInitStruct.HSIDiv = RCC_HSI_DIV1; | ||||
|   RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; | ||||
|   RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; | ||||
|   RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI; | ||||
|   RCC_OscInitStruct.PLL.PLLM = RCC_PLLM_DIV1; | ||||
|   RCC_OscInitStruct.PLL.PLLN = 8; | ||||
|   RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; | ||||
|   RCC_OscInitStruct.PLL.PLLR = RCC_PLLR_DIV2; | ||||
|   if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) | ||||
|   { | ||||
|     Error_Handler(); | ||||
|   } | ||||
| 
 | ||||
|   /** Initializes the CPU, AHB and APB buses clocks
 | ||||
|   */ | ||||
|   RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK | ||||
|                               |RCC_CLOCKTYPE_PCLK1; | ||||
|   RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; | ||||
|   RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; | ||||
|   RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; | ||||
| 
 | ||||
|   if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK) | ||||
|   { | ||||
|     Error_Handler(); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue