From 99526cc047466a46a5683075c94c618599cca27d Mon Sep 17 00:00:00 2001 From: blta Date: Mon, 4 Apr 2022 11:07:49 +0800 Subject: [PATCH] [bsp/ch32v103r-evt] add ch32v103r-evt bsp feat: move MRS demo source to bsp and libraries folder feat: update Sconscript feat: modify SConstruct in the bsp feat: use the rtconfig.py of gd32vf103v-eval bsp to modify feat: use the MRS's rtconfig.h temoporarily feat: update Kconfig files feat: use the MRS's .ld and rename as link.lds feat: add ch32v1 porting folder perf: remove board/system_ch32v10x.c fix: define SOC_ARM_SERIES_CH32V103 in rtconfig.h fix: add some neccessary macros in rtconfig.h perf: use the menuconfig to generate rtconfig.h feat: add readme.md fix: correct the bad encode in main.c fix: include board.h in main.c perf: check and update README.md perf: remove ch32f10x_port_cn.md feat: ignore the standard libraries's CI checking feat: add sdk_dist.py fix: correct some style errors again perf: simply the board/kconfig fix: format ch32v103r-evt fix: format drvs and libcpu --- bsp/wch/risc-v/.ignore_format.yml | 6 + .../CMSIS/WCH/CH32V10x/Include/ch32v10x.h | 3215 +++++++++++++++++ .../WCH/CH32V10x/Include/system_ch32v10x.h | 27 + .../CH32V10x/Source/GCC/startup_ch32v10x.S | 187 + .../WCH/CH32V10x/Source/system_ch32v10x.c | 503 +++ .../CMSIS/core_riscv.c | 552 +++ .../CMSIS/core_riscv.h | 397 ++ .../CH32V10x_StdPeriph_Driver/SConscript | 40 + .../StdPeriph_Driver/inc/ch32v10x.h | 3215 +++++++++++++++++ .../StdPeriph_Driver/inc/ch32v10x_adc.h | 188 + .../StdPeriph_Driver/inc/ch32v10x_bkp.h | 91 + .../StdPeriph_Driver/inc/ch32v10x_crc.h | 31 + .../StdPeriph_Driver/inc/ch32v10x_dbgmcu.h | 41 + .../StdPeriph_Driver/inc/ch32v10x_dma.h | 216 ++ .../StdPeriph_Driver/inc/ch32v10x_exti.h | 86 + .../StdPeriph_Driver/inc/ch32v10x_flash.h | 155 + .../StdPeriph_Driver/inc/ch32v10x_gpio.h | 160 + .../StdPeriph_Driver/inc/ch32v10x_i2c.h | 199 + .../StdPeriph_Driver/inc/ch32v10x_iwdg.h | 48 + .../StdPeriph_Driver/inc/ch32v10x_misc.h | 46 + .../StdPeriph_Driver/inc/ch32v10x_pwr.h | 57 + .../StdPeriph_Driver/inc/ch32v10x_rcc.h | 228 ++ .../StdPeriph_Driver/inc/ch32v10x_rtc.h | 51 + .../StdPeriph_Driver/inc/ch32v10x_spi.h | 218 ++ .../StdPeriph_Driver/inc/ch32v10x_tim.h | 506 +++ .../StdPeriph_Driver/inc/ch32v10x_usart.h | 185 + .../StdPeriph_Driver/inc/ch32v10x_usb.h | 700 ++++ .../StdPeriph_Driver/inc/ch32v10x_usb_host.h | 96 + .../StdPeriph_Driver/inc/ch32v10x_wwdg.h | 39 + .../StdPeriph_Driver/src/ch32v10x_adc.c | 1145 ++++++ .../StdPeriph_Driver/src/ch32v10x_bkp.c | 248 ++ .../StdPeriph_Driver/src/ch32v10x_crc.c | 103 + .../StdPeriph_Driver/src/ch32v10x_dbgmcu.c | 64 + .../StdPeriph_Driver/src/ch32v10x_dma.c | 550 +++ .../StdPeriph_Driver/src/ch32v10x_exti.c | 180 + .../StdPeriph_Driver/src/ch32v10x_flash.c | 968 +++++ .../StdPeriph_Driver/src/ch32v10x_gpio.c | 538 +++ .../StdPeriph_Driver/src/ch32v10x_i2c.c | 979 +++++ .../StdPeriph_Driver/src/ch32v10x_iwdg.c | 123 + .../StdPeriph_Driver/src/ch32v10x_misc.c | 107 + .../StdPeriph_Driver/src/ch32v10x_pwr.c | 217 ++ .../StdPeriph_Driver/src/ch32v10x_rcc.c | 938 +++++ .../StdPeriph_Driver/src/ch32v10x_rtc.c | 273 ++ .../StdPeriph_Driver/src/ch32v10x_spi.c | 652 ++++ .../StdPeriph_Driver/src/ch32v10x_tim.c | 2353 ++++++++++++ .../StdPeriph_Driver/src/ch32v10x_usart.c | 815 +++++ .../StdPeriph_Driver/src/ch32v10x_usb.c | 170 + .../StdPeriph_Driver/src/ch32v10x_usb_host.c | 809 +++++ .../StdPeriph_Driver/src/ch32v10x_wwdg.c | 139 + bsp/wch/risc-v/Libraries/Kconfig | 8 + .../risc-v/Libraries/ch32_drivers/SConscript | 29 + .../risc-v/Libraries/ch32_drivers/drv_gpio.c | 776 ++++ .../risc-v/Libraries/ch32_drivers/drv_gpio.h | 16 + .../risc-v/Libraries/ch32_drivers/drv_usart.c | 253 ++ .../risc-v/Libraries/ch32_drivers/drv_usart.h | 16 + bsp/wch/risc-v/ch32v103r-evt/.config | 653 ++++ bsp/wch/risc-v/ch32v103r-evt/Kconfig | 21 + bsp/wch/risc-v/ch32v103r-evt/README.md | 167 + bsp/wch/risc-v/ch32v103r-evt/SConscript | 15 + bsp/wch/risc-v/ch32v103r-evt/SConstruct | 64 + .../ch32v103r-evt/applications/SConscript | 17 + .../risc-v/ch32v103r-evt/applications/main.c | 73 + bsp/wch/risc-v/ch32v103r-evt/board/Kconfig | 32 + bsp/wch/risc-v/ch32v103r-evt/board/SConscript | 19 + bsp/wch/risc-v/ch32v103r-evt/board/board.c | 106 + bsp/wch/risc-v/ch32v103r-evt/board/board.h | 33 + .../ch32v103r-evt/board/ch32v10x_conf.h | 41 + .../risc-v/ch32v103r-evt/board/ch32v10x_it.c | 54 + .../risc-v/ch32v103r-evt/board/ch32v10x_it.h | 20 + bsp/wch/risc-v/ch32v103r-evt/board/debug.c | 199 + bsp/wch/risc-v/ch32v103r-evt/board/debug.h | 32 + .../board/linker_scripts/link.lds | 1 + .../figures/2022-03-27_182300.bmp | Bin 0 -> 3692886 bytes .../figures/image-20220404205018822.png | Bin 0 -> 335252 bytes bsp/wch/risc-v/ch32v103r-evt/rtconfig.h | 192 + bsp/wch/risc-v/ch32v103r-evt/rtconfig.py | 62 + bsp/wch/risc-v/tools/sdk_dist.py | 36 + libcpu/risc-v/SConscript | 2 + libcpu/risc-v/ch32v1/SConscript | 14 + libcpu/risc-v/ch32v1/context_gcc.S | 211 ++ libcpu/risc-v/ch32v1/cpuport.c | 199 + libcpu/risc-v/ch32v1/cpuport.h | 44 + libcpu/risc-v/ch32v1/interrupt_gcc.S | 191 + 83 files changed, 26450 insertions(+) create mode 100644 bsp/wch/risc-v/.ignore_format.yml create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/CMSIS/WCH/CH32V10x/Include/ch32v10x.h create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/CMSIS/WCH/CH32V10x/Include/system_ch32v10x.h create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/CMSIS/WCH/CH32V10x/Source/GCC/startup_ch32v10x.S create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/CMSIS/WCH/CH32V10x/Source/system_ch32v10x.c create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/CMSIS/core_riscv.c create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/CMSIS/core_riscv.h create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/SConscript create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x.h create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_adc.h create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_bkp.h create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_crc.h create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_dbgmcu.h create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_dma.h create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_exti.h create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_flash.h create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_gpio.h create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_i2c.h create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_iwdg.h create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_misc.h create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_pwr.h create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_rcc.h create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_rtc.h create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_spi.h create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_tim.h create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_usart.h create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_usb.h create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_usb_host.h create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_wwdg.h create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_adc.c create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_bkp.c create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_crc.c create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_dbgmcu.c create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_dma.c create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_exti.c create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_flash.c create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_gpio.c create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_i2c.c create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_iwdg.c create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_misc.c create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_pwr.c create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_rcc.c create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_rtc.c create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_spi.c create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_tim.c create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_usart.c create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_usb.c create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_usb_host.c create mode 100644 bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_wwdg.c create mode 100644 bsp/wch/risc-v/Libraries/Kconfig create mode 100644 bsp/wch/risc-v/Libraries/ch32_drivers/SConscript create mode 100644 bsp/wch/risc-v/Libraries/ch32_drivers/drv_gpio.c create mode 100644 bsp/wch/risc-v/Libraries/ch32_drivers/drv_gpio.h create mode 100644 bsp/wch/risc-v/Libraries/ch32_drivers/drv_usart.c create mode 100644 bsp/wch/risc-v/Libraries/ch32_drivers/drv_usart.h create mode 100644 bsp/wch/risc-v/ch32v103r-evt/.config create mode 100644 bsp/wch/risc-v/ch32v103r-evt/Kconfig create mode 100644 bsp/wch/risc-v/ch32v103r-evt/README.md create mode 100644 bsp/wch/risc-v/ch32v103r-evt/SConscript create mode 100644 bsp/wch/risc-v/ch32v103r-evt/SConstruct create mode 100644 bsp/wch/risc-v/ch32v103r-evt/applications/SConscript create mode 100644 bsp/wch/risc-v/ch32v103r-evt/applications/main.c create mode 100644 bsp/wch/risc-v/ch32v103r-evt/board/Kconfig create mode 100644 bsp/wch/risc-v/ch32v103r-evt/board/SConscript create mode 100644 bsp/wch/risc-v/ch32v103r-evt/board/board.c create mode 100644 bsp/wch/risc-v/ch32v103r-evt/board/board.h create mode 100644 bsp/wch/risc-v/ch32v103r-evt/board/ch32v10x_conf.h create mode 100644 bsp/wch/risc-v/ch32v103r-evt/board/ch32v10x_it.c create mode 100644 bsp/wch/risc-v/ch32v103r-evt/board/ch32v10x_it.h create mode 100644 bsp/wch/risc-v/ch32v103r-evt/board/debug.c create mode 100644 bsp/wch/risc-v/ch32v103r-evt/board/debug.h create mode 100644 bsp/wch/risc-v/ch32v103r-evt/board/linker_scripts/link.lds create mode 100644 bsp/wch/risc-v/ch32v103r-evt/figures/2022-03-27_182300.bmp create mode 100644 bsp/wch/risc-v/ch32v103r-evt/figures/image-20220404205018822.png create mode 100644 bsp/wch/risc-v/ch32v103r-evt/rtconfig.h create mode 100644 bsp/wch/risc-v/ch32v103r-evt/rtconfig.py create mode 100644 bsp/wch/risc-v/tools/sdk_dist.py create mode 100644 libcpu/risc-v/ch32v1/SConscript create mode 100644 libcpu/risc-v/ch32v1/context_gcc.S create mode 100644 libcpu/risc-v/ch32v1/cpuport.c create mode 100644 libcpu/risc-v/ch32v1/cpuport.h create mode 100644 libcpu/risc-v/ch32v1/interrupt_gcc.S diff --git a/bsp/wch/risc-v/.ignore_format.yml b/bsp/wch/risc-v/.ignore_format.yml new file mode 100644 index 0000000000..25781d8c1c --- /dev/null +++ b/bsp/wch/risc-v/.ignore_format.yml @@ -0,0 +1,6 @@ +# files format check exclude path, please follow the instructions below to modify; +# If you need to exclude an entire folder, add the folder path in dir_path; +# If you need to exclude a file, add the path to the file in file_path. + +dir_path: +- Libraries/CH32V10x_StdPeriph_Driver diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/CMSIS/WCH/CH32V10x/Include/ch32v10x.h b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/CMSIS/WCH/CH32V10x/Include/ch32v10x.h new file mode 100644 index 0000000000..0764ea2474 --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/CMSIS/WCH/CH32V10x/Include/ch32v10x.h @@ -0,0 +1,3215 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x.h + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : CH32V10x Device Peripheral Access Layer Header File. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *******************************************************************************/ +#ifndef __CH32V10x_H +#define __CH32V10x_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define __MPU_PRESENT 0 /* Other CH32 devices does not provide an MPU */ +#define __Vendor_SysTickConfig 0 /* Set to 1 if different SysTick Config is used */ + +#define HSE_VALUE ((uint32_t)8000000) /* Value of the External oscillator in Hz */ + +/* In the following line adjust the External High Speed oscillator (HSE) Startup Timeout value */ +#define HSE_STARTUP_TIMEOUT ((uint16_t)0x500) /* Time out for HSE start up */ + +#define HSI_VALUE ((uint32_t)8000000) /* Value of the Internal oscillator in Hz */ + +/* Interrupt Number Definition, according to the selected device */ +typedef enum IRQn +{ + /****** RISC-V Processor Exceptions Numbers *******************************************************/ + NonMaskableInt_IRQn = 2, /* 2 Non Maskable Interrupt */ + EXC_IRQn = 3, /* 4 Exception Interrupt */ + SysTicK_IRQn = 12, /* 12 System timer Interrupt */ + Software_IRQn = 14, /* 14 software Interrupt */ + + /****** RISC-V specific Interrupt Numbers *********************************************************/ + WWDG_IRQn = 16, /* Window WatchDog Interrupt */ + PVD_IRQn = 17, /* PVD through EXTI Line detection Interrupt */ + TAMPER_IRQn = 18, /* Tamper Interrupt */ + RTC_IRQn = 19, /* RTC global Interrupt */ + FLASH_IRQn = 20, /* FLASH global Interrupt */ + RCC_IRQn = 21, /* RCC global Interrupt */ + EXTI0_IRQn = 22, /* EXTI Line0 Interrupt */ + EXTI1_IRQn = 23, /* EXTI Line1 Interrupt */ + EXTI2_IRQn = 24, /* EXTI Line2 Interrupt */ + EXTI3_IRQn = 25, /* EXTI Line3 Interrupt */ + EXTI4_IRQn = 26, /* EXTI Line4 Interrupt */ + DMA1_Channel1_IRQn = 27, /* DMA1 Channel 1 global Interrupt */ + DMA1_Channel2_IRQn = 28, /* DMA1 Channel 2 global Interrupt */ + DMA1_Channel3_IRQn = 29, /* DMA1 Channel 3 global Interrupt */ + DMA1_Channel4_IRQn = 30, /* DMA1 Channel 4 global Interrupt */ + DMA1_Channel5_IRQn = 31, /* DMA1 Channel 5 global Interrupt */ + DMA1_Channel6_IRQn = 32, /* DMA1 Channel 6 global Interrupt */ + DMA1_Channel7_IRQn = 33, /* DMA1 Channel 7 global Interrupt */ + ADC_IRQn = 34, /* ADC1 global Interrupt */ + EXTI9_5_IRQn = 39, /* External Line[9:5] Interrupts */ + TIM1_BRK_IRQn = 40, /* TIM1 Break Interrupt */ + TIM1_UP_IRQn = 41, /* TIM1 Update Interrupt */ + TIM1_TRG_COM_IRQn = 42, /* TIM1 Trigger and Commutation Interrupt */ + TIM1_CC_IRQn = 43, /* TIM1 Capture Compare Interrupt */ + TIM2_IRQn = 44, /* TIM2 global Interrupt */ + TIM3_IRQn = 45, /* TIM3 global Interrupt */ + TIM4_IRQn = 46, /* TIM4 global Interrupt */ + I2C1_EV_IRQn = 47, /* I2C1 Event Interrupt */ + I2C1_ER_IRQn = 48, /* I2C1 Error Interrupt */ + I2C2_EV_IRQn = 49, /* I2C2 Event Interrupt */ + I2C2_ER_IRQn = 50, /* I2C2 Error Interrupt */ + SPI1_IRQn = 51, /* SPI1 global Interrupt */ + SPI2_IRQn = 52, /* SPI2 global Interrupt */ + USART1_IRQn = 53, /* USART1 global Interrupt */ + USART2_IRQn = 54, /* USART2 global Interrupt */ + USART3_IRQn = 55, /* USART3 global Interrupt */ + EXTI15_10_IRQn = 56, /* External Line[15:10] Interrupts */ + RTCAlarm_IRQn = 57, /* RTC Alarm through EXTI Line Interrupt */ + USBWakeUp_IRQn = 58, /* USB WakeUp from suspend through EXTI Line Interrupt */ + USBHD_IRQn = 59, /* USBHD Interrupt */ + +} IRQn_Type; + +#define HardFault_IRQn EXC_IRQn +#define ADC1_2_IRQn ADC_IRQn + +#include +#include "core_riscv.h" +#include "system_ch32v10x.h" + +/* Standard Peripheral Library old definitions (maintained for legacy purpose) */ +#define HSI_Value HSI_VALUE +#define HSE_Value HSE_VALUE +#define HSEStartUp_TimeOut HSE_STARTUP_TIMEOUT + +/* Analog to Digital Converter */ +typedef struct +{ + __IO uint32_t STATR; + __IO uint32_t CTLR1; + __IO uint32_t CTLR2; + __IO uint32_t SAMPTR1; + __IO uint32_t SAMPTR2; + __IO uint32_t IOFR1; + __IO uint32_t IOFR2; + __IO uint32_t IOFR3; + __IO uint32_t IOFR4; + __IO uint32_t WDHTR; + __IO uint32_t WDLTR; + __IO uint32_t RSQR1; + __IO uint32_t RSQR2; + __IO uint32_t RSQR3; + __IO uint32_t ISQR; + __IO uint32_t IDATAR1; + __IO uint32_t IDATAR2; + __IO uint32_t IDATAR3; + __IO uint32_t IDATAR4; + __IO uint32_t RDATAR; +} ADC_TypeDef; + +/* Backup Registers */ +typedef struct +{ + uint32_t RESERVED0; + __IO uint16_t DATAR1; + uint16_t RESERVED1; + __IO uint16_t DATAR2; + uint16_t RESERVED2; + __IO uint16_t DATAR3; + uint16_t RESERVED3; + __IO uint16_t DATAR4; + uint16_t RESERVED4; + __IO uint16_t DATAR5; + uint16_t RESERVED5; + __IO uint16_t DATAR6; + uint16_t RESERVED6; + __IO uint16_t DATAR7; + uint16_t RESERVED7; + __IO uint16_t DATAR8; + uint16_t RESERVED8; + __IO uint16_t DATAR9; + uint16_t RESERVED9; + __IO uint16_t DATAR10; + uint16_t RESERVED10; + __IO uint16_t OCTLR; + uint16_t RESERVED11; + __IO uint16_t TPCTLR; + uint16_t RESERVED12; + __IO uint16_t TPCSR; + uint16_t RESERVED13[5]; + __IO uint16_t DATAR11; + uint16_t RESERVED14; + __IO uint16_t DATAR12; + uint16_t RESERVED15; + __IO uint16_t DATAR13; + uint16_t RESERVED16; + __IO uint16_t DATAR14; + uint16_t RESERVED17; + __IO uint16_t DATAR15; + uint16_t RESERVED18; + __IO uint16_t DATAR16; + uint16_t RESERVED19; + __IO uint16_t DATAR17; + uint16_t RESERVED20; + __IO uint16_t DATAR18; + uint16_t RESERVED21; + __IO uint16_t DATAR19; + uint16_t RESERVED22; + __IO uint16_t DATAR20; + uint16_t RESERVED23; + __IO uint16_t DATAR21; + uint16_t RESERVED24; + __IO uint16_t DATAR22; + uint16_t RESERVED25; + __IO uint16_t DATAR23; + uint16_t RESERVED26; + __IO uint16_t DATAR24; + uint16_t RESERVED27; + __IO uint16_t DATAR25; + uint16_t RESERVED28; + __IO uint16_t DATAR26; + uint16_t RESERVED29; + __IO uint16_t DATAR27; + uint16_t RESERVED30; + __IO uint16_t DATAR28; + uint16_t RESERVED31; + __IO uint16_t DATAR29; + uint16_t RESERVED32; + __IO uint16_t DATAR30; + uint16_t RESERVED33; + __IO uint16_t DATAR31; + uint16_t RESERVED34; + __IO uint16_t DATAR32; + uint16_t RESERVED35; + __IO uint16_t DATAR33; + uint16_t RESERVED36; + __IO uint16_t DATAR34; + uint16_t RESERVED37; + __IO uint16_t DATAR35; + uint16_t RESERVED38; + __IO uint16_t DATAR36; + uint16_t RESERVED39; + __IO uint16_t DATAR37; + uint16_t RESERVED40; + __IO uint16_t DATAR38; + uint16_t RESERVED41; + __IO uint16_t DATAR39; + uint16_t RESERVED42; + __IO uint16_t DATAR40; + uint16_t RESERVED43; + __IO uint16_t DATAR41; + uint16_t RESERVED44; + __IO uint16_t DATAR42; + uint16_t RESERVED45; +} BKP_TypeDef; + +/* CRC Calculation Unit */ +typedef struct +{ + __IO uint32_t DATAR; + __IO uint8_t IDATAR; + uint8_t RESERVED0; + uint16_t RESERVED1; + __IO uint32_t CTLR; +} CRC_TypeDef; + +/* Digital to Analog Converter */ +typedef struct +{ + __IO uint32_t CTLR; + __IO uint32_t SWTR; + __IO uint32_t R12BDHR1; + __IO uint32_t L12BDHR1; + __IO uint32_t R8BDHR1; + __IO uint32_t R12BDHR2; + __IO uint32_t L12BDHR2; + __IO uint32_t R8BDHR2; + __IO uint32_t RD12BDHR; + __IO uint32_t LD12BDHR; + __IO uint32_t RD8BDHR; + __IO uint32_t DOR1; + __IO uint32_t DOR2; +} DAC_TypeDef; + +/* Debug MCU */ +typedef struct +{ + __IO uint32_t CFGR0; + __IO uint32_t CFGR1; +} DBGMCU_TypeDef; + +/* DMA Controller */ +typedef struct +{ + __IO uint32_t CFGR; + __IO uint32_t CNTR; + __IO uint32_t PADDR; + __IO uint32_t MADDR; +} DMA_Channel_TypeDef; + +typedef struct +{ + __IO uint32_t INTFR; + __IO uint32_t INTFCR; +} DMA_TypeDef; + +/* External Interrupt/Event Controller */ +typedef struct +{ + __IO uint32_t INTENR; + __IO uint32_t EVENR; + __IO uint32_t RTENR; + __IO uint32_t FTENR; + __IO uint32_t SWIEVR; + __IO uint32_t INTFR; +} EXTI_TypeDef; + +/* FLASH Registers */ +typedef struct +{ + __IO uint32_t ACTLR; + __IO uint32_t KEYR; + __IO uint32_t OBKEYR; + __IO uint32_t STATR; + __IO uint32_t CTLR; + __IO uint32_t ADDR; + __IO uint32_t RESERVED; + __IO uint32_t OBR; + __IO uint32_t WPR; + __IO uint32_t MODEKEYR; +} FLASH_TypeDef; + +/* Option Bytes Registers */ +typedef struct +{ + __IO uint16_t RDPR; + __IO uint16_t USER; + __IO uint16_t Data0; + __IO uint16_t Data1; + __IO uint16_t WRPR0; + __IO uint16_t WRPR1; + __IO uint16_t WRPR2; + __IO uint16_t WRPR3; +} OB_TypeDef; + +/* General Purpose I/O */ +typedef struct +{ + __IO uint32_t CFGLR; + __IO uint32_t CFGHR; + __IO uint32_t INDR; + __IO uint32_t OUTDR; + __IO uint32_t BSHR; + __IO uint32_t BCR; + __IO uint32_t LCKR; +} GPIO_TypeDef; + +/* Alternate Function I/O */ +typedef struct +{ + __IO uint32_t ECR; + __IO uint32_t PCFR1; + __IO uint32_t EXTICR[4]; + uint32_t RESERVED0; + __IO uint32_t PCFR2; +} AFIO_TypeDef; + +/* Inter Integrated Circuit Interface */ +typedef struct +{ + __IO uint16_t CTLR1; + uint16_t RESERVED0; + __IO uint16_t CTLR2; + uint16_t RESERVED1; + __IO uint16_t OADDR1; + uint16_t RESERVED2; + __IO uint16_t OADDR2; + uint16_t RESERVED3; + __IO uint16_t DATAR; + uint16_t RESERVED4; + __IO uint16_t STAR1; + uint16_t RESERVED5; + __IO uint16_t STAR2; + uint16_t RESERVED6; + __IO uint16_t CKCFGR; + uint16_t RESERVED7; + __IO uint16_t RTR; + uint16_t RESERVED8; +} I2C_TypeDef; + +/* Independent WatchDog */ +typedef struct +{ + __IO uint32_t CTLR; + __IO uint32_t PSCR; + __IO uint32_t RLDR; + __IO uint32_t STATR; +} IWDG_TypeDef; + +/* Power Control */ +typedef struct +{ + __IO uint32_t CTLR; + __IO uint32_t CSR; +} PWR_TypeDef; + +/* Reset and Clock Control */ +typedef struct +{ + __IO uint32_t CTLR; + __IO uint32_t CFGR0; + __IO uint32_t INTR; + __IO uint32_t APB2PRSTR; + __IO uint32_t APB1PRSTR; + __IO uint32_t AHBPCENR; + __IO uint32_t APB2PCENR; + __IO uint32_t APB1PCENR; + __IO uint32_t BDCTLR; + __IO uint32_t RSTSCKR; +} RCC_TypeDef; + +/* Real-Time Clock */ +typedef struct +{ + __IO uint16_t CTLRH; + uint16_t RESERVED0; + __IO uint16_t CTLRL; + uint16_t RESERVED1; + __IO uint16_t PSCRH; + uint16_t RESERVED2; + __IO uint16_t PSCRL; + uint16_t RESERVED3; + __IO uint16_t DIVH; + uint16_t RESERVED4; + __IO uint16_t DIVL; + uint16_t RESERVED5; + __IO uint16_t CNTH; + uint16_t RESERVED6; + __IO uint16_t CNTL; + uint16_t RESERVED7; + __IO uint16_t ALRMH; + uint16_t RESERVED8; + __IO uint16_t ALRML; + uint16_t RESERVED9; +} RTC_TypeDef; + +/* Serial Peripheral Interface */ +typedef struct +{ + __IO uint16_t CTLR1; + uint16_t RESERVED0; + __IO uint16_t CTLR2; + uint16_t RESERVED1; + __IO uint16_t STATR; + uint16_t RESERVED2; + __IO uint16_t DATAR; + uint16_t RESERVED3; + __IO uint16_t CRCR; + uint16_t RESERVED4; + __IO uint16_t RCRCR; + uint16_t RESERVED5; + __IO uint16_t TCRCR; + uint16_t RESERVED6; + __IO uint16_t I2SCFGR; + uint16_t RESERVED7; + __IO uint16_t I2SPR; + uint16_t RESERVED8; +} SPI_TypeDef; + +/* TIM */ +typedef struct +{ + __IO uint16_t CTLR1; + uint16_t RESERVED0; + __IO uint16_t CTLR2; + uint16_t RESERVED1; + __IO uint16_t SMCFGR; + uint16_t RESERVED2; + __IO uint16_t DMAINTENR; + uint16_t RESERVED3; + __IO uint16_t INTFR; + uint16_t RESERVED4; + __IO uint16_t SWEVGR; + uint16_t RESERVED5; + __IO uint16_t CHCTLR1; + uint16_t RESERVED6; + __IO uint16_t CHCTLR2; + uint16_t RESERVED7; + __IO uint16_t CCER; + uint16_t RESERVED8; + __IO uint16_t CNT; + uint16_t RESERVED9; + __IO uint16_t PSC; + uint16_t RESERVED10; + __IO uint16_t ATRLR; + uint16_t RESERVED11; + __IO uint16_t RPTCR; + uint16_t RESERVED12; + __IO uint16_t CH1CVR; + uint16_t RESERVED13; + __IO uint16_t CH2CVR; + uint16_t RESERVED14; + __IO uint16_t CH3CVR; + uint16_t RESERVED15; + __IO uint16_t CH4CVR; + uint16_t RESERVED16; + __IO uint16_t BDTR; + uint16_t RESERVED17; + __IO uint16_t DMACFGR; + uint16_t RESERVED18; + __IO uint16_t DMAADR; + uint16_t RESERVED19; +} TIM_TypeDef; + +/* Universal Synchronous Asynchronous Receiver Transmitter */ +typedef struct +{ + __IO uint16_t STATR; + uint16_t RESERVED0; + __IO uint16_t DATAR; + uint16_t RESERVED1; + __IO uint16_t BRR; + uint16_t RESERVED2; + __IO uint16_t CTLR1; + uint16_t RESERVED3; + __IO uint16_t CTLR2; + uint16_t RESERVED4; + __IO uint16_t CTLR3; + uint16_t RESERVED5; + __IO uint16_t GPR; + uint16_t RESERVED6; +} USART_TypeDef; + +/* Window WatchDog */ +typedef struct +{ + __IO uint32_t CTLR; + __IO uint32_t CFGR; + __IO uint32_t STATR; +} WWDG_TypeDef; + +/* Enhanced Registers */ +typedef struct +{ + __IO uint32_t EXTEN_CTR; +} EXTEN_TypeDef; + +/* Peripheral memory map */ +#define FLASH_BASE ((uint32_t)0x08000000) /* FLASH base address in the alias region */ +#define SRAM_BASE ((uint32_t)0x20000000) /* SRAM base address in the alias region */ +#define PERIPH_BASE ((uint32_t)0x40000000) /* Peripheral base address in the alias region */ + +#define APB1PERIPH_BASE (PERIPH_BASE) +#define APB2PERIPH_BASE (PERIPH_BASE + 0x10000) +#define AHBPERIPH_BASE (PERIPH_BASE + 0x20000) + +#define TIM2_BASE (APB1PERIPH_BASE + 0x0000) +#define TIM3_BASE (APB1PERIPH_BASE + 0x0400) +#define TIM4_BASE (APB1PERIPH_BASE + 0x0800) +#define TIM5_BASE (APB1PERIPH_BASE + 0x0C00) +#define TIM6_BASE (APB1PERIPH_BASE + 0x1000) +#define TIM7_BASE (APB1PERIPH_BASE + 0x1400) +#define TIM12_BASE (APB1PERIPH_BASE + 0x1800) +#define TIM13_BASE (APB1PERIPH_BASE + 0x1C00) +#define TIM14_BASE (APB1PERIPH_BASE + 0x2000) +#define RTC_BASE (APB1PERIPH_BASE + 0x2800) +#define WWDG_BASE (APB1PERIPH_BASE + 0x2C00) +#define IWDG_BASE (APB1PERIPH_BASE + 0x3000) +#define SPI2_BASE (APB1PERIPH_BASE + 0x3800) +#define SPI3_BASE (APB1PERIPH_BASE + 0x3C00) +#define USART2_BASE (APB1PERIPH_BASE + 0x4400) +#define USART3_BASE (APB1PERIPH_BASE + 0x4800) +#define UART4_BASE (APB1PERIPH_BASE + 0x4C00) +#define UART5_BASE (APB1PERIPH_BASE + 0x5000) +#define I2C1_BASE (APB1PERIPH_BASE + 0x5400) +#define I2C2_BASE (APB1PERIPH_BASE + 0x5800) +#define BKP_BASE (APB1PERIPH_BASE + 0x6C00) +#define PWR_BASE (APB1PERIPH_BASE + 0x7000) +#define DAC_BASE (APB1PERIPH_BASE + 0x7400) + +#define AFIO_BASE (APB2PERIPH_BASE + 0x0000) +#define EXTI_BASE (APB2PERIPH_BASE + 0x0400) +#define GPIOA_BASE (APB2PERIPH_BASE + 0x0800) +#define GPIOB_BASE (APB2PERIPH_BASE + 0x0C00) +#define GPIOC_BASE (APB2PERIPH_BASE + 0x1000) +#define GPIOD_BASE (APB2PERIPH_BASE + 0x1400) +#define GPIOE_BASE (APB2PERIPH_BASE + 0x1800) +#define GPIOF_BASE (APB2PERIPH_BASE + 0x1C00) +#define GPIOG_BASE (APB2PERIPH_BASE + 0x2000) +#define ADC1_BASE (APB2PERIPH_BASE + 0x2400) +#define ADC2_BASE (APB2PERIPH_BASE + 0x2800) +#define TIM1_BASE (APB2PERIPH_BASE + 0x2C00) +#define SPI1_BASE (APB2PERIPH_BASE + 0x3000) +#define TIM8_BASE (APB2PERIPH_BASE + 0x3400) +#define USART1_BASE (APB2PERIPH_BASE + 0x3800) +#define ADC3_BASE (APB2PERIPH_BASE + 0x3C00) +#define TIM15_BASE (APB2PERIPH_BASE + 0x4000) +#define TIM16_BASE (APB2PERIPH_BASE + 0x4400) +#define TIM17_BASE (APB2PERIPH_BASE + 0x4800) +#define TIM9_BASE (APB2PERIPH_BASE + 0x4C00) +#define TIM10_BASE (APB2PERIPH_BASE + 0x5000) +#define TIM11_BASE (APB2PERIPH_BASE + 0x5400) + +#define DMA1_BASE (AHBPERIPH_BASE + 0x0000) +#define DMA1_Channel1_BASE (AHBPERIPH_BASE + 0x0008) +#define DMA1_Channel2_BASE (AHBPERIPH_BASE + 0x001C) +#define DMA1_Channel3_BASE (AHBPERIPH_BASE + 0x0030) +#define DMA1_Channel4_BASE (AHBPERIPH_BASE + 0x0044) +#define DMA1_Channel5_BASE (AHBPERIPH_BASE + 0x0058) +#define DMA1_Channel6_BASE (AHBPERIPH_BASE + 0x006C) +#define DMA1_Channel7_BASE (AHBPERIPH_BASE + 0x0080) +#define DMA2_BASE (AHBPERIPH_BASE + 0x0400) +#define DMA2_Channel1_BASE (AHBPERIPH_BASE + 0x0408) +#define DMA2_Channel2_BASE (AHBPERIPH_BASE + 0x041C) +#define DMA2_Channel3_BASE (AHBPERIPH_BASE + 0x0430) +#define DMA2_Channel4_BASE (AHBPERIPH_BASE + 0x0444) +#define DMA2_Channel5_BASE (AHBPERIPH_BASE + 0x0458) +#define RCC_BASE (AHBPERIPH_BASE + 0x1000) +#define CRC_BASE (AHBPERIPH_BASE + 0x3000) + +#define FLASH_R_BASE (AHBPERIPH_BASE + 0x2000) /* Flash registers base address */ +#define OB_BASE ((uint32_t)0x1FFFF800) /* Flash Option Bytes base address */ +#define DBGMCU_BASE ((uint32_t)0xE000D000) +#define EXTEN_BASE ((uint32_t)0x40023800) + +/* Peripheral declaration */ +#define TIM2 ((TIM_TypeDef *)TIM2_BASE) +#define TIM3 ((TIM_TypeDef *)TIM3_BASE) +#define TIM4 ((TIM_TypeDef *)TIM4_BASE) +#define TIM5 ((TIM_TypeDef *)TIM5_BASE) +#define TIM6 ((TIM_TypeDef *)TIM6_BASE) +#define TIM7 ((TIM_TypeDef *)TIM7_BASE) +#define TIM12 ((TIM_TypeDef *)TIM12_BASE) +#define TIM13 ((TIM_TypeDef *)TIM13_BASE) +#define TIM14 ((TIM_TypeDef *)TIM14_BASE) +#define RTC ((RTC_TypeDef *)RTC_BASE) +#define WWDG ((WWDG_TypeDef *)WWDG_BASE) +#define IWDG ((IWDG_TypeDef *)IWDG_BASE) +#define SPI2 ((SPI_TypeDef *)SPI2_BASE) +#define SPI3 ((SPI_TypeDef *)SPI3_BASE) +#define USART2 ((USART_TypeDef *)USART2_BASE) +#define USART3 ((USART_TypeDef *)USART3_BASE) +#define UART4 ((USART_TypeDef *)UART4_BASE) +#define UART5 ((USART_TypeDef *)UART5_BASE) +#define I2C1 ((I2C_TypeDef *)I2C1_BASE) +#define I2C2 ((I2C_TypeDef *)I2C2_BASE) +#define BKP ((BKP_TypeDef *)BKP_BASE) +#define PWR ((PWR_TypeDef *)PWR_BASE) +#define DAC ((DAC_TypeDef *)DAC_BASE) +#define AFIO ((AFIO_TypeDef *)AFIO_BASE) +#define EXTI ((EXTI_TypeDef *)EXTI_BASE) +#define GPIOA ((GPIO_TypeDef *)GPIOA_BASE) +#define GPIOB ((GPIO_TypeDef *)GPIOB_BASE) +#define GPIOC ((GPIO_TypeDef *)GPIOC_BASE) +#define GPIOD ((GPIO_TypeDef *)GPIOD_BASE) +#define GPIOE ((GPIO_TypeDef *)GPIOE_BASE) +#define GPIOF ((GPIO_TypeDef *)GPIOF_BASE) +#define GPIOG ((GPIO_TypeDef *)GPIOG_BASE) +#define ADC1 ((ADC_TypeDef *)ADC1_BASE) +#define ADC2 ((ADC_TypeDef *)ADC2_BASE) +#define TIM1 ((TIM_TypeDef *)TIM1_BASE) +#define SPI1 ((SPI_TypeDef *)SPI1_BASE) +#define TIM8 ((TIM_TypeDef *)TIM8_BASE) +#define USART1 ((USART_TypeDef *)USART1_BASE) +#define ADC3 ((ADC_TypeDef *)ADC3_BASE) +#define TIM15 ((TIM_TypeDef *)TIM15_BASE) +#define TIM16 ((TIM_TypeDef *)TIM16_BASE) +#define TIM17 ((TIM_TypeDef *)TIM17_BASE) +#define TIM9 ((TIM_TypeDef *)TIM9_BASE) +#define TIM10 ((TIM_TypeDef *)TIM10_BASE) +#define TIM11 ((TIM_TypeDef *)TIM11_BASE) +#define DMA1 ((DMA_TypeDef *)DMA1_BASE) +#define DMA2 ((DMA_TypeDef *)DMA2_BASE) +#define DMA1_Channel1 ((DMA_Channel_TypeDef *)DMA1_Channel1_BASE) +#define DMA1_Channel2 ((DMA_Channel_TypeDef *)DMA1_Channel2_BASE) +#define DMA1_Channel3 ((DMA_Channel_TypeDef *)DMA1_Channel3_BASE) +#define DMA1_Channel4 ((DMA_Channel_TypeDef *)DMA1_Channel4_BASE) +#define DMA1_Channel5 ((DMA_Channel_TypeDef *)DMA1_Channel5_BASE) +#define DMA1_Channel6 ((DMA_Channel_TypeDef *)DMA1_Channel6_BASE) +#define DMA1_Channel7 ((DMA_Channel_TypeDef *)DMA1_Channel7_BASE) +#define DMA2_Channel1 ((DMA_Channel_TypeDef *)DMA2_Channel1_BASE) +#define DMA2_Channel2 ((DMA_Channel_TypeDef *)DMA2_Channel2_BASE) +#define DMA2_Channel3 ((DMA_Channel_TypeDef *)DMA2_Channel3_BASE) +#define DMA2_Channel4 ((DMA_Channel_TypeDef *)DMA2_Channel4_BASE) +#define DMA2_Channel5 ((DMA_Channel_TypeDef *)DMA2_Channel5_BASE) +#define RCC ((RCC_TypeDef *)RCC_BASE) +#define CRC ((CRC_TypeDef *)CRC_BASE) +#define FLASH ((FLASH_TypeDef *)FLASH_R_BASE) +#define OB ((OB_TypeDef *)OB_BASE) +#define DBGMCU ((DBGMCU_TypeDef *)DBGMCU_BASE) +#define EXTEN ((EXTEN_TypeDef *)EXTEN_BASE) + +/******************************************************************************/ +/* Peripheral Registers Bits Definition */ +/******************************************************************************/ + +/******************************************************************************/ +/* Analog to Digital Converter */ +/******************************************************************************/ + +/******************** Bit definition for ADC_STATR register ********************/ +#define ADC_AWD ((uint8_t)0x01) /* Analog watchdog flag */ +#define ADC_EOC ((uint8_t)0x02) /* End of conversion */ +#define ADC_JEOC ((uint8_t)0x04) /* Injected channel end of conversion */ +#define ADC_JSTRT ((uint8_t)0x08) /* Injected channel Start flag */ +#define ADC_STRT ((uint8_t)0x10) /* Regular channel Start flag */ + +/******************* Bit definition for ADC_CTLR1 register ********************/ +#define ADC_AWDCH ((uint32_t)0x0000001F) /* AWDCH[4:0] bits (Analog watchdog channel select bits) */ +#define ADC_AWDCH_0 ((uint32_t)0x00000001) /* Bit 0 */ +#define ADC_AWDCH_1 ((uint32_t)0x00000002) /* Bit 1 */ +#define ADC_AWDCH_2 ((uint32_t)0x00000004) /* Bit 2 */ +#define ADC_AWDCH_3 ((uint32_t)0x00000008) /* Bit 3 */ +#define ADC_AWDCH_4 ((uint32_t)0x00000010) /* Bit 4 */ + +#define ADC_EOCIE ((uint32_t)0x00000020) /* Interrupt enable for EOC */ +#define ADC_AWDIE ((uint32_t)0x00000040) /* Analog Watchdog interrupt enable */ +#define ADC_JEOCIE ((uint32_t)0x00000080) /* Interrupt enable for injected channels */ +#define ADC_SCAN ((uint32_t)0x00000100) /* Scan mode */ +#define ADC_AWDSGL ((uint32_t)0x00000200) /* Enable the watchdog on a single channel in scan mode */ +#define ADC_JAUTO ((uint32_t)0x00000400) /* Automatic injected group conversion */ +#define ADC_DISCEN ((uint32_t)0x00000800) /* Discontinuous mode on regular channels */ +#define ADC_JDISCEN ((uint32_t)0x00001000) /* Discontinuous mode on injected channels */ + +#define ADC_DISCNUM ((uint32_t)0x0000E000) /* DISCNUM[2:0] bits (Discontinuous mode channel count) */ +#define ADC_DISCNUM_0 ((uint32_t)0x00002000) /* Bit 0 */ +#define ADC_DISCNUM_1 ((uint32_t)0x00004000) /* Bit 1 */ +#define ADC_DISCNUM_2 ((uint32_t)0x00008000) /* Bit 2 */ + +#define ADC_DUALMOD ((uint32_t)0x000F0000) /* DUALMOD[3:0] bits (Dual mode selection) */ +#define ADC_DUALMOD_0 ((uint32_t)0x00010000) /* Bit 0 */ +#define ADC_DUALMOD_1 ((uint32_t)0x00020000) /* Bit 1 */ +#define ADC_DUALMOD_2 ((uint32_t)0x00040000) /* Bit 2 */ +#define ADC_DUALMOD_3 ((uint32_t)0x00080000) /* Bit 3 */ + +#define ADC_JAWDEN ((uint32_t)0x00400000) /* Analog watchdog enable on injected channels */ +#define ADC_AWDEN ((uint32_t)0x00800000) /* Analog watchdog enable on regular channels */ + +/******************* Bit definition for ADC_CTLR2 register ********************/ +#define ADC_ADON ((uint32_t)0x00000001) /* A/D Converter ON / OFF */ +#define ADC_CONT ((uint32_t)0x00000002) /* Continuous Conversion */ +#define ADC_CAL ((uint32_t)0x00000004) /* A/D Calibration */ +#define ADC_RSTCAL ((uint32_t)0x00000008) /* Reset Calibration */ +#define ADC_DMA ((uint32_t)0x00000100) /* Direct Memory access mode */ +#define ADC_ALIGN ((uint32_t)0x00000800) /* Data Alignment */ + +#define ADC_JEXTSEL ((uint32_t)0x00007000) /* JEXTSEL[2:0] bits (External event select for injected group) */ +#define ADC_JEXTSEL_0 ((uint32_t)0x00001000) /* Bit 0 */ +#define ADC_JEXTSEL_1 ((uint32_t)0x00002000) /* Bit 1 */ +#define ADC_JEXTSEL_2 ((uint32_t)0x00004000) /* Bit 2 */ + +#define ADC_JEXTTRIG ((uint32_t)0x00008000) /* External Trigger Conversion mode for injected channels */ + +#define ADC_EXTSEL ((uint32_t)0x000E0000) /* EXTSEL[2:0] bits (External Event Select for regular group) */ +#define ADC_EXTSEL_0 ((uint32_t)0x00020000) /* Bit 0 */ +#define ADC_EXTSEL_1 ((uint32_t)0x00040000) /* Bit 1 */ +#define ADC_EXTSEL_2 ((uint32_t)0x00080000) /* Bit 2 */ + +#define ADC_EXTTRIG ((uint32_t)0x00100000) /* External Trigger Conversion mode for regular channels */ +#define ADC_JSWSTART ((uint32_t)0x00200000) /* Start Conversion of injected channels */ +#define ADC_SWSTART ((uint32_t)0x00400000) /* Start Conversion of regular channels */ +#define ADC_TSVREFE ((uint32_t)0x00800000) /* Temperature Sensor and VREFINT Enable */ + +/****************** Bit definition for ADC_SAMPTR1 register *******************/ +#define ADC_SMP10 ((uint32_t)0x00000007) /* SMP10[2:0] bits (Channel 10 Sample time selection) */ +#define ADC_SMP10_0 ((uint32_t)0x00000001) /* Bit 0 */ +#define ADC_SMP10_1 ((uint32_t)0x00000002) /* Bit 1 */ +#define ADC_SMP10_2 ((uint32_t)0x00000004) /* Bit 2 */ + +#define ADC_SMP11 ((uint32_t)0x00000038) /* SMP11[2:0] bits (Channel 11 Sample time selection) */ +#define ADC_SMP11_0 ((uint32_t)0x00000008) /* Bit 0 */ +#define ADC_SMP11_1 ((uint32_t)0x00000010) /* Bit 1 */ +#define ADC_SMP11_2 ((uint32_t)0x00000020) /* Bit 2 */ + +#define ADC_SMP12 ((uint32_t)0x000001C0) /* SMP12[2:0] bits (Channel 12 Sample time selection) */ +#define ADC_SMP12_0 ((uint32_t)0x00000040) /* Bit 0 */ +#define ADC_SMP12_1 ((uint32_t)0x00000080) /* Bit 1 */ +#define ADC_SMP12_2 ((uint32_t)0x00000100) /* Bit 2 */ + +#define ADC_SMP13 ((uint32_t)0x00000E00) /* SMP13[2:0] bits (Channel 13 Sample time selection) */ +#define ADC_SMP13_0 ((uint32_t)0x00000200) /* Bit 0 */ +#define ADC_SMP13_1 ((uint32_t)0x00000400) /* Bit 1 */ +#define ADC_SMP13_2 ((uint32_t)0x00000800) /* Bit 2 */ + +#define ADC_SMP14 ((uint32_t)0x00007000) /* SMP14[2:0] bits (Channel 14 Sample time selection) */ +#define ADC_SMP14_0 ((uint32_t)0x00001000) /* Bit 0 */ +#define ADC_SMP14_1 ((uint32_t)0x00002000) /* Bit 1 */ +#define ADC_SMP14_2 ((uint32_t)0x00004000) /* Bit 2 */ + +#define ADC_SMP15 ((uint32_t)0x00038000) /* SMP15[2:0] bits (Channel 15 Sample time selection) */ +#define ADC_SMP15_0 ((uint32_t)0x00008000) /* Bit 0 */ +#define ADC_SMP15_1 ((uint32_t)0x00010000) /* Bit 1 */ +#define ADC_SMP15_2 ((uint32_t)0x00020000) /* Bit 2 */ + +#define ADC_SMP16 ((uint32_t)0x001C0000) /* SMP16[2:0] bits (Channel 16 Sample time selection) */ +#define ADC_SMP16_0 ((uint32_t)0x00040000) /* Bit 0 */ +#define ADC_SMP16_1 ((uint32_t)0x00080000) /* Bit 1 */ +#define ADC_SMP16_2 ((uint32_t)0x00100000) /* Bit 2 */ + +#define ADC_SMP17 ((uint32_t)0x00E00000) /* SMP17[2:0] bits (Channel 17 Sample time selection) */ +#define ADC_SMP17_0 ((uint32_t)0x00200000) /* Bit 0 */ +#define ADC_SMP17_1 ((uint32_t)0x00400000) /* Bit 1 */ +#define ADC_SMP17_2 ((uint32_t)0x00800000) /* Bit 2 */ + +/****************** Bit definition for ADC_SAMPTR2 register *******************/ +#define ADC_SMP0 ((uint32_t)0x00000007) /* SMP0[2:0] bits (Channel 0 Sample time selection) */ +#define ADC_SMP0_0 ((uint32_t)0x00000001) /* Bit 0 */ +#define ADC_SMP0_1 ((uint32_t)0x00000002) /* Bit 1 */ +#define ADC_SMP0_2 ((uint32_t)0x00000004) /* Bit 2 */ + +#define ADC_SMP1 ((uint32_t)0x00000038) /* SMP1[2:0] bits (Channel 1 Sample time selection) */ +#define ADC_SMP1_0 ((uint32_t)0x00000008) /* Bit 0 */ +#define ADC_SMP1_1 ((uint32_t)0x00000010) /* Bit 1 */ +#define ADC_SMP1_2 ((uint32_t)0x00000020) /* Bit 2 */ + +#define ADC_SMP2 ((uint32_t)0x000001C0) /* SMP2[2:0] bits (Channel 2 Sample time selection) */ +#define ADC_SMP2_0 ((uint32_t)0x00000040) /* Bit 0 */ +#define ADC_SMP2_1 ((uint32_t)0x00000080) /* Bit 1 */ +#define ADC_SMP2_2 ((uint32_t)0x00000100) /* Bit 2 */ + +#define ADC_SMP3 ((uint32_t)0x00000E00) /* SMP3[2:0] bits (Channel 3 Sample time selection) */ +#define ADC_SMP3_0 ((uint32_t)0x00000200) /* Bit 0 */ +#define ADC_SMP3_1 ((uint32_t)0x00000400) /* Bit 1 */ +#define ADC_SMP3_2 ((uint32_t)0x00000800) /* Bit 2 */ + +#define ADC_SMP4 ((uint32_t)0x00007000) /* SMP4[2:0] bits (Channel 4 Sample time selection) */ +#define ADC_SMP4_0 ((uint32_t)0x00001000) /* Bit 0 */ +#define ADC_SMP4_1 ((uint32_t)0x00002000) /* Bit 1 */ +#define ADC_SMP4_2 ((uint32_t)0x00004000) /* Bit 2 */ + +#define ADC_SMP5 ((uint32_t)0x00038000) /* SMP5[2:0] bits (Channel 5 Sample time selection) */ +#define ADC_SMP5_0 ((uint32_t)0x00008000) /* Bit 0 */ +#define ADC_SMP5_1 ((uint32_t)0x00010000) /* Bit 1 */ +#define ADC_SMP5_2 ((uint32_t)0x00020000) /* Bit 2 */ + +#define ADC_SMP6 ((uint32_t)0x001C0000) /* SMP6[2:0] bits (Channel 6 Sample time selection) */ +#define ADC_SMP6_0 ((uint32_t)0x00040000) /* Bit 0 */ +#define ADC_SMP6_1 ((uint32_t)0x00080000) /* Bit 1 */ +#define ADC_SMP6_2 ((uint32_t)0x00100000) /* Bit 2 */ + +#define ADC_SMP7 ((uint32_t)0x00E00000) /* SMP7[2:0] bits (Channel 7 Sample time selection) */ +#define ADC_SMP7_0 ((uint32_t)0x00200000) /* Bit 0 */ +#define ADC_SMP7_1 ((uint32_t)0x00400000) /* Bit 1 */ +#define ADC_SMP7_2 ((uint32_t)0x00800000) /* Bit 2 */ + +#define ADC_SMP8 ((uint32_t)0x07000000) /* SMP8[2:0] bits (Channel 8 Sample time selection) */ +#define ADC_SMP8_0 ((uint32_t)0x01000000) /* Bit 0 */ +#define ADC_SMP8_1 ((uint32_t)0x02000000) /* Bit 1 */ +#define ADC_SMP8_2 ((uint32_t)0x04000000) /* Bit 2 */ + +#define ADC_SMP9 ((uint32_t)0x38000000) /* SMP9[2:0] bits (Channel 9 Sample time selection) */ +#define ADC_SMP9_0 ((uint32_t)0x08000000) /* Bit 0 */ +#define ADC_SMP9_1 ((uint32_t)0x10000000) /* Bit 1 */ +#define ADC_SMP9_2 ((uint32_t)0x20000000) /* Bit 2 */ + +/****************** Bit definition for ADC_IOFR1 register *******************/ +#define ADC_JOFFSET1 ((uint16_t)0x0FFF) /* Data offset for injected channel 1 */ + +/****************** Bit definition for ADC_IOFR2 register *******************/ +#define ADC_JOFFSET2 ((uint16_t)0x0FFF) /* Data offset for injected channel 2 */ + +/****************** Bit definition for ADC_IOFR3 register *******************/ +#define ADC_JOFFSET3 ((uint16_t)0x0FFF) /* Data offset for injected channel 3 */ + +/****************** Bit definition for ADC_IOFR4 register *******************/ +#define ADC_JOFFSET4 ((uint16_t)0x0FFF) /* Data offset for injected channel 4 */ + +/******************* Bit definition for ADC_WDHTR register ********************/ +#define ADC_HT ((uint16_t)0x0FFF) /* Analog watchdog high threshold */ + +/******************* Bit definition for ADC_WDLTR register ********************/ +#define ADC_LT ((uint16_t)0x0FFF) /* Analog watchdog low threshold */ + +/******************* Bit definition for ADC_RSQR1 register *******************/ +#define ADC_SQ13 ((uint32_t)0x0000001F) /* SQ13[4:0] bits (13th conversion in regular sequence) */ +#define ADC_SQ13_0 ((uint32_t)0x00000001) /* Bit 0 */ +#define ADC_SQ13_1 ((uint32_t)0x00000002) /* Bit 1 */ +#define ADC_SQ13_2 ((uint32_t)0x00000004) /* Bit 2 */ +#define ADC_SQ13_3 ((uint32_t)0x00000008) /* Bit 3 */ +#define ADC_SQ13_4 ((uint32_t)0x00000010) /* Bit 4 */ + +#define ADC_SQ14 ((uint32_t)0x000003E0) /* SQ14[4:0] bits (14th conversion in regular sequence) */ +#define ADC_SQ14_0 ((uint32_t)0x00000020) /* Bit 0 */ +#define ADC_SQ14_1 ((uint32_t)0x00000040) /* Bit 1 */ +#define ADC_SQ14_2 ((uint32_t)0x00000080) /* Bit 2 */ +#define ADC_SQ14_3 ((uint32_t)0x00000100) /* Bit 3 */ +#define ADC_SQ14_4 ((uint32_t)0x00000200) /* Bit 4 */ + +#define ADC_SQ15 ((uint32_t)0x00007C00) /* SQ15[4:0] bits (15th conversion in regular sequence) */ +#define ADC_SQ15_0 ((uint32_t)0x00000400) /* Bit 0 */ +#define ADC_SQ15_1 ((uint32_t)0x00000800) /* Bit 1 */ +#define ADC_SQ15_2 ((uint32_t)0x00001000) /* Bit 2 */ +#define ADC_SQ15_3 ((uint32_t)0x00002000) /* Bit 3 */ +#define ADC_SQ15_4 ((uint32_t)0x00004000) /* Bit 4 */ + +#define ADC_SQ16 ((uint32_t)0x000F8000) /* SQ16[4:0] bits (16th conversion in regular sequence) */ +#define ADC_SQ16_0 ((uint32_t)0x00008000) /* Bit 0 */ +#define ADC_SQ16_1 ((uint32_t)0x00010000) /* Bit 1 */ +#define ADC_SQ16_2 ((uint32_t)0x00020000) /* Bit 2 */ +#define ADC_SQ16_3 ((uint32_t)0x00040000) /* Bit 3 */ +#define ADC_SQ16_4 ((uint32_t)0x00080000) /* Bit 4 */ + +#define ADC_L ((uint32_t)0x00F00000) /* L[3:0] bits (Regular channel sequence length) */ +#define ADC_L_0 ((uint32_t)0x00100000) /* Bit 0 */ +#define ADC_L_1 ((uint32_t)0x00200000) /* Bit 1 */ +#define ADC_L_2 ((uint32_t)0x00400000) /* Bit 2 */ +#define ADC_L_3 ((uint32_t)0x00800000) /* Bit 3 */ + +/******************* Bit definition for ADC_RSQR2 register *******************/ +#define ADC_SQ7 ((uint32_t)0x0000001F) /* SQ7[4:0] bits (7th conversion in regular sequence) */ +#define ADC_SQ7_0 ((uint32_t)0x00000001) /* Bit 0 */ +#define ADC_SQ7_1 ((uint32_t)0x00000002) /* Bit 1 */ +#define ADC_SQ7_2 ((uint32_t)0x00000004) /* Bit 2 */ +#define ADC_SQ7_3 ((uint32_t)0x00000008) /* Bit 3 */ +#define ADC_SQ7_4 ((uint32_t)0x00000010) /* Bit 4 */ + +#define ADC_SQ8 ((uint32_t)0x000003E0) /* SQ8[4:0] bits (8th conversion in regular sequence) */ +#define ADC_SQ8_0 ((uint32_t)0x00000020) /* Bit 0 */ +#define ADC_SQ8_1 ((uint32_t)0x00000040) /* Bit 1 */ +#define ADC_SQ8_2 ((uint32_t)0x00000080) /* Bit 2 */ +#define ADC_SQ8_3 ((uint32_t)0x00000100) /* Bit 3 */ +#define ADC_SQ8_4 ((uint32_t)0x00000200) /* Bit 4 */ + +#define ADC_SQ9 ((uint32_t)0x00007C00) /* SQ9[4:0] bits (9th conversion in regular sequence) */ +#define ADC_SQ9_0 ((uint32_t)0x00000400) /* Bit 0 */ +#define ADC_SQ9_1 ((uint32_t)0x00000800) /* Bit 1 */ +#define ADC_SQ9_2 ((uint32_t)0x00001000) /* Bit 2 */ +#define ADC_SQ9_3 ((uint32_t)0x00002000) /* Bit 3 */ +#define ADC_SQ9_4 ((uint32_t)0x00004000) /* Bit 4 */ + +#define ADC_SQ10 ((uint32_t)0x000F8000) /* SQ10[4:0] bits (10th conversion in regular sequence) */ +#define ADC_SQ10_0 ((uint32_t)0x00008000) /* Bit 0 */ +#define ADC_SQ10_1 ((uint32_t)0x00010000) /* Bit 1 */ +#define ADC_SQ10_2 ((uint32_t)0x00020000) /* Bit 2 */ +#define ADC_SQ10_3 ((uint32_t)0x00040000) /* Bit 3 */ +#define ADC_SQ10_4 ((uint32_t)0x00080000) /* Bit 4 */ + +#define ADC_SQ11 ((uint32_t)0x01F00000) /* SQ11[4:0] bits (11th conversion in regular sequence) */ +#define ADC_SQ11_0 ((uint32_t)0x00100000) /* Bit 0 */ +#define ADC_SQ11_1 ((uint32_t)0x00200000) /* Bit 1 */ +#define ADC_SQ11_2 ((uint32_t)0x00400000) /* Bit 2 */ +#define ADC_SQ11_3 ((uint32_t)0x00800000) /* Bit 3 */ +#define ADC_SQ11_4 ((uint32_t)0x01000000) /* Bit 4 */ + +#define ADC_SQ12 ((uint32_t)0x3E000000) /* SQ12[4:0] bits (12th conversion in regular sequence) */ +#define ADC_SQ12_0 ((uint32_t)0x02000000) /* Bit 0 */ +#define ADC_SQ12_1 ((uint32_t)0x04000000) /* Bit 1 */ +#define ADC_SQ12_2 ((uint32_t)0x08000000) /* Bit 2 */ +#define ADC_SQ12_3 ((uint32_t)0x10000000) /* Bit 3 */ +#define ADC_SQ12_4 ((uint32_t)0x20000000) /* Bit 4 */ + +/******************* Bit definition for ADC_RSQR3 register *******************/ +#define ADC_SQ1 ((uint32_t)0x0000001F) /* SQ1[4:0] bits (1st conversion in regular sequence) */ +#define ADC_SQ1_0 ((uint32_t)0x00000001) /* Bit 0 */ +#define ADC_SQ1_1 ((uint32_t)0x00000002) /* Bit 1 */ +#define ADC_SQ1_2 ((uint32_t)0x00000004) /* Bit 2 */ +#define ADC_SQ1_3 ((uint32_t)0x00000008) /* Bit 3 */ +#define ADC_SQ1_4 ((uint32_t)0x00000010) /* Bit 4 */ + +#define ADC_SQ2 ((uint32_t)0x000003E0) /* SQ2[4:0] bits (2nd conversion in regular sequence) */ +#define ADC_SQ2_0 ((uint32_t)0x00000020) /* Bit 0 */ +#define ADC_SQ2_1 ((uint32_t)0x00000040) /* Bit 1 */ +#define ADC_SQ2_2 ((uint32_t)0x00000080) /* Bit 2 */ +#define ADC_SQ2_3 ((uint32_t)0x00000100) /* Bit 3 */ +#define ADC_SQ2_4 ((uint32_t)0x00000200) /* Bit 4 */ + +#define ADC_SQ3 ((uint32_t)0x00007C00) /* SQ3[4:0] bits (3rd conversion in regular sequence) */ +#define ADC_SQ3_0 ((uint32_t)0x00000400) /* Bit 0 */ +#define ADC_SQ3_1 ((uint32_t)0x00000800) /* Bit 1 */ +#define ADC_SQ3_2 ((uint32_t)0x00001000) /* Bit 2 */ +#define ADC_SQ3_3 ((uint32_t)0x00002000) /* Bit 3 */ +#define ADC_SQ3_4 ((uint32_t)0x00004000) /* Bit 4 */ + +#define ADC_SQ4 ((uint32_t)0x000F8000) /* SQ4[4:0] bits (4th conversion in regular sequence) */ +#define ADC_SQ4_0 ((uint32_t)0x00008000) /* Bit 0 */ +#define ADC_SQ4_1 ((uint32_t)0x00010000) /* Bit 1 */ +#define ADC_SQ4_2 ((uint32_t)0x00020000) /* Bit 2 */ +#define ADC_SQ4_3 ((uint32_t)0x00040000) /* Bit 3 */ +#define ADC_SQ4_4 ((uint32_t)0x00080000) /* Bit 4 */ + +#define ADC_SQ5 ((uint32_t)0x01F00000) /* SQ5[4:0] bits (5th conversion in regular sequence) */ +#define ADC_SQ5_0 ((uint32_t)0x00100000) /* Bit 0 */ +#define ADC_SQ5_1 ((uint32_t)0x00200000) /* Bit 1 */ +#define ADC_SQ5_2 ((uint32_t)0x00400000) /* Bit 2 */ +#define ADC_SQ5_3 ((uint32_t)0x00800000) /* Bit 3 */ +#define ADC_SQ5_4 ((uint32_t)0x01000000) /* Bit 4 */ + +#define ADC_SQ6 ((uint32_t)0x3E000000) /* SQ6[4:0] bits (6th conversion in regular sequence) */ +#define ADC_SQ6_0 ((uint32_t)0x02000000) /* Bit 0 */ +#define ADC_SQ6_1 ((uint32_t)0x04000000) /* Bit 1 */ +#define ADC_SQ6_2 ((uint32_t)0x08000000) /* Bit 2 */ +#define ADC_SQ6_3 ((uint32_t)0x10000000) /* Bit 3 */ +#define ADC_SQ6_4 ((uint32_t)0x20000000) /* Bit 4 */ + +/******************* Bit definition for ADC_ISQR register *******************/ +#define ADC_JSQ1 ((uint32_t)0x0000001F) /* JSQ1[4:0] bits (1st conversion in injected sequence) */ +#define ADC_JSQ1_0 ((uint32_t)0x00000001) /* Bit 0 */ +#define ADC_JSQ1_1 ((uint32_t)0x00000002) /* Bit 1 */ +#define ADC_JSQ1_2 ((uint32_t)0x00000004) /* Bit 2 */ +#define ADC_JSQ1_3 ((uint32_t)0x00000008) /* Bit 3 */ +#define ADC_JSQ1_4 ((uint32_t)0x00000010) /* Bit 4 */ + +#define ADC_JSQ2 ((uint32_t)0x000003E0) /* JSQ2[4:0] bits (2nd conversion in injected sequence) */ +#define ADC_JSQ2_0 ((uint32_t)0x00000020) /* Bit 0 */ +#define ADC_JSQ2_1 ((uint32_t)0x00000040) /* Bit 1 */ +#define ADC_JSQ2_2 ((uint32_t)0x00000080) /* Bit 2 */ +#define ADC_JSQ2_3 ((uint32_t)0x00000100) /* Bit 3 */ +#define ADC_JSQ2_4 ((uint32_t)0x00000200) /* Bit 4 */ + +#define ADC_JSQ3 ((uint32_t)0x00007C00) /* JSQ3[4:0] bits (3rd conversion in injected sequence) */ +#define ADC_JSQ3_0 ((uint32_t)0x00000400) /* Bit 0 */ +#define ADC_JSQ3_1 ((uint32_t)0x00000800) /* Bit 1 */ +#define ADC_JSQ3_2 ((uint32_t)0x00001000) /* Bit 2 */ +#define ADC_JSQ3_3 ((uint32_t)0x00002000) /* Bit 3 */ +#define ADC_JSQ3_4 ((uint32_t)0x00004000) /* Bit 4 */ + +#define ADC_JSQ4 ((uint32_t)0x000F8000) /* JSQ4[4:0] bits (4th conversion in injected sequence) */ +#define ADC_JSQ4_0 ((uint32_t)0x00008000) /* Bit 0 */ +#define ADC_JSQ4_1 ((uint32_t)0x00010000) /* Bit 1 */ +#define ADC_JSQ4_2 ((uint32_t)0x00020000) /* Bit 2 */ +#define ADC_JSQ4_3 ((uint32_t)0x00040000) /* Bit 3 */ +#define ADC_JSQ4_4 ((uint32_t)0x00080000) /* Bit 4 */ + +#define ADC_JL ((uint32_t)0x00300000) /* JL[1:0] bits (Injected Sequence length) */ +#define ADC_JL_0 ((uint32_t)0x00100000) /* Bit 0 */ +#define ADC_JL_1 ((uint32_t)0x00200000) /* Bit 1 */ + +/******************* Bit definition for ADC_IDATAR1 register *******************/ +#define ADC_IDATAR1_JDATA ((uint16_t)0xFFFF) /* Injected data */ + +/******************* Bit definition for ADC_IDATAR2 register *******************/ +#define ADC_IDATAR2_JDATA ((uint16_t)0xFFFF) /* Injected data */ + +/******************* Bit definition for ADC_IDATAR3 register *******************/ +#define ADC_IDATAR3_JDATA ((uint16_t)0xFFFF) /* Injected data */ + +/******************* Bit definition for ADC_IDATAR4 register *******************/ +#define ADC_IDATAR4_JDATA ((uint16_t)0xFFFF) /* Injected data */ + +/******************** Bit definition for ADC_RDATAR register ********************/ +#define ADC_RDATAR_DATA ((uint32_t)0x0000FFFF) /* Regular data */ +#define ADC_RDATAR_ADC2DATA ((uint32_t)0xFFFF0000) /* ADC2 data */ + +/******************************************************************************/ +/* Backup registers */ +/******************************************************************************/ + +/******************* Bit definition for BKP_DATAR1 register ********************/ +#define BKP_DATAR1_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR2 register ********************/ +#define BKP_DATAR2_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR3 register ********************/ +#define BKP_DATAR3_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR4 register ********************/ +#define BKP_DATAR4_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR5 register ********************/ +#define BKP_DATAR5_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR6 register ********************/ +#define BKP_DATAR6_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR7 register ********************/ +#define BKP_DATAR7_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR8 register ********************/ +#define BKP_DATAR8_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR9 register ********************/ +#define BKP_DATAR9_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR10 register *******************/ +#define BKP_DATAR10_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR11 register *******************/ +#define BKP_DATAR11_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR12 register *******************/ +#define BKP_DATAR12_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR13 register *******************/ +#define BKP_DATAR13_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR14 register *******************/ +#define BKP_DATAR14_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR15 register *******************/ +#define BKP_DATAR15_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR16 register *******************/ +#define BKP_DATAR16_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR17 register *******************/ +#define BKP_DATAR17_D ((uint16_t)0xFFFF) /* Backup data */ + +/****************** Bit definition for BKP_DATAR18 register ********************/ +#define BKP_DATAR18_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR19 register *******************/ +#define BKP_DATAR19_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR20 register *******************/ +#define BKP_DATAR20_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR21 register *******************/ +#define BKP_DATAR21_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR22 register *******************/ +#define BKP_DATAR22_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR23 register *******************/ +#define BKP_DATAR23_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR24 register *******************/ +#define BKP_DATAR24_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR25 register *******************/ +#define BKP_DATAR25_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR26 register *******************/ +#define BKP_DATAR26_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR27 register *******************/ +#define BKP_DATAR27_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR28 register *******************/ +#define BKP_DATAR28_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR29 register *******************/ +#define BKP_DATAR29_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR30 register *******************/ +#define BKP_DATAR30_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR31 register *******************/ +#define BKP_DATAR31_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR32 register *******************/ +#define BKP_DATAR32_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR33 register *******************/ +#define BKP_DATAR33_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR34 register *******************/ +#define BKP_DATAR34_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR35 register *******************/ +#define BKP_DATAR35_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR36 register *******************/ +#define BKP_DATAR36_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR37 register *******************/ +#define BKP_DATAR37_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR38 register *******************/ +#define BKP_DATAR38_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR39 register *******************/ +#define BKP_DATAR39_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR40 register *******************/ +#define BKP_DATAR40_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR41 register *******************/ +#define BKP_DATAR41_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR42 register *******************/ +#define BKP_DATAR42_D ((uint16_t)0xFFFF) /* Backup data */ + +/****************** Bit definition for BKP_OCTLR register *******************/ +#define BKP_CAL ((uint16_t)0x007F) /* Calibration value */ +#define BKP_CCO ((uint16_t)0x0080) /* Calibration Clock Output */ +#define BKP_ASOE ((uint16_t)0x0100) /* Alarm or Second Output Enable */ +#define BKP_ASOS ((uint16_t)0x0200) /* Alarm or Second Output Selection */ + +/******************** Bit definition for BKP_TPCTLR register ********************/ +#define BKP_TPE ((uint8_t)0x01) /* TAMPER pin enable */ +#define BKP_TPAL ((uint8_t)0x02) /* TAMPER pin active level */ + +/******************* Bit definition for BKP_TPCSR register ********************/ +#define BKP_CTE ((uint16_t)0x0001) /* Clear Tamper event */ +#define BKP_CTI ((uint16_t)0x0002) /* Clear Tamper Interrupt */ +#define BKP_TPIE ((uint16_t)0x0004) /* TAMPER Pin interrupt enable */ +#define BKP_TEF ((uint16_t)0x0100) /* Tamper Event Flag */ +#define BKP_TIF ((uint16_t)0x0200) /* Tamper Interrupt Flag */ + +/******************************************************************************/ +/* CRC Calculation Unit */ +/******************************************************************************/ + +/******************* Bit definition for CRC_DATAR register *********************/ +#define CRC_DATAR_DR ((uint32_t)0xFFFFFFFF) /* Data register bits */ + +/******************* Bit definition for CRC_IDATAR register ********************/ +#define CRC_IDR_IDATAR ((uint8_t)0xFF) /* General-purpose 8-bit data register bits */ + +/******************** Bit definition for CRC_CTLR register ********************/ +#define CRC_CTLR_RESET ((uint8_t)0x01) /* RESET bit */ + +/******************************************************************************/ +/* Digital to Analog Converter */ +/******************************************************************************/ + +/******************** Bit definition for DAC_CTLR register ********************/ +#define DAC_EN1 ((uint32_t)0x00000001) /* DAC channel1 enable */ +#define DAC_BOFF1 ((uint32_t)0x00000002) /* DAC channel1 output buffer disable */ +#define DAC_TEN1 ((uint32_t)0x00000004) /* DAC channel1 Trigger enable */ + +#define DAC_TSEL1 ((uint32_t)0x00000038) /* TSEL1[2:0] (DAC channel1 Trigger selection) */ +#define DAC_TSEL1_0 ((uint32_t)0x00000008) /* Bit 0 */ +#define DAC_TSEL1_1 ((uint32_t)0x00000010) /* Bit 1 */ +#define DAC_TSEL1_2 ((uint32_t)0x00000020) /* Bit 2 */ + +#define DAC_WAVE1 ((uint32_t)0x000000C0) /* WAVE1[1:0] (DAC channel1 noise/triangle wave generation enable) */ +#define DAC_WAVE1_0 ((uint32_t)0x00000040) /* Bit 0 */ +#define DAC_WAVE1_1 ((uint32_t)0x00000080) /* Bit 1 */ + +#define DAC_MAMP1 ((uint32_t)0x00000F00) /* MAMP1[3:0] (DAC channel1 Mask/Amplitude selector) */ +#define DAC_MAMP1_0 ((uint32_t)0x00000100) /* Bit 0 */ +#define DAC_MAMP1_1 ((uint32_t)0x00000200) /* Bit 1 */ +#define DAC_MAMP1_2 ((uint32_t)0x00000400) /* Bit 2 */ +#define DAC_MAMP1_3 ((uint32_t)0x00000800) /* Bit 3 */ + +#define DAC_DMAEN1 ((uint32_t)0x00001000) /* DAC channel1 DMA enable */ +#define DAC_EN2 ((uint32_t)0x00010000) /* DAC channel2 enable */ +#define DAC_BOFF2 ((uint32_t)0x00020000) /* DAC channel2 output buffer disable */ +#define DAC_TEN2 ((uint32_t)0x00040000) /* DAC channel2 Trigger enable */ + +#define DAC_TSEL2 ((uint32_t)0x00380000) /* TSEL2[2:0] (DAC channel2 Trigger selection) */ +#define DAC_TSEL2_0 ((uint32_t)0x00080000) /* Bit 0 */ +#define DAC_TSEL2_1 ((uint32_t)0x00100000) /* Bit 1 */ +#define DAC_TSEL2_2 ((uint32_t)0x00200000) /* Bit 2 */ + +#define DAC_WAVE2 ((uint32_t)0x00C00000) /* WAVE2[1:0] (DAC channel2 noise/triangle wave generation enable) */ +#define DAC_WAVE2_0 ((uint32_t)0x00400000) /* Bit 0 */ +#define DAC_WAVE2_1 ((uint32_t)0x00800000) /* Bit 1 */ + +#define DAC_MAMP2 ((uint32_t)0x0F000000) /* MAMP2[3:0] (DAC channel2 Mask/Amplitude selector) */ +#define DAC_MAMP2_0 ((uint32_t)0x01000000) /* Bit 0 */ +#define DAC_MAMP2_1 ((uint32_t)0x02000000) /* Bit 1 */ +#define DAC_MAMP2_2 ((uint32_t)0x04000000) /* Bit 2 */ +#define DAC_MAMP2_3 ((uint32_t)0x08000000) /* Bit 3 */ + +#define DAC_DMAEN2 ((uint32_t)0x10000000) /* DAC channel2 DMA enabled */ + +/***************** Bit definition for DAC_SWTR register ******************/ +#define DAC_SWTRIG1 ((uint8_t)0x01) /* DAC channel1 software trigger */ +#define DAC_SWTRIG2 ((uint8_t)0x02) /* DAC channel2 software trigger */ + +/***************** Bit definition for DAC_R12BDHR1 register ******************/ +#define DAC_DHR12R1 ((uint16_t)0x0FFF) /* DAC channel1 12-bit Right aligned data */ + +/***************** Bit definition for DAC_L12BDHR1 register ******************/ +#define DAC_DHR12L1 ((uint16_t)0xFFF0) /* DAC channel1 12-bit Left aligned data */ + +/****************** Bit definition for DAC_R8BDHR1 register ******************/ +#define DAC_DHR8R1 ((uint8_t)0xFF) /* DAC channel1 8-bit Right aligned data */ + +/***************** Bit definition for DAC_R12BDHR2 register ******************/ +#define DAC_DHR12R2 ((uint16_t)0x0FFF) /* DAC channel2 12-bit Right aligned data */ + +/***************** Bit definition for DAC_L12BDHR2 register ******************/ +#define DAC_DHR12L2 ((uint16_t)0xFFF0) /* DAC channel2 12-bit Left aligned data */ + +/****************** Bit definition for DAC_R8BDHR2 register ******************/ +#define DAC_DHR8R2 ((uint8_t)0xFF) /* DAC channel2 8-bit Right aligned data */ + +/***************** Bit definition for DAC_RD12BDHR register ******************/ +#define DAC_RD12BDHR_DACC1DHR ((uint32_t)0x00000FFF) /* DAC channel1 12-bit Right aligned data */ +#define DAC_RD12BDHR_DACC2DHR ((uint32_t)0x0FFF0000) /* DAC channel2 12-bit Right aligned data */ + +/***************** Bit definition for DAC_LD12BDHR register ******************/ +#define DAC_LD12BDHR_DACC1DHR ((uint32_t)0x0000FFF0) /* DAC channel1 12-bit Left aligned data */ +#define DAC_LD12BDHR_DACC2DHR ((uint32_t)0xFFF00000) /* DAC channel2 12-bit Left aligned data */ + +/****************** Bit definition for DAC_RD8BDHR register ******************/ +#define DAC_RD8BDHR_DACC1DHR ((uint16_t)0x00FF) /* DAC channel1 8-bit Right aligned data */ +#define DAC_RD8BDHR_DACC2DHR ((uint16_t)0xFF00) /* DAC channel2 8-bit Right aligned data */ + +/******************* Bit definition for DAC_DOR1 register *******************/ +#define DAC_DACC1DOR ((uint16_t)0x0FFF) /* DAC channel1 data output */ + +/******************* Bit definition for DAC_DOR2 register *******************/ +#define DAC_DACC2DOR ((uint16_t)0x0FFF) /* DAC channel2 data output */ + +/******************************************************************************/ +/* DMA Controller */ +/******************************************************************************/ + +/******************* Bit definition for DMA_INTFR register ********************/ +#define DMA_GIF1 ((uint32_t)0x00000001) /* Channel 1 Global interrupt flag */ +#define DMA_TCIF1 ((uint32_t)0x00000002) /* Channel 1 Transfer Complete flag */ +#define DMA_HTIF1 ((uint32_t)0x00000004) /* Channel 1 Half Transfer flag */ +#define DMA_TEIF1 ((uint32_t)0x00000008) /* Channel 1 Transfer Error flag */ +#define DMA_GIF2 ((uint32_t)0x00000010) /* Channel 2 Global interrupt flag */ +#define DMA_TCIF2 ((uint32_t)0x00000020) /* Channel 2 Transfer Complete flag */ +#define DMA_HTIF2 ((uint32_t)0x00000040) /* Channel 2 Half Transfer flag */ +#define DMA_TEIF2 ((uint32_t)0x00000080) /* Channel 2 Transfer Error flag */ +#define DMA_GIF3 ((uint32_t)0x00000100) /* Channel 3 Global interrupt flag */ +#define DMA_TCIF3 ((uint32_t)0x00000200) /* Channel 3 Transfer Complete flag */ +#define DMA_HTIF3 ((uint32_t)0x00000400) /* Channel 3 Half Transfer flag */ +#define DMA_TEIF3 ((uint32_t)0x00000800) /* Channel 3 Transfer Error flag */ +#define DMA_GIF4 ((uint32_t)0x00001000) /* Channel 4 Global interrupt flag */ +#define DMA_TCIF4 ((uint32_t)0x00002000) /* Channel 4 Transfer Complete flag */ +#define DMA_HTIF4 ((uint32_t)0x00004000) /* Channel 4 Half Transfer flag */ +#define DMA_TEIF4 ((uint32_t)0x00008000) /* Channel 4 Transfer Error flag */ +#define DMA_GIF5 ((uint32_t)0x00010000) /* Channel 5 Global interrupt flag */ +#define DMA_TCIF5 ((uint32_t)0x00020000) /* Channel 5 Transfer Complete flag */ +#define DMA_HTIF5 ((uint32_t)0x00040000) /* Channel 5 Half Transfer flag */ +#define DMA_TEIF5 ((uint32_t)0x00080000) /* Channel 5 Transfer Error flag */ +#define DMA_GIF6 ((uint32_t)0x00100000) /* Channel 6 Global interrupt flag */ +#define DMA_TCIF6 ((uint32_t)0x00200000) /* Channel 6 Transfer Complete flag */ +#define DMA_HTIF6 ((uint32_t)0x00400000) /* Channel 6 Half Transfer flag */ +#define DMA_TEIF6 ((uint32_t)0x00800000) /* Channel 6 Transfer Error flag */ +#define DMA_GIF7 ((uint32_t)0x01000000) /* Channel 7 Global interrupt flag */ +#define DMA_TCIF7 ((uint32_t)0x02000000) /* Channel 7 Transfer Complete flag */ +#define DMA_HTIF7 ((uint32_t)0x04000000) /* Channel 7 Half Transfer flag */ +#define DMA_TEIF7 ((uint32_t)0x08000000) /* Channel 7 Transfer Error flag */ + +/******************* Bit definition for DMA_INTFCR register *******************/ +#define DMA_CGIF1 ((uint32_t)0x00000001) /* Channel 1 Global interrupt clear */ +#define DMA_CTCIF1 ((uint32_t)0x00000002) /* Channel 1 Transfer Complete clear */ +#define DMA_CHTIF1 ((uint32_t)0x00000004) /* Channel 1 Half Transfer clear */ +#define DMA_CTEIF1 ((uint32_t)0x00000008) /* Channel 1 Transfer Error clear */ +#define DMA_CGIF2 ((uint32_t)0x00000010) /* Channel 2 Global interrupt clear */ +#define DMA_CTCIF2 ((uint32_t)0x00000020) /* Channel 2 Transfer Complete clear */ +#define DMA_CHTIF2 ((uint32_t)0x00000040) /* Channel 2 Half Transfer clear */ +#define DMA_CTEIF2 ((uint32_t)0x00000080) /* Channel 2 Transfer Error clear */ +#define DMA_CGIF3 ((uint32_t)0x00000100) /* Channel 3 Global interrupt clear */ +#define DMA_CTCIF3 ((uint32_t)0x00000200) /* Channel 3 Transfer Complete clear */ +#define DMA_CHTIF3 ((uint32_t)0x00000400) /* Channel 3 Half Transfer clear */ +#define DMA_CTEIF3 ((uint32_t)0x00000800) /* Channel 3 Transfer Error clear */ +#define DMA_CGIF4 ((uint32_t)0x00001000) /* Channel 4 Global interrupt clear */ +#define DMA_CTCIF4 ((uint32_t)0x00002000) /* Channel 4 Transfer Complete clear */ +#define DMA_CHTIF4 ((uint32_t)0x00004000) /* Channel 4 Half Transfer clear */ +#define DMA_CTEIF4 ((uint32_t)0x00008000) /* Channel 4 Transfer Error clear */ +#define DMA_CGIF5 ((uint32_t)0x00010000) /* Channel 5 Global interrupt clear */ +#define DMA_CTCIF5 ((uint32_t)0x00020000) /* Channel 5 Transfer Complete clear */ +#define DMA_CHTIF5 ((uint32_t)0x00040000) /* Channel 5 Half Transfer clear */ +#define DMA_CTEIF5 ((uint32_t)0x00080000) /* Channel 5 Transfer Error clear */ +#define DMA_CGIF6 ((uint32_t)0x00100000) /* Channel 6 Global interrupt clear */ +#define DMA_CTCIF6 ((uint32_t)0x00200000) /* Channel 6 Transfer Complete clear */ +#define DMA_CHTIF6 ((uint32_t)0x00400000) /* Channel 6 Half Transfer clear */ +#define DMA_CTEIF6 ((uint32_t)0x00800000) /* Channel 6 Transfer Error clear */ +#define DMA_CGIF7 ((uint32_t)0x01000000) /* Channel 7 Global interrupt clear */ +#define DMA_CTCIF7 ((uint32_t)0x02000000) /* Channel 7 Transfer Complete clear */ +#define DMA_CHTIF7 ((uint32_t)0x04000000) /* Channel 7 Half Transfer clear */ +#define DMA_CTEIF7 ((uint32_t)0x08000000) /* Channel 7 Transfer Error clear */ + +/******************* Bit definition for DMA_CFGR1 register *******************/ +#define DMA_CFGR1_EN ((uint16_t)0x0001) /* Channel enable*/ +#define DMA_CFGR1_TCIE ((uint16_t)0x0002) /* Transfer complete interrupt enable */ +#define DMA_CFGR1_HTIE ((uint16_t)0x0004) /* Half Transfer interrupt enable */ +#define DMA_CFGR1_TEIE ((uint16_t)0x0008) /* Transfer error interrupt enable */ +#define DMA_CFGR1_DIR ((uint16_t)0x0010) /* Data transfer direction */ +#define DMA_CFGR1_CIRC ((uint16_t)0x0020) /* Circular mode */ +#define DMA_CFGR1_PINC ((uint16_t)0x0040) /* Peripheral increment mode */ +#define DMA_CFGR1_MINC ((uint16_t)0x0080) /* Memory increment mode */ + +#define DMA_CFGR1_PSIZE ((uint16_t)0x0300) /* PSIZE[1:0] bits (Peripheral size) */ +#define DMA_CFGR1_PSIZE_0 ((uint16_t)0x0100) /* Bit 0 */ +#define DMA_CFGR1_PSIZE_1 ((uint16_t)0x0200) /* Bit 1 */ + +#define DMA_CFGR1_MSIZE ((uint16_t)0x0C00) /* MSIZE[1:0] bits (Memory size) */ +#define DMA_CFGR1_MSIZE_0 ((uint16_t)0x0400) /* Bit 0 */ +#define DMA_CFGR1_MSIZE_1 ((uint16_t)0x0800) /* Bit 1 */ + +#define DMA_CFGR1_PL ((uint16_t)0x3000) /* PL[1:0] bits(Channel Priority level) */ +#define DMA_CFGR1_PL_0 ((uint16_t)0x1000) /* Bit 0 */ +#define DMA_CFGR1_PL_1 ((uint16_t)0x2000) /* Bit 1 */ + +#define DMA_CFGR1_MEM2MEM ((uint16_t)0x4000) /* Memory to memory mode */ + +/******************* Bit definition for DMA_CFGR2 register *******************/ +#define DMA_CFGR2_EN ((uint16_t)0x0001) /* Channel enable */ +#define DMA_CFGR2_TCIE ((uint16_t)0x0002) /* Transfer complete interrupt enable */ +#define DMA_CFGR2_HTIE ((uint16_t)0x0004) /* Half Transfer interrupt enable */ +#define DMA_CFGR2_TEIE ((uint16_t)0x0008) /* Transfer error interrupt enable */ +#define DMA_CFGR2_DIR ((uint16_t)0x0010) /* Data transfer direction */ +#define DMA_CFGR2_CIRC ((uint16_t)0x0020) /* Circular mode */ +#define DMA_CFGR2_PINC ((uint16_t)0x0040) /* Peripheral increment mode */ +#define DMA_CFGR2_MINC ((uint16_t)0x0080) /* Memory increment mode */ + +#define DMA_CFGR2_PSIZE ((uint16_t)0x0300) /* PSIZE[1:0] bits (Peripheral size) */ +#define DMA_CFGR2_PSIZE_0 ((uint16_t)0x0100) /* Bit 0 */ +#define DMA_CFGR2_PSIZE_1 ((uint16_t)0x0200) /* Bit 1 */ + +#define DMA_CFGR2_MSIZE ((uint16_t)0x0C00) /* MSIZE[1:0] bits (Memory size) */ +#define DMA_CFGR2_MSIZE_0 ((uint16_t)0x0400) /* Bit 0 */ +#define DMA_CFGR2_MSIZE_1 ((uint16_t)0x0800) /* Bit 1 */ + +#define DMA_CFGR2_PL ((uint16_t)0x3000) /* PL[1:0] bits (Channel Priority level) */ +#define DMA_CFGR2_PL_0 ((uint16_t)0x1000) /* Bit 0 */ +#define DMA_CFGR2_PL_1 ((uint16_t)0x2000) /* Bit 1 */ + +#define DMA_CFGR2_MEM2MEM ((uint16_t)0x4000) /* Memory to memory mode */ + +/******************* Bit definition for DMA_CFGR3 register *******************/ +#define DMA_CFGR3_EN ((uint16_t)0x0001) /* Channel enable */ +#define DMA_CFGR3_TCIE ((uint16_t)0x0002) /* Transfer complete interrupt enable */ +#define DMA_CFGR3_HTIE ((uint16_t)0x0004) /* Half Transfer interrupt enable */ +#define DMA_CFGR3_TEIE ((uint16_t)0x0008) /* Transfer error interrupt enable */ +#define DMA_CFGR3_DIR ((uint16_t)0x0010) /* Data transfer direction */ +#define DMA_CFGR3_CIRC ((uint16_t)0x0020) /* Circular mode */ +#define DMA_CFGR3_PINC ((uint16_t)0x0040) /* Peripheral increment mode */ +#define DMA_CFGR3_MINC ((uint16_t)0x0080) /* Memory increment mode */ + +#define DMA_CFGR3_PSIZE ((uint16_t)0x0300) /* PSIZE[1:0] bits (Peripheral size) */ +#define DMA_CFGR3_PSIZE_0 ((uint16_t)0x0100) /* Bit 0 */ +#define DMA_CFGR3_PSIZE_1 ((uint16_t)0x0200) /* Bit 1 */ + +#define DMA_CFGR3_MSIZE ((uint16_t)0x0C00) /* MSIZE[1:0] bits (Memory size) */ +#define DMA_CFGR3_MSIZE_0 ((uint16_t)0x0400) /* Bit 0 */ +#define DMA_CFGR3_MSIZE_1 ((uint16_t)0x0800) /* Bit 1 */ + +#define DMA_CFGR3_PL ((uint16_t)0x3000) /* PL[1:0] bits (Channel Priority level) */ +#define DMA_CFGR3_PL_0 ((uint16_t)0x1000) /* Bit 0 */ +#define DMA_CFGR3_PL_1 ((uint16_t)0x2000) /* Bit 1 */ + +#define DMA_CFGR3_MEM2MEM ((uint16_t)0x4000) /* Memory to memory mode */ + +/******************* Bit definition for DMA_CFG4 register *******************/ +#define DMA_CFG4_EN ((uint16_t)0x0001) /* Channel enable */ +#define DMA_CFG4_TCIE ((uint16_t)0x0002) /* Transfer complete interrupt enable */ +#define DMA_CFG4_HTIE ((uint16_t)0x0004) /* Half Transfer interrupt enable */ +#define DMA_CFG4_TEIE ((uint16_t)0x0008) /* Transfer error interrupt enable */ +#define DMA_CFG4_DIR ((uint16_t)0x0010) /* Data transfer direction */ +#define DMA_CFG4_CIRC ((uint16_t)0x0020) /* Circular mode */ +#define DMA_CFG4_PINC ((uint16_t)0x0040) /* Peripheral increment mode */ +#define DMA_CFG4_MINC ((uint16_t)0x0080) /* Memory increment mode */ + +#define DMA_CFG4_PSIZE ((uint16_t)0x0300) /* PSIZE[1:0] bits (Peripheral size) */ +#define DMA_CFG4_PSIZE_0 ((uint16_t)0x0100) /* Bit 0 */ +#define DMA_CFG4_PSIZE_1 ((uint16_t)0x0200) /* Bit 1 */ + +#define DMA_CFG4_MSIZE ((uint16_t)0x0C00) /* MSIZE[1:0] bits (Memory size) */ +#define DMA_CFG4_MSIZE_0 ((uint16_t)0x0400) /* Bit 0 */ +#define DMA_CFG4_MSIZE_1 ((uint16_t)0x0800) /* Bit 1 */ + +#define DMA_CFG4_PL ((uint16_t)0x3000) /* PL[1:0] bits (Channel Priority level) */ +#define DMA_CFG4_PL_0 ((uint16_t)0x1000) /* Bit 0 */ +#define DMA_CFG4_PL_1 ((uint16_t)0x2000) /* Bit 1 */ + +#define DMA_CFG4_MEM2MEM ((uint16_t)0x4000) /* Memory to memory mode */ + +/****************** Bit definition for DMA_CFG5 register *******************/ +#define DMA_CFG5_EN ((uint16_t)0x0001) /* Channel enable */ +#define DMA_CFG5_TCIE ((uint16_t)0x0002) /* Transfer complete interrupt enable */ +#define DMA_CFG5_HTIE ((uint16_t)0x0004) /* Half Transfer interrupt enable */ +#define DMA_CFG5_TEIE ((uint16_t)0x0008) /* Transfer error interrupt enable */ +#define DMA_CFG5_DIR ((uint16_t)0x0010) /* Data transfer direction */ +#define DMA_CFG5_CIRC ((uint16_t)0x0020) /* Circular mode */ +#define DMA_CFG5_PINC ((uint16_t)0x0040) /* Peripheral increment mode */ +#define DMA_CFG5_MINC ((uint16_t)0x0080) /* Memory increment mode */ + +#define DMA_CFG5_PSIZE ((uint16_t)0x0300) /* PSIZE[1:0] bits (Peripheral size) */ +#define DMA_CFG5_PSIZE_0 ((uint16_t)0x0100) /* Bit 0 */ +#define DMA_CFG5_PSIZE_1 ((uint16_t)0x0200) /* Bit 1 */ + +#define DMA_CFG5_MSIZE ((uint16_t)0x0C00) /* MSIZE[1:0] bits (Memory size) */ +#define DMA_CFG5_MSIZE_0 ((uint16_t)0x0400) /* Bit 0 */ +#define DMA_CFG5_MSIZE_1 ((uint16_t)0x0800) /* Bit 1 */ + +#define DMA_CFG5_PL ((uint16_t)0x3000) /* PL[1:0] bits (Channel Priority level) */ +#define DMA_CFG5_PL_0 ((uint16_t)0x1000) /* Bit 0 */ +#define DMA_CFG5_PL_1 ((uint16_t)0x2000) /* Bit 1 */ + +#define DMA_CFG5_MEM2MEM ((uint16_t)0x4000) /* Memory to memory mode enable */ + +/******************* Bit definition for DMA_CFG6 register *******************/ +#define DMA_CFG6_EN ((uint16_t)0x0001) /* Channel enable */ +#define DMA_CFG6_TCIE ((uint16_t)0x0002) /* Transfer complete interrupt enable */ +#define DMA_CFG6_HTIE ((uint16_t)0x0004) /* Half Transfer interrupt enable */ +#define DMA_CFG6_TEIE ((uint16_t)0x0008) /* Transfer error interrupt enable */ +#define DMA_CFG6_DIR ((uint16_t)0x0010) /* Data transfer direction */ +#define DMA_CFG6_CIRC ((uint16_t)0x0020) /* Circular mode */ +#define DMA_CFG6_PINC ((uint16_t)0x0040) /* Peripheral increment mode */ +#define DMA_CFG6_MINC ((uint16_t)0x0080) /* Memory increment mode */ + +#define DMA_CFG6_PSIZE ((uint16_t)0x0300) /* PSIZE[1:0] bits (Peripheral size) */ +#define DMA_CFG6_PSIZE_0 ((uint16_t)0x0100) /* Bit 0 */ +#define DMA_CFG6_PSIZE_1 ((uint16_t)0x0200) /* Bit 1 */ + +#define DMA_CFG6_MSIZE ((uint16_t)0x0C00) /* MSIZE[1:0] bits (Memory size) */ +#define DMA_CFG6_MSIZE_0 ((uint16_t)0x0400) /* Bit 0 */ +#define DMA_CFG6_MSIZE_1 ((uint16_t)0x0800) /* Bit 1 */ + +#define DMA_CFG6_PL ((uint16_t)0x3000) /* PL[1:0] bits (Channel Priority level) */ +#define DMA_CFG6_PL_0 ((uint16_t)0x1000) /* Bit 0 */ +#define DMA_CFG6_PL_1 ((uint16_t)0x2000) /* Bit 1 */ + +#define DMA_CFG6_MEM2MEM ((uint16_t)0x4000) /* Memory to memory mode */ + +/******************* Bit definition for DMA_CFG7 register *******************/ +#define DMA_CFG7_EN ((uint16_t)0x0001) /* Channel enable */ +#define DMA_CFG7_TCIE ((uint16_t)0x0002) /* Transfer complete interrupt enable */ +#define DMA_CFG7_HTIE ((uint16_t)0x0004) /* Half Transfer interrupt enable */ +#define DMA_CFG7_TEIE ((uint16_t)0x0008) /* Transfer error interrupt enable */ +#define DMA_CFG7_DIR ((uint16_t)0x0010) /* Data transfer direction */ +#define DMA_CFG7_CIRC ((uint16_t)0x0020) /* Circular mode */ +#define DMA_CFG7_PINC ((uint16_t)0x0040) /* Peripheral increment mode */ +#define DMA_CFG7_MINC ((uint16_t)0x0080) /* Memory increment mode */ + +#define DMA_CFG7_PSIZE ((uint16_t)0x0300) /* PSIZE[1:0] bits (Peripheral size) */ +#define DMA_CFG7_PSIZE_0 ((uint16_t)0x0100) /* Bit 0 */ +#define DMA_CFG7_PSIZE_1 ((uint16_t)0x0200) /* Bit 1 */ + +#define DMA_CFG7_MSIZE ((uint16_t)0x0C00) /* MSIZE[1:0] bits (Memory size) */ +#define DMA_CFG7_MSIZE_0 ((uint16_t)0x0400) /* Bit 0 */ +#define DMA_CFG7_MSIZE_1 ((uint16_t)0x0800) /* Bit 1 */ + +#define DMA_CFG7_PL ((uint16_t)0x3000) /* PL[1:0] bits (Channel Priority level) */ +#define DMA_CFG7_PL_0 ((uint16_t)0x1000) /* Bit 0 */ +#define DMA_CFG7_PL_1 ((uint16_t)0x2000) /* Bit 1 */ + +#define DMA_CFG7_MEM2MEM ((uint16_t)0x4000) /* Memory to memory mode enable */ + +/****************** Bit definition for DMA_CNTR1 register ******************/ +#define DMA_CNTR1_NDT ((uint16_t)0xFFFF) /* Number of data to Transfer */ + +/****************** Bit definition for DMA_CNTR2 register ******************/ +#define DMA_CNTR2_NDT ((uint16_t)0xFFFF) /* Number of data to Transfer */ + +/****************** Bit definition for DMA_CNTR3 register ******************/ +#define DMA_CNTR3_NDT ((uint16_t)0xFFFF) /* Number of data to Transfer */ + +/****************** Bit definition for DMA_CNTR4 register ******************/ +#define DMA_CNTR4_NDT ((uint16_t)0xFFFF) /* Number of data to Transfer */ + +/****************** Bit definition for DMA_CNTR5 register ******************/ +#define DMA_CNTR5_NDT ((uint16_t)0xFFFF) /* Number of data to Transfer */ + +/****************** Bit definition for DMA_CNTR6 register ******************/ +#define DMA_CNTR6_NDT ((uint16_t)0xFFFF) /* Number of data to Transfer */ + +/****************** Bit definition for DMA_CNTR7 register ******************/ +#define DMA_CNTR7_NDT ((uint16_t)0xFFFF) /* Number of data to Transfer */ + +/****************** Bit definition for DMA_PADDR1 register *******************/ +#define DMA_PADDR1_PA ((uint32_t)0xFFFFFFFF) /* Peripheral Address */ + +/****************** Bit definition for DMA_PADDR2 register *******************/ +#define DMA_PADDR2_PA ((uint32_t)0xFFFFFFFF) /* Peripheral Address */ + +/****************** Bit definition for DMA_PADDR3 register *******************/ +#define DMA_PADDR3_PA ((uint32_t)0xFFFFFFFF) /* Peripheral Address */ + +/****************** Bit definition for DMA_PADDR4 register *******************/ +#define DMA_PADDR4_PA ((uint32_t)0xFFFFFFFF) /* Peripheral Address */ + +/****************** Bit definition for DMA_PADDR5 register *******************/ +#define DMA_PADDR5_PA ((uint32_t)0xFFFFFFFF) /* Peripheral Address */ + +/****************** Bit definition for DMA_PADDR6 register *******************/ +#define DMA_PADDR6_PA ((uint32_t)0xFFFFFFFF) /* Peripheral Address */ + +/****************** Bit definition for DMA_PADDR7 register *******************/ +#define DMA_PADDR7_PA ((uint32_t)0xFFFFFFFF) /* Peripheral Address */ + +/****************** Bit definition for DMA_MADDR1 register *******************/ +#define DMA_MADDR1_MA ((uint32_t)0xFFFFFFFF) /* Memory Address */ + +/****************** Bit definition for DMA_MADDR2 register *******************/ +#define DMA_MADDR2_MA ((uint32_t)0xFFFFFFFF) /* Memory Address */ + +/****************** Bit definition for DMA_MADDR3 register *******************/ +#define DMA_MADDR3_MA ((uint32_t)0xFFFFFFFF) /* Memory Address */ + +/****************** Bit definition for DMA_MADDR4 register *******************/ +#define DMA_MADDR4_MA ((uint32_t)0xFFFFFFFF) /* Memory Address */ + +/****************** Bit definition for DMA_MADDR5 register *******************/ +#define DMA_MADDR5_MA ((uint32_t)0xFFFFFFFF) /* Memory Address */ + +/****************** Bit definition for DMA_MADDR6 register *******************/ +#define DMA_MADDR6_MA ((uint32_t)0xFFFFFFFF) /* Memory Address */ + +/****************** Bit definition for DMA_MADDR7 register *******************/ +#define DMA_MADDR7_MA ((uint32_t)0xFFFFFFFF) /* Memory Address */ + +/******************************************************************************/ +/* External Interrupt/Event Controller */ +/******************************************************************************/ + +/******************* Bit definition for EXTI_INTENR register *******************/ +#define EXTI_INTENR_MR0 ((uint32_t)0x00000001) /* Interrupt Mask on line 0 */ +#define EXTI_INTENR_MR1 ((uint32_t)0x00000002) /* Interrupt Mask on line 1 */ +#define EXTI_INTENR_MR2 ((uint32_t)0x00000004) /* Interrupt Mask on line 2 */ +#define EXTI_INTENR_MR3 ((uint32_t)0x00000008) /* Interrupt Mask on line 3 */ +#define EXTI_INTENR_MR4 ((uint32_t)0x00000010) /* Interrupt Mask on line 4 */ +#define EXTI_INTENR_MR5 ((uint32_t)0x00000020) /* Interrupt Mask on line 5 */ +#define EXTI_INTENR_MR6 ((uint32_t)0x00000040) /* Interrupt Mask on line 6 */ +#define EXTI_INTENR_MR7 ((uint32_t)0x00000080) /* Interrupt Mask on line 7 */ +#define EXTI_INTENR_MR8 ((uint32_t)0x00000100) /* Interrupt Mask on line 8 */ +#define EXTI_INTENR_MR9 ((uint32_t)0x00000200) /* Interrupt Mask on line 9 */ +#define EXTI_INTENR_MR10 ((uint32_t)0x00000400) /* Interrupt Mask on line 10 */ +#define EXTI_INTENR_MR11 ((uint32_t)0x00000800) /* Interrupt Mask on line 11 */ +#define EXTI_INTENR_MR12 ((uint32_t)0x00001000) /* Interrupt Mask on line 12 */ +#define EXTI_INTENR_MR13 ((uint32_t)0x00002000) /* Interrupt Mask on line 13 */ +#define EXTI_INTENR_MR14 ((uint32_t)0x00004000) /* Interrupt Mask on line 14 */ +#define EXTI_INTENR_MR15 ((uint32_t)0x00008000) /* Interrupt Mask on line 15 */ +#define EXTI_INTENR_MR16 ((uint32_t)0x00010000) /* Interrupt Mask on line 16 */ +#define EXTI_INTENR_MR17 ((uint32_t)0x00020000) /* Interrupt Mask on line 17 */ +#define EXTI_INTENR_MR18 ((uint32_t)0x00040000) /* Interrupt Mask on line 18 */ +#define EXTI_INTENR_MR19 ((uint32_t)0x00080000) /* Interrupt Mask on line 19 */ + +/******************* Bit definition for EXTI_EVENR register *******************/ +#define EXTI_EVENR_MR0 ((uint32_t)0x00000001) /* Event Mask on line 0 */ +#define EXTI_EVENR_MR1 ((uint32_t)0x00000002) /* Event Mask on line 1 */ +#define EXTI_EVENR_MR2 ((uint32_t)0x00000004) /* Event Mask on line 2 */ +#define EXTI_EVENR_MR3 ((uint32_t)0x00000008) /* Event Mask on line 3 */ +#define EXTI_EVENR_MR4 ((uint32_t)0x00000010) /* Event Mask on line 4 */ +#define EXTI_EVENR_MR5 ((uint32_t)0x00000020) /* Event Mask on line 5 */ +#define EXTI_EVENR_MR6 ((uint32_t)0x00000040) /* Event Mask on line 6 */ +#define EXTI_EVENR_MR7 ((uint32_t)0x00000080) /* Event Mask on line 7 */ +#define EXTI_EVENR_MR8 ((uint32_t)0x00000100) /* Event Mask on line 8 */ +#define EXTI_EVENR_MR9 ((uint32_t)0x00000200) /* Event Mask on line 9 */ +#define EXTI_EVENR_MR10 ((uint32_t)0x00000400) /* Event Mask on line 10 */ +#define EXTI_EVENR_MR11 ((uint32_t)0x00000800) /* Event Mask on line 11 */ +#define EXTI_EVENR_MR12 ((uint32_t)0x00001000) /* Event Mask on line 12 */ +#define EXTI_EVENR_MR13 ((uint32_t)0x00002000) /* Event Mask on line 13 */ +#define EXTI_EVENR_MR14 ((uint32_t)0x00004000) /* Event Mask on line 14 */ +#define EXTI_EVENR_MR15 ((uint32_t)0x00008000) /* Event Mask on line 15 */ +#define EXTI_EVENR_MR16 ((uint32_t)0x00010000) /* Event Mask on line 16 */ +#define EXTI_EVENR_MR17 ((uint32_t)0x00020000) /* Event Mask on line 17 */ +#define EXTI_EVENR_MR18 ((uint32_t)0x00040000) /* Event Mask on line 18 */ +#define EXTI_EVENR_MR19 ((uint32_t)0x00080000) /* Event Mask on line 19 */ + +/****************** Bit definition for EXTI_RTENR register *******************/ +#define EXTI_RTENR_TR0 ((uint32_t)0x00000001) /* Rising trigger event configuration bit of line 0 */ +#define EXTI_RTENR_TR1 ((uint32_t)0x00000002) /* Rising trigger event configuration bit of line 1 */ +#define EXTI_RTENR_TR2 ((uint32_t)0x00000004) /* Rising trigger event configuration bit of line 2 */ +#define EXTI_RTENR_TR3 ((uint32_t)0x00000008) /* Rising trigger event configuration bit of line 3 */ +#define EXTI_RTENR_TR4 ((uint32_t)0x00000010) /* Rising trigger event configuration bit of line 4 */ +#define EXTI_RTENR_TR5 ((uint32_t)0x00000020) /* Rising trigger event configuration bit of line 5 */ +#define EXTI_RTENR_TR6 ((uint32_t)0x00000040) /* Rising trigger event configuration bit of line 6 */ +#define EXTI_RTENR_TR7 ((uint32_t)0x00000080) /* Rising trigger event configuration bit of line 7 */ +#define EXTI_RTENR_TR8 ((uint32_t)0x00000100) /* Rising trigger event configuration bit of line 8 */ +#define EXTI_RTENR_TR9 ((uint32_t)0x00000200) /* Rising trigger event configuration bit of line 9 */ +#define EXTI_RTENR_TR10 ((uint32_t)0x00000400) /* Rising trigger event configuration bit of line 10 */ +#define EXTI_RTENR_TR11 ((uint32_t)0x00000800) /* Rising trigger event configuration bit of line 11 */ +#define EXTI_RTENR_TR12 ((uint32_t)0x00001000) /* Rising trigger event configuration bit of line 12 */ +#define EXTI_RTENR_TR13 ((uint32_t)0x00002000) /* Rising trigger event configuration bit of line 13 */ +#define EXTI_RTENR_TR14 ((uint32_t)0x00004000) /* Rising trigger event configuration bit of line 14 */ +#define EXTI_RTENR_TR15 ((uint32_t)0x00008000) /* Rising trigger event configuration bit of line 15 */ +#define EXTI_RTENR_TR16 ((uint32_t)0x00010000) /* Rising trigger event configuration bit of line 16 */ +#define EXTI_RTENR_TR17 ((uint32_t)0x00020000) /* Rising trigger event configuration bit of line 17 */ +#define EXTI_RTENR_TR18 ((uint32_t)0x00040000) /* Rising trigger event configuration bit of line 18 */ +#define EXTI_RTENR_TR19 ((uint32_t)0x00080000) /* Rising trigger event configuration bit of line 19 */ + +/****************** Bit definition for EXTI_FTENR register *******************/ +#define EXTI_FTENR_TR0 ((uint32_t)0x00000001) /* Falling trigger event configuration bit of line 0 */ +#define EXTI_FTENR_TR1 ((uint32_t)0x00000002) /* Falling trigger event configuration bit of line 1 */ +#define EXTI_FTENR_TR2 ((uint32_t)0x00000004) /* Falling trigger event configuration bit of line 2 */ +#define EXTI_FTENR_TR3 ((uint32_t)0x00000008) /* Falling trigger event configuration bit of line 3 */ +#define EXTI_FTENR_TR4 ((uint32_t)0x00000010) /* Falling trigger event configuration bit of line 4 */ +#define EXTI_FTENR_TR5 ((uint32_t)0x00000020) /* Falling trigger event configuration bit of line 5 */ +#define EXTI_FTENR_TR6 ((uint32_t)0x00000040) /* Falling trigger event configuration bit of line 6 */ +#define EXTI_FTENR_TR7 ((uint32_t)0x00000080) /* Falling trigger event configuration bit of line 7 */ +#define EXTI_FTENR_TR8 ((uint32_t)0x00000100) /* Falling trigger event configuration bit of line 8 */ +#define EXTI_FTENR_TR9 ((uint32_t)0x00000200) /* Falling trigger event configuration bit of line 9 */ +#define EXTI_FTENR_TR10 ((uint32_t)0x00000400) /* Falling trigger event configuration bit of line 10 */ +#define EXTI_FTENR_TR11 ((uint32_t)0x00000800) /* Falling trigger event configuration bit of line 11 */ +#define EXTI_FTENR_TR12 ((uint32_t)0x00001000) /* Falling trigger event configuration bit of line 12 */ +#define EXTI_FTENR_TR13 ((uint32_t)0x00002000) /* Falling trigger event configuration bit of line 13 */ +#define EXTI_FTENR_TR14 ((uint32_t)0x00004000) /* Falling trigger event configuration bit of line 14 */ +#define EXTI_FTENR_TR15 ((uint32_t)0x00008000) /* Falling trigger event configuration bit of line 15 */ +#define EXTI_FTENR_TR16 ((uint32_t)0x00010000) /* Falling trigger event configuration bit of line 16 */ +#define EXTI_FTENR_TR17 ((uint32_t)0x00020000) /* Falling trigger event configuration bit of line 17 */ +#define EXTI_FTENR_TR18 ((uint32_t)0x00040000) /* Falling trigger event configuration bit of line 18 */ +#define EXTI_FTENR_TR19 ((uint32_t)0x00080000) /* Falling trigger event configuration bit of line 19 */ + +/****************** Bit definition for EXTI_SWIEVR register ******************/ +#define EXTI_SWIEVR_SWIEVR0 ((uint32_t)0x00000001) /* Software Interrupt on line 0 */ +#define EXTI_SWIEVR_SWIEVR1 ((uint32_t)0x00000002) /* Software Interrupt on line 1 */ +#define EXTI_SWIEVR_SWIEVR2 ((uint32_t)0x00000004) /* Software Interrupt on line 2 */ +#define EXTI_SWIEVR_SWIEVR3 ((uint32_t)0x00000008) /* Software Interrupt on line 3 */ +#define EXTI_SWIEVR_SWIEVR4 ((uint32_t)0x00000010) /* Software Interrupt on line 4 */ +#define EXTI_SWIEVR_SWIEVR5 ((uint32_t)0x00000020) /* Software Interrupt on line 5 */ +#define EXTI_SWIEVR_SWIEVR6 ((uint32_t)0x00000040) /* Software Interrupt on line 6 */ +#define EXTI_SWIEVR_SWIEVR7 ((uint32_t)0x00000080) /* Software Interrupt on line 7 */ +#define EXTI_SWIEVR_SWIEVR8 ((uint32_t)0x00000100) /* Software Interrupt on line 8 */ +#define EXTI_SWIEVR_SWIEVR9 ((uint32_t)0x00000200) /* Software Interrupt on line 9 */ +#define EXTI_SWIEVR_SWIEVR10 ((uint32_t)0x00000400) /* Software Interrupt on line 10 */ +#define EXTI_SWIEVR_SWIEVR11 ((uint32_t)0x00000800) /* Software Interrupt on line 11 */ +#define EXTI_SWIEVR_SWIEVR12 ((uint32_t)0x00001000) /* Software Interrupt on line 12 */ +#define EXTI_SWIEVR_SWIEVR13 ((uint32_t)0x00002000) /* Software Interrupt on line 13 */ +#define EXTI_SWIEVR_SWIEVR14 ((uint32_t)0x00004000) /* Software Interrupt on line 14 */ +#define EXTI_SWIEVR_SWIEVR15 ((uint32_t)0x00008000) /* Software Interrupt on line 15 */ +#define EXTI_SWIEVR_SWIEVR16 ((uint32_t)0x00010000) /* Software Interrupt on line 16 */ +#define EXTI_SWIEVR_SWIEVR17 ((uint32_t)0x00020000) /* Software Interrupt on line 17 */ +#define EXTI_SWIEVR_SWIEVR18 ((uint32_t)0x00040000) /* Software Interrupt on line 18 */ +#define EXTI_SWIEVR_SWIEVR19 ((uint32_t)0x00080000) /* Software Interrupt on line 19 */ + +/******************* Bit definition for EXTI_INTFR register ********************/ +#define EXTI_INTF_INTF0 ((uint32_t)0x00000001) /* Pending bit for line 0 */ +#define EXTI_INTF_INTF1 ((uint32_t)0x00000002) /* Pending bit for line 1 */ +#define EXTI_INTF_INTF2 ((uint32_t)0x00000004) /* Pending bit for line 2 */ +#define EXTI_INTF_INTF3 ((uint32_t)0x00000008) /* Pending bit for line 3 */ +#define EXTI_INTF_INTF4 ((uint32_t)0x00000010) /* Pending bit for line 4 */ +#define EXTI_INTF_INTF5 ((uint32_t)0x00000020) /* Pending bit for line 5 */ +#define EXTI_INTF_INTF6 ((uint32_t)0x00000040) /* Pending bit for line 6 */ +#define EXTI_INTF_INTF7 ((uint32_t)0x00000080) /* Pending bit for line 7 */ +#define EXTI_INTF_INTF8 ((uint32_t)0x00000100) /* Pending bit for line 8 */ +#define EXTI_INTF_INTF9 ((uint32_t)0x00000200) /* Pending bit for line 9 */ +#define EXTI_INTF_INTF10 ((uint32_t)0x00000400) /* Pending bit for line 10 */ +#define EXTI_INTF_INTF11 ((uint32_t)0x00000800) /* Pending bit for line 11 */ +#define EXTI_INTF_INTF12 ((uint32_t)0x00001000) /* Pending bit for line 12 */ +#define EXTI_INTF_INTF13 ((uint32_t)0x00002000) /* Pending bit for line 13 */ +#define EXTI_INTF_INTF14 ((uint32_t)0x00004000) /* Pending bit for line 14 */ +#define EXTI_INTF_INTF15 ((uint32_t)0x00008000) /* Pending bit for line 15 */ +#define EXTI_INTF_INTF16 ((uint32_t)0x00010000) /* Pending bit for line 16 */ +#define EXTI_INTF_INTF17 ((uint32_t)0x00020000) /* Pending bit for line 17 */ +#define EXTI_INTF_INTF18 ((uint32_t)0x00040000) /* Pending bit for line 18 */ +#define EXTI_INTF_INTF19 ((uint32_t)0x00080000) /* Pending bit for line 19 */ + +/******************************************************************************/ +/* FLASH and Option Bytes Registers */ +/******************************************************************************/ + +/******************* Bit definition for FLASH_ACTLR register ******************/ +#define FLASH_ACTLR_LATENCY ((uint8_t)0x03) /* LATENCY[2:0] bits (Latency) */ +#define FLASH_ACTLR_LATENCY_0 ((uint8_t)0x00) /* Bit 0 */ +#define FLASH_ACTLR_LATENCY_1 ((uint8_t)0x01) /* Bit 0 */ +#define FLASH_ACTLR_LATENCY_2 ((uint8_t)0x02) /* Bit 1 */ + +#define FLASH_ACTLR_HLFCYA ((uint8_t)0x08) /* Flash Half Cycle Access Enable */ +#define FLASH_ACTLR_PRFTBE ((uint8_t)0x10) /* Prefetch Buffer Enable */ +#define FLASH_ACTLR_PRFTBS ((uint8_t)0x20) /* Prefetch Buffer Status */ + +/****************** Bit definition for FLASH_KEYR register ******************/ +#define FLASH_KEYR_FKEYR ((uint32_t)0xFFFFFFFF) /* FPEC Key */ + +/***************** Bit definition for FLASH_OBKEYR register ****************/ +#define FLASH_OBKEYR_OBKEYR ((uint32_t)0xFFFFFFFF) /* Option Byte Key */ + +/****************** Bit definition for FLASH_STATR register *******************/ +#define FLASH_STATR_BSY ((uint8_t)0x01) /* Busy */ +#define FLASH_STATR_PGERR ((uint8_t)0x04) /* Programming Error */ +#define FLASH_STATR_WRPRTERR ((uint8_t)0x10) /* Write Protection Error */ +#define FLASH_STATR_EOP ((uint8_t)0x20) /* End of operation */ + +/******************* Bit definition for FLASH_CTLR register *******************/ +#define FLASH_CTLR_PG ((uint16_t)0x0001) /* Programming */ +#define FLASH_CTLR_PER ((uint16_t)0x0002) /* Page Erase */ +#define FLASH_CTLR_MER ((uint16_t)0x0004) /* Mass Erase */ +#define FLASH_CTLR_OPTPG ((uint16_t)0x0010) /* Option Byte Programming */ +#define FLASH_CTLR_OPTER ((uint16_t)0x0020) /* Option Byte Erase */ +#define FLASH_CTLR_STRT ((uint16_t)0x0040) /* Start */ +#define FLASH_CTLR_LOCK ((uint16_t)0x0080) /* Lock */ +#define FLASH_CTLR_OPTWRE ((uint16_t)0x0200) /* Option Bytes Write Enable */ +#define FLASH_CTLR_ERRIE ((uint16_t)0x0400) /* Error Interrupt Enable */ +#define FLASH_CTLR_EOPIE ((uint16_t)0x1000) /* End of operation interrupt enable */ +#define FLASH_CTLR_PAGE_PG ((uint16_t)0x00010000) /* Page Programming 128Byte */ +#define FLASH_CTLR_PAGE_ER ((uint16_t)0x00020000) /* Page Erase 128Byte */ +#define FLASH_CTLR_BUF_LOAD ((uint16_t)0x00040000) /* Buffer Load */ +#define FLASH_CTLR_BUF_RST ((uint16_t)0x00080000) /* Buffer Reset */ + +/******************* Bit definition for FLASH_ADDR register *******************/ +#define FLASH_ADDR_FAR ((uint32_t)0xFFFFFFFF) /* Flash Address */ + +/****************** Bit definition for FLASH_OBR register *******************/ +#define FLASH_OBR_OPTERR ((uint16_t)0x0001) /* Option Byte Error */ +#define FLASH_OBR_RDPRT ((uint16_t)0x0002) /* Read protection */ + +#define FLASH_OBR_USER ((uint16_t)0x03FC) /* User Option Bytes */ +#define FLASH_OBR_WDG_SW ((uint16_t)0x0004) /* WDG_SW */ +#define FLASH_OBR_nRST_STOP ((uint16_t)0x0008) /* nRST_STOP */ +#define FLASH_OBR_nRST_STDBY ((uint16_t)0x0010) /* nRST_STDBY */ +#define FLASH_OBR_BFB2 ((uint16_t)0x0020) /* BFB2 */ + +/****************** Bit definition for FLASH_WPR register ******************/ +#define FLASH_WPR_WRP ((uint32_t)0xFFFFFFFF) /* Write Protect */ + +/****************** Bit definition for FLASH_RDPR register *******************/ +#define FLASH_RDPR_RDPR ((uint32_t)0x000000FF) /* Read protection option byte */ +#define FLASH_RDPR_nRDPR ((uint32_t)0x0000FF00) /* Read protection complemented option byte */ + +/****************** Bit definition for FLASH_USER register ******************/ +#define FLASH_USER_USER ((uint32_t)0x00FF0000) /* User option byte */ +#define FLASH_USER_nUSER ((uint32_t)0xFF000000) /* User complemented option byte */ + +/****************** Bit definition for FLASH_Data0 register *****************/ +#define FLASH_Data0_Data0 ((uint32_t)0x000000FF) /* User data storage option byte */ +#define FLASH_Data0_nData0 ((uint32_t)0x0000FF00) /* User data storage complemented option byte */ + +/****************** Bit definition for FLASH_Data1 register *****************/ +#define FLASH_Data1_Data1 ((uint32_t)0x00FF0000) /* User data storage option byte */ +#define FLASH_Data1_nData1 ((uint32_t)0xFF000000) /* User data storage complemented option byte */ + +/****************** Bit definition for FLASH_WRPR0 register ******************/ +#define FLASH_WRPR0_WRPR0 ((uint32_t)0x000000FF) /* Flash memory write protection option bytes */ +#define FLASH_WRPR0_nWRPR0 ((uint32_t)0x0000FF00) /* Flash memory write protection complemented option bytes */ + +/****************** Bit definition for FLASH_WRPR1 register ******************/ +#define FLASH_WRPR1_WRPR1 ((uint32_t)0x00FF0000) /* Flash memory write protection option bytes */ +#define FLASH_WRPR1_nWRPR1 ((uint32_t)0xFF000000) /* Flash memory write protection complemented option bytes */ + +/****************** Bit definition for FLASH_WRPR2 register ******************/ +#define FLASH_WRPR2_WRPR2 ((uint32_t)0x000000FF) /* Flash memory write protection option bytes */ +#define FLASH_WRPR2_nWRPR2 ((uint32_t)0x0000FF00) /* Flash memory write protection complemented option bytes */ + +/****************** Bit definition for FLASH_WRPR3 register ******************/ +#define FLASH_WRPR3_WRPR3 ((uint32_t)0x00FF0000) /* Flash memory write protection option bytes */ +#define FLASH_WRPR3_nWRPR3 ((uint32_t)0xFF000000) /* Flash memory write protection complemented option bytes */ + +/******************************************************************************/ +/* General Purpose and Alternate Function I/O */ +/******************************************************************************/ + +/******************* Bit definition for GPIO_CFGLR register *******************/ +#define GPIO_CFGLR_MODE ((uint32_t)0x33333333) /* Port x mode bits */ + +#define GPIO_CFGLR_MODE0 ((uint32_t)0x00000003) /* MODE0[1:0] bits (Port x mode bits, pin 0) */ +#define GPIO_CFGLR_MODE0_0 ((uint32_t)0x00000001) /* Bit 0 */ +#define GPIO_CFGLR_MODE0_1 ((uint32_t)0x00000002) /* Bit 1 */ + +#define GPIO_CFGLR_MODE1 ((uint32_t)0x00000030) /* MODE1[1:0] bits (Port x mode bits, pin 1) */ +#define GPIO_CFGLR_MODE1_0 ((uint32_t)0x00000010) /* Bit 0 */ +#define GPIO_CFGLR_MODE1_1 ((uint32_t)0x00000020) /* Bit 1 */ + +#define GPIO_CFGLR_MODE2 ((uint32_t)0x00000300) /* MODE2[1:0] bits (Port x mode bits, pin 2) */ +#define GPIO_CFGLR_MODE2_0 ((uint32_t)0x00000100) /* Bit 0 */ +#define GPIO_CFGLR_MODE2_1 ((uint32_t)0x00000200) /* Bit 1 */ + +#define GPIO_CFGLR_MODE3 ((uint32_t)0x00003000) /* MODE3[1:0] bits (Port x mode bits, pin 3) */ +#define GPIO_CFGLR_MODE3_0 ((uint32_t)0x00001000) /* Bit 0 */ +#define GPIO_CFGLR_MODE3_1 ((uint32_t)0x00002000) /* Bit 1 */ + +#define GPIO_CFGLR_MODE4 ((uint32_t)0x00030000) /* MODE4[1:0] bits (Port x mode bits, pin 4) */ +#define GPIO_CFGLR_MODE4_0 ((uint32_t)0x00010000) /* Bit 0 */ +#define GPIO_CFGLR_MODE4_1 ((uint32_t)0x00020000) /* Bit 1 */ + +#define GPIO_CFGLR_MODE5 ((uint32_t)0x00300000) /* MODE5[1:0] bits (Port x mode bits, pin 5) */ +#define GPIO_CFGLR_MODE5_0 ((uint32_t)0x00100000) /* Bit 0 */ +#define GPIO_CFGLR_MODE5_1 ((uint32_t)0x00200000) /* Bit 1 */ + +#define GPIO_CFGLR_MODE6 ((uint32_t)0x03000000) /* MODE6[1:0] bits (Port x mode bits, pin 6) */ +#define GPIO_CFGLR_MODE6_0 ((uint32_t)0x01000000) /* Bit 0 */ +#define GPIO_CFGLR_MODE6_1 ((uint32_t)0x02000000) /* Bit 1 */ + +#define GPIO_CFGLR_MODE7 ((uint32_t)0x30000000) /* MODE7[1:0] bits (Port x mode bits, pin 7) */ +#define GPIO_CFGLR_MODE7_0 ((uint32_t)0x10000000) /* Bit 0 */ +#define GPIO_CFGLR_MODE7_1 ((uint32_t)0x20000000) /* Bit 1 */ + +#define GPIO_CFGLR_CNF ((uint32_t)0xCCCCCCCC) /* Port x configuration bits */ + +#define GPIO_CFGLR_CNF0 ((uint32_t)0x0000000C) /* CNF0[1:0] bits (Port x configuration bits, pin 0) */ +#define GPIO_CFGLR_CNF0_0 ((uint32_t)0x00000004) /* Bit 0 */ +#define GPIO_CFGLR_CNF0_1 ((uint32_t)0x00000008) /* Bit 1 */ + +#define GPIO_CFGLR_CNF1 ((uint32_t)0x000000C0) /* CNF1[1:0] bits (Port x configuration bits, pin 1) */ +#define GPIO_CFGLR_CNF1_0 ((uint32_t)0x00000040) /* Bit 0 */ +#define GPIO_CFGLR_CNF1_1 ((uint32_t)0x00000080) /* Bit 1 */ + +#define GPIO_CFGLR_CNF2 ((uint32_t)0x00000C00) /* CNF2[1:0] bits (Port x configuration bits, pin 2) */ +#define GPIO_CFGLR_CNF2_0 ((uint32_t)0x00000400) /* Bit 0 */ +#define GPIO_CFGLR_CNF2_1 ((uint32_t)0x00000800) /* Bit 1 */ + +#define GPIO_CFGLR_CNF3 ((uint32_t)0x0000C000) /* CNF3[1:0] bits (Port x configuration bits, pin 3) */ +#define GPIO_CFGLR_CNF3_0 ((uint32_t)0x00004000) /* Bit 0 */ +#define GPIO_CFGLR_CNF3_1 ((uint32_t)0x00008000) /* Bit 1 */ + +#define GPIO_CFGLR_CNF4 ((uint32_t)0x000C0000) /* CNF4[1:0] bits (Port x configuration bits, pin 4) */ +#define GPIO_CFGLR_CNF4_0 ((uint32_t)0x00040000) /* Bit 0 */ +#define GPIO_CFGLR_CNF4_1 ((uint32_t)0x00080000) /* Bit 1 */ + +#define GPIO_CFGLR_CNF5 ((uint32_t)0x00C00000) /* CNF5[1:0] bits (Port x configuration bits, pin 5) */ +#define GPIO_CFGLR_CNF5_0 ((uint32_t)0x00400000) /* Bit 0 */ +#define GPIO_CFGLR_CNF5_1 ((uint32_t)0x00800000) /* Bit 1 */ + +#define GPIO_CFGLR_CNF6 ((uint32_t)0x0C000000) /* CNF6[1:0] bits (Port x configuration bits, pin 6) */ +#define GPIO_CFGLR_CNF6_0 ((uint32_t)0x04000000) /* Bit 0 */ +#define GPIO_CFGLR_CNF6_1 ((uint32_t)0x08000000) /* Bit 1 */ + +#define GPIO_CFGLR_CNF7 ((uint32_t)0xC0000000) /* CNF7[1:0] bits (Port x configuration bits, pin 7) */ +#define GPIO_CFGLR_CNF7_0 ((uint32_t)0x40000000) /* Bit 0 */ +#define GPIO_CFGLR_CNF7_1 ((uint32_t)0x80000000) /* Bit 1 */ + +/******************* Bit definition for GPIO_CFGHR register *******************/ +#define GPIO_CFGHR_MODE ((uint32_t)0x33333333) /* Port x mode bits */ + +#define GPIO_CFGHR_MODE8 ((uint32_t)0x00000003) /* MODE8[1:0] bits (Port x mode bits, pin 8) */ +#define GPIO_CFGHR_MODE8_0 ((uint32_t)0x00000001) /* Bit 0 */ +#define GPIO_CFGHR_MODE8_1 ((uint32_t)0x00000002) /* Bit 1 */ + +#define GPIO_CFGHR_MODE9 ((uint32_t)0x00000030) /* MODE9[1:0] bits (Port x mode bits, pin 9) */ +#define GPIO_CFGHR_MODE9_0 ((uint32_t)0x00000010) /* Bit 0 */ +#define GPIO_CFGHR_MODE9_1 ((uint32_t)0x00000020) /* Bit 1 */ + +#define GPIO_CFGHR_MODE10 ((uint32_t)0x00000300) /* MODE10[1:0] bits (Port x mode bits, pin 10) */ +#define GPIO_CFGHR_MODE10_0 ((uint32_t)0x00000100) /* Bit 0 */ +#define GPIO_CFGHR_MODE10_1 ((uint32_t)0x00000200) /* Bit 1 */ + +#define GPIO_CFGHR_MODE11 ((uint32_t)0x00003000) /* MODE11[1:0] bits (Port x mode bits, pin 11) */ +#define GPIO_CFGHR_MODE11_0 ((uint32_t)0x00001000) /* Bit 0 */ +#define GPIO_CFGHR_MODE11_1 ((uint32_t)0x00002000) /* Bit 1 */ + +#define GPIO_CFGHR_MODE12 ((uint32_t)0x00030000) /* MODE12[1:0] bits (Port x mode bits, pin 12) */ +#define GPIO_CFGHR_MODE12_0 ((uint32_t)0x00010000) /* Bit 0 */ +#define GPIO_CFGHR_MODE12_1 ((uint32_t)0x00020000) /* Bit 1 */ + +#define GPIO_CFGHR_MODE13 ((uint32_t)0x00300000) /* MODE13[1:0] bits (Port x mode bits, pin 13) */ +#define GPIO_CFGHR_MODE13_0 ((uint32_t)0x00100000) /* Bit 0 */ +#define GPIO_CFGHR_MODE13_1 ((uint32_t)0x00200000) /* Bit 1 */ + +#define GPIO_CFGHR_MODE14 ((uint32_t)0x03000000) /* MODE14[1:0] bits (Port x mode bits, pin 14) */ +#define GPIO_CFGHR_MODE14_0 ((uint32_t)0x01000000) /* Bit 0 */ +#define GPIO_CFGHR_MODE14_1 ((uint32_t)0x02000000) /* Bit 1 */ + +#define GPIO_CFGHR_MODE15 ((uint32_t)0x30000000) /* MODE15[1:0] bits (Port x mode bits, pin 15) */ +#define GPIO_CFGHR_MODE15_0 ((uint32_t)0x10000000) /* Bit 0 */ +#define GPIO_CFGHR_MODE15_1 ((uint32_t)0x20000000) /* Bit 1 */ + +#define GPIO_CFGHR_CNF ((uint32_t)0xCCCCCCCC) /* Port x configuration bits */ + +#define GPIO_CFGHR_CNF8 ((uint32_t)0x0000000C) /* CNF8[1:0] bits (Port x configuration bits, pin 8) */ +#define GPIO_CFGHR_CNF8_0 ((uint32_t)0x00000004) /* Bit 0 */ +#define GPIO_CFGHR_CNF8_1 ((uint32_t)0x00000008) /* Bit 1 */ + +#define GPIO_CFGHR_CNF9 ((uint32_t)0x000000C0) /* CNF9[1:0] bits (Port x configuration bits, pin 9) */ +#define GPIO_CFGHR_CNF9_0 ((uint32_t)0x00000040) /* Bit 0 */ +#define GPIO_CFGHR_CNF9_1 ((uint32_t)0x00000080) /* Bit 1 */ + +#define GPIO_CFGHR_CNF10 ((uint32_t)0x00000C00) /* CNF10[1:0] bits (Port x configuration bits, pin 10) */ +#define GPIO_CFGHR_CNF10_0 ((uint32_t)0x00000400) /* Bit 0 */ +#define GPIO_CFGHR_CNF10_1 ((uint32_t)0x00000800) /* Bit 1 */ + +#define GPIO_CFGHR_CNF11 ((uint32_t)0x0000C000) /* CNF11[1:0] bits (Port x configuration bits, pin 11) */ +#define GPIO_CFGHR_CNF11_0 ((uint32_t)0x00004000) /* Bit 0 */ +#define GPIO_CFGHR_CNF11_1 ((uint32_t)0x00008000) /* Bit 1 */ + +#define GPIO_CFGHR_CNF12 ((uint32_t)0x000C0000) /* CNF12[1:0] bits (Port x configuration bits, pin 12) */ +#define GPIO_CFGHR_CNF12_0 ((uint32_t)0x00040000) /* Bit 0 */ +#define GPIO_CFGHR_CNF12_1 ((uint32_t)0x00080000) /* Bit 1 */ + +#define GPIO_CFGHR_CNF13 ((uint32_t)0x00C00000) /* CNF13[1:0] bits (Port x configuration bits, pin 13) */ +#define GPIO_CFGHR_CNF13_0 ((uint32_t)0x00400000) /* Bit 0 */ +#define GPIO_CFGHR_CNF13_1 ((uint32_t)0x00800000) /* Bit 1 */ + +#define GPIO_CFGHR_CNF14 ((uint32_t)0x0C000000) /* CNF14[1:0] bits (Port x configuration bits, pin 14) */ +#define GPIO_CFGHR_CNF14_0 ((uint32_t)0x04000000) /* Bit 0 */ +#define GPIO_CFGHR_CNF14_1 ((uint32_t)0x08000000) /* Bit 1 */ + +#define GPIO_CFGHR_CNF15 ((uint32_t)0xC0000000) /* CNF15[1:0] bits (Port x configuration bits, pin 15) */ +#define GPIO_CFGHR_CNF15_0 ((uint32_t)0x40000000) /* Bit 0 */ +#define GPIO_CFGHR_CNF15_1 ((uint32_t)0x80000000) /* Bit 1 */ + +/******************* Bit definition for GPIO_INDR register *******************/ +#define GPIO_INDR_IDR0 ((uint16_t)0x0001) /* Port input data, bit 0 */ +#define GPIO_INDR_IDR1 ((uint16_t)0x0002) /* Port input data, bit 1 */ +#define GPIO_INDR_IDR2 ((uint16_t)0x0004) /* Port input data, bit 2 */ +#define GPIO_INDR_IDR3 ((uint16_t)0x0008) /* Port input data, bit 3 */ +#define GPIO_INDR_IDR4 ((uint16_t)0x0010) /* Port input data, bit 4 */ +#define GPIO_INDR_IDR5 ((uint16_t)0x0020) /* Port input data, bit 5 */ +#define GPIO_INDR_IDR6 ((uint16_t)0x0040) /* Port input data, bit 6 */ +#define GPIO_INDR_IDR7 ((uint16_t)0x0080) /* Port input data, bit 7 */ +#define GPIO_INDR_IDR8 ((uint16_t)0x0100) /* Port input data, bit 8 */ +#define GPIO_INDR_IDR9 ((uint16_t)0x0200) /* Port input data, bit 9 */ +#define GPIO_INDR_IDR10 ((uint16_t)0x0400) /* Port input data, bit 10 */ +#define GPIO_INDR_IDR11 ((uint16_t)0x0800) /* Port input data, bit 11 */ +#define GPIO_INDR_IDR12 ((uint16_t)0x1000) /* Port input data, bit 12 */ +#define GPIO_INDR_IDR13 ((uint16_t)0x2000) /* Port input data, bit 13 */ +#define GPIO_INDR_IDR14 ((uint16_t)0x4000) /* Port input data, bit 14 */ +#define GPIO_INDR_IDR15 ((uint16_t)0x8000) /* Port input data, bit 15 */ + +/******************* Bit definition for GPIO_OUTDR register *******************/ +#define GPIO_OUTDR_ODR0 ((uint16_t)0x0001) /* Port output data, bit 0 */ +#define GPIO_OUTDR_ODR1 ((uint16_t)0x0002) /* Port output data, bit 1 */ +#define GPIO_OUTDR_ODR2 ((uint16_t)0x0004) /* Port output data, bit 2 */ +#define GPIO_OUTDR_ODR3 ((uint16_t)0x0008) /* Port output data, bit 3 */ +#define GPIO_OUTDR_ODR4 ((uint16_t)0x0010) /* Port output data, bit 4 */ +#define GPIO_OUTDR_ODR5 ((uint16_t)0x0020) /* Port output data, bit 5 */ +#define GPIO_OUTDR_ODR6 ((uint16_t)0x0040) /* Port output data, bit 6 */ +#define GPIO_OUTDR_ODR7 ((uint16_t)0x0080) /* Port output data, bit 7 */ +#define GPIO_OUTDR_ODR8 ((uint16_t)0x0100) /* Port output data, bit 8 */ +#define GPIO_OUTDR_ODR9 ((uint16_t)0x0200) /* Port output data, bit 9 */ +#define GPIO_OUTDR_ODR10 ((uint16_t)0x0400) /* Port output data, bit 10 */ +#define GPIO_OUTDR_ODR11 ((uint16_t)0x0800) /* Port output data, bit 11 */ +#define GPIO_OUTDR_ODR12 ((uint16_t)0x1000) /* Port output data, bit 12 */ +#define GPIO_OUTDR_ODR13 ((uint16_t)0x2000) /* Port output data, bit 13 */ +#define GPIO_OUTDR_ODR14 ((uint16_t)0x4000) /* Port output data, bit 14 */ +#define GPIO_OUTDR_ODR15 ((uint16_t)0x8000) /* Port output data, bit 15 */ + +/****************** Bit definition for GPIO_BSHR register *******************/ +#define GPIO_BSHR_BS0 ((uint32_t)0x00000001) /* Port x Set bit 0 */ +#define GPIO_BSHR_BS1 ((uint32_t)0x00000002) /* Port x Set bit 1 */ +#define GPIO_BSHR_BS2 ((uint32_t)0x00000004) /* Port x Set bit 2 */ +#define GPIO_BSHR_BS3 ((uint32_t)0x00000008) /* Port x Set bit 3 */ +#define GPIO_BSHR_BS4 ((uint32_t)0x00000010) /* Port x Set bit 4 */ +#define GPIO_BSHR_BS5 ((uint32_t)0x00000020) /* Port x Set bit 5 */ +#define GPIO_BSHR_BS6 ((uint32_t)0x00000040) /* Port x Set bit 6 */ +#define GPIO_BSHR_BS7 ((uint32_t)0x00000080) /* Port x Set bit 7 */ +#define GPIO_BSHR_BS8 ((uint32_t)0x00000100) /* Port x Set bit 8 */ +#define GPIO_BSHR_BS9 ((uint32_t)0x00000200) /* Port x Set bit 9 */ +#define GPIO_BSHR_BS10 ((uint32_t)0x00000400) /* Port x Set bit 10 */ +#define GPIO_BSHR_BS11 ((uint32_t)0x00000800) /* Port x Set bit 11 */ +#define GPIO_BSHR_BS12 ((uint32_t)0x00001000) /* Port x Set bit 12 */ +#define GPIO_BSHR_BS13 ((uint32_t)0x00002000) /* Port x Set bit 13 */ +#define GPIO_BSHR_BS14 ((uint32_t)0x00004000) /* Port x Set bit 14 */ +#define GPIO_BSHR_BS15 ((uint32_t)0x00008000) /* Port x Set bit 15 */ + +#define GPIO_BSHR_BR0 ((uint32_t)0x00010000) /* Port x Reset bit 0 */ +#define GPIO_BSHR_BR1 ((uint32_t)0x00020000) /* Port x Reset bit 1 */ +#define GPIO_BSHR_BR2 ((uint32_t)0x00040000) /* Port x Reset bit 2 */ +#define GPIO_BSHR_BR3 ((uint32_t)0x00080000) /* Port x Reset bit 3 */ +#define GPIO_BSHR_BR4 ((uint32_t)0x00100000) /* Port x Reset bit 4 */ +#define GPIO_BSHR_BR5 ((uint32_t)0x00200000) /* Port x Reset bit 5 */ +#define GPIO_BSHR_BR6 ((uint32_t)0x00400000) /* Port x Reset bit 6 */ +#define GPIO_BSHR_BR7 ((uint32_t)0x00800000) /* Port x Reset bit 7 */ +#define GPIO_BSHR_BR8 ((uint32_t)0x01000000) /* Port x Reset bit 8 */ +#define GPIO_BSHR_BR9 ((uint32_t)0x02000000) /* Port x Reset bit 9 */ +#define GPIO_BSHR_BR10 ((uint32_t)0x04000000) /* Port x Reset bit 10 */ +#define GPIO_BSHR_BR11 ((uint32_t)0x08000000) /* Port x Reset bit 11 */ +#define GPIO_BSHR_BR12 ((uint32_t)0x10000000) /* Port x Reset bit 12 */ +#define GPIO_BSHR_BR13 ((uint32_t)0x20000000) /* Port x Reset bit 13 */ +#define GPIO_BSHR_BR14 ((uint32_t)0x40000000) /* Port x Reset bit 14 */ +#define GPIO_BSHR_BR15 ((uint32_t)0x80000000) /* Port x Reset bit 15 */ + +/******************* Bit definition for GPIO_BCR register *******************/ +#define GPIO_BCR_BR0 ((uint16_t)0x0001) /* Port x Reset bit 0 */ +#define GPIO_BCR_BR1 ((uint16_t)0x0002) /* Port x Reset bit 1 */ +#define GPIO_BCR_BR2 ((uint16_t)0x0004) /* Port x Reset bit 2 */ +#define GPIO_BCR_BR3 ((uint16_t)0x0008) /* Port x Reset bit 3 */ +#define GPIO_BCR_BR4 ((uint16_t)0x0010) /* Port x Reset bit 4 */ +#define GPIO_BCR_BR5 ((uint16_t)0x0020) /* Port x Reset bit 5 */ +#define GPIO_BCR_BR6 ((uint16_t)0x0040) /* Port x Reset bit 6 */ +#define GPIO_BCR_BR7 ((uint16_t)0x0080) /* Port x Reset bit 7 */ +#define GPIO_BCR_BR8 ((uint16_t)0x0100) /* Port x Reset bit 8 */ +#define GPIO_BCR_BR9 ((uint16_t)0x0200) /* Port x Reset bit 9 */ +#define GPIO_BCR_BR10 ((uint16_t)0x0400) /* Port x Reset bit 10 */ +#define GPIO_BCR_BR11 ((uint16_t)0x0800) /* Port x Reset bit 11 */ +#define GPIO_BCR_BR12 ((uint16_t)0x1000) /* Port x Reset bit 12 */ +#define GPIO_BCR_BR13 ((uint16_t)0x2000) /* Port x Reset bit 13 */ +#define GPIO_BCR_BR14 ((uint16_t)0x4000) /* Port x Reset bit 14 */ +#define GPIO_BCR_BR15 ((uint16_t)0x8000) /* Port x Reset bit 15 */ + +/****************** Bit definition for GPIO_LCKR register *******************/ +#define GPIO_LCK0 ((uint32_t)0x00000001) /* Port x Lock bit 0 */ +#define GPIO_LCK1 ((uint32_t)0x00000002) /* Port x Lock bit 1 */ +#define GPIO_LCK2 ((uint32_t)0x00000004) /* Port x Lock bit 2 */ +#define GPIO_LCK3 ((uint32_t)0x00000008) /* Port x Lock bit 3 */ +#define GPIO_LCK4 ((uint32_t)0x00000010) /* Port x Lock bit 4 */ +#define GPIO_LCK5 ((uint32_t)0x00000020) /* Port x Lock bit 5 */ +#define GPIO_LCK6 ((uint32_t)0x00000040) /* Port x Lock bit 6 */ +#define GPIO_LCK7 ((uint32_t)0x00000080) /* Port x Lock bit 7 */ +#define GPIO_LCK8 ((uint32_t)0x00000100) /* Port x Lock bit 8 */ +#define GPIO_LCK9 ((uint32_t)0x00000200) /* Port x Lock bit 9 */ +#define GPIO_LCK10 ((uint32_t)0x00000400) /* Port x Lock bit 10 */ +#define GPIO_LCK11 ((uint32_t)0x00000800) /* Port x Lock bit 11 */ +#define GPIO_LCK12 ((uint32_t)0x00001000) /* Port x Lock bit 12 */ +#define GPIO_LCK13 ((uint32_t)0x00002000) /* Port x Lock bit 13 */ +#define GPIO_LCK14 ((uint32_t)0x00004000) /* Port x Lock bit 14 */ +#define GPIO_LCK15 ((uint32_t)0x00008000) /* Port x Lock bit 15 */ +#define GPIO_LCKK ((uint32_t)0x00010000) /* Lock key */ + +/****************** Bit definition for AFIO_ECR register *******************/ +#define AFIO_ECR_PIN ((uint8_t)0x0F) /* PIN[3:0] bits (Pin selection) */ +#define AFIO_ECR_PIN_0 ((uint8_t)0x01) /* Bit 0 */ +#define AFIO_ECR_PIN_1 ((uint8_t)0x02) /* Bit 1 */ +#define AFIO_ECR_PIN_2 ((uint8_t)0x04) /* Bit 2 */ +#define AFIO_ECR_PIN_3 ((uint8_t)0x08) /* Bit 3 */ + +#define AFIO_ECR_PIN_PX0 ((uint8_t)0x00) /* Pin 0 selected */ +#define AFIO_ECR_PIN_PX1 ((uint8_t)0x01) /* Pin 1 selected */ +#define AFIO_ECR_PIN_PX2 ((uint8_t)0x02) /* Pin 2 selected */ +#define AFIO_ECR_PIN_PX3 ((uint8_t)0x03) /* Pin 3 selected */ +#define AFIO_ECR_PIN_PX4 ((uint8_t)0x04) /* Pin 4 selected */ +#define AFIO_ECR_PIN_PX5 ((uint8_t)0x05) /* Pin 5 selected */ +#define AFIO_ECR_PIN_PX6 ((uint8_t)0x06) /* Pin 6 selected */ +#define AFIO_ECR_PIN_PX7 ((uint8_t)0x07) /* Pin 7 selected */ +#define AFIO_ECR_PIN_PX8 ((uint8_t)0x08) /* Pin 8 selected */ +#define AFIO_ECR_PIN_PX9 ((uint8_t)0x09) /* Pin 9 selected */ +#define AFIO_ECR_PIN_PX10 ((uint8_t)0x0A) /* Pin 10 selected */ +#define AFIO_ECR_PIN_PX11 ((uint8_t)0x0B) /* Pin 11 selected */ +#define AFIO_ECR_PIN_PX12 ((uint8_t)0x0C) /* Pin 12 selected */ +#define AFIO_ECR_PIN_PX13 ((uint8_t)0x0D) /* Pin 13 selected */ +#define AFIO_ECR_PIN_PX14 ((uint8_t)0x0E) /* Pin 14 selected */ +#define AFIO_ECR_PIN_PX15 ((uint8_t)0x0F) /* Pin 15 selected */ + +#define AFIO_ECR_PORT ((uint8_t)0x70) /* PORT[2:0] bits (Port selection) */ +#define AFIO_ECR_PORT_0 ((uint8_t)0x10) /* Bit 0 */ +#define AFIO_ECR_PORT_1 ((uint8_t)0x20) /* Bit 1 */ +#define AFIO_ECR_PORT_2 ((uint8_t)0x40) /* Bit 2 */ + +#define AFIO_ECR_PORT_PA ((uint8_t)0x00) /* Port A selected */ +#define AFIO_ECR_PORT_PB ((uint8_t)0x10) /* Port B selected */ +#define AFIO_ECR_PORT_PC ((uint8_t)0x20) /* Port C selected */ +#define AFIO_ECR_PORT_PD ((uint8_t)0x30) /* Port D selected */ +#define AFIO_ECR_PORT_PE ((uint8_t)0x40) /* Port E selected */ + +#define AFIO_ECR_EVOE ((uint8_t)0x80) /* Event Output Enable */ + +/****************** Bit definition for AFIO_PCFR1register *******************/ +#define AFIO_PCFR1_SPI1_REMAP ((uint32_t)0x00000001) /* SPI1 remapping */ +#define AFIO_PCFR1_I2C1_REMAP ((uint32_t)0x00000002) /* I2C1 remapping */ +#define AFIO_PCFR1_USART1_REMAP ((uint32_t)0x00000004) /* USART1 remapping */ +#define AFIO_PCFR1_USART2_REMAP ((uint32_t)0x00000008) /* USART2 remapping */ + +#define AFIO_PCFR1_USART3_REMAP ((uint32_t)0x00000030) /* USART3_REMAP[1:0] bits (USART3 remapping) */ +#define AFIO_PCFR1_USART3_REMAP_0 ((uint32_t)0x00000010) /* Bit 0 */ +#define AFIO_PCFR1_USART3_REMAP_1 ((uint32_t)0x00000020) /* Bit 1 */ + +#define AFIO_PCFR1_USART3_REMAP_NOREMAP ((uint32_t)0x00000000) /* No remap (TX/PB10, RX/PB11, CK/PB12, CTS/PB13, RTS/PB14) */ +#define AFIO_PCFR1_USART3_REMAP_PARTIALREMAP ((uint32_t)0x00000010) /* Partial remap (TX/PC10, RX/PC11, CK/PC12, CTS/PB13, RTS/PB14) */ +#define AFIO_PCFR1_USART3_REMAP_FULLREMAP ((uint32_t)0x00000030) /* Full remap (TX/PD8, RX/PD9, CK/PD10, CTS/PD11, RTS/PD12) */ + +#define AFIO_PCFR1_TIM1_REMAP ((uint32_t)0x000000C0) /* TIM1_REMAP[1:0] bits (TIM1 remapping) */ +#define AFIO_PCFR1_TIM1_REMAP_0 ((uint32_t)0x00000040) /* Bit 0 */ +#define AFIO_PCFR1_TIM1_REMAP_1 ((uint32_t)0x00000080) /* Bit 1 */ + +#define AFIO_PCFR1_TIM1_REMAP_NOREMAP ((uint32_t)0x00000000) /* No remap (ETR/PA12, CH1/PA8, CH2/PA9, CH3/PA10, CH4/PA11, BKIN/PB12, CH1N/PB13, CH2N/PB14, CH3N/PB15) */ +#define AFIO_PCFR1_TIM1_REMAP_PARTIALREMAP ((uint32_t)0x00000040) /* Partial remap (ETR/PA12, CH1/PA8, CH2/PA9, CH3/PA10, CH4/PA11, BKIN/PA6, CH1N/PA7, CH2N/PB0, CH3N/PB1) */ +#define AFIO_PCFR1_TIM1_REMAP_FULLREMAP ((uint32_t)0x000000C0) /* Full remap (ETR/PE7, CH1/PE9, CH2/PE11, CH3/PE13, CH4/PE14, BKIN/PE15, CH1N/PE8, CH2N/PE10, CH3N/PE12) */ + +#define AFIO_PCFR1_TIM2_REMAP ((uint32_t)0x00000300) /* TIM2_REMAP[1:0] bits (TIM2 remapping) */ +#define AFIO_PCFR1_TIM2_REMAP_0 ((uint32_t)0x00000100) /* Bit 0 */ +#define AFIO_PCFR1_TIM2_REMAP_1 ((uint32_t)0x00000200) /* Bit 1 */ + +#define AFIO_PCFR1_TIM2_REMAP_NOREMAP ((uint32_t)0x00000000) /* No remap (CH1/ETR/PA0, CH2/PA1, CH3/PA2, CH4/PA3) */ +#define AFIO_PCFR1_TIM2_REMAP_PARTIALREMAP1 ((uint32_t)0x00000100) /* Partial remap (CH1/ETR/PA15, CH2/PB3, CH3/PA2, CH4/PA3) */ +#define AFIO_PCFR1_TIM2_REMAP_PARTIALREMAP2 ((uint32_t)0x00000200) /* Partial remap (CH1/ETR/PA0, CH2/PA1, CH3/PB10, CH4/PB11) */ +#define AFIO_PCFR1_TIM2_REMAP_FULLREMAP ((uint32_t)0x00000300) /* Full remap (CH1/ETR/PA15, CH2/PB3, CH3/PB10, CH4/PB11) */ + +#define AFIO_PCFR1_TIM3_REMAP ((uint32_t)0x00000C00) /* TIM3_REMAP[1:0] bits (TIM3 remapping) */ +#define AFIO_PCFR1_TIM3_REMAP_0 ((uint32_t)0x00000400) /* Bit 0 */ +#define AFIO_PCFR1_TIM3_REMAP_1 ((uint32_t)0x00000800) /* Bit 1 */ + +#define AFIO_PCFR1_TIM3_REMAP_NOREMAP ((uint32_t)0x00000000) /* No remap (CH1/PA6, CH2/PA7, CH3/PB0, CH4/PB1) */ +#define AFIO_PCFR1_TIM3_REMAP_PARTIALREMAP ((uint32_t)0x00000800) /* Partial remap (CH1/PB4, CH2/PB5, CH3/PB0, CH4/PB1) */ +#define AFIO_PCFR1_TIM3_REMAP_FULLREMAP ((uint32_t)0x00000C00) /* Full remap (CH1/PC6, CH2/PC7, CH3/PC8, CH4/PC9) */ + +#define AFIO_PCFR1_TIM4_REMAP ((uint32_t)0x00001000) /* TIM4_REMAP bit (TIM4 remapping) */ + +#define AFIO_PCFR1_CAN_REMAP ((uint32_t)0x00006000) /* CAN_REMAP[1:0] bits (CAN Alternate function remapping) */ +#define AFIO_PCFR1_CAN_REMAP_0 ((uint32_t)0x00002000) /* Bit 0 */ +#define AFIO_PCFR1_CAN_REMAP_1 ((uint32_t)0x00004000) /* Bit 1 */ + +#define AFIO_PCFR1_CAN_REMAP_REMAP1 ((uint32_t)0x00000000) /* CANRX mapped to PA11, CANTX mapped to PA12 */ +#define AFIO_PCFR1_CAN_REMAP_REMAP2 ((uint32_t)0x00004000) /* CANRX mapped to PB8, CANTX mapped to PB9 */ +#define AFIO_PCFR1_CAN_REMAP_REMAP3 ((uint32_t)0x00006000) /* CANRX mapped to PD0, CANTX mapped to PD1 */ + +#define AFIO_PCFR1_PD01_REMAP ((uint32_t)0x00008000) /* Port D0/Port D1 mapping on OSC_IN/OSC_OUT */ +#define AFIO_PCFR1_TIM5CH4_IREMAP ((uint32_t)0x00010000) /* TIM5 Channel4 Internal Remap */ +#define AFIO_PCFR1_ADC1_ETRGINJ_REMAP ((uint32_t)0x00020000) /* ADC 1 External Trigger Injected Conversion remapping */ +#define AFIO_PCFR1_ADC1_ETRGREG_REMAP ((uint32_t)0x00040000) /* ADC 1 External Trigger Regular Conversion remapping */ +#define AFIO_PCFR1_ADC2_ETRGINJ_REMAP ((uint32_t)0x00080000) /* ADC 2 External Trigger Injected Conversion remapping */ +#define AFIO_PCFR1_ADC2_ETRGREG_REMAP ((uint32_t)0x00100000) /* ADC 2 External Trigger Regular Conversion remapping */ + +#define AFIO_PCFR1_SWJ_CFG ((uint32_t)0x07000000) /* SWJ_CFG[2:0] bits (Serial Wire JTAG configuration) */ +#define AFIO_PCFR1_SWJ_CFG_0 ((uint32_t)0x01000000) /* Bit 0 */ +#define AFIO_PCFR1_SWJ_CFG_1 ((uint32_t)0x02000000) /* Bit 1 */ +#define AFIO_PCFR1_SWJ_CFG_2 ((uint32_t)0x04000000) /* Bit 2 */ + +#define AFIO_PCFR1_SWJ_CFG_RESET ((uint32_t)0x00000000) /* Full SWJ (JTAG-DP + SW-DP) : Reset State */ +#define AFIO_PCFR1_SWJ_CFG_NOJNTRST ((uint32_t)0x01000000) /* Full SWJ (JTAG-DP + SW-DP) but without JNTRST */ +#define AFIO_PCFR1_SWJ_CFG_JTAGDISABLE ((uint32_t)0x02000000) /* JTAG-DP Disabled and SW-DP Enabled */ +#define AFIO_PCFR1_SWJ_CFG_DISABLE ((uint32_t)0x04000000) /* JTAG-DP Disabled and SW-DP Disabled */ + +/***************** Bit definition for AFIO_EXTICR1 register *****************/ +#define AFIO_EXTICR1_EXTI0 ((uint16_t)0x000F) /* EXTI 0 configuration */ +#define AFIO_EXTICR1_EXTI1 ((uint16_t)0x00F0) /* EXTI 1 configuration */ +#define AFIO_EXTICR1_EXTI2 ((uint16_t)0x0F00) /* EXTI 2 configuration */ +#define AFIO_EXTICR1_EXTI3 ((uint16_t)0xF000) /* EXTI 3 configuration */ + +#define AFIO_EXTICR1_EXTI0_PA ((uint16_t)0x0000) /* PA[0] pin */ +#define AFIO_EXTICR1_EXTI0_PB ((uint16_t)0x0001) /* PB[0] pin */ +#define AFIO_EXTICR1_EXTI0_PC ((uint16_t)0x0002) /* PC[0] pin */ +#define AFIO_EXTICR1_EXTI0_PD ((uint16_t)0x0003) /* PD[0] pin */ +#define AFIO_EXTICR1_EXTI0_PE ((uint16_t)0x0004) /* PE[0] pin */ +#define AFIO_EXTICR1_EXTI0_PF ((uint16_t)0x0005) /* PF[0] pin */ +#define AFIO_EXTICR1_EXTI0_PG ((uint16_t)0x0006) /* PG[0] pin */ + +#define AFIO_EXTICR1_EXTI1_PA ((uint16_t)0x0000) /* PA[1] pin */ +#define AFIO_EXTICR1_EXTI1_PB ((uint16_t)0x0010) /* PB[1] pin */ +#define AFIO_EXTICR1_EXTI1_PC ((uint16_t)0x0020) /* PC[1] pin */ +#define AFIO_EXTICR1_EXTI1_PD ((uint16_t)0x0030) /* PD[1] pin */ +#define AFIO_EXTICR1_EXTI1_PE ((uint16_t)0x0040) /* PE[1] pin */ +#define AFIO_EXTICR1_EXTI1_PF ((uint16_t)0x0050) /* PF[1] pin */ +#define AFIO_EXTICR1_EXTI1_PG ((uint16_t)0x0060) /* PG[1] pin */ + +#define AFIO_EXTICR1_EXTI2_PA ((uint16_t)0x0000) /* PA[2] pin */ +#define AFIO_EXTICR1_EXTI2_PB ((uint16_t)0x0100) /* PB[2] pin */ +#define AFIO_EXTICR1_EXTI2_PC ((uint16_t)0x0200) /* PC[2] pin */ +#define AFIO_EXTICR1_EXTI2_PD ((uint16_t)0x0300) /* PD[2] pin */ +#define AFIO_EXTICR1_EXTI2_PE ((uint16_t)0x0400) /* PE[2] pin */ +#define AFIO_EXTICR1_EXTI2_PF ((uint16_t)0x0500) /* PF[2] pin */ +#define AFIO_EXTICR1_EXTI2_PG ((uint16_t)0x0600) /* PG[2] pin */ + +#define AFIO_EXTICR1_EXTI3_PA ((uint16_t)0x0000) /* PA[3] pin */ +#define AFIO_EXTICR1_EXTI3_PB ((uint16_t)0x1000) /* PB[3] pin */ +#define AFIO_EXTICR1_EXTI3_PC ((uint16_t)0x2000) /* PC[3] pin */ +#define AFIO_EXTICR1_EXTI3_PD ((uint16_t)0x3000) /* PD[3] pin */ +#define AFIO_EXTICR1_EXTI3_PE ((uint16_t)0x4000) /* PE[3] pin */ +#define AFIO_EXTICR1_EXTI3_PF ((uint16_t)0x5000) /* PF[3] pin */ +#define AFIO_EXTICR1_EXTI3_PG ((uint16_t)0x6000) /* PG[3] pin */ + +/***************** Bit definition for AFIO_EXTICR2 register *****************/ +#define AFIO_EXTICR2_EXTI4 ((uint16_t)0x000F) /* EXTI 4 configuration */ +#define AFIO_EXTICR2_EXTI5 ((uint16_t)0x00F0) /* EXTI 5 configuration */ +#define AFIO_EXTICR2_EXTI6 ((uint16_t)0x0F00) /* EXTI 6 configuration */ +#define AFIO_EXTICR2_EXTI7 ((uint16_t)0xF000) /* EXTI 7 configuration */ + +#define AFIO_EXTICR2_EXTI4_PA ((uint16_t)0x0000) /* PA[4] pin */ +#define AFIO_EXTICR2_EXTI4_PB ((uint16_t)0x0001) /* PB[4] pin */ +#define AFIO_EXTICR2_EXTI4_PC ((uint16_t)0x0002) /* PC[4] pin */ +#define AFIO_EXTICR2_EXTI4_PD ((uint16_t)0x0003) /* PD[4] pin */ +#define AFIO_EXTICR2_EXTI4_PE ((uint16_t)0x0004) /* PE[4] pin */ +#define AFIO_EXTICR2_EXTI4_PF ((uint16_t)0x0005) /* PF[4] pin */ +#define AFIO_EXTICR2_EXTI4_PG ((uint16_t)0x0006) /* PG[4] pin */ + +#define AFIO_EXTICR2_EXTI5_PA ((uint16_t)0x0000) /* PA[5] pin */ +#define AFIO_EXTICR2_EXTI5_PB ((uint16_t)0x0010) /* PB[5] pin */ +#define AFIO_EXTICR2_EXTI5_PC ((uint16_t)0x0020) /* PC[5] pin */ +#define AFIO_EXTICR2_EXTI5_PD ((uint16_t)0x0030) /* PD[5] pin */ +#define AFIO_EXTICR2_EXTI5_PE ((uint16_t)0x0040) /* PE[5] pin */ +#define AFIO_EXTICR2_EXTI5_PF ((uint16_t)0x0050) /* PF[5] pin */ +#define AFIO_EXTICR2_EXTI5_PG ((uint16_t)0x0060) /* PG[5] pin */ + +#define AFIO_EXTICR2_EXTI6_PA ((uint16_t)0x0000) /* PA[6] pin */ +#define AFIO_EXTICR2_EXTI6_PB ((uint16_t)0x0100) /* PB[6] pin */ +#define AFIO_EXTICR2_EXTI6_PC ((uint16_t)0x0200) /* PC[6] pin */ +#define AFIO_EXTICR2_EXTI6_PD ((uint16_t)0x0300) /* PD[6] pin */ +#define AFIO_EXTICR2_EXTI6_PE ((uint16_t)0x0400) /* PE[6] pin */ +#define AFIO_EXTICR2_EXTI6_PF ((uint16_t)0x0500) /* PF[6] pin */ +#define AFIO_EXTICR2_EXTI6_PG ((uint16_t)0x0600) /* PG[6] pin */ + +#define AFIO_EXTICR2_EXTI7_PA ((uint16_t)0x0000) /* PA[7] pin */ +#define AFIO_EXTICR2_EXTI7_PB ((uint16_t)0x1000) /* PB[7] pin */ +#define AFIO_EXTICR2_EXTI7_PC ((uint16_t)0x2000) /* PC[7] pin */ +#define AFIO_EXTICR2_EXTI7_PD ((uint16_t)0x3000) /* PD[7] pin */ +#define AFIO_EXTICR2_EXTI7_PE ((uint16_t)0x4000) /* PE[7] pin */ +#define AFIO_EXTICR2_EXTI7_PF ((uint16_t)0x5000) /* PF[7] pin */ +#define AFIO_EXTICR2_EXTI7_PG ((uint16_t)0x6000) /* PG[7] pin */ + +/***************** Bit definition for AFIO_EXTICR3 register *****************/ +#define AFIO_EXTICR3_EXTI8 ((uint16_t)0x000F) /* EXTI 8 configuration */ +#define AFIO_EXTICR3_EXTI9 ((uint16_t)0x00F0) /* EXTI 9 configuration */ +#define AFIO_EXTICR3_EXTI10 ((uint16_t)0x0F00) /* EXTI 10 configuration */ +#define AFIO_EXTICR3_EXTI11 ((uint16_t)0xF000) /* EXTI 11 configuration */ + +#define AFIO_EXTICR3_EXTI8_PA ((uint16_t)0x0000) /* PA[8] pin */ +#define AFIO_EXTICR3_EXTI8_PB ((uint16_t)0x0001) /* PB[8] pin */ +#define AFIO_EXTICR3_EXTI8_PC ((uint16_t)0x0002) /* PC[8] pin */ +#define AFIO_EXTICR3_EXTI8_PD ((uint16_t)0x0003) /* PD[8] pin */ +#define AFIO_EXTICR3_EXTI8_PE ((uint16_t)0x0004) /* PE[8] pin */ +#define AFIO_EXTICR3_EXTI8_PF ((uint16_t)0x0005) /* PF[8] pin */ +#define AFIO_EXTICR3_EXTI8_PG ((uint16_t)0x0006) /* PG[8] pin */ + +#define AFIO_EXTICR3_EXTI9_PA ((uint16_t)0x0000) /* PA[9] pin */ +#define AFIO_EXTICR3_EXTI9_PB ((uint16_t)0x0010) /* PB[9] pin */ +#define AFIO_EXTICR3_EXTI9_PC ((uint16_t)0x0020) /* PC[9] pin */ +#define AFIO_EXTICR3_EXTI9_PD ((uint16_t)0x0030) /* PD[9] pin */ +#define AFIO_EXTICR3_EXTI9_PE ((uint16_t)0x0040) /* PE[9] pin */ +#define AFIO_EXTICR3_EXTI9_PF ((uint16_t)0x0050) /* PF[9] pin */ +#define AFIO_EXTICR3_EXTI9_PG ((uint16_t)0x0060) /* PG[9] pin */ + +#define AFIO_EXTICR3_EXTI10_PA ((uint16_t)0x0000) /* PA[10] pin */ +#define AFIO_EXTICR3_EXTI10_PB ((uint16_t)0x0100) /* PB[10] pin */ +#define AFIO_EXTICR3_EXTI10_PC ((uint16_t)0x0200) /* PC[10] pin */ +#define AFIO_EXTICR3_EXTI10_PD ((uint16_t)0x0300) /* PD[10] pin */ +#define AFIO_EXTICR3_EXTI10_PE ((uint16_t)0x0400) /* PE[10] pin */ +#define AFIO_EXTICR3_EXTI10_PF ((uint16_t)0x0500) /* PF[10] pin */ +#define AFIO_EXTICR3_EXTI10_PG ((uint16_t)0x0600) /* PG[10] pin */ + +#define AFIO_EXTICR3_EXTI11_PA ((uint16_t)0x0000) /* PA[11] pin */ +#define AFIO_EXTICR3_EXTI11_PB ((uint16_t)0x1000) /* PB[11] pin */ +#define AFIO_EXTICR3_EXTI11_PC ((uint16_t)0x2000) /* PC[11] pin */ +#define AFIO_EXTICR3_EXTI11_PD ((uint16_t)0x3000) /* PD[11] pin */ +#define AFIO_EXTICR3_EXTI11_PE ((uint16_t)0x4000) /* PE[11] pin */ +#define AFIO_EXTICR3_EXTI11_PF ((uint16_t)0x5000) /* PF[11] pin */ +#define AFIO_EXTICR3_EXTI11_PG ((uint16_t)0x6000) /* PG[11] pin */ + +/***************** Bit definition for AFIO_EXTICR4 register *****************/ +#define AFIO_EXTICR4_EXTI12 ((uint16_t)0x000F) /* EXTI 12 configuration */ +#define AFIO_EXTICR4_EXTI13 ((uint16_t)0x00F0) /* EXTI 13 configuration */ +#define AFIO_EXTICR4_EXTI14 ((uint16_t)0x0F00) /* EXTI 14 configuration */ +#define AFIO_EXTICR4_EXTI15 ((uint16_t)0xF000) /* EXTI 15 configuration */ + +#define AFIO_EXTICR4_EXTI12_PA ((uint16_t)0x0000) /* PA[12] pin */ +#define AFIO_EXTICR4_EXTI12_PB ((uint16_t)0x0001) /* PB[12] pin */ +#define AFIO_EXTICR4_EXTI12_PC ((uint16_t)0x0002) /* PC[12] pin */ +#define AFIO_EXTICR4_EXTI12_PD ((uint16_t)0x0003) /* PD[12] pin */ +#define AFIO_EXTICR4_EXTI12_PE ((uint16_t)0x0004) /* PE[12] pin */ +#define AFIO_EXTICR4_EXTI12_PF ((uint16_t)0x0005) /* PF[12] pin */ +#define AFIO_EXTICR4_EXTI12_PG ((uint16_t)0x0006) /* PG[12] pin */ + +#define AFIO_EXTICR4_EXTI13_PA ((uint16_t)0x0000) /* PA[13] pin */ +#define AFIO_EXTICR4_EXTI13_PB ((uint16_t)0x0010) /* PB[13] pin */ +#define AFIO_EXTICR4_EXTI13_PC ((uint16_t)0x0020) /* PC[13] pin */ +#define AFIO_EXTICR4_EXTI13_PD ((uint16_t)0x0030) /* PD[13] pin */ +#define AFIO_EXTICR4_EXTI13_PE ((uint16_t)0x0040) /* PE[13] pin */ +#define AFIO_EXTICR4_EXTI13_PF ((uint16_t)0x0050) /* PF[13] pin */ +#define AFIO_EXTICR4_EXTI13_PG ((uint16_t)0x0060) /* PG[13] pin */ + +#define AFIO_EXTICR4_EXTI14_PA ((uint16_t)0x0000) /* PA[14] pin */ +#define AFIO_EXTICR4_EXTI14_PB ((uint16_t)0x0100) /* PB[14] pin */ +#define AFIO_EXTICR4_EXTI14_PC ((uint16_t)0x0200) /* PC[14] pin */ +#define AFIO_EXTICR4_EXTI14_PD ((uint16_t)0x0300) /* PD[14] pin */ +#define AFIO_EXTICR4_EXTI14_PE ((uint16_t)0x0400) /* PE[14] pin */ +#define AFIO_EXTICR4_EXTI14_PF ((uint16_t)0x0500) /* PF[14] pin */ +#define AFIO_EXTICR4_EXTI14_PG ((uint16_t)0x0600) /* PG[14] pin */ + +#define AFIO_EXTICR4_EXTI15_PA ((uint16_t)0x0000) /* PA[15] pin */ +#define AFIO_EXTICR4_EXTI15_PB ((uint16_t)0x1000) /* PB[15] pin */ +#define AFIO_EXTICR4_EXTI15_PC ((uint16_t)0x2000) /* PC[15] pin */ +#define AFIO_EXTICR4_EXTI15_PD ((uint16_t)0x3000) /* PD[15] pin */ +#define AFIO_EXTICR4_EXTI15_PE ((uint16_t)0x4000) /* PE[15] pin */ +#define AFIO_EXTICR4_EXTI15_PF ((uint16_t)0x5000) /* PF[15] pin */ +#define AFIO_EXTICR4_EXTI15_PG ((uint16_t)0x6000) /* PG[15] pin */ + +/******************************************************************************/ +/* Independent WATCHDOG */ +/******************************************************************************/ + +/******************* Bit definition for IWDG_CTLR register ********************/ +#define IWDG_KEY ((uint16_t)0xFFFF) /* Key value (write only, read 0000h) */ + +/******************* Bit definition for IWDG_PSCR register ********************/ +#define IWDG_PR ((uint8_t)0x07) /* PR[2:0] (Prescaler divider) */ +#define IWDG_PR_0 ((uint8_t)0x01) /* Bit 0 */ +#define IWDG_PR_1 ((uint8_t)0x02) /* Bit 1 */ +#define IWDG_PR_2 ((uint8_t)0x04) /* Bit 2 */ + +/******************* Bit definition for IWDG_RLDR register *******************/ +#define IWDG_RL ((uint16_t)0x0FFF) /* Watchdog counter reload value */ + +/******************* Bit definition for IWDG_STATR register ********************/ +#define IWDG_PVU ((uint8_t)0x01) /* Watchdog prescaler value update */ +#define IWDG_RVU ((uint8_t)0x02) /* Watchdog counter reload value update */ + +/******************************************************************************/ +/* Inter-integrated Circuit Interface */ +/******************************************************************************/ + +/******************* Bit definition for I2C_CTLR1 register ********************/ +#define I2C_CTLR1_PE ((uint16_t)0x0001) /* Peripheral Enable */ +#define I2C_CTLR1_SMBUS ((uint16_t)0x0002) /* SMBus Mode */ +#define I2C_CTLR1_SMBTYPE ((uint16_t)0x0008) /* SMBus Type */ +#define I2C_CTLR1_ENARP ((uint16_t)0x0010) /* ARP Enable */ +#define I2C_CTLR1_ENPEC ((uint16_t)0x0020) /* PEC Enable */ +#define I2C_CTLR1_ENGC ((uint16_t)0x0040) /* General Call Enable */ +#define I2C_CTLR1_NOSTRETCH ((uint16_t)0x0080) /* Clock Stretching Disable (Slave mode) */ +#define I2C_CTLR1_START ((uint16_t)0x0100) /* Start Generation */ +#define I2C_CTLR1_STOP ((uint16_t)0x0200) /* Stop Generation */ +#define I2C_CTLR1_ACK ((uint16_t)0x0400) /* Acknowledge Enable */ +#define I2C_CTLR1_POS ((uint16_t)0x0800) /* Acknowledge/PEC Position (for data reception) */ +#define I2C_CTLR1_PEC ((uint16_t)0x1000) /* Packet Error Checking */ +#define I2C_CTLR1_ALERT ((uint16_t)0x2000) /* SMBus Alert */ +#define I2C_CTLR1_SWRST ((uint16_t)0x8000) /* Software Reset */ + +/******************* Bit definition for I2C_CTLR2 register ********************/ +#define I2C_CTLR2_FREQ ((uint16_t)0x003F) /* FREQ[5:0] bits (Peripheral Clock Frequency) */ +#define I2C_CTLR2_FREQ_0 ((uint16_t)0x0001) /* Bit 0 */ +#define I2C_CTLR2_FREQ_1 ((uint16_t)0x0002) /* Bit 1 */ +#define I2C_CTLR2_FREQ_2 ((uint16_t)0x0004) /* Bit 2 */ +#define I2C_CTLR2_FREQ_3 ((uint16_t)0x0008) /* Bit 3 */ +#define I2C_CTLR2_FREQ_4 ((uint16_t)0x0010) /* Bit 4 */ +#define I2C_CTLR2_FREQ_5 ((uint16_t)0x0020) /* Bit 5 */ + +#define I2C_CTLR2_ITERREN ((uint16_t)0x0100) /* Error Interrupt Enable */ +#define I2C_CTLR2_ITEVTEN ((uint16_t)0x0200) /* Event Interrupt Enable */ +#define I2C_CTLR2_ITBUFEN ((uint16_t)0x0400) /* Buffer Interrupt Enable */ +#define I2C_CTLR2_DMAEN ((uint16_t)0x0800) /* DMA Requests Enable */ +#define I2C_CTLR2_LAST ((uint16_t)0x1000) /* DMA Last Transfer */ + +/******************* Bit definition for I2C_OADDR1 register *******************/ +#define I2C_OADDR1_ADD1_7 ((uint16_t)0x00FE) /* Interface Address */ +#define I2C_OADDR1_ADD8_9 ((uint16_t)0x0300) /* Interface Address */ + +#define I2C_OADDR1_ADD0 ((uint16_t)0x0001) /* Bit 0 */ +#define I2C_OADDR1_ADD1 ((uint16_t)0x0002) /* Bit 1 */ +#define I2C_OADDR1_ADD2 ((uint16_t)0x0004) /* Bit 2 */ +#define I2C_OADDR1_ADD3 ((uint16_t)0x0008) /* Bit 3 */ +#define I2C_OADDR1_ADD4 ((uint16_t)0x0010) /* Bit 4 */ +#define I2C_OADDR1_ADD5 ((uint16_t)0x0020) /* Bit 5 */ +#define I2C_OADDR1_ADD6 ((uint16_t)0x0040) /* Bit 6 */ +#define I2C_OADDR1_ADD7 ((uint16_t)0x0080) /* Bit 7 */ +#define I2C_OADDR1_ADD8 ((uint16_t)0x0100) /* Bit 8 */ +#define I2C_OADDR1_ADD9 ((uint16_t)0x0200) /* Bit 9 */ + +#define I2C_OADDR1_ADDMODE ((uint16_t)0x8000) /* Addressing Mode (Slave mode) */ + +/******************* Bit definition for I2C_OADDR2 register *******************/ +#define I2C_OADDR2_ENDUAL ((uint8_t)0x01) /* Dual addressing mode enable */ +#define I2C_OADDR2_ADD2 ((uint8_t)0xFE) /* Interface address */ + +/******************** Bit definition for I2C_DATAR register ********************/ +#define I2C_DR_DATAR ((uint8_t)0xFF) /* 8-bit Data Register */ + +/******************* Bit definition for I2C_STAR1 register ********************/ +#define I2C_STAR1_SB ((uint16_t)0x0001) /* Start Bit (Master mode) */ +#define I2C_STAR1_ADDR ((uint16_t)0x0002) /* Address sent (master mode)/matched (slave mode) */ +#define I2C_STAR1_BTF ((uint16_t)0x0004) /* Byte Transfer Finished */ +#define I2C_STAR1_ADD10 ((uint16_t)0x0008) /* 10-bit header sent (Master mode) */ +#define I2C_STAR1_STOPF ((uint16_t)0x0010) /* Stop detection (Slave mode) */ +#define I2C_STAR1_RXNE ((uint16_t)0x0040) /* Data Register not Empty (receivers) */ +#define I2C_STAR1_TXE ((uint16_t)0x0080) /* Data Register Empty (transmitters) */ +#define I2C_STAR1_BERR ((uint16_t)0x0100) /* Bus Error */ +#define I2C_STAR1_ARLO ((uint16_t)0x0200) /* Arbitration Lost (master mode) */ +#define I2C_STAR1_AF ((uint16_t)0x0400) /* Acknowledge Failure */ +#define I2C_STAR1_OVR ((uint16_t)0x0800) /* Overrun/Underrun */ +#define I2C_STAR1_PECERR ((uint16_t)0x1000) /* PEC Error in reception */ +#define I2C_STAR1_TIMEOUT ((uint16_t)0x4000) /* Timeout or Tlow Error */ +#define I2C_STAR1_SMBALERT ((uint16_t)0x8000) /* SMBus Alert */ + +/******************* Bit definition for I2C_STAR2 register ********************/ +#define I2C_STAR2_MSL ((uint16_t)0x0001) /* Master/Slave */ +#define I2C_STAR2_BUSY ((uint16_t)0x0002) /* Bus Busy */ +#define I2C_STAR2_TRA ((uint16_t)0x0004) /* Transmitter/Receiver */ +#define I2C_STAR2_GENCALL ((uint16_t)0x0010) /* General Call Address (Slave mode) */ +#define I2C_STAR2_SMBDEFAULT ((uint16_t)0x0020) /* SMBus Device Default Address (Slave mode) */ +#define I2C_STAR2_SMBHOST ((uint16_t)0x0040) /* SMBus Host Header (Slave mode) */ +#define I2C_STAR2_DUALF ((uint16_t)0x0080) /* Dual Flag (Slave mode) */ +#define I2C_STAR2_PEC ((uint16_t)0xFF00) /* Packet Error Checking Register */ + +/******************* Bit definition for I2C_CKCFGR register ********************/ +#define I2C_CKCFGR_CCR ((uint16_t)0x0FFF) /* Clock Control Register in Fast/Standard mode (Master mode) */ +#define I2C_CKCFGR_DUTY ((uint16_t)0x4000) /* Fast Mode Duty Cycle */ +#define I2C_CKCFGR_FS ((uint16_t)0x8000) /* I2C Master Mode Selection */ + +/****************** Bit definition for I2C_RTR register *******************/ +#define I2C_RTR_TRISE ((uint8_t)0x3F) /* Maximum Rise Time in Fast/Standard mode (Master mode) */ + +/******************************************************************************/ +/* Power Control */ +/******************************************************************************/ + +/******************** Bit definition for PWR_CTLR register ********************/ +#define PWR_CTLR_LPDS ((uint16_t)0x0001) /* Low-Power Deepsleep */ +#define PWR_CTLR_PDDS ((uint16_t)0x0002) /* Power Down Deepsleep */ +#define PWR_CTLR_CWUF ((uint16_t)0x0004) /* Clear Wakeup Flag */ +#define PWR_CTLR_CSBF ((uint16_t)0x0008) /* Clear Standby Flag */ +#define PWR_CTLR_PVDE ((uint16_t)0x0010) /* Power Voltage Detector Enable */ + +#define PWR_CTLR_PLS ((uint16_t)0x00E0) /* PLS[2:0] bits (PVD Level Selection) */ +#define PWR_CTLR_PLS_0 ((uint16_t)0x0020) /* Bit 0 */ +#define PWR_CTLR_PLS_1 ((uint16_t)0x0040) /* Bit 1 */ +#define PWR_CTLR_PLS_2 ((uint16_t)0x0080) /* Bit 2 */ + +#define PWR_CTLR_PLS_2V2 ((uint16_t)0x0000) /* PVD level 2.2V */ +#define PWR_CTLR_PLS_2V3 ((uint16_t)0x0020) /* PVD level 2.3V */ +#define PWR_CTLR_PLS_2V4 ((uint16_t)0x0040) /* PVD level 2.4V */ +#define PWR_CTLR_PLS_2V5 ((uint16_t)0x0060) /* PVD level 2.5V */ +#define PWR_CTLR_PLS_2V6 ((uint16_t)0x0080) /* PVD level 2.6V */ +#define PWR_CTLR_PLS_2V7 ((uint16_t)0x00A0) /* PVD level 2.7V */ +#define PWR_CTLR_PLS_2V8 ((uint16_t)0x00C0) /* PVD level 2.8V */ +#define PWR_CTLR_PLS_2V9 ((uint16_t)0x00E0) /* PVD level 2.9V */ + +#define PWR_CTLR_DBP ((uint16_t)0x0100) /* Disable Backup Domain write protection */ + +/******************* Bit definition for PWR_CSR register ********************/ +#define PWR_CSR_WUF ((uint16_t)0x0001) /* Wakeup Flag */ +#define PWR_CSR_SBF ((uint16_t)0x0002) /* Standby Flag */ +#define PWR_CSR_PVDO ((uint16_t)0x0004) /* PVD Output */ +#define PWR_CSR_EWUP ((uint16_t)0x0100) /* Enable WKUP pin */ + +/******************************************************************************/ +/* Reset and Clock Control */ +/******************************************************************************/ + +/******************** Bit definition for RCC_CTLR register ********************/ +#define RCC_HSION ((uint32_t)0x00000001) /* Internal High Speed clock enable */ +#define RCC_HSIRDY ((uint32_t)0x00000002) /* Internal High Speed clock ready flag */ +#define RCC_HSITRIM ((uint32_t)0x000000F8) /* Internal High Speed clock trimming */ +#define RCC_HSICAL ((uint32_t)0x0000FF00) /* Internal High Speed clock Calibration */ +#define RCC_HSEON ((uint32_t)0x00010000) /* External High Speed clock enable */ +#define RCC_HSERDY ((uint32_t)0x00020000) /* External High Speed clock ready flag */ +#define RCC_HSEBYP ((uint32_t)0x00040000) /* External High Speed clock Bypass */ +#define RCC_CSSON ((uint32_t)0x00080000) /* Clock Security System enable */ +#define RCC_PLLON ((uint32_t)0x01000000) /* PLL enable */ +#define RCC_PLLRDY ((uint32_t)0x02000000) /* PLL clock ready flag */ + +/******************* Bit definition for RCC_CFGR0 register *******************/ +#define RCC_SW ((uint32_t)0x00000003) /* SW[1:0] bits (System clock Switch) */ +#define RCC_SW_0 ((uint32_t)0x00000001) /* Bit 0 */ +#define RCC_SW_1 ((uint32_t)0x00000002) /* Bit 1 */ + +#define RCC_SW_HSI ((uint32_t)0x00000000) /* HSI selected as system clock */ +#define RCC_SW_HSE ((uint32_t)0x00000001) /* HSE selected as system clock */ +#define RCC_SW_PLL ((uint32_t)0x00000002) /* PLL selected as system clock */ + +#define RCC_SWS ((uint32_t)0x0000000C) /* SWS[1:0] bits (System Clock Switch Status) */ +#define RCC_SWS_0 ((uint32_t)0x00000004) /* Bit 0 */ +#define RCC_SWS_1 ((uint32_t)0x00000008) /* Bit 1 */ + +#define RCC_SWS_HSI ((uint32_t)0x00000000) /* HSI oscillator used as system clock */ +#define RCC_SWS_HSE ((uint32_t)0x00000004) /* HSE oscillator used as system clock */ +#define RCC_SWS_PLL ((uint32_t)0x00000008) /* PLL used as system clock */ + +#define RCC_HPRE ((uint32_t)0x000000F0) /* HPRE[3:0] bits (AHB prescaler) */ +#define RCC_HPRE_0 ((uint32_t)0x00000010) /* Bit 0 */ +#define RCC_HPRE_1 ((uint32_t)0x00000020) /* Bit 1 */ +#define RCC_HPRE_2 ((uint32_t)0x00000040) /* Bit 2 */ +#define RCC_HPRE_3 ((uint32_t)0x00000080) /* Bit 3 */ + +#define RCC_HPRE_DIV1 ((uint32_t)0x00000000) /* SYSCLK not divided */ +#define RCC_HPRE_DIV2 ((uint32_t)0x00000080) /* SYSCLK divided by 2 */ +#define RCC_HPRE_DIV4 ((uint32_t)0x00000090) /* SYSCLK divided by 4 */ +#define RCC_HPRE_DIV8 ((uint32_t)0x000000A0) /* SYSCLK divided by 8 */ +#define RCC_HPRE_DIV16 ((uint32_t)0x000000B0) /* SYSCLK divided by 16 */ +#define RCC_HPRE_DIV64 ((uint32_t)0x000000C0) /* SYSCLK divided by 64 */ +#define RCC_HPRE_DIV128 ((uint32_t)0x000000D0) /* SYSCLK divided by 128 */ +#define RCC_HPRE_DIV256 ((uint32_t)0x000000E0) /* SYSCLK divided by 256 */ +#define RCC_HPRE_DIV512 ((uint32_t)0x000000F0) /* SYSCLK divided by 512 */ + +#define RCC_PPRE1 ((uint32_t)0x00000700) /* PRE1[2:0] bits (APB1 prescaler) */ +#define RCC_PPRE1_0 ((uint32_t)0x00000100) /* Bit 0 */ +#define RCC_PPRE1_1 ((uint32_t)0x00000200) /* Bit 1 */ +#define RCC_PPRE1_2 ((uint32_t)0x00000400) /* Bit 2 */ + +#define RCC_PPRE1_DIV1 ((uint32_t)0x00000000) /* HCLK not divided */ +#define RCC_PPRE1_DIV2 ((uint32_t)0x00000400) /* HCLK divided by 2 */ +#define RCC_PPRE1_DIV4 ((uint32_t)0x00000500) /* HCLK divided by 4 */ +#define RCC_PPRE1_DIV8 ((uint32_t)0x00000600) /* HCLK divided by 8 */ +#define RCC_PPRE1_DIV16 ((uint32_t)0x00000700) /* HCLK divided by 16 */ + +#define RCC_PPRE2 ((uint32_t)0x00003800) /* PRE2[2:0] bits (APB2 prescaler) */ +#define RCC_PPRE2_0 ((uint32_t)0x00000800) /* Bit 0 */ +#define RCC_PPRE2_1 ((uint32_t)0x00001000) /* Bit 1 */ +#define RCC_PPRE2_2 ((uint32_t)0x00002000) /* Bit 2 */ + +#define RCC_PPRE2_DIV1 ((uint32_t)0x00000000) /* HCLK not divided */ +#define RCC_PPRE2_DIV2 ((uint32_t)0x00002000) /* HCLK divided by 2 */ +#define RCC_PPRE2_DIV4 ((uint32_t)0x00002800) /* HCLK divided by 4 */ +#define RCC_PPRE2_DIV8 ((uint32_t)0x00003000) /* HCLK divided by 8 */ +#define RCC_PPRE2_DIV16 ((uint32_t)0x00003800) /* HCLK divided by 16 */ + +#define RCC_ADCPRE ((uint32_t)0x0000C000) /* ADCPRE[1:0] bits (ADC prescaler) */ +#define RCC_ADCPRE_0 ((uint32_t)0x00004000) /* Bit 0 */ +#define RCC_ADCPRE_1 ((uint32_t)0x00008000) /* Bit 1 */ + +#define RCC_ADCPRE_DIV2 ((uint32_t)0x00000000) /* PCLK2 divided by 2 */ +#define RCC_ADCPRE_DIV4 ((uint32_t)0x00004000) /* PCLK2 divided by 4 */ +#define RCC_ADCPRE_DIV6 ((uint32_t)0x00008000) /* PCLK2 divided by 6 */ +#define RCC_ADCPRE_DIV8 ((uint32_t)0x0000C000) /* PCLK2 divided by 8 */ + +#define RCC_PLLSRC ((uint32_t)0x00010000) /* PLL entry clock source */ + +#define RCC_PLLXTPRE ((uint32_t)0x00020000) /* HSE divider for PLL entry */ + +#define RCC_PLLMULL ((uint32_t)0x003C0000) /* PLLMUL[3:0] bits (PLL multiplication factor) */ +#define RCC_PLLMULL_0 ((uint32_t)0x00040000) /* Bit 0 */ +#define RCC_PLLMULL_1 ((uint32_t)0x00080000) /* Bit 1 */ +#define RCC_PLLMULL_2 ((uint32_t)0x00100000) /* Bit 2 */ +#define RCC_PLLMULL_3 ((uint32_t)0x00200000) /* Bit 3 */ + +#define RCC_PLLSRC_HSI_Div2 ((uint32_t)0x00000000) /* HSI clock divided by 2 selected as PLL entry clock source */ +#define RCC_PLLSRC_HSE ((uint32_t)0x00010000) /* HSE clock selected as PLL entry clock source */ + +#define RCC_PLLXTPRE_HSE ((uint32_t)0x00000000) /* HSE clock not divided for PLL entry */ +#define RCC_PLLXTPRE_HSE_Div2 ((uint32_t)0x00020000) /* HSE clock divided by 2 for PLL entry */ + +#define RCC_PLLMULL2 ((uint32_t)0x00000000) /* PLL input clock*2 */ +#define RCC_PLLMULL3 ((uint32_t)0x00040000) /* PLL input clock*3 */ +#define RCC_PLLMULL4 ((uint32_t)0x00080000) /* PLL input clock*4 */ +#define RCC_PLLMULL5 ((uint32_t)0x000C0000) /* PLL input clock*5 */ +#define RCC_PLLMULL6 ((uint32_t)0x00100000) /* PLL input clock*6 */ +#define RCC_PLLMULL7 ((uint32_t)0x00140000) /* PLL input clock*7 */ +#define RCC_PLLMULL8 ((uint32_t)0x00180000) /* PLL input clock*8 */ +#define RCC_PLLMULL9 ((uint32_t)0x001C0000) /* PLL input clock*9 */ +#define RCC_PLLMULL10 ((uint32_t)0x00200000) /* PLL input clock10 */ +#define RCC_PLLMULL11 ((uint32_t)0x00240000) /* PLL input clock*11 */ +#define RCC_PLLMULL12 ((uint32_t)0x00280000) /* PLL input clock*12 */ +#define RCC_PLLMULL13 ((uint32_t)0x002C0000) /* PLL input clock*13 */ +#define RCC_PLLMULL14 ((uint32_t)0x00300000) /* PLL input clock*14 */ +#define RCC_PLLMULL15 ((uint32_t)0x00340000) /* PLL input clock*15 */ +#define RCC_PLLMULL16 ((uint32_t)0x00380000) /* PLL input clock*16 */ +#define RCC_USBPRE ((uint32_t)0x00400000) /* USB Device prescaler */ + +#define RCC_CFGR0_MCO ((uint32_t)0x07000000) /* MCO[2:0] bits (Microcontroller Clock Output) */ +#define RCC_MCO_0 ((uint32_t)0x01000000) /* Bit 0 */ +#define RCC_MCO_1 ((uint32_t)0x02000000) /* Bit 1 */ +#define RCC_MCO_2 ((uint32_t)0x04000000) /* Bit 2 */ + +#define RCC_MCO_NOCLOCK ((uint32_t)0x00000000) /* No clock */ +#define RCC_CFGR0_MCO_SYSCLK ((uint32_t)0x04000000) /* System clock selected as MCO source */ +#define RCC_CFGR0_MCO_HSI ((uint32_t)0x05000000) /* HSI clock selected as MCO source */ +#define RCC_CFGR0_MCO_HSE ((uint32_t)0x06000000) /* HSE clock selected as MCO source */ +#define RCC_CFGR0_MCO_PLL ((uint32_t)0x07000000) /* PLL clock divided by 2 selected as MCO source */ + +/******************* Bit definition for RCC_INTR register ********************/ +#define RCC_LSIRDYF ((uint32_t)0x00000001) /* LSI Ready Interrupt flag */ +#define RCC_LSERDYF ((uint32_t)0x00000002) /* LSE Ready Interrupt flag */ +#define RCC_HSIRDYF ((uint32_t)0x00000004) /* HSI Ready Interrupt flag */ +#define RCC_HSERDYF ((uint32_t)0x00000008) /* HSE Ready Interrupt flag */ +#define RCC_PLLRDYF ((uint32_t)0x00000010) /* PLL Ready Interrupt flag */ +#define RCC_CSSF ((uint32_t)0x00000080) /* Clock Security System Interrupt flag */ +#define RCC_LSIRDYIE ((uint32_t)0x00000100) /* LSI Ready Interrupt Enable */ +#define RCC_LSERDYIE ((uint32_t)0x00000200) /* LSE Ready Interrupt Enable */ +#define RCC_HSIRDYIE ((uint32_t)0x00000400) /* HSI Ready Interrupt Enable */ +#define RCC_HSERDYIE ((uint32_t)0x00000800) /* HSE Ready Interrupt Enable */ +#define RCC_PLLRDYIE ((uint32_t)0x00001000) /* PLL Ready Interrupt Enable */ +#define RCC_LSIRDYC ((uint32_t)0x00010000) /* LSI Ready Interrupt Clear */ +#define RCC_LSERDYC ((uint32_t)0x00020000) /* LSE Ready Interrupt Clear */ +#define RCC_HSIRDYC ((uint32_t)0x00040000) /* HSI Ready Interrupt Clear */ +#define RCC_HSERDYC ((uint32_t)0x00080000) /* HSE Ready Interrupt Clear */ +#define RCC_PLLRDYC ((uint32_t)0x00100000) /* PLL Ready Interrupt Clear */ +#define RCC_CSSC ((uint32_t)0x00800000) /* Clock Security System Interrupt Clear */ + +/***************** Bit definition for RCC_APB2PRSTR register *****************/ +#define RCC_AFIORST ((uint32_t)0x00000001) /* Alternate Function I/O reset */ +#define RCC_IOPARST ((uint32_t)0x00000004) /* I/O port A reset */ +#define RCC_IOPBRST ((uint32_t)0x00000008) /* I/O port B reset */ +#define RCC_IOPCRST ((uint32_t)0x00000010) /* I/O port C reset */ +#define RCC_IOPDRST ((uint32_t)0x00000020) /* I/O port D reset */ +#define RCC_ADC1RST ((uint32_t)0x00000200) /* ADC 1 interface reset */ + +#define RCC_ADC2RST ((uint32_t)0x00000400) /* ADC 2 interface reset */ + +#define RCC_TIM1RST ((uint32_t)0x00000800) /* TIM1 Timer reset */ +#define RCC_SPI1RST ((uint32_t)0x00001000) /* SPI 1 reset */ +#define RCC_USART1RST ((uint32_t)0x00004000) /* USART1 reset */ + +#define RCC_IOPERST ((uint32_t)0x00000040) /* I/O port E reset */ + +/***************** Bit definition for RCC_APB1PRSTR register *****************/ +#define RCC_TIM2RST ((uint32_t)0x00000001) /* Timer 2 reset */ +#define RCC_TIM3RST ((uint32_t)0x00000002) /* Timer 3 reset */ +#define RCC_WWDGRST ((uint32_t)0x00000800) /* Window Watchdog reset */ +#define RCC_USART2RST ((uint32_t)0x00020000) /* USART 2 reset */ +#define RCC_I2C1RST ((uint32_t)0x00200000) /* I2C 1 reset */ + +#define RCC_CAN1RST ((uint32_t)0x02000000) /* CAN1 reset */ + +#define RCC_BKPRST ((uint32_t)0x08000000) /* Backup interface reset */ +#define RCC_PWRRST ((uint32_t)0x10000000) /* Power interface reset */ + +#define RCC_TIM4RST ((uint32_t)0x00000004) /* Timer 4 reset */ +#define RCC_SPI2RST ((uint32_t)0x00004000) /* SPI 2 reset */ +#define RCC_USART3RST ((uint32_t)0x00040000) /* USART 3 reset */ +#define RCC_I2C2RST ((uint32_t)0x00400000) /* I2C 2 reset */ + +#define RCC_USBRST ((uint32_t)0x00800000) /* USB Device reset */ + +/****************** Bit definition for RCC_AHBPCENR register ******************/ +#define RCC_DMA1EN ((uint16_t)0x0001) /* DMA1 clock enable */ +#define RCC_SRAMEN ((uint16_t)0x0004) /* SRAM interface clock enable */ +#define RCC_FLITFEN ((uint16_t)0x0010) /* FLITF clock enable */ +#define RCC_CRCEN ((uint16_t)0x0040) /* CRC clock enable */ +#define RCC_USBHD ((uint16_t)0x1000) + +/****************** Bit definition for RCC_APB2PCENR register *****************/ +#define RCC_AFIOEN ((uint32_t)0x00000001) /* Alternate Function I/O clock enable */ +#define RCC_IOPAEN ((uint32_t)0x00000004) /* I/O port A clock enable */ +#define RCC_IOPBEN ((uint32_t)0x00000008) /* I/O port B clock enable */ +#define RCC_IOPCEN ((uint32_t)0x00000010) /* I/O port C clock enable */ +#define RCC_IOPDEN ((uint32_t)0x00000020) /* I/O port D clock enable */ +#define RCC_ADC1EN ((uint32_t)0x00000200) /* ADC 1 interface clock enable */ + +#define RCC_ADC2EN ((uint32_t)0x00000400) /* ADC 2 interface clock enable */ + +#define RCC_TIM1EN ((uint32_t)0x00000800) /* TIM1 Timer clock enable */ +#define RCC_SPI1EN ((uint32_t)0x00001000) /* SPI 1 clock enable */ +#define RCC_USART1EN ((uint32_t)0x00004000) /* USART1 clock enable */ + +/***************** Bit definition for RCC_APB1PCENR register ******************/ +#define RCC_TIM2EN ((uint32_t)0x00000001) /* Timer 2 clock enabled*/ +#define RCC_TIM3EN ((uint32_t)0x00000002) /* Timer 3 clock enable */ +#define RCC_WWDGEN ((uint32_t)0x00000800) /* Window Watchdog clock enable */ +#define RCC_USART2EN ((uint32_t)0x00020000) /* USART 2 clock enable */ +#define RCC_I2C1EN ((uint32_t)0x00200000) /* I2C 1 clock enable */ + +#define RCC_BKPEN ((uint32_t)0x08000000) /* Backup interface clock enable */ +#define RCC_PWREN ((uint32_t)0x10000000) /* Power interface clock enable */ + +#define RCC_USBEN ((uint32_t)0x00800000) /* USB Device clock enable */ + +/******************* Bit definition for RCC_BDCTLR register *******************/ +#define RCC_LSEON ((uint32_t)0x00000001) /* External Low Speed oscillator enable */ +#define RCC_LSERDY ((uint32_t)0x00000002) /* External Low Speed oscillator Ready */ +#define RCC_LSEBYP ((uint32_t)0x00000004) /* External Low Speed oscillator Bypass */ + +#define RCC_RTCSEL ((uint32_t)0x00000300) /* RTCSEL[1:0] bits (RTC clock source selection) */ +#define RCC_RTCSEL_0 ((uint32_t)0x00000100) /* Bit 0 */ +#define RCC_RTCSEL_1 ((uint32_t)0x00000200) /* Bit 1 */ + +#define RCC_RTCSEL_NOCLOCK ((uint32_t)0x00000000) /* No clock */ +#define RCC_RTCSEL_LSE ((uint32_t)0x00000100) /* LSE oscillator clock used as RTC clock */ +#define RCC_RTCSEL_LSI ((uint32_t)0x00000200) /* LSI oscillator clock used as RTC clock */ +#define RCC_RTCSEL_HSE ((uint32_t)0x00000300) /* HSE oscillator clock divided by 128 used as RTC clock */ + +#define RCC_RTCEN ((uint32_t)0x00008000) /* RTC clock enable */ +#define RCC_BDRST ((uint32_t)0x00010000) /* Backup domain software reset */ + +/******************* Bit definition for RCC_RSTSCKR register ********************/ +#define RCC_LSION ((uint32_t)0x00000001) /* Internal Low Speed oscillator enable */ +#define RCC_LSIRDY ((uint32_t)0x00000002) /* Internal Low Speed oscillator Ready */ +#define RCC_RMVF ((uint32_t)0x01000000) /* Remove reset flag */ +#define RCC_PINRSTF ((uint32_t)0x04000000) /* PIN reset flag */ +#define RCC_PORRSTF ((uint32_t)0x08000000) /* POR/PDR reset flag */ +#define RCC_SFTRSTF ((uint32_t)0x10000000) /* Software Reset flag */ +#define RCC_IWDGRSTF ((uint32_t)0x20000000) /* Independent Watchdog reset flag */ +#define RCC_WWDGRSTF ((uint32_t)0x40000000) /* Window watchdog reset flag */ +#define RCC_LPWRRSTF ((uint32_t)0x80000000) /* Low-Power reset flag */ + +/******************************************************************************/ +/* Real-Time Clock */ +/******************************************************************************/ + +/******************* Bit definition for RTC_CTLRH register ********************/ +#define RTC_CTLRH_SECIE ((uint8_t)0x01) /* Second Interrupt Enable */ +#define RTC_CTLRH_ALRIE ((uint8_t)0x02) /* Alarm Interrupt Enable */ +#define RTC_CTLRH_OWIE ((uint8_t)0x04) /* OverfloW Interrupt Enable */ + +/******************* Bit definition for RTC_CTLRL register ********************/ +#define RTC_CTLRL_SECF ((uint8_t)0x01) /* Second Flag */ +#define RTC_CTLRL_ALRF ((uint8_t)0x02) /* Alarm Flag */ +#define RTC_CTLRL_OWF ((uint8_t)0x04) /* OverfloW Flag */ +#define RTC_CTLRL_RSF ((uint8_t)0x08) /* Registers Synchronized Flag */ +#define RTC_CTLRL_CNF ((uint8_t)0x10) /* Configuration Flag */ +#define RTC_CTLRL_RTOFF ((uint8_t)0x20) /* RTC operation OFF */ + +/******************* Bit definition for RTC_PSCH register *******************/ +#define RTC_PSCH_PRL ((uint16_t)0x000F) /* RTC Prescaler Reload Value High */ + +/******************* Bit definition for RTC_PRLL register *******************/ +#define RTC_PSCL_PRL ((uint16_t)0xFFFF) /* RTC Prescaler Reload Value Low */ + +/******************* Bit definition for RTC_DIVH register *******************/ +#define RTC_DIVH_RTC_DIV ((uint16_t)0x000F) /* RTC Clock Divider High */ + +/******************* Bit definition for RTC_DIVL register *******************/ +#define RTC_DIVL_RTC_DIV ((uint16_t)0xFFFF) /* RTC Clock Divider Low */ + +/******************* Bit definition for RTC_CNTH register *******************/ +#define RTC_CNTH_RTC_CNT ((uint16_t)0xFFFF) /* RTC Counter High */ + +/******************* Bit definition for RTC_CNTL register *******************/ +#define RTC_CNTL_RTC_CNT ((uint16_t)0xFFFF) /* RTC Counter Low */ + +/******************* Bit definition for RTC_ALRMH register *******************/ +#define RTC_ALRMH_RTC_ALRM ((uint16_t)0xFFFF) /* RTC Alarm High */ + +/******************* Bit definition for RTC_ALRML register *******************/ +#define RTC_ALRML_RTC_ALRM ((uint16_t)0xFFFF) /* RTC Alarm Low */ + +/******************************************************************************/ +/* Serial Peripheral Interface */ +/******************************************************************************/ + +/******************* Bit definition for SPI_CTLR1 register ********************/ +#define SPI_CTLR1_CPHA ((uint16_t)0x0001) /* Clock Phase */ +#define SPI_CTLR1_CPOL ((uint16_t)0x0002) /* Clock Polarity */ +#define SPI_CTLR1_MSTR ((uint16_t)0x0004) /* Master Selection */ + +#define SPI_CTLR1_BR ((uint16_t)0x0038) /* BR[2:0] bits (Baud Rate Control) */ +#define SPI_CTLR1_BR_0 ((uint16_t)0x0008) /* Bit 0 */ +#define SPI_CTLR1_BR_1 ((uint16_t)0x0010) /* Bit 1 */ +#define SPI_CTLR1_BR_2 ((uint16_t)0x0020) /* Bit 2 */ + +#define SPI_CTLR1_SPE ((uint16_t)0x0040) /* SPI Enable */ +#define SPI_CTLR1_LSBFIRST ((uint16_t)0x0080) /* Frame Format */ +#define SPI_CTLR1_SSI ((uint16_t)0x0100) /* Internal slave select */ +#define SPI_CTLR1_SSM ((uint16_t)0x0200) /* Software slave management */ +#define SPI_CTLR1_RXONLY ((uint16_t)0x0400) /* Receive only */ +#define SPI_CTLR1_DFF ((uint16_t)0x0800) /* Data Frame Format */ +#define SPI_CTLR1_CRCNEXT ((uint16_t)0x1000) /* Transmit CRC next */ +#define SPI_CTLR1_CRCEN ((uint16_t)0x2000) /* Hardware CRC calculation enable */ +#define SPI_CTLR1_BIDIOE ((uint16_t)0x4000) /* Output enable in bidirectional mode */ +#define SPI_CTLR1_BIDIMODE ((uint16_t)0x8000) /* Bidirectional data mode enable */ + +/******************* Bit definition for SPI_CTLR2 register ********************/ +#define SPI_CTLR2_RXDMAEN ((uint8_t)0x01) /* Rx Buffer DMA Enable */ +#define SPI_CTLR2_TXDMAEN ((uint8_t)0x02) /* Tx Buffer DMA Enable */ +#define SPI_CTLR2_SSOE ((uint8_t)0x04) /* SS Output Enable */ +#define SPI_CTLR2_ERRIE ((uint8_t)0x20) /* Error Interrupt Enable */ +#define SPI_CTLR2_RXNEIE ((uint8_t)0x40) /* RX buffer Not Empty Interrupt Enable */ +#define SPI_CTLR2_TXEIE ((uint8_t)0x80) /* Tx buffer Empty Interrupt Enable */ + +/******************** Bit definition for SPI_STATR register ********************/ +#define SPI_STATR_RXNE ((uint8_t)0x01) /* Receive buffer Not Empty */ +#define SPI_STATR_TXE ((uint8_t)0x02) /* Transmit buffer Empty */ +#define SPI_STATR_CHSIDE ((uint8_t)0x04) /* Channel side */ +#define SPI_STATR_UDR ((uint8_t)0x08) /* Underrun flag */ +#define SPI_STATR_CRCERR ((uint8_t)0x10) /* CRC Error flag */ +#define SPI_STATR_MODF ((uint8_t)0x20) /* Mode fault */ +#define SPI_STATR_OVR ((uint8_t)0x40) /* Overrun flag */ +#define SPI_STATR_BSY ((uint8_t)0x80) /* Busy flag */ + +/******************** Bit definition for SPI_DATAR register ********************/ +#define SPI_DATAR_DR ((uint16_t)0xFFFF) /* Data Register */ + +/******************* Bit definition for SPI_CRCR register ******************/ +#define SPI_CRCR_CRCPOLY ((uint16_t)0xFFFF) /* CRC polynomial register */ + +/****************** Bit definition for SPI_RCRCR register ******************/ +#define SPI_RCRCR_RXCRC ((uint16_t)0xFFFF) /* Rx CRC Register */ + +/****************** Bit definition for SPI_TCRCR register ******************/ +#define SPI_TCRCR_TXCRC ((uint16_t)0xFFFF) /* Tx CRC Register */ + +/****************** Bit definition for SPI_I2SCFGR register *****************/ +#define SPI_I2SCFGR_CHLEN ((uint16_t)0x0001) /* Channel length (number of bits per audio channel) */ + +#define SPI_I2SCFGR_DATLEN ((uint16_t)0x0006) /* DATLEN[1:0] bits (Data length to be transferred) */ +#define SPI_I2SCFGR_DATLEN_0 ((uint16_t)0x0002) /* Bit 0 */ +#define SPI_I2SCFGR_DATLEN_1 ((uint16_t)0x0004) /* Bit 1 */ + +#define SPI_I2SCFGR_CKPOL ((uint16_t)0x0008) /* steady state clock polarity */ + +#define SPI_I2SCFGR_I2SSTD ((uint16_t)0x0030) /* I2SSTD[1:0] bits (I2S standard selection) */ +#define SPI_I2SCFGR_I2SSTD_0 ((uint16_t)0x0010) /* Bit 0 */ +#define SPI_I2SCFGR_I2SSTD_1 ((uint16_t)0x0020) /* Bit 1 */ + +#define SPI_I2SCFGR_PCMSYNC ((uint16_t)0x0080) /* PCM frame synchronization */ + +#define SPI_I2SCFGR_I2SCFG ((uint16_t)0x0300) /* I2SCFG[1:0] bits (I2S configuration mode) */ +#define SPI_I2SCFGR_I2SCFG_0 ((uint16_t)0x0100) /* Bit 0 */ +#define SPI_I2SCFGR_I2SCFG_1 ((uint16_t)0x0200) /* Bit 1 */ + +#define SPI_I2SCFGR_I2SE ((uint16_t)0x0400) /* I2S Enable */ +#define SPI_I2SCFGR_I2SMOD ((uint16_t)0x0800) /* I2S mode selection */ + +/****************** Bit definition for SPI_I2SPR register *******************/ +#define SPI_I2SPR_I2SDIV ((uint16_t)0x00FF) /* I2S Linear prescaler */ +#define SPI_I2SPR_ODD ((uint16_t)0x0100) /* Odd factor for the prescaler */ +#define SPI_I2SPR_MCKOE ((uint16_t)0x0200) /* Master Clock Output Enable */ + +/******************************************************************************/ +/* TIM */ +/******************************************************************************/ + +/******************* Bit definition for TIM_CTLR1 register ********************/ +#define TIM_CEN ((uint16_t)0x0001) /* Counter enable */ +#define TIM_UDIS ((uint16_t)0x0002) /* Update disable */ +#define TIM_URS ((uint16_t)0x0004) /* Update request source */ +#define TIM_OPM ((uint16_t)0x0008) /* One pulse mode */ +#define TIM_DIR ((uint16_t)0x0010) /* Direction */ + +#define TIM_CMS ((uint16_t)0x0060) /* CMS[1:0] bits (Center-aligned mode selection) */ +#define TIM_CMS_0 ((uint16_t)0x0020) /* Bit 0 */ +#define TIM_CMS_1 ((uint16_t)0x0040) /* Bit 1 */ + +#define TIM_ARPE ((uint16_t)0x0080) /* Auto-reload preload enable */ + +#define TIM_CTLR1_CKD ((uint16_t)0x0300) /* CKD[1:0] bits (clock division) */ +#define TIM_CKD_0 ((uint16_t)0x0100) /* Bit 0 */ +#define TIM_CKD_1 ((uint16_t)0x0200) /* Bit 1 */ + +/******************* Bit definition for TIM_CTLR2 register ********************/ +#define TIM_CCPC ((uint16_t)0x0001) /* Capture/Compare Preloaded Control */ +#define TIM_CCUS ((uint16_t)0x0004) /* Capture/Compare Control Update Selection */ +#define TIM_CCDS ((uint16_t)0x0008) /* Capture/Compare DMA Selection */ + +#define TIM_MMS ((uint16_t)0x0070) /* MMS[2:0] bits (Master Mode Selection) */ +#define TIM_MMS_0 ((uint16_t)0x0010) /* Bit 0 */ +#define TIM_MMS_1 ((uint16_t)0x0020) /* Bit 1 */ +#define TIM_MMS_2 ((uint16_t)0x0040) /* Bit 2 */ + +#define TIM_TI1S ((uint16_t)0x0080) /* TI1 Selection */ +#define TIM_OIS1 ((uint16_t)0x0100) /* Output Idle state 1 (OC1 output) */ +#define TIM_OIS1N ((uint16_t)0x0200) /* Output Idle state 1 (OC1N output) */ +#define TIM_OIS2 ((uint16_t)0x0400) /* Output Idle state 2 (OC2 output) */ +#define TIM_OIS2N ((uint16_t)0x0800) /* Output Idle state 2 (OC2N output) */ +#define TIM_OIS3 ((uint16_t)0x1000) /* Output Idle state 3 (OC3 output) */ +#define TIM_OIS3N ((uint16_t)0x2000) /* Output Idle state 3 (OC3N output) */ +#define TIM_OIS4 ((uint16_t)0x4000) /* Output Idle state 4 (OC4 output) */ + +/******************* Bit definition for TIM_SMCFGR register *******************/ +#define TIM_SMS ((uint16_t)0x0007) /* SMS[2:0] bits (Slave mode selection) */ +#define TIM_SMS_0 ((uint16_t)0x0001) /* Bit 0 */ +#define TIM_SMS_1 ((uint16_t)0x0002) /* Bit 1 */ +#define TIM_SMS_2 ((uint16_t)0x0004) /* Bit 2 */ + +#define TIM_TS ((uint16_t)0x0070) /* TS[2:0] bits (Trigger selection) */ +#define TIM_TS_0 ((uint16_t)0x0010) /* Bit 0 */ +#define TIM_TS_1 ((uint16_t)0x0020) /* Bit 1 */ +#define TIM_TS_2 ((uint16_t)0x0040) /* Bit 2 */ + +#define TIM_MSM ((uint16_t)0x0080) /* Master/slave mode */ + +#define TIM_ETF ((uint16_t)0x0F00) /* ETF[3:0] bits (External trigger filter) */ +#define TIM_ETF_0 ((uint16_t)0x0100) /* Bit 0 */ +#define TIM_ETF_1 ((uint16_t)0x0200) /* Bit 1 */ +#define TIM_ETF_2 ((uint16_t)0x0400) /* Bit 2 */ +#define TIM_ETF_3 ((uint16_t)0x0800) /* Bit 3 */ + +#define TIM_ETPS ((uint16_t)0x3000) /* ETPS[1:0] bits (External trigger prescaler) */ +#define TIM_ETPS_0 ((uint16_t)0x1000) /* Bit 0 */ +#define TIM_ETPS_1 ((uint16_t)0x2000) /* Bit 1 */ + +#define TIM_ECE ((uint16_t)0x4000) /* External clock enable */ +#define TIM_ETP ((uint16_t)0x8000) /* External trigger polarity */ + +/******************* Bit definition for TIM_DMAINTENR register *******************/ +#define TIM_UIE ((uint16_t)0x0001) /* Update interrupt enable */ +#define TIM_CC1IE ((uint16_t)0x0002) /* Capture/Compare 1 interrupt enable */ +#define TIM_CC2IE ((uint16_t)0x0004) /* Capture/Compare 2 interrupt enable */ +#define TIM_CC3IE ((uint16_t)0x0008) /* Capture/Compare 3 interrupt enable */ +#define TIM_CC4IE ((uint16_t)0x0010) /* Capture/Compare 4 interrupt enable */ +#define TIM_COMIE ((uint16_t)0x0020) /* COM interrupt enable */ +#define TIM_TIE ((uint16_t)0x0040) /* Trigger interrupt enable */ +#define TIM_BIE ((uint16_t)0x0080) /* Break interrupt enable */ +#define TIM_UDE ((uint16_t)0x0100) /* Update DMA request enable */ +#define TIM_CC1DE ((uint16_t)0x0200) /* Capture/Compare 1 DMA request enable */ +#define TIM_CC2DE ((uint16_t)0x0400) /* Capture/Compare 2 DMA request enable */ +#define TIM_CC3DE ((uint16_t)0x0800) /* Capture/Compare 3 DMA request enable */ +#define TIM_CC4DE ((uint16_t)0x1000) /* Capture/Compare 4 DMA request enable */ +#define TIM_COMDE ((uint16_t)0x2000) /* COM DMA request enable */ +#define TIM_TDE ((uint16_t)0x4000) /* Trigger DMA request enable */ + +/******************** Bit definition for TIM_INTFR register ********************/ +#define TIM_UIF ((uint16_t)0x0001) /* Update interrupt Flag */ +#define TIM_CC1IF ((uint16_t)0x0002) /* Capture/Compare 1 interrupt Flag */ +#define TIM_CC2IF ((uint16_t)0x0004) /* Capture/Compare 2 interrupt Flag */ +#define TIM_CC3IF ((uint16_t)0x0008) /* Capture/Compare 3 interrupt Flag */ +#define TIM_CC4IF ((uint16_t)0x0010) /* Capture/Compare 4 interrupt Flag */ +#define TIM_COMIF ((uint16_t)0x0020) /* COM interrupt Flag */ +#define TIM_TIF ((uint16_t)0x0040) /* Trigger interrupt Flag */ +#define TIM_BIF ((uint16_t)0x0080) /* Break interrupt Flag */ +#define TIM_CC1OF ((uint16_t)0x0200) /* Capture/Compare 1 Overcapture Flag */ +#define TIM_CC2OF ((uint16_t)0x0400) /* Capture/Compare 2 Overcapture Flag */ +#define TIM_CC3OF ((uint16_t)0x0800) /* Capture/Compare 3 Overcapture Flag */ +#define TIM_CC4OF ((uint16_t)0x1000) /* Capture/Compare 4 Overcapture Flag */ + +/******************* Bit definition for TIM_SWEVGR register ********************/ +#define TIM_UG ((uint8_t)0x01) /* Update Generation */ +#define TIM_CC1G ((uint8_t)0x02) /* Capture/Compare 1 Generation */ +#define TIM_CC2G ((uint8_t)0x04) /* Capture/Compare 2 Generation */ +#define TIM_CC3G ((uint8_t)0x08) /* Capture/Compare 3 Generation */ +#define TIM_CC4G ((uint8_t)0x10) /* Capture/Compare 4 Generation */ +#define TIM_COMG ((uint8_t)0x20) /* Capture/Compare Control Update Generation */ +#define TIM_TG ((uint8_t)0x40) /* Trigger Generation */ +#define TIM_BG ((uint8_t)0x80) /* Break Generation */ + +/****************** Bit definition for TIM_CHCTLR1 register *******************/ +#define TIM_CC1S ((uint16_t)0x0003) /* CC1S[1:0] bits (Capture/Compare 1 Selection) */ +#define TIM_CC1S_0 ((uint16_t)0x0001) /* Bit 0 */ +#define TIM_CC1S_1 ((uint16_t)0x0002) /* Bit 1 */ + +#define TIM_OC1FE ((uint16_t)0x0004) /* Output Compare 1 Fast enable */ +#define TIM_OC1PE ((uint16_t)0x0008) /* Output Compare 1 Preload enable */ + +#define TIM_OC1M ((uint16_t)0x0070) /* OC1M[2:0] bits (Output Compare 1 Mode) */ +#define TIM_OC1M_0 ((uint16_t)0x0010) /* Bit 0 */ +#define TIM_OC1M_1 ((uint16_t)0x0020) /* Bit 1 */ +#define TIM_OC1M_2 ((uint16_t)0x0040) /* Bit 2 */ + +#define TIM_OC1CE ((uint16_t)0x0080) /* Output Compare 1Clear Enable */ + +#define TIM_CC2S ((uint16_t)0x0300) /* CC2S[1:0] bits (Capture/Compare 2 Selection) */ +#define TIM_CC2S_0 ((uint16_t)0x0100) /* Bit 0 */ +#define TIM_CC2S_1 ((uint16_t)0x0200) /* Bit 1 */ + +#define TIM_OC2FE ((uint16_t)0x0400) /* Output Compare 2 Fast enable */ +#define TIM_OC2PE ((uint16_t)0x0800) /* Output Compare 2 Preload enable */ + +#define TIM_OC2M ((uint16_t)0x7000) /* OC2M[2:0] bits (Output Compare 2 Mode) */ +#define TIM_OC2M_0 ((uint16_t)0x1000) /* Bit 0 */ +#define TIM_OC2M_1 ((uint16_t)0x2000) /* Bit 1 */ +#define TIM_OC2M_2 ((uint16_t)0x4000) /* Bit 2 */ + +#define TIM_OC2CE ((uint16_t)0x8000) /* Output Compare 2 Clear Enable */ + +#define TIM_IC1PSC ((uint16_t)0x000C) /* IC1PSC[1:0] bits (Input Capture 1 Prescaler) */ +#define TIM_IC1PSC_0 ((uint16_t)0x0004) /* Bit 0 */ +#define TIM_IC1PSC_1 ((uint16_t)0x0008) /* Bit 1 */ + +#define TIM_IC1F ((uint16_t)0x00F0) /* IC1F[3:0] bits (Input Capture 1 Filter) */ +#define TIM_IC1F_0 ((uint16_t)0x0010) /* Bit 0 */ +#define TIM_IC1F_1 ((uint16_t)0x0020) /* Bit 1 */ +#define TIM_IC1F_2 ((uint16_t)0x0040) /* Bit 2 */ +#define TIM_IC1F_3 ((uint16_t)0x0080) /* Bit 3 */ + +#define TIM_IC2PSC ((uint16_t)0x0C00) /* IC2PSC[1:0] bits (Input Capture 2 Prescaler) */ +#define TIM_IC2PSC_0 ((uint16_t)0x0400) /* Bit 0 */ +#define TIM_IC2PSC_1 ((uint16_t)0x0800) /* Bit 1 */ + +#define TIM_IC2F ((uint16_t)0xF000) /* IC2F[3:0] bits (Input Capture 2 Filter) */ +#define TIM_IC2F_0 ((uint16_t)0x1000) /* Bit 0 */ +#define TIM_IC2F_1 ((uint16_t)0x2000) /* Bit 1 */ +#define TIM_IC2F_2 ((uint16_t)0x4000) /* Bit 2 */ +#define TIM_IC2F_3 ((uint16_t)0x8000) /* Bit 3 */ + +/****************** Bit definition for TIM_CHCTLR2 register *******************/ +#define TIM_CC3S ((uint16_t)0x0003) /* CC3S[1:0] bits (Capture/Compare 3 Selection) */ +#define TIM_CC3S_0 ((uint16_t)0x0001) /* Bit 0 */ +#define TIM_CC3S_1 ((uint16_t)0x0002) /* Bit 1 */ + +#define TIM_OC3FE ((uint16_t)0x0004) /* Output Compare 3 Fast enable */ +#define TIM_OC3PE ((uint16_t)0x0008) /* Output Compare 3 Preload enable */ + +#define TIM_OC3M ((uint16_t)0x0070) /* OC3M[2:0] bits (Output Compare 3 Mode) */ +#define TIM_OC3M_0 ((uint16_t)0x0010) /* Bit 0 */ +#define TIM_OC3M_1 ((uint16_t)0x0020) /* Bit 1 */ +#define TIM_OC3M_2 ((uint16_t)0x0040) /* Bit 2 */ + +#define TIM_OC3CE ((uint16_t)0x0080) /* Output Compare 3 Clear Enable */ + +#define TIM_CC4S ((uint16_t)0x0300) /* CC4S[1:0] bits (Capture/Compare 4 Selection) */ +#define TIM_CC4S_0 ((uint16_t)0x0100) /* Bit 0 */ +#define TIM_CC4S_1 ((uint16_t)0x0200) /* Bit 1 */ + +#define TIM_OC4FE ((uint16_t)0x0400) /* Output Compare 4 Fast enable */ +#define TIM_OC4PE ((uint16_t)0x0800) /* Output Compare 4 Preload enable */ + +#define TIM_OC4M ((uint16_t)0x7000) /* OC4M[2:0] bits (Output Compare 4 Mode) */ +#define TIM_OC4M_0 ((uint16_t)0x1000) /* Bit 0 */ +#define TIM_OC4M_1 ((uint16_t)0x2000) /* Bit 1 */ +#define TIM_OC4M_2 ((uint16_t)0x4000) /* Bit 2 */ + +#define TIM_OC4CE ((uint16_t)0x8000) /* Output Compare 4 Clear Enable */ + +#define TIM_IC3PSC ((uint16_t)0x000C) /* IC3PSC[1:0] bits (Input Capture 3 Prescaler) */ +#define TIM_IC3PSC_0 ((uint16_t)0x0004) /* Bit 0 */ +#define TIM_IC3PSC_1 ((uint16_t)0x0008) /* Bit 1 */ + +#define TIM_IC3F ((uint16_t)0x00F0) /* IC3F[3:0] bits (Input Capture 3 Filter) */ +#define TIM_IC3F_0 ((uint16_t)0x0010) /* Bit 0 */ +#define TIM_IC3F_1 ((uint16_t)0x0020) /* Bit 1 */ +#define TIM_IC3F_2 ((uint16_t)0x0040) /* Bit 2 */ +#define TIM_IC3F_3 ((uint16_t)0x0080) /* Bit 3 */ + +#define TIM_IC4PSC ((uint16_t)0x0C00) /* IC4PSC[1:0] bits (Input Capture 4 Prescaler) */ +#define TIM_IC4PSC_0 ((uint16_t)0x0400) /* Bit 0 */ +#define TIM_IC4PSC_1 ((uint16_t)0x0800) /* Bit 1 */ + +#define TIM_IC4F ((uint16_t)0xF000) /* IC4F[3:0] bits (Input Capture 4 Filter) */ +#define TIM_IC4F_0 ((uint16_t)0x1000) /* Bit 0 */ +#define TIM_IC4F_1 ((uint16_t)0x2000) /* Bit 1 */ +#define TIM_IC4F_2 ((uint16_t)0x4000) /* Bit 2 */ +#define TIM_IC4F_3 ((uint16_t)0x8000) /* Bit 3 */ + +/******************* Bit definition for TIM_CCER register *******************/ +#define TIM_CC1E ((uint16_t)0x0001) /* Capture/Compare 1 output enable */ +#define TIM_CC1P ((uint16_t)0x0002) /* Capture/Compare 1 output Polarity */ +#define TIM_CC1NE ((uint16_t)0x0004) /* Capture/Compare 1 Complementary output enable */ +#define TIM_CC1NP ((uint16_t)0x0008) /* Capture/Compare 1 Complementary output Polarity */ +#define TIM_CC2E ((uint16_t)0x0010) /* Capture/Compare 2 output enable */ +#define TIM_CC2P ((uint16_t)0x0020) /* Capture/Compare 2 output Polarity */ +#define TIM_CC2NE ((uint16_t)0x0040) /* Capture/Compare 2 Complementary output enable */ +#define TIM_CC2NP ((uint16_t)0x0080) /* Capture/Compare 2 Complementary output Polarity */ +#define TIM_CC3E ((uint16_t)0x0100) /* Capture/Compare 3 output enable */ +#define TIM_CC3P ((uint16_t)0x0200) /* Capture/Compare 3 output Polarity */ +#define TIM_CC3NE ((uint16_t)0x0400) /* Capture/Compare 3 Complementary output enable */ +#define TIM_CC3NP ((uint16_t)0x0800) /* Capture/Compare 3 Complementary output Polarity */ +#define TIM_CC4E ((uint16_t)0x1000) /* Capture/Compare 4 output enable */ +#define TIM_CC4P ((uint16_t)0x2000) /* Capture/Compare 4 output Polarity */ +#define TIM_CC4NP ((uint16_t)0x8000) /* Capture/Compare 4 Complementary output Polarity */ + +/******************* Bit definition for TIM_CNT register ********************/ +#define TIM_CNT ((uint16_t)0xFFFF) /* Counter Value */ + +/******************* Bit definition for TIM_PSC register ********************/ +#define TIM_PSC ((uint16_t)0xFFFF) /* Prescaler Value */ + +/******************* Bit definition for TIM_ATRLR register ********************/ +#define TIM_ARR ((uint16_t)0xFFFF) /* actual auto-reload Value */ + +/******************* Bit definition for TIM_RPTCR register ********************/ +#define TIM_REP ((uint8_t)0xFF) /* Repetition Counter Value */ + +/******************* Bit definition for TIM_CH1CVR register *******************/ +#define TIM_CCR1 ((uint16_t)0xFFFF) /* Capture/Compare 1 Value */ + +/******************* Bit definition for TIM_CH2CVR register *******************/ +#define TIM_CCR2 ((uint16_t)0xFFFF) /* Capture/Compare 2 Value */ + +/******************* Bit definition for TIM_CH3CVR register *******************/ +#define TIM_CCR3 ((uint16_t)0xFFFF) /* Capture/Compare 3 Value */ + +/******************* Bit definition for TIM_CH4CVR register *******************/ +#define TIM_CCR4 ((uint16_t)0xFFFF) /* Capture/Compare 4 Value */ + +/******************* Bit definition for TIM_BDTR register *******************/ +#define TIM_DTG ((uint16_t)0x00FF) /* DTG[0:7] bits (Dead-Time Generator set-up) */ +#define TIM_DTG_0 ((uint16_t)0x0001) /* Bit 0 */ +#define TIM_DTG_1 ((uint16_t)0x0002) /* Bit 1 */ +#define TIM_DTG_2 ((uint16_t)0x0004) /* Bit 2 */ +#define TIM_DTG_3 ((uint16_t)0x0008) /* Bit 3 */ +#define TIM_DTG_4 ((uint16_t)0x0010) /* Bit 4 */ +#define TIM_DTG_5 ((uint16_t)0x0020) /* Bit 5 */ +#define TIM_DTG_6 ((uint16_t)0x0040) /* Bit 6 */ +#define TIM_DTG_7 ((uint16_t)0x0080) /* Bit 7 */ + +#define TIM_LOCK ((uint16_t)0x0300) /* LOCK[1:0] bits (Lock Configuration) */ +#define TIM_LOCK_0 ((uint16_t)0x0100) /* Bit 0 */ +#define TIM_LOCK_1 ((uint16_t)0x0200) /* Bit 1 */ + +#define TIM_OSSI ((uint16_t)0x0400) /* Off-State Selection for Idle mode */ +#define TIM_OSSR ((uint16_t)0x0800) /* Off-State Selection for Run mode */ +#define TIM_BKE ((uint16_t)0x1000) /* Break enable */ +#define TIM_BKP ((uint16_t)0x2000) /* Break Polarity */ +#define TIM_AOE ((uint16_t)0x4000) /* Automatic Output enable */ +#define TIM_MOE ((uint16_t)0x8000) /* Main Output enable */ + +/******************* Bit definition for TIM_DMACFGR register ********************/ +#define TIM_DBA ((uint16_t)0x001F) /* DBA[4:0] bits (DMA Base Address) */ +#define TIM_DBA_0 ((uint16_t)0x0001) /* Bit 0 */ +#define TIM_DBA_1 ((uint16_t)0x0002) /* Bit 1 */ +#define TIM_DBA_2 ((uint16_t)0x0004) /* Bit 2 */ +#define TIM_DBA_3 ((uint16_t)0x0008) /* Bit 3 */ +#define TIM_DBA_4 ((uint16_t)0x0010) /* Bit 4 */ + +#define TIM_DBL ((uint16_t)0x1F00) /* DBL[4:0] bits (DMA Burst Length) */ +#define TIM_DBL_0 ((uint16_t)0x0100) /* Bit 0 */ +#define TIM_DBL_1 ((uint16_t)0x0200) /* Bit 1 */ +#define TIM_DBL_2 ((uint16_t)0x0400) /* Bit 2 */ +#define TIM_DBL_3 ((uint16_t)0x0800) /* Bit 3 */ +#define TIM_DBL_4 ((uint16_t)0x1000) /* Bit 4 */ + +/******************* Bit definition for TIM_DMAADR register *******************/ +#define TIM_DMAR_DMAB ((uint16_t)0xFFFF) /* DMA register for burst accesses */ + +/******************************************************************************/ +/* Universal Synchronous Asynchronous Receiver Transmitter */ +/******************************************************************************/ + +/******************* Bit definition for USART_STATR register *******************/ +#define USART_STATR_PE ((uint16_t)0x0001) /* Parity Error */ +#define USART_STATR_FE ((uint16_t)0x0002) /* Framing Error */ +#define USART_STATR_NE ((uint16_t)0x0004) /* Noise Error Flag */ +#define USART_STATR_ORE ((uint16_t)0x0008) /* OverRun Error */ +#define USART_STATR_IDLE ((uint16_t)0x0010) /* IDLE line detected */ +#define USART_STATR_RXNE ((uint16_t)0x0020) /* Read Data Register Not Empty */ +#define USART_STATR_TC ((uint16_t)0x0040) /* Transmission Complete */ +#define USART_STATR_TXE ((uint16_t)0x0080) /* Transmit Data Register Empty */ +#define USART_STATR_LBD ((uint16_t)0x0100) /* LIN Break Detection Flag */ +#define USART_STATR_CTS ((uint16_t)0x0200) /* CTS Flag */ + +/******************* Bit definition for USART_DATAR register *******************/ +#define USART_DATAR_DR ((uint16_t)0x01FF) /* Data value */ + +/****************** Bit definition for USART_BRR register *******************/ +#define USART_BRR_DIV_Fraction ((uint16_t)0x000F) /* Fraction of USARTDIV */ +#define USART_BRR_DIV_Mantissa ((uint16_t)0xFFF0) /* Mantissa of USARTDIV */ + +/****************** Bit definition for USART_CTLR1 register *******************/ +#define USART_CTLR1_SBK ((uint16_t)0x0001) /* Send Break */ +#define USART_CTLR1_RWU ((uint16_t)0x0002) /* Receiver wakeup */ +#define USART_CTLR1_RE ((uint16_t)0x0004) /* Receiver Enable */ +#define USART_CTLR1_TE ((uint16_t)0x0008) /* Transmitter Enable */ +#define USART_CTLR1_IDLEIE ((uint16_t)0x0010) /* IDLE Interrupt Enable */ +#define USART_CTLR1_RXNEIE ((uint16_t)0x0020) /* RXNE Interrupt Enable */ +#define USART_CTLR1_TCIE ((uint16_t)0x0040) /* Transmission Complete Interrupt Enable */ +#define USART_CTLR1_TXEIE ((uint16_t)0x0080) /* PE Interrupt Enable */ +#define USART_CTLR1_PEIE ((uint16_t)0x0100) /* PE Interrupt Enable */ +#define USART_CTLR1_PS ((uint16_t)0x0200) /* Parity Selection */ +#define USART_CTLR1_PCE ((uint16_t)0x0400) /* Parity Control Enable */ +#define USART_CTLR1_WAKE ((uint16_t)0x0800) /* Wakeup method */ +#define USART_CTLR1_M ((uint16_t)0x1000) /* Word length */ +#define USART_CTLR1_UE ((uint16_t)0x2000) /* USART Enable */ +#define USART_CTLR1_OVER8 ((uint16_t)0x8000) /* USART Oversmapling 8-bits */ + +/****************** Bit definition for USART_CTLR2 register *******************/ +#define USART_CTLR2_ADD ((uint16_t)0x000F) /* Address of the USART node */ +#define USART_CTLR2_LBDL ((uint16_t)0x0020) /* LIN Break Detection Length */ +#define USART_CTLR2_LBDIE ((uint16_t)0x0040) /* LIN Break Detection Interrupt Enable */ +#define USART_CTLR2_LBCL ((uint16_t)0x0100) /* Last Bit Clock pulse */ +#define USART_CTLR2_CPHA ((uint16_t)0x0200) /* Clock Phase */ +#define USART_CTLR2_CPOL ((uint16_t)0x0400) /* Clock Polarity */ +#define USART_CTLR2_CLKEN ((uint16_t)0x0800) /* Clock Enable */ + +#define USART_CTLR2_STOP ((uint16_t)0x3000) /* STOP[1:0] bits (STOP bits) */ +#define USART_CTLR2_STOP_0 ((uint16_t)0x1000) /* Bit 0 */ +#define USART_CTLR2_STOP_1 ((uint16_t)0x2000) /* Bit 1 */ + +#define USART_CTLR2_LINEN ((uint16_t)0x4000) /* LIN mode enable */ + +/****************** Bit definition for USART_CTLR3 register *******************/ +#define USART_CTLR3_EIE ((uint16_t)0x0001) /* Error Interrupt Enable */ +#define USART_CTLR3_IREN ((uint16_t)0x0002) /* IrDA mode Enable */ +#define USART_CTLR3_IRLP ((uint16_t)0x0004) /* IrDA Low-Power */ +#define USART_CTLR3_HDSEL ((uint16_t)0x0008) /* Half-Duplex Selection */ +#define USART_CTLR3_NACK ((uint16_t)0x0010) /* Smartcard NACK enable */ +#define USART_CTLR3_SCEN ((uint16_t)0x0020) /* Smartcard mode enable */ +#define USART_CTLR3_DMAR ((uint16_t)0x0040) /* DMA Enable Receiver */ +#define USART_CTLR3_DMAT ((uint16_t)0x0080) /* DMA Enable Transmitter */ +#define USART_CTLR3_RTSE ((uint16_t)0x0100) /* RTS Enable */ +#define USART_CTLR3_CTSE ((uint16_t)0x0200) /* CTS Enable */ +#define USART_CTLR3_CTSIE ((uint16_t)0x0400) /* CTS Interrupt Enable */ +#define USART_CTLR3_ONEBIT ((uint16_t)0x0800) /* One Bit method */ + +/****************** Bit definition for USART_GPR register ******************/ +#define USART_GPR_PSC ((uint16_t)0x00FF) /* PSC[7:0] bits (Prescaler value) */ +#define USART_GPR_PSC_0 ((uint16_t)0x0001) /* Bit 0 */ +#define USART_GPR_PSC_1 ((uint16_t)0x0002) /* Bit 1 */ +#define USART_GPR_PSC_2 ((uint16_t)0x0004) /* Bit 2 */ +#define USART_GPR_PSC_3 ((uint16_t)0x0008) /* Bit 3 */ +#define USART_GPR_PSC_4 ((uint16_t)0x0010) /* Bit 4 */ +#define USART_GPR_PSC_5 ((uint16_t)0x0020) /* Bit 5 */ +#define USART_GPR_PSC_6 ((uint16_t)0x0040) /* Bit 6 */ +#define USART_GPR_PSC_7 ((uint16_t)0x0080) /* Bit 7 */ + +#define USART_GPR_GT ((uint16_t)0xFF00) /* Guard time value */ + +/******************************************************************************/ +/* Window WATCHDOG */ +/******************************************************************************/ + +/******************* Bit definition for WWDG_CTLR register ********************/ +#define WWDG_CTLR_T ((uint8_t)0x7F) /* T[6:0] bits (7-Bit counter (MSB to LSB)) */ +#define WWDG_CTLR_T0 ((uint8_t)0x01) /* Bit 0 */ +#define WWDG_CTLR_T1 ((uint8_t)0x02) /* Bit 1 */ +#define WWDG_CTLR_T2 ((uint8_t)0x04) /* Bit 2 */ +#define WWDG_CTLR_T3 ((uint8_t)0x08) /* Bit 3 */ +#define WWDG_CTLR_T4 ((uint8_t)0x10) /* Bit 4 */ +#define WWDG_CTLR_T5 ((uint8_t)0x20) /* Bit 5 */ +#define WWDG_CTLR_T6 ((uint8_t)0x40) /* Bit 6 */ + +#define WWDG_CTLR_WDGA ((uint8_t)0x80) /* Activation bit */ + +/******************* Bit definition for WWDG_CFGR register *******************/ +#define WWDG_CFGR_W ((uint16_t)0x007F) /* W[6:0] bits (7-bit window value) */ +#define WWDG_CFGR_W0 ((uint16_t)0x0001) /* Bit 0 */ +#define WWDG_CFGR_W1 ((uint16_t)0x0002) /* Bit 1 */ +#define WWDG_CFGR_W2 ((uint16_t)0x0004) /* Bit 2 */ +#define WWDG_CFGR_W3 ((uint16_t)0x0008) /* Bit 3 */ +#define WWDG_CFGR_W4 ((uint16_t)0x0010) /* Bit 4 */ +#define WWDG_CFGR_W5 ((uint16_t)0x0020) /* Bit 5 */ +#define WWDG_CFGR_W6 ((uint16_t)0x0040) /* Bit 6 */ + +#define WWDG_CFGR_WDGTB ((uint16_t)0x0180) /* WDGTB[1:0] bits (Timer Base) */ +#define WWDG_CFGR_WDGTB0 ((uint16_t)0x0080) /* Bit 0 */ +#define WWDG_CFGR_WDGTB1 ((uint16_t)0x0100) /* Bit 1 */ + +#define WWDG_CFGR_EWI ((uint16_t)0x0200) /* Early Wakeup Interrupt */ + +/******************* Bit definition for WWDG_STATR register ********************/ +#define WWDG_STATR_EWIF ((uint8_t)0x01) /* Early Wakeup Interrupt Flag */ + +/******************************************************************************/ +/* ENHANCED FUNNCTION */ +/******************************************************************************/ + +/**************************** Enhanced register *****************************/ +#define EXTEN_USBD_LS ((uint32_t)0x00000001) /* Bit 0 */ +#define EXTEN_USBD_PU_EN ((uint32_t)0x00000002) /* Bit 1 */ +#define EXTEN_USBHD_IO_EN ((uint32_t)0x00000004) /* Bit 2 */ +#define EXTEN_USB_5V_SEL ((uint32_t)0x00000008) /* Bit 3 */ +#define EXTEN_PLL_HSI_PRE ((uint32_t)0x00000010) /* Bit 4 */ +#define EXTEN_LOCKUP_EN ((uint32_t)0x00000040) /* Bit 5 */ +#define EXTEN_LOCKUP_RSTF ((uint32_t)0x00000080) /* Bit 7 */ + +#define EXTEN_ULLDO_TRIM ((uint32_t)0x00000300) /* ULLDO_TRIM[1:0] bits */ +#define EXTEN_ULLDO_TRIM0 ((uint32_t)0x00000100) /* Bit 0 */ +#define EXTEN_ULLDO_TRIM1 ((uint32_t)0x00000200) /* Bit 1 */ + +#define EXTEN_IDO_TRIM ((uint32_t)0x00000400) /* Bit 10 */ +#define EXTEN_WRITE_EN ((uint32_t)0x00004000) /* Bit 14 */ +#define EXTEN_SHORT_WAKE ((uint32_t)0x00008000) /* Bit 15 */ + +#define EXTEN_FLASH_CLK_TRIM ((uint32_t)0x00070000) /* FLASH_CLK_TRIM[2:0] bits */ +#define EXTEN_FLASH_CLK_TRIM0 ((uint32_t)0x00010000) /* Bit 0 */ +#define EXTEN_FLASH_CLK_TRIM1 ((uint32_t)0x00020000) /* Bit 1 */ +#define EXTEN_FLASH_CLK_TRIM2 ((uint32_t)0x00040000) /* Bit 2 */ + +#include "ch32v10x_conf.h" + +#ifdef __cplusplus +} +#endif + +#endif /* __CH32V10x_H */ diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/CMSIS/WCH/CH32V10x/Include/system_ch32v10x.h b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/CMSIS/WCH/CH32V10x/Include/system_ch32v10x.h new file mode 100644 index 0000000000..e6936243f2 --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/CMSIS/WCH/CH32V10x/Include/system_ch32v10x.h @@ -0,0 +1,27 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : system_ch32v10x.h + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : CH32V10x Device Peripheral Access Layer System Header File. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *******************************************************************************/ +#ifndef __SYSTEM_CH32V10x_H +#define __SYSTEM_CH32V10x_H + +#ifdef __cplusplus +extern "C" { +#endif + +extern uint32_t SystemCoreClock; /* System Clock Frequency (Core Clock) */ + +/* System_Exported_Functions */ +extern void SystemInit(void); +extern void SystemCoreClockUpdate(void); + +#ifdef __cplusplus +} +#endif + +#endif /*__CH32V10x_SYSTEM_H */ diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/CMSIS/WCH/CH32V10x/Source/GCC/startup_ch32v10x.S b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/CMSIS/WCH/CH32V10x/Source/GCC/startup_ch32v10x.S new file mode 100644 index 0000000000..d526b40c57 --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/CMSIS/WCH/CH32V10x/Source/GCC/startup_ch32v10x.S @@ -0,0 +1,187 @@ +;/********************************** (C) COPYRIGHT ******************************* +;* File Name : startup_ch32v10x.s +;* Author : WCH +;* Version : V1.0.0 +;* Date : 2020/04/30 +;* Description : CH32V10x vector table for eclipse toolchain. +;* Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. +;* SPDX-License-Identifier: Apache-2.0 +;*******************************************************************************/ + + .section .init,"ax",@progbits + .global _start + .align 1 +_start: + j handle_reset + .word 0x00000013 + .word 0x00000013 + .word 0x00000013 + .word 0x00000013 + .word 0x00000013 + .word 0x00000013 + .word 0x00000013 + .word 0x00000013 + .word 0x00000013 + .word 0x00000013 + .word 0x00000013 + .word 0x00000013 + .word 0x00100073 + .section .vector,"ax",@progbits + .align 1 +_vector_base: + .option norvc; + j _start + .word 0 + j NMI_Handler /* NMI Handler */ + j HardFault_Handler /* Hard Fault Handler */ + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + j SysTick_Handler /* SysTick Handler */ + .word 0 + j SW_handler /* SW Handler */ + .word 0 + /* External Interrupts */ + j WWDG_IRQHandler /* Window Watchdog */ + j PVD_IRQHandler /* PVD through EXTI Line detect */ + j TAMPER_IRQHandler /* TAMPER */ + j RTC_IRQHandler /* RTC */ + j FLASH_IRQHandler /* Flash */ + j RCC_IRQHandler /* RCC */ + j EXTI0_IRQHandler /* EXTI Line 0 */ + j EXTI1_IRQHandler /* EXTI Line 1 */ + j EXTI2_IRQHandler /* EXTI Line 2 */ + j EXTI3_IRQHandler /* EXTI Line 3 */ + j EXTI4_IRQHandler /* EXTI Line 4 */ + j DMA1_Channel1_IRQHandler /* DMA1 Channel 1 */ + j DMA1_Channel2_IRQHandler /* DMA1 Channel 2 */ + j DMA1_Channel3_IRQHandler /* DMA1 Channel 3 */ + j DMA1_Channel4_IRQHandler /* DMA1 Channel 4 */ + j DMA1_Channel5_IRQHandler /* DMA1 Channel 5 */ + j DMA1_Channel6_IRQHandler /* DMA1 Channel 6 */ + j DMA1_Channel7_IRQHandler /* DMA1 Channel 7 */ + j ADC1_2_IRQHandler /* ADC1_2 */ + .word 0 + .word 0 + .word 0 + .word 0 + j EXTI9_5_IRQHandler /* EXTI Line 9..5 */ + j TIM1_BRK_IRQHandler /* TIM1 Break */ + j TIM1_UP_IRQHandler /* TIM1 Update */ + j TIM1_TRG_COM_IRQHandler /* TIM1 Trigger and Commutation */ + j TIM1_CC_IRQHandler /* TIM1 Capture Compare */ + j TIM2_IRQHandler /* TIM2 */ + j TIM3_IRQHandler /* TIM3 */ + j TIM4_IRQHandler /* TIM4 */ + j I2C1_EV_IRQHandler /* I2C1 Event */ + j I2C1_ER_IRQHandler /* I2C1 Error */ + j I2C2_EV_IRQHandler /* I2C2 Event */ + j I2C2_ER_IRQHandler /* I2C2 Error */ + j SPI1_IRQHandler /* SPI1 */ + j SPI2_IRQHandler /* SPI2 */ + j USART1_IRQHandler /* USART1 */ + j USART2_IRQHandler /* USART2 */ + j USART3_IRQHandler /* USART3 */ + j EXTI15_10_IRQHandler /* EXTI Line 15..10 */ + j RTCAlarm_IRQHandler /* RTC Alarm through EXTI Line */ + j USBWakeUp_IRQHandler /* USB Wakeup from suspend */ + j USBHD_IRQHandler /* USBHD */ + + .option rvc; + + .section .text.vector_handler, "ax", @progbits + .weak NMI_Handler + .weak HardFault_Handler + .weak SysTick_Handler + .weak SW_handler + .weak WWDG_IRQHandler + .weak PVD_IRQHandler + .weak TAMPER_IRQHandler + .weak RTC_IRQHandler + .weak FLASH_IRQHandler + .weak RCC_IRQHandler + .weak EXTI0_IRQHandler + .weak EXTI1_IRQHandler + .weak EXTI2_IRQHandler + .weak EXTI3_IRQHandler + .weak EXTI4_IRQHandler + .weak DMA1_Channel1_IRQHandler + .weak DMA1_Channel2_IRQHandler + .weak DMA1_Channel3_IRQHandler + .weak DMA1_Channel4_IRQHandler + .weak DMA1_Channel5_IRQHandler + .weak DMA1_Channel6_IRQHandler + .weak DMA1_Channel7_IRQHandler + .weak ADC1_2_IRQHandler + .weak EXTI9_5_IRQHandler + .weak TIM1_BRK_IRQHandler + .weak TIM1_UP_IRQHandler + .weak TIM1_TRG_COM_IRQHandler + .weak TIM1_CC_IRQHandler + .weak TIM2_IRQHandler + .weak TIM3_IRQHandler + .weak TIM4_IRQHandler + .weak I2C1_EV_IRQHandler + .weak I2C1_ER_IRQHandler + .weak I2C2_EV_IRQHandler + .weak I2C2_ER_IRQHandler + .weak SPI1_IRQHandler + .weak SPI2_IRQHandler + .weak USART1_IRQHandler + .weak USART2_IRQHandler + .weak USART3_IRQHandler + .weak EXTI15_10_IRQHandler + .weak RTCAlarm_IRQHandler + .weak USBWakeUp_IRQHandler + .weak USBHD_IRQHandler + + .section .text.handle_reset,"ax",@progbits + .weak handle_reset + .align 1 +handle_reset: +.option push +.option norelax + la gp, __global_pointer$ +.option pop +1: + la sp, _eusrstack +2: + /* Load data section from flash to RAM */ + la a0, _data_lma + la a1, _data_vma + la a2, _edata + bgeu a1, a2, 2f +1: + lw t0, (a0) + sw t0, (a1) + addi a0, a0, 4 + addi a1, a1, 4 + bltu a1, a2, 1b +2: + /* clear bss section */ + la a0, _sbss + la a1, _ebss + bgeu a0, a1, 2f +1: + sw zero, (a0) + addi a0, a0, 4 + bltu a0, a1, 1b +2: + /* disable interrupt */ + li t0, 0x1800 + csrs mstatus, t0 + la t0, _vector_base + ori t0, t0, 1 + csrw mtvec, t0 + + jal SystemInit /* ϵͳʱÖÓ³õʼ»¯ */ + la t0,entry /* rttµÄÈë¿Ú */ + csrw mepc, t0 + mret + + diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/CMSIS/WCH/CH32V10x/Source/system_ch32v10x.c b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/CMSIS/WCH/CH32V10x/Source/system_ch32v10x.c new file mode 100644 index 0000000000..842631762f --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/CMSIS/WCH/CH32V10x/Source/system_ch32v10x.c @@ -0,0 +1,503 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : system_ch32v10x.c + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : CH32V10x Device Peripheral Access Layer System Source File. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *********************************************************************************/ +#include "ch32v10x.h" + +/* + * Uncomment the line corresponding to the desired System clock (SYSCLK) frequency (after + * reset the HSI is used as SYSCLK source). + * If none of the define below is enabled, the HSI is used as System clock source. + */ +/* #define SYSCLK_FREQ_HSE HSE_VALUE */ +/* #define SYSCLK_FREQ_24MHz 24000000 */ +/* #define SYSCLK_FREQ_48MHz 48000000 */ +/* #define SYSCLK_FREQ_56MHz 56000000 */ +#define SYSCLK_FREQ_72MHz 72000000 + +/* Clock Definitions */ +#ifdef SYSCLK_FREQ_HSE +uint32_t SystemCoreClock = SYSCLK_FREQ_HSE; /* System Clock Frequency (Core Clock) */ +#elif defined SYSCLK_FREQ_24MHz +uint32_t SystemCoreClock = SYSCLK_FREQ_24MHz; /* System Clock Frequency (Core Clock) */ +#elif defined SYSCLK_FREQ_48MHz +uint32_t SystemCoreClock = SYSCLK_FREQ_48MHz; /* System Clock Frequency (Core Clock) */ +#elif defined SYSCLK_FREQ_56MHz +uint32_t SystemCoreClock = SYSCLK_FREQ_56MHz; /* System Clock Frequency (Core Clock) */ +#elif defined SYSCLK_FREQ_72MHz +uint32_t SystemCoreClock = SYSCLK_FREQ_72MHz; /* System Clock Frequency (Core Clock) */ +#else /* HSI Selected as System Clock source */ +uint32_t SystemCoreClock = HSI_VALUE; /* System Clock Frequency (Core Clock) */ +#endif + +__I uint8_t AHBPrescTable[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9}; + +/* ch32v10x_system_private_function_proto_types */ +static void SetSysClock(void); + +#ifdef SYSCLK_FREQ_HSE +static void SetSysClockToHSE(void); +#elif defined SYSCLK_FREQ_24MHz +static void SetSysClockTo24(void); +#elif defined SYSCLK_FREQ_48MHz +static void SetSysClockTo48(void); +#elif defined SYSCLK_FREQ_56MHz +static void SetSysClockTo56(void); +#elif defined SYSCLK_FREQ_72MHz +static void SetSysClockTo72(void); +#endif + +/********************************************************************* + * @fn SystemInit + * + * @brief Setup the microcontroller system Initialize the Embedded Flash Interface, + * the PLL and update the SystemCoreClock variable. + * + * @return none + */ +void SystemInit(void) +{ + RCC->CTLR |= (uint32_t)0x00000001; + RCC->CFGR0 &= (uint32_t)0xF8FF0000; + RCC->CTLR &= (uint32_t)0xFEF6FFFF; + RCC->CTLR &= (uint32_t)0xFFFBFFFF; + RCC->CFGR0 &= (uint32_t)0xFF80FFFF; + RCC->INTR = 0x009F0000; + SetSysClock(); +} + +/********************************************************************* + * @fn SystemCoreClockUpdate + * + * @brief Update SystemCoreClock variable according to Clock Register Values. + * + * @return none + */ +void SystemCoreClockUpdate(void) +{ + uint32_t tmp = 0, pllmull = 0, pllsource = 0; + + tmp = RCC->CFGR0 & RCC_SWS; + + switch(tmp) + { + case 0x00: + SystemCoreClock = HSI_VALUE; + break; + case 0x04: + SystemCoreClock = HSE_VALUE; + break; + case 0x08: + pllmull = RCC->CFGR0 & RCC_PLLMULL; + pllsource = RCC->CFGR0 & RCC_PLLSRC; + pllmull = (pllmull >> 18) + 2; + if(pllsource == 0x00) + { + SystemCoreClock = (HSI_VALUE >> 1) * pllmull; + } + else + { + if((RCC->CFGR0 & RCC_PLLXTPRE) != (uint32_t)RESET) + { + SystemCoreClock = (HSE_VALUE >> 1) * pllmull; + } + else + { + SystemCoreClock = HSE_VALUE * pllmull; + } + } + break; + default: + SystemCoreClock = HSI_VALUE; + break; + } + + tmp = AHBPrescTable[((RCC->CFGR0 & RCC_HPRE) >> 4)]; + SystemCoreClock >>= tmp; +} + +/********************************************************************* + * @fn SetSysClock + * + * @brief Configures the System clock frequency, HCLK, PCLK2 and PCLK1 prescalers. + * + * @return none + */ +static void SetSysClock(void) +{ +#ifdef SYSCLK_FREQ_HSE + SetSysClockToHSE(); +#elif defined SYSCLK_FREQ_24MHz + SetSysClockTo24(); +#elif defined SYSCLK_FREQ_48MHz + SetSysClockTo48(); +#elif defined SYSCLK_FREQ_56MHz + SetSysClockTo56(); +#elif defined SYSCLK_FREQ_72MHz + SetSysClockTo72(); +#endif + + /* If none of the define above is enabled, the HSI is used as System clock + * source (default after reset) + */ +} + +#ifdef SYSCLK_FREQ_HSE + +/********************************************************************* + * @fn SetSysClockToHSE + * + * @brief Sets HSE as System clock source and configure HCLK, PCLK2 and PCLK1 prescalers. + * + * @return none + */ +static void SetSysClockToHSE(void) +{ + __IO uint32_t StartUpCounter = 0, HSEStatus = 0; + + RCC->CTLR |= ((uint32_t)RCC_HSEON); + + /* Wait till HSE is ready and if Time out is reached exit */ + do + { + HSEStatus = RCC->CTLR & RCC_HSERDY; + StartUpCounter++; + } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT)); + + if((RCC->CTLR & RCC_HSERDY) != RESET) + { + HSEStatus = (uint32_t)0x01; + } + else + { + HSEStatus = (uint32_t)0x00; + } + + if(HSEStatus == (uint32_t)0x01) + { + FLASH->ACTLR |= FLASH_ACTLR_PRFTBE; + /* Flash 0 wait state */ + FLASH->ACTLR &= (uint32_t)((uint32_t)~FLASH_ACTLR_LATENCY); + FLASH->ACTLR |= (uint32_t)FLASH_ACTLR_LATENCY_0; + + /* HCLK = SYSCLK */ + RCC->CFGR0 |= (uint32_t)RCC_HPRE_DIV1; + /* PCLK2 = HCLK */ + RCC->CFGR0 |= (uint32_t)RCC_PPRE2_DIV1; + /* PCLK1 = HCLK */ + RCC->CFGR0 |= (uint32_t)RCC_PPRE1_DIV1; + + /* Select HSE as system clock source */ + RCC->CFGR0 &= (uint32_t)((uint32_t) ~(RCC_SW)); + RCC->CFGR0 |= (uint32_t)RCC_SW_HSE; + + /* Wait till HSE is used as system clock source */ + while((RCC->CFGR0 & (uint32_t)RCC_SWS) != (uint32_t)0x04) + { + } + } + else + { + /* If HSE fails to start-up, the application will have wrong clock + * configuration. User can add here some code to deal with this error + */ + } +} + +#elif defined SYSCLK_FREQ_24MHz + +/********************************************************************* + * @fn SetSysClockTo24 + * + * @brief Sets System clock frequency to 24MHz and configure HCLK, PCLK2 and PCLK1 prescalers. + * + * @return none + */ +static void SetSysClockTo24(void) +{ + __IO uint32_t StartUpCounter = 0, HSEStatus = 0; + + RCC->CTLR |= ((uint32_t)RCC_HSEON); + + /* Wait till HSE is ready and if Time out is reached exit */ + do + { + HSEStatus = RCC->CTLR & RCC_HSERDY; + StartUpCounter++; + } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT)); + + if((RCC->CTLR & RCC_HSERDY) != RESET) + { + HSEStatus = (uint32_t)0x01; + } + else + { + HSEStatus = (uint32_t)0x00; + } + if(HSEStatus == (uint32_t)0x01) + { + /* Enable Prefetch Buffer */ + FLASH->ACTLR |= FLASH_ACTLR_PRFTBE; + + /* Flash 0 wait state */ + FLASH->ACTLR &= (uint32_t)((uint32_t)~FLASH_ACTLR_LATENCY); + FLASH->ACTLR |= (uint32_t)FLASH_ACTLR_LATENCY_0; + + /* HCLK = SYSCLK */ + RCC->CFGR0 |= (uint32_t)RCC_HPRE_DIV1; + /* PCLK2 = HCLK */ + RCC->CFGR0 |= (uint32_t)RCC_PPRE2_DIV1; + /* PCLK1 = HCLK */ + RCC->CFGR0 |= (uint32_t)RCC_PPRE1_DIV1; + + RCC->CFGR0 &= (uint32_t)((uint32_t) ~(RCC_PLLSRC | RCC_PLLXTPRE | RCC_PLLMULL)); + RCC->CFGR0 |= (uint32_t)(RCC_PLLSRC_HSE | RCC_PLLXTPRE_HSE | RCC_PLLMULL3); + /* Enable PLL */ + RCC->CTLR |= RCC_PLLON; + + /* Wait till PLL is ready */ + while((RCC->CTLR & RCC_PLLRDY) == 0) + { + } + /* Select PLL as system clock source */ + RCC->CFGR0 &= (uint32_t)((uint32_t) ~(RCC_SW)); + RCC->CFGR0 |= (uint32_t)RCC_SW_PLL; + /* Wait till PLL is used as system clock source */ + while((RCC->CFGR0 & (uint32_t)RCC_SWS) != (uint32_t)0x08) + { + } + } + else + { + /* If HSE fails to start-up, the application will have wrong clock + * configuration. User can add here some code to deal with this error + */ + } +} + +#elif defined SYSCLK_FREQ_48MHz + +/********************************************************************* + * @fn SetSysClockTo48 + * + * @brief Sets System clock frequency to 48MHz and configure HCLK, PCLK2 and PCLK1 prescalers. + * + * @return none + */ +static void SetSysClockTo48(void) +{ + __IO uint32_t StartUpCounter = 0, HSEStatus = 0; + + RCC->CTLR |= ((uint32_t)RCC_HSEON); + /* Wait till HSE is ready and if Time out is reached exit */ + do + { + HSEStatus = RCC->CTLR & RCC_HSERDY; + StartUpCounter++; + } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT)); + + if((RCC->CTLR & RCC_HSERDY) != RESET) + { + HSEStatus = (uint32_t)0x01; + } + else + { + HSEStatus = (uint32_t)0x00; + } + + if(HSEStatus == (uint32_t)0x01) + { + /* Enable Prefetch Buffer */ + FLASH->ACTLR |= FLASH_ACTLR_PRFTBE; + + /* Flash 1 wait state */ + FLASH->ACTLR &= (uint32_t)((uint32_t)~FLASH_ACTLR_LATENCY); + FLASH->ACTLR |= (uint32_t)FLASH_ACTLR_LATENCY_1; + + /* HCLK = SYSCLK */ + RCC->CFGR0 |= (uint32_t)RCC_HPRE_DIV1; + /* PCLK2 = HCLK */ + RCC->CFGR0 |= (uint32_t)RCC_PPRE2_DIV1; + /* PCLK1 = HCLK */ + RCC->CFGR0 |= (uint32_t)RCC_PPRE1_DIV2; + + /* PLL configuration: PLLCLK = HSE * 6 = 48 MHz */ + RCC->CFGR0 &= (uint32_t)((uint32_t) ~(RCC_PLLSRC | RCC_PLLXTPRE | RCC_PLLMULL)); + RCC->CFGR0 |= (uint32_t)(RCC_PLLSRC_HSE | RCC_PLLMULL6); + + /* Enable PLL */ + RCC->CTLR |= RCC_PLLON; + /* Wait till PLL is ready */ + while((RCC->CTLR & RCC_PLLRDY) == 0) + { + } + /* Select PLL as system clock source */ + RCC->CFGR0 &= (uint32_t)((uint32_t) ~(RCC_SW)); + RCC->CFGR0 |= (uint32_t)RCC_SW_PLL; + /* Wait till PLL is used as system clock source */ + while((RCC->CFGR0 & (uint32_t)RCC_SWS) != (uint32_t)0x08) + { + } + } + else + { + /* + * If HSE fails to start-up, the application will have wrong clock + * configuration. User can add here some code to deal with this error + */ + } +} + +#elif defined SYSCLK_FREQ_56MHz + +/********************************************************************* + * @fn SetSysClockTo56 + * + * @brief Sets System clock frequency to 56MHz and configure HCLK, PCLK2 and PCLK1 prescalers. + * + * @return none + */ +static void SetSysClockTo56(void) +{ + __IO uint32_t StartUpCounter = 0, HSEStatus = 0; + + RCC->CTLR |= ((uint32_t)RCC_HSEON); + + /* Wait till HSE is ready and if Time out is reached exit */ + do + { + HSEStatus = RCC->CTLR & RCC_HSERDY; + StartUpCounter++; + } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT)); + + if((RCC->CTLR & RCC_HSERDY) != RESET) + { + HSEStatus = (uint32_t)0x01; + } + else + { + HSEStatus = (uint32_t)0x00; + } + + if(HSEStatus == (uint32_t)0x01) + { + /* Enable Prefetch Buffer */ + FLASH->ACTLR |= FLASH_ACTLR_PRFTBE; + + /* Flash 2 wait state */ + FLASH->ACTLR &= (uint32_t)((uint32_t)~FLASH_ACTLR_LATENCY); + FLASH->ACTLR |= (uint32_t)FLASH_ACTLR_LATENCY_2; + + /* HCLK = SYSCLK */ + RCC->CFGR0 |= (uint32_t)RCC_HPRE_DIV1; + /* PCLK2 = HCLK */ + RCC->CFGR0 |= (uint32_t)RCC_PPRE2_DIV1; + /* PCLK1 = HCLK */ + RCC->CFGR0 |= (uint32_t)RCC_PPRE1_DIV2; + + /* PLL configuration: PLLCLK = HSE * 7 = 56 MHz */ + RCC->CFGR0 &= (uint32_t)((uint32_t) ~(RCC_PLLSRC | RCC_PLLXTPRE | RCC_PLLMULL)); + RCC->CFGR0 |= (uint32_t)(RCC_PLLSRC_HSE | RCC_PLLMULL7); + /* Enable PLL */ + RCC->CTLR |= RCC_PLLON; + /* Wait till PLL is ready */ + while((RCC->CTLR & RCC_PLLRDY) == 0) + { + } + + /* Select PLL as system clock source */ + RCC->CFGR0 &= (uint32_t)((uint32_t) ~(RCC_SW)); + RCC->CFGR0 |= (uint32_t)RCC_SW_PLL; + /* Wait till PLL is used as system clock source */ + while((RCC->CFGR0 & (uint32_t)RCC_SWS) != (uint32_t)0x08) + { + } + } + else + { + /* + * If HSE fails to start-up, the application will have wrong clock + * configuration. User can add here some code to deal with this error + */ + } +} + +#elif defined SYSCLK_FREQ_72MHz + +/********************************************************************* + * @fn SetSysClockTo72 + * + * @brief Sets System clock frequency to 72MHz and configure HCLK, PCLK2 and PCLK1 prescalers. + * + * @return none + */ +static void SetSysClockTo72(void) +{ + __IO uint32_t StartUpCounter = 0, HSEStatus = 0; + + RCC->CTLR |= ((uint32_t)RCC_HSEON); + + /* Wait till HSE is ready and if Time out is reached exit */ + do + { + HSEStatus = RCC->CTLR & RCC_HSERDY; + StartUpCounter++; + } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT)); + + if((RCC->CTLR & RCC_HSERDY) != RESET) + { + HSEStatus = (uint32_t)0x01; + } + else + { + HSEStatus = (uint32_t)0x00; + } + + if(HSEStatus == (uint32_t)0x01) + { + /* Enable Prefetch Buffer */ + FLASH->ACTLR |= FLASH_ACTLR_PRFTBE; + + /* Flash 2 wait state */ + FLASH->ACTLR &= (uint32_t)((uint32_t)~FLASH_ACTLR_LATENCY); + FLASH->ACTLR |= (uint32_t)FLASH_ACTLR_LATENCY_2; + + /* HCLK = SYSCLK */ + RCC->CFGR0 |= (uint32_t)RCC_HPRE_DIV1; + /* PCLK2 = HCLK */ + RCC->CFGR0 |= (uint32_t)RCC_PPRE2_DIV1; + /* PCLK1 = HCLK */ + RCC->CFGR0 |= (uint32_t)RCC_PPRE1_DIV2; + + /* PLL configuration: PLLCLK = HSE * 9 = 72 MHz */ + RCC->CFGR0 &= (uint32_t)((uint32_t) ~(RCC_PLLSRC | RCC_PLLXTPRE | + RCC_PLLMULL)); + RCC->CFGR0 |= (uint32_t)(RCC_PLLSRC_HSE | RCC_PLLMULL9); + /* Enable PLL */ + RCC->CTLR |= RCC_PLLON; + /* Wait till PLL is ready */ + while((RCC->CTLR & RCC_PLLRDY) == 0) + { + } + /* Select PLL as system clock source */ + RCC->CFGR0 &= (uint32_t)((uint32_t) ~(RCC_SW)); + RCC->CFGR0 |= (uint32_t)RCC_SW_PLL; + /* Wait till PLL is used as system clock source */ + while((RCC->CFGR0 & (uint32_t)RCC_SWS) != (uint32_t)0x08) + { + } + } + else + { + /* + * If HSE fails to start-up, the application will have wrong clock + * configuration. User can add here some code to deal with this error + */ + } +} +#endif diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/CMSIS/core_riscv.c b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/CMSIS/core_riscv.c new file mode 100644 index 0000000000..95801a2c63 --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/CMSIS/core_riscv.c @@ -0,0 +1,552 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : core_riscv.c + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : RISC-V Core Peripheral Access Layer Source File + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *******************************************************************************/ +#include + +/* define compiler specific symbols */ +#if defined(__CC_ARM) + #define __ASM __asm /*!< asm keyword for ARM Compiler */ + #define __INLINE __inline /*!< inline keyword for ARM Compiler */ + +#elif defined(__ICCARM__) + #define __ASM __asm /*!< asm keyword for IAR Compiler */ + #define __INLINE inline /*!< inline keyword for IAR Compiler. Only avaiable in High optimization mode! */ + +#elif defined(__GNUC__) + #define __ASM __asm /*!< asm keyword for GNU Compiler */ + #define __INLINE inline /*!< inline keyword for GNU Compiler */ + +#elif defined(__TASKING__) + #define __ASM __asm /*!< asm keyword for TASKING Compiler */ + #define __INLINE inline /*!< inline keyword for TASKING Compiler */ + +#endif + +/********************************************************************* + * @fn __get_FFLAGS + * + * @brief Return the Floating-Point Accrued Exceptions + * + * @return fflags value + */ +uint32_t __get_FFLAGS(void) +{ + uint32_t result; + + __ASM volatile("csrr %0,""fflags": "=r"(result)); + return (result); +} + +/********************************************************************* + * @fn __set_FFLAGS + * + * @brief Set the Floating-Point Accrued Exceptions + * + * @param value - set FFLAGS value + * + * @return none + */ +void __set_FFLAGS(uint32_t value) +{ + __ASM volatile("csrw fflags, %0":: "r"(value)); +} + +/********************************************************************* + * @fn __get_FRM + * + * @brief Return the Floating-Point Dynamic Rounding Mode + * + * @return frm value + */ +uint32_t __get_FRM(void) +{ + uint32_t result; + + __ASM volatile("csrr %0,""frm": "=r"(result)); + return (result); +} + +/********************************************************************* + * @fn __set_FRM + * + * @brief Set the Floating-Point Dynamic Rounding Mode + * + * @param value - set frm value + * + * @return none + */ +void __set_FRM(uint32_t value) +{ + __ASM volatile("csrw frm, %0" :: "r"(value)); +} + +/********************************************************************* + * @fn __get_FCSR + * + * @brief Return the Floating-Point Control and Status Register + * + * @return fcsr value + */ +uint32_t __get_FCSR(void) +{ + uint32_t result; + + __ASM volatile("csrr %0," "fcsr" : "=r"(result)); + return (result); +} + +/********************************************************************* + * @fn __set_FCSR + * + * @brief Set the Floating-Point Dynamic Rounding Mode + * + * @param value - set fcsr value + * + * @return none + */ +void __set_FCSR(uint32_t value) +{ + __ASM volatile("csrw fcsr, %0" : : "r"(value)); +} + +/********************************************************************* + * @fn __get_MSTATUS + * + * @brief Return the Machine Status Register + * + * @return mstatus value + */ +uint32_t __get_MSTATUS(void) +{ + uint32_t result; + + __ASM volatile("csrr %0," "mstatus": "=r"(result)); + return (result); +} + +/********************************************************************* + * @fn __set_MSTATUS + * + * @brief Set the Machine Status Register + * + * @param value - set mstatus value + * + * @return none + */ +void __set_MSTATUS(uint32_t value) +{ + __ASM volatile("csrw mstatus, %0" : : "r"(value)); +} + +/********************************************************************* + * @fn __get_MISA + * + * @brief Return the Machine ISA Register + * + * @return misa value + */ +uint32_t __get_MISA(void) +{ + uint32_t result; + + __ASM volatile("csrr %0,""misa" : "=r"(result)); + return (result); +} + +/********************************************************************* + * @fn __set_MISA + * + * @brief Set the Machine ISA Register + * + * @param value - set misa value + * + * @return none + */ +void __set_MISA(uint32_t value) +{ + __ASM volatile("csrw misa, %0" : : "r"(value)); +} + +/********************************************************************* + * @fn __get_MIE + * + * @brief Return the Machine Interrupt Enable Register + * + * @return mie value + */ +uint32_t __get_MIE(void) +{ + uint32_t result; + + __ASM volatile("csrr %0," "mie": "=r"(result)); + return (result); +} + +/********************************************************************* + * @fn __set_MISA + * + * @brief Set the Machine ISA Register + * + * @param value - set mie value + * + * @return none + */ +void __set_MIE(uint32_t value) +{ + __ASM volatile("csrw mie, %0": : "r"(value)); +} + +/********************************************************************* + * @fn __get_MTVEC + * + * @brief Return the Machine Trap-Vector Base-Address Register + * + * @return mtvec value + */ +uint32_t __get_MTVEC(void) +{ + uint32_t result; + + __ASM volatile("csrr %0," "mtvec": "=r"(result)); + return (result); +} + +/********************************************************************* + * @fn __set_MTVEC + * + * @brief Set the Machine Trap-Vector Base-Address Register + * + * @param value - set mtvec value + * + * @return none + */ +void __set_MTVEC(uint32_t value) +{ + __ASM volatile("csrw mtvec, %0":: "r"(value)); +} + +/********************************************************************* + * @fn __get_MTVEC + * + * @brief Return the Machine Seratch Register + * + * @return mscratch value + */ +uint32_t __get_MSCRATCH(void) +{ + uint32_t result; + + __ASM volatile("csrr %0," "mscratch" : "=r"(result)); + return (result); +} + +/********************************************************************* + * @fn __set_MTVEC + * + * @brief Set the Machine Seratch Register + * + * @param value - set mscratch value + * + * @return none + */ +void __set_MSCRATCH(uint32_t value) +{ + __ASM volatile("csrw mscratch, %0" : : "r"(value)); +} + +/********************************************************************* + * @fn __get_MEPC + * + * @brief Return the Machine Exception Program Register + * + * @return mepc value + */ +uint32_t __get_MEPC(void) +{ + uint32_t result; + + __ASM volatile("csrr %0," "mepc" : "=r"(result)); + return (result); +} + +/********************************************************************* + * @fn __set_MEPC + * + * @brief Set the Machine Exception Program Register + * + * @return mepc value + */ +void __set_MEPC(uint32_t value) +{ + __ASM volatile("csrw mepc, %0" : : "r"(value)); +} + +/********************************************************************* + * @fn __get_MCAUSE + * + * @brief Return the Machine Cause Register + * + * @return mcause value + */ +uint32_t __get_MCAUSE(void) +{ + uint32_t result; + + __ASM volatile("csrr %0," "mcause": "=r"(result)); + return (result); +} + +/********************************************************************* + * @fn __set_MEPC + * + * @brief Set the Machine Cause Register + * + * @return mcause value + */ +void __set_MCAUSE(uint32_t value) +{ + __ASM volatile("csrw mcause, %0":: "r"(value)); +} + +/********************************************************************* + * @fn __get_MTVAL + * + * @brief Return the Machine Trap Value Register + * + * @return mtval value + */ +uint32_t __get_MTVAL(void) +{ + uint32_t result; + + __ASM volatile("csrr %0," "mtval" : "=r"(result)); + return (result); +} + +/********************************************************************* + * @fn __set_MTVAL + * + * @brief Set the Machine Trap Value Register + * + * @return mtval value + */ +void __set_MTVAL(uint32_t value) +{ + __ASM volatile("csrw mtval, %0":: "r"(value)); +} + +/********************************************************************* + * @fn __get_MIP + * + * @brief Return the Machine Interrupt Pending Register + * + * @return mip value + */ +uint32_t __get_MIP(void) +{ + uint32_t result; + + __ASM volatile("csrr %0," "mip": "=r"(result)); + return (result); +} + +/********************************************************************* + * @fn __set_MIP + * + * @brief Set the Machine Interrupt Pending Register + * + * @return mip value + */ +void __set_MIP(uint32_t value) +{ + __ASM volatile("csrw mip, %0":: "r"(value)); +} + +/********************************************************************* + * @fn __get_MCYCLE + * + * @brief Return Lower 32 bits of Cycle counter + * + * @return mcycle value + */ +uint32_t __get_MCYCLE(void) +{ + uint32_t result; + + __ASM volatile("csrr %0," "mcycle": "=r"(result)); + return (result); +} + +/********************************************************************* + * @fn __set_MCYCLE + * + * @brief Set Lower 32 bits of Cycle counter + * + * @return mcycle value + */ +void __set_MCYCLE(uint32_t value) +{ + __ASM volatile("csrw mcycle, %0" : : "r"(value)); +} + +/********************************************************************* + * @fn __get_MCYCLEH + * + * @brief Return Upper 32 bits of Cycle counter + * + * @return mcycleh value + */ +uint32_t __get_MCYCLEH(void) +{ + uint32_t result; + + __ASM volatile("csrr %0,""mcycleh" : "=r"(result)); + return (result); +} + +/********************************************************************* + * @fn __set_MCYCLEH + * + * @brief Set Upper 32 bits of Cycle counter + * + * @return mcycleh value + */ +void __set_MCYCLEH(uint32_t value) +{ + __ASM volatile("csrw mcycleh, %0":: "r"(value)); +} + +/********************************************************************* + * @fn __get_MINSTRET + * + * @brief Return Lower 32 bits of Instructions-retired counter + * + * @return mcause value + */ +uint32_t __get_MINSTRET(void) +{ + uint32_t result; + + __ASM volatile("csrr %0,""minstret": "=r"(result)); + return (result); +} + +/********************************************************************* + * @fn __set_MINSTRET + * + * @brief Set Lower 32 bits of Instructions-retired counter + * + * @return minstret value + */ +void __set_MINSTRET(uint32_t value) +{ + __ASM volatile("csrw minstret, %0":: "r"(value)); +} + +/********************************************************************* + * @fn __get_MINSTRETH + * + * @brief Return Upper 32 bits of Instructions-retired counter + * + * @return minstreth value + */ +uint32_t __get_MINSTRETH(void) +{ + uint32_t result; + + __ASM volatile("csrr %0,""minstreth": "=r"(result)); + return (result); +} + +/********************************************************************* + * @fn __set_MINSTRETH + * + * @brief Set Upper 32 bits of Instructions-retired counter + * + * @return minstreth value + */ +void __set_MINSTRETH(uint32_t value) +{ + __ASM volatile("csrw minstreth, %0":: "r"(value)); +} + +/********************************************************************* + * @fn __get_MVENDORID + * + * @brief Return Vendor ID Register + * + * @return mvendorid value + */ +uint32_t __get_MVENDORID(void) +{ + uint32_t result; + + __ASM volatile("csrr %0,""mvendorid": "=r"(result)); + return (result); +} + +/********************************************************************* + * @fn __get_MARCHID + * + * @brief Return Machine Architecture ID Register + * + * @return marchid value + */ +uint32_t __get_MARCHID(void) +{ + uint32_t result; + + __ASM volatile("csrr %0,""marchid": "=r"(result)); + return (result); +} + +/********************************************************************* + * @fn __get_MIMPID + * + * @brief Return Machine Implementation ID Register + * + * @return mimpid value + */ +uint32_t __get_MIMPID(void) +{ + uint32_t result; + + __ASM volatile("csrr %0,""mimpid": "=r"(result)); + return (result); +} + +/********************************************************************* + * @fn __get_MHARTID + * + * @brief Return Hart ID Register + * + * @return mhartid value + */ +uint32_t __get_MHARTID(void) +{ + uint32_t result; + + __ASM volatile("csrr %0,""mhartid": "=r"(result)); + return (result); +} + +/********************************************************************* + * @fn __get_SP + * + * @brief Return SP Register + * + * @return SP value + */ +uint32_t __get_SP(void) +{ + uint32_t result; + + asm volatile("mv %0,""sp": "=r"(result):); + return (result); +} diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/CMSIS/core_riscv.h b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/CMSIS/core_riscv.h new file mode 100644 index 0000000000..b4483f7a09 --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/CMSIS/core_riscv.h @@ -0,0 +1,397 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : core_riscv.h + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : RISC-V Core Peripheral Access Layer Header File + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *******************************************************************************/ +#ifndef __CORE_RISCV_H__ +#define __CORE_RISCV_H__ + +/* IO definitions */ +#ifdef __cplusplus + #define __I volatile /*!< defines 'read only' permissions */ +#else + #define __I volatile const /*!< defines 'read only' permissions */ +#endif +#define __O volatile /*!< defines 'write only' permissions */ +#define __IO volatile /*!< defines 'read / write' permissions */ + +/* Standard Peripheral Library old types (maintained for legacy purpose) */ +typedef __I uint32_t vuc32; /* Read Only */ +typedef __I uint16_t vuc16; /* Read Only */ +typedef __I uint8_t vuc8; /* Read Only */ + +typedef const uint32_t uc32; /* Read Only */ +typedef const uint16_t uc16; /* Read Only */ +typedef const uint8_t uc8; /* Read Only */ + +typedef __I int32_t vsc32; /* Read Only */ +typedef __I int16_t vsc16; /* Read Only */ +typedef __I int8_t vsc8; /* Read Only */ + +typedef const int32_t sc32; /* Read Only */ +typedef const int16_t sc16; /* Read Only */ +typedef const int8_t sc8; /* Read Only */ + +typedef __IO uint32_t vu32; +typedef __IO uint16_t vu16; +typedef __IO uint8_t vu8; + +typedef uint32_t u32; +typedef uint16_t u16; +typedef uint8_t u8; + +typedef __IO int32_t vs32; +typedef __IO int16_t vs16; +typedef __IO int8_t vs8; + +typedef int32_t s32; +typedef int16_t s16; +typedef int8_t s8; + +typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; + +typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState; + +typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus; + +#define RV_STATIC_INLINE static inline + +/* memory mapped structure for Program Fast Interrupt Controller (PFIC) */ +typedef struct{ + __I uint32_t ISR[8]; + __I uint32_t IPR[8]; + __IO uint32_t ITHRESDR; + __IO uint32_t FIBADDRR; + __IO uint32_t CFGR; + __I uint32_t GISR; + uint8_t RESERVED0[0x10]; + __IO uint32_t FIOFADDRR[4]; + uint8_t RESERVED1[0x90]; + __O uint32_t IENR[8]; + uint8_t RESERVED2[0x60]; + __O uint32_t IRER[8]; + uint8_t RESERVED3[0x60]; + __O uint32_t IPSR[8]; + uint8_t RESERVED4[0x60]; + __O uint32_t IPRR[8]; + uint8_t RESERVED5[0x60]; + __IO uint32_t IACTR[8]; + uint8_t RESERVED6[0xE0]; + __IO uint8_t IPRIOR[256]; + uint8_t RESERVED7[0x810]; + __IO uint32_t SCTLR; +}PFIC_Type; + +/* memory mapped structure for SysTick */ +typedef struct +{ + __IO uint32_t CTLR; + __IO uint8_t CNTL0; + __IO uint8_t CNTL1; + __IO uint8_t CNTL2; + __IO uint8_t CNTL3; + __IO uint8_t CNTH0; + __IO uint8_t CNTH1; + __IO uint8_t CNTH2; + __IO uint8_t CNTH3; + __IO uint8_t CMPLR0; + __IO uint8_t CMPLR1; + __IO uint8_t CMPLR2; + __IO uint8_t CMPLR3; + __IO uint8_t CMPHR0; + __IO uint8_t CMPHR1; + __IO uint8_t CMPHR2; + __IO uint8_t CMPHR3; +}SysTick_Type; + + +#define PFIC ((PFIC_Type *) 0xE000E000 ) +#define NVIC PFIC +#define NVIC_KEY1 ((uint32_t)0xFA050000) +#define NVIC_KEY2 ((uint32_t)0xBCAF0000) +#define NVIC_KEY3 ((uint32_t)0xBEEF0000) + +#define SysTick ((SysTick_Type *) 0xE000F000) + + +/********************************************************************* + * @fn __NOP + * + * @brief nop + * + * @return none + */ +RV_STATIC_INLINE void __NOP() +{ + __asm volatile ("nop"); +} + +/********************************************************************* + * @fn NVIC_EnableIRQ + * + * @brief Enable Interrupt + * + * @param IRQn: Interrupt Numbers + * + * @return none + */ +RV_STATIC_INLINE void NVIC_EnableIRQ(IRQn_Type IRQn){ + NVIC->IENR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); +} + +/********************************************************************* + * @fn NVIC_DisableIRQ + * + * @brief Disable Interrupt + * + * @param IRQn: Interrupt Numbers + * + * @return none + */ +RV_STATIC_INLINE void NVIC_DisableIRQ(IRQn_Type IRQn) +{ + uint32_t t; + + t = NVIC->ITHRESDR; + NVIC->ITHRESDR = 0x10; + NVIC->IRER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); + NVIC->ITHRESDR = t; +} + +/********************************************************************* + * @fn NVIC_GetStatusIRQ + * + * @brief Get Interrupt Enable State + * + * @param IRQn: Interrupt Numbers + * + * @return 1 - Interrupt Enable + * 0 - Interrupt Disable + */ +RV_STATIC_INLINE uint32_t NVIC_GetStatusIRQ(IRQn_Type IRQn) +{ + return((uint32_t) ((NVIC->ISR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F)))?1:0)); +} + +/********************************************************************* + * @fn NVIC_GetPendingIRQ + * + * @brief Get Interrupt Pending State + * + * @param IRQn: Interrupt Numbers + * + * @return 1 - Interrupt Pending Enable + * 0 - Interrupt Pending Disable + */ +RV_STATIC_INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + return((uint32_t) ((NVIC->IPR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F)))?1:0)); +} + +/********************************************************************* + * @fn NVIC_SetPendingIRQ + * + * @brief Set Interrupt Pending + * + * @param IRQn: Interrupt Numbers + * + * @return None + */ +RV_STATIC_INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + NVIC->IPSR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); +} + +/********************************************************************* + * @fn NVIC_ClearPendingIRQ + * + * @brief Clear Interrupt Pending + * + * @param IRQn: Interrupt Numbers + * + * @return None + */ +RV_STATIC_INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + NVIC->IPRR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); +} + +/********************************************************************* + * @fn NVIC_GetActive + * + * @brief Get Interrupt Active State + * + * @param IRQn: Interrupt Numbers + * + * @return 1 - Interrupt Active + * 0 - Interrupt No Active + */ +RV_STATIC_INLINE uint32_t NVIC_GetActive(IRQn_Type IRQn) +{ + return((uint32_t)((NVIC->IACTR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F)))?1:0)); +} + +/********************************************************************* + * @fn NVIC_SetPriority + * + * @brief Set Interrupt Priority + * + * @param IRQn - Interrupt Numbers + * priority - + * bit7 - pre-emption priority + * bit6~bit4 - subpriority + * @return None + */ +RV_STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint8_t priority) +{ + NVIC->IPRIOR[(uint32_t)(IRQn)] = priority; +} + +/********************************************************************* + * @fn __WFI + * + * @brief Wait for Interrupt + * + * @return None + */ +__attribute__( ( always_inline ) ) RV_STATIC_INLINE void __WFI(void) +{ + NVIC->SCTLR &= ~(1<<3); // wfi + asm volatile ("wfi"); +} + +/********************************************************************* + * @fn __WFE + * + * @brief Wait for Events + * + * @return None + */ +__attribute__( ( always_inline ) ) RV_STATIC_INLINE void __WFE(void) +{ + NVIC->SCTLR |= (1<<3)|(1<<5); // (wfi->wfe)+(__sev) + asm volatile ("wfi"); + NVIC->SCTLR |= (1<<3); + asm volatile ("wfi"); +} + +/********************************************************************* + * @fn NVIC_SetFastIRQ + * + * @brief Set VTF Interrupt + * + * @param add - VTF interrupt service function base address. + * IRQn -Interrupt Numbers + * num - VTF Interrupt Numbers + * @return None + */ +RV_STATIC_INLINE void NVIC_SetFastIRQ(uint32_t addr, IRQn_Type IRQn, uint8_t num) +{ + if(num > 3) return ; + NVIC->FIBADDRR = addr; + NVIC->FIOFADDRR[num] = ((uint32_t)IRQn<<24)|(addr&0xfffff); +} + +/********************************************************************* + * @fn NVIC_SystemReset + * + * @brief Initiate a system reset request + * + * @return None + */ +RV_STATIC_INLINE void NVIC_SystemReset(void) +{ + NVIC->CFGR = NVIC_KEY3|(1<<7); +} + +/********************************************************************* + * @fn NVIC_HaltPushCfg + * + * @brief Enable Hardware Stack + * + * @param NewState - DISABLE or ENABLE + + * @return None + */ +RV_STATIC_INLINE void NVIC_HaltPushCfg(FunctionalState NewState) +{ + if (NewState != DISABLE) + { + NVIC->CFGR = NVIC_KEY1; + } + else{ + NVIC->CFGR = NVIC_KEY1|(1<<0); + } +} + +/********************************************************************* + * @fn NVIC_INTNestCfg + * + * @brief Enable Interrupt Nesting + * + * @param NewState - DISABLE or ENABLE + + * @return None + */ +RV_STATIC_INLINE void NVIC_INTNestCfg(FunctionalState NewState) +{ + if (NewState != DISABLE) + { + NVIC->CFGR = NVIC_KEY1; + } + else + { + NVIC->CFGR = NVIC_KEY1|(1<<1); + } +} + +/* Core_Exported_Functions */ +extern uint32_t __get_FFLAGS(void); +extern void __set_FFLAGS(uint32_t value); +extern uint32_t __get_FRM(void); +extern void __set_FRM(uint32_t value); +extern uint32_t __get_FCSR(void); +extern void __set_FCSR(uint32_t value); +extern uint32_t __get_MSTATUS(void); +extern void __set_MSTATUS(uint32_t value); +extern uint32_t __get_MISA(void); +extern void __set_MISA(uint32_t value); +extern uint32_t __get_MIE(void); +extern void __set_MIE(uint32_t value); +extern uint32_t __get_MTVEC(void); +extern void __set_MTVEC(uint32_t value); +extern uint32_t __get_MSCRATCH(void); +extern void __set_MSCRATCH(uint32_t value); +extern uint32_t __get_MEPC(void); +extern void __set_MEPC(uint32_t value); +extern uint32_t __get_MCAUSE(void); +extern void __set_MCAUSE(uint32_t value); +extern uint32_t __get_MTVAL(void); +extern void __set_MTVAL(uint32_t value); +extern uint32_t __get_MIP(void); +extern void __set_MIP(uint32_t value); +extern uint32_t __get_MCYCLE(void); +extern void __set_MCYCLE(uint32_t value); +extern uint32_t __get_MCYCLEH(void); +extern void __set_MCYCLEH(uint32_t value); +extern uint32_t __get_MINSTRET(void); +extern void __set_MINSTRET(uint32_t value); +extern uint32_t __get_MINSTRETH(void); +extern void __set_MINSTRETH(uint32_t value); +extern uint32_t __get_MVENDORID(void); +extern uint32_t __get_MARCHID(void); +extern uint32_t __get_MIMPID(void); +extern uint32_t __get_MHARTID(void); +extern uint32_t __get_SP(void); + + +#endif/* __CORE_RISCV_H__ */ + + + + + diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/SConscript b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/SConscript new file mode 100644 index 0000000000..dd47e2e35d --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/SConscript @@ -0,0 +1,40 @@ +import rtconfig +Import('RTT_ROOT') +from building import * + +# get current directory +cwd = GetCurrentDir() + +src = Split(""" +StdPeriph_Driver/src/ch32v10x_adc.c +StdPeriph_Driver/src/ch32v10x_bkp.c +StdPeriph_Driver/src/ch32v10x_crc.c +StdPeriph_Driver/src/ch32v10x_dbgmcu.c +StdPeriph_Driver/src/ch32v10x_dma.c +StdPeriph_Driver/src/ch32v10x_exti.c +StdPeriph_Driver/src/ch32v10x_flash.c +StdPeriph_Driver/src/ch32v10x_gpio.c +StdPeriph_Driver/src/ch32v10x_i2c.c +StdPeriph_Driver/src/ch32v10x_iwdg.c +StdPeriph_Driver/src/ch32v10x_misc.c +StdPeriph_Driver/src/ch32v10x_pwr.c +StdPeriph_Driver/src/ch32v10x_rcc.c +StdPeriph_Driver/src/ch32v10x_rtc.c +StdPeriph_Driver/src/ch32v10x_spi.c +StdPeriph_Driver/src/ch32v10x_tim.c +StdPeriph_Driver/src/ch32v10x_usart.c +StdPeriph_Driver/src/ch32v10x_wwdg.c +CMSIS/core_riscv.c +CMSIS/WCH/CH32V10x/Source/system_ch32v10x.c +CMSIS/WCH/CH32V10x/Source/GCC/startup_ch32v10x.S +""") + +path = [ + cwd + '/CMSIS', + cwd + '/CMSIS/WCH/CH32V10x/Include', + cwd + '/StdPeriph_Driver/inc'] + + +group = DefineGroup('ch32v10x_lib', src, depend = [''], CPPPATH = path) + +Return('group') diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x.h b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x.h new file mode 100644 index 0000000000..0764ea2474 --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x.h @@ -0,0 +1,3215 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x.h + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : CH32V10x Device Peripheral Access Layer Header File. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *******************************************************************************/ +#ifndef __CH32V10x_H +#define __CH32V10x_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define __MPU_PRESENT 0 /* Other CH32 devices does not provide an MPU */ +#define __Vendor_SysTickConfig 0 /* Set to 1 if different SysTick Config is used */ + +#define HSE_VALUE ((uint32_t)8000000) /* Value of the External oscillator in Hz */ + +/* In the following line adjust the External High Speed oscillator (HSE) Startup Timeout value */ +#define HSE_STARTUP_TIMEOUT ((uint16_t)0x500) /* Time out for HSE start up */ + +#define HSI_VALUE ((uint32_t)8000000) /* Value of the Internal oscillator in Hz */ + +/* Interrupt Number Definition, according to the selected device */ +typedef enum IRQn +{ + /****** RISC-V Processor Exceptions Numbers *******************************************************/ + NonMaskableInt_IRQn = 2, /* 2 Non Maskable Interrupt */ + EXC_IRQn = 3, /* 4 Exception Interrupt */ + SysTicK_IRQn = 12, /* 12 System timer Interrupt */ + Software_IRQn = 14, /* 14 software Interrupt */ + + /****** RISC-V specific Interrupt Numbers *********************************************************/ + WWDG_IRQn = 16, /* Window WatchDog Interrupt */ + PVD_IRQn = 17, /* PVD through EXTI Line detection Interrupt */ + TAMPER_IRQn = 18, /* Tamper Interrupt */ + RTC_IRQn = 19, /* RTC global Interrupt */ + FLASH_IRQn = 20, /* FLASH global Interrupt */ + RCC_IRQn = 21, /* RCC global Interrupt */ + EXTI0_IRQn = 22, /* EXTI Line0 Interrupt */ + EXTI1_IRQn = 23, /* EXTI Line1 Interrupt */ + EXTI2_IRQn = 24, /* EXTI Line2 Interrupt */ + EXTI3_IRQn = 25, /* EXTI Line3 Interrupt */ + EXTI4_IRQn = 26, /* EXTI Line4 Interrupt */ + DMA1_Channel1_IRQn = 27, /* DMA1 Channel 1 global Interrupt */ + DMA1_Channel2_IRQn = 28, /* DMA1 Channel 2 global Interrupt */ + DMA1_Channel3_IRQn = 29, /* DMA1 Channel 3 global Interrupt */ + DMA1_Channel4_IRQn = 30, /* DMA1 Channel 4 global Interrupt */ + DMA1_Channel5_IRQn = 31, /* DMA1 Channel 5 global Interrupt */ + DMA1_Channel6_IRQn = 32, /* DMA1 Channel 6 global Interrupt */ + DMA1_Channel7_IRQn = 33, /* DMA1 Channel 7 global Interrupt */ + ADC_IRQn = 34, /* ADC1 global Interrupt */ + EXTI9_5_IRQn = 39, /* External Line[9:5] Interrupts */ + TIM1_BRK_IRQn = 40, /* TIM1 Break Interrupt */ + TIM1_UP_IRQn = 41, /* TIM1 Update Interrupt */ + TIM1_TRG_COM_IRQn = 42, /* TIM1 Trigger and Commutation Interrupt */ + TIM1_CC_IRQn = 43, /* TIM1 Capture Compare Interrupt */ + TIM2_IRQn = 44, /* TIM2 global Interrupt */ + TIM3_IRQn = 45, /* TIM3 global Interrupt */ + TIM4_IRQn = 46, /* TIM4 global Interrupt */ + I2C1_EV_IRQn = 47, /* I2C1 Event Interrupt */ + I2C1_ER_IRQn = 48, /* I2C1 Error Interrupt */ + I2C2_EV_IRQn = 49, /* I2C2 Event Interrupt */ + I2C2_ER_IRQn = 50, /* I2C2 Error Interrupt */ + SPI1_IRQn = 51, /* SPI1 global Interrupt */ + SPI2_IRQn = 52, /* SPI2 global Interrupt */ + USART1_IRQn = 53, /* USART1 global Interrupt */ + USART2_IRQn = 54, /* USART2 global Interrupt */ + USART3_IRQn = 55, /* USART3 global Interrupt */ + EXTI15_10_IRQn = 56, /* External Line[15:10] Interrupts */ + RTCAlarm_IRQn = 57, /* RTC Alarm through EXTI Line Interrupt */ + USBWakeUp_IRQn = 58, /* USB WakeUp from suspend through EXTI Line Interrupt */ + USBHD_IRQn = 59, /* USBHD Interrupt */ + +} IRQn_Type; + +#define HardFault_IRQn EXC_IRQn +#define ADC1_2_IRQn ADC_IRQn + +#include +#include "core_riscv.h" +#include "system_ch32v10x.h" + +/* Standard Peripheral Library old definitions (maintained for legacy purpose) */ +#define HSI_Value HSI_VALUE +#define HSE_Value HSE_VALUE +#define HSEStartUp_TimeOut HSE_STARTUP_TIMEOUT + +/* Analog to Digital Converter */ +typedef struct +{ + __IO uint32_t STATR; + __IO uint32_t CTLR1; + __IO uint32_t CTLR2; + __IO uint32_t SAMPTR1; + __IO uint32_t SAMPTR2; + __IO uint32_t IOFR1; + __IO uint32_t IOFR2; + __IO uint32_t IOFR3; + __IO uint32_t IOFR4; + __IO uint32_t WDHTR; + __IO uint32_t WDLTR; + __IO uint32_t RSQR1; + __IO uint32_t RSQR2; + __IO uint32_t RSQR3; + __IO uint32_t ISQR; + __IO uint32_t IDATAR1; + __IO uint32_t IDATAR2; + __IO uint32_t IDATAR3; + __IO uint32_t IDATAR4; + __IO uint32_t RDATAR; +} ADC_TypeDef; + +/* Backup Registers */ +typedef struct +{ + uint32_t RESERVED0; + __IO uint16_t DATAR1; + uint16_t RESERVED1; + __IO uint16_t DATAR2; + uint16_t RESERVED2; + __IO uint16_t DATAR3; + uint16_t RESERVED3; + __IO uint16_t DATAR4; + uint16_t RESERVED4; + __IO uint16_t DATAR5; + uint16_t RESERVED5; + __IO uint16_t DATAR6; + uint16_t RESERVED6; + __IO uint16_t DATAR7; + uint16_t RESERVED7; + __IO uint16_t DATAR8; + uint16_t RESERVED8; + __IO uint16_t DATAR9; + uint16_t RESERVED9; + __IO uint16_t DATAR10; + uint16_t RESERVED10; + __IO uint16_t OCTLR; + uint16_t RESERVED11; + __IO uint16_t TPCTLR; + uint16_t RESERVED12; + __IO uint16_t TPCSR; + uint16_t RESERVED13[5]; + __IO uint16_t DATAR11; + uint16_t RESERVED14; + __IO uint16_t DATAR12; + uint16_t RESERVED15; + __IO uint16_t DATAR13; + uint16_t RESERVED16; + __IO uint16_t DATAR14; + uint16_t RESERVED17; + __IO uint16_t DATAR15; + uint16_t RESERVED18; + __IO uint16_t DATAR16; + uint16_t RESERVED19; + __IO uint16_t DATAR17; + uint16_t RESERVED20; + __IO uint16_t DATAR18; + uint16_t RESERVED21; + __IO uint16_t DATAR19; + uint16_t RESERVED22; + __IO uint16_t DATAR20; + uint16_t RESERVED23; + __IO uint16_t DATAR21; + uint16_t RESERVED24; + __IO uint16_t DATAR22; + uint16_t RESERVED25; + __IO uint16_t DATAR23; + uint16_t RESERVED26; + __IO uint16_t DATAR24; + uint16_t RESERVED27; + __IO uint16_t DATAR25; + uint16_t RESERVED28; + __IO uint16_t DATAR26; + uint16_t RESERVED29; + __IO uint16_t DATAR27; + uint16_t RESERVED30; + __IO uint16_t DATAR28; + uint16_t RESERVED31; + __IO uint16_t DATAR29; + uint16_t RESERVED32; + __IO uint16_t DATAR30; + uint16_t RESERVED33; + __IO uint16_t DATAR31; + uint16_t RESERVED34; + __IO uint16_t DATAR32; + uint16_t RESERVED35; + __IO uint16_t DATAR33; + uint16_t RESERVED36; + __IO uint16_t DATAR34; + uint16_t RESERVED37; + __IO uint16_t DATAR35; + uint16_t RESERVED38; + __IO uint16_t DATAR36; + uint16_t RESERVED39; + __IO uint16_t DATAR37; + uint16_t RESERVED40; + __IO uint16_t DATAR38; + uint16_t RESERVED41; + __IO uint16_t DATAR39; + uint16_t RESERVED42; + __IO uint16_t DATAR40; + uint16_t RESERVED43; + __IO uint16_t DATAR41; + uint16_t RESERVED44; + __IO uint16_t DATAR42; + uint16_t RESERVED45; +} BKP_TypeDef; + +/* CRC Calculation Unit */ +typedef struct +{ + __IO uint32_t DATAR; + __IO uint8_t IDATAR; + uint8_t RESERVED0; + uint16_t RESERVED1; + __IO uint32_t CTLR; +} CRC_TypeDef; + +/* Digital to Analog Converter */ +typedef struct +{ + __IO uint32_t CTLR; + __IO uint32_t SWTR; + __IO uint32_t R12BDHR1; + __IO uint32_t L12BDHR1; + __IO uint32_t R8BDHR1; + __IO uint32_t R12BDHR2; + __IO uint32_t L12BDHR2; + __IO uint32_t R8BDHR2; + __IO uint32_t RD12BDHR; + __IO uint32_t LD12BDHR; + __IO uint32_t RD8BDHR; + __IO uint32_t DOR1; + __IO uint32_t DOR2; +} DAC_TypeDef; + +/* Debug MCU */ +typedef struct +{ + __IO uint32_t CFGR0; + __IO uint32_t CFGR1; +} DBGMCU_TypeDef; + +/* DMA Controller */ +typedef struct +{ + __IO uint32_t CFGR; + __IO uint32_t CNTR; + __IO uint32_t PADDR; + __IO uint32_t MADDR; +} DMA_Channel_TypeDef; + +typedef struct +{ + __IO uint32_t INTFR; + __IO uint32_t INTFCR; +} DMA_TypeDef; + +/* External Interrupt/Event Controller */ +typedef struct +{ + __IO uint32_t INTENR; + __IO uint32_t EVENR; + __IO uint32_t RTENR; + __IO uint32_t FTENR; + __IO uint32_t SWIEVR; + __IO uint32_t INTFR; +} EXTI_TypeDef; + +/* FLASH Registers */ +typedef struct +{ + __IO uint32_t ACTLR; + __IO uint32_t KEYR; + __IO uint32_t OBKEYR; + __IO uint32_t STATR; + __IO uint32_t CTLR; + __IO uint32_t ADDR; + __IO uint32_t RESERVED; + __IO uint32_t OBR; + __IO uint32_t WPR; + __IO uint32_t MODEKEYR; +} FLASH_TypeDef; + +/* Option Bytes Registers */ +typedef struct +{ + __IO uint16_t RDPR; + __IO uint16_t USER; + __IO uint16_t Data0; + __IO uint16_t Data1; + __IO uint16_t WRPR0; + __IO uint16_t WRPR1; + __IO uint16_t WRPR2; + __IO uint16_t WRPR3; +} OB_TypeDef; + +/* General Purpose I/O */ +typedef struct +{ + __IO uint32_t CFGLR; + __IO uint32_t CFGHR; + __IO uint32_t INDR; + __IO uint32_t OUTDR; + __IO uint32_t BSHR; + __IO uint32_t BCR; + __IO uint32_t LCKR; +} GPIO_TypeDef; + +/* Alternate Function I/O */ +typedef struct +{ + __IO uint32_t ECR; + __IO uint32_t PCFR1; + __IO uint32_t EXTICR[4]; + uint32_t RESERVED0; + __IO uint32_t PCFR2; +} AFIO_TypeDef; + +/* Inter Integrated Circuit Interface */ +typedef struct +{ + __IO uint16_t CTLR1; + uint16_t RESERVED0; + __IO uint16_t CTLR2; + uint16_t RESERVED1; + __IO uint16_t OADDR1; + uint16_t RESERVED2; + __IO uint16_t OADDR2; + uint16_t RESERVED3; + __IO uint16_t DATAR; + uint16_t RESERVED4; + __IO uint16_t STAR1; + uint16_t RESERVED5; + __IO uint16_t STAR2; + uint16_t RESERVED6; + __IO uint16_t CKCFGR; + uint16_t RESERVED7; + __IO uint16_t RTR; + uint16_t RESERVED8; +} I2C_TypeDef; + +/* Independent WatchDog */ +typedef struct +{ + __IO uint32_t CTLR; + __IO uint32_t PSCR; + __IO uint32_t RLDR; + __IO uint32_t STATR; +} IWDG_TypeDef; + +/* Power Control */ +typedef struct +{ + __IO uint32_t CTLR; + __IO uint32_t CSR; +} PWR_TypeDef; + +/* Reset and Clock Control */ +typedef struct +{ + __IO uint32_t CTLR; + __IO uint32_t CFGR0; + __IO uint32_t INTR; + __IO uint32_t APB2PRSTR; + __IO uint32_t APB1PRSTR; + __IO uint32_t AHBPCENR; + __IO uint32_t APB2PCENR; + __IO uint32_t APB1PCENR; + __IO uint32_t BDCTLR; + __IO uint32_t RSTSCKR; +} RCC_TypeDef; + +/* Real-Time Clock */ +typedef struct +{ + __IO uint16_t CTLRH; + uint16_t RESERVED0; + __IO uint16_t CTLRL; + uint16_t RESERVED1; + __IO uint16_t PSCRH; + uint16_t RESERVED2; + __IO uint16_t PSCRL; + uint16_t RESERVED3; + __IO uint16_t DIVH; + uint16_t RESERVED4; + __IO uint16_t DIVL; + uint16_t RESERVED5; + __IO uint16_t CNTH; + uint16_t RESERVED6; + __IO uint16_t CNTL; + uint16_t RESERVED7; + __IO uint16_t ALRMH; + uint16_t RESERVED8; + __IO uint16_t ALRML; + uint16_t RESERVED9; +} RTC_TypeDef; + +/* Serial Peripheral Interface */ +typedef struct +{ + __IO uint16_t CTLR1; + uint16_t RESERVED0; + __IO uint16_t CTLR2; + uint16_t RESERVED1; + __IO uint16_t STATR; + uint16_t RESERVED2; + __IO uint16_t DATAR; + uint16_t RESERVED3; + __IO uint16_t CRCR; + uint16_t RESERVED4; + __IO uint16_t RCRCR; + uint16_t RESERVED5; + __IO uint16_t TCRCR; + uint16_t RESERVED6; + __IO uint16_t I2SCFGR; + uint16_t RESERVED7; + __IO uint16_t I2SPR; + uint16_t RESERVED8; +} SPI_TypeDef; + +/* TIM */ +typedef struct +{ + __IO uint16_t CTLR1; + uint16_t RESERVED0; + __IO uint16_t CTLR2; + uint16_t RESERVED1; + __IO uint16_t SMCFGR; + uint16_t RESERVED2; + __IO uint16_t DMAINTENR; + uint16_t RESERVED3; + __IO uint16_t INTFR; + uint16_t RESERVED4; + __IO uint16_t SWEVGR; + uint16_t RESERVED5; + __IO uint16_t CHCTLR1; + uint16_t RESERVED6; + __IO uint16_t CHCTLR2; + uint16_t RESERVED7; + __IO uint16_t CCER; + uint16_t RESERVED8; + __IO uint16_t CNT; + uint16_t RESERVED9; + __IO uint16_t PSC; + uint16_t RESERVED10; + __IO uint16_t ATRLR; + uint16_t RESERVED11; + __IO uint16_t RPTCR; + uint16_t RESERVED12; + __IO uint16_t CH1CVR; + uint16_t RESERVED13; + __IO uint16_t CH2CVR; + uint16_t RESERVED14; + __IO uint16_t CH3CVR; + uint16_t RESERVED15; + __IO uint16_t CH4CVR; + uint16_t RESERVED16; + __IO uint16_t BDTR; + uint16_t RESERVED17; + __IO uint16_t DMACFGR; + uint16_t RESERVED18; + __IO uint16_t DMAADR; + uint16_t RESERVED19; +} TIM_TypeDef; + +/* Universal Synchronous Asynchronous Receiver Transmitter */ +typedef struct +{ + __IO uint16_t STATR; + uint16_t RESERVED0; + __IO uint16_t DATAR; + uint16_t RESERVED1; + __IO uint16_t BRR; + uint16_t RESERVED2; + __IO uint16_t CTLR1; + uint16_t RESERVED3; + __IO uint16_t CTLR2; + uint16_t RESERVED4; + __IO uint16_t CTLR3; + uint16_t RESERVED5; + __IO uint16_t GPR; + uint16_t RESERVED6; +} USART_TypeDef; + +/* Window WatchDog */ +typedef struct +{ + __IO uint32_t CTLR; + __IO uint32_t CFGR; + __IO uint32_t STATR; +} WWDG_TypeDef; + +/* Enhanced Registers */ +typedef struct +{ + __IO uint32_t EXTEN_CTR; +} EXTEN_TypeDef; + +/* Peripheral memory map */ +#define FLASH_BASE ((uint32_t)0x08000000) /* FLASH base address in the alias region */ +#define SRAM_BASE ((uint32_t)0x20000000) /* SRAM base address in the alias region */ +#define PERIPH_BASE ((uint32_t)0x40000000) /* Peripheral base address in the alias region */ + +#define APB1PERIPH_BASE (PERIPH_BASE) +#define APB2PERIPH_BASE (PERIPH_BASE + 0x10000) +#define AHBPERIPH_BASE (PERIPH_BASE + 0x20000) + +#define TIM2_BASE (APB1PERIPH_BASE + 0x0000) +#define TIM3_BASE (APB1PERIPH_BASE + 0x0400) +#define TIM4_BASE (APB1PERIPH_BASE + 0x0800) +#define TIM5_BASE (APB1PERIPH_BASE + 0x0C00) +#define TIM6_BASE (APB1PERIPH_BASE + 0x1000) +#define TIM7_BASE (APB1PERIPH_BASE + 0x1400) +#define TIM12_BASE (APB1PERIPH_BASE + 0x1800) +#define TIM13_BASE (APB1PERIPH_BASE + 0x1C00) +#define TIM14_BASE (APB1PERIPH_BASE + 0x2000) +#define RTC_BASE (APB1PERIPH_BASE + 0x2800) +#define WWDG_BASE (APB1PERIPH_BASE + 0x2C00) +#define IWDG_BASE (APB1PERIPH_BASE + 0x3000) +#define SPI2_BASE (APB1PERIPH_BASE + 0x3800) +#define SPI3_BASE (APB1PERIPH_BASE + 0x3C00) +#define USART2_BASE (APB1PERIPH_BASE + 0x4400) +#define USART3_BASE (APB1PERIPH_BASE + 0x4800) +#define UART4_BASE (APB1PERIPH_BASE + 0x4C00) +#define UART5_BASE (APB1PERIPH_BASE + 0x5000) +#define I2C1_BASE (APB1PERIPH_BASE + 0x5400) +#define I2C2_BASE (APB1PERIPH_BASE + 0x5800) +#define BKP_BASE (APB1PERIPH_BASE + 0x6C00) +#define PWR_BASE (APB1PERIPH_BASE + 0x7000) +#define DAC_BASE (APB1PERIPH_BASE + 0x7400) + +#define AFIO_BASE (APB2PERIPH_BASE + 0x0000) +#define EXTI_BASE (APB2PERIPH_BASE + 0x0400) +#define GPIOA_BASE (APB2PERIPH_BASE + 0x0800) +#define GPIOB_BASE (APB2PERIPH_BASE + 0x0C00) +#define GPIOC_BASE (APB2PERIPH_BASE + 0x1000) +#define GPIOD_BASE (APB2PERIPH_BASE + 0x1400) +#define GPIOE_BASE (APB2PERIPH_BASE + 0x1800) +#define GPIOF_BASE (APB2PERIPH_BASE + 0x1C00) +#define GPIOG_BASE (APB2PERIPH_BASE + 0x2000) +#define ADC1_BASE (APB2PERIPH_BASE + 0x2400) +#define ADC2_BASE (APB2PERIPH_BASE + 0x2800) +#define TIM1_BASE (APB2PERIPH_BASE + 0x2C00) +#define SPI1_BASE (APB2PERIPH_BASE + 0x3000) +#define TIM8_BASE (APB2PERIPH_BASE + 0x3400) +#define USART1_BASE (APB2PERIPH_BASE + 0x3800) +#define ADC3_BASE (APB2PERIPH_BASE + 0x3C00) +#define TIM15_BASE (APB2PERIPH_BASE + 0x4000) +#define TIM16_BASE (APB2PERIPH_BASE + 0x4400) +#define TIM17_BASE (APB2PERIPH_BASE + 0x4800) +#define TIM9_BASE (APB2PERIPH_BASE + 0x4C00) +#define TIM10_BASE (APB2PERIPH_BASE + 0x5000) +#define TIM11_BASE (APB2PERIPH_BASE + 0x5400) + +#define DMA1_BASE (AHBPERIPH_BASE + 0x0000) +#define DMA1_Channel1_BASE (AHBPERIPH_BASE + 0x0008) +#define DMA1_Channel2_BASE (AHBPERIPH_BASE + 0x001C) +#define DMA1_Channel3_BASE (AHBPERIPH_BASE + 0x0030) +#define DMA1_Channel4_BASE (AHBPERIPH_BASE + 0x0044) +#define DMA1_Channel5_BASE (AHBPERIPH_BASE + 0x0058) +#define DMA1_Channel6_BASE (AHBPERIPH_BASE + 0x006C) +#define DMA1_Channel7_BASE (AHBPERIPH_BASE + 0x0080) +#define DMA2_BASE (AHBPERIPH_BASE + 0x0400) +#define DMA2_Channel1_BASE (AHBPERIPH_BASE + 0x0408) +#define DMA2_Channel2_BASE (AHBPERIPH_BASE + 0x041C) +#define DMA2_Channel3_BASE (AHBPERIPH_BASE + 0x0430) +#define DMA2_Channel4_BASE (AHBPERIPH_BASE + 0x0444) +#define DMA2_Channel5_BASE (AHBPERIPH_BASE + 0x0458) +#define RCC_BASE (AHBPERIPH_BASE + 0x1000) +#define CRC_BASE (AHBPERIPH_BASE + 0x3000) + +#define FLASH_R_BASE (AHBPERIPH_BASE + 0x2000) /* Flash registers base address */ +#define OB_BASE ((uint32_t)0x1FFFF800) /* Flash Option Bytes base address */ +#define DBGMCU_BASE ((uint32_t)0xE000D000) +#define EXTEN_BASE ((uint32_t)0x40023800) + +/* Peripheral declaration */ +#define TIM2 ((TIM_TypeDef *)TIM2_BASE) +#define TIM3 ((TIM_TypeDef *)TIM3_BASE) +#define TIM4 ((TIM_TypeDef *)TIM4_BASE) +#define TIM5 ((TIM_TypeDef *)TIM5_BASE) +#define TIM6 ((TIM_TypeDef *)TIM6_BASE) +#define TIM7 ((TIM_TypeDef *)TIM7_BASE) +#define TIM12 ((TIM_TypeDef *)TIM12_BASE) +#define TIM13 ((TIM_TypeDef *)TIM13_BASE) +#define TIM14 ((TIM_TypeDef *)TIM14_BASE) +#define RTC ((RTC_TypeDef *)RTC_BASE) +#define WWDG ((WWDG_TypeDef *)WWDG_BASE) +#define IWDG ((IWDG_TypeDef *)IWDG_BASE) +#define SPI2 ((SPI_TypeDef *)SPI2_BASE) +#define SPI3 ((SPI_TypeDef *)SPI3_BASE) +#define USART2 ((USART_TypeDef *)USART2_BASE) +#define USART3 ((USART_TypeDef *)USART3_BASE) +#define UART4 ((USART_TypeDef *)UART4_BASE) +#define UART5 ((USART_TypeDef *)UART5_BASE) +#define I2C1 ((I2C_TypeDef *)I2C1_BASE) +#define I2C2 ((I2C_TypeDef *)I2C2_BASE) +#define BKP ((BKP_TypeDef *)BKP_BASE) +#define PWR ((PWR_TypeDef *)PWR_BASE) +#define DAC ((DAC_TypeDef *)DAC_BASE) +#define AFIO ((AFIO_TypeDef *)AFIO_BASE) +#define EXTI ((EXTI_TypeDef *)EXTI_BASE) +#define GPIOA ((GPIO_TypeDef *)GPIOA_BASE) +#define GPIOB ((GPIO_TypeDef *)GPIOB_BASE) +#define GPIOC ((GPIO_TypeDef *)GPIOC_BASE) +#define GPIOD ((GPIO_TypeDef *)GPIOD_BASE) +#define GPIOE ((GPIO_TypeDef *)GPIOE_BASE) +#define GPIOF ((GPIO_TypeDef *)GPIOF_BASE) +#define GPIOG ((GPIO_TypeDef *)GPIOG_BASE) +#define ADC1 ((ADC_TypeDef *)ADC1_BASE) +#define ADC2 ((ADC_TypeDef *)ADC2_BASE) +#define TIM1 ((TIM_TypeDef *)TIM1_BASE) +#define SPI1 ((SPI_TypeDef *)SPI1_BASE) +#define TIM8 ((TIM_TypeDef *)TIM8_BASE) +#define USART1 ((USART_TypeDef *)USART1_BASE) +#define ADC3 ((ADC_TypeDef *)ADC3_BASE) +#define TIM15 ((TIM_TypeDef *)TIM15_BASE) +#define TIM16 ((TIM_TypeDef *)TIM16_BASE) +#define TIM17 ((TIM_TypeDef *)TIM17_BASE) +#define TIM9 ((TIM_TypeDef *)TIM9_BASE) +#define TIM10 ((TIM_TypeDef *)TIM10_BASE) +#define TIM11 ((TIM_TypeDef *)TIM11_BASE) +#define DMA1 ((DMA_TypeDef *)DMA1_BASE) +#define DMA2 ((DMA_TypeDef *)DMA2_BASE) +#define DMA1_Channel1 ((DMA_Channel_TypeDef *)DMA1_Channel1_BASE) +#define DMA1_Channel2 ((DMA_Channel_TypeDef *)DMA1_Channel2_BASE) +#define DMA1_Channel3 ((DMA_Channel_TypeDef *)DMA1_Channel3_BASE) +#define DMA1_Channel4 ((DMA_Channel_TypeDef *)DMA1_Channel4_BASE) +#define DMA1_Channel5 ((DMA_Channel_TypeDef *)DMA1_Channel5_BASE) +#define DMA1_Channel6 ((DMA_Channel_TypeDef *)DMA1_Channel6_BASE) +#define DMA1_Channel7 ((DMA_Channel_TypeDef *)DMA1_Channel7_BASE) +#define DMA2_Channel1 ((DMA_Channel_TypeDef *)DMA2_Channel1_BASE) +#define DMA2_Channel2 ((DMA_Channel_TypeDef *)DMA2_Channel2_BASE) +#define DMA2_Channel3 ((DMA_Channel_TypeDef *)DMA2_Channel3_BASE) +#define DMA2_Channel4 ((DMA_Channel_TypeDef *)DMA2_Channel4_BASE) +#define DMA2_Channel5 ((DMA_Channel_TypeDef *)DMA2_Channel5_BASE) +#define RCC ((RCC_TypeDef *)RCC_BASE) +#define CRC ((CRC_TypeDef *)CRC_BASE) +#define FLASH ((FLASH_TypeDef *)FLASH_R_BASE) +#define OB ((OB_TypeDef *)OB_BASE) +#define DBGMCU ((DBGMCU_TypeDef *)DBGMCU_BASE) +#define EXTEN ((EXTEN_TypeDef *)EXTEN_BASE) + +/******************************************************************************/ +/* Peripheral Registers Bits Definition */ +/******************************************************************************/ + +/******************************************************************************/ +/* Analog to Digital Converter */ +/******************************************************************************/ + +/******************** Bit definition for ADC_STATR register ********************/ +#define ADC_AWD ((uint8_t)0x01) /* Analog watchdog flag */ +#define ADC_EOC ((uint8_t)0x02) /* End of conversion */ +#define ADC_JEOC ((uint8_t)0x04) /* Injected channel end of conversion */ +#define ADC_JSTRT ((uint8_t)0x08) /* Injected channel Start flag */ +#define ADC_STRT ((uint8_t)0x10) /* Regular channel Start flag */ + +/******************* Bit definition for ADC_CTLR1 register ********************/ +#define ADC_AWDCH ((uint32_t)0x0000001F) /* AWDCH[4:0] bits (Analog watchdog channel select bits) */ +#define ADC_AWDCH_0 ((uint32_t)0x00000001) /* Bit 0 */ +#define ADC_AWDCH_1 ((uint32_t)0x00000002) /* Bit 1 */ +#define ADC_AWDCH_2 ((uint32_t)0x00000004) /* Bit 2 */ +#define ADC_AWDCH_3 ((uint32_t)0x00000008) /* Bit 3 */ +#define ADC_AWDCH_4 ((uint32_t)0x00000010) /* Bit 4 */ + +#define ADC_EOCIE ((uint32_t)0x00000020) /* Interrupt enable for EOC */ +#define ADC_AWDIE ((uint32_t)0x00000040) /* Analog Watchdog interrupt enable */ +#define ADC_JEOCIE ((uint32_t)0x00000080) /* Interrupt enable for injected channels */ +#define ADC_SCAN ((uint32_t)0x00000100) /* Scan mode */ +#define ADC_AWDSGL ((uint32_t)0x00000200) /* Enable the watchdog on a single channel in scan mode */ +#define ADC_JAUTO ((uint32_t)0x00000400) /* Automatic injected group conversion */ +#define ADC_DISCEN ((uint32_t)0x00000800) /* Discontinuous mode on regular channels */ +#define ADC_JDISCEN ((uint32_t)0x00001000) /* Discontinuous mode on injected channels */ + +#define ADC_DISCNUM ((uint32_t)0x0000E000) /* DISCNUM[2:0] bits (Discontinuous mode channel count) */ +#define ADC_DISCNUM_0 ((uint32_t)0x00002000) /* Bit 0 */ +#define ADC_DISCNUM_1 ((uint32_t)0x00004000) /* Bit 1 */ +#define ADC_DISCNUM_2 ((uint32_t)0x00008000) /* Bit 2 */ + +#define ADC_DUALMOD ((uint32_t)0x000F0000) /* DUALMOD[3:0] bits (Dual mode selection) */ +#define ADC_DUALMOD_0 ((uint32_t)0x00010000) /* Bit 0 */ +#define ADC_DUALMOD_1 ((uint32_t)0x00020000) /* Bit 1 */ +#define ADC_DUALMOD_2 ((uint32_t)0x00040000) /* Bit 2 */ +#define ADC_DUALMOD_3 ((uint32_t)0x00080000) /* Bit 3 */ + +#define ADC_JAWDEN ((uint32_t)0x00400000) /* Analog watchdog enable on injected channels */ +#define ADC_AWDEN ((uint32_t)0x00800000) /* Analog watchdog enable on regular channels */ + +/******************* Bit definition for ADC_CTLR2 register ********************/ +#define ADC_ADON ((uint32_t)0x00000001) /* A/D Converter ON / OFF */ +#define ADC_CONT ((uint32_t)0x00000002) /* Continuous Conversion */ +#define ADC_CAL ((uint32_t)0x00000004) /* A/D Calibration */ +#define ADC_RSTCAL ((uint32_t)0x00000008) /* Reset Calibration */ +#define ADC_DMA ((uint32_t)0x00000100) /* Direct Memory access mode */ +#define ADC_ALIGN ((uint32_t)0x00000800) /* Data Alignment */ + +#define ADC_JEXTSEL ((uint32_t)0x00007000) /* JEXTSEL[2:0] bits (External event select for injected group) */ +#define ADC_JEXTSEL_0 ((uint32_t)0x00001000) /* Bit 0 */ +#define ADC_JEXTSEL_1 ((uint32_t)0x00002000) /* Bit 1 */ +#define ADC_JEXTSEL_2 ((uint32_t)0x00004000) /* Bit 2 */ + +#define ADC_JEXTTRIG ((uint32_t)0x00008000) /* External Trigger Conversion mode for injected channels */ + +#define ADC_EXTSEL ((uint32_t)0x000E0000) /* EXTSEL[2:0] bits (External Event Select for regular group) */ +#define ADC_EXTSEL_0 ((uint32_t)0x00020000) /* Bit 0 */ +#define ADC_EXTSEL_1 ((uint32_t)0x00040000) /* Bit 1 */ +#define ADC_EXTSEL_2 ((uint32_t)0x00080000) /* Bit 2 */ + +#define ADC_EXTTRIG ((uint32_t)0x00100000) /* External Trigger Conversion mode for regular channels */ +#define ADC_JSWSTART ((uint32_t)0x00200000) /* Start Conversion of injected channels */ +#define ADC_SWSTART ((uint32_t)0x00400000) /* Start Conversion of regular channels */ +#define ADC_TSVREFE ((uint32_t)0x00800000) /* Temperature Sensor and VREFINT Enable */ + +/****************** Bit definition for ADC_SAMPTR1 register *******************/ +#define ADC_SMP10 ((uint32_t)0x00000007) /* SMP10[2:0] bits (Channel 10 Sample time selection) */ +#define ADC_SMP10_0 ((uint32_t)0x00000001) /* Bit 0 */ +#define ADC_SMP10_1 ((uint32_t)0x00000002) /* Bit 1 */ +#define ADC_SMP10_2 ((uint32_t)0x00000004) /* Bit 2 */ + +#define ADC_SMP11 ((uint32_t)0x00000038) /* SMP11[2:0] bits (Channel 11 Sample time selection) */ +#define ADC_SMP11_0 ((uint32_t)0x00000008) /* Bit 0 */ +#define ADC_SMP11_1 ((uint32_t)0x00000010) /* Bit 1 */ +#define ADC_SMP11_2 ((uint32_t)0x00000020) /* Bit 2 */ + +#define ADC_SMP12 ((uint32_t)0x000001C0) /* SMP12[2:0] bits (Channel 12 Sample time selection) */ +#define ADC_SMP12_0 ((uint32_t)0x00000040) /* Bit 0 */ +#define ADC_SMP12_1 ((uint32_t)0x00000080) /* Bit 1 */ +#define ADC_SMP12_2 ((uint32_t)0x00000100) /* Bit 2 */ + +#define ADC_SMP13 ((uint32_t)0x00000E00) /* SMP13[2:0] bits (Channel 13 Sample time selection) */ +#define ADC_SMP13_0 ((uint32_t)0x00000200) /* Bit 0 */ +#define ADC_SMP13_1 ((uint32_t)0x00000400) /* Bit 1 */ +#define ADC_SMP13_2 ((uint32_t)0x00000800) /* Bit 2 */ + +#define ADC_SMP14 ((uint32_t)0x00007000) /* SMP14[2:0] bits (Channel 14 Sample time selection) */ +#define ADC_SMP14_0 ((uint32_t)0x00001000) /* Bit 0 */ +#define ADC_SMP14_1 ((uint32_t)0x00002000) /* Bit 1 */ +#define ADC_SMP14_2 ((uint32_t)0x00004000) /* Bit 2 */ + +#define ADC_SMP15 ((uint32_t)0x00038000) /* SMP15[2:0] bits (Channel 15 Sample time selection) */ +#define ADC_SMP15_0 ((uint32_t)0x00008000) /* Bit 0 */ +#define ADC_SMP15_1 ((uint32_t)0x00010000) /* Bit 1 */ +#define ADC_SMP15_2 ((uint32_t)0x00020000) /* Bit 2 */ + +#define ADC_SMP16 ((uint32_t)0x001C0000) /* SMP16[2:0] bits (Channel 16 Sample time selection) */ +#define ADC_SMP16_0 ((uint32_t)0x00040000) /* Bit 0 */ +#define ADC_SMP16_1 ((uint32_t)0x00080000) /* Bit 1 */ +#define ADC_SMP16_2 ((uint32_t)0x00100000) /* Bit 2 */ + +#define ADC_SMP17 ((uint32_t)0x00E00000) /* SMP17[2:0] bits (Channel 17 Sample time selection) */ +#define ADC_SMP17_0 ((uint32_t)0x00200000) /* Bit 0 */ +#define ADC_SMP17_1 ((uint32_t)0x00400000) /* Bit 1 */ +#define ADC_SMP17_2 ((uint32_t)0x00800000) /* Bit 2 */ + +/****************** Bit definition for ADC_SAMPTR2 register *******************/ +#define ADC_SMP0 ((uint32_t)0x00000007) /* SMP0[2:0] bits (Channel 0 Sample time selection) */ +#define ADC_SMP0_0 ((uint32_t)0x00000001) /* Bit 0 */ +#define ADC_SMP0_1 ((uint32_t)0x00000002) /* Bit 1 */ +#define ADC_SMP0_2 ((uint32_t)0x00000004) /* Bit 2 */ + +#define ADC_SMP1 ((uint32_t)0x00000038) /* SMP1[2:0] bits (Channel 1 Sample time selection) */ +#define ADC_SMP1_0 ((uint32_t)0x00000008) /* Bit 0 */ +#define ADC_SMP1_1 ((uint32_t)0x00000010) /* Bit 1 */ +#define ADC_SMP1_2 ((uint32_t)0x00000020) /* Bit 2 */ + +#define ADC_SMP2 ((uint32_t)0x000001C0) /* SMP2[2:0] bits (Channel 2 Sample time selection) */ +#define ADC_SMP2_0 ((uint32_t)0x00000040) /* Bit 0 */ +#define ADC_SMP2_1 ((uint32_t)0x00000080) /* Bit 1 */ +#define ADC_SMP2_2 ((uint32_t)0x00000100) /* Bit 2 */ + +#define ADC_SMP3 ((uint32_t)0x00000E00) /* SMP3[2:0] bits (Channel 3 Sample time selection) */ +#define ADC_SMP3_0 ((uint32_t)0x00000200) /* Bit 0 */ +#define ADC_SMP3_1 ((uint32_t)0x00000400) /* Bit 1 */ +#define ADC_SMP3_2 ((uint32_t)0x00000800) /* Bit 2 */ + +#define ADC_SMP4 ((uint32_t)0x00007000) /* SMP4[2:0] bits (Channel 4 Sample time selection) */ +#define ADC_SMP4_0 ((uint32_t)0x00001000) /* Bit 0 */ +#define ADC_SMP4_1 ((uint32_t)0x00002000) /* Bit 1 */ +#define ADC_SMP4_2 ((uint32_t)0x00004000) /* Bit 2 */ + +#define ADC_SMP5 ((uint32_t)0x00038000) /* SMP5[2:0] bits (Channel 5 Sample time selection) */ +#define ADC_SMP5_0 ((uint32_t)0x00008000) /* Bit 0 */ +#define ADC_SMP5_1 ((uint32_t)0x00010000) /* Bit 1 */ +#define ADC_SMP5_2 ((uint32_t)0x00020000) /* Bit 2 */ + +#define ADC_SMP6 ((uint32_t)0x001C0000) /* SMP6[2:0] bits (Channel 6 Sample time selection) */ +#define ADC_SMP6_0 ((uint32_t)0x00040000) /* Bit 0 */ +#define ADC_SMP6_1 ((uint32_t)0x00080000) /* Bit 1 */ +#define ADC_SMP6_2 ((uint32_t)0x00100000) /* Bit 2 */ + +#define ADC_SMP7 ((uint32_t)0x00E00000) /* SMP7[2:0] bits (Channel 7 Sample time selection) */ +#define ADC_SMP7_0 ((uint32_t)0x00200000) /* Bit 0 */ +#define ADC_SMP7_1 ((uint32_t)0x00400000) /* Bit 1 */ +#define ADC_SMP7_2 ((uint32_t)0x00800000) /* Bit 2 */ + +#define ADC_SMP8 ((uint32_t)0x07000000) /* SMP8[2:0] bits (Channel 8 Sample time selection) */ +#define ADC_SMP8_0 ((uint32_t)0x01000000) /* Bit 0 */ +#define ADC_SMP8_1 ((uint32_t)0x02000000) /* Bit 1 */ +#define ADC_SMP8_2 ((uint32_t)0x04000000) /* Bit 2 */ + +#define ADC_SMP9 ((uint32_t)0x38000000) /* SMP9[2:0] bits (Channel 9 Sample time selection) */ +#define ADC_SMP9_0 ((uint32_t)0x08000000) /* Bit 0 */ +#define ADC_SMP9_1 ((uint32_t)0x10000000) /* Bit 1 */ +#define ADC_SMP9_2 ((uint32_t)0x20000000) /* Bit 2 */ + +/****************** Bit definition for ADC_IOFR1 register *******************/ +#define ADC_JOFFSET1 ((uint16_t)0x0FFF) /* Data offset for injected channel 1 */ + +/****************** Bit definition for ADC_IOFR2 register *******************/ +#define ADC_JOFFSET2 ((uint16_t)0x0FFF) /* Data offset for injected channel 2 */ + +/****************** Bit definition for ADC_IOFR3 register *******************/ +#define ADC_JOFFSET3 ((uint16_t)0x0FFF) /* Data offset for injected channel 3 */ + +/****************** Bit definition for ADC_IOFR4 register *******************/ +#define ADC_JOFFSET4 ((uint16_t)0x0FFF) /* Data offset for injected channel 4 */ + +/******************* Bit definition for ADC_WDHTR register ********************/ +#define ADC_HT ((uint16_t)0x0FFF) /* Analog watchdog high threshold */ + +/******************* Bit definition for ADC_WDLTR register ********************/ +#define ADC_LT ((uint16_t)0x0FFF) /* Analog watchdog low threshold */ + +/******************* Bit definition for ADC_RSQR1 register *******************/ +#define ADC_SQ13 ((uint32_t)0x0000001F) /* SQ13[4:0] bits (13th conversion in regular sequence) */ +#define ADC_SQ13_0 ((uint32_t)0x00000001) /* Bit 0 */ +#define ADC_SQ13_1 ((uint32_t)0x00000002) /* Bit 1 */ +#define ADC_SQ13_2 ((uint32_t)0x00000004) /* Bit 2 */ +#define ADC_SQ13_3 ((uint32_t)0x00000008) /* Bit 3 */ +#define ADC_SQ13_4 ((uint32_t)0x00000010) /* Bit 4 */ + +#define ADC_SQ14 ((uint32_t)0x000003E0) /* SQ14[4:0] bits (14th conversion in regular sequence) */ +#define ADC_SQ14_0 ((uint32_t)0x00000020) /* Bit 0 */ +#define ADC_SQ14_1 ((uint32_t)0x00000040) /* Bit 1 */ +#define ADC_SQ14_2 ((uint32_t)0x00000080) /* Bit 2 */ +#define ADC_SQ14_3 ((uint32_t)0x00000100) /* Bit 3 */ +#define ADC_SQ14_4 ((uint32_t)0x00000200) /* Bit 4 */ + +#define ADC_SQ15 ((uint32_t)0x00007C00) /* SQ15[4:0] bits (15th conversion in regular sequence) */ +#define ADC_SQ15_0 ((uint32_t)0x00000400) /* Bit 0 */ +#define ADC_SQ15_1 ((uint32_t)0x00000800) /* Bit 1 */ +#define ADC_SQ15_2 ((uint32_t)0x00001000) /* Bit 2 */ +#define ADC_SQ15_3 ((uint32_t)0x00002000) /* Bit 3 */ +#define ADC_SQ15_4 ((uint32_t)0x00004000) /* Bit 4 */ + +#define ADC_SQ16 ((uint32_t)0x000F8000) /* SQ16[4:0] bits (16th conversion in regular sequence) */ +#define ADC_SQ16_0 ((uint32_t)0x00008000) /* Bit 0 */ +#define ADC_SQ16_1 ((uint32_t)0x00010000) /* Bit 1 */ +#define ADC_SQ16_2 ((uint32_t)0x00020000) /* Bit 2 */ +#define ADC_SQ16_3 ((uint32_t)0x00040000) /* Bit 3 */ +#define ADC_SQ16_4 ((uint32_t)0x00080000) /* Bit 4 */ + +#define ADC_L ((uint32_t)0x00F00000) /* L[3:0] bits (Regular channel sequence length) */ +#define ADC_L_0 ((uint32_t)0x00100000) /* Bit 0 */ +#define ADC_L_1 ((uint32_t)0x00200000) /* Bit 1 */ +#define ADC_L_2 ((uint32_t)0x00400000) /* Bit 2 */ +#define ADC_L_3 ((uint32_t)0x00800000) /* Bit 3 */ + +/******************* Bit definition for ADC_RSQR2 register *******************/ +#define ADC_SQ7 ((uint32_t)0x0000001F) /* SQ7[4:0] bits (7th conversion in regular sequence) */ +#define ADC_SQ7_0 ((uint32_t)0x00000001) /* Bit 0 */ +#define ADC_SQ7_1 ((uint32_t)0x00000002) /* Bit 1 */ +#define ADC_SQ7_2 ((uint32_t)0x00000004) /* Bit 2 */ +#define ADC_SQ7_3 ((uint32_t)0x00000008) /* Bit 3 */ +#define ADC_SQ7_4 ((uint32_t)0x00000010) /* Bit 4 */ + +#define ADC_SQ8 ((uint32_t)0x000003E0) /* SQ8[4:0] bits (8th conversion in regular sequence) */ +#define ADC_SQ8_0 ((uint32_t)0x00000020) /* Bit 0 */ +#define ADC_SQ8_1 ((uint32_t)0x00000040) /* Bit 1 */ +#define ADC_SQ8_2 ((uint32_t)0x00000080) /* Bit 2 */ +#define ADC_SQ8_3 ((uint32_t)0x00000100) /* Bit 3 */ +#define ADC_SQ8_4 ((uint32_t)0x00000200) /* Bit 4 */ + +#define ADC_SQ9 ((uint32_t)0x00007C00) /* SQ9[4:0] bits (9th conversion in regular sequence) */ +#define ADC_SQ9_0 ((uint32_t)0x00000400) /* Bit 0 */ +#define ADC_SQ9_1 ((uint32_t)0x00000800) /* Bit 1 */ +#define ADC_SQ9_2 ((uint32_t)0x00001000) /* Bit 2 */ +#define ADC_SQ9_3 ((uint32_t)0x00002000) /* Bit 3 */ +#define ADC_SQ9_4 ((uint32_t)0x00004000) /* Bit 4 */ + +#define ADC_SQ10 ((uint32_t)0x000F8000) /* SQ10[4:0] bits (10th conversion in regular sequence) */ +#define ADC_SQ10_0 ((uint32_t)0x00008000) /* Bit 0 */ +#define ADC_SQ10_1 ((uint32_t)0x00010000) /* Bit 1 */ +#define ADC_SQ10_2 ((uint32_t)0x00020000) /* Bit 2 */ +#define ADC_SQ10_3 ((uint32_t)0x00040000) /* Bit 3 */ +#define ADC_SQ10_4 ((uint32_t)0x00080000) /* Bit 4 */ + +#define ADC_SQ11 ((uint32_t)0x01F00000) /* SQ11[4:0] bits (11th conversion in regular sequence) */ +#define ADC_SQ11_0 ((uint32_t)0x00100000) /* Bit 0 */ +#define ADC_SQ11_1 ((uint32_t)0x00200000) /* Bit 1 */ +#define ADC_SQ11_2 ((uint32_t)0x00400000) /* Bit 2 */ +#define ADC_SQ11_3 ((uint32_t)0x00800000) /* Bit 3 */ +#define ADC_SQ11_4 ((uint32_t)0x01000000) /* Bit 4 */ + +#define ADC_SQ12 ((uint32_t)0x3E000000) /* SQ12[4:0] bits (12th conversion in regular sequence) */ +#define ADC_SQ12_0 ((uint32_t)0x02000000) /* Bit 0 */ +#define ADC_SQ12_1 ((uint32_t)0x04000000) /* Bit 1 */ +#define ADC_SQ12_2 ((uint32_t)0x08000000) /* Bit 2 */ +#define ADC_SQ12_3 ((uint32_t)0x10000000) /* Bit 3 */ +#define ADC_SQ12_4 ((uint32_t)0x20000000) /* Bit 4 */ + +/******************* Bit definition for ADC_RSQR3 register *******************/ +#define ADC_SQ1 ((uint32_t)0x0000001F) /* SQ1[4:0] bits (1st conversion in regular sequence) */ +#define ADC_SQ1_0 ((uint32_t)0x00000001) /* Bit 0 */ +#define ADC_SQ1_1 ((uint32_t)0x00000002) /* Bit 1 */ +#define ADC_SQ1_2 ((uint32_t)0x00000004) /* Bit 2 */ +#define ADC_SQ1_3 ((uint32_t)0x00000008) /* Bit 3 */ +#define ADC_SQ1_4 ((uint32_t)0x00000010) /* Bit 4 */ + +#define ADC_SQ2 ((uint32_t)0x000003E0) /* SQ2[4:0] bits (2nd conversion in regular sequence) */ +#define ADC_SQ2_0 ((uint32_t)0x00000020) /* Bit 0 */ +#define ADC_SQ2_1 ((uint32_t)0x00000040) /* Bit 1 */ +#define ADC_SQ2_2 ((uint32_t)0x00000080) /* Bit 2 */ +#define ADC_SQ2_3 ((uint32_t)0x00000100) /* Bit 3 */ +#define ADC_SQ2_4 ((uint32_t)0x00000200) /* Bit 4 */ + +#define ADC_SQ3 ((uint32_t)0x00007C00) /* SQ3[4:0] bits (3rd conversion in regular sequence) */ +#define ADC_SQ3_0 ((uint32_t)0x00000400) /* Bit 0 */ +#define ADC_SQ3_1 ((uint32_t)0x00000800) /* Bit 1 */ +#define ADC_SQ3_2 ((uint32_t)0x00001000) /* Bit 2 */ +#define ADC_SQ3_3 ((uint32_t)0x00002000) /* Bit 3 */ +#define ADC_SQ3_4 ((uint32_t)0x00004000) /* Bit 4 */ + +#define ADC_SQ4 ((uint32_t)0x000F8000) /* SQ4[4:0] bits (4th conversion in regular sequence) */ +#define ADC_SQ4_0 ((uint32_t)0x00008000) /* Bit 0 */ +#define ADC_SQ4_1 ((uint32_t)0x00010000) /* Bit 1 */ +#define ADC_SQ4_2 ((uint32_t)0x00020000) /* Bit 2 */ +#define ADC_SQ4_3 ((uint32_t)0x00040000) /* Bit 3 */ +#define ADC_SQ4_4 ((uint32_t)0x00080000) /* Bit 4 */ + +#define ADC_SQ5 ((uint32_t)0x01F00000) /* SQ5[4:0] bits (5th conversion in regular sequence) */ +#define ADC_SQ5_0 ((uint32_t)0x00100000) /* Bit 0 */ +#define ADC_SQ5_1 ((uint32_t)0x00200000) /* Bit 1 */ +#define ADC_SQ5_2 ((uint32_t)0x00400000) /* Bit 2 */ +#define ADC_SQ5_3 ((uint32_t)0x00800000) /* Bit 3 */ +#define ADC_SQ5_4 ((uint32_t)0x01000000) /* Bit 4 */ + +#define ADC_SQ6 ((uint32_t)0x3E000000) /* SQ6[4:0] bits (6th conversion in regular sequence) */ +#define ADC_SQ6_0 ((uint32_t)0x02000000) /* Bit 0 */ +#define ADC_SQ6_1 ((uint32_t)0x04000000) /* Bit 1 */ +#define ADC_SQ6_2 ((uint32_t)0x08000000) /* Bit 2 */ +#define ADC_SQ6_3 ((uint32_t)0x10000000) /* Bit 3 */ +#define ADC_SQ6_4 ((uint32_t)0x20000000) /* Bit 4 */ + +/******************* Bit definition for ADC_ISQR register *******************/ +#define ADC_JSQ1 ((uint32_t)0x0000001F) /* JSQ1[4:0] bits (1st conversion in injected sequence) */ +#define ADC_JSQ1_0 ((uint32_t)0x00000001) /* Bit 0 */ +#define ADC_JSQ1_1 ((uint32_t)0x00000002) /* Bit 1 */ +#define ADC_JSQ1_2 ((uint32_t)0x00000004) /* Bit 2 */ +#define ADC_JSQ1_3 ((uint32_t)0x00000008) /* Bit 3 */ +#define ADC_JSQ1_4 ((uint32_t)0x00000010) /* Bit 4 */ + +#define ADC_JSQ2 ((uint32_t)0x000003E0) /* JSQ2[4:0] bits (2nd conversion in injected sequence) */ +#define ADC_JSQ2_0 ((uint32_t)0x00000020) /* Bit 0 */ +#define ADC_JSQ2_1 ((uint32_t)0x00000040) /* Bit 1 */ +#define ADC_JSQ2_2 ((uint32_t)0x00000080) /* Bit 2 */ +#define ADC_JSQ2_3 ((uint32_t)0x00000100) /* Bit 3 */ +#define ADC_JSQ2_4 ((uint32_t)0x00000200) /* Bit 4 */ + +#define ADC_JSQ3 ((uint32_t)0x00007C00) /* JSQ3[4:0] bits (3rd conversion in injected sequence) */ +#define ADC_JSQ3_0 ((uint32_t)0x00000400) /* Bit 0 */ +#define ADC_JSQ3_1 ((uint32_t)0x00000800) /* Bit 1 */ +#define ADC_JSQ3_2 ((uint32_t)0x00001000) /* Bit 2 */ +#define ADC_JSQ3_3 ((uint32_t)0x00002000) /* Bit 3 */ +#define ADC_JSQ3_4 ((uint32_t)0x00004000) /* Bit 4 */ + +#define ADC_JSQ4 ((uint32_t)0x000F8000) /* JSQ4[4:0] bits (4th conversion in injected sequence) */ +#define ADC_JSQ4_0 ((uint32_t)0x00008000) /* Bit 0 */ +#define ADC_JSQ4_1 ((uint32_t)0x00010000) /* Bit 1 */ +#define ADC_JSQ4_2 ((uint32_t)0x00020000) /* Bit 2 */ +#define ADC_JSQ4_3 ((uint32_t)0x00040000) /* Bit 3 */ +#define ADC_JSQ4_4 ((uint32_t)0x00080000) /* Bit 4 */ + +#define ADC_JL ((uint32_t)0x00300000) /* JL[1:0] bits (Injected Sequence length) */ +#define ADC_JL_0 ((uint32_t)0x00100000) /* Bit 0 */ +#define ADC_JL_1 ((uint32_t)0x00200000) /* Bit 1 */ + +/******************* Bit definition for ADC_IDATAR1 register *******************/ +#define ADC_IDATAR1_JDATA ((uint16_t)0xFFFF) /* Injected data */ + +/******************* Bit definition for ADC_IDATAR2 register *******************/ +#define ADC_IDATAR2_JDATA ((uint16_t)0xFFFF) /* Injected data */ + +/******************* Bit definition for ADC_IDATAR3 register *******************/ +#define ADC_IDATAR3_JDATA ((uint16_t)0xFFFF) /* Injected data */ + +/******************* Bit definition for ADC_IDATAR4 register *******************/ +#define ADC_IDATAR4_JDATA ((uint16_t)0xFFFF) /* Injected data */ + +/******************** Bit definition for ADC_RDATAR register ********************/ +#define ADC_RDATAR_DATA ((uint32_t)0x0000FFFF) /* Regular data */ +#define ADC_RDATAR_ADC2DATA ((uint32_t)0xFFFF0000) /* ADC2 data */ + +/******************************************************************************/ +/* Backup registers */ +/******************************************************************************/ + +/******************* Bit definition for BKP_DATAR1 register ********************/ +#define BKP_DATAR1_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR2 register ********************/ +#define BKP_DATAR2_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR3 register ********************/ +#define BKP_DATAR3_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR4 register ********************/ +#define BKP_DATAR4_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR5 register ********************/ +#define BKP_DATAR5_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR6 register ********************/ +#define BKP_DATAR6_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR7 register ********************/ +#define BKP_DATAR7_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR8 register ********************/ +#define BKP_DATAR8_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR9 register ********************/ +#define BKP_DATAR9_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR10 register *******************/ +#define BKP_DATAR10_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR11 register *******************/ +#define BKP_DATAR11_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR12 register *******************/ +#define BKP_DATAR12_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR13 register *******************/ +#define BKP_DATAR13_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR14 register *******************/ +#define BKP_DATAR14_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR15 register *******************/ +#define BKP_DATAR15_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR16 register *******************/ +#define BKP_DATAR16_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR17 register *******************/ +#define BKP_DATAR17_D ((uint16_t)0xFFFF) /* Backup data */ + +/****************** Bit definition for BKP_DATAR18 register ********************/ +#define BKP_DATAR18_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR19 register *******************/ +#define BKP_DATAR19_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR20 register *******************/ +#define BKP_DATAR20_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR21 register *******************/ +#define BKP_DATAR21_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR22 register *******************/ +#define BKP_DATAR22_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR23 register *******************/ +#define BKP_DATAR23_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR24 register *******************/ +#define BKP_DATAR24_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR25 register *******************/ +#define BKP_DATAR25_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR26 register *******************/ +#define BKP_DATAR26_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR27 register *******************/ +#define BKP_DATAR27_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR28 register *******************/ +#define BKP_DATAR28_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR29 register *******************/ +#define BKP_DATAR29_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR30 register *******************/ +#define BKP_DATAR30_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR31 register *******************/ +#define BKP_DATAR31_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR32 register *******************/ +#define BKP_DATAR32_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR33 register *******************/ +#define BKP_DATAR33_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR34 register *******************/ +#define BKP_DATAR34_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR35 register *******************/ +#define BKP_DATAR35_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR36 register *******************/ +#define BKP_DATAR36_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR37 register *******************/ +#define BKP_DATAR37_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR38 register *******************/ +#define BKP_DATAR38_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR39 register *******************/ +#define BKP_DATAR39_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR40 register *******************/ +#define BKP_DATAR40_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR41 register *******************/ +#define BKP_DATAR41_D ((uint16_t)0xFFFF) /* Backup data */ + +/******************* Bit definition for BKP_DATAR42 register *******************/ +#define BKP_DATAR42_D ((uint16_t)0xFFFF) /* Backup data */ + +/****************** Bit definition for BKP_OCTLR register *******************/ +#define BKP_CAL ((uint16_t)0x007F) /* Calibration value */ +#define BKP_CCO ((uint16_t)0x0080) /* Calibration Clock Output */ +#define BKP_ASOE ((uint16_t)0x0100) /* Alarm or Second Output Enable */ +#define BKP_ASOS ((uint16_t)0x0200) /* Alarm or Second Output Selection */ + +/******************** Bit definition for BKP_TPCTLR register ********************/ +#define BKP_TPE ((uint8_t)0x01) /* TAMPER pin enable */ +#define BKP_TPAL ((uint8_t)0x02) /* TAMPER pin active level */ + +/******************* Bit definition for BKP_TPCSR register ********************/ +#define BKP_CTE ((uint16_t)0x0001) /* Clear Tamper event */ +#define BKP_CTI ((uint16_t)0x0002) /* Clear Tamper Interrupt */ +#define BKP_TPIE ((uint16_t)0x0004) /* TAMPER Pin interrupt enable */ +#define BKP_TEF ((uint16_t)0x0100) /* Tamper Event Flag */ +#define BKP_TIF ((uint16_t)0x0200) /* Tamper Interrupt Flag */ + +/******************************************************************************/ +/* CRC Calculation Unit */ +/******************************************************************************/ + +/******************* Bit definition for CRC_DATAR register *********************/ +#define CRC_DATAR_DR ((uint32_t)0xFFFFFFFF) /* Data register bits */ + +/******************* Bit definition for CRC_IDATAR register ********************/ +#define CRC_IDR_IDATAR ((uint8_t)0xFF) /* General-purpose 8-bit data register bits */ + +/******************** Bit definition for CRC_CTLR register ********************/ +#define CRC_CTLR_RESET ((uint8_t)0x01) /* RESET bit */ + +/******************************************************************************/ +/* Digital to Analog Converter */ +/******************************************************************************/ + +/******************** Bit definition for DAC_CTLR register ********************/ +#define DAC_EN1 ((uint32_t)0x00000001) /* DAC channel1 enable */ +#define DAC_BOFF1 ((uint32_t)0x00000002) /* DAC channel1 output buffer disable */ +#define DAC_TEN1 ((uint32_t)0x00000004) /* DAC channel1 Trigger enable */ + +#define DAC_TSEL1 ((uint32_t)0x00000038) /* TSEL1[2:0] (DAC channel1 Trigger selection) */ +#define DAC_TSEL1_0 ((uint32_t)0x00000008) /* Bit 0 */ +#define DAC_TSEL1_1 ((uint32_t)0x00000010) /* Bit 1 */ +#define DAC_TSEL1_2 ((uint32_t)0x00000020) /* Bit 2 */ + +#define DAC_WAVE1 ((uint32_t)0x000000C0) /* WAVE1[1:0] (DAC channel1 noise/triangle wave generation enable) */ +#define DAC_WAVE1_0 ((uint32_t)0x00000040) /* Bit 0 */ +#define DAC_WAVE1_1 ((uint32_t)0x00000080) /* Bit 1 */ + +#define DAC_MAMP1 ((uint32_t)0x00000F00) /* MAMP1[3:0] (DAC channel1 Mask/Amplitude selector) */ +#define DAC_MAMP1_0 ((uint32_t)0x00000100) /* Bit 0 */ +#define DAC_MAMP1_1 ((uint32_t)0x00000200) /* Bit 1 */ +#define DAC_MAMP1_2 ((uint32_t)0x00000400) /* Bit 2 */ +#define DAC_MAMP1_3 ((uint32_t)0x00000800) /* Bit 3 */ + +#define DAC_DMAEN1 ((uint32_t)0x00001000) /* DAC channel1 DMA enable */ +#define DAC_EN2 ((uint32_t)0x00010000) /* DAC channel2 enable */ +#define DAC_BOFF2 ((uint32_t)0x00020000) /* DAC channel2 output buffer disable */ +#define DAC_TEN2 ((uint32_t)0x00040000) /* DAC channel2 Trigger enable */ + +#define DAC_TSEL2 ((uint32_t)0x00380000) /* TSEL2[2:0] (DAC channel2 Trigger selection) */ +#define DAC_TSEL2_0 ((uint32_t)0x00080000) /* Bit 0 */ +#define DAC_TSEL2_1 ((uint32_t)0x00100000) /* Bit 1 */ +#define DAC_TSEL2_2 ((uint32_t)0x00200000) /* Bit 2 */ + +#define DAC_WAVE2 ((uint32_t)0x00C00000) /* WAVE2[1:0] (DAC channel2 noise/triangle wave generation enable) */ +#define DAC_WAVE2_0 ((uint32_t)0x00400000) /* Bit 0 */ +#define DAC_WAVE2_1 ((uint32_t)0x00800000) /* Bit 1 */ + +#define DAC_MAMP2 ((uint32_t)0x0F000000) /* MAMP2[3:0] (DAC channel2 Mask/Amplitude selector) */ +#define DAC_MAMP2_0 ((uint32_t)0x01000000) /* Bit 0 */ +#define DAC_MAMP2_1 ((uint32_t)0x02000000) /* Bit 1 */ +#define DAC_MAMP2_2 ((uint32_t)0x04000000) /* Bit 2 */ +#define DAC_MAMP2_3 ((uint32_t)0x08000000) /* Bit 3 */ + +#define DAC_DMAEN2 ((uint32_t)0x10000000) /* DAC channel2 DMA enabled */ + +/***************** Bit definition for DAC_SWTR register ******************/ +#define DAC_SWTRIG1 ((uint8_t)0x01) /* DAC channel1 software trigger */ +#define DAC_SWTRIG2 ((uint8_t)0x02) /* DAC channel2 software trigger */ + +/***************** Bit definition for DAC_R12BDHR1 register ******************/ +#define DAC_DHR12R1 ((uint16_t)0x0FFF) /* DAC channel1 12-bit Right aligned data */ + +/***************** Bit definition for DAC_L12BDHR1 register ******************/ +#define DAC_DHR12L1 ((uint16_t)0xFFF0) /* DAC channel1 12-bit Left aligned data */ + +/****************** Bit definition for DAC_R8BDHR1 register ******************/ +#define DAC_DHR8R1 ((uint8_t)0xFF) /* DAC channel1 8-bit Right aligned data */ + +/***************** Bit definition for DAC_R12BDHR2 register ******************/ +#define DAC_DHR12R2 ((uint16_t)0x0FFF) /* DAC channel2 12-bit Right aligned data */ + +/***************** Bit definition for DAC_L12BDHR2 register ******************/ +#define DAC_DHR12L2 ((uint16_t)0xFFF0) /* DAC channel2 12-bit Left aligned data */ + +/****************** Bit definition for DAC_R8BDHR2 register ******************/ +#define DAC_DHR8R2 ((uint8_t)0xFF) /* DAC channel2 8-bit Right aligned data */ + +/***************** Bit definition for DAC_RD12BDHR register ******************/ +#define DAC_RD12BDHR_DACC1DHR ((uint32_t)0x00000FFF) /* DAC channel1 12-bit Right aligned data */ +#define DAC_RD12BDHR_DACC2DHR ((uint32_t)0x0FFF0000) /* DAC channel2 12-bit Right aligned data */ + +/***************** Bit definition for DAC_LD12BDHR register ******************/ +#define DAC_LD12BDHR_DACC1DHR ((uint32_t)0x0000FFF0) /* DAC channel1 12-bit Left aligned data */ +#define DAC_LD12BDHR_DACC2DHR ((uint32_t)0xFFF00000) /* DAC channel2 12-bit Left aligned data */ + +/****************** Bit definition for DAC_RD8BDHR register ******************/ +#define DAC_RD8BDHR_DACC1DHR ((uint16_t)0x00FF) /* DAC channel1 8-bit Right aligned data */ +#define DAC_RD8BDHR_DACC2DHR ((uint16_t)0xFF00) /* DAC channel2 8-bit Right aligned data */ + +/******************* Bit definition for DAC_DOR1 register *******************/ +#define DAC_DACC1DOR ((uint16_t)0x0FFF) /* DAC channel1 data output */ + +/******************* Bit definition for DAC_DOR2 register *******************/ +#define DAC_DACC2DOR ((uint16_t)0x0FFF) /* DAC channel2 data output */ + +/******************************************************************************/ +/* DMA Controller */ +/******************************************************************************/ + +/******************* Bit definition for DMA_INTFR register ********************/ +#define DMA_GIF1 ((uint32_t)0x00000001) /* Channel 1 Global interrupt flag */ +#define DMA_TCIF1 ((uint32_t)0x00000002) /* Channel 1 Transfer Complete flag */ +#define DMA_HTIF1 ((uint32_t)0x00000004) /* Channel 1 Half Transfer flag */ +#define DMA_TEIF1 ((uint32_t)0x00000008) /* Channel 1 Transfer Error flag */ +#define DMA_GIF2 ((uint32_t)0x00000010) /* Channel 2 Global interrupt flag */ +#define DMA_TCIF2 ((uint32_t)0x00000020) /* Channel 2 Transfer Complete flag */ +#define DMA_HTIF2 ((uint32_t)0x00000040) /* Channel 2 Half Transfer flag */ +#define DMA_TEIF2 ((uint32_t)0x00000080) /* Channel 2 Transfer Error flag */ +#define DMA_GIF3 ((uint32_t)0x00000100) /* Channel 3 Global interrupt flag */ +#define DMA_TCIF3 ((uint32_t)0x00000200) /* Channel 3 Transfer Complete flag */ +#define DMA_HTIF3 ((uint32_t)0x00000400) /* Channel 3 Half Transfer flag */ +#define DMA_TEIF3 ((uint32_t)0x00000800) /* Channel 3 Transfer Error flag */ +#define DMA_GIF4 ((uint32_t)0x00001000) /* Channel 4 Global interrupt flag */ +#define DMA_TCIF4 ((uint32_t)0x00002000) /* Channel 4 Transfer Complete flag */ +#define DMA_HTIF4 ((uint32_t)0x00004000) /* Channel 4 Half Transfer flag */ +#define DMA_TEIF4 ((uint32_t)0x00008000) /* Channel 4 Transfer Error flag */ +#define DMA_GIF5 ((uint32_t)0x00010000) /* Channel 5 Global interrupt flag */ +#define DMA_TCIF5 ((uint32_t)0x00020000) /* Channel 5 Transfer Complete flag */ +#define DMA_HTIF5 ((uint32_t)0x00040000) /* Channel 5 Half Transfer flag */ +#define DMA_TEIF5 ((uint32_t)0x00080000) /* Channel 5 Transfer Error flag */ +#define DMA_GIF6 ((uint32_t)0x00100000) /* Channel 6 Global interrupt flag */ +#define DMA_TCIF6 ((uint32_t)0x00200000) /* Channel 6 Transfer Complete flag */ +#define DMA_HTIF6 ((uint32_t)0x00400000) /* Channel 6 Half Transfer flag */ +#define DMA_TEIF6 ((uint32_t)0x00800000) /* Channel 6 Transfer Error flag */ +#define DMA_GIF7 ((uint32_t)0x01000000) /* Channel 7 Global interrupt flag */ +#define DMA_TCIF7 ((uint32_t)0x02000000) /* Channel 7 Transfer Complete flag */ +#define DMA_HTIF7 ((uint32_t)0x04000000) /* Channel 7 Half Transfer flag */ +#define DMA_TEIF7 ((uint32_t)0x08000000) /* Channel 7 Transfer Error flag */ + +/******************* Bit definition for DMA_INTFCR register *******************/ +#define DMA_CGIF1 ((uint32_t)0x00000001) /* Channel 1 Global interrupt clear */ +#define DMA_CTCIF1 ((uint32_t)0x00000002) /* Channel 1 Transfer Complete clear */ +#define DMA_CHTIF1 ((uint32_t)0x00000004) /* Channel 1 Half Transfer clear */ +#define DMA_CTEIF1 ((uint32_t)0x00000008) /* Channel 1 Transfer Error clear */ +#define DMA_CGIF2 ((uint32_t)0x00000010) /* Channel 2 Global interrupt clear */ +#define DMA_CTCIF2 ((uint32_t)0x00000020) /* Channel 2 Transfer Complete clear */ +#define DMA_CHTIF2 ((uint32_t)0x00000040) /* Channel 2 Half Transfer clear */ +#define DMA_CTEIF2 ((uint32_t)0x00000080) /* Channel 2 Transfer Error clear */ +#define DMA_CGIF3 ((uint32_t)0x00000100) /* Channel 3 Global interrupt clear */ +#define DMA_CTCIF3 ((uint32_t)0x00000200) /* Channel 3 Transfer Complete clear */ +#define DMA_CHTIF3 ((uint32_t)0x00000400) /* Channel 3 Half Transfer clear */ +#define DMA_CTEIF3 ((uint32_t)0x00000800) /* Channel 3 Transfer Error clear */ +#define DMA_CGIF4 ((uint32_t)0x00001000) /* Channel 4 Global interrupt clear */ +#define DMA_CTCIF4 ((uint32_t)0x00002000) /* Channel 4 Transfer Complete clear */ +#define DMA_CHTIF4 ((uint32_t)0x00004000) /* Channel 4 Half Transfer clear */ +#define DMA_CTEIF4 ((uint32_t)0x00008000) /* Channel 4 Transfer Error clear */ +#define DMA_CGIF5 ((uint32_t)0x00010000) /* Channel 5 Global interrupt clear */ +#define DMA_CTCIF5 ((uint32_t)0x00020000) /* Channel 5 Transfer Complete clear */ +#define DMA_CHTIF5 ((uint32_t)0x00040000) /* Channel 5 Half Transfer clear */ +#define DMA_CTEIF5 ((uint32_t)0x00080000) /* Channel 5 Transfer Error clear */ +#define DMA_CGIF6 ((uint32_t)0x00100000) /* Channel 6 Global interrupt clear */ +#define DMA_CTCIF6 ((uint32_t)0x00200000) /* Channel 6 Transfer Complete clear */ +#define DMA_CHTIF6 ((uint32_t)0x00400000) /* Channel 6 Half Transfer clear */ +#define DMA_CTEIF6 ((uint32_t)0x00800000) /* Channel 6 Transfer Error clear */ +#define DMA_CGIF7 ((uint32_t)0x01000000) /* Channel 7 Global interrupt clear */ +#define DMA_CTCIF7 ((uint32_t)0x02000000) /* Channel 7 Transfer Complete clear */ +#define DMA_CHTIF7 ((uint32_t)0x04000000) /* Channel 7 Half Transfer clear */ +#define DMA_CTEIF7 ((uint32_t)0x08000000) /* Channel 7 Transfer Error clear */ + +/******************* Bit definition for DMA_CFGR1 register *******************/ +#define DMA_CFGR1_EN ((uint16_t)0x0001) /* Channel enable*/ +#define DMA_CFGR1_TCIE ((uint16_t)0x0002) /* Transfer complete interrupt enable */ +#define DMA_CFGR1_HTIE ((uint16_t)0x0004) /* Half Transfer interrupt enable */ +#define DMA_CFGR1_TEIE ((uint16_t)0x0008) /* Transfer error interrupt enable */ +#define DMA_CFGR1_DIR ((uint16_t)0x0010) /* Data transfer direction */ +#define DMA_CFGR1_CIRC ((uint16_t)0x0020) /* Circular mode */ +#define DMA_CFGR1_PINC ((uint16_t)0x0040) /* Peripheral increment mode */ +#define DMA_CFGR1_MINC ((uint16_t)0x0080) /* Memory increment mode */ + +#define DMA_CFGR1_PSIZE ((uint16_t)0x0300) /* PSIZE[1:0] bits (Peripheral size) */ +#define DMA_CFGR1_PSIZE_0 ((uint16_t)0x0100) /* Bit 0 */ +#define DMA_CFGR1_PSIZE_1 ((uint16_t)0x0200) /* Bit 1 */ + +#define DMA_CFGR1_MSIZE ((uint16_t)0x0C00) /* MSIZE[1:0] bits (Memory size) */ +#define DMA_CFGR1_MSIZE_0 ((uint16_t)0x0400) /* Bit 0 */ +#define DMA_CFGR1_MSIZE_1 ((uint16_t)0x0800) /* Bit 1 */ + +#define DMA_CFGR1_PL ((uint16_t)0x3000) /* PL[1:0] bits(Channel Priority level) */ +#define DMA_CFGR1_PL_0 ((uint16_t)0x1000) /* Bit 0 */ +#define DMA_CFGR1_PL_1 ((uint16_t)0x2000) /* Bit 1 */ + +#define DMA_CFGR1_MEM2MEM ((uint16_t)0x4000) /* Memory to memory mode */ + +/******************* Bit definition for DMA_CFGR2 register *******************/ +#define DMA_CFGR2_EN ((uint16_t)0x0001) /* Channel enable */ +#define DMA_CFGR2_TCIE ((uint16_t)0x0002) /* Transfer complete interrupt enable */ +#define DMA_CFGR2_HTIE ((uint16_t)0x0004) /* Half Transfer interrupt enable */ +#define DMA_CFGR2_TEIE ((uint16_t)0x0008) /* Transfer error interrupt enable */ +#define DMA_CFGR2_DIR ((uint16_t)0x0010) /* Data transfer direction */ +#define DMA_CFGR2_CIRC ((uint16_t)0x0020) /* Circular mode */ +#define DMA_CFGR2_PINC ((uint16_t)0x0040) /* Peripheral increment mode */ +#define DMA_CFGR2_MINC ((uint16_t)0x0080) /* Memory increment mode */ + +#define DMA_CFGR2_PSIZE ((uint16_t)0x0300) /* PSIZE[1:0] bits (Peripheral size) */ +#define DMA_CFGR2_PSIZE_0 ((uint16_t)0x0100) /* Bit 0 */ +#define DMA_CFGR2_PSIZE_1 ((uint16_t)0x0200) /* Bit 1 */ + +#define DMA_CFGR2_MSIZE ((uint16_t)0x0C00) /* MSIZE[1:0] bits (Memory size) */ +#define DMA_CFGR2_MSIZE_0 ((uint16_t)0x0400) /* Bit 0 */ +#define DMA_CFGR2_MSIZE_1 ((uint16_t)0x0800) /* Bit 1 */ + +#define DMA_CFGR2_PL ((uint16_t)0x3000) /* PL[1:0] bits (Channel Priority level) */ +#define DMA_CFGR2_PL_0 ((uint16_t)0x1000) /* Bit 0 */ +#define DMA_CFGR2_PL_1 ((uint16_t)0x2000) /* Bit 1 */ + +#define DMA_CFGR2_MEM2MEM ((uint16_t)0x4000) /* Memory to memory mode */ + +/******************* Bit definition for DMA_CFGR3 register *******************/ +#define DMA_CFGR3_EN ((uint16_t)0x0001) /* Channel enable */ +#define DMA_CFGR3_TCIE ((uint16_t)0x0002) /* Transfer complete interrupt enable */ +#define DMA_CFGR3_HTIE ((uint16_t)0x0004) /* Half Transfer interrupt enable */ +#define DMA_CFGR3_TEIE ((uint16_t)0x0008) /* Transfer error interrupt enable */ +#define DMA_CFGR3_DIR ((uint16_t)0x0010) /* Data transfer direction */ +#define DMA_CFGR3_CIRC ((uint16_t)0x0020) /* Circular mode */ +#define DMA_CFGR3_PINC ((uint16_t)0x0040) /* Peripheral increment mode */ +#define DMA_CFGR3_MINC ((uint16_t)0x0080) /* Memory increment mode */ + +#define DMA_CFGR3_PSIZE ((uint16_t)0x0300) /* PSIZE[1:0] bits (Peripheral size) */ +#define DMA_CFGR3_PSIZE_0 ((uint16_t)0x0100) /* Bit 0 */ +#define DMA_CFGR3_PSIZE_1 ((uint16_t)0x0200) /* Bit 1 */ + +#define DMA_CFGR3_MSIZE ((uint16_t)0x0C00) /* MSIZE[1:0] bits (Memory size) */ +#define DMA_CFGR3_MSIZE_0 ((uint16_t)0x0400) /* Bit 0 */ +#define DMA_CFGR3_MSIZE_1 ((uint16_t)0x0800) /* Bit 1 */ + +#define DMA_CFGR3_PL ((uint16_t)0x3000) /* PL[1:0] bits (Channel Priority level) */ +#define DMA_CFGR3_PL_0 ((uint16_t)0x1000) /* Bit 0 */ +#define DMA_CFGR3_PL_1 ((uint16_t)0x2000) /* Bit 1 */ + +#define DMA_CFGR3_MEM2MEM ((uint16_t)0x4000) /* Memory to memory mode */ + +/******************* Bit definition for DMA_CFG4 register *******************/ +#define DMA_CFG4_EN ((uint16_t)0x0001) /* Channel enable */ +#define DMA_CFG4_TCIE ((uint16_t)0x0002) /* Transfer complete interrupt enable */ +#define DMA_CFG4_HTIE ((uint16_t)0x0004) /* Half Transfer interrupt enable */ +#define DMA_CFG4_TEIE ((uint16_t)0x0008) /* Transfer error interrupt enable */ +#define DMA_CFG4_DIR ((uint16_t)0x0010) /* Data transfer direction */ +#define DMA_CFG4_CIRC ((uint16_t)0x0020) /* Circular mode */ +#define DMA_CFG4_PINC ((uint16_t)0x0040) /* Peripheral increment mode */ +#define DMA_CFG4_MINC ((uint16_t)0x0080) /* Memory increment mode */ + +#define DMA_CFG4_PSIZE ((uint16_t)0x0300) /* PSIZE[1:0] bits (Peripheral size) */ +#define DMA_CFG4_PSIZE_0 ((uint16_t)0x0100) /* Bit 0 */ +#define DMA_CFG4_PSIZE_1 ((uint16_t)0x0200) /* Bit 1 */ + +#define DMA_CFG4_MSIZE ((uint16_t)0x0C00) /* MSIZE[1:0] bits (Memory size) */ +#define DMA_CFG4_MSIZE_0 ((uint16_t)0x0400) /* Bit 0 */ +#define DMA_CFG4_MSIZE_1 ((uint16_t)0x0800) /* Bit 1 */ + +#define DMA_CFG4_PL ((uint16_t)0x3000) /* PL[1:0] bits (Channel Priority level) */ +#define DMA_CFG4_PL_0 ((uint16_t)0x1000) /* Bit 0 */ +#define DMA_CFG4_PL_1 ((uint16_t)0x2000) /* Bit 1 */ + +#define DMA_CFG4_MEM2MEM ((uint16_t)0x4000) /* Memory to memory mode */ + +/****************** Bit definition for DMA_CFG5 register *******************/ +#define DMA_CFG5_EN ((uint16_t)0x0001) /* Channel enable */ +#define DMA_CFG5_TCIE ((uint16_t)0x0002) /* Transfer complete interrupt enable */ +#define DMA_CFG5_HTIE ((uint16_t)0x0004) /* Half Transfer interrupt enable */ +#define DMA_CFG5_TEIE ((uint16_t)0x0008) /* Transfer error interrupt enable */ +#define DMA_CFG5_DIR ((uint16_t)0x0010) /* Data transfer direction */ +#define DMA_CFG5_CIRC ((uint16_t)0x0020) /* Circular mode */ +#define DMA_CFG5_PINC ((uint16_t)0x0040) /* Peripheral increment mode */ +#define DMA_CFG5_MINC ((uint16_t)0x0080) /* Memory increment mode */ + +#define DMA_CFG5_PSIZE ((uint16_t)0x0300) /* PSIZE[1:0] bits (Peripheral size) */ +#define DMA_CFG5_PSIZE_0 ((uint16_t)0x0100) /* Bit 0 */ +#define DMA_CFG5_PSIZE_1 ((uint16_t)0x0200) /* Bit 1 */ + +#define DMA_CFG5_MSIZE ((uint16_t)0x0C00) /* MSIZE[1:0] bits (Memory size) */ +#define DMA_CFG5_MSIZE_0 ((uint16_t)0x0400) /* Bit 0 */ +#define DMA_CFG5_MSIZE_1 ((uint16_t)0x0800) /* Bit 1 */ + +#define DMA_CFG5_PL ((uint16_t)0x3000) /* PL[1:0] bits (Channel Priority level) */ +#define DMA_CFG5_PL_0 ((uint16_t)0x1000) /* Bit 0 */ +#define DMA_CFG5_PL_1 ((uint16_t)0x2000) /* Bit 1 */ + +#define DMA_CFG5_MEM2MEM ((uint16_t)0x4000) /* Memory to memory mode enable */ + +/******************* Bit definition for DMA_CFG6 register *******************/ +#define DMA_CFG6_EN ((uint16_t)0x0001) /* Channel enable */ +#define DMA_CFG6_TCIE ((uint16_t)0x0002) /* Transfer complete interrupt enable */ +#define DMA_CFG6_HTIE ((uint16_t)0x0004) /* Half Transfer interrupt enable */ +#define DMA_CFG6_TEIE ((uint16_t)0x0008) /* Transfer error interrupt enable */ +#define DMA_CFG6_DIR ((uint16_t)0x0010) /* Data transfer direction */ +#define DMA_CFG6_CIRC ((uint16_t)0x0020) /* Circular mode */ +#define DMA_CFG6_PINC ((uint16_t)0x0040) /* Peripheral increment mode */ +#define DMA_CFG6_MINC ((uint16_t)0x0080) /* Memory increment mode */ + +#define DMA_CFG6_PSIZE ((uint16_t)0x0300) /* PSIZE[1:0] bits (Peripheral size) */ +#define DMA_CFG6_PSIZE_0 ((uint16_t)0x0100) /* Bit 0 */ +#define DMA_CFG6_PSIZE_1 ((uint16_t)0x0200) /* Bit 1 */ + +#define DMA_CFG6_MSIZE ((uint16_t)0x0C00) /* MSIZE[1:0] bits (Memory size) */ +#define DMA_CFG6_MSIZE_0 ((uint16_t)0x0400) /* Bit 0 */ +#define DMA_CFG6_MSIZE_1 ((uint16_t)0x0800) /* Bit 1 */ + +#define DMA_CFG6_PL ((uint16_t)0x3000) /* PL[1:0] bits (Channel Priority level) */ +#define DMA_CFG6_PL_0 ((uint16_t)0x1000) /* Bit 0 */ +#define DMA_CFG6_PL_1 ((uint16_t)0x2000) /* Bit 1 */ + +#define DMA_CFG6_MEM2MEM ((uint16_t)0x4000) /* Memory to memory mode */ + +/******************* Bit definition for DMA_CFG7 register *******************/ +#define DMA_CFG7_EN ((uint16_t)0x0001) /* Channel enable */ +#define DMA_CFG7_TCIE ((uint16_t)0x0002) /* Transfer complete interrupt enable */ +#define DMA_CFG7_HTIE ((uint16_t)0x0004) /* Half Transfer interrupt enable */ +#define DMA_CFG7_TEIE ((uint16_t)0x0008) /* Transfer error interrupt enable */ +#define DMA_CFG7_DIR ((uint16_t)0x0010) /* Data transfer direction */ +#define DMA_CFG7_CIRC ((uint16_t)0x0020) /* Circular mode */ +#define DMA_CFG7_PINC ((uint16_t)0x0040) /* Peripheral increment mode */ +#define DMA_CFG7_MINC ((uint16_t)0x0080) /* Memory increment mode */ + +#define DMA_CFG7_PSIZE ((uint16_t)0x0300) /* PSIZE[1:0] bits (Peripheral size) */ +#define DMA_CFG7_PSIZE_0 ((uint16_t)0x0100) /* Bit 0 */ +#define DMA_CFG7_PSIZE_1 ((uint16_t)0x0200) /* Bit 1 */ + +#define DMA_CFG7_MSIZE ((uint16_t)0x0C00) /* MSIZE[1:0] bits (Memory size) */ +#define DMA_CFG7_MSIZE_0 ((uint16_t)0x0400) /* Bit 0 */ +#define DMA_CFG7_MSIZE_1 ((uint16_t)0x0800) /* Bit 1 */ + +#define DMA_CFG7_PL ((uint16_t)0x3000) /* PL[1:0] bits (Channel Priority level) */ +#define DMA_CFG7_PL_0 ((uint16_t)0x1000) /* Bit 0 */ +#define DMA_CFG7_PL_1 ((uint16_t)0x2000) /* Bit 1 */ + +#define DMA_CFG7_MEM2MEM ((uint16_t)0x4000) /* Memory to memory mode enable */ + +/****************** Bit definition for DMA_CNTR1 register ******************/ +#define DMA_CNTR1_NDT ((uint16_t)0xFFFF) /* Number of data to Transfer */ + +/****************** Bit definition for DMA_CNTR2 register ******************/ +#define DMA_CNTR2_NDT ((uint16_t)0xFFFF) /* Number of data to Transfer */ + +/****************** Bit definition for DMA_CNTR3 register ******************/ +#define DMA_CNTR3_NDT ((uint16_t)0xFFFF) /* Number of data to Transfer */ + +/****************** Bit definition for DMA_CNTR4 register ******************/ +#define DMA_CNTR4_NDT ((uint16_t)0xFFFF) /* Number of data to Transfer */ + +/****************** Bit definition for DMA_CNTR5 register ******************/ +#define DMA_CNTR5_NDT ((uint16_t)0xFFFF) /* Number of data to Transfer */ + +/****************** Bit definition for DMA_CNTR6 register ******************/ +#define DMA_CNTR6_NDT ((uint16_t)0xFFFF) /* Number of data to Transfer */ + +/****************** Bit definition for DMA_CNTR7 register ******************/ +#define DMA_CNTR7_NDT ((uint16_t)0xFFFF) /* Number of data to Transfer */ + +/****************** Bit definition for DMA_PADDR1 register *******************/ +#define DMA_PADDR1_PA ((uint32_t)0xFFFFFFFF) /* Peripheral Address */ + +/****************** Bit definition for DMA_PADDR2 register *******************/ +#define DMA_PADDR2_PA ((uint32_t)0xFFFFFFFF) /* Peripheral Address */ + +/****************** Bit definition for DMA_PADDR3 register *******************/ +#define DMA_PADDR3_PA ((uint32_t)0xFFFFFFFF) /* Peripheral Address */ + +/****************** Bit definition for DMA_PADDR4 register *******************/ +#define DMA_PADDR4_PA ((uint32_t)0xFFFFFFFF) /* Peripheral Address */ + +/****************** Bit definition for DMA_PADDR5 register *******************/ +#define DMA_PADDR5_PA ((uint32_t)0xFFFFFFFF) /* Peripheral Address */ + +/****************** Bit definition for DMA_PADDR6 register *******************/ +#define DMA_PADDR6_PA ((uint32_t)0xFFFFFFFF) /* Peripheral Address */ + +/****************** Bit definition for DMA_PADDR7 register *******************/ +#define DMA_PADDR7_PA ((uint32_t)0xFFFFFFFF) /* Peripheral Address */ + +/****************** Bit definition for DMA_MADDR1 register *******************/ +#define DMA_MADDR1_MA ((uint32_t)0xFFFFFFFF) /* Memory Address */ + +/****************** Bit definition for DMA_MADDR2 register *******************/ +#define DMA_MADDR2_MA ((uint32_t)0xFFFFFFFF) /* Memory Address */ + +/****************** Bit definition for DMA_MADDR3 register *******************/ +#define DMA_MADDR3_MA ((uint32_t)0xFFFFFFFF) /* Memory Address */ + +/****************** Bit definition for DMA_MADDR4 register *******************/ +#define DMA_MADDR4_MA ((uint32_t)0xFFFFFFFF) /* Memory Address */ + +/****************** Bit definition for DMA_MADDR5 register *******************/ +#define DMA_MADDR5_MA ((uint32_t)0xFFFFFFFF) /* Memory Address */ + +/****************** Bit definition for DMA_MADDR6 register *******************/ +#define DMA_MADDR6_MA ((uint32_t)0xFFFFFFFF) /* Memory Address */ + +/****************** Bit definition for DMA_MADDR7 register *******************/ +#define DMA_MADDR7_MA ((uint32_t)0xFFFFFFFF) /* Memory Address */ + +/******************************************************************************/ +/* External Interrupt/Event Controller */ +/******************************************************************************/ + +/******************* Bit definition for EXTI_INTENR register *******************/ +#define EXTI_INTENR_MR0 ((uint32_t)0x00000001) /* Interrupt Mask on line 0 */ +#define EXTI_INTENR_MR1 ((uint32_t)0x00000002) /* Interrupt Mask on line 1 */ +#define EXTI_INTENR_MR2 ((uint32_t)0x00000004) /* Interrupt Mask on line 2 */ +#define EXTI_INTENR_MR3 ((uint32_t)0x00000008) /* Interrupt Mask on line 3 */ +#define EXTI_INTENR_MR4 ((uint32_t)0x00000010) /* Interrupt Mask on line 4 */ +#define EXTI_INTENR_MR5 ((uint32_t)0x00000020) /* Interrupt Mask on line 5 */ +#define EXTI_INTENR_MR6 ((uint32_t)0x00000040) /* Interrupt Mask on line 6 */ +#define EXTI_INTENR_MR7 ((uint32_t)0x00000080) /* Interrupt Mask on line 7 */ +#define EXTI_INTENR_MR8 ((uint32_t)0x00000100) /* Interrupt Mask on line 8 */ +#define EXTI_INTENR_MR9 ((uint32_t)0x00000200) /* Interrupt Mask on line 9 */ +#define EXTI_INTENR_MR10 ((uint32_t)0x00000400) /* Interrupt Mask on line 10 */ +#define EXTI_INTENR_MR11 ((uint32_t)0x00000800) /* Interrupt Mask on line 11 */ +#define EXTI_INTENR_MR12 ((uint32_t)0x00001000) /* Interrupt Mask on line 12 */ +#define EXTI_INTENR_MR13 ((uint32_t)0x00002000) /* Interrupt Mask on line 13 */ +#define EXTI_INTENR_MR14 ((uint32_t)0x00004000) /* Interrupt Mask on line 14 */ +#define EXTI_INTENR_MR15 ((uint32_t)0x00008000) /* Interrupt Mask on line 15 */ +#define EXTI_INTENR_MR16 ((uint32_t)0x00010000) /* Interrupt Mask on line 16 */ +#define EXTI_INTENR_MR17 ((uint32_t)0x00020000) /* Interrupt Mask on line 17 */ +#define EXTI_INTENR_MR18 ((uint32_t)0x00040000) /* Interrupt Mask on line 18 */ +#define EXTI_INTENR_MR19 ((uint32_t)0x00080000) /* Interrupt Mask on line 19 */ + +/******************* Bit definition for EXTI_EVENR register *******************/ +#define EXTI_EVENR_MR0 ((uint32_t)0x00000001) /* Event Mask on line 0 */ +#define EXTI_EVENR_MR1 ((uint32_t)0x00000002) /* Event Mask on line 1 */ +#define EXTI_EVENR_MR2 ((uint32_t)0x00000004) /* Event Mask on line 2 */ +#define EXTI_EVENR_MR3 ((uint32_t)0x00000008) /* Event Mask on line 3 */ +#define EXTI_EVENR_MR4 ((uint32_t)0x00000010) /* Event Mask on line 4 */ +#define EXTI_EVENR_MR5 ((uint32_t)0x00000020) /* Event Mask on line 5 */ +#define EXTI_EVENR_MR6 ((uint32_t)0x00000040) /* Event Mask on line 6 */ +#define EXTI_EVENR_MR7 ((uint32_t)0x00000080) /* Event Mask on line 7 */ +#define EXTI_EVENR_MR8 ((uint32_t)0x00000100) /* Event Mask on line 8 */ +#define EXTI_EVENR_MR9 ((uint32_t)0x00000200) /* Event Mask on line 9 */ +#define EXTI_EVENR_MR10 ((uint32_t)0x00000400) /* Event Mask on line 10 */ +#define EXTI_EVENR_MR11 ((uint32_t)0x00000800) /* Event Mask on line 11 */ +#define EXTI_EVENR_MR12 ((uint32_t)0x00001000) /* Event Mask on line 12 */ +#define EXTI_EVENR_MR13 ((uint32_t)0x00002000) /* Event Mask on line 13 */ +#define EXTI_EVENR_MR14 ((uint32_t)0x00004000) /* Event Mask on line 14 */ +#define EXTI_EVENR_MR15 ((uint32_t)0x00008000) /* Event Mask on line 15 */ +#define EXTI_EVENR_MR16 ((uint32_t)0x00010000) /* Event Mask on line 16 */ +#define EXTI_EVENR_MR17 ((uint32_t)0x00020000) /* Event Mask on line 17 */ +#define EXTI_EVENR_MR18 ((uint32_t)0x00040000) /* Event Mask on line 18 */ +#define EXTI_EVENR_MR19 ((uint32_t)0x00080000) /* Event Mask on line 19 */ + +/****************** Bit definition for EXTI_RTENR register *******************/ +#define EXTI_RTENR_TR0 ((uint32_t)0x00000001) /* Rising trigger event configuration bit of line 0 */ +#define EXTI_RTENR_TR1 ((uint32_t)0x00000002) /* Rising trigger event configuration bit of line 1 */ +#define EXTI_RTENR_TR2 ((uint32_t)0x00000004) /* Rising trigger event configuration bit of line 2 */ +#define EXTI_RTENR_TR3 ((uint32_t)0x00000008) /* Rising trigger event configuration bit of line 3 */ +#define EXTI_RTENR_TR4 ((uint32_t)0x00000010) /* Rising trigger event configuration bit of line 4 */ +#define EXTI_RTENR_TR5 ((uint32_t)0x00000020) /* Rising trigger event configuration bit of line 5 */ +#define EXTI_RTENR_TR6 ((uint32_t)0x00000040) /* Rising trigger event configuration bit of line 6 */ +#define EXTI_RTENR_TR7 ((uint32_t)0x00000080) /* Rising trigger event configuration bit of line 7 */ +#define EXTI_RTENR_TR8 ((uint32_t)0x00000100) /* Rising trigger event configuration bit of line 8 */ +#define EXTI_RTENR_TR9 ((uint32_t)0x00000200) /* Rising trigger event configuration bit of line 9 */ +#define EXTI_RTENR_TR10 ((uint32_t)0x00000400) /* Rising trigger event configuration bit of line 10 */ +#define EXTI_RTENR_TR11 ((uint32_t)0x00000800) /* Rising trigger event configuration bit of line 11 */ +#define EXTI_RTENR_TR12 ((uint32_t)0x00001000) /* Rising trigger event configuration bit of line 12 */ +#define EXTI_RTENR_TR13 ((uint32_t)0x00002000) /* Rising trigger event configuration bit of line 13 */ +#define EXTI_RTENR_TR14 ((uint32_t)0x00004000) /* Rising trigger event configuration bit of line 14 */ +#define EXTI_RTENR_TR15 ((uint32_t)0x00008000) /* Rising trigger event configuration bit of line 15 */ +#define EXTI_RTENR_TR16 ((uint32_t)0x00010000) /* Rising trigger event configuration bit of line 16 */ +#define EXTI_RTENR_TR17 ((uint32_t)0x00020000) /* Rising trigger event configuration bit of line 17 */ +#define EXTI_RTENR_TR18 ((uint32_t)0x00040000) /* Rising trigger event configuration bit of line 18 */ +#define EXTI_RTENR_TR19 ((uint32_t)0x00080000) /* Rising trigger event configuration bit of line 19 */ + +/****************** Bit definition for EXTI_FTENR register *******************/ +#define EXTI_FTENR_TR0 ((uint32_t)0x00000001) /* Falling trigger event configuration bit of line 0 */ +#define EXTI_FTENR_TR1 ((uint32_t)0x00000002) /* Falling trigger event configuration bit of line 1 */ +#define EXTI_FTENR_TR2 ((uint32_t)0x00000004) /* Falling trigger event configuration bit of line 2 */ +#define EXTI_FTENR_TR3 ((uint32_t)0x00000008) /* Falling trigger event configuration bit of line 3 */ +#define EXTI_FTENR_TR4 ((uint32_t)0x00000010) /* Falling trigger event configuration bit of line 4 */ +#define EXTI_FTENR_TR5 ((uint32_t)0x00000020) /* Falling trigger event configuration bit of line 5 */ +#define EXTI_FTENR_TR6 ((uint32_t)0x00000040) /* Falling trigger event configuration bit of line 6 */ +#define EXTI_FTENR_TR7 ((uint32_t)0x00000080) /* Falling trigger event configuration bit of line 7 */ +#define EXTI_FTENR_TR8 ((uint32_t)0x00000100) /* Falling trigger event configuration bit of line 8 */ +#define EXTI_FTENR_TR9 ((uint32_t)0x00000200) /* Falling trigger event configuration bit of line 9 */ +#define EXTI_FTENR_TR10 ((uint32_t)0x00000400) /* Falling trigger event configuration bit of line 10 */ +#define EXTI_FTENR_TR11 ((uint32_t)0x00000800) /* Falling trigger event configuration bit of line 11 */ +#define EXTI_FTENR_TR12 ((uint32_t)0x00001000) /* Falling trigger event configuration bit of line 12 */ +#define EXTI_FTENR_TR13 ((uint32_t)0x00002000) /* Falling trigger event configuration bit of line 13 */ +#define EXTI_FTENR_TR14 ((uint32_t)0x00004000) /* Falling trigger event configuration bit of line 14 */ +#define EXTI_FTENR_TR15 ((uint32_t)0x00008000) /* Falling trigger event configuration bit of line 15 */ +#define EXTI_FTENR_TR16 ((uint32_t)0x00010000) /* Falling trigger event configuration bit of line 16 */ +#define EXTI_FTENR_TR17 ((uint32_t)0x00020000) /* Falling trigger event configuration bit of line 17 */ +#define EXTI_FTENR_TR18 ((uint32_t)0x00040000) /* Falling trigger event configuration bit of line 18 */ +#define EXTI_FTENR_TR19 ((uint32_t)0x00080000) /* Falling trigger event configuration bit of line 19 */ + +/****************** Bit definition for EXTI_SWIEVR register ******************/ +#define EXTI_SWIEVR_SWIEVR0 ((uint32_t)0x00000001) /* Software Interrupt on line 0 */ +#define EXTI_SWIEVR_SWIEVR1 ((uint32_t)0x00000002) /* Software Interrupt on line 1 */ +#define EXTI_SWIEVR_SWIEVR2 ((uint32_t)0x00000004) /* Software Interrupt on line 2 */ +#define EXTI_SWIEVR_SWIEVR3 ((uint32_t)0x00000008) /* Software Interrupt on line 3 */ +#define EXTI_SWIEVR_SWIEVR4 ((uint32_t)0x00000010) /* Software Interrupt on line 4 */ +#define EXTI_SWIEVR_SWIEVR5 ((uint32_t)0x00000020) /* Software Interrupt on line 5 */ +#define EXTI_SWIEVR_SWIEVR6 ((uint32_t)0x00000040) /* Software Interrupt on line 6 */ +#define EXTI_SWIEVR_SWIEVR7 ((uint32_t)0x00000080) /* Software Interrupt on line 7 */ +#define EXTI_SWIEVR_SWIEVR8 ((uint32_t)0x00000100) /* Software Interrupt on line 8 */ +#define EXTI_SWIEVR_SWIEVR9 ((uint32_t)0x00000200) /* Software Interrupt on line 9 */ +#define EXTI_SWIEVR_SWIEVR10 ((uint32_t)0x00000400) /* Software Interrupt on line 10 */ +#define EXTI_SWIEVR_SWIEVR11 ((uint32_t)0x00000800) /* Software Interrupt on line 11 */ +#define EXTI_SWIEVR_SWIEVR12 ((uint32_t)0x00001000) /* Software Interrupt on line 12 */ +#define EXTI_SWIEVR_SWIEVR13 ((uint32_t)0x00002000) /* Software Interrupt on line 13 */ +#define EXTI_SWIEVR_SWIEVR14 ((uint32_t)0x00004000) /* Software Interrupt on line 14 */ +#define EXTI_SWIEVR_SWIEVR15 ((uint32_t)0x00008000) /* Software Interrupt on line 15 */ +#define EXTI_SWIEVR_SWIEVR16 ((uint32_t)0x00010000) /* Software Interrupt on line 16 */ +#define EXTI_SWIEVR_SWIEVR17 ((uint32_t)0x00020000) /* Software Interrupt on line 17 */ +#define EXTI_SWIEVR_SWIEVR18 ((uint32_t)0x00040000) /* Software Interrupt on line 18 */ +#define EXTI_SWIEVR_SWIEVR19 ((uint32_t)0x00080000) /* Software Interrupt on line 19 */ + +/******************* Bit definition for EXTI_INTFR register ********************/ +#define EXTI_INTF_INTF0 ((uint32_t)0x00000001) /* Pending bit for line 0 */ +#define EXTI_INTF_INTF1 ((uint32_t)0x00000002) /* Pending bit for line 1 */ +#define EXTI_INTF_INTF2 ((uint32_t)0x00000004) /* Pending bit for line 2 */ +#define EXTI_INTF_INTF3 ((uint32_t)0x00000008) /* Pending bit for line 3 */ +#define EXTI_INTF_INTF4 ((uint32_t)0x00000010) /* Pending bit for line 4 */ +#define EXTI_INTF_INTF5 ((uint32_t)0x00000020) /* Pending bit for line 5 */ +#define EXTI_INTF_INTF6 ((uint32_t)0x00000040) /* Pending bit for line 6 */ +#define EXTI_INTF_INTF7 ((uint32_t)0x00000080) /* Pending bit for line 7 */ +#define EXTI_INTF_INTF8 ((uint32_t)0x00000100) /* Pending bit for line 8 */ +#define EXTI_INTF_INTF9 ((uint32_t)0x00000200) /* Pending bit for line 9 */ +#define EXTI_INTF_INTF10 ((uint32_t)0x00000400) /* Pending bit for line 10 */ +#define EXTI_INTF_INTF11 ((uint32_t)0x00000800) /* Pending bit for line 11 */ +#define EXTI_INTF_INTF12 ((uint32_t)0x00001000) /* Pending bit for line 12 */ +#define EXTI_INTF_INTF13 ((uint32_t)0x00002000) /* Pending bit for line 13 */ +#define EXTI_INTF_INTF14 ((uint32_t)0x00004000) /* Pending bit for line 14 */ +#define EXTI_INTF_INTF15 ((uint32_t)0x00008000) /* Pending bit for line 15 */ +#define EXTI_INTF_INTF16 ((uint32_t)0x00010000) /* Pending bit for line 16 */ +#define EXTI_INTF_INTF17 ((uint32_t)0x00020000) /* Pending bit for line 17 */ +#define EXTI_INTF_INTF18 ((uint32_t)0x00040000) /* Pending bit for line 18 */ +#define EXTI_INTF_INTF19 ((uint32_t)0x00080000) /* Pending bit for line 19 */ + +/******************************************************************************/ +/* FLASH and Option Bytes Registers */ +/******************************************************************************/ + +/******************* Bit definition for FLASH_ACTLR register ******************/ +#define FLASH_ACTLR_LATENCY ((uint8_t)0x03) /* LATENCY[2:0] bits (Latency) */ +#define FLASH_ACTLR_LATENCY_0 ((uint8_t)0x00) /* Bit 0 */ +#define FLASH_ACTLR_LATENCY_1 ((uint8_t)0x01) /* Bit 0 */ +#define FLASH_ACTLR_LATENCY_2 ((uint8_t)0x02) /* Bit 1 */ + +#define FLASH_ACTLR_HLFCYA ((uint8_t)0x08) /* Flash Half Cycle Access Enable */ +#define FLASH_ACTLR_PRFTBE ((uint8_t)0x10) /* Prefetch Buffer Enable */ +#define FLASH_ACTLR_PRFTBS ((uint8_t)0x20) /* Prefetch Buffer Status */ + +/****************** Bit definition for FLASH_KEYR register ******************/ +#define FLASH_KEYR_FKEYR ((uint32_t)0xFFFFFFFF) /* FPEC Key */ + +/***************** Bit definition for FLASH_OBKEYR register ****************/ +#define FLASH_OBKEYR_OBKEYR ((uint32_t)0xFFFFFFFF) /* Option Byte Key */ + +/****************** Bit definition for FLASH_STATR register *******************/ +#define FLASH_STATR_BSY ((uint8_t)0x01) /* Busy */ +#define FLASH_STATR_PGERR ((uint8_t)0x04) /* Programming Error */ +#define FLASH_STATR_WRPRTERR ((uint8_t)0x10) /* Write Protection Error */ +#define FLASH_STATR_EOP ((uint8_t)0x20) /* End of operation */ + +/******************* Bit definition for FLASH_CTLR register *******************/ +#define FLASH_CTLR_PG ((uint16_t)0x0001) /* Programming */ +#define FLASH_CTLR_PER ((uint16_t)0x0002) /* Page Erase */ +#define FLASH_CTLR_MER ((uint16_t)0x0004) /* Mass Erase */ +#define FLASH_CTLR_OPTPG ((uint16_t)0x0010) /* Option Byte Programming */ +#define FLASH_CTLR_OPTER ((uint16_t)0x0020) /* Option Byte Erase */ +#define FLASH_CTLR_STRT ((uint16_t)0x0040) /* Start */ +#define FLASH_CTLR_LOCK ((uint16_t)0x0080) /* Lock */ +#define FLASH_CTLR_OPTWRE ((uint16_t)0x0200) /* Option Bytes Write Enable */ +#define FLASH_CTLR_ERRIE ((uint16_t)0x0400) /* Error Interrupt Enable */ +#define FLASH_CTLR_EOPIE ((uint16_t)0x1000) /* End of operation interrupt enable */ +#define FLASH_CTLR_PAGE_PG ((uint16_t)0x00010000) /* Page Programming 128Byte */ +#define FLASH_CTLR_PAGE_ER ((uint16_t)0x00020000) /* Page Erase 128Byte */ +#define FLASH_CTLR_BUF_LOAD ((uint16_t)0x00040000) /* Buffer Load */ +#define FLASH_CTLR_BUF_RST ((uint16_t)0x00080000) /* Buffer Reset */ + +/******************* Bit definition for FLASH_ADDR register *******************/ +#define FLASH_ADDR_FAR ((uint32_t)0xFFFFFFFF) /* Flash Address */ + +/****************** Bit definition for FLASH_OBR register *******************/ +#define FLASH_OBR_OPTERR ((uint16_t)0x0001) /* Option Byte Error */ +#define FLASH_OBR_RDPRT ((uint16_t)0x0002) /* Read protection */ + +#define FLASH_OBR_USER ((uint16_t)0x03FC) /* User Option Bytes */ +#define FLASH_OBR_WDG_SW ((uint16_t)0x0004) /* WDG_SW */ +#define FLASH_OBR_nRST_STOP ((uint16_t)0x0008) /* nRST_STOP */ +#define FLASH_OBR_nRST_STDBY ((uint16_t)0x0010) /* nRST_STDBY */ +#define FLASH_OBR_BFB2 ((uint16_t)0x0020) /* BFB2 */ + +/****************** Bit definition for FLASH_WPR register ******************/ +#define FLASH_WPR_WRP ((uint32_t)0xFFFFFFFF) /* Write Protect */ + +/****************** Bit definition for FLASH_RDPR register *******************/ +#define FLASH_RDPR_RDPR ((uint32_t)0x000000FF) /* Read protection option byte */ +#define FLASH_RDPR_nRDPR ((uint32_t)0x0000FF00) /* Read protection complemented option byte */ + +/****************** Bit definition for FLASH_USER register ******************/ +#define FLASH_USER_USER ((uint32_t)0x00FF0000) /* User option byte */ +#define FLASH_USER_nUSER ((uint32_t)0xFF000000) /* User complemented option byte */ + +/****************** Bit definition for FLASH_Data0 register *****************/ +#define FLASH_Data0_Data0 ((uint32_t)0x000000FF) /* User data storage option byte */ +#define FLASH_Data0_nData0 ((uint32_t)0x0000FF00) /* User data storage complemented option byte */ + +/****************** Bit definition for FLASH_Data1 register *****************/ +#define FLASH_Data1_Data1 ((uint32_t)0x00FF0000) /* User data storage option byte */ +#define FLASH_Data1_nData1 ((uint32_t)0xFF000000) /* User data storage complemented option byte */ + +/****************** Bit definition for FLASH_WRPR0 register ******************/ +#define FLASH_WRPR0_WRPR0 ((uint32_t)0x000000FF) /* Flash memory write protection option bytes */ +#define FLASH_WRPR0_nWRPR0 ((uint32_t)0x0000FF00) /* Flash memory write protection complemented option bytes */ + +/****************** Bit definition for FLASH_WRPR1 register ******************/ +#define FLASH_WRPR1_WRPR1 ((uint32_t)0x00FF0000) /* Flash memory write protection option bytes */ +#define FLASH_WRPR1_nWRPR1 ((uint32_t)0xFF000000) /* Flash memory write protection complemented option bytes */ + +/****************** Bit definition for FLASH_WRPR2 register ******************/ +#define FLASH_WRPR2_WRPR2 ((uint32_t)0x000000FF) /* Flash memory write protection option bytes */ +#define FLASH_WRPR2_nWRPR2 ((uint32_t)0x0000FF00) /* Flash memory write protection complemented option bytes */ + +/****************** Bit definition for FLASH_WRPR3 register ******************/ +#define FLASH_WRPR3_WRPR3 ((uint32_t)0x00FF0000) /* Flash memory write protection option bytes */ +#define FLASH_WRPR3_nWRPR3 ((uint32_t)0xFF000000) /* Flash memory write protection complemented option bytes */ + +/******************************************************************************/ +/* General Purpose and Alternate Function I/O */ +/******************************************************************************/ + +/******************* Bit definition for GPIO_CFGLR register *******************/ +#define GPIO_CFGLR_MODE ((uint32_t)0x33333333) /* Port x mode bits */ + +#define GPIO_CFGLR_MODE0 ((uint32_t)0x00000003) /* MODE0[1:0] bits (Port x mode bits, pin 0) */ +#define GPIO_CFGLR_MODE0_0 ((uint32_t)0x00000001) /* Bit 0 */ +#define GPIO_CFGLR_MODE0_1 ((uint32_t)0x00000002) /* Bit 1 */ + +#define GPIO_CFGLR_MODE1 ((uint32_t)0x00000030) /* MODE1[1:0] bits (Port x mode bits, pin 1) */ +#define GPIO_CFGLR_MODE1_0 ((uint32_t)0x00000010) /* Bit 0 */ +#define GPIO_CFGLR_MODE1_1 ((uint32_t)0x00000020) /* Bit 1 */ + +#define GPIO_CFGLR_MODE2 ((uint32_t)0x00000300) /* MODE2[1:0] bits (Port x mode bits, pin 2) */ +#define GPIO_CFGLR_MODE2_0 ((uint32_t)0x00000100) /* Bit 0 */ +#define GPIO_CFGLR_MODE2_1 ((uint32_t)0x00000200) /* Bit 1 */ + +#define GPIO_CFGLR_MODE3 ((uint32_t)0x00003000) /* MODE3[1:0] bits (Port x mode bits, pin 3) */ +#define GPIO_CFGLR_MODE3_0 ((uint32_t)0x00001000) /* Bit 0 */ +#define GPIO_CFGLR_MODE3_1 ((uint32_t)0x00002000) /* Bit 1 */ + +#define GPIO_CFGLR_MODE4 ((uint32_t)0x00030000) /* MODE4[1:0] bits (Port x mode bits, pin 4) */ +#define GPIO_CFGLR_MODE4_0 ((uint32_t)0x00010000) /* Bit 0 */ +#define GPIO_CFGLR_MODE4_1 ((uint32_t)0x00020000) /* Bit 1 */ + +#define GPIO_CFGLR_MODE5 ((uint32_t)0x00300000) /* MODE5[1:0] bits (Port x mode bits, pin 5) */ +#define GPIO_CFGLR_MODE5_0 ((uint32_t)0x00100000) /* Bit 0 */ +#define GPIO_CFGLR_MODE5_1 ((uint32_t)0x00200000) /* Bit 1 */ + +#define GPIO_CFGLR_MODE6 ((uint32_t)0x03000000) /* MODE6[1:0] bits (Port x mode bits, pin 6) */ +#define GPIO_CFGLR_MODE6_0 ((uint32_t)0x01000000) /* Bit 0 */ +#define GPIO_CFGLR_MODE6_1 ((uint32_t)0x02000000) /* Bit 1 */ + +#define GPIO_CFGLR_MODE7 ((uint32_t)0x30000000) /* MODE7[1:0] bits (Port x mode bits, pin 7) */ +#define GPIO_CFGLR_MODE7_0 ((uint32_t)0x10000000) /* Bit 0 */ +#define GPIO_CFGLR_MODE7_1 ((uint32_t)0x20000000) /* Bit 1 */ + +#define GPIO_CFGLR_CNF ((uint32_t)0xCCCCCCCC) /* Port x configuration bits */ + +#define GPIO_CFGLR_CNF0 ((uint32_t)0x0000000C) /* CNF0[1:0] bits (Port x configuration bits, pin 0) */ +#define GPIO_CFGLR_CNF0_0 ((uint32_t)0x00000004) /* Bit 0 */ +#define GPIO_CFGLR_CNF0_1 ((uint32_t)0x00000008) /* Bit 1 */ + +#define GPIO_CFGLR_CNF1 ((uint32_t)0x000000C0) /* CNF1[1:0] bits (Port x configuration bits, pin 1) */ +#define GPIO_CFGLR_CNF1_0 ((uint32_t)0x00000040) /* Bit 0 */ +#define GPIO_CFGLR_CNF1_1 ((uint32_t)0x00000080) /* Bit 1 */ + +#define GPIO_CFGLR_CNF2 ((uint32_t)0x00000C00) /* CNF2[1:0] bits (Port x configuration bits, pin 2) */ +#define GPIO_CFGLR_CNF2_0 ((uint32_t)0x00000400) /* Bit 0 */ +#define GPIO_CFGLR_CNF2_1 ((uint32_t)0x00000800) /* Bit 1 */ + +#define GPIO_CFGLR_CNF3 ((uint32_t)0x0000C000) /* CNF3[1:0] bits (Port x configuration bits, pin 3) */ +#define GPIO_CFGLR_CNF3_0 ((uint32_t)0x00004000) /* Bit 0 */ +#define GPIO_CFGLR_CNF3_1 ((uint32_t)0x00008000) /* Bit 1 */ + +#define GPIO_CFGLR_CNF4 ((uint32_t)0x000C0000) /* CNF4[1:0] bits (Port x configuration bits, pin 4) */ +#define GPIO_CFGLR_CNF4_0 ((uint32_t)0x00040000) /* Bit 0 */ +#define GPIO_CFGLR_CNF4_1 ((uint32_t)0x00080000) /* Bit 1 */ + +#define GPIO_CFGLR_CNF5 ((uint32_t)0x00C00000) /* CNF5[1:0] bits (Port x configuration bits, pin 5) */ +#define GPIO_CFGLR_CNF5_0 ((uint32_t)0x00400000) /* Bit 0 */ +#define GPIO_CFGLR_CNF5_1 ((uint32_t)0x00800000) /* Bit 1 */ + +#define GPIO_CFGLR_CNF6 ((uint32_t)0x0C000000) /* CNF6[1:0] bits (Port x configuration bits, pin 6) */ +#define GPIO_CFGLR_CNF6_0 ((uint32_t)0x04000000) /* Bit 0 */ +#define GPIO_CFGLR_CNF6_1 ((uint32_t)0x08000000) /* Bit 1 */ + +#define GPIO_CFGLR_CNF7 ((uint32_t)0xC0000000) /* CNF7[1:0] bits (Port x configuration bits, pin 7) */ +#define GPIO_CFGLR_CNF7_0 ((uint32_t)0x40000000) /* Bit 0 */ +#define GPIO_CFGLR_CNF7_1 ((uint32_t)0x80000000) /* Bit 1 */ + +/******************* Bit definition for GPIO_CFGHR register *******************/ +#define GPIO_CFGHR_MODE ((uint32_t)0x33333333) /* Port x mode bits */ + +#define GPIO_CFGHR_MODE8 ((uint32_t)0x00000003) /* MODE8[1:0] bits (Port x mode bits, pin 8) */ +#define GPIO_CFGHR_MODE8_0 ((uint32_t)0x00000001) /* Bit 0 */ +#define GPIO_CFGHR_MODE8_1 ((uint32_t)0x00000002) /* Bit 1 */ + +#define GPIO_CFGHR_MODE9 ((uint32_t)0x00000030) /* MODE9[1:0] bits (Port x mode bits, pin 9) */ +#define GPIO_CFGHR_MODE9_0 ((uint32_t)0x00000010) /* Bit 0 */ +#define GPIO_CFGHR_MODE9_1 ((uint32_t)0x00000020) /* Bit 1 */ + +#define GPIO_CFGHR_MODE10 ((uint32_t)0x00000300) /* MODE10[1:0] bits (Port x mode bits, pin 10) */ +#define GPIO_CFGHR_MODE10_0 ((uint32_t)0x00000100) /* Bit 0 */ +#define GPIO_CFGHR_MODE10_1 ((uint32_t)0x00000200) /* Bit 1 */ + +#define GPIO_CFGHR_MODE11 ((uint32_t)0x00003000) /* MODE11[1:0] bits (Port x mode bits, pin 11) */ +#define GPIO_CFGHR_MODE11_0 ((uint32_t)0x00001000) /* Bit 0 */ +#define GPIO_CFGHR_MODE11_1 ((uint32_t)0x00002000) /* Bit 1 */ + +#define GPIO_CFGHR_MODE12 ((uint32_t)0x00030000) /* MODE12[1:0] bits (Port x mode bits, pin 12) */ +#define GPIO_CFGHR_MODE12_0 ((uint32_t)0x00010000) /* Bit 0 */ +#define GPIO_CFGHR_MODE12_1 ((uint32_t)0x00020000) /* Bit 1 */ + +#define GPIO_CFGHR_MODE13 ((uint32_t)0x00300000) /* MODE13[1:0] bits (Port x mode bits, pin 13) */ +#define GPIO_CFGHR_MODE13_0 ((uint32_t)0x00100000) /* Bit 0 */ +#define GPIO_CFGHR_MODE13_1 ((uint32_t)0x00200000) /* Bit 1 */ + +#define GPIO_CFGHR_MODE14 ((uint32_t)0x03000000) /* MODE14[1:0] bits (Port x mode bits, pin 14) */ +#define GPIO_CFGHR_MODE14_0 ((uint32_t)0x01000000) /* Bit 0 */ +#define GPIO_CFGHR_MODE14_1 ((uint32_t)0x02000000) /* Bit 1 */ + +#define GPIO_CFGHR_MODE15 ((uint32_t)0x30000000) /* MODE15[1:0] bits (Port x mode bits, pin 15) */ +#define GPIO_CFGHR_MODE15_0 ((uint32_t)0x10000000) /* Bit 0 */ +#define GPIO_CFGHR_MODE15_1 ((uint32_t)0x20000000) /* Bit 1 */ + +#define GPIO_CFGHR_CNF ((uint32_t)0xCCCCCCCC) /* Port x configuration bits */ + +#define GPIO_CFGHR_CNF8 ((uint32_t)0x0000000C) /* CNF8[1:0] bits (Port x configuration bits, pin 8) */ +#define GPIO_CFGHR_CNF8_0 ((uint32_t)0x00000004) /* Bit 0 */ +#define GPIO_CFGHR_CNF8_1 ((uint32_t)0x00000008) /* Bit 1 */ + +#define GPIO_CFGHR_CNF9 ((uint32_t)0x000000C0) /* CNF9[1:0] bits (Port x configuration bits, pin 9) */ +#define GPIO_CFGHR_CNF9_0 ((uint32_t)0x00000040) /* Bit 0 */ +#define GPIO_CFGHR_CNF9_1 ((uint32_t)0x00000080) /* Bit 1 */ + +#define GPIO_CFGHR_CNF10 ((uint32_t)0x00000C00) /* CNF10[1:0] bits (Port x configuration bits, pin 10) */ +#define GPIO_CFGHR_CNF10_0 ((uint32_t)0x00000400) /* Bit 0 */ +#define GPIO_CFGHR_CNF10_1 ((uint32_t)0x00000800) /* Bit 1 */ + +#define GPIO_CFGHR_CNF11 ((uint32_t)0x0000C000) /* CNF11[1:0] bits (Port x configuration bits, pin 11) */ +#define GPIO_CFGHR_CNF11_0 ((uint32_t)0x00004000) /* Bit 0 */ +#define GPIO_CFGHR_CNF11_1 ((uint32_t)0x00008000) /* Bit 1 */ + +#define GPIO_CFGHR_CNF12 ((uint32_t)0x000C0000) /* CNF12[1:0] bits (Port x configuration bits, pin 12) */ +#define GPIO_CFGHR_CNF12_0 ((uint32_t)0x00040000) /* Bit 0 */ +#define GPIO_CFGHR_CNF12_1 ((uint32_t)0x00080000) /* Bit 1 */ + +#define GPIO_CFGHR_CNF13 ((uint32_t)0x00C00000) /* CNF13[1:0] bits (Port x configuration bits, pin 13) */ +#define GPIO_CFGHR_CNF13_0 ((uint32_t)0x00400000) /* Bit 0 */ +#define GPIO_CFGHR_CNF13_1 ((uint32_t)0x00800000) /* Bit 1 */ + +#define GPIO_CFGHR_CNF14 ((uint32_t)0x0C000000) /* CNF14[1:0] bits (Port x configuration bits, pin 14) */ +#define GPIO_CFGHR_CNF14_0 ((uint32_t)0x04000000) /* Bit 0 */ +#define GPIO_CFGHR_CNF14_1 ((uint32_t)0x08000000) /* Bit 1 */ + +#define GPIO_CFGHR_CNF15 ((uint32_t)0xC0000000) /* CNF15[1:0] bits (Port x configuration bits, pin 15) */ +#define GPIO_CFGHR_CNF15_0 ((uint32_t)0x40000000) /* Bit 0 */ +#define GPIO_CFGHR_CNF15_1 ((uint32_t)0x80000000) /* Bit 1 */ + +/******************* Bit definition for GPIO_INDR register *******************/ +#define GPIO_INDR_IDR0 ((uint16_t)0x0001) /* Port input data, bit 0 */ +#define GPIO_INDR_IDR1 ((uint16_t)0x0002) /* Port input data, bit 1 */ +#define GPIO_INDR_IDR2 ((uint16_t)0x0004) /* Port input data, bit 2 */ +#define GPIO_INDR_IDR3 ((uint16_t)0x0008) /* Port input data, bit 3 */ +#define GPIO_INDR_IDR4 ((uint16_t)0x0010) /* Port input data, bit 4 */ +#define GPIO_INDR_IDR5 ((uint16_t)0x0020) /* Port input data, bit 5 */ +#define GPIO_INDR_IDR6 ((uint16_t)0x0040) /* Port input data, bit 6 */ +#define GPIO_INDR_IDR7 ((uint16_t)0x0080) /* Port input data, bit 7 */ +#define GPIO_INDR_IDR8 ((uint16_t)0x0100) /* Port input data, bit 8 */ +#define GPIO_INDR_IDR9 ((uint16_t)0x0200) /* Port input data, bit 9 */ +#define GPIO_INDR_IDR10 ((uint16_t)0x0400) /* Port input data, bit 10 */ +#define GPIO_INDR_IDR11 ((uint16_t)0x0800) /* Port input data, bit 11 */ +#define GPIO_INDR_IDR12 ((uint16_t)0x1000) /* Port input data, bit 12 */ +#define GPIO_INDR_IDR13 ((uint16_t)0x2000) /* Port input data, bit 13 */ +#define GPIO_INDR_IDR14 ((uint16_t)0x4000) /* Port input data, bit 14 */ +#define GPIO_INDR_IDR15 ((uint16_t)0x8000) /* Port input data, bit 15 */ + +/******************* Bit definition for GPIO_OUTDR register *******************/ +#define GPIO_OUTDR_ODR0 ((uint16_t)0x0001) /* Port output data, bit 0 */ +#define GPIO_OUTDR_ODR1 ((uint16_t)0x0002) /* Port output data, bit 1 */ +#define GPIO_OUTDR_ODR2 ((uint16_t)0x0004) /* Port output data, bit 2 */ +#define GPIO_OUTDR_ODR3 ((uint16_t)0x0008) /* Port output data, bit 3 */ +#define GPIO_OUTDR_ODR4 ((uint16_t)0x0010) /* Port output data, bit 4 */ +#define GPIO_OUTDR_ODR5 ((uint16_t)0x0020) /* Port output data, bit 5 */ +#define GPIO_OUTDR_ODR6 ((uint16_t)0x0040) /* Port output data, bit 6 */ +#define GPIO_OUTDR_ODR7 ((uint16_t)0x0080) /* Port output data, bit 7 */ +#define GPIO_OUTDR_ODR8 ((uint16_t)0x0100) /* Port output data, bit 8 */ +#define GPIO_OUTDR_ODR9 ((uint16_t)0x0200) /* Port output data, bit 9 */ +#define GPIO_OUTDR_ODR10 ((uint16_t)0x0400) /* Port output data, bit 10 */ +#define GPIO_OUTDR_ODR11 ((uint16_t)0x0800) /* Port output data, bit 11 */ +#define GPIO_OUTDR_ODR12 ((uint16_t)0x1000) /* Port output data, bit 12 */ +#define GPIO_OUTDR_ODR13 ((uint16_t)0x2000) /* Port output data, bit 13 */ +#define GPIO_OUTDR_ODR14 ((uint16_t)0x4000) /* Port output data, bit 14 */ +#define GPIO_OUTDR_ODR15 ((uint16_t)0x8000) /* Port output data, bit 15 */ + +/****************** Bit definition for GPIO_BSHR register *******************/ +#define GPIO_BSHR_BS0 ((uint32_t)0x00000001) /* Port x Set bit 0 */ +#define GPIO_BSHR_BS1 ((uint32_t)0x00000002) /* Port x Set bit 1 */ +#define GPIO_BSHR_BS2 ((uint32_t)0x00000004) /* Port x Set bit 2 */ +#define GPIO_BSHR_BS3 ((uint32_t)0x00000008) /* Port x Set bit 3 */ +#define GPIO_BSHR_BS4 ((uint32_t)0x00000010) /* Port x Set bit 4 */ +#define GPIO_BSHR_BS5 ((uint32_t)0x00000020) /* Port x Set bit 5 */ +#define GPIO_BSHR_BS6 ((uint32_t)0x00000040) /* Port x Set bit 6 */ +#define GPIO_BSHR_BS7 ((uint32_t)0x00000080) /* Port x Set bit 7 */ +#define GPIO_BSHR_BS8 ((uint32_t)0x00000100) /* Port x Set bit 8 */ +#define GPIO_BSHR_BS9 ((uint32_t)0x00000200) /* Port x Set bit 9 */ +#define GPIO_BSHR_BS10 ((uint32_t)0x00000400) /* Port x Set bit 10 */ +#define GPIO_BSHR_BS11 ((uint32_t)0x00000800) /* Port x Set bit 11 */ +#define GPIO_BSHR_BS12 ((uint32_t)0x00001000) /* Port x Set bit 12 */ +#define GPIO_BSHR_BS13 ((uint32_t)0x00002000) /* Port x Set bit 13 */ +#define GPIO_BSHR_BS14 ((uint32_t)0x00004000) /* Port x Set bit 14 */ +#define GPIO_BSHR_BS15 ((uint32_t)0x00008000) /* Port x Set bit 15 */ + +#define GPIO_BSHR_BR0 ((uint32_t)0x00010000) /* Port x Reset bit 0 */ +#define GPIO_BSHR_BR1 ((uint32_t)0x00020000) /* Port x Reset bit 1 */ +#define GPIO_BSHR_BR2 ((uint32_t)0x00040000) /* Port x Reset bit 2 */ +#define GPIO_BSHR_BR3 ((uint32_t)0x00080000) /* Port x Reset bit 3 */ +#define GPIO_BSHR_BR4 ((uint32_t)0x00100000) /* Port x Reset bit 4 */ +#define GPIO_BSHR_BR5 ((uint32_t)0x00200000) /* Port x Reset bit 5 */ +#define GPIO_BSHR_BR6 ((uint32_t)0x00400000) /* Port x Reset bit 6 */ +#define GPIO_BSHR_BR7 ((uint32_t)0x00800000) /* Port x Reset bit 7 */ +#define GPIO_BSHR_BR8 ((uint32_t)0x01000000) /* Port x Reset bit 8 */ +#define GPIO_BSHR_BR9 ((uint32_t)0x02000000) /* Port x Reset bit 9 */ +#define GPIO_BSHR_BR10 ((uint32_t)0x04000000) /* Port x Reset bit 10 */ +#define GPIO_BSHR_BR11 ((uint32_t)0x08000000) /* Port x Reset bit 11 */ +#define GPIO_BSHR_BR12 ((uint32_t)0x10000000) /* Port x Reset bit 12 */ +#define GPIO_BSHR_BR13 ((uint32_t)0x20000000) /* Port x Reset bit 13 */ +#define GPIO_BSHR_BR14 ((uint32_t)0x40000000) /* Port x Reset bit 14 */ +#define GPIO_BSHR_BR15 ((uint32_t)0x80000000) /* Port x Reset bit 15 */ + +/******************* Bit definition for GPIO_BCR register *******************/ +#define GPIO_BCR_BR0 ((uint16_t)0x0001) /* Port x Reset bit 0 */ +#define GPIO_BCR_BR1 ((uint16_t)0x0002) /* Port x Reset bit 1 */ +#define GPIO_BCR_BR2 ((uint16_t)0x0004) /* Port x Reset bit 2 */ +#define GPIO_BCR_BR3 ((uint16_t)0x0008) /* Port x Reset bit 3 */ +#define GPIO_BCR_BR4 ((uint16_t)0x0010) /* Port x Reset bit 4 */ +#define GPIO_BCR_BR5 ((uint16_t)0x0020) /* Port x Reset bit 5 */ +#define GPIO_BCR_BR6 ((uint16_t)0x0040) /* Port x Reset bit 6 */ +#define GPIO_BCR_BR7 ((uint16_t)0x0080) /* Port x Reset bit 7 */ +#define GPIO_BCR_BR8 ((uint16_t)0x0100) /* Port x Reset bit 8 */ +#define GPIO_BCR_BR9 ((uint16_t)0x0200) /* Port x Reset bit 9 */ +#define GPIO_BCR_BR10 ((uint16_t)0x0400) /* Port x Reset bit 10 */ +#define GPIO_BCR_BR11 ((uint16_t)0x0800) /* Port x Reset bit 11 */ +#define GPIO_BCR_BR12 ((uint16_t)0x1000) /* Port x Reset bit 12 */ +#define GPIO_BCR_BR13 ((uint16_t)0x2000) /* Port x Reset bit 13 */ +#define GPIO_BCR_BR14 ((uint16_t)0x4000) /* Port x Reset bit 14 */ +#define GPIO_BCR_BR15 ((uint16_t)0x8000) /* Port x Reset bit 15 */ + +/****************** Bit definition for GPIO_LCKR register *******************/ +#define GPIO_LCK0 ((uint32_t)0x00000001) /* Port x Lock bit 0 */ +#define GPIO_LCK1 ((uint32_t)0x00000002) /* Port x Lock bit 1 */ +#define GPIO_LCK2 ((uint32_t)0x00000004) /* Port x Lock bit 2 */ +#define GPIO_LCK3 ((uint32_t)0x00000008) /* Port x Lock bit 3 */ +#define GPIO_LCK4 ((uint32_t)0x00000010) /* Port x Lock bit 4 */ +#define GPIO_LCK5 ((uint32_t)0x00000020) /* Port x Lock bit 5 */ +#define GPIO_LCK6 ((uint32_t)0x00000040) /* Port x Lock bit 6 */ +#define GPIO_LCK7 ((uint32_t)0x00000080) /* Port x Lock bit 7 */ +#define GPIO_LCK8 ((uint32_t)0x00000100) /* Port x Lock bit 8 */ +#define GPIO_LCK9 ((uint32_t)0x00000200) /* Port x Lock bit 9 */ +#define GPIO_LCK10 ((uint32_t)0x00000400) /* Port x Lock bit 10 */ +#define GPIO_LCK11 ((uint32_t)0x00000800) /* Port x Lock bit 11 */ +#define GPIO_LCK12 ((uint32_t)0x00001000) /* Port x Lock bit 12 */ +#define GPIO_LCK13 ((uint32_t)0x00002000) /* Port x Lock bit 13 */ +#define GPIO_LCK14 ((uint32_t)0x00004000) /* Port x Lock bit 14 */ +#define GPIO_LCK15 ((uint32_t)0x00008000) /* Port x Lock bit 15 */ +#define GPIO_LCKK ((uint32_t)0x00010000) /* Lock key */ + +/****************** Bit definition for AFIO_ECR register *******************/ +#define AFIO_ECR_PIN ((uint8_t)0x0F) /* PIN[3:0] bits (Pin selection) */ +#define AFIO_ECR_PIN_0 ((uint8_t)0x01) /* Bit 0 */ +#define AFIO_ECR_PIN_1 ((uint8_t)0x02) /* Bit 1 */ +#define AFIO_ECR_PIN_2 ((uint8_t)0x04) /* Bit 2 */ +#define AFIO_ECR_PIN_3 ((uint8_t)0x08) /* Bit 3 */ + +#define AFIO_ECR_PIN_PX0 ((uint8_t)0x00) /* Pin 0 selected */ +#define AFIO_ECR_PIN_PX1 ((uint8_t)0x01) /* Pin 1 selected */ +#define AFIO_ECR_PIN_PX2 ((uint8_t)0x02) /* Pin 2 selected */ +#define AFIO_ECR_PIN_PX3 ((uint8_t)0x03) /* Pin 3 selected */ +#define AFIO_ECR_PIN_PX4 ((uint8_t)0x04) /* Pin 4 selected */ +#define AFIO_ECR_PIN_PX5 ((uint8_t)0x05) /* Pin 5 selected */ +#define AFIO_ECR_PIN_PX6 ((uint8_t)0x06) /* Pin 6 selected */ +#define AFIO_ECR_PIN_PX7 ((uint8_t)0x07) /* Pin 7 selected */ +#define AFIO_ECR_PIN_PX8 ((uint8_t)0x08) /* Pin 8 selected */ +#define AFIO_ECR_PIN_PX9 ((uint8_t)0x09) /* Pin 9 selected */ +#define AFIO_ECR_PIN_PX10 ((uint8_t)0x0A) /* Pin 10 selected */ +#define AFIO_ECR_PIN_PX11 ((uint8_t)0x0B) /* Pin 11 selected */ +#define AFIO_ECR_PIN_PX12 ((uint8_t)0x0C) /* Pin 12 selected */ +#define AFIO_ECR_PIN_PX13 ((uint8_t)0x0D) /* Pin 13 selected */ +#define AFIO_ECR_PIN_PX14 ((uint8_t)0x0E) /* Pin 14 selected */ +#define AFIO_ECR_PIN_PX15 ((uint8_t)0x0F) /* Pin 15 selected */ + +#define AFIO_ECR_PORT ((uint8_t)0x70) /* PORT[2:0] bits (Port selection) */ +#define AFIO_ECR_PORT_0 ((uint8_t)0x10) /* Bit 0 */ +#define AFIO_ECR_PORT_1 ((uint8_t)0x20) /* Bit 1 */ +#define AFIO_ECR_PORT_2 ((uint8_t)0x40) /* Bit 2 */ + +#define AFIO_ECR_PORT_PA ((uint8_t)0x00) /* Port A selected */ +#define AFIO_ECR_PORT_PB ((uint8_t)0x10) /* Port B selected */ +#define AFIO_ECR_PORT_PC ((uint8_t)0x20) /* Port C selected */ +#define AFIO_ECR_PORT_PD ((uint8_t)0x30) /* Port D selected */ +#define AFIO_ECR_PORT_PE ((uint8_t)0x40) /* Port E selected */ + +#define AFIO_ECR_EVOE ((uint8_t)0x80) /* Event Output Enable */ + +/****************** Bit definition for AFIO_PCFR1register *******************/ +#define AFIO_PCFR1_SPI1_REMAP ((uint32_t)0x00000001) /* SPI1 remapping */ +#define AFIO_PCFR1_I2C1_REMAP ((uint32_t)0x00000002) /* I2C1 remapping */ +#define AFIO_PCFR1_USART1_REMAP ((uint32_t)0x00000004) /* USART1 remapping */ +#define AFIO_PCFR1_USART2_REMAP ((uint32_t)0x00000008) /* USART2 remapping */ + +#define AFIO_PCFR1_USART3_REMAP ((uint32_t)0x00000030) /* USART3_REMAP[1:0] bits (USART3 remapping) */ +#define AFIO_PCFR1_USART3_REMAP_0 ((uint32_t)0x00000010) /* Bit 0 */ +#define AFIO_PCFR1_USART3_REMAP_1 ((uint32_t)0x00000020) /* Bit 1 */ + +#define AFIO_PCFR1_USART3_REMAP_NOREMAP ((uint32_t)0x00000000) /* No remap (TX/PB10, RX/PB11, CK/PB12, CTS/PB13, RTS/PB14) */ +#define AFIO_PCFR1_USART3_REMAP_PARTIALREMAP ((uint32_t)0x00000010) /* Partial remap (TX/PC10, RX/PC11, CK/PC12, CTS/PB13, RTS/PB14) */ +#define AFIO_PCFR1_USART3_REMAP_FULLREMAP ((uint32_t)0x00000030) /* Full remap (TX/PD8, RX/PD9, CK/PD10, CTS/PD11, RTS/PD12) */ + +#define AFIO_PCFR1_TIM1_REMAP ((uint32_t)0x000000C0) /* TIM1_REMAP[1:0] bits (TIM1 remapping) */ +#define AFIO_PCFR1_TIM1_REMAP_0 ((uint32_t)0x00000040) /* Bit 0 */ +#define AFIO_PCFR1_TIM1_REMAP_1 ((uint32_t)0x00000080) /* Bit 1 */ + +#define AFIO_PCFR1_TIM1_REMAP_NOREMAP ((uint32_t)0x00000000) /* No remap (ETR/PA12, CH1/PA8, CH2/PA9, CH3/PA10, CH4/PA11, BKIN/PB12, CH1N/PB13, CH2N/PB14, CH3N/PB15) */ +#define AFIO_PCFR1_TIM1_REMAP_PARTIALREMAP ((uint32_t)0x00000040) /* Partial remap (ETR/PA12, CH1/PA8, CH2/PA9, CH3/PA10, CH4/PA11, BKIN/PA6, CH1N/PA7, CH2N/PB0, CH3N/PB1) */ +#define AFIO_PCFR1_TIM1_REMAP_FULLREMAP ((uint32_t)0x000000C0) /* Full remap (ETR/PE7, CH1/PE9, CH2/PE11, CH3/PE13, CH4/PE14, BKIN/PE15, CH1N/PE8, CH2N/PE10, CH3N/PE12) */ + +#define AFIO_PCFR1_TIM2_REMAP ((uint32_t)0x00000300) /* TIM2_REMAP[1:0] bits (TIM2 remapping) */ +#define AFIO_PCFR1_TIM2_REMAP_0 ((uint32_t)0x00000100) /* Bit 0 */ +#define AFIO_PCFR1_TIM2_REMAP_1 ((uint32_t)0x00000200) /* Bit 1 */ + +#define AFIO_PCFR1_TIM2_REMAP_NOREMAP ((uint32_t)0x00000000) /* No remap (CH1/ETR/PA0, CH2/PA1, CH3/PA2, CH4/PA3) */ +#define AFIO_PCFR1_TIM2_REMAP_PARTIALREMAP1 ((uint32_t)0x00000100) /* Partial remap (CH1/ETR/PA15, CH2/PB3, CH3/PA2, CH4/PA3) */ +#define AFIO_PCFR1_TIM2_REMAP_PARTIALREMAP2 ((uint32_t)0x00000200) /* Partial remap (CH1/ETR/PA0, CH2/PA1, CH3/PB10, CH4/PB11) */ +#define AFIO_PCFR1_TIM2_REMAP_FULLREMAP ((uint32_t)0x00000300) /* Full remap (CH1/ETR/PA15, CH2/PB3, CH3/PB10, CH4/PB11) */ + +#define AFIO_PCFR1_TIM3_REMAP ((uint32_t)0x00000C00) /* TIM3_REMAP[1:0] bits (TIM3 remapping) */ +#define AFIO_PCFR1_TIM3_REMAP_0 ((uint32_t)0x00000400) /* Bit 0 */ +#define AFIO_PCFR1_TIM3_REMAP_1 ((uint32_t)0x00000800) /* Bit 1 */ + +#define AFIO_PCFR1_TIM3_REMAP_NOREMAP ((uint32_t)0x00000000) /* No remap (CH1/PA6, CH2/PA7, CH3/PB0, CH4/PB1) */ +#define AFIO_PCFR1_TIM3_REMAP_PARTIALREMAP ((uint32_t)0x00000800) /* Partial remap (CH1/PB4, CH2/PB5, CH3/PB0, CH4/PB1) */ +#define AFIO_PCFR1_TIM3_REMAP_FULLREMAP ((uint32_t)0x00000C00) /* Full remap (CH1/PC6, CH2/PC7, CH3/PC8, CH4/PC9) */ + +#define AFIO_PCFR1_TIM4_REMAP ((uint32_t)0x00001000) /* TIM4_REMAP bit (TIM4 remapping) */ + +#define AFIO_PCFR1_CAN_REMAP ((uint32_t)0x00006000) /* CAN_REMAP[1:0] bits (CAN Alternate function remapping) */ +#define AFIO_PCFR1_CAN_REMAP_0 ((uint32_t)0x00002000) /* Bit 0 */ +#define AFIO_PCFR1_CAN_REMAP_1 ((uint32_t)0x00004000) /* Bit 1 */ + +#define AFIO_PCFR1_CAN_REMAP_REMAP1 ((uint32_t)0x00000000) /* CANRX mapped to PA11, CANTX mapped to PA12 */ +#define AFIO_PCFR1_CAN_REMAP_REMAP2 ((uint32_t)0x00004000) /* CANRX mapped to PB8, CANTX mapped to PB9 */ +#define AFIO_PCFR1_CAN_REMAP_REMAP3 ((uint32_t)0x00006000) /* CANRX mapped to PD0, CANTX mapped to PD1 */ + +#define AFIO_PCFR1_PD01_REMAP ((uint32_t)0x00008000) /* Port D0/Port D1 mapping on OSC_IN/OSC_OUT */ +#define AFIO_PCFR1_TIM5CH4_IREMAP ((uint32_t)0x00010000) /* TIM5 Channel4 Internal Remap */ +#define AFIO_PCFR1_ADC1_ETRGINJ_REMAP ((uint32_t)0x00020000) /* ADC 1 External Trigger Injected Conversion remapping */ +#define AFIO_PCFR1_ADC1_ETRGREG_REMAP ((uint32_t)0x00040000) /* ADC 1 External Trigger Regular Conversion remapping */ +#define AFIO_PCFR1_ADC2_ETRGINJ_REMAP ((uint32_t)0x00080000) /* ADC 2 External Trigger Injected Conversion remapping */ +#define AFIO_PCFR1_ADC2_ETRGREG_REMAP ((uint32_t)0x00100000) /* ADC 2 External Trigger Regular Conversion remapping */ + +#define AFIO_PCFR1_SWJ_CFG ((uint32_t)0x07000000) /* SWJ_CFG[2:0] bits (Serial Wire JTAG configuration) */ +#define AFIO_PCFR1_SWJ_CFG_0 ((uint32_t)0x01000000) /* Bit 0 */ +#define AFIO_PCFR1_SWJ_CFG_1 ((uint32_t)0x02000000) /* Bit 1 */ +#define AFIO_PCFR1_SWJ_CFG_2 ((uint32_t)0x04000000) /* Bit 2 */ + +#define AFIO_PCFR1_SWJ_CFG_RESET ((uint32_t)0x00000000) /* Full SWJ (JTAG-DP + SW-DP) : Reset State */ +#define AFIO_PCFR1_SWJ_CFG_NOJNTRST ((uint32_t)0x01000000) /* Full SWJ (JTAG-DP + SW-DP) but without JNTRST */ +#define AFIO_PCFR1_SWJ_CFG_JTAGDISABLE ((uint32_t)0x02000000) /* JTAG-DP Disabled and SW-DP Enabled */ +#define AFIO_PCFR1_SWJ_CFG_DISABLE ((uint32_t)0x04000000) /* JTAG-DP Disabled and SW-DP Disabled */ + +/***************** Bit definition for AFIO_EXTICR1 register *****************/ +#define AFIO_EXTICR1_EXTI0 ((uint16_t)0x000F) /* EXTI 0 configuration */ +#define AFIO_EXTICR1_EXTI1 ((uint16_t)0x00F0) /* EXTI 1 configuration */ +#define AFIO_EXTICR1_EXTI2 ((uint16_t)0x0F00) /* EXTI 2 configuration */ +#define AFIO_EXTICR1_EXTI3 ((uint16_t)0xF000) /* EXTI 3 configuration */ + +#define AFIO_EXTICR1_EXTI0_PA ((uint16_t)0x0000) /* PA[0] pin */ +#define AFIO_EXTICR1_EXTI0_PB ((uint16_t)0x0001) /* PB[0] pin */ +#define AFIO_EXTICR1_EXTI0_PC ((uint16_t)0x0002) /* PC[0] pin */ +#define AFIO_EXTICR1_EXTI0_PD ((uint16_t)0x0003) /* PD[0] pin */ +#define AFIO_EXTICR1_EXTI0_PE ((uint16_t)0x0004) /* PE[0] pin */ +#define AFIO_EXTICR1_EXTI0_PF ((uint16_t)0x0005) /* PF[0] pin */ +#define AFIO_EXTICR1_EXTI0_PG ((uint16_t)0x0006) /* PG[0] pin */ + +#define AFIO_EXTICR1_EXTI1_PA ((uint16_t)0x0000) /* PA[1] pin */ +#define AFIO_EXTICR1_EXTI1_PB ((uint16_t)0x0010) /* PB[1] pin */ +#define AFIO_EXTICR1_EXTI1_PC ((uint16_t)0x0020) /* PC[1] pin */ +#define AFIO_EXTICR1_EXTI1_PD ((uint16_t)0x0030) /* PD[1] pin */ +#define AFIO_EXTICR1_EXTI1_PE ((uint16_t)0x0040) /* PE[1] pin */ +#define AFIO_EXTICR1_EXTI1_PF ((uint16_t)0x0050) /* PF[1] pin */ +#define AFIO_EXTICR1_EXTI1_PG ((uint16_t)0x0060) /* PG[1] pin */ + +#define AFIO_EXTICR1_EXTI2_PA ((uint16_t)0x0000) /* PA[2] pin */ +#define AFIO_EXTICR1_EXTI2_PB ((uint16_t)0x0100) /* PB[2] pin */ +#define AFIO_EXTICR1_EXTI2_PC ((uint16_t)0x0200) /* PC[2] pin */ +#define AFIO_EXTICR1_EXTI2_PD ((uint16_t)0x0300) /* PD[2] pin */ +#define AFIO_EXTICR1_EXTI2_PE ((uint16_t)0x0400) /* PE[2] pin */ +#define AFIO_EXTICR1_EXTI2_PF ((uint16_t)0x0500) /* PF[2] pin */ +#define AFIO_EXTICR1_EXTI2_PG ((uint16_t)0x0600) /* PG[2] pin */ + +#define AFIO_EXTICR1_EXTI3_PA ((uint16_t)0x0000) /* PA[3] pin */ +#define AFIO_EXTICR1_EXTI3_PB ((uint16_t)0x1000) /* PB[3] pin */ +#define AFIO_EXTICR1_EXTI3_PC ((uint16_t)0x2000) /* PC[3] pin */ +#define AFIO_EXTICR1_EXTI3_PD ((uint16_t)0x3000) /* PD[3] pin */ +#define AFIO_EXTICR1_EXTI3_PE ((uint16_t)0x4000) /* PE[3] pin */ +#define AFIO_EXTICR1_EXTI3_PF ((uint16_t)0x5000) /* PF[3] pin */ +#define AFIO_EXTICR1_EXTI3_PG ((uint16_t)0x6000) /* PG[3] pin */ + +/***************** Bit definition for AFIO_EXTICR2 register *****************/ +#define AFIO_EXTICR2_EXTI4 ((uint16_t)0x000F) /* EXTI 4 configuration */ +#define AFIO_EXTICR2_EXTI5 ((uint16_t)0x00F0) /* EXTI 5 configuration */ +#define AFIO_EXTICR2_EXTI6 ((uint16_t)0x0F00) /* EXTI 6 configuration */ +#define AFIO_EXTICR2_EXTI7 ((uint16_t)0xF000) /* EXTI 7 configuration */ + +#define AFIO_EXTICR2_EXTI4_PA ((uint16_t)0x0000) /* PA[4] pin */ +#define AFIO_EXTICR2_EXTI4_PB ((uint16_t)0x0001) /* PB[4] pin */ +#define AFIO_EXTICR2_EXTI4_PC ((uint16_t)0x0002) /* PC[4] pin */ +#define AFIO_EXTICR2_EXTI4_PD ((uint16_t)0x0003) /* PD[4] pin */ +#define AFIO_EXTICR2_EXTI4_PE ((uint16_t)0x0004) /* PE[4] pin */ +#define AFIO_EXTICR2_EXTI4_PF ((uint16_t)0x0005) /* PF[4] pin */ +#define AFIO_EXTICR2_EXTI4_PG ((uint16_t)0x0006) /* PG[4] pin */ + +#define AFIO_EXTICR2_EXTI5_PA ((uint16_t)0x0000) /* PA[5] pin */ +#define AFIO_EXTICR2_EXTI5_PB ((uint16_t)0x0010) /* PB[5] pin */ +#define AFIO_EXTICR2_EXTI5_PC ((uint16_t)0x0020) /* PC[5] pin */ +#define AFIO_EXTICR2_EXTI5_PD ((uint16_t)0x0030) /* PD[5] pin */ +#define AFIO_EXTICR2_EXTI5_PE ((uint16_t)0x0040) /* PE[5] pin */ +#define AFIO_EXTICR2_EXTI5_PF ((uint16_t)0x0050) /* PF[5] pin */ +#define AFIO_EXTICR2_EXTI5_PG ((uint16_t)0x0060) /* PG[5] pin */ + +#define AFIO_EXTICR2_EXTI6_PA ((uint16_t)0x0000) /* PA[6] pin */ +#define AFIO_EXTICR2_EXTI6_PB ((uint16_t)0x0100) /* PB[6] pin */ +#define AFIO_EXTICR2_EXTI6_PC ((uint16_t)0x0200) /* PC[6] pin */ +#define AFIO_EXTICR2_EXTI6_PD ((uint16_t)0x0300) /* PD[6] pin */ +#define AFIO_EXTICR2_EXTI6_PE ((uint16_t)0x0400) /* PE[6] pin */ +#define AFIO_EXTICR2_EXTI6_PF ((uint16_t)0x0500) /* PF[6] pin */ +#define AFIO_EXTICR2_EXTI6_PG ((uint16_t)0x0600) /* PG[6] pin */ + +#define AFIO_EXTICR2_EXTI7_PA ((uint16_t)0x0000) /* PA[7] pin */ +#define AFIO_EXTICR2_EXTI7_PB ((uint16_t)0x1000) /* PB[7] pin */ +#define AFIO_EXTICR2_EXTI7_PC ((uint16_t)0x2000) /* PC[7] pin */ +#define AFIO_EXTICR2_EXTI7_PD ((uint16_t)0x3000) /* PD[7] pin */ +#define AFIO_EXTICR2_EXTI7_PE ((uint16_t)0x4000) /* PE[7] pin */ +#define AFIO_EXTICR2_EXTI7_PF ((uint16_t)0x5000) /* PF[7] pin */ +#define AFIO_EXTICR2_EXTI7_PG ((uint16_t)0x6000) /* PG[7] pin */ + +/***************** Bit definition for AFIO_EXTICR3 register *****************/ +#define AFIO_EXTICR3_EXTI8 ((uint16_t)0x000F) /* EXTI 8 configuration */ +#define AFIO_EXTICR3_EXTI9 ((uint16_t)0x00F0) /* EXTI 9 configuration */ +#define AFIO_EXTICR3_EXTI10 ((uint16_t)0x0F00) /* EXTI 10 configuration */ +#define AFIO_EXTICR3_EXTI11 ((uint16_t)0xF000) /* EXTI 11 configuration */ + +#define AFIO_EXTICR3_EXTI8_PA ((uint16_t)0x0000) /* PA[8] pin */ +#define AFIO_EXTICR3_EXTI8_PB ((uint16_t)0x0001) /* PB[8] pin */ +#define AFIO_EXTICR3_EXTI8_PC ((uint16_t)0x0002) /* PC[8] pin */ +#define AFIO_EXTICR3_EXTI8_PD ((uint16_t)0x0003) /* PD[8] pin */ +#define AFIO_EXTICR3_EXTI8_PE ((uint16_t)0x0004) /* PE[8] pin */ +#define AFIO_EXTICR3_EXTI8_PF ((uint16_t)0x0005) /* PF[8] pin */ +#define AFIO_EXTICR3_EXTI8_PG ((uint16_t)0x0006) /* PG[8] pin */ + +#define AFIO_EXTICR3_EXTI9_PA ((uint16_t)0x0000) /* PA[9] pin */ +#define AFIO_EXTICR3_EXTI9_PB ((uint16_t)0x0010) /* PB[9] pin */ +#define AFIO_EXTICR3_EXTI9_PC ((uint16_t)0x0020) /* PC[9] pin */ +#define AFIO_EXTICR3_EXTI9_PD ((uint16_t)0x0030) /* PD[9] pin */ +#define AFIO_EXTICR3_EXTI9_PE ((uint16_t)0x0040) /* PE[9] pin */ +#define AFIO_EXTICR3_EXTI9_PF ((uint16_t)0x0050) /* PF[9] pin */ +#define AFIO_EXTICR3_EXTI9_PG ((uint16_t)0x0060) /* PG[9] pin */ + +#define AFIO_EXTICR3_EXTI10_PA ((uint16_t)0x0000) /* PA[10] pin */ +#define AFIO_EXTICR3_EXTI10_PB ((uint16_t)0x0100) /* PB[10] pin */ +#define AFIO_EXTICR3_EXTI10_PC ((uint16_t)0x0200) /* PC[10] pin */ +#define AFIO_EXTICR3_EXTI10_PD ((uint16_t)0x0300) /* PD[10] pin */ +#define AFIO_EXTICR3_EXTI10_PE ((uint16_t)0x0400) /* PE[10] pin */ +#define AFIO_EXTICR3_EXTI10_PF ((uint16_t)0x0500) /* PF[10] pin */ +#define AFIO_EXTICR3_EXTI10_PG ((uint16_t)0x0600) /* PG[10] pin */ + +#define AFIO_EXTICR3_EXTI11_PA ((uint16_t)0x0000) /* PA[11] pin */ +#define AFIO_EXTICR3_EXTI11_PB ((uint16_t)0x1000) /* PB[11] pin */ +#define AFIO_EXTICR3_EXTI11_PC ((uint16_t)0x2000) /* PC[11] pin */ +#define AFIO_EXTICR3_EXTI11_PD ((uint16_t)0x3000) /* PD[11] pin */ +#define AFIO_EXTICR3_EXTI11_PE ((uint16_t)0x4000) /* PE[11] pin */ +#define AFIO_EXTICR3_EXTI11_PF ((uint16_t)0x5000) /* PF[11] pin */ +#define AFIO_EXTICR3_EXTI11_PG ((uint16_t)0x6000) /* PG[11] pin */ + +/***************** Bit definition for AFIO_EXTICR4 register *****************/ +#define AFIO_EXTICR4_EXTI12 ((uint16_t)0x000F) /* EXTI 12 configuration */ +#define AFIO_EXTICR4_EXTI13 ((uint16_t)0x00F0) /* EXTI 13 configuration */ +#define AFIO_EXTICR4_EXTI14 ((uint16_t)0x0F00) /* EXTI 14 configuration */ +#define AFIO_EXTICR4_EXTI15 ((uint16_t)0xF000) /* EXTI 15 configuration */ + +#define AFIO_EXTICR4_EXTI12_PA ((uint16_t)0x0000) /* PA[12] pin */ +#define AFIO_EXTICR4_EXTI12_PB ((uint16_t)0x0001) /* PB[12] pin */ +#define AFIO_EXTICR4_EXTI12_PC ((uint16_t)0x0002) /* PC[12] pin */ +#define AFIO_EXTICR4_EXTI12_PD ((uint16_t)0x0003) /* PD[12] pin */ +#define AFIO_EXTICR4_EXTI12_PE ((uint16_t)0x0004) /* PE[12] pin */ +#define AFIO_EXTICR4_EXTI12_PF ((uint16_t)0x0005) /* PF[12] pin */ +#define AFIO_EXTICR4_EXTI12_PG ((uint16_t)0x0006) /* PG[12] pin */ + +#define AFIO_EXTICR4_EXTI13_PA ((uint16_t)0x0000) /* PA[13] pin */ +#define AFIO_EXTICR4_EXTI13_PB ((uint16_t)0x0010) /* PB[13] pin */ +#define AFIO_EXTICR4_EXTI13_PC ((uint16_t)0x0020) /* PC[13] pin */ +#define AFIO_EXTICR4_EXTI13_PD ((uint16_t)0x0030) /* PD[13] pin */ +#define AFIO_EXTICR4_EXTI13_PE ((uint16_t)0x0040) /* PE[13] pin */ +#define AFIO_EXTICR4_EXTI13_PF ((uint16_t)0x0050) /* PF[13] pin */ +#define AFIO_EXTICR4_EXTI13_PG ((uint16_t)0x0060) /* PG[13] pin */ + +#define AFIO_EXTICR4_EXTI14_PA ((uint16_t)0x0000) /* PA[14] pin */ +#define AFIO_EXTICR4_EXTI14_PB ((uint16_t)0x0100) /* PB[14] pin */ +#define AFIO_EXTICR4_EXTI14_PC ((uint16_t)0x0200) /* PC[14] pin */ +#define AFIO_EXTICR4_EXTI14_PD ((uint16_t)0x0300) /* PD[14] pin */ +#define AFIO_EXTICR4_EXTI14_PE ((uint16_t)0x0400) /* PE[14] pin */ +#define AFIO_EXTICR4_EXTI14_PF ((uint16_t)0x0500) /* PF[14] pin */ +#define AFIO_EXTICR4_EXTI14_PG ((uint16_t)0x0600) /* PG[14] pin */ + +#define AFIO_EXTICR4_EXTI15_PA ((uint16_t)0x0000) /* PA[15] pin */ +#define AFIO_EXTICR4_EXTI15_PB ((uint16_t)0x1000) /* PB[15] pin */ +#define AFIO_EXTICR4_EXTI15_PC ((uint16_t)0x2000) /* PC[15] pin */ +#define AFIO_EXTICR4_EXTI15_PD ((uint16_t)0x3000) /* PD[15] pin */ +#define AFIO_EXTICR4_EXTI15_PE ((uint16_t)0x4000) /* PE[15] pin */ +#define AFIO_EXTICR4_EXTI15_PF ((uint16_t)0x5000) /* PF[15] pin */ +#define AFIO_EXTICR4_EXTI15_PG ((uint16_t)0x6000) /* PG[15] pin */ + +/******************************************************************************/ +/* Independent WATCHDOG */ +/******************************************************************************/ + +/******************* Bit definition for IWDG_CTLR register ********************/ +#define IWDG_KEY ((uint16_t)0xFFFF) /* Key value (write only, read 0000h) */ + +/******************* Bit definition for IWDG_PSCR register ********************/ +#define IWDG_PR ((uint8_t)0x07) /* PR[2:0] (Prescaler divider) */ +#define IWDG_PR_0 ((uint8_t)0x01) /* Bit 0 */ +#define IWDG_PR_1 ((uint8_t)0x02) /* Bit 1 */ +#define IWDG_PR_2 ((uint8_t)0x04) /* Bit 2 */ + +/******************* Bit definition for IWDG_RLDR register *******************/ +#define IWDG_RL ((uint16_t)0x0FFF) /* Watchdog counter reload value */ + +/******************* Bit definition for IWDG_STATR register ********************/ +#define IWDG_PVU ((uint8_t)0x01) /* Watchdog prescaler value update */ +#define IWDG_RVU ((uint8_t)0x02) /* Watchdog counter reload value update */ + +/******************************************************************************/ +/* Inter-integrated Circuit Interface */ +/******************************************************************************/ + +/******************* Bit definition for I2C_CTLR1 register ********************/ +#define I2C_CTLR1_PE ((uint16_t)0x0001) /* Peripheral Enable */ +#define I2C_CTLR1_SMBUS ((uint16_t)0x0002) /* SMBus Mode */ +#define I2C_CTLR1_SMBTYPE ((uint16_t)0x0008) /* SMBus Type */ +#define I2C_CTLR1_ENARP ((uint16_t)0x0010) /* ARP Enable */ +#define I2C_CTLR1_ENPEC ((uint16_t)0x0020) /* PEC Enable */ +#define I2C_CTLR1_ENGC ((uint16_t)0x0040) /* General Call Enable */ +#define I2C_CTLR1_NOSTRETCH ((uint16_t)0x0080) /* Clock Stretching Disable (Slave mode) */ +#define I2C_CTLR1_START ((uint16_t)0x0100) /* Start Generation */ +#define I2C_CTLR1_STOP ((uint16_t)0x0200) /* Stop Generation */ +#define I2C_CTLR1_ACK ((uint16_t)0x0400) /* Acknowledge Enable */ +#define I2C_CTLR1_POS ((uint16_t)0x0800) /* Acknowledge/PEC Position (for data reception) */ +#define I2C_CTLR1_PEC ((uint16_t)0x1000) /* Packet Error Checking */ +#define I2C_CTLR1_ALERT ((uint16_t)0x2000) /* SMBus Alert */ +#define I2C_CTLR1_SWRST ((uint16_t)0x8000) /* Software Reset */ + +/******************* Bit definition for I2C_CTLR2 register ********************/ +#define I2C_CTLR2_FREQ ((uint16_t)0x003F) /* FREQ[5:0] bits (Peripheral Clock Frequency) */ +#define I2C_CTLR2_FREQ_0 ((uint16_t)0x0001) /* Bit 0 */ +#define I2C_CTLR2_FREQ_1 ((uint16_t)0x0002) /* Bit 1 */ +#define I2C_CTLR2_FREQ_2 ((uint16_t)0x0004) /* Bit 2 */ +#define I2C_CTLR2_FREQ_3 ((uint16_t)0x0008) /* Bit 3 */ +#define I2C_CTLR2_FREQ_4 ((uint16_t)0x0010) /* Bit 4 */ +#define I2C_CTLR2_FREQ_5 ((uint16_t)0x0020) /* Bit 5 */ + +#define I2C_CTLR2_ITERREN ((uint16_t)0x0100) /* Error Interrupt Enable */ +#define I2C_CTLR2_ITEVTEN ((uint16_t)0x0200) /* Event Interrupt Enable */ +#define I2C_CTLR2_ITBUFEN ((uint16_t)0x0400) /* Buffer Interrupt Enable */ +#define I2C_CTLR2_DMAEN ((uint16_t)0x0800) /* DMA Requests Enable */ +#define I2C_CTLR2_LAST ((uint16_t)0x1000) /* DMA Last Transfer */ + +/******************* Bit definition for I2C_OADDR1 register *******************/ +#define I2C_OADDR1_ADD1_7 ((uint16_t)0x00FE) /* Interface Address */ +#define I2C_OADDR1_ADD8_9 ((uint16_t)0x0300) /* Interface Address */ + +#define I2C_OADDR1_ADD0 ((uint16_t)0x0001) /* Bit 0 */ +#define I2C_OADDR1_ADD1 ((uint16_t)0x0002) /* Bit 1 */ +#define I2C_OADDR1_ADD2 ((uint16_t)0x0004) /* Bit 2 */ +#define I2C_OADDR1_ADD3 ((uint16_t)0x0008) /* Bit 3 */ +#define I2C_OADDR1_ADD4 ((uint16_t)0x0010) /* Bit 4 */ +#define I2C_OADDR1_ADD5 ((uint16_t)0x0020) /* Bit 5 */ +#define I2C_OADDR1_ADD6 ((uint16_t)0x0040) /* Bit 6 */ +#define I2C_OADDR1_ADD7 ((uint16_t)0x0080) /* Bit 7 */ +#define I2C_OADDR1_ADD8 ((uint16_t)0x0100) /* Bit 8 */ +#define I2C_OADDR1_ADD9 ((uint16_t)0x0200) /* Bit 9 */ + +#define I2C_OADDR1_ADDMODE ((uint16_t)0x8000) /* Addressing Mode (Slave mode) */ + +/******************* Bit definition for I2C_OADDR2 register *******************/ +#define I2C_OADDR2_ENDUAL ((uint8_t)0x01) /* Dual addressing mode enable */ +#define I2C_OADDR2_ADD2 ((uint8_t)0xFE) /* Interface address */ + +/******************** Bit definition for I2C_DATAR register ********************/ +#define I2C_DR_DATAR ((uint8_t)0xFF) /* 8-bit Data Register */ + +/******************* Bit definition for I2C_STAR1 register ********************/ +#define I2C_STAR1_SB ((uint16_t)0x0001) /* Start Bit (Master mode) */ +#define I2C_STAR1_ADDR ((uint16_t)0x0002) /* Address sent (master mode)/matched (slave mode) */ +#define I2C_STAR1_BTF ((uint16_t)0x0004) /* Byte Transfer Finished */ +#define I2C_STAR1_ADD10 ((uint16_t)0x0008) /* 10-bit header sent (Master mode) */ +#define I2C_STAR1_STOPF ((uint16_t)0x0010) /* Stop detection (Slave mode) */ +#define I2C_STAR1_RXNE ((uint16_t)0x0040) /* Data Register not Empty (receivers) */ +#define I2C_STAR1_TXE ((uint16_t)0x0080) /* Data Register Empty (transmitters) */ +#define I2C_STAR1_BERR ((uint16_t)0x0100) /* Bus Error */ +#define I2C_STAR1_ARLO ((uint16_t)0x0200) /* Arbitration Lost (master mode) */ +#define I2C_STAR1_AF ((uint16_t)0x0400) /* Acknowledge Failure */ +#define I2C_STAR1_OVR ((uint16_t)0x0800) /* Overrun/Underrun */ +#define I2C_STAR1_PECERR ((uint16_t)0x1000) /* PEC Error in reception */ +#define I2C_STAR1_TIMEOUT ((uint16_t)0x4000) /* Timeout or Tlow Error */ +#define I2C_STAR1_SMBALERT ((uint16_t)0x8000) /* SMBus Alert */ + +/******************* Bit definition for I2C_STAR2 register ********************/ +#define I2C_STAR2_MSL ((uint16_t)0x0001) /* Master/Slave */ +#define I2C_STAR2_BUSY ((uint16_t)0x0002) /* Bus Busy */ +#define I2C_STAR2_TRA ((uint16_t)0x0004) /* Transmitter/Receiver */ +#define I2C_STAR2_GENCALL ((uint16_t)0x0010) /* General Call Address (Slave mode) */ +#define I2C_STAR2_SMBDEFAULT ((uint16_t)0x0020) /* SMBus Device Default Address (Slave mode) */ +#define I2C_STAR2_SMBHOST ((uint16_t)0x0040) /* SMBus Host Header (Slave mode) */ +#define I2C_STAR2_DUALF ((uint16_t)0x0080) /* Dual Flag (Slave mode) */ +#define I2C_STAR2_PEC ((uint16_t)0xFF00) /* Packet Error Checking Register */ + +/******************* Bit definition for I2C_CKCFGR register ********************/ +#define I2C_CKCFGR_CCR ((uint16_t)0x0FFF) /* Clock Control Register in Fast/Standard mode (Master mode) */ +#define I2C_CKCFGR_DUTY ((uint16_t)0x4000) /* Fast Mode Duty Cycle */ +#define I2C_CKCFGR_FS ((uint16_t)0x8000) /* I2C Master Mode Selection */ + +/****************** Bit definition for I2C_RTR register *******************/ +#define I2C_RTR_TRISE ((uint8_t)0x3F) /* Maximum Rise Time in Fast/Standard mode (Master mode) */ + +/******************************************************************************/ +/* Power Control */ +/******************************************************************************/ + +/******************** Bit definition for PWR_CTLR register ********************/ +#define PWR_CTLR_LPDS ((uint16_t)0x0001) /* Low-Power Deepsleep */ +#define PWR_CTLR_PDDS ((uint16_t)0x0002) /* Power Down Deepsleep */ +#define PWR_CTLR_CWUF ((uint16_t)0x0004) /* Clear Wakeup Flag */ +#define PWR_CTLR_CSBF ((uint16_t)0x0008) /* Clear Standby Flag */ +#define PWR_CTLR_PVDE ((uint16_t)0x0010) /* Power Voltage Detector Enable */ + +#define PWR_CTLR_PLS ((uint16_t)0x00E0) /* PLS[2:0] bits (PVD Level Selection) */ +#define PWR_CTLR_PLS_0 ((uint16_t)0x0020) /* Bit 0 */ +#define PWR_CTLR_PLS_1 ((uint16_t)0x0040) /* Bit 1 */ +#define PWR_CTLR_PLS_2 ((uint16_t)0x0080) /* Bit 2 */ + +#define PWR_CTLR_PLS_2V2 ((uint16_t)0x0000) /* PVD level 2.2V */ +#define PWR_CTLR_PLS_2V3 ((uint16_t)0x0020) /* PVD level 2.3V */ +#define PWR_CTLR_PLS_2V4 ((uint16_t)0x0040) /* PVD level 2.4V */ +#define PWR_CTLR_PLS_2V5 ((uint16_t)0x0060) /* PVD level 2.5V */ +#define PWR_CTLR_PLS_2V6 ((uint16_t)0x0080) /* PVD level 2.6V */ +#define PWR_CTLR_PLS_2V7 ((uint16_t)0x00A0) /* PVD level 2.7V */ +#define PWR_CTLR_PLS_2V8 ((uint16_t)0x00C0) /* PVD level 2.8V */ +#define PWR_CTLR_PLS_2V9 ((uint16_t)0x00E0) /* PVD level 2.9V */ + +#define PWR_CTLR_DBP ((uint16_t)0x0100) /* Disable Backup Domain write protection */ + +/******************* Bit definition for PWR_CSR register ********************/ +#define PWR_CSR_WUF ((uint16_t)0x0001) /* Wakeup Flag */ +#define PWR_CSR_SBF ((uint16_t)0x0002) /* Standby Flag */ +#define PWR_CSR_PVDO ((uint16_t)0x0004) /* PVD Output */ +#define PWR_CSR_EWUP ((uint16_t)0x0100) /* Enable WKUP pin */ + +/******************************************************************************/ +/* Reset and Clock Control */ +/******************************************************************************/ + +/******************** Bit definition for RCC_CTLR register ********************/ +#define RCC_HSION ((uint32_t)0x00000001) /* Internal High Speed clock enable */ +#define RCC_HSIRDY ((uint32_t)0x00000002) /* Internal High Speed clock ready flag */ +#define RCC_HSITRIM ((uint32_t)0x000000F8) /* Internal High Speed clock trimming */ +#define RCC_HSICAL ((uint32_t)0x0000FF00) /* Internal High Speed clock Calibration */ +#define RCC_HSEON ((uint32_t)0x00010000) /* External High Speed clock enable */ +#define RCC_HSERDY ((uint32_t)0x00020000) /* External High Speed clock ready flag */ +#define RCC_HSEBYP ((uint32_t)0x00040000) /* External High Speed clock Bypass */ +#define RCC_CSSON ((uint32_t)0x00080000) /* Clock Security System enable */ +#define RCC_PLLON ((uint32_t)0x01000000) /* PLL enable */ +#define RCC_PLLRDY ((uint32_t)0x02000000) /* PLL clock ready flag */ + +/******************* Bit definition for RCC_CFGR0 register *******************/ +#define RCC_SW ((uint32_t)0x00000003) /* SW[1:0] bits (System clock Switch) */ +#define RCC_SW_0 ((uint32_t)0x00000001) /* Bit 0 */ +#define RCC_SW_1 ((uint32_t)0x00000002) /* Bit 1 */ + +#define RCC_SW_HSI ((uint32_t)0x00000000) /* HSI selected as system clock */ +#define RCC_SW_HSE ((uint32_t)0x00000001) /* HSE selected as system clock */ +#define RCC_SW_PLL ((uint32_t)0x00000002) /* PLL selected as system clock */ + +#define RCC_SWS ((uint32_t)0x0000000C) /* SWS[1:0] bits (System Clock Switch Status) */ +#define RCC_SWS_0 ((uint32_t)0x00000004) /* Bit 0 */ +#define RCC_SWS_1 ((uint32_t)0x00000008) /* Bit 1 */ + +#define RCC_SWS_HSI ((uint32_t)0x00000000) /* HSI oscillator used as system clock */ +#define RCC_SWS_HSE ((uint32_t)0x00000004) /* HSE oscillator used as system clock */ +#define RCC_SWS_PLL ((uint32_t)0x00000008) /* PLL used as system clock */ + +#define RCC_HPRE ((uint32_t)0x000000F0) /* HPRE[3:0] bits (AHB prescaler) */ +#define RCC_HPRE_0 ((uint32_t)0x00000010) /* Bit 0 */ +#define RCC_HPRE_1 ((uint32_t)0x00000020) /* Bit 1 */ +#define RCC_HPRE_2 ((uint32_t)0x00000040) /* Bit 2 */ +#define RCC_HPRE_3 ((uint32_t)0x00000080) /* Bit 3 */ + +#define RCC_HPRE_DIV1 ((uint32_t)0x00000000) /* SYSCLK not divided */ +#define RCC_HPRE_DIV2 ((uint32_t)0x00000080) /* SYSCLK divided by 2 */ +#define RCC_HPRE_DIV4 ((uint32_t)0x00000090) /* SYSCLK divided by 4 */ +#define RCC_HPRE_DIV8 ((uint32_t)0x000000A0) /* SYSCLK divided by 8 */ +#define RCC_HPRE_DIV16 ((uint32_t)0x000000B0) /* SYSCLK divided by 16 */ +#define RCC_HPRE_DIV64 ((uint32_t)0x000000C0) /* SYSCLK divided by 64 */ +#define RCC_HPRE_DIV128 ((uint32_t)0x000000D0) /* SYSCLK divided by 128 */ +#define RCC_HPRE_DIV256 ((uint32_t)0x000000E0) /* SYSCLK divided by 256 */ +#define RCC_HPRE_DIV512 ((uint32_t)0x000000F0) /* SYSCLK divided by 512 */ + +#define RCC_PPRE1 ((uint32_t)0x00000700) /* PRE1[2:0] bits (APB1 prescaler) */ +#define RCC_PPRE1_0 ((uint32_t)0x00000100) /* Bit 0 */ +#define RCC_PPRE1_1 ((uint32_t)0x00000200) /* Bit 1 */ +#define RCC_PPRE1_2 ((uint32_t)0x00000400) /* Bit 2 */ + +#define RCC_PPRE1_DIV1 ((uint32_t)0x00000000) /* HCLK not divided */ +#define RCC_PPRE1_DIV2 ((uint32_t)0x00000400) /* HCLK divided by 2 */ +#define RCC_PPRE1_DIV4 ((uint32_t)0x00000500) /* HCLK divided by 4 */ +#define RCC_PPRE1_DIV8 ((uint32_t)0x00000600) /* HCLK divided by 8 */ +#define RCC_PPRE1_DIV16 ((uint32_t)0x00000700) /* HCLK divided by 16 */ + +#define RCC_PPRE2 ((uint32_t)0x00003800) /* PRE2[2:0] bits (APB2 prescaler) */ +#define RCC_PPRE2_0 ((uint32_t)0x00000800) /* Bit 0 */ +#define RCC_PPRE2_1 ((uint32_t)0x00001000) /* Bit 1 */ +#define RCC_PPRE2_2 ((uint32_t)0x00002000) /* Bit 2 */ + +#define RCC_PPRE2_DIV1 ((uint32_t)0x00000000) /* HCLK not divided */ +#define RCC_PPRE2_DIV2 ((uint32_t)0x00002000) /* HCLK divided by 2 */ +#define RCC_PPRE2_DIV4 ((uint32_t)0x00002800) /* HCLK divided by 4 */ +#define RCC_PPRE2_DIV8 ((uint32_t)0x00003000) /* HCLK divided by 8 */ +#define RCC_PPRE2_DIV16 ((uint32_t)0x00003800) /* HCLK divided by 16 */ + +#define RCC_ADCPRE ((uint32_t)0x0000C000) /* ADCPRE[1:0] bits (ADC prescaler) */ +#define RCC_ADCPRE_0 ((uint32_t)0x00004000) /* Bit 0 */ +#define RCC_ADCPRE_1 ((uint32_t)0x00008000) /* Bit 1 */ + +#define RCC_ADCPRE_DIV2 ((uint32_t)0x00000000) /* PCLK2 divided by 2 */ +#define RCC_ADCPRE_DIV4 ((uint32_t)0x00004000) /* PCLK2 divided by 4 */ +#define RCC_ADCPRE_DIV6 ((uint32_t)0x00008000) /* PCLK2 divided by 6 */ +#define RCC_ADCPRE_DIV8 ((uint32_t)0x0000C000) /* PCLK2 divided by 8 */ + +#define RCC_PLLSRC ((uint32_t)0x00010000) /* PLL entry clock source */ + +#define RCC_PLLXTPRE ((uint32_t)0x00020000) /* HSE divider for PLL entry */ + +#define RCC_PLLMULL ((uint32_t)0x003C0000) /* PLLMUL[3:0] bits (PLL multiplication factor) */ +#define RCC_PLLMULL_0 ((uint32_t)0x00040000) /* Bit 0 */ +#define RCC_PLLMULL_1 ((uint32_t)0x00080000) /* Bit 1 */ +#define RCC_PLLMULL_2 ((uint32_t)0x00100000) /* Bit 2 */ +#define RCC_PLLMULL_3 ((uint32_t)0x00200000) /* Bit 3 */ + +#define RCC_PLLSRC_HSI_Div2 ((uint32_t)0x00000000) /* HSI clock divided by 2 selected as PLL entry clock source */ +#define RCC_PLLSRC_HSE ((uint32_t)0x00010000) /* HSE clock selected as PLL entry clock source */ + +#define RCC_PLLXTPRE_HSE ((uint32_t)0x00000000) /* HSE clock not divided for PLL entry */ +#define RCC_PLLXTPRE_HSE_Div2 ((uint32_t)0x00020000) /* HSE clock divided by 2 for PLL entry */ + +#define RCC_PLLMULL2 ((uint32_t)0x00000000) /* PLL input clock*2 */ +#define RCC_PLLMULL3 ((uint32_t)0x00040000) /* PLL input clock*3 */ +#define RCC_PLLMULL4 ((uint32_t)0x00080000) /* PLL input clock*4 */ +#define RCC_PLLMULL5 ((uint32_t)0x000C0000) /* PLL input clock*5 */ +#define RCC_PLLMULL6 ((uint32_t)0x00100000) /* PLL input clock*6 */ +#define RCC_PLLMULL7 ((uint32_t)0x00140000) /* PLL input clock*7 */ +#define RCC_PLLMULL8 ((uint32_t)0x00180000) /* PLL input clock*8 */ +#define RCC_PLLMULL9 ((uint32_t)0x001C0000) /* PLL input clock*9 */ +#define RCC_PLLMULL10 ((uint32_t)0x00200000) /* PLL input clock10 */ +#define RCC_PLLMULL11 ((uint32_t)0x00240000) /* PLL input clock*11 */ +#define RCC_PLLMULL12 ((uint32_t)0x00280000) /* PLL input clock*12 */ +#define RCC_PLLMULL13 ((uint32_t)0x002C0000) /* PLL input clock*13 */ +#define RCC_PLLMULL14 ((uint32_t)0x00300000) /* PLL input clock*14 */ +#define RCC_PLLMULL15 ((uint32_t)0x00340000) /* PLL input clock*15 */ +#define RCC_PLLMULL16 ((uint32_t)0x00380000) /* PLL input clock*16 */ +#define RCC_USBPRE ((uint32_t)0x00400000) /* USB Device prescaler */ + +#define RCC_CFGR0_MCO ((uint32_t)0x07000000) /* MCO[2:0] bits (Microcontroller Clock Output) */ +#define RCC_MCO_0 ((uint32_t)0x01000000) /* Bit 0 */ +#define RCC_MCO_1 ((uint32_t)0x02000000) /* Bit 1 */ +#define RCC_MCO_2 ((uint32_t)0x04000000) /* Bit 2 */ + +#define RCC_MCO_NOCLOCK ((uint32_t)0x00000000) /* No clock */ +#define RCC_CFGR0_MCO_SYSCLK ((uint32_t)0x04000000) /* System clock selected as MCO source */ +#define RCC_CFGR0_MCO_HSI ((uint32_t)0x05000000) /* HSI clock selected as MCO source */ +#define RCC_CFGR0_MCO_HSE ((uint32_t)0x06000000) /* HSE clock selected as MCO source */ +#define RCC_CFGR0_MCO_PLL ((uint32_t)0x07000000) /* PLL clock divided by 2 selected as MCO source */ + +/******************* Bit definition for RCC_INTR register ********************/ +#define RCC_LSIRDYF ((uint32_t)0x00000001) /* LSI Ready Interrupt flag */ +#define RCC_LSERDYF ((uint32_t)0x00000002) /* LSE Ready Interrupt flag */ +#define RCC_HSIRDYF ((uint32_t)0x00000004) /* HSI Ready Interrupt flag */ +#define RCC_HSERDYF ((uint32_t)0x00000008) /* HSE Ready Interrupt flag */ +#define RCC_PLLRDYF ((uint32_t)0x00000010) /* PLL Ready Interrupt flag */ +#define RCC_CSSF ((uint32_t)0x00000080) /* Clock Security System Interrupt flag */ +#define RCC_LSIRDYIE ((uint32_t)0x00000100) /* LSI Ready Interrupt Enable */ +#define RCC_LSERDYIE ((uint32_t)0x00000200) /* LSE Ready Interrupt Enable */ +#define RCC_HSIRDYIE ((uint32_t)0x00000400) /* HSI Ready Interrupt Enable */ +#define RCC_HSERDYIE ((uint32_t)0x00000800) /* HSE Ready Interrupt Enable */ +#define RCC_PLLRDYIE ((uint32_t)0x00001000) /* PLL Ready Interrupt Enable */ +#define RCC_LSIRDYC ((uint32_t)0x00010000) /* LSI Ready Interrupt Clear */ +#define RCC_LSERDYC ((uint32_t)0x00020000) /* LSE Ready Interrupt Clear */ +#define RCC_HSIRDYC ((uint32_t)0x00040000) /* HSI Ready Interrupt Clear */ +#define RCC_HSERDYC ((uint32_t)0x00080000) /* HSE Ready Interrupt Clear */ +#define RCC_PLLRDYC ((uint32_t)0x00100000) /* PLL Ready Interrupt Clear */ +#define RCC_CSSC ((uint32_t)0x00800000) /* Clock Security System Interrupt Clear */ + +/***************** Bit definition for RCC_APB2PRSTR register *****************/ +#define RCC_AFIORST ((uint32_t)0x00000001) /* Alternate Function I/O reset */ +#define RCC_IOPARST ((uint32_t)0x00000004) /* I/O port A reset */ +#define RCC_IOPBRST ((uint32_t)0x00000008) /* I/O port B reset */ +#define RCC_IOPCRST ((uint32_t)0x00000010) /* I/O port C reset */ +#define RCC_IOPDRST ((uint32_t)0x00000020) /* I/O port D reset */ +#define RCC_ADC1RST ((uint32_t)0x00000200) /* ADC 1 interface reset */ + +#define RCC_ADC2RST ((uint32_t)0x00000400) /* ADC 2 interface reset */ + +#define RCC_TIM1RST ((uint32_t)0x00000800) /* TIM1 Timer reset */ +#define RCC_SPI1RST ((uint32_t)0x00001000) /* SPI 1 reset */ +#define RCC_USART1RST ((uint32_t)0x00004000) /* USART1 reset */ + +#define RCC_IOPERST ((uint32_t)0x00000040) /* I/O port E reset */ + +/***************** Bit definition for RCC_APB1PRSTR register *****************/ +#define RCC_TIM2RST ((uint32_t)0x00000001) /* Timer 2 reset */ +#define RCC_TIM3RST ((uint32_t)0x00000002) /* Timer 3 reset */ +#define RCC_WWDGRST ((uint32_t)0x00000800) /* Window Watchdog reset */ +#define RCC_USART2RST ((uint32_t)0x00020000) /* USART 2 reset */ +#define RCC_I2C1RST ((uint32_t)0x00200000) /* I2C 1 reset */ + +#define RCC_CAN1RST ((uint32_t)0x02000000) /* CAN1 reset */ + +#define RCC_BKPRST ((uint32_t)0x08000000) /* Backup interface reset */ +#define RCC_PWRRST ((uint32_t)0x10000000) /* Power interface reset */ + +#define RCC_TIM4RST ((uint32_t)0x00000004) /* Timer 4 reset */ +#define RCC_SPI2RST ((uint32_t)0x00004000) /* SPI 2 reset */ +#define RCC_USART3RST ((uint32_t)0x00040000) /* USART 3 reset */ +#define RCC_I2C2RST ((uint32_t)0x00400000) /* I2C 2 reset */ + +#define RCC_USBRST ((uint32_t)0x00800000) /* USB Device reset */ + +/****************** Bit definition for RCC_AHBPCENR register ******************/ +#define RCC_DMA1EN ((uint16_t)0x0001) /* DMA1 clock enable */ +#define RCC_SRAMEN ((uint16_t)0x0004) /* SRAM interface clock enable */ +#define RCC_FLITFEN ((uint16_t)0x0010) /* FLITF clock enable */ +#define RCC_CRCEN ((uint16_t)0x0040) /* CRC clock enable */ +#define RCC_USBHD ((uint16_t)0x1000) + +/****************** Bit definition for RCC_APB2PCENR register *****************/ +#define RCC_AFIOEN ((uint32_t)0x00000001) /* Alternate Function I/O clock enable */ +#define RCC_IOPAEN ((uint32_t)0x00000004) /* I/O port A clock enable */ +#define RCC_IOPBEN ((uint32_t)0x00000008) /* I/O port B clock enable */ +#define RCC_IOPCEN ((uint32_t)0x00000010) /* I/O port C clock enable */ +#define RCC_IOPDEN ((uint32_t)0x00000020) /* I/O port D clock enable */ +#define RCC_ADC1EN ((uint32_t)0x00000200) /* ADC 1 interface clock enable */ + +#define RCC_ADC2EN ((uint32_t)0x00000400) /* ADC 2 interface clock enable */ + +#define RCC_TIM1EN ((uint32_t)0x00000800) /* TIM1 Timer clock enable */ +#define RCC_SPI1EN ((uint32_t)0x00001000) /* SPI 1 clock enable */ +#define RCC_USART1EN ((uint32_t)0x00004000) /* USART1 clock enable */ + +/***************** Bit definition for RCC_APB1PCENR register ******************/ +#define RCC_TIM2EN ((uint32_t)0x00000001) /* Timer 2 clock enabled*/ +#define RCC_TIM3EN ((uint32_t)0x00000002) /* Timer 3 clock enable */ +#define RCC_WWDGEN ((uint32_t)0x00000800) /* Window Watchdog clock enable */ +#define RCC_USART2EN ((uint32_t)0x00020000) /* USART 2 clock enable */ +#define RCC_I2C1EN ((uint32_t)0x00200000) /* I2C 1 clock enable */ + +#define RCC_BKPEN ((uint32_t)0x08000000) /* Backup interface clock enable */ +#define RCC_PWREN ((uint32_t)0x10000000) /* Power interface clock enable */ + +#define RCC_USBEN ((uint32_t)0x00800000) /* USB Device clock enable */ + +/******************* Bit definition for RCC_BDCTLR register *******************/ +#define RCC_LSEON ((uint32_t)0x00000001) /* External Low Speed oscillator enable */ +#define RCC_LSERDY ((uint32_t)0x00000002) /* External Low Speed oscillator Ready */ +#define RCC_LSEBYP ((uint32_t)0x00000004) /* External Low Speed oscillator Bypass */ + +#define RCC_RTCSEL ((uint32_t)0x00000300) /* RTCSEL[1:0] bits (RTC clock source selection) */ +#define RCC_RTCSEL_0 ((uint32_t)0x00000100) /* Bit 0 */ +#define RCC_RTCSEL_1 ((uint32_t)0x00000200) /* Bit 1 */ + +#define RCC_RTCSEL_NOCLOCK ((uint32_t)0x00000000) /* No clock */ +#define RCC_RTCSEL_LSE ((uint32_t)0x00000100) /* LSE oscillator clock used as RTC clock */ +#define RCC_RTCSEL_LSI ((uint32_t)0x00000200) /* LSI oscillator clock used as RTC clock */ +#define RCC_RTCSEL_HSE ((uint32_t)0x00000300) /* HSE oscillator clock divided by 128 used as RTC clock */ + +#define RCC_RTCEN ((uint32_t)0x00008000) /* RTC clock enable */ +#define RCC_BDRST ((uint32_t)0x00010000) /* Backup domain software reset */ + +/******************* Bit definition for RCC_RSTSCKR register ********************/ +#define RCC_LSION ((uint32_t)0x00000001) /* Internal Low Speed oscillator enable */ +#define RCC_LSIRDY ((uint32_t)0x00000002) /* Internal Low Speed oscillator Ready */ +#define RCC_RMVF ((uint32_t)0x01000000) /* Remove reset flag */ +#define RCC_PINRSTF ((uint32_t)0x04000000) /* PIN reset flag */ +#define RCC_PORRSTF ((uint32_t)0x08000000) /* POR/PDR reset flag */ +#define RCC_SFTRSTF ((uint32_t)0x10000000) /* Software Reset flag */ +#define RCC_IWDGRSTF ((uint32_t)0x20000000) /* Independent Watchdog reset flag */ +#define RCC_WWDGRSTF ((uint32_t)0x40000000) /* Window watchdog reset flag */ +#define RCC_LPWRRSTF ((uint32_t)0x80000000) /* Low-Power reset flag */ + +/******************************************************************************/ +/* Real-Time Clock */ +/******************************************************************************/ + +/******************* Bit definition for RTC_CTLRH register ********************/ +#define RTC_CTLRH_SECIE ((uint8_t)0x01) /* Second Interrupt Enable */ +#define RTC_CTLRH_ALRIE ((uint8_t)0x02) /* Alarm Interrupt Enable */ +#define RTC_CTLRH_OWIE ((uint8_t)0x04) /* OverfloW Interrupt Enable */ + +/******************* Bit definition for RTC_CTLRL register ********************/ +#define RTC_CTLRL_SECF ((uint8_t)0x01) /* Second Flag */ +#define RTC_CTLRL_ALRF ((uint8_t)0x02) /* Alarm Flag */ +#define RTC_CTLRL_OWF ((uint8_t)0x04) /* OverfloW Flag */ +#define RTC_CTLRL_RSF ((uint8_t)0x08) /* Registers Synchronized Flag */ +#define RTC_CTLRL_CNF ((uint8_t)0x10) /* Configuration Flag */ +#define RTC_CTLRL_RTOFF ((uint8_t)0x20) /* RTC operation OFF */ + +/******************* Bit definition for RTC_PSCH register *******************/ +#define RTC_PSCH_PRL ((uint16_t)0x000F) /* RTC Prescaler Reload Value High */ + +/******************* Bit definition for RTC_PRLL register *******************/ +#define RTC_PSCL_PRL ((uint16_t)0xFFFF) /* RTC Prescaler Reload Value Low */ + +/******************* Bit definition for RTC_DIVH register *******************/ +#define RTC_DIVH_RTC_DIV ((uint16_t)0x000F) /* RTC Clock Divider High */ + +/******************* Bit definition for RTC_DIVL register *******************/ +#define RTC_DIVL_RTC_DIV ((uint16_t)0xFFFF) /* RTC Clock Divider Low */ + +/******************* Bit definition for RTC_CNTH register *******************/ +#define RTC_CNTH_RTC_CNT ((uint16_t)0xFFFF) /* RTC Counter High */ + +/******************* Bit definition for RTC_CNTL register *******************/ +#define RTC_CNTL_RTC_CNT ((uint16_t)0xFFFF) /* RTC Counter Low */ + +/******************* Bit definition for RTC_ALRMH register *******************/ +#define RTC_ALRMH_RTC_ALRM ((uint16_t)0xFFFF) /* RTC Alarm High */ + +/******************* Bit definition for RTC_ALRML register *******************/ +#define RTC_ALRML_RTC_ALRM ((uint16_t)0xFFFF) /* RTC Alarm Low */ + +/******************************************************************************/ +/* Serial Peripheral Interface */ +/******************************************************************************/ + +/******************* Bit definition for SPI_CTLR1 register ********************/ +#define SPI_CTLR1_CPHA ((uint16_t)0x0001) /* Clock Phase */ +#define SPI_CTLR1_CPOL ((uint16_t)0x0002) /* Clock Polarity */ +#define SPI_CTLR1_MSTR ((uint16_t)0x0004) /* Master Selection */ + +#define SPI_CTLR1_BR ((uint16_t)0x0038) /* BR[2:0] bits (Baud Rate Control) */ +#define SPI_CTLR1_BR_0 ((uint16_t)0x0008) /* Bit 0 */ +#define SPI_CTLR1_BR_1 ((uint16_t)0x0010) /* Bit 1 */ +#define SPI_CTLR1_BR_2 ((uint16_t)0x0020) /* Bit 2 */ + +#define SPI_CTLR1_SPE ((uint16_t)0x0040) /* SPI Enable */ +#define SPI_CTLR1_LSBFIRST ((uint16_t)0x0080) /* Frame Format */ +#define SPI_CTLR1_SSI ((uint16_t)0x0100) /* Internal slave select */ +#define SPI_CTLR1_SSM ((uint16_t)0x0200) /* Software slave management */ +#define SPI_CTLR1_RXONLY ((uint16_t)0x0400) /* Receive only */ +#define SPI_CTLR1_DFF ((uint16_t)0x0800) /* Data Frame Format */ +#define SPI_CTLR1_CRCNEXT ((uint16_t)0x1000) /* Transmit CRC next */ +#define SPI_CTLR1_CRCEN ((uint16_t)0x2000) /* Hardware CRC calculation enable */ +#define SPI_CTLR1_BIDIOE ((uint16_t)0x4000) /* Output enable in bidirectional mode */ +#define SPI_CTLR1_BIDIMODE ((uint16_t)0x8000) /* Bidirectional data mode enable */ + +/******************* Bit definition for SPI_CTLR2 register ********************/ +#define SPI_CTLR2_RXDMAEN ((uint8_t)0x01) /* Rx Buffer DMA Enable */ +#define SPI_CTLR2_TXDMAEN ((uint8_t)0x02) /* Tx Buffer DMA Enable */ +#define SPI_CTLR2_SSOE ((uint8_t)0x04) /* SS Output Enable */ +#define SPI_CTLR2_ERRIE ((uint8_t)0x20) /* Error Interrupt Enable */ +#define SPI_CTLR2_RXNEIE ((uint8_t)0x40) /* RX buffer Not Empty Interrupt Enable */ +#define SPI_CTLR2_TXEIE ((uint8_t)0x80) /* Tx buffer Empty Interrupt Enable */ + +/******************** Bit definition for SPI_STATR register ********************/ +#define SPI_STATR_RXNE ((uint8_t)0x01) /* Receive buffer Not Empty */ +#define SPI_STATR_TXE ((uint8_t)0x02) /* Transmit buffer Empty */ +#define SPI_STATR_CHSIDE ((uint8_t)0x04) /* Channel side */ +#define SPI_STATR_UDR ((uint8_t)0x08) /* Underrun flag */ +#define SPI_STATR_CRCERR ((uint8_t)0x10) /* CRC Error flag */ +#define SPI_STATR_MODF ((uint8_t)0x20) /* Mode fault */ +#define SPI_STATR_OVR ((uint8_t)0x40) /* Overrun flag */ +#define SPI_STATR_BSY ((uint8_t)0x80) /* Busy flag */ + +/******************** Bit definition for SPI_DATAR register ********************/ +#define SPI_DATAR_DR ((uint16_t)0xFFFF) /* Data Register */ + +/******************* Bit definition for SPI_CRCR register ******************/ +#define SPI_CRCR_CRCPOLY ((uint16_t)0xFFFF) /* CRC polynomial register */ + +/****************** Bit definition for SPI_RCRCR register ******************/ +#define SPI_RCRCR_RXCRC ((uint16_t)0xFFFF) /* Rx CRC Register */ + +/****************** Bit definition for SPI_TCRCR register ******************/ +#define SPI_TCRCR_TXCRC ((uint16_t)0xFFFF) /* Tx CRC Register */ + +/****************** Bit definition for SPI_I2SCFGR register *****************/ +#define SPI_I2SCFGR_CHLEN ((uint16_t)0x0001) /* Channel length (number of bits per audio channel) */ + +#define SPI_I2SCFGR_DATLEN ((uint16_t)0x0006) /* DATLEN[1:0] bits (Data length to be transferred) */ +#define SPI_I2SCFGR_DATLEN_0 ((uint16_t)0x0002) /* Bit 0 */ +#define SPI_I2SCFGR_DATLEN_1 ((uint16_t)0x0004) /* Bit 1 */ + +#define SPI_I2SCFGR_CKPOL ((uint16_t)0x0008) /* steady state clock polarity */ + +#define SPI_I2SCFGR_I2SSTD ((uint16_t)0x0030) /* I2SSTD[1:0] bits (I2S standard selection) */ +#define SPI_I2SCFGR_I2SSTD_0 ((uint16_t)0x0010) /* Bit 0 */ +#define SPI_I2SCFGR_I2SSTD_1 ((uint16_t)0x0020) /* Bit 1 */ + +#define SPI_I2SCFGR_PCMSYNC ((uint16_t)0x0080) /* PCM frame synchronization */ + +#define SPI_I2SCFGR_I2SCFG ((uint16_t)0x0300) /* I2SCFG[1:0] bits (I2S configuration mode) */ +#define SPI_I2SCFGR_I2SCFG_0 ((uint16_t)0x0100) /* Bit 0 */ +#define SPI_I2SCFGR_I2SCFG_1 ((uint16_t)0x0200) /* Bit 1 */ + +#define SPI_I2SCFGR_I2SE ((uint16_t)0x0400) /* I2S Enable */ +#define SPI_I2SCFGR_I2SMOD ((uint16_t)0x0800) /* I2S mode selection */ + +/****************** Bit definition for SPI_I2SPR register *******************/ +#define SPI_I2SPR_I2SDIV ((uint16_t)0x00FF) /* I2S Linear prescaler */ +#define SPI_I2SPR_ODD ((uint16_t)0x0100) /* Odd factor for the prescaler */ +#define SPI_I2SPR_MCKOE ((uint16_t)0x0200) /* Master Clock Output Enable */ + +/******************************************************************************/ +/* TIM */ +/******************************************************************************/ + +/******************* Bit definition for TIM_CTLR1 register ********************/ +#define TIM_CEN ((uint16_t)0x0001) /* Counter enable */ +#define TIM_UDIS ((uint16_t)0x0002) /* Update disable */ +#define TIM_URS ((uint16_t)0x0004) /* Update request source */ +#define TIM_OPM ((uint16_t)0x0008) /* One pulse mode */ +#define TIM_DIR ((uint16_t)0x0010) /* Direction */ + +#define TIM_CMS ((uint16_t)0x0060) /* CMS[1:0] bits (Center-aligned mode selection) */ +#define TIM_CMS_0 ((uint16_t)0x0020) /* Bit 0 */ +#define TIM_CMS_1 ((uint16_t)0x0040) /* Bit 1 */ + +#define TIM_ARPE ((uint16_t)0x0080) /* Auto-reload preload enable */ + +#define TIM_CTLR1_CKD ((uint16_t)0x0300) /* CKD[1:0] bits (clock division) */ +#define TIM_CKD_0 ((uint16_t)0x0100) /* Bit 0 */ +#define TIM_CKD_1 ((uint16_t)0x0200) /* Bit 1 */ + +/******************* Bit definition for TIM_CTLR2 register ********************/ +#define TIM_CCPC ((uint16_t)0x0001) /* Capture/Compare Preloaded Control */ +#define TIM_CCUS ((uint16_t)0x0004) /* Capture/Compare Control Update Selection */ +#define TIM_CCDS ((uint16_t)0x0008) /* Capture/Compare DMA Selection */ + +#define TIM_MMS ((uint16_t)0x0070) /* MMS[2:0] bits (Master Mode Selection) */ +#define TIM_MMS_0 ((uint16_t)0x0010) /* Bit 0 */ +#define TIM_MMS_1 ((uint16_t)0x0020) /* Bit 1 */ +#define TIM_MMS_2 ((uint16_t)0x0040) /* Bit 2 */ + +#define TIM_TI1S ((uint16_t)0x0080) /* TI1 Selection */ +#define TIM_OIS1 ((uint16_t)0x0100) /* Output Idle state 1 (OC1 output) */ +#define TIM_OIS1N ((uint16_t)0x0200) /* Output Idle state 1 (OC1N output) */ +#define TIM_OIS2 ((uint16_t)0x0400) /* Output Idle state 2 (OC2 output) */ +#define TIM_OIS2N ((uint16_t)0x0800) /* Output Idle state 2 (OC2N output) */ +#define TIM_OIS3 ((uint16_t)0x1000) /* Output Idle state 3 (OC3 output) */ +#define TIM_OIS3N ((uint16_t)0x2000) /* Output Idle state 3 (OC3N output) */ +#define TIM_OIS4 ((uint16_t)0x4000) /* Output Idle state 4 (OC4 output) */ + +/******************* Bit definition for TIM_SMCFGR register *******************/ +#define TIM_SMS ((uint16_t)0x0007) /* SMS[2:0] bits (Slave mode selection) */ +#define TIM_SMS_0 ((uint16_t)0x0001) /* Bit 0 */ +#define TIM_SMS_1 ((uint16_t)0x0002) /* Bit 1 */ +#define TIM_SMS_2 ((uint16_t)0x0004) /* Bit 2 */ + +#define TIM_TS ((uint16_t)0x0070) /* TS[2:0] bits (Trigger selection) */ +#define TIM_TS_0 ((uint16_t)0x0010) /* Bit 0 */ +#define TIM_TS_1 ((uint16_t)0x0020) /* Bit 1 */ +#define TIM_TS_2 ((uint16_t)0x0040) /* Bit 2 */ + +#define TIM_MSM ((uint16_t)0x0080) /* Master/slave mode */ + +#define TIM_ETF ((uint16_t)0x0F00) /* ETF[3:0] bits (External trigger filter) */ +#define TIM_ETF_0 ((uint16_t)0x0100) /* Bit 0 */ +#define TIM_ETF_1 ((uint16_t)0x0200) /* Bit 1 */ +#define TIM_ETF_2 ((uint16_t)0x0400) /* Bit 2 */ +#define TIM_ETF_3 ((uint16_t)0x0800) /* Bit 3 */ + +#define TIM_ETPS ((uint16_t)0x3000) /* ETPS[1:0] bits (External trigger prescaler) */ +#define TIM_ETPS_0 ((uint16_t)0x1000) /* Bit 0 */ +#define TIM_ETPS_1 ((uint16_t)0x2000) /* Bit 1 */ + +#define TIM_ECE ((uint16_t)0x4000) /* External clock enable */ +#define TIM_ETP ((uint16_t)0x8000) /* External trigger polarity */ + +/******************* Bit definition for TIM_DMAINTENR register *******************/ +#define TIM_UIE ((uint16_t)0x0001) /* Update interrupt enable */ +#define TIM_CC1IE ((uint16_t)0x0002) /* Capture/Compare 1 interrupt enable */ +#define TIM_CC2IE ((uint16_t)0x0004) /* Capture/Compare 2 interrupt enable */ +#define TIM_CC3IE ((uint16_t)0x0008) /* Capture/Compare 3 interrupt enable */ +#define TIM_CC4IE ((uint16_t)0x0010) /* Capture/Compare 4 interrupt enable */ +#define TIM_COMIE ((uint16_t)0x0020) /* COM interrupt enable */ +#define TIM_TIE ((uint16_t)0x0040) /* Trigger interrupt enable */ +#define TIM_BIE ((uint16_t)0x0080) /* Break interrupt enable */ +#define TIM_UDE ((uint16_t)0x0100) /* Update DMA request enable */ +#define TIM_CC1DE ((uint16_t)0x0200) /* Capture/Compare 1 DMA request enable */ +#define TIM_CC2DE ((uint16_t)0x0400) /* Capture/Compare 2 DMA request enable */ +#define TIM_CC3DE ((uint16_t)0x0800) /* Capture/Compare 3 DMA request enable */ +#define TIM_CC4DE ((uint16_t)0x1000) /* Capture/Compare 4 DMA request enable */ +#define TIM_COMDE ((uint16_t)0x2000) /* COM DMA request enable */ +#define TIM_TDE ((uint16_t)0x4000) /* Trigger DMA request enable */ + +/******************** Bit definition for TIM_INTFR register ********************/ +#define TIM_UIF ((uint16_t)0x0001) /* Update interrupt Flag */ +#define TIM_CC1IF ((uint16_t)0x0002) /* Capture/Compare 1 interrupt Flag */ +#define TIM_CC2IF ((uint16_t)0x0004) /* Capture/Compare 2 interrupt Flag */ +#define TIM_CC3IF ((uint16_t)0x0008) /* Capture/Compare 3 interrupt Flag */ +#define TIM_CC4IF ((uint16_t)0x0010) /* Capture/Compare 4 interrupt Flag */ +#define TIM_COMIF ((uint16_t)0x0020) /* COM interrupt Flag */ +#define TIM_TIF ((uint16_t)0x0040) /* Trigger interrupt Flag */ +#define TIM_BIF ((uint16_t)0x0080) /* Break interrupt Flag */ +#define TIM_CC1OF ((uint16_t)0x0200) /* Capture/Compare 1 Overcapture Flag */ +#define TIM_CC2OF ((uint16_t)0x0400) /* Capture/Compare 2 Overcapture Flag */ +#define TIM_CC3OF ((uint16_t)0x0800) /* Capture/Compare 3 Overcapture Flag */ +#define TIM_CC4OF ((uint16_t)0x1000) /* Capture/Compare 4 Overcapture Flag */ + +/******************* Bit definition for TIM_SWEVGR register ********************/ +#define TIM_UG ((uint8_t)0x01) /* Update Generation */ +#define TIM_CC1G ((uint8_t)0x02) /* Capture/Compare 1 Generation */ +#define TIM_CC2G ((uint8_t)0x04) /* Capture/Compare 2 Generation */ +#define TIM_CC3G ((uint8_t)0x08) /* Capture/Compare 3 Generation */ +#define TIM_CC4G ((uint8_t)0x10) /* Capture/Compare 4 Generation */ +#define TIM_COMG ((uint8_t)0x20) /* Capture/Compare Control Update Generation */ +#define TIM_TG ((uint8_t)0x40) /* Trigger Generation */ +#define TIM_BG ((uint8_t)0x80) /* Break Generation */ + +/****************** Bit definition for TIM_CHCTLR1 register *******************/ +#define TIM_CC1S ((uint16_t)0x0003) /* CC1S[1:0] bits (Capture/Compare 1 Selection) */ +#define TIM_CC1S_0 ((uint16_t)0x0001) /* Bit 0 */ +#define TIM_CC1S_1 ((uint16_t)0x0002) /* Bit 1 */ + +#define TIM_OC1FE ((uint16_t)0x0004) /* Output Compare 1 Fast enable */ +#define TIM_OC1PE ((uint16_t)0x0008) /* Output Compare 1 Preload enable */ + +#define TIM_OC1M ((uint16_t)0x0070) /* OC1M[2:0] bits (Output Compare 1 Mode) */ +#define TIM_OC1M_0 ((uint16_t)0x0010) /* Bit 0 */ +#define TIM_OC1M_1 ((uint16_t)0x0020) /* Bit 1 */ +#define TIM_OC1M_2 ((uint16_t)0x0040) /* Bit 2 */ + +#define TIM_OC1CE ((uint16_t)0x0080) /* Output Compare 1Clear Enable */ + +#define TIM_CC2S ((uint16_t)0x0300) /* CC2S[1:0] bits (Capture/Compare 2 Selection) */ +#define TIM_CC2S_0 ((uint16_t)0x0100) /* Bit 0 */ +#define TIM_CC2S_1 ((uint16_t)0x0200) /* Bit 1 */ + +#define TIM_OC2FE ((uint16_t)0x0400) /* Output Compare 2 Fast enable */ +#define TIM_OC2PE ((uint16_t)0x0800) /* Output Compare 2 Preload enable */ + +#define TIM_OC2M ((uint16_t)0x7000) /* OC2M[2:0] bits (Output Compare 2 Mode) */ +#define TIM_OC2M_0 ((uint16_t)0x1000) /* Bit 0 */ +#define TIM_OC2M_1 ((uint16_t)0x2000) /* Bit 1 */ +#define TIM_OC2M_2 ((uint16_t)0x4000) /* Bit 2 */ + +#define TIM_OC2CE ((uint16_t)0x8000) /* Output Compare 2 Clear Enable */ + +#define TIM_IC1PSC ((uint16_t)0x000C) /* IC1PSC[1:0] bits (Input Capture 1 Prescaler) */ +#define TIM_IC1PSC_0 ((uint16_t)0x0004) /* Bit 0 */ +#define TIM_IC1PSC_1 ((uint16_t)0x0008) /* Bit 1 */ + +#define TIM_IC1F ((uint16_t)0x00F0) /* IC1F[3:0] bits (Input Capture 1 Filter) */ +#define TIM_IC1F_0 ((uint16_t)0x0010) /* Bit 0 */ +#define TIM_IC1F_1 ((uint16_t)0x0020) /* Bit 1 */ +#define TIM_IC1F_2 ((uint16_t)0x0040) /* Bit 2 */ +#define TIM_IC1F_3 ((uint16_t)0x0080) /* Bit 3 */ + +#define TIM_IC2PSC ((uint16_t)0x0C00) /* IC2PSC[1:0] bits (Input Capture 2 Prescaler) */ +#define TIM_IC2PSC_0 ((uint16_t)0x0400) /* Bit 0 */ +#define TIM_IC2PSC_1 ((uint16_t)0x0800) /* Bit 1 */ + +#define TIM_IC2F ((uint16_t)0xF000) /* IC2F[3:0] bits (Input Capture 2 Filter) */ +#define TIM_IC2F_0 ((uint16_t)0x1000) /* Bit 0 */ +#define TIM_IC2F_1 ((uint16_t)0x2000) /* Bit 1 */ +#define TIM_IC2F_2 ((uint16_t)0x4000) /* Bit 2 */ +#define TIM_IC2F_3 ((uint16_t)0x8000) /* Bit 3 */ + +/****************** Bit definition for TIM_CHCTLR2 register *******************/ +#define TIM_CC3S ((uint16_t)0x0003) /* CC3S[1:0] bits (Capture/Compare 3 Selection) */ +#define TIM_CC3S_0 ((uint16_t)0x0001) /* Bit 0 */ +#define TIM_CC3S_1 ((uint16_t)0x0002) /* Bit 1 */ + +#define TIM_OC3FE ((uint16_t)0x0004) /* Output Compare 3 Fast enable */ +#define TIM_OC3PE ((uint16_t)0x0008) /* Output Compare 3 Preload enable */ + +#define TIM_OC3M ((uint16_t)0x0070) /* OC3M[2:0] bits (Output Compare 3 Mode) */ +#define TIM_OC3M_0 ((uint16_t)0x0010) /* Bit 0 */ +#define TIM_OC3M_1 ((uint16_t)0x0020) /* Bit 1 */ +#define TIM_OC3M_2 ((uint16_t)0x0040) /* Bit 2 */ + +#define TIM_OC3CE ((uint16_t)0x0080) /* Output Compare 3 Clear Enable */ + +#define TIM_CC4S ((uint16_t)0x0300) /* CC4S[1:0] bits (Capture/Compare 4 Selection) */ +#define TIM_CC4S_0 ((uint16_t)0x0100) /* Bit 0 */ +#define TIM_CC4S_1 ((uint16_t)0x0200) /* Bit 1 */ + +#define TIM_OC4FE ((uint16_t)0x0400) /* Output Compare 4 Fast enable */ +#define TIM_OC4PE ((uint16_t)0x0800) /* Output Compare 4 Preload enable */ + +#define TIM_OC4M ((uint16_t)0x7000) /* OC4M[2:0] bits (Output Compare 4 Mode) */ +#define TIM_OC4M_0 ((uint16_t)0x1000) /* Bit 0 */ +#define TIM_OC4M_1 ((uint16_t)0x2000) /* Bit 1 */ +#define TIM_OC4M_2 ((uint16_t)0x4000) /* Bit 2 */ + +#define TIM_OC4CE ((uint16_t)0x8000) /* Output Compare 4 Clear Enable */ + +#define TIM_IC3PSC ((uint16_t)0x000C) /* IC3PSC[1:0] bits (Input Capture 3 Prescaler) */ +#define TIM_IC3PSC_0 ((uint16_t)0x0004) /* Bit 0 */ +#define TIM_IC3PSC_1 ((uint16_t)0x0008) /* Bit 1 */ + +#define TIM_IC3F ((uint16_t)0x00F0) /* IC3F[3:0] bits (Input Capture 3 Filter) */ +#define TIM_IC3F_0 ((uint16_t)0x0010) /* Bit 0 */ +#define TIM_IC3F_1 ((uint16_t)0x0020) /* Bit 1 */ +#define TIM_IC3F_2 ((uint16_t)0x0040) /* Bit 2 */ +#define TIM_IC3F_3 ((uint16_t)0x0080) /* Bit 3 */ + +#define TIM_IC4PSC ((uint16_t)0x0C00) /* IC4PSC[1:0] bits (Input Capture 4 Prescaler) */ +#define TIM_IC4PSC_0 ((uint16_t)0x0400) /* Bit 0 */ +#define TIM_IC4PSC_1 ((uint16_t)0x0800) /* Bit 1 */ + +#define TIM_IC4F ((uint16_t)0xF000) /* IC4F[3:0] bits (Input Capture 4 Filter) */ +#define TIM_IC4F_0 ((uint16_t)0x1000) /* Bit 0 */ +#define TIM_IC4F_1 ((uint16_t)0x2000) /* Bit 1 */ +#define TIM_IC4F_2 ((uint16_t)0x4000) /* Bit 2 */ +#define TIM_IC4F_3 ((uint16_t)0x8000) /* Bit 3 */ + +/******************* Bit definition for TIM_CCER register *******************/ +#define TIM_CC1E ((uint16_t)0x0001) /* Capture/Compare 1 output enable */ +#define TIM_CC1P ((uint16_t)0x0002) /* Capture/Compare 1 output Polarity */ +#define TIM_CC1NE ((uint16_t)0x0004) /* Capture/Compare 1 Complementary output enable */ +#define TIM_CC1NP ((uint16_t)0x0008) /* Capture/Compare 1 Complementary output Polarity */ +#define TIM_CC2E ((uint16_t)0x0010) /* Capture/Compare 2 output enable */ +#define TIM_CC2P ((uint16_t)0x0020) /* Capture/Compare 2 output Polarity */ +#define TIM_CC2NE ((uint16_t)0x0040) /* Capture/Compare 2 Complementary output enable */ +#define TIM_CC2NP ((uint16_t)0x0080) /* Capture/Compare 2 Complementary output Polarity */ +#define TIM_CC3E ((uint16_t)0x0100) /* Capture/Compare 3 output enable */ +#define TIM_CC3P ((uint16_t)0x0200) /* Capture/Compare 3 output Polarity */ +#define TIM_CC3NE ((uint16_t)0x0400) /* Capture/Compare 3 Complementary output enable */ +#define TIM_CC3NP ((uint16_t)0x0800) /* Capture/Compare 3 Complementary output Polarity */ +#define TIM_CC4E ((uint16_t)0x1000) /* Capture/Compare 4 output enable */ +#define TIM_CC4P ((uint16_t)0x2000) /* Capture/Compare 4 output Polarity */ +#define TIM_CC4NP ((uint16_t)0x8000) /* Capture/Compare 4 Complementary output Polarity */ + +/******************* Bit definition for TIM_CNT register ********************/ +#define TIM_CNT ((uint16_t)0xFFFF) /* Counter Value */ + +/******************* Bit definition for TIM_PSC register ********************/ +#define TIM_PSC ((uint16_t)0xFFFF) /* Prescaler Value */ + +/******************* Bit definition for TIM_ATRLR register ********************/ +#define TIM_ARR ((uint16_t)0xFFFF) /* actual auto-reload Value */ + +/******************* Bit definition for TIM_RPTCR register ********************/ +#define TIM_REP ((uint8_t)0xFF) /* Repetition Counter Value */ + +/******************* Bit definition for TIM_CH1CVR register *******************/ +#define TIM_CCR1 ((uint16_t)0xFFFF) /* Capture/Compare 1 Value */ + +/******************* Bit definition for TIM_CH2CVR register *******************/ +#define TIM_CCR2 ((uint16_t)0xFFFF) /* Capture/Compare 2 Value */ + +/******************* Bit definition for TIM_CH3CVR register *******************/ +#define TIM_CCR3 ((uint16_t)0xFFFF) /* Capture/Compare 3 Value */ + +/******************* Bit definition for TIM_CH4CVR register *******************/ +#define TIM_CCR4 ((uint16_t)0xFFFF) /* Capture/Compare 4 Value */ + +/******************* Bit definition for TIM_BDTR register *******************/ +#define TIM_DTG ((uint16_t)0x00FF) /* DTG[0:7] bits (Dead-Time Generator set-up) */ +#define TIM_DTG_0 ((uint16_t)0x0001) /* Bit 0 */ +#define TIM_DTG_1 ((uint16_t)0x0002) /* Bit 1 */ +#define TIM_DTG_2 ((uint16_t)0x0004) /* Bit 2 */ +#define TIM_DTG_3 ((uint16_t)0x0008) /* Bit 3 */ +#define TIM_DTG_4 ((uint16_t)0x0010) /* Bit 4 */ +#define TIM_DTG_5 ((uint16_t)0x0020) /* Bit 5 */ +#define TIM_DTG_6 ((uint16_t)0x0040) /* Bit 6 */ +#define TIM_DTG_7 ((uint16_t)0x0080) /* Bit 7 */ + +#define TIM_LOCK ((uint16_t)0x0300) /* LOCK[1:0] bits (Lock Configuration) */ +#define TIM_LOCK_0 ((uint16_t)0x0100) /* Bit 0 */ +#define TIM_LOCK_1 ((uint16_t)0x0200) /* Bit 1 */ + +#define TIM_OSSI ((uint16_t)0x0400) /* Off-State Selection for Idle mode */ +#define TIM_OSSR ((uint16_t)0x0800) /* Off-State Selection for Run mode */ +#define TIM_BKE ((uint16_t)0x1000) /* Break enable */ +#define TIM_BKP ((uint16_t)0x2000) /* Break Polarity */ +#define TIM_AOE ((uint16_t)0x4000) /* Automatic Output enable */ +#define TIM_MOE ((uint16_t)0x8000) /* Main Output enable */ + +/******************* Bit definition for TIM_DMACFGR register ********************/ +#define TIM_DBA ((uint16_t)0x001F) /* DBA[4:0] bits (DMA Base Address) */ +#define TIM_DBA_0 ((uint16_t)0x0001) /* Bit 0 */ +#define TIM_DBA_1 ((uint16_t)0x0002) /* Bit 1 */ +#define TIM_DBA_2 ((uint16_t)0x0004) /* Bit 2 */ +#define TIM_DBA_3 ((uint16_t)0x0008) /* Bit 3 */ +#define TIM_DBA_4 ((uint16_t)0x0010) /* Bit 4 */ + +#define TIM_DBL ((uint16_t)0x1F00) /* DBL[4:0] bits (DMA Burst Length) */ +#define TIM_DBL_0 ((uint16_t)0x0100) /* Bit 0 */ +#define TIM_DBL_1 ((uint16_t)0x0200) /* Bit 1 */ +#define TIM_DBL_2 ((uint16_t)0x0400) /* Bit 2 */ +#define TIM_DBL_3 ((uint16_t)0x0800) /* Bit 3 */ +#define TIM_DBL_4 ((uint16_t)0x1000) /* Bit 4 */ + +/******************* Bit definition for TIM_DMAADR register *******************/ +#define TIM_DMAR_DMAB ((uint16_t)0xFFFF) /* DMA register for burst accesses */ + +/******************************************************************************/ +/* Universal Synchronous Asynchronous Receiver Transmitter */ +/******************************************************************************/ + +/******************* Bit definition for USART_STATR register *******************/ +#define USART_STATR_PE ((uint16_t)0x0001) /* Parity Error */ +#define USART_STATR_FE ((uint16_t)0x0002) /* Framing Error */ +#define USART_STATR_NE ((uint16_t)0x0004) /* Noise Error Flag */ +#define USART_STATR_ORE ((uint16_t)0x0008) /* OverRun Error */ +#define USART_STATR_IDLE ((uint16_t)0x0010) /* IDLE line detected */ +#define USART_STATR_RXNE ((uint16_t)0x0020) /* Read Data Register Not Empty */ +#define USART_STATR_TC ((uint16_t)0x0040) /* Transmission Complete */ +#define USART_STATR_TXE ((uint16_t)0x0080) /* Transmit Data Register Empty */ +#define USART_STATR_LBD ((uint16_t)0x0100) /* LIN Break Detection Flag */ +#define USART_STATR_CTS ((uint16_t)0x0200) /* CTS Flag */ + +/******************* Bit definition for USART_DATAR register *******************/ +#define USART_DATAR_DR ((uint16_t)0x01FF) /* Data value */ + +/****************** Bit definition for USART_BRR register *******************/ +#define USART_BRR_DIV_Fraction ((uint16_t)0x000F) /* Fraction of USARTDIV */ +#define USART_BRR_DIV_Mantissa ((uint16_t)0xFFF0) /* Mantissa of USARTDIV */ + +/****************** Bit definition for USART_CTLR1 register *******************/ +#define USART_CTLR1_SBK ((uint16_t)0x0001) /* Send Break */ +#define USART_CTLR1_RWU ((uint16_t)0x0002) /* Receiver wakeup */ +#define USART_CTLR1_RE ((uint16_t)0x0004) /* Receiver Enable */ +#define USART_CTLR1_TE ((uint16_t)0x0008) /* Transmitter Enable */ +#define USART_CTLR1_IDLEIE ((uint16_t)0x0010) /* IDLE Interrupt Enable */ +#define USART_CTLR1_RXNEIE ((uint16_t)0x0020) /* RXNE Interrupt Enable */ +#define USART_CTLR1_TCIE ((uint16_t)0x0040) /* Transmission Complete Interrupt Enable */ +#define USART_CTLR1_TXEIE ((uint16_t)0x0080) /* PE Interrupt Enable */ +#define USART_CTLR1_PEIE ((uint16_t)0x0100) /* PE Interrupt Enable */ +#define USART_CTLR1_PS ((uint16_t)0x0200) /* Parity Selection */ +#define USART_CTLR1_PCE ((uint16_t)0x0400) /* Parity Control Enable */ +#define USART_CTLR1_WAKE ((uint16_t)0x0800) /* Wakeup method */ +#define USART_CTLR1_M ((uint16_t)0x1000) /* Word length */ +#define USART_CTLR1_UE ((uint16_t)0x2000) /* USART Enable */ +#define USART_CTLR1_OVER8 ((uint16_t)0x8000) /* USART Oversmapling 8-bits */ + +/****************** Bit definition for USART_CTLR2 register *******************/ +#define USART_CTLR2_ADD ((uint16_t)0x000F) /* Address of the USART node */ +#define USART_CTLR2_LBDL ((uint16_t)0x0020) /* LIN Break Detection Length */ +#define USART_CTLR2_LBDIE ((uint16_t)0x0040) /* LIN Break Detection Interrupt Enable */ +#define USART_CTLR2_LBCL ((uint16_t)0x0100) /* Last Bit Clock pulse */ +#define USART_CTLR2_CPHA ((uint16_t)0x0200) /* Clock Phase */ +#define USART_CTLR2_CPOL ((uint16_t)0x0400) /* Clock Polarity */ +#define USART_CTLR2_CLKEN ((uint16_t)0x0800) /* Clock Enable */ + +#define USART_CTLR2_STOP ((uint16_t)0x3000) /* STOP[1:0] bits (STOP bits) */ +#define USART_CTLR2_STOP_0 ((uint16_t)0x1000) /* Bit 0 */ +#define USART_CTLR2_STOP_1 ((uint16_t)0x2000) /* Bit 1 */ + +#define USART_CTLR2_LINEN ((uint16_t)0x4000) /* LIN mode enable */ + +/****************** Bit definition for USART_CTLR3 register *******************/ +#define USART_CTLR3_EIE ((uint16_t)0x0001) /* Error Interrupt Enable */ +#define USART_CTLR3_IREN ((uint16_t)0x0002) /* IrDA mode Enable */ +#define USART_CTLR3_IRLP ((uint16_t)0x0004) /* IrDA Low-Power */ +#define USART_CTLR3_HDSEL ((uint16_t)0x0008) /* Half-Duplex Selection */ +#define USART_CTLR3_NACK ((uint16_t)0x0010) /* Smartcard NACK enable */ +#define USART_CTLR3_SCEN ((uint16_t)0x0020) /* Smartcard mode enable */ +#define USART_CTLR3_DMAR ((uint16_t)0x0040) /* DMA Enable Receiver */ +#define USART_CTLR3_DMAT ((uint16_t)0x0080) /* DMA Enable Transmitter */ +#define USART_CTLR3_RTSE ((uint16_t)0x0100) /* RTS Enable */ +#define USART_CTLR3_CTSE ((uint16_t)0x0200) /* CTS Enable */ +#define USART_CTLR3_CTSIE ((uint16_t)0x0400) /* CTS Interrupt Enable */ +#define USART_CTLR3_ONEBIT ((uint16_t)0x0800) /* One Bit method */ + +/****************** Bit definition for USART_GPR register ******************/ +#define USART_GPR_PSC ((uint16_t)0x00FF) /* PSC[7:0] bits (Prescaler value) */ +#define USART_GPR_PSC_0 ((uint16_t)0x0001) /* Bit 0 */ +#define USART_GPR_PSC_1 ((uint16_t)0x0002) /* Bit 1 */ +#define USART_GPR_PSC_2 ((uint16_t)0x0004) /* Bit 2 */ +#define USART_GPR_PSC_3 ((uint16_t)0x0008) /* Bit 3 */ +#define USART_GPR_PSC_4 ((uint16_t)0x0010) /* Bit 4 */ +#define USART_GPR_PSC_5 ((uint16_t)0x0020) /* Bit 5 */ +#define USART_GPR_PSC_6 ((uint16_t)0x0040) /* Bit 6 */ +#define USART_GPR_PSC_7 ((uint16_t)0x0080) /* Bit 7 */ + +#define USART_GPR_GT ((uint16_t)0xFF00) /* Guard time value */ + +/******************************************************************************/ +/* Window WATCHDOG */ +/******************************************************************************/ + +/******************* Bit definition for WWDG_CTLR register ********************/ +#define WWDG_CTLR_T ((uint8_t)0x7F) /* T[6:0] bits (7-Bit counter (MSB to LSB)) */ +#define WWDG_CTLR_T0 ((uint8_t)0x01) /* Bit 0 */ +#define WWDG_CTLR_T1 ((uint8_t)0x02) /* Bit 1 */ +#define WWDG_CTLR_T2 ((uint8_t)0x04) /* Bit 2 */ +#define WWDG_CTLR_T3 ((uint8_t)0x08) /* Bit 3 */ +#define WWDG_CTLR_T4 ((uint8_t)0x10) /* Bit 4 */ +#define WWDG_CTLR_T5 ((uint8_t)0x20) /* Bit 5 */ +#define WWDG_CTLR_T6 ((uint8_t)0x40) /* Bit 6 */ + +#define WWDG_CTLR_WDGA ((uint8_t)0x80) /* Activation bit */ + +/******************* Bit definition for WWDG_CFGR register *******************/ +#define WWDG_CFGR_W ((uint16_t)0x007F) /* W[6:0] bits (7-bit window value) */ +#define WWDG_CFGR_W0 ((uint16_t)0x0001) /* Bit 0 */ +#define WWDG_CFGR_W1 ((uint16_t)0x0002) /* Bit 1 */ +#define WWDG_CFGR_W2 ((uint16_t)0x0004) /* Bit 2 */ +#define WWDG_CFGR_W3 ((uint16_t)0x0008) /* Bit 3 */ +#define WWDG_CFGR_W4 ((uint16_t)0x0010) /* Bit 4 */ +#define WWDG_CFGR_W5 ((uint16_t)0x0020) /* Bit 5 */ +#define WWDG_CFGR_W6 ((uint16_t)0x0040) /* Bit 6 */ + +#define WWDG_CFGR_WDGTB ((uint16_t)0x0180) /* WDGTB[1:0] bits (Timer Base) */ +#define WWDG_CFGR_WDGTB0 ((uint16_t)0x0080) /* Bit 0 */ +#define WWDG_CFGR_WDGTB1 ((uint16_t)0x0100) /* Bit 1 */ + +#define WWDG_CFGR_EWI ((uint16_t)0x0200) /* Early Wakeup Interrupt */ + +/******************* Bit definition for WWDG_STATR register ********************/ +#define WWDG_STATR_EWIF ((uint8_t)0x01) /* Early Wakeup Interrupt Flag */ + +/******************************************************************************/ +/* ENHANCED FUNNCTION */ +/******************************************************************************/ + +/**************************** Enhanced register *****************************/ +#define EXTEN_USBD_LS ((uint32_t)0x00000001) /* Bit 0 */ +#define EXTEN_USBD_PU_EN ((uint32_t)0x00000002) /* Bit 1 */ +#define EXTEN_USBHD_IO_EN ((uint32_t)0x00000004) /* Bit 2 */ +#define EXTEN_USB_5V_SEL ((uint32_t)0x00000008) /* Bit 3 */ +#define EXTEN_PLL_HSI_PRE ((uint32_t)0x00000010) /* Bit 4 */ +#define EXTEN_LOCKUP_EN ((uint32_t)0x00000040) /* Bit 5 */ +#define EXTEN_LOCKUP_RSTF ((uint32_t)0x00000080) /* Bit 7 */ + +#define EXTEN_ULLDO_TRIM ((uint32_t)0x00000300) /* ULLDO_TRIM[1:0] bits */ +#define EXTEN_ULLDO_TRIM0 ((uint32_t)0x00000100) /* Bit 0 */ +#define EXTEN_ULLDO_TRIM1 ((uint32_t)0x00000200) /* Bit 1 */ + +#define EXTEN_IDO_TRIM ((uint32_t)0x00000400) /* Bit 10 */ +#define EXTEN_WRITE_EN ((uint32_t)0x00004000) /* Bit 14 */ +#define EXTEN_SHORT_WAKE ((uint32_t)0x00008000) /* Bit 15 */ + +#define EXTEN_FLASH_CLK_TRIM ((uint32_t)0x00070000) /* FLASH_CLK_TRIM[2:0] bits */ +#define EXTEN_FLASH_CLK_TRIM0 ((uint32_t)0x00010000) /* Bit 0 */ +#define EXTEN_FLASH_CLK_TRIM1 ((uint32_t)0x00020000) /* Bit 1 */ +#define EXTEN_FLASH_CLK_TRIM2 ((uint32_t)0x00040000) /* Bit 2 */ + +#include "ch32v10x_conf.h" + +#ifdef __cplusplus +} +#endif + +#endif /* __CH32V10x_H */ diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_adc.h b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_adc.h new file mode 100644 index 0000000000..06f5e5307b --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_adc.h @@ -0,0 +1,188 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_adc.h + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file contains all the functions prototypes for the + * ADC firmware library. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *******************************************************************************/ +#ifndef __CH32V10x_ADC_H +#define __CH32V10x_ADC_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "ch32v10x.h" + +/* ADC Init structure definition */ +typedef struct +{ + uint32_t ADC_Mode; /* Configures the ADC to operate in independent or + dual mode. + This parameter can be a value of @ref ADC_mode */ + + FunctionalState ADC_ScanConvMode; /* Specifies whether the conversion is performed in + Scan (multichannels) or Single (one channel) mode. + This parameter can be set to ENABLE or DISABLE */ + + FunctionalState ADC_ContinuousConvMode; /* Specifies whether the conversion is performed in + Continuous or Single mode. + This parameter can be set to ENABLE or DISABLE. */ + + uint32_t ADC_ExternalTrigConv; /* Defines the external trigger used to start the analog + to digital conversion of regular channels. This parameter + can be a value of @ref ADC_external_trigger_sources_for_regular_channels_conversion */ + + uint32_t ADC_DataAlign; /* Specifies whether the ADC data alignment is left or right. + This parameter can be a value of @ref ADC_data_align */ + + uint8_t ADC_NbrOfChannel; /* Specifies the number of ADC channels that will be converted + using the sequencer for regular channel group. + This parameter must range from 1 to 16. */ +} ADC_InitTypeDef; + +/* ADC_mode */ +#define ADC_Mode_Independent ((uint32_t)0x00000000) +#define ADC_Mode_RegInjecSimult ((uint32_t)0x00010000) +#define ADC_Mode_RegSimult_AlterTrig ((uint32_t)0x00020000) +#define ADC_Mode_InjecSimult_FastInterl ((uint32_t)0x00030000) +#define ADC_Mode_InjecSimult_SlowInterl ((uint32_t)0x00040000) +#define ADC_Mode_InjecSimult ((uint32_t)0x00050000) +#define ADC_Mode_RegSimult ((uint32_t)0x00060000) +#define ADC_Mode_FastInterl ((uint32_t)0x00070000) +#define ADC_Mode_SlowInterl ((uint32_t)0x00080000) +#define ADC_Mode_AlterTrig ((uint32_t)0x00090000) + +/* ADC_external_trigger_sources_for_regular_channels_conversion */ +#define ADC_ExternalTrigConv_T1_CC1 ((uint32_t)0x00000000) +#define ADC_ExternalTrigConv_T1_CC2 ((uint32_t)0x00020000) +#define ADC_ExternalTrigConv_T2_CC2 ((uint32_t)0x00060000) +#define ADC_ExternalTrigConv_T3_TRGO ((uint32_t)0x00080000) +#define ADC_ExternalTrigConv_T4_CC4 ((uint32_t)0x000A0000) +#define ADC_ExternalTrigConv_Ext_IT11_TIM8_TRGO ((uint32_t)0x000C0000) + +#define ADC_ExternalTrigConv_T1_CC3 ((uint32_t)0x00040000) +#define ADC_ExternalTrigConv_None ((uint32_t)0x000E0000) + +/* ADC_data_align */ +#define ADC_DataAlign_Right ((uint32_t)0x00000000) +#define ADC_DataAlign_Left ((uint32_t)0x00000800) + +/* ADC_channels */ +#define ADC_Channel_0 ((uint8_t)0x00) +#define ADC_Channel_1 ((uint8_t)0x01) +#define ADC_Channel_2 ((uint8_t)0x02) +#define ADC_Channel_3 ((uint8_t)0x03) +#define ADC_Channel_4 ((uint8_t)0x04) +#define ADC_Channel_5 ((uint8_t)0x05) +#define ADC_Channel_6 ((uint8_t)0x06) +#define ADC_Channel_7 ((uint8_t)0x07) +#define ADC_Channel_8 ((uint8_t)0x08) +#define ADC_Channel_9 ((uint8_t)0x09) +#define ADC_Channel_10 ((uint8_t)0x0A) +#define ADC_Channel_11 ((uint8_t)0x0B) +#define ADC_Channel_12 ((uint8_t)0x0C) +#define ADC_Channel_13 ((uint8_t)0x0D) +#define ADC_Channel_14 ((uint8_t)0x0E) +#define ADC_Channel_15 ((uint8_t)0x0F) +#define ADC_Channel_16 ((uint8_t)0x10) +#define ADC_Channel_17 ((uint8_t)0x11) + +#define ADC_Channel_TempSensor ((uint8_t)ADC_Channel_16) +#define ADC_Channel_Vrefint ((uint8_t)ADC_Channel_17) + +/* ADC_sampling_time */ +#define ADC_SampleTime_1Cycles5 ((uint8_t)0x00) +#define ADC_SampleTime_7Cycles5 ((uint8_t)0x01) +#define ADC_SampleTime_13Cycles5 ((uint8_t)0x02) +#define ADC_SampleTime_28Cycles5 ((uint8_t)0x03) +#define ADC_SampleTime_41Cycles5 ((uint8_t)0x04) +#define ADC_SampleTime_55Cycles5 ((uint8_t)0x05) +#define ADC_SampleTime_71Cycles5 ((uint8_t)0x06) +#define ADC_SampleTime_239Cycles5 ((uint8_t)0x07) + +/* ADC_external_trigger_sources_for_injected_channels_conversion */ +#define ADC_ExternalTrigInjecConv_T2_TRGO ((uint32_t)0x00002000) +#define ADC_ExternalTrigInjecConv_T2_CC1 ((uint32_t)0x00003000) +#define ADC_ExternalTrigInjecConv_T3_CC4 ((uint32_t)0x00004000) +#define ADC_ExternalTrigInjecConv_T4_TRGO ((uint32_t)0x00005000) +#define ADC_ExternalTrigInjecConv_Ext_IT15_TIM8_CC4 ((uint32_t)0x00006000) + +#define ADC_ExternalTrigInjecConv_T1_TRGO ((uint32_t)0x00000000) +#define ADC_ExternalTrigInjecConv_T1_CC4 ((uint32_t)0x00001000) +#define ADC_ExternalTrigInjecConv_None ((uint32_t)0x00007000) + +/* ADC_injected_channel_selection */ +#define ADC_InjectedChannel_1 ((uint8_t)0x14) +#define ADC_InjectedChannel_2 ((uint8_t)0x18) +#define ADC_InjectedChannel_3 ((uint8_t)0x1C) +#define ADC_InjectedChannel_4 ((uint8_t)0x20) + +/* ADC_analog_watchdog_selection */ +#define ADC_AnalogWatchdog_SingleRegEnable ((uint32_t)0x00800200) +#define ADC_AnalogWatchdog_SingleInjecEnable ((uint32_t)0x00400200) +#define ADC_AnalogWatchdog_SingleRegOrInjecEnable ((uint32_t)0x00C00200) +#define ADC_AnalogWatchdog_AllRegEnable ((uint32_t)0x00800000) +#define ADC_AnalogWatchdog_AllInjecEnable ((uint32_t)0x00400000) +#define ADC_AnalogWatchdog_AllRegAllInjecEnable ((uint32_t)0x00C00000) +#define ADC_AnalogWatchdog_None ((uint32_t)0x00000000) + +/* ADC_interrupts_definition */ +#define ADC_IT_EOC ((uint16_t)0x0220) +#define ADC_IT_AWD ((uint16_t)0x0140) +#define ADC_IT_JEOC ((uint16_t)0x0480) + +/* ADC_flags_definition */ +#define ADC_FLAG_AWD ((uint8_t)0x01) +#define ADC_FLAG_EOC ((uint8_t)0x02) +#define ADC_FLAG_JEOC ((uint8_t)0x04) +#define ADC_FLAG_JSTRT ((uint8_t)0x08) +#define ADC_FLAG_STRT ((uint8_t)0x10) + +void ADC_DeInit(ADC_TypeDef *ADCx); +void ADC_Init(ADC_TypeDef *ADCx, ADC_InitTypeDef *ADC_InitStruct); +void ADC_StructInit(ADC_InitTypeDef *ADC_InitStruct); +void ADC_Cmd(ADC_TypeDef *ADCx, FunctionalState NewState); +void ADC_DMACmd(ADC_TypeDef *ADCx, FunctionalState NewState); +void ADC_ITConfig(ADC_TypeDef *ADCx, uint16_t ADC_IT, FunctionalState NewState); +void ADC_ResetCalibration(ADC_TypeDef *ADCx); +FlagStatus ADC_GetResetCalibrationStatus(ADC_TypeDef *ADCx); +void ADC_StartCalibration(ADC_TypeDef *ADCx); +FlagStatus ADC_GetCalibrationStatus(ADC_TypeDef *ADCx); +void ADC_SoftwareStartConvCmd(ADC_TypeDef *ADCx, FunctionalState NewState); +FlagStatus ADC_GetSoftwareStartConvStatus(ADC_TypeDef *ADCx); +void ADC_DiscModeChannelCountConfig(ADC_TypeDef *ADCx, uint8_t Number); +void ADC_DiscModeCmd(ADC_TypeDef *ADCx, FunctionalState NewState); +void ADC_RegularChannelConfig(ADC_TypeDef *ADCx, uint8_t ADC_Channel, uint8_t Rank, uint8_t ADC_SampleTime); +void ADC_ExternalTrigConvCmd(ADC_TypeDef *ADCx, FunctionalState NewState); +uint16_t ADC_GetConversionValue(ADC_TypeDef *ADCx); +uint32_t ADC_GetDualModeConversionValue(void); +void ADC_AutoInjectedConvCmd(ADC_TypeDef *ADCx, FunctionalState NewState); +void ADC_InjectedDiscModeCmd(ADC_TypeDef *ADCx, FunctionalState NewState); +void ADC_ExternalTrigInjectedConvConfig(ADC_TypeDef *ADCx, uint32_t ADC_ExternalTrigInjecConv); +void ADC_ExternalTrigInjectedConvCmd(ADC_TypeDef *ADCx, FunctionalState NewState); +void ADC_SoftwareStartInjectedConvCmd(ADC_TypeDef *ADCx, FunctionalState NewState); +FlagStatus ADC_GetSoftwareStartInjectedConvCmdStatus(ADC_TypeDef *ADCx); +void ADC_InjectedChannelConfig(ADC_TypeDef *ADCx, uint8_t ADC_Channel, uint8_t Rank, uint8_t ADC_SampleTime); +void ADC_InjectedSequencerLengthConfig(ADC_TypeDef *ADCx, uint8_t Length); +void ADC_SetInjectedOffset(ADC_TypeDef *ADCx, uint8_t ADC_InjectedChannel, uint16_t Offset); +uint16_t ADC_GetInjectedConversionValue(ADC_TypeDef *ADCx, uint8_t ADC_InjectedChannel); +void ADC_AnalogWatchdogCmd(ADC_TypeDef *ADCx, uint32_t ADC_AnalogWatchdog); +void ADC_AnalogWatchdogThresholdsConfig(ADC_TypeDef *ADCx, uint16_t HighThreshold, uint16_t LowThreshold); +void ADC_AnalogWatchdogSingleChannelConfig(ADC_TypeDef *ADCx, uint8_t ADC_Channel); +void ADC_TempSensorVrefintCmd(FunctionalState NewState); +FlagStatus ADC_GetFlagStatus(ADC_TypeDef *ADCx, uint8_t ADC_FLAG); +void ADC_ClearFlag(ADC_TypeDef *ADCx, uint8_t ADC_FLAG); +ITStatus ADC_GetITStatus(ADC_TypeDef *ADCx, uint16_t ADC_IT); +void ADC_ClearITPendingBit(ADC_TypeDef *ADCx, uint16_t ADC_IT); +s32 TempSensor_Volt_To_Temper(s32 Value); +int16_t Get_CalibrationValue(ADC_TypeDef *ADCx); + +#ifdef __cplusplus +} +#endif + +#endif /*__CH32V10x_ADC_H */ diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_bkp.h b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_bkp.h new file mode 100644 index 0000000000..5bd076fbf0 --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_bkp.h @@ -0,0 +1,91 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_bkp.h + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file contains all the functions prototypes for the + * BKP firmware library. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *******************************************************************************/ +#ifndef __CH32V10x_BKP_H +#define __CH32V10x_BKP_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "ch32v10x.h" + +/* Tamper_Pin_active_level */ +#define BKP_TamperPinLevel_High ((uint16_t)0x0000) +#define BKP_TamperPinLevel_Low ((uint16_t)0x0001) + +/* RTC_output_source_to_output_on_the_Tamper_pin */ +#define BKP_RTCOutputSource_None ((uint16_t)0x0000) +#define BKP_RTCOutputSource_CalibClock ((uint16_t)0x0080) +#define BKP_RTCOutputSource_Alarm ((uint16_t)0x0100) +#define BKP_RTCOutputSource_Second ((uint16_t)0x0300) + +/* Data_Backup_Register */ +#define BKP_DR1 ((uint16_t)0x0004) +#define BKP_DR2 ((uint16_t)0x0008) +#define BKP_DR3 ((uint16_t)0x000C) +#define BKP_DR4 ((uint16_t)0x0010) +#define BKP_DR5 ((uint16_t)0x0014) +#define BKP_DR6 ((uint16_t)0x0018) +#define BKP_DR7 ((uint16_t)0x001C) +#define BKP_DR8 ((uint16_t)0x0020) +#define BKP_DR9 ((uint16_t)0x0024) +#define BKP_DR10 ((uint16_t)0x0028) +#define BKP_DR11 ((uint16_t)0x0040) +#define BKP_DR12 ((uint16_t)0x0044) +#define BKP_DR13 ((uint16_t)0x0048) +#define BKP_DR14 ((uint16_t)0x004C) +#define BKP_DR15 ((uint16_t)0x0050) +#define BKP_DR16 ((uint16_t)0x0054) +#define BKP_DR17 ((uint16_t)0x0058) +#define BKP_DR18 ((uint16_t)0x005C) +#define BKP_DR19 ((uint16_t)0x0060) +#define BKP_DR20 ((uint16_t)0x0064) +#define BKP_DR21 ((uint16_t)0x0068) +#define BKP_DR22 ((uint16_t)0x006C) +#define BKP_DR23 ((uint16_t)0x0070) +#define BKP_DR24 ((uint16_t)0x0074) +#define BKP_DR25 ((uint16_t)0x0078) +#define BKP_DR26 ((uint16_t)0x007C) +#define BKP_DR27 ((uint16_t)0x0080) +#define BKP_DR28 ((uint16_t)0x0084) +#define BKP_DR29 ((uint16_t)0x0088) +#define BKP_DR30 ((uint16_t)0x008C) +#define BKP_DR31 ((uint16_t)0x0090) +#define BKP_DR32 ((uint16_t)0x0094) +#define BKP_DR33 ((uint16_t)0x0098) +#define BKP_DR34 ((uint16_t)0x009C) +#define BKP_DR35 ((uint16_t)0x00A0) +#define BKP_DR36 ((uint16_t)0x00A4) +#define BKP_DR37 ((uint16_t)0x00A8) +#define BKP_DR38 ((uint16_t)0x00AC) +#define BKP_DR39 ((uint16_t)0x00B0) +#define BKP_DR40 ((uint16_t)0x00B4) +#define BKP_DR41 ((uint16_t)0x00B8) +#define BKP_DR42 ((uint16_t)0x00BC) + +void BKP_DeInit(void); +void BKP_TamperPinLevelConfig(uint16_t BKP_TamperPinLevel); +void BKP_TamperPinCmd(FunctionalState NewState); +void BKP_ITConfig(FunctionalState NewState); +void BKP_RTCOutputConfig(uint16_t BKP_RTCOutputSource); +void BKP_SetRTCCalibrationValue(uint8_t CalibrationValue); +void BKP_WriteBackupRegister(uint16_t BKP_DR, uint16_t Data); +uint16_t BKP_ReadBackupRegister(uint16_t BKP_DR); +FlagStatus BKP_GetFlagStatus(void); +void BKP_ClearFlag(void); +ITStatus BKP_GetITStatus(void); +void BKP_ClearITPendingBit(void); + +#ifdef __cplusplus +} +#endif + +#endif /* __CH32V10x_BKP_H */ diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_crc.h b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_crc.h new file mode 100644 index 0000000000..f117b23e99 --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_crc.h @@ -0,0 +1,31 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_crc.h + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file contains all the functions prototypes for the + * CRC firmware library. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *******************************************************************************/ +#ifndef __CH32V10x_CRC_H +#define __CH32V10x_CRC_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "ch32v10x.h" + +void CRC_ResetDR(void); +uint32_t CRC_CalcCRC(uint32_t Data); +uint32_t CRC_CalcBlockCRC(uint32_t pBuffer[], uint32_t BufferLength); +uint32_t CRC_GetCRC(void); +void CRC_SetIDRegister(uint8_t IDValue); +uint8_t CRC_GetIDRegister(void); + +#ifdef __cplusplus +} +#endif + +#endif /* __CH32V10x_CRC_H */ diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_dbgmcu.h b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_dbgmcu.h new file mode 100644 index 0000000000..56f105f262 --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_dbgmcu.h @@ -0,0 +1,41 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_dbgmcu.h + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file contains all the functions prototypes for the + * DBGMCU firmware library. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *******************************************************************************/ +#ifndef __CH32V10x_DBGMCU_H +#define __CH32V10x_DBGMCU_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "ch32v10x.h" + +/* CFGR0 Register */ +#define DBGMCU_IWDG_STOP ((uint32_t)0x00000001) +#define DBGMCU_WWDG_STOP ((uint32_t)0x00000002) +#define DBGMCU_I2C1_SMBUS_TIMEOUT ((uint32_t)0x00000004) +#define DBGMCU_I2C2_SMBUS_TIMEOUT ((uint32_t)0x00000008) +#define DBGMCU_TIM1_STOP ((uint32_t)0x00000010) +#define DBGMCU_TIM2_STOP ((uint32_t)0x00000020) +#define DBGMCU_TIM3_STOP ((uint32_t)0x00000040) +#define DBGMCU_TIM4_STOP ((uint32_t)0x00000080) + +/* CFGR1 Register */ +#define DBGMCU_SLEEP ((uint32_t)0x00000001) +#define DBGMCU_STOP ((uint32_t)0x00000002) +#define DBGMCU_STANDBY ((uint32_t)0x00000004) + +void DBGMCU_Config(uint32_t DBGMCU_Periph, FunctionalState NewState); + +#ifdef __cplusplus +} +#endif + +#endif /* __CH32V10x_DBGMCU_H */ diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_dma.h b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_dma.h new file mode 100644 index 0000000000..ad6b5eee0a --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_dma.h @@ -0,0 +1,216 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_dma.h + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file contains all the functions prototypes for the + * DMA firmware library. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *******************************************************************************/ +#ifndef __CH32V10x_DMA_H +#define __CH32V10x_DMA_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "ch32v10x.h" + +/* DMA Init structure definition */ +typedef struct +{ + uint32_t DMA_PeripheralBaseAddr; /* Specifies the peripheral base address for DMAy Channelx. */ + + uint32_t DMA_MemoryBaseAddr; /* Specifies the memory base address for DMAy Channelx. */ + + uint32_t DMA_DIR; /* Specifies if the peripheral is the source or destination. + This parameter can be a value of @ref DMA_data_transfer_direction */ + + uint32_t DMA_BufferSize; /* Specifies the buffer size, in data unit, of the specified Channel. + The data unit is equal to the configuration set in DMA_PeripheralDataSize + or DMA_MemoryDataSize members depending in the transfer direction. */ + + uint32_t DMA_PeripheralInc; /* Specifies whether the Peripheral address register is incremented or not. + This parameter can be a value of @ref DMA_peripheral_incremented_mode */ + + uint32_t DMA_MemoryInc; /* Specifies whether the memory address register is incremented or not. + This parameter can be a value of @ref DMA_memory_incremented_mode */ + + uint32_t DMA_PeripheralDataSize; /* Specifies the Peripheral data width. + This parameter can be a value of @ref DMA_peripheral_data_size */ + + uint32_t DMA_MemoryDataSize; /* Specifies the Memory data width. + This parameter can be a value of @ref DMA_memory_data_size */ + + uint32_t DMA_Mode; /* Specifies the operation mode of the DMAy Channelx. + This parameter can be a value of @ref DMA_circular_normal_mode. + @note: The circular buffer mode cannot be used if the memory-to-memory + data transfer is configured on the selected Channel */ + + uint32_t DMA_Priority; /* Specifies the software priority for the DMAy Channelx. + This parameter can be a value of @ref DMA_priority_level */ + + uint32_t DMA_M2M; /* Specifies if the DMAy Channelx will be used in memory-to-memory transfer. + This parameter can be a value of @ref DMA_memory_to_memory */ +} DMA_InitTypeDef; + +/* DMA_data_transfer_direction */ +#define DMA_DIR_PeripheralDST ((uint32_t)0x00000010) +#define DMA_DIR_PeripheralSRC ((uint32_t)0x00000000) + +/* DMA_peripheral_incremented_mode */ +#define DMA_PeripheralInc_Enable ((uint32_t)0x00000040) +#define DMA_PeripheralInc_Disable ((uint32_t)0x00000000) + +/* DMA_memory_incremented_mode */ +#define DMA_MemoryInc_Enable ((uint32_t)0x00000080) +#define DMA_MemoryInc_Disable ((uint32_t)0x00000000) + +/* DMA_peripheral_data_size */ +#define DMA_PeripheralDataSize_Byte ((uint32_t)0x00000000) +#define DMA_PeripheralDataSize_HalfWord ((uint32_t)0x00000100) +#define DMA_PeripheralDataSize_Word ((uint32_t)0x00000200) + +/* DMA_memory_data_size */ +#define DMA_MemoryDataSize_Byte ((uint32_t)0x00000000) +#define DMA_MemoryDataSize_HalfWord ((uint32_t)0x00000400) +#define DMA_MemoryDataSize_Word ((uint32_t)0x00000800) + +/* DMA_circular_normal_mode */ +#define DMA_Mode_Circular ((uint32_t)0x00000020) +#define DMA_Mode_Normal ((uint32_t)0x00000000) + +/* DMA_priority_level */ +#define DMA_Priority_VeryHigh ((uint32_t)0x00003000) +#define DMA_Priority_High ((uint32_t)0x00002000) +#define DMA_Priority_Medium ((uint32_t)0x00001000) +#define DMA_Priority_Low ((uint32_t)0x00000000) + +/* DMA_memory_to_memory */ +#define DMA_M2M_Enable ((uint32_t)0x00004000) +#define DMA_M2M_Disable ((uint32_t)0x00000000) + +/* DMA_interrupts_definition */ +#define DMA_IT_TC ((uint32_t)0x00000002) +#define DMA_IT_HT ((uint32_t)0x00000004) +#define DMA_IT_TE ((uint32_t)0x00000008) + +#define DMA1_IT_GL1 ((uint32_t)0x00000001) +#define DMA1_IT_TC1 ((uint32_t)0x00000002) +#define DMA1_IT_HT1 ((uint32_t)0x00000004) +#define DMA1_IT_TE1 ((uint32_t)0x00000008) +#define DMA1_IT_GL2 ((uint32_t)0x00000010) +#define DMA1_IT_TC2 ((uint32_t)0x00000020) +#define DMA1_IT_HT2 ((uint32_t)0x00000040) +#define DMA1_IT_TE2 ((uint32_t)0x00000080) +#define DMA1_IT_GL3 ((uint32_t)0x00000100) +#define DMA1_IT_TC3 ((uint32_t)0x00000200) +#define DMA1_IT_HT3 ((uint32_t)0x00000400) +#define DMA1_IT_TE3 ((uint32_t)0x00000800) +#define DMA1_IT_GL4 ((uint32_t)0x00001000) +#define DMA1_IT_TC4 ((uint32_t)0x00002000) +#define DMA1_IT_HT4 ((uint32_t)0x00004000) +#define DMA1_IT_TE4 ((uint32_t)0x00008000) +#define DMA1_IT_GL5 ((uint32_t)0x00010000) +#define DMA1_IT_TC5 ((uint32_t)0x00020000) +#define DMA1_IT_HT5 ((uint32_t)0x00040000) +#define DMA1_IT_TE5 ((uint32_t)0x00080000) +#define DMA1_IT_GL6 ((uint32_t)0x00100000) +#define DMA1_IT_TC6 ((uint32_t)0x00200000) +#define DMA1_IT_HT6 ((uint32_t)0x00400000) +#define DMA1_IT_TE6 ((uint32_t)0x00800000) +#define DMA1_IT_GL7 ((uint32_t)0x01000000) +#define DMA1_IT_TC7 ((uint32_t)0x02000000) +#define DMA1_IT_HT7 ((uint32_t)0x04000000) +#define DMA1_IT_TE7 ((uint32_t)0x08000000) + +#define DMA2_IT_GL1 ((uint32_t)0x10000001) +#define DMA2_IT_TC1 ((uint32_t)0x10000002) +#define DMA2_IT_HT1 ((uint32_t)0x10000004) +#define DMA2_IT_TE1 ((uint32_t)0x10000008) +#define DMA2_IT_GL2 ((uint32_t)0x10000010) +#define DMA2_IT_TC2 ((uint32_t)0x10000020) +#define DMA2_IT_HT2 ((uint32_t)0x10000040) +#define DMA2_IT_TE2 ((uint32_t)0x10000080) +#define DMA2_IT_GL3 ((uint32_t)0x10000100) +#define DMA2_IT_TC3 ((uint32_t)0x10000200) +#define DMA2_IT_HT3 ((uint32_t)0x10000400) +#define DMA2_IT_TE3 ((uint32_t)0x10000800) +#define DMA2_IT_GL4 ((uint32_t)0x10001000) +#define DMA2_IT_TC4 ((uint32_t)0x10002000) +#define DMA2_IT_HT4 ((uint32_t)0x10004000) +#define DMA2_IT_TE4 ((uint32_t)0x10008000) +#define DMA2_IT_GL5 ((uint32_t)0x10010000) +#define DMA2_IT_TC5 ((uint32_t)0x10020000) +#define DMA2_IT_HT5 ((uint32_t)0x10040000) +#define DMA2_IT_TE5 ((uint32_t)0x10080000) + +/* DMA_flags_definition */ +#define DMA1_FLAG_GL1 ((uint32_t)0x00000001) +#define DMA1_FLAG_TC1 ((uint32_t)0x00000002) +#define DMA1_FLAG_HT1 ((uint32_t)0x00000004) +#define DMA1_FLAG_TE1 ((uint32_t)0x00000008) +#define DMA1_FLAG_GL2 ((uint32_t)0x00000010) +#define DMA1_FLAG_TC2 ((uint32_t)0x00000020) +#define DMA1_FLAG_HT2 ((uint32_t)0x00000040) +#define DMA1_FLAG_TE2 ((uint32_t)0x00000080) +#define DMA1_FLAG_GL3 ((uint32_t)0x00000100) +#define DMA1_FLAG_TC3 ((uint32_t)0x00000200) +#define DMA1_FLAG_HT3 ((uint32_t)0x00000400) +#define DMA1_FLAG_TE3 ((uint32_t)0x00000800) +#define DMA1_FLAG_GL4 ((uint32_t)0x00001000) +#define DMA1_FLAG_TC4 ((uint32_t)0x00002000) +#define DMA1_FLAG_HT4 ((uint32_t)0x00004000) +#define DMA1_FLAG_TE4 ((uint32_t)0x00008000) +#define DMA1_FLAG_GL5 ((uint32_t)0x00010000) +#define DMA1_FLAG_TC5 ((uint32_t)0x00020000) +#define DMA1_FLAG_HT5 ((uint32_t)0x00040000) +#define DMA1_FLAG_TE5 ((uint32_t)0x00080000) +#define DMA1_FLAG_GL6 ((uint32_t)0x00100000) +#define DMA1_FLAG_TC6 ((uint32_t)0x00200000) +#define DMA1_FLAG_HT6 ((uint32_t)0x00400000) +#define DMA1_FLAG_TE6 ((uint32_t)0x00800000) +#define DMA1_FLAG_GL7 ((uint32_t)0x01000000) +#define DMA1_FLAG_TC7 ((uint32_t)0x02000000) +#define DMA1_FLAG_HT7 ((uint32_t)0x04000000) +#define DMA1_FLAG_TE7 ((uint32_t)0x08000000) + +#define DMA2_FLAG_GL1 ((uint32_t)0x10000001) +#define DMA2_FLAG_TC1 ((uint32_t)0x10000002) +#define DMA2_FLAG_HT1 ((uint32_t)0x10000004) +#define DMA2_FLAG_TE1 ((uint32_t)0x10000008) +#define DMA2_FLAG_GL2 ((uint32_t)0x10000010) +#define DMA2_FLAG_TC2 ((uint32_t)0x10000020) +#define DMA2_FLAG_HT2 ((uint32_t)0x10000040) +#define DMA2_FLAG_TE2 ((uint32_t)0x10000080) +#define DMA2_FLAG_GL3 ((uint32_t)0x10000100) +#define DMA2_FLAG_TC3 ((uint32_t)0x10000200) +#define DMA2_FLAG_HT3 ((uint32_t)0x10000400) +#define DMA2_FLAG_TE3 ((uint32_t)0x10000800) +#define DMA2_FLAG_GL4 ((uint32_t)0x10001000) +#define DMA2_FLAG_TC4 ((uint32_t)0x10002000) +#define DMA2_FLAG_HT4 ((uint32_t)0x10004000) +#define DMA2_FLAG_TE4 ((uint32_t)0x10008000) +#define DMA2_FLAG_GL5 ((uint32_t)0x10010000) +#define DMA2_FLAG_TC5 ((uint32_t)0x10020000) +#define DMA2_FLAG_HT5 ((uint32_t)0x10040000) +#define DMA2_FLAG_TE5 ((uint32_t)0x10080000) + +void DMA_DeInit(DMA_Channel_TypeDef *DMAy_Channelx); +void DMA_Init(DMA_Channel_TypeDef *DMAy_Channelx, DMA_InitTypeDef *DMA_InitStruct); +void DMA_StructInit(DMA_InitTypeDef *DMA_InitStruct); +void DMA_Cmd(DMA_Channel_TypeDef *DMAy_Channelx, FunctionalState NewState); +void DMA_ITConfig(DMA_Channel_TypeDef *DMAy_Channelx, uint32_t DMA_IT, FunctionalState NewState); +void DMA_SetCurrDataCounter(DMA_Channel_TypeDef *DMAy_Channelx, uint16_t DataNumber); +uint16_t DMA_GetCurrDataCounter(DMA_Channel_TypeDef *DMAy_Channelx); +FlagStatus DMA_GetFlagStatus(uint32_t DMAy_FLAG); +void DMA_ClearFlag(uint32_t DMAy_FLAG); +ITStatus DMA_GetITStatus(uint32_t DMAy_IT); +void DMA_ClearITPendingBit(uint32_t DMAy_IT); + +#ifdef __cplusplus +} +#endif + +#endif /*__CH32V10x_DMA_H */ diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_exti.h b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_exti.h new file mode 100644 index 0000000000..bf6de440e7 --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_exti.h @@ -0,0 +1,86 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_exti.h + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file contains all the functions prototypes for the + * EXTI firmware library. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *******************************************************************************/ +#ifndef __CH32V10x_EXTI_H +#define __CH32V10x_EXTI_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "ch32v10x.h" + +/* EXTI mode enumeration */ +typedef enum +{ + EXTI_Mode_Interrupt = 0x00, + EXTI_Mode_Event = 0x04 +} EXTIMode_TypeDef; + +/* EXTI Trigger enumeration */ +typedef enum +{ + EXTI_Trigger_Rising = 0x08, + EXTI_Trigger_Falling = 0x0C, + EXTI_Trigger_Rising_Falling = 0x10 +} EXTITrigger_TypeDef; + +/* EXTI Init Structure definition */ +typedef struct +{ + uint32_t EXTI_Line; /* Specifies the EXTI lines to be enabled or disabled. + This parameter can be any combination of @ref EXTI_Lines */ + + EXTIMode_TypeDef EXTI_Mode; /* Specifies the mode for the EXTI lines. + This parameter can be a value of @ref EXTIMode_TypeDef */ + + EXTITrigger_TypeDef EXTI_Trigger; /* Specifies the trigger signal active edge for the EXTI lines. + This parameter can be a value of @ref EXTIMode_TypeDef */ + + FunctionalState EXTI_LineCmd; /* Specifies the new state of the selected EXTI lines. + This parameter can be set either to ENABLE or DISABLE */ +} EXTI_InitTypeDef; + +/* EXTI_Lines */ +#define EXTI_Line0 ((uint32_t)0x00001) /* External interrupt line 0 */ +#define EXTI_Line1 ((uint32_t)0x00002) /* External interrupt line 1 */ +#define EXTI_Line2 ((uint32_t)0x00004) /* External interrupt line 2 */ +#define EXTI_Line3 ((uint32_t)0x00008) /* External interrupt line 3 */ +#define EXTI_Line4 ((uint32_t)0x00010) /* External interrupt line 4 */ +#define EXTI_Line5 ((uint32_t)0x00020) /* External interrupt line 5 */ +#define EXTI_Line6 ((uint32_t)0x00040) /* External interrupt line 6 */ +#define EXTI_Line7 ((uint32_t)0x00080) /* External interrupt line 7 */ +#define EXTI_Line8 ((uint32_t)0x00100) /* External interrupt line 8 */ +#define EXTI_Line9 ((uint32_t)0x00200) /* External interrupt line 9 */ +#define EXTI_Line10 ((uint32_t)0x00400) /* External interrupt line 10 */ +#define EXTI_Line11 ((uint32_t)0x00800) /* External interrupt line 11 */ +#define EXTI_Line12 ((uint32_t)0x01000) /* External interrupt line 12 */ +#define EXTI_Line13 ((uint32_t)0x02000) /* External interrupt line 13 */ +#define EXTI_Line14 ((uint32_t)0x04000) /* External interrupt line 14 */ +#define EXTI_Line15 ((uint32_t)0x08000) /* External interrupt line 15 */ +#define EXTI_Line16 ((uint32_t)0x10000) /* External interrupt line 16 Connected to the PVD Output */ +#define EXTI_Line17 ((uint32_t)0x20000) /* External interrupt line 17 Connected to the RTC Alarm event */ +#define EXTI_Line18 ((uint32_t)0x40000) +#define EXTI_Line19 ((uint32_t)0x80000) /* External interrupt line 19 Connected to the USBHD Wakeup event */ + +void EXTI_DeInit(void); +void EXTI_Init(EXTI_InitTypeDef *EXTI_InitStruct); +void EXTI_StructInit(EXTI_InitTypeDef *EXTI_InitStruct); +void EXTI_GenerateSWInterrupt(uint32_t EXTI_Line); +FlagStatus EXTI_GetFlagStatus(uint32_t EXTI_Line); +void EXTI_ClearFlag(uint32_t EXTI_Line); +ITStatus EXTI_GetITStatus(uint32_t EXTI_Line); +void EXTI_ClearITPendingBit(uint32_t EXTI_Line); + +#ifdef __cplusplus +} +#endif + +#endif /* __CH32V10x_EXTI_H */ diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_flash.h b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_flash.h new file mode 100644 index 0000000000..a07e49885d --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_flash.h @@ -0,0 +1,155 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_flash.h + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file contains all the functions prototypes for the FLASH + * firmware library. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *******************************************************************************/ +#ifndef __CH32V10x_FLASH_H +#define __CH32V10x_FLASH_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "ch32v10x.h" + +/* FLASH Status */ +typedef enum +{ + FLASH_BUSY = 1, + FLASH_ERROR_PG, + FLASH_ERROR_WRP, + FLASH_COMPLETE, + FLASH_TIMEOUT +} FLASH_Status; + +/* Flash_Latency */ +#define FLASH_Latency_0 ((uint32_t)0x00000000) /* FLASH Zero Latency cycle */ +#define FLASH_Latency_1 ((uint32_t)0x00000001) /* FLASH One Latency cycle */ +#define FLASH_Latency_2 ((uint32_t)0x00000002) /* FLASH Two Latency cycles */ + +/* Half_Cycle_Enable_Disable */ +#define FLASH_HalfCycleAccess_Enable ((uint32_t)0x00000008) /* FLASH Half Cycle Enable */ +#define FLASH_HalfCycleAccess_Disable ((uint32_t)0x00000000) /* FLASH Half Cycle Disable */ + +/* Prefetch_Buffer_Enable_Disable */ +#define FLASH_PrefetchBuffer_Enable ((uint32_t)0x00000010) /* FLASH Prefetch Buffer Enable */ +#define FLASH_PrefetchBuffer_Disable ((uint32_t)0x00000000) /* FLASH Prefetch Buffer Disable */ + +/* Values to be used with CH32V10x Low and Medium density devices */ +#define FLASH_WRProt_Pages0to3 ((uint32_t)0x00000001) /* CH32 Low and Medium density devices: Write protection of page 0 to 3 */ +#define FLASH_WRProt_Pages4to7 ((uint32_t)0x00000002) /* CH32 Low and Medium density devices: Write protection of page 4 to 7 */ +#define FLASH_WRProt_Pages8to11 ((uint32_t)0x00000004) /* CH32 Low and Medium density devices: Write protection of page 8 to 11 */ +#define FLASH_WRProt_Pages12to15 ((uint32_t)0x00000008) /* CH32 Low and Medium density devices: Write protection of page 12 to 15 */ +#define FLASH_WRProt_Pages16to19 ((uint32_t)0x00000010) /* CH32 Low and Medium density devices: Write protection of page 16 to 19 */ +#define FLASH_WRProt_Pages20to23 ((uint32_t)0x00000020) /* CH32 Low and Medium density devices: Write protection of page 20 to 23 */ +#define FLASH_WRProt_Pages24to27 ((uint32_t)0x00000040) /* CH32 Low and Medium density devices: Write protection of page 24 to 27 */ +#define FLASH_WRProt_Pages28to31 ((uint32_t)0x00000080) /* CH32 Low and Medium density devices: Write protection of page 28 to 31 */ + +/* Values to be used with CH32V10x Medium-density devices */ +#define FLASH_WRProt_Pages32to35 ((uint32_t)0x00000100) /* CH32 Medium-density devices: Write protection of page 32 to 35 */ +#define FLASH_WRProt_Pages36to39 ((uint32_t)0x00000200) /* CH32 Medium-density devices: Write protection of page 36 to 39 */ +#define FLASH_WRProt_Pages40to43 ((uint32_t)0x00000400) /* CH32 Medium-density devices: Write protection of page 40 to 43 */ +#define FLASH_WRProt_Pages44to47 ((uint32_t)0x00000800) /* CH32 Medium-density devices: Write protection of page 44 to 47 */ +#define FLASH_WRProt_Pages48to51 ((uint32_t)0x00001000) /* CH32 Medium-density devices: Write protection of page 48 to 51 */ +#define FLASH_WRProt_Pages52to55 ((uint32_t)0x00002000) /* CH32 Medium-density devices: Write protection of page 52 to 55 */ +#define FLASH_WRProt_Pages56to59 ((uint32_t)0x00004000) /* CH32 Medium-density devices: Write protection of page 56 to 59 */ +#define FLASH_WRProt_Pages60to63 ((uint32_t)0x00008000) /* CH32 Medium-density devices: Write protection of page 60 to 63 */ +#define FLASH_WRProt_Pages64to67 ((uint32_t)0x00010000) /* CH32 Medium-density devices: Write protection of page 64 to 67 */ +#define FLASH_WRProt_Pages68to71 ((uint32_t)0x00020000) /* CH32 Medium-density devices: Write protection of page 68 to 71 */ +#define FLASH_WRProt_Pages72to75 ((uint32_t)0x00040000) /* CH32 Medium-density devices: Write protection of page 72 to 75 */ +#define FLASH_WRProt_Pages76to79 ((uint32_t)0x00080000) /* CH32 Medium-density devices: Write protection of page 76 to 79 */ +#define FLASH_WRProt_Pages80to83 ((uint32_t)0x00100000) /* CH32 Medium-density devices: Write protection of page 80 to 83 */ +#define FLASH_WRProt_Pages84to87 ((uint32_t)0x00200000) /* CH32 Medium-density devices: Write protection of page 84 to 87 */ +#define FLASH_WRProt_Pages88to91 ((uint32_t)0x00400000) /* CH32 Medium-density devices: Write protection of page 88 to 91 */ +#define FLASH_WRProt_Pages92to95 ((uint32_t)0x00800000) /* CH32 Medium-density devices: Write protection of page 92 to 95 */ +#define FLASH_WRProt_Pages96to99 ((uint32_t)0x01000000) /* CH32 Medium-density devices: Write protection of page 96 to 99 */ +#define FLASH_WRProt_Pages100to103 ((uint32_t)0x02000000) /* CH32 Medium-density devices: Write protection of page 100 to 103 */ +#define FLASH_WRProt_Pages104to107 ((uint32_t)0x04000000) /* CH32 Medium-density devices: Write protection of page 104 to 107 */ +#define FLASH_WRProt_Pages108to111 ((uint32_t)0x08000000) /* CH32 Medium-density devices: Write protection of page 108 to 111 */ +#define FLASH_WRProt_Pages112to115 ((uint32_t)0x10000000) /* CH32 Medium-density devices: Write protection of page 112 to 115 */ +#define FLASH_WRProt_Pages116to119 ((uint32_t)0x20000000) /* CH32 Medium-density devices: Write protection of page 115 to 119 */ +#define FLASH_WRProt_Pages120to123 ((uint32_t)0x40000000) /* CH32 Medium-density devices: Write protection of page 120 to 123 */ +#define FLASH_WRProt_Pages124to127 ((uint32_t)0x80000000) /* CH32 Medium-density devices: Write protection of page 124 to 127 */ + +#define FLASH_WRProt_Pages62to255 ((uint32_t)0x80000000) /* CH32 Medium-density devices: Write protection of page 62 to 255 */ + +#define FLASH_WRProt_AllPages ((uint32_t)0xFFFFFFFF) /* Write protection of all Pages */ + +/* Option_Bytes_IWatchdog */ +#define OB_IWDG_SW ((uint16_t)0x0001) /* Software IWDG selected */ +#define OB_IWDG_HW ((uint16_t)0x0000) /* Hardware IWDG selected */ + +/* Option_Bytes_nRST_STOP */ +#define OB_STOP_NoRST ((uint16_t)0x0002) /* No reset generated when entering in STOP */ +#define OB_STOP_RST ((uint16_t)0x0000) /* Reset generated when entering in STOP */ + +/* Option_Bytes_nRST_STDBY */ +#define OB_STDBY_NoRST ((uint16_t)0x0004) /* No reset generated when entering in STANDBY */ +#define OB_STDBY_RST ((uint16_t)0x0000) /* Reset generated when entering in STANDBY */ + +/* FLASH_Interrupts */ +#define FLASH_IT_ERROR ((uint32_t)0x00000400) /* FPEC error interrupt source */ +#define FLASH_IT_EOP ((uint32_t)0x00001000) /* End of FLASH Operation Interrupt source */ +#define FLASH_IT_BANK1_ERROR FLASH_IT_ERROR /* FPEC BANK1 error interrupt source */ +#define FLASH_IT_BANK1_EOP FLASH_IT_EOP /* End of FLASH BANK1 Operation Interrupt source */ + +/* FLASH_Flags */ +#define FLASH_FLAG_BSY ((uint32_t)0x00000001) /* FLASH Busy flag */ +#define FLASH_FLAG_EOP ((uint32_t)0x00000020) /* FLASH End of Operation flag */ +#define FLASH_FLAG_PGERR ((uint32_t)0x00000004) /* FLASH Program error flag */ +#define FLASH_FLAG_WRPRTERR ((uint32_t)0x00000010) /* FLASH Write protected error flag */ +#define FLASH_FLAG_OPTERR ((uint32_t)0x00000001) /* FLASH Option Byte error flag */ + +#define FLASH_FLAG_BANK1_BSY FLASH_FLAG_BSY /* FLASH BANK1 Busy flag*/ +#define FLASH_FLAG_BANK1_EOP FLASH_FLAG_EOP /* FLASH BANK1 End of Operation flag */ +#define FLASH_FLAG_BANK1_PGERR FLASH_FLAG_PGERR /* FLASH BANK1 Program error flag */ +#define FLASH_FLAG_BANK1_WRPRTERR FLASH_FLAG_WRPRTERR /* FLASH BANK1 Write protected error flag */ + +/*Functions used for all CH32V10x devices*/ +void FLASH_SetLatency(uint32_t FLASH_Latency); +void FLASH_HalfCycleAccessCmd(uint32_t FLASH_HalfCycleAccess); +void FLASH_PrefetchBufferCmd(uint32_t FLASH_PrefetchBuffer); +void FLASH_Unlock(void); +void FLASH_Lock(void); +FLASH_Status FLASH_ErasePage(uint32_t Page_Address); +FLASH_Status FLASH_EraseAllPages(void); +FLASH_Status FLASH_EraseOptionBytes(void); +FLASH_Status FLASH_ProgramWord(uint32_t Address, uint32_t Data); +FLASH_Status FLASH_ProgramHalfWord(uint32_t Address, uint16_t Data); +FLASH_Status FLASH_ProgramOptionByteData(uint32_t Address, uint8_t Data); +FLASH_Status FLASH_EnableWriteProtection(uint32_t FLASH_Pages); +FLASH_Status FLASH_ReadOutProtection(FunctionalState NewState); +FLASH_Status FLASH_UserOptionByteConfig(uint16_t OB_IWDG, uint16_t OB_STOP, uint16_t OB_STDBY); +uint32_t FLASH_GetUserOptionByte(void); +uint32_t FLASH_GetWriteProtectionOptionByte(void); +FlagStatus FLASH_GetReadOutProtectionStatus(void); +FlagStatus FLASH_GetPrefetchBufferStatus(void); +void FLASH_ITConfig(uint32_t FLASH_IT, FunctionalState NewState); +FlagStatus FLASH_GetFlagStatus(uint32_t FLASH_FLAG); +void FLASH_ClearFlag(uint32_t FLASH_FLAG); +FLASH_Status FLASH_GetStatus(void); +FLASH_Status FLASH_WaitForLastOperation(uint32_t Timeout); +void FLASH_Unlock_Fast(void); +void FLASH_Lock_Fast(void); +void FLASH_BufReset(void); +void FLASH_BufLoad(uint32_t Address, uint32_t Data0, uint32_t Data1, uint32_t Data2, uint32_t Data3); +void FLASH_ErasePage_Fast(uint32_t Page_Address); +void FLASH_ProgramPage_Fast(uint32_t Page_Address); + +/* New function used for all CH32V10x devices */ +void FLASH_UnlockBank1(void); +void FLASH_LockBank1(void); +FLASH_Status FLASH_EraseAllBank1Pages(void); +FLASH_Status FLASH_GetBank1Status(void); +FLASH_Status FLASH_WaitForLastBank1Operation(uint32_t Timeout); + +#ifdef __cplusplus +} +#endif + +#endif /* __CH32V10x_FLASH_H */ diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_gpio.h b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_gpio.h new file mode 100644 index 0000000000..8246f375d8 --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_gpio.h @@ -0,0 +1,160 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_gpio.h + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file contains all the functions prototypes for the + * GPIO firmware library. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *******************************************************************************/ +#ifndef __CH32V10x_GPIO_H +#define __CH32V10x_GPIO_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "ch32v10x.h" + +/* Output Maximum frequency selection */ +typedef enum +{ + GPIO_Speed_10MHz = 1, + GPIO_Speed_2MHz, + GPIO_Speed_50MHz +} GPIOSpeed_TypeDef; + +/* Configuration Mode enumeration */ +typedef enum +{ + GPIO_Mode_AIN = 0x0, + GPIO_Mode_IN_FLOATING = 0x04, + GPIO_Mode_IPD = 0x28, + GPIO_Mode_IPU = 0x48, + GPIO_Mode_Out_OD = 0x14, + GPIO_Mode_Out_PP = 0x10, + GPIO_Mode_AF_OD = 0x1C, + GPIO_Mode_AF_PP = 0x18 +} GPIOMode_TypeDef; + +/* GPIO Init structure definition */ +typedef struct +{ + uint16_t GPIO_Pin; /* Specifies the GPIO pins to be configured. + This parameter can be any value of @ref GPIO_pins_define */ + + GPIOSpeed_TypeDef GPIO_Speed; /* Specifies the speed for the selected pins. + This parameter can be a value of @ref GPIOSpeed_TypeDef */ + + GPIOMode_TypeDef GPIO_Mode; /* Specifies the operating mode for the selected pins. + This parameter can be a value of @ref GPIOMode_TypeDef */ +} GPIO_InitTypeDef; + +/* Bit_SET and Bit_RESET enumeration */ +typedef enum +{ + Bit_RESET = 0, + Bit_SET +} BitAction; + +/* GPIO_pins_define */ +#define GPIO_Pin_0 ((uint16_t)0x0001) /* Pin 0 selected */ +#define GPIO_Pin_1 ((uint16_t)0x0002) /* Pin 1 selected */ +#define GPIO_Pin_2 ((uint16_t)0x0004) /* Pin 2 selected */ +#define GPIO_Pin_3 ((uint16_t)0x0008) /* Pin 3 selected */ +#define GPIO_Pin_4 ((uint16_t)0x0010) /* Pin 4 selected */ +#define GPIO_Pin_5 ((uint16_t)0x0020) /* Pin 5 selected */ +#define GPIO_Pin_6 ((uint16_t)0x0040) /* Pin 6 selected */ +#define GPIO_Pin_7 ((uint16_t)0x0080) /* Pin 7 selected */ +#define GPIO_Pin_8 ((uint16_t)0x0100) /* Pin 8 selected */ +#define GPIO_Pin_9 ((uint16_t)0x0200) /* Pin 9 selected */ +#define GPIO_Pin_10 ((uint16_t)0x0400) /* Pin 10 selected */ +#define GPIO_Pin_11 ((uint16_t)0x0800) /* Pin 11 selected */ +#define GPIO_Pin_12 ((uint16_t)0x1000) /* Pin 12 selected */ +#define GPIO_Pin_13 ((uint16_t)0x2000) /* Pin 13 selected */ +#define GPIO_Pin_14 ((uint16_t)0x4000) /* Pin 14 selected */ +#define GPIO_Pin_15 ((uint16_t)0x8000) /* Pin 15 selected */ +#define GPIO_Pin_All ((uint16_t)0xFFFF) /* All pins selected */ + +/* GPIO_Remap_define */ +#define GPIO_Remap_SPI1 ((uint32_t)0x00000001) /* SPI1 Alternate Function mapping */ +#define GPIO_Remap_I2C1 ((uint32_t)0x00000002) /* I2C1 Alternate Function mapping */ +#define GPIO_Remap_USART1 ((uint32_t)0x00000004) /* USART1 Alternate Function mapping */ +#define GPIO_Remap_USART2 ((uint32_t)0x00000008) /* USART2 Alternate Function mapping */ +#define GPIO_PartialRemap_USART3 ((uint32_t)0x00140010) /* USART3 Partial Alternate Function mapping */ +#define GPIO_FullRemap_USART3 ((uint32_t)0x00140030) /* USART3 Full Alternate Function mapping */ +#define GPIO_PartialRemap_TIM1 ((uint32_t)0x00160040) /* TIM1 Partial Alternate Function mapping */ +#define GPIO_FullRemap_TIM1 ((uint32_t)0x001600C0) /* TIM1 Full Alternate Function mapping */ +#define GPIO_PartialRemap1_TIM2 ((uint32_t)0x00180100) /* TIM2 Partial1 Alternate Function mapping */ +#define GPIO_PartialRemap2_TIM2 ((uint32_t)0x00180200) /* TIM2 Partial2 Alternate Function mapping */ +#define GPIO_FullRemap_TIM2 ((uint32_t)0x00180300) /* TIM2 Full Alternate Function mapping */ +#define GPIO_PartialRemap_TIM3 ((uint32_t)0x001A0800) /* TIM3 Partial Alternate Function mapping */ +#define GPIO_FullRemap_TIM3 ((uint32_t)0x001A0C00) /* TIM3 Full Alternate Function mapping */ +#define GPIO_Remap_TIM4 ((uint32_t)0x00001000) /* TIM4 Alternate Function mapping */ +#define GPIO_Remap1_CAN1 ((uint32_t)0x001D4000) /* CAN1 Alternate Function mapping */ +#define GPIO_Remap2_CAN1 ((uint32_t)0x001D6000) /* CAN1 Alternate Function mapping */ +#define GPIO_Remap_PD01 ((uint32_t)0x00008000) /* PD01 Alternate Function mapping */ +#define GPIO_Remap_ADC1_ETRGINJ ((uint32_t)0x00200002) /* ADC1 External Trigger Injected Conversion remapping */ +#define GPIO_Remap_ADC1_ETRGREG ((uint32_t)0x00200004) /* ADC1 External Trigger Regular Conversion remapping */ +#define GPIO_Remap_SWJ_NoJTRST ((uint32_t)0x00300100) /* Full SWJ Enabled (JTAG-DP + SW-DP) but without JTRST */ +#define GPIO_Remap_SWJ_JTAGDisable ((uint32_t)0x00300200) /* JTAG-DP Disabled and SW-DP Enabled */ +#define GPIO_Remap_SWJ_Disable ((uint32_t)0x00300400) /* Full SWJ Disabled (JTAG-DP + SW-DP) */ +#define GPIO_Remap_TIM2ITR1_PTP_SOF ((uint32_t)0x00202000) /* Ethernet PTP output or USB OTG SOF (Start of Frame) connected \ + to TIM2 Internal Trigger 1 for calibration \ + (only for Connectivity line devices) */ +#define GPIO_Remap_TIM1_DMA ((uint32_t)0x80000010) /* TIM1 DMA requests mapping (only for Value line devices) */ +#define GPIO_Remap_TIM67_DAC_DMA ((uint32_t)0x80000800) /* TIM6/TIM7 and DAC DMA requests remapping (only for High density Value line devices) */ +#define GPIO_Remap_MISC ((uint32_t)0x80002000) /* Miscellaneous Remap (DMA2 Channel5 Position and DAC Trigger remapping, \ + only for High density Value line devices) */ + +/* GPIO_Port_Sources */ +#define GPIO_PortSourceGPIOA ((uint8_t)0x00) +#define GPIO_PortSourceGPIOB ((uint8_t)0x01) +#define GPIO_PortSourceGPIOC ((uint8_t)0x02) +#define GPIO_PortSourceGPIOD ((uint8_t)0x03) +#define GPIO_PortSourceGPIOE ((uint8_t)0x04) +#define GPIO_PortSourceGPIOF ((uint8_t)0x05) +#define GPIO_PortSourceGPIOG ((uint8_t)0x06) + +/* GPIO_Pin_sources */ +#define GPIO_PinSource0 ((uint8_t)0x00) +#define GPIO_PinSource1 ((uint8_t)0x01) +#define GPIO_PinSource2 ((uint8_t)0x02) +#define GPIO_PinSource3 ((uint8_t)0x03) +#define GPIO_PinSource4 ((uint8_t)0x04) +#define GPIO_PinSource5 ((uint8_t)0x05) +#define GPIO_PinSource6 ((uint8_t)0x06) +#define GPIO_PinSource7 ((uint8_t)0x07) +#define GPIO_PinSource8 ((uint8_t)0x08) +#define GPIO_PinSource9 ((uint8_t)0x09) +#define GPIO_PinSource10 ((uint8_t)0x0A) +#define GPIO_PinSource11 ((uint8_t)0x0B) +#define GPIO_PinSource12 ((uint8_t)0x0C) +#define GPIO_PinSource13 ((uint8_t)0x0D) +#define GPIO_PinSource14 ((uint8_t)0x0E) +#define GPIO_PinSource15 ((uint8_t)0x0F) + +void GPIO_DeInit(GPIO_TypeDef *GPIOx); +void GPIO_AFIODeInit(void); +void GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_InitStruct); +void GPIO_StructInit(GPIO_InitTypeDef *GPIO_InitStruct); +uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin); +uint16_t GPIO_ReadInputData(GPIO_TypeDef *GPIOx); +uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin); +uint16_t GPIO_ReadOutputData(GPIO_TypeDef *GPIOx); +void GPIO_SetBits(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin); +void GPIO_ResetBits(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin); +void GPIO_WriteBit(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, BitAction BitVal); +void GPIO_Write(GPIO_TypeDef *GPIOx, uint16_t PortVal); +void GPIO_PinLockConfig(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin); +void GPIO_EventOutputConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource); +void GPIO_EventOutputCmd(FunctionalState NewState); +void GPIO_PinRemapConfig(uint32_t GPIO_Remap, FunctionalState NewState); +void GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource); + +#ifdef __cplusplus +} +#endif + +#endif /* __CH32V10x_GPIO_H */ diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_i2c.h b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_i2c.h new file mode 100644 index 0000000000..60d589fd50 --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_i2c.h @@ -0,0 +1,199 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_i2c.h + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file contains all the functions prototypes for the + * I2C firmware library. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *******************************************************************************/ +#ifndef __CH32V10x_I2C_H +#define __CH32V10x_I2C_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "ch32v10x.h" + +/* I2C Init structure definition */ +typedef struct +{ + uint32_t I2C_ClockSpeed; /* Specifies the clock frequency. + This parameter must be set to a value lower than 400kHz */ + + uint16_t I2C_Mode; /* Specifies the I2C mode. + This parameter can be a value of @ref I2C_mode */ + + uint16_t I2C_DutyCycle; /* Specifies the I2C fast mode duty cycle. + This parameter can be a value of @ref I2C_duty_cycle_in_fast_mode */ + + uint16_t I2C_OwnAddress1; /* Specifies the first device own address. + This parameter can be a 7-bit or 10-bit address. */ + + uint16_t I2C_Ack; /* Enables or disables the acknowledgement. + This parameter can be a value of @ref I2C_acknowledgement */ + + uint16_t I2C_AcknowledgedAddress; /* Specifies if 7-bit or 10-bit address is acknowledged. + This parameter can be a value of @ref I2C_acknowledged_address */ +} I2C_InitTypeDef; + +/* I2C_mode */ +#define I2C_Mode_I2C ((uint16_t)0x0000) +#define I2C_Mode_SMBusDevice ((uint16_t)0x0002) +#define I2C_Mode_SMBusHost ((uint16_t)0x000A) + +/* I2C_duty_cycle_in_fast_mode */ +#define I2C_DutyCycle_16_9 ((uint16_t)0x4000) /* I2C fast mode Tlow/Thigh = 16/9 */ +#define I2C_DutyCycle_2 ((uint16_t)0xBFFF) /* I2C fast mode Tlow/Thigh = 2 */ + +/* I2C_acknowledgement */ +#define I2C_Ack_Enable ((uint16_t)0x0400) +#define I2C_Ack_Disable ((uint16_t)0x0000) + +/* I2C_transfer_direction */ +#define I2C_Direction_Transmitter ((uint8_t)0x00) +#define I2C_Direction_Receiver ((uint8_t)0x01) + +/* I2C_acknowledged_address */ +#define I2C_AcknowledgedAddress_7bit ((uint16_t)0x4000) +#define I2C_AcknowledgedAddress_10bit ((uint16_t)0xC000) + +/* I2C_registers */ +#define I2C_Register_CTLR1 ((uint8_t)0x00) +#define I2C_Register_CTLR2 ((uint8_t)0x04) +#define I2C_Register_OADDR1 ((uint8_t)0x08) +#define I2C_Register_OADDR2 ((uint8_t)0x0C) +#define I2C_Register_DATAR ((uint8_t)0x10) +#define I2C_Register_STAR1 ((uint8_t)0x14) +#define I2C_Register_STAR2 ((uint8_t)0x18) +#define I2C_Register_CKCFGR ((uint8_t)0x1C) +#define I2C_Register_RTR ((uint8_t)0x20) + +/* I2C_SMBus_alert_pin_level */ +#define I2C_SMBusAlert_Low ((uint16_t)0x2000) +#define I2C_SMBusAlert_High ((uint16_t)0xDFFF) + +/* I2C_PEC_position */ +#define I2C_PECPosition_Next ((uint16_t)0x0800) +#define I2C_PECPosition_Current ((uint16_t)0xF7FF) + +/* I2C_NACK_position */ +#define I2C_NACKPosition_Next ((uint16_t)0x0800) +#define I2C_NACKPosition_Current ((uint16_t)0xF7FF) + +/* I2C_interrupts_definition */ +#define I2C_IT_BUF ((uint16_t)0x0400) +#define I2C_IT_EVT ((uint16_t)0x0200) +#define I2C_IT_ERR ((uint16_t)0x0100) + +/* I2C_interrupts_definition */ +#define I2C_IT_SMBALERT ((uint32_t)0x01008000) +#define I2C_IT_TIMEOUT ((uint32_t)0x01004000) +#define I2C_IT_PECERR ((uint32_t)0x01001000) +#define I2C_IT_OVR ((uint32_t)0x01000800) +#define I2C_IT_AF ((uint32_t)0x01000400) +#define I2C_IT_ARLO ((uint32_t)0x01000200) +#define I2C_IT_BERR ((uint32_t)0x01000100) +#define I2C_IT_TXE ((uint32_t)0x06000080) +#define I2C_IT_RXNE ((uint32_t)0x06000040) +#define I2C_IT_STOPF ((uint32_t)0x02000010) +#define I2C_IT_ADD10 ((uint32_t)0x02000008) +#define I2C_IT_BTF ((uint32_t)0x02000004) +#define I2C_IT_ADDR ((uint32_t)0x02000002) +#define I2C_IT_SB ((uint32_t)0x02000001) + +/* SR2 register flags */ +#define I2C_FLAG_DUALF ((uint32_t)0x00800000) +#define I2C_FLAG_SMBHOST ((uint32_t)0x00400000) +#define I2C_FLAG_SMBDEFAULT ((uint32_t)0x00200000) +#define I2C_FLAG_GENCALL ((uint32_t)0x00100000) +#define I2C_FLAG_TRA ((uint32_t)0x00040000) +#define I2C_FLAG_BUSY ((uint32_t)0x00020000) +#define I2C_FLAG_MSL ((uint32_t)0x00010000) + +/* SR1 register flags */ +#define I2C_FLAG_SMBALERT ((uint32_t)0x10008000) +#define I2C_FLAG_TIMEOUT ((uint32_t)0x10004000) +#define I2C_FLAG_PECERR ((uint32_t)0x10001000) +#define I2C_FLAG_OVR ((uint32_t)0x10000800) +#define I2C_FLAG_AF ((uint32_t)0x10000400) +#define I2C_FLAG_ARLO ((uint32_t)0x10000200) +#define I2C_FLAG_BERR ((uint32_t)0x10000100) +#define I2C_FLAG_TXE ((uint32_t)0x10000080) +#define I2C_FLAG_RXNE ((uint32_t)0x10000040) +#define I2C_FLAG_STOPF ((uint32_t)0x10000010) +#define I2C_FLAG_ADD10 ((uint32_t)0x10000008) +#define I2C_FLAG_BTF ((uint32_t)0x10000004) +#define I2C_FLAG_ADDR ((uint32_t)0x10000002) +#define I2C_FLAG_SB ((uint32_t)0x10000001) + +/****************I2C Master Events (Events grouped in order of communication)********************/ + +#define I2C_EVENT_MASTER_MODE_SELECT ((uint32_t)0x00030001) /* BUSY, MSL and SB flag */ +#define I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED ((uint32_t)0x00070082) /* BUSY, MSL, ADDR, TXE and TRA flags */ +#define I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED ((uint32_t)0x00030002) /* BUSY, MSL and ADDR flags */ +#define I2C_EVENT_MASTER_MODE_ADDRESS10 ((uint32_t)0x00030008) /* BUSY, MSL and ADD10 flags */ +#define I2C_EVENT_MASTER_BYTE_RECEIVED ((uint32_t)0x00030040) /* BUSY, MSL and RXNE flags */ +#define I2C_EVENT_MASTER_BYTE_TRANSMITTING ((uint32_t)0x00070080) /* TRA, BUSY, MSL, TXE flags */ +#define I2C_EVENT_MASTER_BYTE_TRANSMITTED ((uint32_t)0x00070084) /* TRA, BUSY, MSL, TXE and BTF flags */ + +/******************I2C Slave Events (Events grouped in order of communication)******************/ + +#define I2C_EVENT_SLAVE_RECEIVER_ADDRESS_MATCHED ((uint32_t)0x00020002) /* BUSY and ADDR flags */ +#define I2C_EVENT_SLAVE_TRANSMITTER_ADDRESS_MATCHED ((uint32_t)0x00060082) /* TRA, BUSY, TXE and ADDR flags */ +#define I2C_EVENT_SLAVE_RECEIVER_SECONDADDRESS_MATCHED ((uint32_t)0x00820000) /* DUALF and BUSY flags */ +#define I2C_EVENT_SLAVE_TRANSMITTER_SECONDADDRESS_MATCHED ((uint32_t)0x00860080) /* DUALF, TRA, BUSY and TXE flags */ +#define I2C_EVENT_SLAVE_GENERALCALLADDRESS_MATCHED ((uint32_t)0x00120000) /* GENCALL and BUSY flags */ +#define I2C_EVENT_SLAVE_BYTE_RECEIVED ((uint32_t)0x00020040) /* BUSY and RXNE flags */ +#define I2C_EVENT_SLAVE_STOP_DETECTED ((uint32_t)0x00000010) /* STOPF flag */ +#define I2C_EVENT_SLAVE_BYTE_TRANSMITTED ((uint32_t)0x00060084) /* TRA, BUSY, TXE and BTF flags */ +#define I2C_EVENT_SLAVE_BYTE_TRANSMITTING ((uint32_t)0x00060080) /* TRA, BUSY and TXE flags */ +#define I2C_EVENT_SLAVE_ACK_FAILURE ((uint32_t)0x00000400) /* AF flag */ + +void I2C_DeInit(I2C_TypeDef *I2Cx); +void I2C_Init(I2C_TypeDef *I2Cx, I2C_InitTypeDef *I2C_InitStruct); +void I2C_StructInit(I2C_InitTypeDef *I2C_InitStruct); +void I2C_Cmd(I2C_TypeDef *I2Cx, FunctionalState NewState); +void I2C_DMACmd(I2C_TypeDef *I2Cx, FunctionalState NewState); +void I2C_DMALastTransferCmd(I2C_TypeDef *I2Cx, FunctionalState NewState); +void I2C_GenerateSTART(I2C_TypeDef *I2Cx, FunctionalState NewState); +void I2C_GenerateSTOP(I2C_TypeDef *I2Cx, FunctionalState NewState); +void I2C_AcknowledgeConfig(I2C_TypeDef *I2Cx, FunctionalState NewState); +void I2C_OwnAddress2Config(I2C_TypeDef *I2Cx, uint8_t Address); +void I2C_DualAddressCmd(I2C_TypeDef *I2Cx, FunctionalState NewState); +void I2C_GeneralCallCmd(I2C_TypeDef *I2Cx, FunctionalState NewState); +void I2C_ITConfig(I2C_TypeDef *I2Cx, uint16_t I2C_IT, FunctionalState NewState); +void I2C_SendData(I2C_TypeDef *I2Cx, uint8_t Data); +uint8_t I2C_ReceiveData(I2C_TypeDef *I2Cx); +void I2C_Send7bitAddress(I2C_TypeDef *I2Cx, uint8_t Address, uint8_t I2C_Direction); +uint16_t I2C_ReadRegister(I2C_TypeDef *I2Cx, uint8_t I2C_Register); +void I2C_SoftwareResetCmd(I2C_TypeDef *I2Cx, FunctionalState NewState); +void I2C_NACKPositionConfig(I2C_TypeDef *I2Cx, uint16_t I2C_NACKPosition); +void I2C_SMBusAlertConfig(I2C_TypeDef *I2Cx, uint16_t I2C_SMBusAlert); +void I2C_TransmitPEC(I2C_TypeDef *I2Cx, FunctionalState NewState); +void I2C_PECPositionConfig(I2C_TypeDef *I2Cx, uint16_t I2C_PECPosition); +void I2C_CalculatePEC(I2C_TypeDef *I2Cx, FunctionalState NewState); +uint8_t I2C_GetPEC(I2C_TypeDef *I2Cx); +void I2C_ARPCmd(I2C_TypeDef *I2Cx, FunctionalState NewState); +void I2C_StretchClockCmd(I2C_TypeDef *I2Cx, FunctionalState NewState); +void I2C_FastModeDutyCycleConfig(I2C_TypeDef *I2Cx, uint16_t I2C_DutyCycle); + +/**************************************************************************************** + * I2C State Monitoring Functions + ****************************************************************************************/ + +ErrorStatus I2C_CheckEvent(I2C_TypeDef *I2Cx, uint32_t I2C_EVENT); +uint32_t I2C_GetLastEvent(I2C_TypeDef *I2Cx); +FlagStatus I2C_GetFlagStatus(I2C_TypeDef *I2Cx, uint32_t I2C_FLAG); + +void I2C_ClearFlag(I2C_TypeDef *I2Cx, uint32_t I2C_FLAG); +ITStatus I2C_GetITStatus(I2C_TypeDef *I2Cx, uint32_t I2C_IT); +void I2C_ClearITPendingBit(I2C_TypeDef *I2Cx, uint32_t I2C_IT); + +#ifdef __cplusplus +} +#endif + +#endif /*__CH32V10x_I2C_H */ diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_iwdg.h b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_iwdg.h new file mode 100644 index 0000000000..0bfbc8b17e --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_iwdg.h @@ -0,0 +1,48 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_iwdg.h + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file contains all the functions prototypes for the + * IWDG firmware library. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *******************************************************************************/ +#ifndef __CH32V10x_IWDG_H +#define __CH32V10x_IWDG_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "ch32v10x.h" + +/* IWDG_WriteAccess */ +#define IWDG_WriteAccess_Enable ((uint16_t)0x5555) +#define IWDG_WriteAccess_Disable ((uint16_t)0x0000) + +/* IWDG_prescaler */ +#define IWDG_Prescaler_4 ((uint8_t)0x00) +#define IWDG_Prescaler_8 ((uint8_t)0x01) +#define IWDG_Prescaler_16 ((uint8_t)0x02) +#define IWDG_Prescaler_32 ((uint8_t)0x03) +#define IWDG_Prescaler_64 ((uint8_t)0x04) +#define IWDG_Prescaler_128 ((uint8_t)0x05) +#define IWDG_Prescaler_256 ((uint8_t)0x06) + +/* IWDG_Flag */ +#define IWDG_FLAG_PVU ((uint16_t)0x0001) +#define IWDG_FLAG_RVU ((uint16_t)0x0002) + +void IWDG_WriteAccessCmd(uint16_t IWDG_WriteAccess); +void IWDG_SetPrescaler(uint8_t IWDG_Prescaler); +void IWDG_SetReload(uint16_t Reload); +void IWDG_ReloadCounter(void); +void IWDG_Enable(void); +FlagStatus IWDG_GetFlagStatus(uint16_t IWDG_FLAG); + +#ifdef __cplusplus +} +#endif + +#endif /* __CH32V10x_IWDG_H */ diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_misc.h b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_misc.h new file mode 100644 index 0000000000..dc90bc9160 --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_misc.h @@ -0,0 +1,46 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_misc.h + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file contains all the functions prototypes for the + * miscellaneous firmware library functions. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *******************************************************************************/ +#ifndef __CH32V10X_MISC_H +#define __CH32V10X_MISC_H + +#ifdef __cplusplus + extern "C" { +#endif + +#include "ch32v10x.h" + +/* NVIC Init Structure definition */ +typedef struct +{ + uint8_t NVIC_IRQChannel; + uint8_t NVIC_IRQChannelPreemptionPriority; + uint8_t NVIC_IRQChannelSubPriority; + FunctionalState NVIC_IRQChannelCmd; +} NVIC_InitTypeDef; + + +/* Preemption_Priority_Group */ +#define NVIC_PriorityGroup_0 ((uint32_t)0x00) +#define NVIC_PriorityGroup_1 ((uint32_t)0x01) +#define NVIC_PriorityGroup_2 ((uint32_t)0x02) +#define NVIC_PriorityGroup_3 ((uint32_t)0x03) +#define NVIC_PriorityGroup_4 ((uint32_t)0x04) + + +void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup); +void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct); + +#ifdef __cplusplus +} +#endif + +#endif /* __CH32V10x_MISC_H */ + diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_pwr.h b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_pwr.h new file mode 100644 index 0000000000..e553958204 --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_pwr.h @@ -0,0 +1,57 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_pwr.h + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file contains all the functions prototypes for the PWR + * firmware library. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *******************************************************************************/ +#ifndef __CH32V10x_PWR_H +#define __CH32V10x_PWR_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "ch32v10x.h" + +/* PVD_detection_level */ +#define PWR_PVDLevel_2V2 ((uint32_t)0x00000000) +#define PWR_PVDLevel_2V3 ((uint32_t)0x00000020) +#define PWR_PVDLevel_2V4 ((uint32_t)0x00000040) +#define PWR_PVDLevel_2V5 ((uint32_t)0x00000060) +#define PWR_PVDLevel_2V6 ((uint32_t)0x00000080) +#define PWR_PVDLevel_2V7 ((uint32_t)0x000000A0) +#define PWR_PVDLevel_2V8 ((uint32_t)0x000000C0) +#define PWR_PVDLevel_2V9 ((uint32_t)0x000000E0) + +/* Regulator_state_is_STOP_mode */ +#define PWR_Regulator_ON ((uint32_t)0x00000000) +#define PWR_Regulator_LowPower ((uint32_t)0x00000001) + +/* STOP_mode_entry */ +#define PWR_STOPEntry_WFI ((uint8_t)0x01) +#define PWR_STOPEntry_WFE ((uint8_t)0x02) + +/* PWR_Flag */ +#define PWR_FLAG_WU ((uint32_t)0x00000001) +#define PWR_FLAG_SB ((uint32_t)0x00000002) +#define PWR_FLAG_PVDO ((uint32_t)0x00000004) + +void PWR_DeInit(void); +void PWR_BackupAccessCmd(FunctionalState NewState); +void PWR_PVDCmd(FunctionalState NewState); +void PWR_PVDLevelConfig(uint32_t PWR_PVDLevel); +void PWR_WakeUpPinCmd(FunctionalState NewState); +void PWR_EnterSTOPMode(uint32_t PWR_Regulator, uint8_t PWR_STOPEntry); +void PWR_EnterSTANDBYMode(void); +FlagStatus PWR_GetFlagStatus(uint32_t PWR_FLAG); +void PWR_ClearFlag(uint32_t PWR_FLAG); + +#ifdef __cplusplus +} +#endif + +#endif /* __CH32V10x_PWR_H */ diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_rcc.h b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_rcc.h new file mode 100644 index 0000000000..981a48c174 --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_rcc.h @@ -0,0 +1,228 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_rcc.h + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file provides all the RCC firmware functions. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *******************************************************************************/ +#ifndef __CH32V10x_RCC_H +#define __CH32V10x_RCC_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "ch32v10x.h" + +/* RCC_Exported_Types */ +typedef struct +{ + uint32_t SYSCLK_Frequency; /* returns SYSCLK clock frequency expressed in Hz */ + uint32_t HCLK_Frequency; /* returns HCLK clock frequency expressed in Hz */ + uint32_t PCLK1_Frequency; /* returns PCLK1 clock frequency expressed in Hz */ + uint32_t PCLK2_Frequency; /* returns PCLK2 clock frequency expressed in Hz */ + uint32_t ADCCLK_Frequency; /* returns ADCCLK clock frequency expressed in Hz */ +} RCC_ClocksTypeDef; + +/* HSE_configuration */ +#define RCC_HSE_OFF ((uint32_t)0x00000000) +#define RCC_HSE_ON ((uint32_t)0x00010000) +#define RCC_HSE_Bypass ((uint32_t)0x00040000) + +/* PLL_entry_clock_source */ +#define RCC_PLLSource_HSI_Div2 ((uint32_t)0x00000000) +#define RCC_PLLSource_HSE_Div1 ((uint32_t)0x00010000) +#define RCC_PLLSource_HSE_Div2 ((uint32_t)0x00030000) + +/* PLL_multiplication_factor */ +#define RCC_PLLMul_2 ((uint32_t)0x00000000) +#define RCC_PLLMul_3 ((uint32_t)0x00040000) +#define RCC_PLLMul_4 ((uint32_t)0x00080000) +#define RCC_PLLMul_5 ((uint32_t)0x000C0000) +#define RCC_PLLMul_6 ((uint32_t)0x00100000) +#define RCC_PLLMul_7 ((uint32_t)0x00140000) +#define RCC_PLLMul_8 ((uint32_t)0x00180000) +#define RCC_PLLMul_9 ((uint32_t)0x001C0000) +#define RCC_PLLMul_10 ((uint32_t)0x00200000) +#define RCC_PLLMul_11 ((uint32_t)0x00240000) +#define RCC_PLLMul_12 ((uint32_t)0x00280000) +#define RCC_PLLMul_13 ((uint32_t)0x002C0000) +#define RCC_PLLMul_14 ((uint32_t)0x00300000) +#define RCC_PLLMul_15 ((uint32_t)0x00340000) +#define RCC_PLLMul_16 ((uint32_t)0x00380000) + +/* System_clock_source */ +#define RCC_SYSCLKSource_HSI ((uint32_t)0x00000000) +#define RCC_SYSCLKSource_HSE ((uint32_t)0x00000001) +#define RCC_SYSCLKSource_PLLCLK ((uint32_t)0x00000002) + +/* AHB_clock_source */ +#define RCC_SYSCLK_Div1 ((uint32_t)0x00000000) +#define RCC_SYSCLK_Div2 ((uint32_t)0x00000080) +#define RCC_SYSCLK_Div4 ((uint32_t)0x00000090) +#define RCC_SYSCLK_Div8 ((uint32_t)0x000000A0) +#define RCC_SYSCLK_Div16 ((uint32_t)0x000000B0) +#define RCC_SYSCLK_Div64 ((uint32_t)0x000000C0) +#define RCC_SYSCLK_Div128 ((uint32_t)0x000000D0) +#define RCC_SYSCLK_Div256 ((uint32_t)0x000000E0) +#define RCC_SYSCLK_Div512 ((uint32_t)0x000000F0) + +/* APB1_APB2_clock_source */ +#define RCC_HCLK_Div1 ((uint32_t)0x00000000) +#define RCC_HCLK_Div2 ((uint32_t)0x00000400) +#define RCC_HCLK_Div4 ((uint32_t)0x00000500) +#define RCC_HCLK_Div8 ((uint32_t)0x00000600) +#define RCC_HCLK_Div16 ((uint32_t)0x00000700) + +/* RCC_Interrupt_source */ +#define RCC_IT_LSIRDY ((uint8_t)0x01) +#define RCC_IT_LSERDY ((uint8_t)0x02) +#define RCC_IT_HSIRDY ((uint8_t)0x04) +#define RCC_IT_HSERDY ((uint8_t)0x08) +#define RCC_IT_PLLRDY ((uint8_t)0x10) +#define RCC_IT_CSS ((uint8_t)0x80) + +/* USB_Device_clock_source */ +#define RCC_USBCLKSource_PLLCLK_1Div5 ((uint8_t)0x00) +#define RCC_USBCLKSource_PLLCLK_Div1 ((uint8_t)0x01) + +/* ADC_clock_source */ +#define RCC_PCLK2_Div2 ((uint32_t)0x00000000) +#define RCC_PCLK2_Div4 ((uint32_t)0x00004000) +#define RCC_PCLK2_Div6 ((uint32_t)0x00008000) +#define RCC_PCLK2_Div8 ((uint32_t)0x0000C000) + +/* LSE_configuration */ +#define RCC_LSE_OFF ((uint8_t)0x00) +#define RCC_LSE_ON ((uint8_t)0x01) +#define RCC_LSE_Bypass ((uint8_t)0x04) + +/* RTC_clock_source */ +#define RCC_RTCCLKSource_LSE ((uint32_t)0x00000100) +#define RCC_RTCCLKSource_LSI ((uint32_t)0x00000200) +#define RCC_RTCCLKSource_HSE_Div128 ((uint32_t)0x00000300) + +/* AHB_peripheral */ +#define RCC_AHBPeriph_DMA1 ((uint32_t)0x00000001) +#define RCC_AHBPeriph_DMA2 ((uint32_t)0x00000002) +#define RCC_AHBPeriph_SRAM ((uint32_t)0x00000004) +#define RCC_AHBPeriph_FLITF ((uint32_t)0x00000010) +#define RCC_AHBPeriph_CRC ((uint32_t)0x00000040) +#define RCC_AHBPeriph_FSMC ((uint32_t)0x00000100) +#define RCC_AHBPeriph_SDIO ((uint32_t)0x00000400) +#define RCC_AHBPeriph_USBHD ((uint32_t)0x00001000) + +/* APB2_peripheral */ +#define RCC_APB2Periph_AFIO ((uint32_t)0x00000001) +#define RCC_APB2Periph_GPIOA ((uint32_t)0x00000004) +#define RCC_APB2Periph_GPIOB ((uint32_t)0x00000008) +#define RCC_APB2Periph_GPIOC ((uint32_t)0x00000010) +#define RCC_APB2Periph_GPIOD ((uint32_t)0x00000020) +#define RCC_APB2Periph_GPIOE ((uint32_t)0x00000040) +#define RCC_APB2Periph_GPIOF ((uint32_t)0x00000080) +#define RCC_APB2Periph_GPIOG ((uint32_t)0x00000100) +#define RCC_APB2Periph_ADC1 ((uint32_t)0x00000200) +#define RCC_APB2Periph_ADC2 ((uint32_t)0x00000400) +#define RCC_APB2Periph_TIM1 ((uint32_t)0x00000800) +#define RCC_APB2Periph_SPI1 ((uint32_t)0x00001000) +#define RCC_APB2Periph_TIM8 ((uint32_t)0x00002000) +#define RCC_APB2Periph_USART1 ((uint32_t)0x00004000) +#define RCC_APB2Periph_ADC3 ((uint32_t)0x00008000) +#define RCC_APB2Periph_TIM15 ((uint32_t)0x00010000) +#define RCC_APB2Periph_TIM16 ((uint32_t)0x00020000) +#define RCC_APB2Periph_TIM17 ((uint32_t)0x00040000) +#define RCC_APB2Periph_TIM9 ((uint32_t)0x00080000) +#define RCC_APB2Periph_TIM10 ((uint32_t)0x00100000) +#define RCC_APB2Periph_TIM11 ((uint32_t)0x00200000) + +/* APB1_peripheral */ +#define RCC_APB1Periph_TIM2 ((uint32_t)0x00000001) +#define RCC_APB1Periph_TIM3 ((uint32_t)0x00000002) +#define RCC_APB1Periph_TIM4 ((uint32_t)0x00000004) +#define RCC_APB1Periph_TIM5 ((uint32_t)0x00000008) +#define RCC_APB1Periph_TIM6 ((uint32_t)0x00000010) +#define RCC_APB1Periph_TIM7 ((uint32_t)0x00000020) +#define RCC_APB1Periph_TIM12 ((uint32_t)0x00000040) +#define RCC_APB1Periph_TIM13 ((uint32_t)0x00000080) +#define RCC_APB1Periph_TIM14 ((uint32_t)0x00000100) +#define RCC_APB1Periph_WWDG ((uint32_t)0x00000800) +#define RCC_APB1Periph_SPI2 ((uint32_t)0x00004000) +#define RCC_APB1Periph_SPI3 ((uint32_t)0x00008000) +#define RCC_APB1Periph_USART2 ((uint32_t)0x00020000) +#define RCC_APB1Periph_USART3 ((uint32_t)0x00040000) +#define RCC_APB1Periph_UART4 ((uint32_t)0x00080000) +#define RCC_APB1Periph_UART5 ((uint32_t)0x00100000) +#define RCC_APB1Periph_I2C1 ((uint32_t)0x00200000) +#define RCC_APB1Periph_I2C2 ((uint32_t)0x00400000) +#define RCC_APB1Periph_USB ((uint32_t)0x00800000) +#define RCC_APB1Periph_CAN1 ((uint32_t)0x02000000) +#define RCC_APB1Periph_CAN2 ((uint32_t)0x04000000) +#define RCC_APB1Periph_BKP ((uint32_t)0x08000000) +#define RCC_APB1Periph_PWR ((uint32_t)0x10000000) +#define RCC_APB1Periph_DAC ((uint32_t)0x20000000) +#define RCC_APB1Periph_CEC ((uint32_t)0x40000000) + +/* Clock_source_to_output_on_MCO_pin */ +#define RCC_MCO_NoClock ((uint8_t)0x00) +#define RCC_MCO_SYSCLK ((uint8_t)0x04) +#define RCC_MCO_HSI ((uint8_t)0x05) +#define RCC_MCO_HSE ((uint8_t)0x06) +#define RCC_MCO_PLLCLK_Div2 ((uint8_t)0x07) + +/* RCC_Flag */ +#define RCC_FLAG_HSIRDY ((uint8_t)0x21) +#define RCC_FLAG_HSERDY ((uint8_t)0x31) +#define RCC_FLAG_PLLRDY ((uint8_t)0x39) +#define RCC_FLAG_LSERDY ((uint8_t)0x41) +#define RCC_FLAG_LSIRDY ((uint8_t)0x61) +#define RCC_FLAG_PINRST ((uint8_t)0x7A) +#define RCC_FLAG_PORRST ((uint8_t)0x7B) +#define RCC_FLAG_SFTRST ((uint8_t)0x7C) +#define RCC_FLAG_IWDGRST ((uint8_t)0x7D) +#define RCC_FLAG_WWDGRST ((uint8_t)0x7E) +#define RCC_FLAG_LPWRRST ((uint8_t)0x7F) + +/* SysTick_clock_source */ +#define SysTick_CLKSource_HCLK_Div8 ((uint32_t)0xFFFFFFFB) +#define SysTick_CLKSource_HCLK ((uint32_t)0x00000004) + +void RCC_DeInit(void); +void RCC_HSEConfig(uint32_t RCC_HSE); +ErrorStatus RCC_WaitForHSEStartUp(void); +void RCC_AdjustHSICalibrationValue(uint8_t HSICalibrationValue); +void RCC_HSICmd(FunctionalState NewState); +void RCC_PLLConfig(uint32_t RCC_PLLSource, uint32_t RCC_PLLMul); +void RCC_PLLCmd(FunctionalState NewState); +void RCC_SYSCLKConfig(uint32_t RCC_SYSCLKSource); +uint8_t RCC_GetSYSCLKSource(void); +void RCC_HCLKConfig(uint32_t RCC_SYSCLK); +void RCC_PCLK1Config(uint32_t RCC_HCLK); +void RCC_PCLK2Config(uint32_t RCC_HCLK); +void RCC_ITConfig(uint8_t RCC_IT, FunctionalState NewState); +void RCC_USBCLKConfig(uint32_t RCC_USBCLKSource); +void RCC_ADCCLKConfig(uint32_t RCC_PCLK2); +void RCC_LSEConfig(uint8_t RCC_LSE); +void RCC_LSICmd(FunctionalState NewState); +void RCC_RTCCLKConfig(uint32_t RCC_RTCCLKSource); +void RCC_RTCCLKCmd(FunctionalState NewState); +void RCC_GetClocksFreq(RCC_ClocksTypeDef *RCC_Clocks); +void RCC_AHBPeriphClockCmd(uint32_t RCC_AHBPeriph, FunctionalState NewState); +void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState); +void RCC_APB1PeriphClockCmd(uint32_t RCC_APB1Periph, FunctionalState NewState); +void RCC_APB2PeriphResetCmd(uint32_t RCC_APB2Periph, FunctionalState NewState); +void RCC_APB1PeriphResetCmd(uint32_t RCC_APB1Periph, FunctionalState NewState); +void RCC_BackupResetCmd(FunctionalState NewState); +void RCC_ClockSecuritySystemCmd(FunctionalState NewState); +void RCC_MCOConfig(uint8_t RCC_MCO); +FlagStatus RCC_GetFlagStatus(uint8_t RCC_FLAG); +void RCC_ClearFlag(void); +ITStatus RCC_GetITStatus(uint8_t RCC_IT); +void RCC_ClearITPendingBit(uint8_t RCC_IT); + +#ifdef __cplusplus +} +#endif + +#endif /* __CH32V10x_RCC_H */ diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_rtc.h b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_rtc.h new file mode 100644 index 0000000000..e0ff7717a1 --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_rtc.h @@ -0,0 +1,51 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_rtc.h + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file contains all the functions prototypes for the RTC + * firmware library. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *******************************************************************************/ +#ifndef __CH32V10x_RTC_H +#define __CH32V10x_RTC_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "ch32v10x.h" + +/* RTC_interrupts_define */ +#define RTC_IT_OW ((uint16_t)0x0004) /* Overflow interrupt */ +#define RTC_IT_ALR ((uint16_t)0x0002) /* Alarm interrupt */ +#define RTC_IT_SEC ((uint16_t)0x0001) /* Second interrupt */ + +/* RTC_interrupts_flags */ +#define RTC_FLAG_RTOFF ((uint16_t)0x0020) /* RTC Operation OFF flag */ +#define RTC_FLAG_RSF ((uint16_t)0x0008) /* Registers Synchronized flag */ +#define RTC_FLAG_OW ((uint16_t)0x0004) /* Overflow flag */ +#define RTC_FLAG_ALR ((uint16_t)0x0002) /* Alarm flag */ +#define RTC_FLAG_SEC ((uint16_t)0x0001) /* Second flag */ + +void RTC_ITConfig(uint16_t RTC_IT, FunctionalState NewState); +void RTC_EnterConfigMode(void); +void RTC_ExitConfigMode(void); +uint32_t RTC_GetCounter(void); +void RTC_SetCounter(uint32_t CounterValue); +void RTC_SetPrescaler(uint32_t PrescalerValue); +void RTC_SetAlarm(uint32_t AlarmValue); +uint32_t RTC_GetDivider(void); +void RTC_WaitForLastTask(void); +void RTC_WaitForSynchro(void); +FlagStatus RTC_GetFlagStatus(uint16_t RTC_FLAG); +void RTC_ClearFlag(uint16_t RTC_FLAG); +ITStatus RTC_GetITStatus(uint16_t RTC_IT); +void RTC_ClearITPendingBit(uint16_t RTC_IT); + +#ifdef __cplusplus +} +#endif + +#endif /* __CH32V10x_RTC_H */ diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_spi.h b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_spi.h new file mode 100644 index 0000000000..03a7e156fa --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_spi.h @@ -0,0 +1,218 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_spi.h + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file contains all the functions prototypes for the + * SPI firmware library. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *******************************************************************************/ +#ifndef __CH32V10x_SPI_H +#define __CH32V10x_SPI_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "ch32v10x.h" + +/* SPI Init structure definition */ +typedef struct +{ + uint16_t SPI_Direction; /* Specifies the SPI unidirectional or bidirectional data mode. + This parameter can be a value of @ref SPI_data_direction */ + + uint16_t SPI_Mode; /* Specifies the SPI operating mode. + This parameter can be a value of @ref SPI_mode */ + + uint16_t SPI_DataSize; /* Specifies the SPI data size. + This parameter can be a value of @ref SPI_data_size */ + + uint16_t SPI_CPOL; /* Specifies the serial clock steady state. + This parameter can be a value of @ref SPI_Clock_Polarity */ + + uint16_t SPI_CPHA; /* Specifies the clock active edge for the bit capture. + This parameter can be a value of @ref SPI_Clock_Phase */ + + uint16_t SPI_NSS; /* Specifies whether the NSS signal is managed by + hardware (NSS pin) or by software using the SSI bit. + This parameter can be a value of @ref SPI_Slave_Select_management */ + + uint16_t SPI_BaudRatePrescaler; /* Specifies the Baud Rate prescaler value which will be + used to configure the transmit and receive SCK clock. + This parameter can be a value of @ref SPI_BaudRate_Prescaler. + @note The communication clock is derived from the master + clock. The slave clock does not need to be set. */ + + uint16_t SPI_FirstBit; /* Specifies whether data transfers start from MSB or LSB bit. + This parameter can be a value of @ref SPI_MSB_LSB_transmission */ + + uint16_t SPI_CRCPolynomial; /* Specifies the polynomial used for the CRC calculation. */ +} SPI_InitTypeDef; + +/* I2S Init structure definition */ +typedef struct +{ + uint16_t I2S_Mode; /* Specifies the I2S operating mode. + This parameter can be a value of @ref I2S_Mode */ + + uint16_t I2S_Standard; /* Specifies the standard used for the I2S communication. + This parameter can be a value of @ref I2S_Standard */ + + uint16_t I2S_DataFormat; /* Specifies the data format for the I2S communication. + This parameter can be a value of @ref I2S_Data_Format */ + + uint16_t I2S_MCLKOutput; /* Specifies whether the I2S MCLK output is enabled or not. + This parameter can be a value of @ref I2S_MCLK_Output */ + + uint32_t I2S_AudioFreq; /* Specifies the frequency selected for the I2S communication. + This parameter can be a value of @ref I2S_Audio_Frequency */ + + uint16_t I2S_CPOL; /* Specifies the idle state of the I2S clock. + This parameter can be a value of @ref I2S_Clock_Polarity */ +} I2S_InitTypeDef; + +/* SPI_data_direction */ +#define SPI_Direction_2Lines_FullDuplex ((uint16_t)0x0000) +#define SPI_Direction_2Lines_RxOnly ((uint16_t)0x0400) +#define SPI_Direction_1Line_Rx ((uint16_t)0x8000) +#define SPI_Direction_1Line_Tx ((uint16_t)0xC000) + +/* SPI_mode */ +#define SPI_Mode_Master ((uint16_t)0x0104) +#define SPI_Mode_Slave ((uint16_t)0x0000) + +/* SPI_data_size */ +#define SPI_DataSize_16b ((uint16_t)0x0800) +#define SPI_DataSize_8b ((uint16_t)0x0000) + +/* SPI_Clock_Polarity */ +#define SPI_CPOL_Low ((uint16_t)0x0000) +#define SPI_CPOL_High ((uint16_t)0x0002) + +/* SPI_Clock_Phase */ +#define SPI_CPHA_1Edge ((uint16_t)0x0000) +#define SPI_CPHA_2Edge ((uint16_t)0x0001) + +/* SPI_Slave_Select_management */ +#define SPI_NSS_Soft ((uint16_t)0x0200) +#define SPI_NSS_Hard ((uint16_t)0x0000) + +/* SPI_BaudRate_Prescaler */ +#define SPI_BaudRatePrescaler_2 ((uint16_t)0x0000) +#define SPI_BaudRatePrescaler_4 ((uint16_t)0x0008) +#define SPI_BaudRatePrescaler_8 ((uint16_t)0x0010) +#define SPI_BaudRatePrescaler_16 ((uint16_t)0x0018) +#define SPI_BaudRatePrescaler_32 ((uint16_t)0x0020) +#define SPI_BaudRatePrescaler_64 ((uint16_t)0x0028) +#define SPI_BaudRatePrescaler_128 ((uint16_t)0x0030) +#define SPI_BaudRatePrescaler_256 ((uint16_t)0x0038) + +/* SPI_MSB_LSB_transmission */ +#define SPI_FirstBit_MSB ((uint16_t)0x0000) +#define SPI_FirstBit_LSB ((uint16_t)0x0080) + +/* I2S_Mode */ +#define I2S_Mode_SlaveTx ((uint16_t)0x0000) +#define I2S_Mode_SlaveRx ((uint16_t)0x0100) +#define I2S_Mode_MasterTx ((uint16_t)0x0200) +#define I2S_Mode_MasterRx ((uint16_t)0x0300) + +/* I2S_Standard */ +#define I2S_Standard_Phillips ((uint16_t)0x0000) +#define I2S_Standard_MSB ((uint16_t)0x0010) +#define I2S_Standard_LSB ((uint16_t)0x0020) +#define I2S_Standard_PCMShort ((uint16_t)0x0030) +#define I2S_Standard_PCMLong ((uint16_t)0x00B0) + +/* I2S_Data_Format */ +#define I2S_DataFormat_16b ((uint16_t)0x0000) +#define I2S_DataFormat_16bextended ((uint16_t)0x0001) +#define I2S_DataFormat_24b ((uint16_t)0x0003) +#define I2S_DataFormat_32b ((uint16_t)0x0005) + +/* I2S_MCLK_Output */ +#define I2S_MCLKOutput_Enable ((uint16_t)0x0200) +#define I2S_MCLKOutput_Disable ((uint16_t)0x0000) + +/* I2S_Audio_Frequency */ +#define I2S_AudioFreq_192k ((uint32_t)192000) +#define I2S_AudioFreq_96k ((uint32_t)96000) +#define I2S_AudioFreq_48k ((uint32_t)48000) +#define I2S_AudioFreq_44k ((uint32_t)44100) +#define I2S_AudioFreq_32k ((uint32_t)32000) +#define I2S_AudioFreq_22k ((uint32_t)22050) +#define I2S_AudioFreq_16k ((uint32_t)16000) +#define I2S_AudioFreq_11k ((uint32_t)11025) +#define I2S_AudioFreq_8k ((uint32_t)8000) +#define I2S_AudioFreq_Default ((uint32_t)2) + +/* I2S_Clock_Polarity */ +#define I2S_CPOL_Low ((uint16_t)0x0000) +#define I2S_CPOL_High ((uint16_t)0x0008) + +/* SPI_I2S_DMA_transfer_requests */ +#define SPI_I2S_DMAReq_Tx ((uint16_t)0x0002) +#define SPI_I2S_DMAReq_Rx ((uint16_t)0x0001) + +/* SPI_NSS_internal_software_management */ +#define SPI_NSSInternalSoft_Set ((uint16_t)0x0100) +#define SPI_NSSInternalSoft_Reset ((uint16_t)0xFEFF) + +/* SPI_CRC_Transmit_Receive */ +#define SPI_CRC_Tx ((uint8_t)0x00) +#define SPI_CRC_Rx ((uint8_t)0x01) + +/* SPI_direction_transmit_receive */ +#define SPI_Direction_Rx ((uint16_t)0xBFFF) +#define SPI_Direction_Tx ((uint16_t)0x4000) + +/* SPI_I2S_interrupts_definition */ +#define SPI_I2S_IT_TXE ((uint8_t)0x71) +#define SPI_I2S_IT_RXNE ((uint8_t)0x60) +#define SPI_I2S_IT_ERR ((uint8_t)0x50) +#define SPI_I2S_IT_OVR ((uint8_t)0x56) +#define SPI_IT_MODF ((uint8_t)0x55) +#define SPI_IT_CRCERR ((uint8_t)0x54) +#define I2S_IT_UDR ((uint8_t)0x53) + +/* SPI_I2S_flags_definition */ +#define SPI_I2S_FLAG_RXNE ((uint16_t)0x0001) +#define SPI_I2S_FLAG_TXE ((uint16_t)0x0002) +#define I2S_FLAG_CHSIDE ((uint16_t)0x0004) +#define I2S_FLAG_UDR ((uint16_t)0x0008) +#define SPI_FLAG_CRCERR ((uint16_t)0x0010) +#define SPI_FLAG_MODF ((uint16_t)0x0020) +#define SPI_I2S_FLAG_OVR ((uint16_t)0x0040) +#define SPI_I2S_FLAG_BSY ((uint16_t)0x0080) + +void SPI_I2S_DeInit(SPI_TypeDef *SPIx); +void SPI_Init(SPI_TypeDef *SPIx, SPI_InitTypeDef *SPI_InitStruct); +void I2S_Init(SPI_TypeDef *SPIx, I2S_InitTypeDef *I2S_InitStruct); +void SPI_StructInit(SPI_InitTypeDef *SPI_InitStruct); +void I2S_StructInit(I2S_InitTypeDef *I2S_InitStruct); +void SPI_Cmd(SPI_TypeDef *SPIx, FunctionalState NewState); +void I2S_Cmd(SPI_TypeDef *SPIx, FunctionalState NewState); +void SPI_I2S_ITConfig(SPI_TypeDef *SPIx, uint8_t SPI_I2S_IT, FunctionalState NewState); +void SPI_I2S_DMACmd(SPI_TypeDef *SPIx, uint16_t SPI_I2S_DMAReq, FunctionalState NewState); +void SPI_I2S_SendData(SPI_TypeDef *SPIx, uint16_t Data); +uint16_t SPI_I2S_ReceiveData(SPI_TypeDef *SPIx); +void SPI_NSSInternalSoftwareConfig(SPI_TypeDef *SPIx, uint16_t SPI_NSSInternalSoft); +void SPI_SSOutputCmd(SPI_TypeDef *SPIx, FunctionalState NewState); +void SPI_DataSizeConfig(SPI_TypeDef *SPIx, uint16_t SPI_DataSize); +void SPI_TransmitCRC(SPI_TypeDef *SPIx); +void SPI_CalculateCRC(SPI_TypeDef *SPIx, FunctionalState NewState); +uint16_t SPI_GetCRC(SPI_TypeDef *SPIx, uint8_t SPI_CRC); +uint16_t SPI_GetCRCPolynomial(SPI_TypeDef *SPIx); +void SPI_BiDirectionalLineConfig(SPI_TypeDef *SPIx, uint16_t SPI_Direction); +FlagStatus SPI_I2S_GetFlagStatus(SPI_TypeDef *SPIx, uint16_t SPI_I2S_FLAG); +void SPI_I2S_ClearFlag(SPI_TypeDef *SPIx, uint16_t SPI_I2S_FLAG); +ITStatus SPI_I2S_GetITStatus(SPI_TypeDef *SPIx, uint8_t SPI_I2S_IT); +void SPI_I2S_ClearITPendingBit(SPI_TypeDef *SPIx, uint8_t SPI_I2S_IT); + +#ifdef __cplusplus +} +#endif + +#endif /*__CH32V10x_SPI_H */ diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_tim.h b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_tim.h new file mode 100644 index 0000000000..6b73414238 --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_tim.h @@ -0,0 +1,506 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_tim.h + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file contains all the functions prototypes for the + * TIM firmware library. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *******************************************************************************/ +#ifndef __CH32V10x_TIM_H +#define __CH32V10x_TIM_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "ch32v10x.h" + +/* TIM Time Base Init structure definition */ +typedef struct +{ + uint16_t TIM_Prescaler; /* Specifies the prescaler value used to divide the TIM clock. + This parameter can be a number between 0x0000 and 0xFFFF */ + + uint16_t TIM_CounterMode; /* Specifies the counter mode. + This parameter can be a value of @ref TIM_Counter_Mode */ + + uint16_t TIM_Period; /* Specifies the period value to be loaded into the active + Auto-Reload Register at the next update event. + This parameter must be a number between 0x0000 and 0xFFFF. */ + + uint16_t TIM_ClockDivision; /* Specifies the clock division. + This parameter can be a value of @ref TIM_Clock_Division_CKD */ + + uint8_t TIM_RepetitionCounter; /* Specifies the repetition counter value. Each time the RCR downcounter + reaches zero, an update event is generated and counting restarts + from the RCR value (N). + This means in PWM mode that (N+1) corresponds to: + - the number of PWM periods in edge-aligned mode + - the number of half PWM period in center-aligned mode + This parameter must be a number between 0x00 and 0xFF. + @note This parameter is valid only for TIM1 and TIM8. */ +} TIM_TimeBaseInitTypeDef; + +/* TIM Output Compare Init structure definition */ +typedef struct +{ + uint16_t TIM_OCMode; /* Specifies the TIM mode. + This parameter can be a value of @ref TIM_Output_Compare_and_PWM_modes */ + + uint16_t TIM_OutputState; /* Specifies the TIM Output Compare state. + This parameter can be a value of @ref TIM_Output_Compare_state */ + + uint16_t TIM_OutputNState; /* Specifies the TIM complementary Output Compare state. + This parameter can be a value of @ref TIM_Output_Compare_N_state + @note This parameter is valid only for TIM1 and TIM8. */ + + uint16_t TIM_Pulse; /* Specifies the pulse value to be loaded into the Capture Compare Register. + This parameter can be a number between 0x0000 and 0xFFFF */ + + uint16_t TIM_OCPolarity; /* Specifies the output polarity. + This parameter can be a value of @ref TIM_Output_Compare_Polarity */ + + uint16_t TIM_OCNPolarity; /* Specifies the complementary output polarity. + This parameter can be a value of @ref TIM_Output_Compare_N_Polarity + @note This parameter is valid only for TIM1 and TIM8. */ + + uint16_t TIM_OCIdleState; /* Specifies the TIM Output Compare pin state during Idle state. + This parameter can be a value of @ref TIM_Output_Compare_Idle_State + @note This parameter is valid only for TIM1 and TIM8. */ + + uint16_t TIM_OCNIdleState; /* Specifies the TIM Output Compare pin state during Idle state. + This parameter can be a value of @ref TIM_Output_Compare_N_Idle_State + @note This parameter is valid only for TIM1 and TIM8. */ +} TIM_OCInitTypeDef; + +/* TIM Input Capture Init structure definition */ +typedef struct +{ + uint16_t TIM_Channel; /* Specifies the TIM channel. + This parameter can be a value of @ref TIM_Channel */ + + uint16_t TIM_ICPolarity; /* Specifies the active edge of the input signal. + This parameter can be a value of @ref TIM_Input_Capture_Polarity */ + + uint16_t TIM_ICSelection; /* Specifies the input. + This parameter can be a value of @ref TIM_Input_Capture_Selection */ + + uint16_t TIM_ICPrescaler; /* Specifies the Input Capture Prescaler. + This parameter can be a value of @ref TIM_Input_Capture_Prescaler */ + + uint16_t TIM_ICFilter; /* Specifies the input capture filter. + This parameter can be a number between 0x0 and 0xF */ +} TIM_ICInitTypeDef; + +/* BDTR structure definition */ +typedef struct +{ + uint16_t TIM_OSSRState; /* Specifies the Off-State selection used in Run mode. + This parameter can be a value of @ref OSSR_Off_State_Selection_for_Run_mode_state */ + + uint16_t TIM_OSSIState; /* Specifies the Off-State used in Idle state. + This parameter can be a value of @ref OSSI_Off_State_Selection_for_Idle_mode_state */ + + uint16_t TIM_LOCKLevel; /* Specifies the LOCK level parameters. + This parameter can be a value of @ref Lock_level */ + + uint16_t TIM_DeadTime; /* Specifies the delay time between the switching-off and the + switching-on of the outputs. + This parameter can be a number between 0x00 and 0xFF */ + + uint16_t TIM_Break; /* Specifies whether the TIM Break input is enabled or not. + This parameter can be a value of @ref Break_Input_enable_disable */ + + uint16_t TIM_BreakPolarity; /* Specifies the TIM Break Input pin polarity. + This parameter can be a value of @ref Break_Polarity */ + + uint16_t TIM_AutomaticOutput; /* Specifies whether the TIM Automatic Output feature is enabled or not. + This parameter can be a value of @ref TIM_AOE_Bit_Set_Reset */ +} TIM_BDTRInitTypeDef; + +/* TIM_Output_Compare_and_PWM_modes */ +#define TIM_OCMode_Timing ((uint16_t)0x0000) +#define TIM_OCMode_Active ((uint16_t)0x0010) +#define TIM_OCMode_Inactive ((uint16_t)0x0020) +#define TIM_OCMode_Toggle ((uint16_t)0x0030) +#define TIM_OCMode_PWM1 ((uint16_t)0x0060) +#define TIM_OCMode_PWM2 ((uint16_t)0x0070) + +/* TIM_One_Pulse_Mode */ +#define TIM_OPMode_Single ((uint16_t)0x0008) +#define TIM_OPMode_Repetitive ((uint16_t)0x0000) + +/* TIM_Channel */ +#define TIM_Channel_1 ((uint16_t)0x0000) +#define TIM_Channel_2 ((uint16_t)0x0004) +#define TIM_Channel_3 ((uint16_t)0x0008) +#define TIM_Channel_4 ((uint16_t)0x000C) + +/* TIM_Clock_Division_CKD */ +#define TIM_CKD_DIV1 ((uint16_t)0x0000) +#define TIM_CKD_DIV2 ((uint16_t)0x0100) +#define TIM_CKD_DIV4 ((uint16_t)0x0200) + +/* TIM_Counter_Mode */ +#define TIM_CounterMode_Up ((uint16_t)0x0000) +#define TIM_CounterMode_Down ((uint16_t)0x0010) +#define TIM_CounterMode_CenterAligned1 ((uint16_t)0x0020) +#define TIM_CounterMode_CenterAligned2 ((uint16_t)0x0040) +#define TIM_CounterMode_CenterAligned3 ((uint16_t)0x0060) + +/* TIM_Output_Compare_Polarity */ +#define TIM_OCPolarity_High ((uint16_t)0x0000) +#define TIM_OCPolarity_Low ((uint16_t)0x0002) + +/* TIM_Output_Compare_N_Polarity */ +#define TIM_OCNPolarity_High ((uint16_t)0x0000) +#define TIM_OCNPolarity_Low ((uint16_t)0x0008) + +/* TIM_Output_Compare_state */ +#define TIM_OutputState_Disable ((uint16_t)0x0000) +#define TIM_OutputState_Enable ((uint16_t)0x0001) + +/* TIM_Output_Compare_N_state */ +#define TIM_OutputNState_Disable ((uint16_t)0x0000) +#define TIM_OutputNState_Enable ((uint16_t)0x0004) + +/* TIM_Capture_Compare_state */ +#define TIM_CCx_Enable ((uint16_t)0x0001) +#define TIM_CCx_Disable ((uint16_t)0x0000) + +/* TIM_Capture_Compare_N_state */ +#define TIM_CCxN_Enable ((uint16_t)0x0004) +#define TIM_CCxN_Disable ((uint16_t)0x0000) + +/* Break_Input_enable_disable */ +#define TIM_Break_Enable ((uint16_t)0x1000) +#define TIM_Break_Disable ((uint16_t)0x0000) + +/* Break_Polarity */ +#define TIM_BreakPolarity_Low ((uint16_t)0x0000) +#define TIM_BreakPolarity_High ((uint16_t)0x2000) + +/* TIM_AOE_Bit_Set_Reset */ +#define TIM_AutomaticOutput_Enable ((uint16_t)0x4000) +#define TIM_AutomaticOutput_Disable ((uint16_t)0x0000) + +/* Lock_level */ +#define TIM_LOCKLevel_OFF ((uint16_t)0x0000) +#define TIM_LOCKLevel_1 ((uint16_t)0x0100) +#define TIM_LOCKLevel_2 ((uint16_t)0x0200) +#define TIM_LOCKLevel_3 ((uint16_t)0x0300) + +/* OSSI_Off_State_Selection_for_Idle_mode_state */ +#define TIM_OSSIState_Enable ((uint16_t)0x0400) +#define TIM_OSSIState_Disable ((uint16_t)0x0000) + +/* OSSR_Off_State_Selection_for_Run_mode_state */ +#define TIM_OSSRState_Enable ((uint16_t)0x0800) +#define TIM_OSSRState_Disable ((uint16_t)0x0000) + +/* TIM_Output_Compare_Idle_State */ +#define TIM_OCIdleState_Set ((uint16_t)0x0100) +#define TIM_OCIdleState_Reset ((uint16_t)0x0000) + +/* TIM_Output_Compare_N_Idle_State */ +#define TIM_OCNIdleState_Set ((uint16_t)0x0200) +#define TIM_OCNIdleState_Reset ((uint16_t)0x0000) + +/* TIM_Input_Capture_Polarity */ +#define TIM_ICPolarity_Rising ((uint16_t)0x0000) +#define TIM_ICPolarity_Falling ((uint16_t)0x0002) +#define TIM_ICPolarity_BothEdge ((uint16_t)0x000A) + +/* TIM_Input_Capture_Selection */ +#define TIM_ICSelection_DirectTI ((uint16_t)0x0001) /* TIM Input 1, 2, 3 or 4 is selected to be \ + connected to IC1, IC2, IC3 or IC4, respectively */ +#define TIM_ICSelection_IndirectTI ((uint16_t)0x0002) /* TIM Input 1, 2, 3 or 4 is selected to be \ + connected to IC2, IC1, IC4 or IC3, respectively. */ +#define TIM_ICSelection_TRC ((uint16_t)0x0003) /* TIM Input 1, 2, 3 or 4 is selected to be connected to TRC. */ + +/* TIM_Input_Capture_Prescaler */ +#define TIM_ICPSC_DIV1 ((uint16_t)0x0000) /* Capture performed each time an edge is detected on the capture input. */ +#define TIM_ICPSC_DIV2 ((uint16_t)0x0004) /* Capture performed once every 2 events. */ +#define TIM_ICPSC_DIV4 ((uint16_t)0x0008) /* Capture performed once every 4 events. */ +#define TIM_ICPSC_DIV8 ((uint16_t)0x000C) /* Capture performed once every 8 events. */ + +/* TIM_interrupt_sources */ +#define TIM_IT_Update ((uint16_t)0x0001) +#define TIM_IT_CC1 ((uint16_t)0x0002) +#define TIM_IT_CC2 ((uint16_t)0x0004) +#define TIM_IT_CC3 ((uint16_t)0x0008) +#define TIM_IT_CC4 ((uint16_t)0x0010) +#define TIM_IT_COM ((uint16_t)0x0020) +#define TIM_IT_Trigger ((uint16_t)0x0040) +#define TIM_IT_Break ((uint16_t)0x0080) + +/* TIM_DMA_Base_address */ +#define TIM_DMABase_CR1 ((uint16_t)0x0000) +#define TIM_DMABase_CR2 ((uint16_t)0x0001) +#define TIM_DMABase_SMCR ((uint16_t)0x0002) +#define TIM_DMABase_DIER ((uint16_t)0x0003) +#define TIM_DMABase_SR ((uint16_t)0x0004) +#define TIM_DMABase_EGR ((uint16_t)0x0005) +#define TIM_DMABase_CCMR1 ((uint16_t)0x0006) +#define TIM_DMABase_CCMR2 ((uint16_t)0x0007) +#define TIM_DMABase_CCER ((uint16_t)0x0008) +#define TIM_DMABase_CNT ((uint16_t)0x0009) +#define TIM_DMABase_PSC ((uint16_t)0x000A) +#define TIM_DMABase_ARR ((uint16_t)0x000B) +#define TIM_DMABase_RCR ((uint16_t)0x000C) +#define TIM_DMABase_CCR1 ((uint16_t)0x000D) +#define TIM_DMABase_CCR2 ((uint16_t)0x000E) +#define TIM_DMABase_CCR3 ((uint16_t)0x000F) +#define TIM_DMABase_CCR4 ((uint16_t)0x0010) +#define TIM_DMABase_BDTR ((uint16_t)0x0011) +#define TIM_DMABase_DCR ((uint16_t)0x0012) + +/* TIM_DMA_Burst_Length */ +#define TIM_DMABurstLength_1Transfer ((uint16_t)0x0000) +#define TIM_DMABurstLength_2Transfers ((uint16_t)0x0100) +#define TIM_DMABurstLength_3Transfers ((uint16_t)0x0200) +#define TIM_DMABurstLength_4Transfers ((uint16_t)0x0300) +#define TIM_DMABurstLength_5Transfers ((uint16_t)0x0400) +#define TIM_DMABurstLength_6Transfers ((uint16_t)0x0500) +#define TIM_DMABurstLength_7Transfers ((uint16_t)0x0600) +#define TIM_DMABurstLength_8Transfers ((uint16_t)0x0700) +#define TIM_DMABurstLength_9Transfers ((uint16_t)0x0800) +#define TIM_DMABurstLength_10Transfers ((uint16_t)0x0900) +#define TIM_DMABurstLength_11Transfers ((uint16_t)0x0A00) +#define TIM_DMABurstLength_12Transfers ((uint16_t)0x0B00) +#define TIM_DMABurstLength_13Transfers ((uint16_t)0x0C00) +#define TIM_DMABurstLength_14Transfers ((uint16_t)0x0D00) +#define TIM_DMABurstLength_15Transfers ((uint16_t)0x0E00) +#define TIM_DMABurstLength_16Transfers ((uint16_t)0x0F00) +#define TIM_DMABurstLength_17Transfers ((uint16_t)0x1000) +#define TIM_DMABurstLength_18Transfers ((uint16_t)0x1100) + +/* TIM_DMA_sources */ +#define TIM_DMA_Update ((uint16_t)0x0100) +#define TIM_DMA_CC1 ((uint16_t)0x0200) +#define TIM_DMA_CC2 ((uint16_t)0x0400) +#define TIM_DMA_CC3 ((uint16_t)0x0800) +#define TIM_DMA_CC4 ((uint16_t)0x1000) +#define TIM_DMA_COM ((uint16_t)0x2000) +#define TIM_DMA_Trigger ((uint16_t)0x4000) + +/* TIM_External_Trigger_Prescaler */ +#define TIM_ExtTRGPSC_OFF ((uint16_t)0x0000) +#define TIM_ExtTRGPSC_DIV2 ((uint16_t)0x1000) +#define TIM_ExtTRGPSC_DIV4 ((uint16_t)0x2000) +#define TIM_ExtTRGPSC_DIV8 ((uint16_t)0x3000) + +/* TIM_Internal_Trigger_Selection */ +#define TIM_TS_ITR0 ((uint16_t)0x0000) +#define TIM_TS_ITR1 ((uint16_t)0x0010) +#define TIM_TS_ITR2 ((uint16_t)0x0020) +#define TIM_TS_ITR3 ((uint16_t)0x0030) +#define TIM_TS_TI1F_ED ((uint16_t)0x0040) +#define TIM_TS_TI1FP1 ((uint16_t)0x0050) +#define TIM_TS_TI2FP2 ((uint16_t)0x0060) +#define TIM_TS_ETRF ((uint16_t)0x0070) + +/* TIM_TIx_External_Clock_Source */ +#define TIM_TIxExternalCLK1Source_TI1 ((uint16_t)0x0050) +#define TIM_TIxExternalCLK1Source_TI2 ((uint16_t)0x0060) +#define TIM_TIxExternalCLK1Source_TI1ED ((uint16_t)0x0040) + +/* TIM_External_Trigger_Polarity */ +#define TIM_ExtTRGPolarity_Inverted ((uint16_t)0x8000) +#define TIM_ExtTRGPolarity_NonInverted ((uint16_t)0x0000) + +/* TIM_Prescaler_Reload_Mode */ +#define TIM_PSCReloadMode_Update ((uint16_t)0x0000) +#define TIM_PSCReloadMode_Immediate ((uint16_t)0x0001) + +/* TIM_Forced_Action */ +#define TIM_ForcedAction_Active ((uint16_t)0x0050) +#define TIM_ForcedAction_InActive ((uint16_t)0x0040) + +/* TIM_Encoder_Mode */ +#define TIM_EncoderMode_TI1 ((uint16_t)0x0001) +#define TIM_EncoderMode_TI2 ((uint16_t)0x0002) +#define TIM_EncoderMode_TI12 ((uint16_t)0x0003) + +/* TIM_Event_Source */ +#define TIM_EventSource_Update ((uint16_t)0x0001) +#define TIM_EventSource_CC1 ((uint16_t)0x0002) +#define TIM_EventSource_CC2 ((uint16_t)0x0004) +#define TIM_EventSource_CC3 ((uint16_t)0x0008) +#define TIM_EventSource_CC4 ((uint16_t)0x0010) +#define TIM_EventSource_COM ((uint16_t)0x0020) +#define TIM_EventSource_Trigger ((uint16_t)0x0040) +#define TIM_EventSource_Break ((uint16_t)0x0080) + +/* TIM_Update_Source */ +#define TIM_UpdateSource_Global ((uint16_t)0x0000) /* Source of update is the counter overflow/underflow \ + or the setting of UG bit, or an update generation \ + through the slave mode controller. */ +#define TIM_UpdateSource_Regular ((uint16_t)0x0001) /* Source of update is counter overflow/underflow. */ + +/* TIM_Output_Compare_Preload_State */ +#define TIM_OCPreload_Enable ((uint16_t)0x0008) +#define TIM_OCPreload_Disable ((uint16_t)0x0000) + +/* TIM_Output_Compare_Fast_State */ +#define TIM_OCFast_Enable ((uint16_t)0x0004) +#define TIM_OCFast_Disable ((uint16_t)0x0000) + +/* TIM_Output_Compare_Clear_State */ +#define TIM_OCClear_Enable ((uint16_t)0x0080) +#define TIM_OCClear_Disable ((uint16_t)0x0000) + +/* TIM_Trigger_Output_Source */ +#define TIM_TRGOSource_Reset ((uint16_t)0x0000) +#define TIM_TRGOSource_Enable ((uint16_t)0x0010) +#define TIM_TRGOSource_Update ((uint16_t)0x0020) +#define TIM_TRGOSource_OC1 ((uint16_t)0x0030) +#define TIM_TRGOSource_OC1Ref ((uint16_t)0x0040) +#define TIM_TRGOSource_OC2Ref ((uint16_t)0x0050) +#define TIM_TRGOSource_OC3Ref ((uint16_t)0x0060) +#define TIM_TRGOSource_OC4Ref ((uint16_t)0x0070) + +/* TIM_Slave_Mode */ +#define TIM_SlaveMode_Reset ((uint16_t)0x0004) +#define TIM_SlaveMode_Gated ((uint16_t)0x0005) +#define TIM_SlaveMode_Trigger ((uint16_t)0x0006) +#define TIM_SlaveMode_External1 ((uint16_t)0x0007) + +/* TIM_Master_Slave_Mode */ +#define TIM_MasterSlaveMode_Enable ((uint16_t)0x0080) +#define TIM_MasterSlaveMode_Disable ((uint16_t)0x0000) + +/* TIM_Flags */ +#define TIM_FLAG_Update ((uint16_t)0x0001) +#define TIM_FLAG_CC1 ((uint16_t)0x0002) +#define TIM_FLAG_CC2 ((uint16_t)0x0004) +#define TIM_FLAG_CC3 ((uint16_t)0x0008) +#define TIM_FLAG_CC4 ((uint16_t)0x0010) +#define TIM_FLAG_COM ((uint16_t)0x0020) +#define TIM_FLAG_Trigger ((uint16_t)0x0040) +#define TIM_FLAG_Break ((uint16_t)0x0080) +#define TIM_FLAG_CC1OF ((uint16_t)0x0200) +#define TIM_FLAG_CC2OF ((uint16_t)0x0400) +#define TIM_FLAG_CC3OF ((uint16_t)0x0800) +#define TIM_FLAG_CC4OF ((uint16_t)0x1000) + +/* TIM_Legacy */ +#define TIM_DMABurstLength_1Byte TIM_DMABurstLength_1Transfer +#define TIM_DMABurstLength_2Bytes TIM_DMABurstLength_2Transfers +#define TIM_DMABurstLength_3Bytes TIM_DMABurstLength_3Transfers +#define TIM_DMABurstLength_4Bytes TIM_DMABurstLength_4Transfers +#define TIM_DMABurstLength_5Bytes TIM_DMABurstLength_5Transfers +#define TIM_DMABurstLength_6Bytes TIM_DMABurstLength_6Transfers +#define TIM_DMABurstLength_7Bytes TIM_DMABurstLength_7Transfers +#define TIM_DMABurstLength_8Bytes TIM_DMABurstLength_8Transfers +#define TIM_DMABurstLength_9Bytes TIM_DMABurstLength_9Transfers +#define TIM_DMABurstLength_10Bytes TIM_DMABurstLength_10Transfers +#define TIM_DMABurstLength_11Bytes TIM_DMABurstLength_11Transfers +#define TIM_DMABurstLength_12Bytes TIM_DMABurstLength_12Transfers +#define TIM_DMABurstLength_13Bytes TIM_DMABurstLength_13Transfers +#define TIM_DMABurstLength_14Bytes TIM_DMABurstLength_14Transfers +#define TIM_DMABurstLength_15Bytes TIM_DMABurstLength_15Transfers +#define TIM_DMABurstLength_16Bytes TIM_DMABurstLength_16Transfers +#define TIM_DMABurstLength_17Bytes TIM_DMABurstLength_17Transfers +#define TIM_DMABurstLength_18Bytes TIM_DMABurstLength_18Transfers + +void TIM_DeInit(TIM_TypeDef *TIMx); +void TIM_TimeBaseInit(TIM_TypeDef *TIMx, TIM_TimeBaseInitTypeDef *TIM_TimeBaseInitStruct); +void TIM_OC1Init(TIM_TypeDef *TIMx, TIM_OCInitTypeDef *TIM_OCInitStruct); +void TIM_OC2Init(TIM_TypeDef *TIMx, TIM_OCInitTypeDef *TIM_OCInitStruct); +void TIM_OC3Init(TIM_TypeDef *TIMx, TIM_OCInitTypeDef *TIM_OCInitStruct); +void TIM_OC4Init(TIM_TypeDef *TIMx, TIM_OCInitTypeDef *TIM_OCInitStruct); +void TIM_ICInit(TIM_TypeDef *TIMx, TIM_ICInitTypeDef *TIM_ICInitStruct); +void TIM_PWMIConfig(TIM_TypeDef *TIMx, TIM_ICInitTypeDef *TIM_ICInitStruct); +void TIM_BDTRConfig(TIM_TypeDef *TIMx, TIM_BDTRInitTypeDef *TIM_BDTRInitStruct); +void TIM_TimeBaseStructInit(TIM_TimeBaseInitTypeDef *TIM_TimeBaseInitStruct); +void TIM_OCStructInit(TIM_OCInitTypeDef *TIM_OCInitStruct); +void TIM_ICStructInit(TIM_ICInitTypeDef *TIM_ICInitStruct); +void TIM_BDTRStructInit(TIM_BDTRInitTypeDef *TIM_BDTRInitStruct); +void TIM_Cmd(TIM_TypeDef *TIMx, FunctionalState NewState); +void TIM_CtrlPWMOutputs(TIM_TypeDef *TIMx, FunctionalState NewState); +void TIM_ITConfig(TIM_TypeDef *TIMx, uint16_t TIM_IT, FunctionalState NewState); +void TIM_GenerateEvent(TIM_TypeDef *TIMx, uint16_t TIM_EventSource); +void TIM_DMAConfig(TIM_TypeDef *TIMx, uint16_t TIM_DMABase, uint16_t TIM_DMABurstLength); +void TIM_DMACmd(TIM_TypeDef *TIMx, uint16_t TIM_DMASource, FunctionalState NewState); +void TIM_InternalClockConfig(TIM_TypeDef *TIMx); +void TIM_ITRxExternalClockConfig(TIM_TypeDef *TIMx, uint16_t TIM_InputTriggerSource); +void TIM_TIxExternalClockConfig(TIM_TypeDef *TIMx, uint16_t TIM_TIxExternalCLKSource, + uint16_t TIM_ICPolarity, uint16_t ICFilter); +void TIM_ETRClockMode1Config(TIM_TypeDef *TIMx, uint16_t TIM_ExtTRGPrescaler, uint16_t TIM_ExtTRGPolarity, + uint16_t ExtTRGFilter); +void TIM_ETRClockMode2Config(TIM_TypeDef *TIMx, uint16_t TIM_ExtTRGPrescaler, + uint16_t TIM_ExtTRGPolarity, uint16_t ExtTRGFilter); +void TIM_ETRConfig(TIM_TypeDef *TIMx, uint16_t TIM_ExtTRGPrescaler, uint16_t TIM_ExtTRGPolarity, + uint16_t ExtTRGFilter); +void TIM_PrescalerConfig(TIM_TypeDef *TIMx, uint16_t Prescaler, uint16_t TIM_PSCReloadMode); +void TIM_CounterModeConfig(TIM_TypeDef *TIMx, uint16_t TIM_CounterMode); +void TIM_SelectInputTrigger(TIM_TypeDef *TIMx, uint16_t TIM_InputTriggerSource); +void TIM_EncoderInterfaceConfig(TIM_TypeDef *TIMx, uint16_t TIM_EncoderMode, + uint16_t TIM_IC1Polarity, uint16_t TIM_IC2Polarity); +void TIM_ForcedOC1Config(TIM_TypeDef *TIMx, uint16_t TIM_ForcedAction); +void TIM_ForcedOC2Config(TIM_TypeDef *TIMx, uint16_t TIM_ForcedAction); +void TIM_ForcedOC3Config(TIM_TypeDef *TIMx, uint16_t TIM_ForcedAction); +void TIM_ForcedOC4Config(TIM_TypeDef *TIMx, uint16_t TIM_ForcedAction); +void TIM_ARRPreloadConfig(TIM_TypeDef *TIMx, FunctionalState NewState); +void TIM_SelectCOM(TIM_TypeDef *TIMx, FunctionalState NewState); +void TIM_SelectCCDMA(TIM_TypeDef *TIMx, FunctionalState NewState); +void TIM_CCPreloadControl(TIM_TypeDef *TIMx, FunctionalState NewState); +void TIM_OC1PreloadConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCPreload); +void TIM_OC2PreloadConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCPreload); +void TIM_OC3PreloadConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCPreload); +void TIM_OC4PreloadConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCPreload); +void TIM_OC1FastConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCFast); +void TIM_OC2FastConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCFast); +void TIM_OC3FastConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCFast); +void TIM_OC4FastConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCFast); +void TIM_ClearOC1Ref(TIM_TypeDef *TIMx, uint16_t TIM_OCClear); +void TIM_ClearOC2Ref(TIM_TypeDef *TIMx, uint16_t TIM_OCClear); +void TIM_ClearOC3Ref(TIM_TypeDef *TIMx, uint16_t TIM_OCClear); +void TIM_ClearOC4Ref(TIM_TypeDef *TIMx, uint16_t TIM_OCClear); +void TIM_OC1PolarityConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCPolarity); +void TIM_OC1NPolarityConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCNPolarity); +void TIM_OC2PolarityConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCPolarity); +void TIM_OC2NPolarityConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCNPolarity); +void TIM_OC3PolarityConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCPolarity); +void TIM_OC3NPolarityConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCNPolarity); +void TIM_OC4PolarityConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCPolarity); +void TIM_CCxCmd(TIM_TypeDef *TIMx, uint16_t TIM_Channel, uint16_t TIM_CCx); +void TIM_CCxNCmd(TIM_TypeDef *TIMx, uint16_t TIM_Channel, uint16_t TIM_CCxN); +void TIM_SelectOCxM(TIM_TypeDef *TIMx, uint16_t TIM_Channel, uint16_t TIM_OCMode); +void TIM_UpdateDisableConfig(TIM_TypeDef *TIMx, FunctionalState NewState); +void TIM_UpdateRequestConfig(TIM_TypeDef *TIMx, uint16_t TIM_UpdateSource); +void TIM_SelectHallSensor(TIM_TypeDef *TIMx, FunctionalState NewState); +void TIM_SelectOnePulseMode(TIM_TypeDef *TIMx, uint16_t TIM_OPMode); +void TIM_SelectOutputTrigger(TIM_TypeDef *TIMx, uint16_t TIM_TRGOSource); +void TIM_SelectSlaveMode(TIM_TypeDef *TIMx, uint16_t TIM_SlaveMode); +void TIM_SelectMasterSlaveMode(TIM_TypeDef *TIMx, uint16_t TIM_MasterSlaveMode); +void TIM_SetCounter(TIM_TypeDef *TIMx, uint16_t Counter); +void TIM_SetAutoreload(TIM_TypeDef *TIMx, uint16_t Autoreload); +void TIM_SetCompare1(TIM_TypeDef *TIMx, uint16_t Compare1); +void TIM_SetCompare2(TIM_TypeDef *TIMx, uint16_t Compare2); +void TIM_SetCompare3(TIM_TypeDef *TIMx, uint16_t Compare3); +void TIM_SetCompare4(TIM_TypeDef *TIMx, uint16_t Compare4); +void TIM_SetIC1Prescaler(TIM_TypeDef *TIMx, uint16_t TIM_ICPSC); +void TIM_SetIC2Prescaler(TIM_TypeDef *TIMx, uint16_t TIM_ICPSC); +void TIM_SetIC3Prescaler(TIM_TypeDef *TIMx, uint16_t TIM_ICPSC); +void TIM_SetIC4Prescaler(TIM_TypeDef *TIMx, uint16_t TIM_ICPSC); +void TIM_SetClockDivision(TIM_TypeDef *TIMx, uint16_t TIM_CKD); +uint16_t TIM_GetCapture1(TIM_TypeDef *TIMx); +uint16_t TIM_GetCapture2(TIM_TypeDef *TIMx); +uint16_t TIM_GetCapture3(TIM_TypeDef *TIMx); +uint16_t TIM_GetCapture4(TIM_TypeDef *TIMx); +uint16_t TIM_GetCounter(TIM_TypeDef *TIMx); +uint16_t TIM_GetPrescaler(TIM_TypeDef *TIMx); +FlagStatus TIM_GetFlagStatus(TIM_TypeDef *TIMx, uint16_t TIM_FLAG); +void TIM_ClearFlag(TIM_TypeDef *TIMx, uint16_t TIM_FLAG); +ITStatus TIM_GetITStatus(TIM_TypeDef *TIMx, uint16_t TIM_IT); +void TIM_ClearITPendingBit(TIM_TypeDef *TIMx, uint16_t TIM_IT); + +#ifdef __cplusplus +} +#endif + +#endif /*__CH32V10x_TIM_H */ diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_usart.h b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_usart.h new file mode 100644 index 0000000000..0e2c88553f --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_usart.h @@ -0,0 +1,185 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_usart.h + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file contains all the functions prototypes for the + * USART firmware library. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *******************************************************************************/ +#ifndef __CH32V10x_USART_H +#define __CH32V10x_USART_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "ch32v10x.h" + +/* USART Init Structure definition */ +typedef struct +{ + uint32_t USART_BaudRate; /* This member configures the USART communication baud rate. + The baud rate is computed using the following formula: + - IntegerDivider = ((PCLKx) / (16 * (USART_InitStruct->USART_BaudRate))) + - FractionalDivider = ((IntegerDivider - ((u32) IntegerDivider)) * 16) + 0.5 */ + + uint16_t USART_WordLength; /* Specifies the number of data bits transmitted or received in a frame. + This parameter can be a value of @ref USART_Word_Length */ + + uint16_t USART_StopBits; /* Specifies the number of stop bits transmitted. + This parameter can be a value of @ref USART_Stop_Bits */ + + uint16_t USART_Parity; /* Specifies the parity mode. + This parameter can be a value of @ref USART_Parity + @note When parity is enabled, the computed parity is inserted + at the MSB position of the transmitted data (9th bit when + the word length is set to 9 data bits; 8th bit when the + word length is set to 8 data bits). */ + + uint16_t USART_Mode; /* Specifies wether the Receive or Transmit mode is enabled or disabled. + This parameter can be a value of @ref USART_Mode */ + + uint16_t USART_HardwareFlowControl; /* Specifies wether the hardware flow control mode is enabled + or disabled. + This parameter can be a value of @ref USART_Hardware_Flow_Control */ +} USART_InitTypeDef; + +/* USART Clock Init Structure definition */ +typedef struct +{ + uint16_t USART_Clock; /* Specifies whether the USART clock is enabled or disabled. + This parameter can be a value of @ref USART_Clock */ + + uint16_t USART_CPOL; /* Specifies the steady state value of the serial clock. + This parameter can be a value of @ref USART_Clock_Polarity */ + + uint16_t USART_CPHA; /* Specifies the clock transition on which the bit capture is made. + This parameter can be a value of @ref USART_Clock_Phase */ + + uint16_t USART_LastBit; /* Specifies whether the clock pulse corresponding to the last transmitted + data bit (MSB) has to be output on the SCLK pin in synchronous mode. + This parameter can be a value of @ref USART_Last_Bit */ +} USART_ClockInitTypeDef; + +/* USART_Word_Length */ +#define USART_WordLength_8b ((uint16_t)0x0000) +#define USART_WordLength_9b ((uint16_t)0x1000) + +/* USART_Stop_Bits */ +#define USART_StopBits_1 ((uint16_t)0x0000) +#define USART_StopBits_0_5 ((uint16_t)0x1000) +#define USART_StopBits_2 ((uint16_t)0x2000) +#define USART_StopBits_1_5 ((uint16_t)0x3000) + +/* USART_Parity */ +#define USART_Parity_No ((uint16_t)0x0000) +#define USART_Parity_Even ((uint16_t)0x0400) +#define USART_Parity_Odd ((uint16_t)0x0600) + +/* USART_Mode */ +#define USART_Mode_Rx ((uint16_t)0x0004) +#define USART_Mode_Tx ((uint16_t)0x0008) + +/* USART_Hardware_Flow_Control */ +#define USART_HardwareFlowControl_None ((uint16_t)0x0000) +#define USART_HardwareFlowControl_RTS ((uint16_t)0x0100) +#define USART_HardwareFlowControl_CTS ((uint16_t)0x0200) +#define USART_HardwareFlowControl_RTS_CTS ((uint16_t)0x0300) + +/* USART_Clock */ +#define USART_Clock_Disable ((uint16_t)0x0000) +#define USART_Clock_Enable ((uint16_t)0x0800) + +/* USART_Clock_Polarity */ +#define USART_CPOL_Low ((uint16_t)0x0000) +#define USART_CPOL_High ((uint16_t)0x0400) + +/* USART_Clock_Phase */ +#define USART_CPHA_1Edge ((uint16_t)0x0000) +#define USART_CPHA_2Edge ((uint16_t)0x0200) + +/* USART_Last_Bit */ +#define USART_LastBit_Disable ((uint16_t)0x0000) +#define USART_LastBit_Enable ((uint16_t)0x0100) + +/* USART_Interrupt_definition */ +#define USART_IT_PE ((uint16_t)0x0028) +#define USART_IT_TXE ((uint16_t)0x0727) +#define USART_IT_TC ((uint16_t)0x0626) +#define USART_IT_RXNE ((uint16_t)0x0525) +#define USART_IT_ORE_RX ((uint16_t)0x0325) +#define USART_IT_IDLE ((uint16_t)0x0424) +#define USART_IT_LBD ((uint16_t)0x0846) +#define USART_IT_CTS ((uint16_t)0x096A) +#define USART_IT_ERR ((uint16_t)0x0060) +#define USART_IT_ORE_ER ((uint16_t)0x0360) +#define USART_IT_NE ((uint16_t)0x0260) +#define USART_IT_FE ((uint16_t)0x0160) + +#define USART_IT_ORE USART_IT_ORE_ER + +/* USART_DMA_Requests */ +#define USART_DMAReq_Tx ((uint16_t)0x0080) +#define USART_DMAReq_Rx ((uint16_t)0x0040) + +/* USART_WakeUp_methods */ +#define USART_WakeUp_IdleLine ((uint16_t)0x0000) +#define USART_WakeUp_AddressMark ((uint16_t)0x0800) + +/* USART_LIN_Break_Detection_Length */ +#define USART_LINBreakDetectLength_10b ((uint16_t)0x0000) +#define USART_LINBreakDetectLength_11b ((uint16_t)0x0020) + +/* USART_IrDA_Low_Power */ +#define USART_IrDAMode_LowPower ((uint16_t)0x0004) +#define USART_IrDAMode_Normal ((uint16_t)0x0000) + +/* USART_Flags */ +#define USART_FLAG_CTS ((uint16_t)0x0200) +#define USART_FLAG_LBD ((uint16_t)0x0100) +#define USART_FLAG_TXE ((uint16_t)0x0080) +#define USART_FLAG_TC ((uint16_t)0x0040) +#define USART_FLAG_RXNE ((uint16_t)0x0020) +#define USART_FLAG_IDLE ((uint16_t)0x0010) +#define USART_FLAG_ORE ((uint16_t)0x0008) +#define USART_FLAG_NE ((uint16_t)0x0004) +#define USART_FLAG_FE ((uint16_t)0x0002) +#define USART_FLAG_PE ((uint16_t)0x0001) + +void USART_DeInit(USART_TypeDef *USARTx); +void USART_Init(USART_TypeDef *USARTx, USART_InitTypeDef *USART_InitStruct); +void USART_StructInit(USART_InitTypeDef *USART_InitStruct); +void USART_ClockInit(USART_TypeDef *USARTx, USART_ClockInitTypeDef *USART_ClockInitStruct); +void USART_ClockStructInit(USART_ClockInitTypeDef *USART_ClockInitStruct); +void USART_Cmd(USART_TypeDef *USARTx, FunctionalState NewState); +void USART_ITConfig(USART_TypeDef *USARTx, uint16_t USART_IT, FunctionalState NewState); +void USART_DMACmd(USART_TypeDef *USARTx, uint16_t USART_DMAReq, FunctionalState NewState); +void USART_SetAddress(USART_TypeDef *USARTx, uint8_t USART_Address); +void USART_WakeUpConfig(USART_TypeDef *USARTx, uint16_t USART_WakeUp); +void USART_ReceiverWakeUpCmd(USART_TypeDef *USARTx, FunctionalState NewState); +void USART_LINBreakDetectLengthConfig(USART_TypeDef *USARTx, uint16_t USART_LINBreakDetectLength); +void USART_LINCmd(USART_TypeDef *USARTx, FunctionalState NewState); +void USART_SendData(USART_TypeDef *USARTx, uint16_t Data); +uint16_t USART_ReceiveData(USART_TypeDef *USARTx); +void USART_SendBreak(USART_TypeDef *USARTx); +void USART_SetGuardTime(USART_TypeDef *USARTx, uint8_t USART_GuardTime); +void USART_SetPrescaler(USART_TypeDef *USARTx, uint8_t USART_Prescaler); +void USART_SmartCardCmd(USART_TypeDef *USARTx, FunctionalState NewState); +void USART_SmartCardNACKCmd(USART_TypeDef *USARTx, FunctionalState NewState); +void USART_HalfDuplexCmd(USART_TypeDef *USARTx, FunctionalState NewState); +void USART_OverSampling8Cmd(USART_TypeDef *USARTx, FunctionalState NewState); +void USART_OneBitMethodCmd(USART_TypeDef *USARTx, FunctionalState NewState); +void USART_IrDAConfig(USART_TypeDef *USARTx, uint16_t USART_IrDAMode); +void USART_IrDACmd(USART_TypeDef *USARTx, FunctionalState NewState); +FlagStatus USART_GetFlagStatus(USART_TypeDef *USARTx, uint16_t USART_FLAG); +void USART_ClearFlag(USART_TypeDef *USARTx, uint16_t USART_FLAG); +ITStatus USART_GetITStatus(USART_TypeDef *USARTx, uint16_t USART_IT); +void USART_ClearITPendingBit(USART_TypeDef *USARTx, uint16_t USART_IT); + +#ifdef __cplusplus +} +#endif + +#endif /* __CH32V10x_USART_H */ diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_usb.h b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_usb.h new file mode 100644 index 0000000000..4df5c69202 --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_usb.h @@ -0,0 +1,700 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_usb.h + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file contains all the functions prototypes for the USB + * firmware library. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *******************************************************************************/ +#ifndef __CH32V10x_USB_H +#define __CH32V10x_USB_H + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef NULL + #define NULL 0 +#endif + +#ifndef VOID + #define VOID void +#endif +#ifndef CONST + #define CONST const +#endif +#ifndef BOOL +typedef unsigned char BOOL; +#endif +#ifndef BOOLEAN +typedef unsigned char BOOLEAN; +#endif +#ifndef CHAR +typedef char CHAR; +#endif +#ifndef INT8 +typedef char INT8; +#endif +#ifndef INT16 +typedef short INT16; +#endif +#ifndef INT32 +typedef long INT32; +#endif +#ifndef UINT8 +typedef unsigned char UINT8; +#endif +#ifndef UINT16 +typedef unsigned short UINT16; +#endif +#ifndef UINT32 +typedef unsigned long UINT32; +#endif +#ifndef UINT8V +typedef unsigned char volatile UINT8V; +#endif +#ifndef UINT16V +typedef unsigned short volatile UINT16V; +#endif +#ifndef UINT32V +typedef unsigned long volatile UINT32V; +#endif + +#ifndef PVOID +typedef void *PVOID; +#endif +#ifndef PCHAR +typedef char *PCHAR; +#endif +#ifndef PCHAR +typedef const char *PCCHAR; +#endif +#ifndef PINT8 +typedef char *PINT8; +#endif +#ifndef PINT16 +typedef short *PINT16; +#endif +#ifndef PINT32 +typedef long *PINT32; +#endif +#ifndef PUINT8 +typedef unsigned char *PUINT8; +#endif +#ifndef PUINT16 +typedef unsigned short *PUINT16; +#endif +#ifndef PUINT32 +typedef unsigned long *PUINT32; +#endif +#ifndef PUINT8V +typedef volatile unsigned char *PUINT8V; +#endif +#ifndef PUINT16V +typedef volatile unsigned short *PUINT16V; +#endif +#ifndef PUINT32V +typedef volatile unsigned long *PUINT32V; +#endif + +/******************************************************************************/ +/* Peripheral memory map */ +/******************************************************************************/ +/* USB */ +#define R32_USB_CONTROL (*((PUINT32V)(0x40023400))) // USB control & interrupt enable & device address +#define R8_USB_CTRL (*((PUINT8V)(0x40023400))) // USB base control +#define RB_UC_HOST_MODE 0x80 // enable USB host mode: 0=device mode, 1=host mode +#define RB_UC_LOW_SPEED 0x40 // enable USB low speed: 0=12Mbps, 1=1.5Mbps +#define RB_UC_DEV_PU_EN 0x20 // USB device enable and internal pullup resistance enable +#define RB_UC_SYS_CTRL1 0x20 // USB system control high bit +#define RB_UC_SYS_CTRL0 0x10 // USB system control low bit +#define MASK_UC_SYS_CTRL 0x30 // bit mask of USB system control +// bUC_HOST_MODE & bUC_SYS_CTRL1 & bUC_SYS_CTRL0: USB system control +// 0 00: disable USB device and disable internal pullup resistance +// 0 01: enable USB device and disable internal pullup resistance, need external pullup resistance +// 0 1x: enable USB device and enable internal pullup resistance +// 1 00: enable USB host and normal status +// 1 01: enable USB host and force UDP/UDM output SE0 state +// 1 10: enable USB host and force UDP/UDM output J state +// 1 11: enable USB host and force UDP/UDM output resume or K state +#define RB_UC_INT_BUSY 0x08 // enable automatic responding busy for device mode or automatic pause for host mode during interrupt flag UIF_TRANSFER valid +#define RB_UC_RESET_SIE 0x04 // force reset USB SIE, need software clear +#define RB_UC_CLR_ALL 0x02 // force clear FIFO and count of USB +#define RB_UC_DMA_EN 0x01 // DMA enable and DMA interrupt enable for USB + +#define R8_UDEV_CTRL (*((PUINT8V)(0x40023401))) // USB device physical prot control +#define RB_UD_PD_DIS 0x80 // disable USB UDP/UDM pulldown resistance: 0=enable pulldown, 1=disable +#define RB_UD_DP_PIN 0x20 // ReadOnly: indicate current UDP pin level +#define RB_UD_DM_PIN 0x10 // ReadOnly: indicate current UDM pin level +#define RB_UD_LOW_SPEED 0x04 // enable USB physical port low speed: 0=full speed, 1=low speed +#define RB_UD_GP_BIT 0x02 // general purpose bit +#define RB_UD_PORT_EN 0x01 // enable USB physical port I/O: 0=disable, 1=enable + +#define R8_UHOST_CTRL R8_UDEV_CTRL // USB host physical prot control +#define RB_UH_PD_DIS 0x80 // disable USB UDP/UDM pulldown resistance: 0=enable pulldown, 1=disable +#define RB_UH_DP_PIN 0x20 // ReadOnly: indicate current UDP pin level +#define RB_UH_DM_PIN 0x10 // ReadOnly: indicate current UDM pin level +#define RB_UH_LOW_SPEED 0x04 // enable USB port low speed: 0=full speed, 1=low speed +#define RB_UH_BUS_RESET 0x02 // control USB bus reset: 0=normal, 1=force bus reset +#define RB_UH_PORT_EN 0x01 // enable USB port: 0=disable, 1=enable port, automatic disabled if USB device detached + +#define R8_USB_INT_EN (*((PUINT8V)(0x40023402))) // USB interrupt enable +#define RB_UIE_DEV_SOF 0x80 // enable interrupt for SOF received for USB device mode +#define RB_UIE_DEV_NAK 0x40 // enable interrupt for NAK responded for USB device mode +#define RB_UIE_FIFO_OV 0x10 // enable interrupt for FIFO overflow +#define RB_UIE_HST_SOF 0x08 // enable interrupt for host SOF timer action for USB host mode +#define RB_UIE_SUSPEND 0x04 // enable interrupt for USB suspend or resume event +#define RB_UIE_TRANSFER 0x02 // enable interrupt for USB transfer completion +#define RB_UIE_DETECT 0x01 // enable interrupt for USB device detected event for USB host mode +#define RB_UIE_BUS_RST 0x01 // enable interrupt for USB bus reset event for USB device mode + +#define R8_USB_DEV_AD (*((PUINT8V)(0x40023403))) // USB device address +#define RB_UDA_GP_BIT 0x80 // general purpose bit +#define MASK_USB_ADDR 0x7F // bit mask for USB device address + +#define R32_USB_STATUS (*((PUINT32V)(0x40023404))) // USB miscellaneous status & interrupt flag & interrupt status +#define R8_USB_MIS_ST (*((PUINT8V)(0x40023405))) // USB miscellaneous status +#define RB_UMS_SOF_PRES 0x80 // RO, indicate host SOF timer presage status +#define RB_UMS_SOF_ACT 0x40 // RO, indicate host SOF timer action status for USB host +#define RB_UMS_SIE_FREE 0x20 // RO, indicate USB SIE free status +#define RB_UMS_R_FIFO_RDY 0x10 // RO, indicate USB receiving FIFO ready status (not empty) +#define RB_UMS_BUS_RESET 0x08 // RO, indicate USB bus reset status +#define RB_UMS_SUSPEND 0x04 // RO, indicate USB suspend status +#define RB_UMS_DM_LEVEL 0x02 // RO, indicate UDM level saved at device attached to USB host +#define RB_UMS_DEV_ATTACH 0x01 // RO, indicate device attached status on USB host + +#define R8_USB_INT_FG (*((PUINT8V)(0x40023406))) // USB interrupt flag +#define RB_U_IS_NAK 0x80 // RO, indicate current USB transfer is NAK received +#define RB_U_TOG_OK 0x40 // RO, indicate current USB transfer toggle is OK +#define RB_U_SIE_FREE 0x20 // RO, indicate USB SIE free status +#define RB_UIF_FIFO_OV 0x10 // FIFO overflow interrupt flag for USB, direct bit address clear or write 1 to clear +#define RB_UIF_HST_SOF 0x08 // host SOF timer interrupt flag for USB host, direct bit address clear or write 1 to clear +#define RB_UIF_SUSPEND 0x04 // USB suspend or resume event interrupt flag, direct bit address clear or write 1 to clear +#define RB_UIF_TRANSFER 0x02 // USB transfer completion interrupt flag, direct bit address clear or write 1 to clear +#define RB_UIF_DETECT 0x01 // device detected event interrupt flag for USB host mode, direct bit address clear or write 1 to clear +#define RB_UIF_BUS_RST 0x01 // bus reset event interrupt flag for USB device mode, direct bit address clear or write 1 to clear + +#define R8_USB_INT_ST (*((PUINT8V)(0x40023407))) // USB interrupt status +#define RB_UIS_IS_NAK 0x80 // RO, indicate current USB transfer is NAK received for USB device mode +#define RB_UIS_TOG_OK 0x40 // RO, indicate current USB transfer toggle is OK +#define RB_UIS_TOKEN1 0x20 // RO, current token PID code bit 1 received for USB device mode +#define RB_UIS_TOKEN0 0x10 // RO, current token PID code bit 0 received for USB device mode +#define MASK_UIS_TOKEN 0x30 // RO, bit mask of current token PID code received for USB device mode +#define UIS_TOKEN_OUT 0x00 +#define UIS_TOKEN_SOF 0x10 +#define UIS_TOKEN_IN 0x20 +#define UIS_TOKEN_SETUP 0x30 +// bUIS_TOKEN1 & bUIS_TOKEN0: current token PID code received for USB device mode +// 00: OUT token PID received +// 01: SOF token PID received +// 10: IN token PID received +// 11: SETUP token PID received +#define MASK_UIS_ENDP 0x0F // RO, bit mask of current transfer endpoint number for USB device mode +#define MASK_UIS_H_RES 0x0F // RO, bit mask of current transfer handshake response for USB host mode: 0000=no response, time out from device, others=handshake response PID received + +#define R8_USB_RX_LEN (*((PUINT8V)(0x40023408))) // USB receiving length +#define R32_USB_BUF_MODE (*((PUINT32V)(0x4002340c))) // USB endpoint buffer mode +#define R8_UEP4_1_MOD (*((PUINT8V)(0x4002340c))) // endpoint 4/1 mode +#define RB_UEP1_RX_EN 0x80 // enable USB endpoint 1 receiving (OUT) +#define RB_UEP1_TX_EN 0x40 // enable USB endpoint 1 transmittal (IN) +#define RB_UEP1_BUF_MOD 0x10 // buffer mode of USB endpoint 1 +// bUEPn_RX_EN & bUEPn_TX_EN & bUEPn_BUF_MOD: USB endpoint 1/2/3 buffer mode, buffer start address is UEPn_DMA +// 0 0 x: disable endpoint and disable buffer +// 1 0 0: 64 bytes buffer for receiving (OUT endpoint) +// 1 0 1: dual 64 bytes buffer by toggle bit bUEP_R_TOG selection for receiving (OUT endpoint), total=128bytes +// 0 1 0: 64 bytes buffer for transmittal (IN endpoint) +// 0 1 1: dual 64 bytes buffer by toggle bit bUEP_T_TOG selection for transmittal (IN endpoint), total=128bytes +// 1 1 0: 64 bytes buffer for receiving (OUT endpoint) + 64 bytes buffer for transmittal (IN endpoint), total=128bytes +// 1 1 1: dual 64 bytes buffer by bUEP_R_TOG selection for receiving (OUT endpoint) + dual 64 bytes buffer by bUEP_T_TOG selection for transmittal (IN endpoint), total=256bytes +#define RB_UEP4_RX_EN 0x08 // enable USB endpoint 4 receiving (OUT) +#define RB_UEP4_TX_EN 0x04 // enable USB endpoint 4 transmittal (IN) +// bUEP4_RX_EN & bUEP4_TX_EN: USB endpoint 4 buffer mode, buffer start address is UEP0_DMA +// 0 0: single 64 bytes buffer for endpoint 0 receiving & transmittal (OUT & IN endpoint) +// 1 0: single 64 bytes buffer for endpoint 0 receiving & transmittal (OUT & IN endpoint) + 64 bytes buffer for endpoint 4 receiving (OUT endpoint), total=128bytes +// 0 1: single 64 bytes buffer for endpoint 0 receiving & transmittal (OUT & IN endpoint) + 64 bytes buffer for endpoint 4 transmittal (IN endpoint), total=128bytes +// 1 1: single 64 bytes buffer for endpoint 0 receiving & transmittal (OUT & IN endpoint) +// + 64 bytes buffer for endpoint 4 receiving (OUT endpoint) + 64 bytes buffer for endpoint 4 transmittal (IN endpoint), total=192bytes + +#define R8_UEP2_3_MOD (*((PUINT8V)(0x4002340d))) // endpoint 2/3 mode +#define RB_UEP3_RX_EN 0x80 // enable USB endpoint 3 receiving (OUT) +#define RB_UEP3_TX_EN 0x40 // enable USB endpoint 3 transmittal (IN) +#define RB_UEP3_BUF_MOD 0x10 // buffer mode of USB endpoint 3 +#define RB_UEP2_RX_EN 0x08 // enable USB endpoint 2 receiving (OUT) +#define RB_UEP2_TX_EN 0x04 // enable USB endpoint 2 transmittal (IN) +#define RB_UEP2_BUF_MOD 0x01 // buffer mode of USB endpoint 2 + +#define R8_UH_EP_MOD R8_UEP2_3_MOD //host endpoint mode +#define RB_UH_EP_TX_EN 0x40 // enable USB host OUT endpoint transmittal +#define RB_UH_EP_TBUF_MOD 0x10 // buffer mode of USB host OUT endpoint +// bUH_EP_TX_EN & bUH_EP_TBUF_MOD: USB host OUT endpoint buffer mode, buffer start address is UH_TX_DMA +// 0 x: disable endpoint and disable buffer +// 1 0: 64 bytes buffer for transmittal (OUT endpoint) +// 1 1: dual 64 bytes buffer by toggle bit bUH_T_TOG selection for transmittal (OUT endpoint), total=128bytes +#define RB_UH_EP_RX_EN 0x08 // enable USB host IN endpoint receiving +#define RB_UH_EP_RBUF_MOD 0x01 // buffer mode of USB host IN endpoint +// bUH_EP_RX_EN & bUH_EP_RBUF_MOD: USB host IN endpoint buffer mode, buffer start address is UH_RX_DMA +// 0 x: disable endpoint and disable buffer +// 1 0: 64 bytes buffer for receiving (IN endpoint) +// 1 1: dual 64 bytes buffer by toggle bit bUH_R_TOG selection for receiving (IN endpoint), total=128bytes + +#define R8_UEP5_6_MOD (*((PUINT8V)(0x4002340e))) // endpoint 5/6 mode +#define RB_UEP6_RX_EN 0x80 // enable USB endpoint 6 receiving (OUT) +#define RB_UEP6_TX_EN 0x40 // enable USB endpoint 6 transmittal (IN) +#define RB_UEP6_BUF_MOD 0x10 // buffer mode of USB endpoint 6 +#define RB_UEP5_RX_EN 0x08 // enable USB endpoint 5 receiving (OUT) +#define RB_UEP5_TX_EN 0x04 // enable USB endpoint 5 transmittal (IN) +#define RB_UEP5_BUF_MOD 0x01 // buffer mode of USB endpoint 5 + +#define R8_UEP7_MOD (*((PUINT8V)(0x4002340f))) // endpoint 7 mode +#define RB_UEP7_RX_EN 0x08 // enable USB endpoint 7 receiving (OUT) +#define RB_UEP7_TX_EN 0x04 // enable USB endpoint 7 transmittal (IN) +#define RB_UEP7_BUF_MOD 0x01 // buffer mode of USB endpoint 7 + +#define R16_UEP0_DMA (*((PUINT16V)(0x40023410))) // endpoint 0 DMA buffer address +#define R16_UEP1_DMA (*((PUINT16V)(0x40023414))) // endpoint 1 DMA buffer address +#define R16_UEP2_DMA (*((PUINT16V)(0x40023418))) // endpoint 2 DMA buffer address +#define R16_UH_RX_DMA R16_UEP2_DMA // host rx endpoint buffer high address +#define R16_UEP3_DMA (*((PUINT16V)(0x4002341c))) // endpoint 3 DMA buffer address + +#define R16_UEP4_DMA (*((PUINT16V)(0x40023420))) // endpoint 4 DMA buffer address +#define R16_UEP5_DMA (*((PUINT16V)(0x40023424))) // endpoint 5 DMA buffer address +#define R16_UEP6_DMA (*((PUINT16V)(0x40023428))) // endpoint 6 DMA buffer address +#define R16_UEP7_DMA (*((PUINT16V)(0x4002342c))) // endpoint 7 DMA buffer address + +#define R16_UH_TX_DMA R16_UEP3_DMA // host tx endpoint buffer high address +#define R32_USB_EP0_CTRL (*((PUINT32V)(0x40023430))) // endpoint 0 control & transmittal length +#define R8_UEP0_T_LEN (*((PUINT8V)(0x40023430))) // endpoint 0 transmittal length +#define R8_UEP0_CTRL (*((PUINT8V)(0x40023432))) // endpoint 0 control +#define R32_USB_EP1_CTRL (*((PUINT32V)(0x40023434))) // endpoint 1 control & transmittal length +#define R8_UEP1_T_LEN (*((PUINT8V)(0x40023434))) // endpoint 1 transmittal length +#define R8_UEP1_CTRL (*((PUINT8V)(0x40023436))) // endpoint 1 control +#define RB_UEP_R_TOG 0x80 // expected data toggle flag of USB endpoint X receiving (OUT): 0=DATA0, 1=DATA1 +#define RB_UEP_T_TOG 0x40 // prepared data toggle flag of USB endpoint X transmittal (IN): 0=DATA0, 1=DATA1 +#define RB_UEP_AUTO_TOG 0x10 // enable automatic toggle after successful transfer completion on endpoint 1/2/3: 0=manual toggle, 1=automatic toggle +#define RB_UEP_R_RES1 0x08 // handshake response type high bit for USB endpoint X receiving (OUT) +#define RB_UEP_R_RES0 0x04 // handshake response type low bit for USB endpoint X receiving (OUT) +#define MASK_UEP_R_RES 0x0C // bit mask of handshake response type for USB endpoint X receiving (OUT) +#define UEP_R_RES_ACK 0x00 +#define UEP_R_RES_TOUT 0x04 +#define UEP_R_RES_NAK 0x08 +#define UEP_R_RES_STALL 0x0C +// RB_UEP_R_RES1 & RB_UEP_R_RES0: handshake response type for USB endpoint X receiving (OUT) +// 00: ACK (ready) +// 01: no response, time out to host, for non-zero endpoint isochronous transactions +// 10: NAK (busy) +// 11: STALL (error) +#define RB_UEP_T_RES1 0x02 // handshake response type high bit for USB endpoint X transmittal (IN) +#define RB_UEP_T_RES0 0x01 // handshake response type low bit for USB endpoint X transmittal (IN) +#define MASK_UEP_T_RES 0x03 // bit mask of handshake response type for USB endpoint X transmittal (IN) +#define UEP_T_RES_ACK 0x00 +#define UEP_T_RES_TOUT 0x01 +#define UEP_T_RES_NAK 0x02 +#define UEP_T_RES_STALL 0x03 +// bUEP_T_RES1 & bUEP_T_RES0: handshake response type for USB endpoint X transmittal (IN) +// 00: DATA0 or DATA1 then expecting ACK (ready) +// 01: DATA0 or DATA1 then expecting no response, time out from host, for non-zero endpoint isochronous transactions +// 10: NAK (busy) +// 11: STALL (error) + +#define R8_UH_SETUP R8_UEP1_CTRL // host aux setup +#define RB_UH_PRE_PID_EN 0x80 // USB host PRE PID enable for low speed device via hub +#define RB_UH_SOF_EN 0x40 // USB host automatic SOF enable + +#define R32_USB_EP2_CTRL (*((PUINT32V)(0x40023438))) // endpoint 2 control & transmittal length +#define R8_UEP2_T_LEN (*((PUINT8V)(0x40023438))) // endpoint 2 transmittal length +#define R8_UEP2_CTRL (*((PUINT8V)(0x4002343a))) // endpoint 2 control + +#define R8_UH_EP_PID R8_UEP2_T_LEN // host endpoint and PID +#define MASK_UH_TOKEN 0xF0 // bit mask of token PID for USB host transfer +#define MASK_UH_ENDP 0x0F // bit mask of endpoint number for USB host transfer + +#define R8_UH_RX_CTRL R8_UEP2_CTRL // host receiver endpoint control +#define RB_UH_R_TOG 0x80 // expected data toggle flag of host receiving (IN): 0=DATA0, 1=DATA1 +#define RB_UH_R_AUTO_TOG 0x10 // enable automatic toggle after successful transfer completion: 0=manual toggle, 1=automatic toggle +#define RB_UH_R_RES 0x04 // prepared handshake response type for host receiving (IN): 0=ACK (ready), 1=no response, time out to device, for isochronous transactions + +#define R32_USB_EP3_CTRL (*((PUINT32V)(0x4002343c))) // endpoint 3 control & transmittal length +#define R8_UEP3_T_LEN (*((PUINT16V)(0x4002343c))) // endpoint 3 transmittal length +#define R8_UEP3_CTRL (*((PUINT8V)(0x4002343e))) // endpoint 3 control +#define R8_UH_TX_LEN (*((PUINT16V)(0x4002343c))) //R8_UEP3_T_LEN // host transmittal endpoint transmittal length + +#define R8_UH_TX_CTRL R8_UEP3_CTRL // host transmittal endpoint control +#define RB_UH_T_TOG 0x40 // prepared data toggle flag of host transmittal (SETUP/OUT): 0=DATA0, 1=DATA1 +#define RB_UH_T_AUTO_TOG 0x10 // enable automatic toggle after successful transfer completion: 0=manual toggle, 1=automatic toggle +#define RB_UH_T_RES 0x01 // expected handshake response type for host transmittal (SETUP/OUT): 0=ACK (ready), 1=no response, time out from device, for isochronous transactions + +#define R32_USB_EP4_CTRL (*((PUINT32V)(0x40023440))) // endpoint 4 control & transmittal length +#define R8_UEP4_T_LEN (*((PUINT8V)(0x40023440))) // endpoint 4 transmittal length +#define R8_UEP4_CTRL (*((PUINT8V)(0x40023442))) // endpoint 4 control + +#define R32_USB_EP5_CTRL (*((PUINT32V)(0x40023444))) // endpoint 5 control & transmittal length +#define R8_UEP5_T_LEN (*((PUINT8V)(0x40023444))) // endpoint 5 transmittal length +#define R8_UEP5_CTRL (*((PUINT8V)(0x40023446))) // endpoint 5 control + +#define R32_USB_EP6_CTRL (*((PUINT32V)(0x40023448))) // endpoint 6 control & transmittal length +#define R8_UEP6_T_LEN (*((PUINT8V)(0x40023448))) // endpoint 6 transmittal length +#define R8_UEP6_CTRL (*((PUINT8V)(0x4002344a))) // endpoint 6 control + +#define R32_USB_EP7_CTRL (*((PUINT32V)(0x4002344c))) // endpoint 7 control & transmittal length +#define R8_UEP7_T_LEN (*((PUINT8V)(0x4002344c))) // endpoint 7 transmittal length +#define R8_UEP7_CTRL (*((PUINT8V)(0x4002344e))) // endpoint 7 control + +#ifdef __cplusplus +} +#endif + +#endif //__CH32V10x_USB_H + +#ifndef __USB_TYPE__ +#define __USB_TYPE__ + +#ifdef __cplusplus +extern "C" { +#endif + +/* USB constant and structure define */ + +/* USB PID */ +#ifndef USB_PID_SETUP + #define USB_PID_NULL 0x00 /* reserved PID */ + #define USB_PID_SOF 0x05 + #define USB_PID_SETUP 0x0D + #define USB_PID_IN 0x09 + #define USB_PID_OUT 0x01 + #define USB_PID_ACK 0x02 + #define USB_PID_NAK 0x0A + #define USB_PID_STALL 0x0E + #define USB_PID_DATA0 0x03 + #define USB_PID_DATA1 0x0B + #define USB_PID_PRE 0x0C +#endif + +/* USB standard device request code */ +#ifndef USB_GET_DESCRIPTOR + #define USB_GET_STATUS 0x00 + #define USB_CLEAR_FEATURE 0x01 + #define USB_SET_FEATURE 0x03 + #define USB_SET_ADDRESS 0x05 + #define USB_GET_DESCRIPTOR 0x06 + #define USB_SET_DESCRIPTOR 0x07 + #define USB_GET_CONFIGURATION 0x08 + #define USB_SET_CONFIGURATION 0x09 + #define USB_GET_INTERFACE 0x0A + #define USB_SET_INTERFACE 0x0B + #define USB_SYNCH_FRAME 0x0C +#endif + +/* USB hub class request code */ +#ifndef HUB_GET_DESCRIPTOR + #define HUB_GET_STATUS 0x00 + #define HUB_CLEAR_FEATURE 0x01 + #define HUB_GET_STATE 0x02 + #define HUB_SET_FEATURE 0x03 + #define HUB_GET_DESCRIPTOR 0x06 + #define HUB_SET_DESCRIPTOR 0x07 +#endif + +/* USB HID class request code */ +#ifndef HID_GET_REPORT + #define HID_GET_REPORT 0x01 + #define HID_GET_IDLE 0x02 + #define HID_GET_PROTOCOL 0x03 + #define HID_SET_REPORT 0x09 + #define HID_SET_IDLE 0x0A + #define HID_SET_PROTOCOL 0x0B +#endif + +/* Bit define for USB request type */ +#ifndef USB_REQ_TYP_MASK + #define USB_REQ_TYP_IN 0x80 /* control IN, device to host */ + #define USB_REQ_TYP_OUT 0x00 /* control OUT, host to device */ + #define USB_REQ_TYP_READ 0x80 /* control read, device to host */ + #define USB_REQ_TYP_WRITE 0x00 /* control write, host to device */ + #define USB_REQ_TYP_MASK 0x60 /* bit mask of request type */ + #define USB_REQ_TYP_STANDARD 0x00 + #define USB_REQ_TYP_CLASS 0x20 + #define USB_REQ_TYP_VENDOR 0x40 + #define USB_REQ_TYP_RESERVED 0x60 + #define USB_REQ_RECIP_MASK 0x1F /* bit mask of request recipient */ + #define USB_REQ_RECIP_DEVICE 0x00 + #define USB_REQ_RECIP_INTERF 0x01 + #define USB_REQ_RECIP_ENDP 0x02 + #define USB_REQ_RECIP_OTHER 0x03 +#endif + +/* USB request type for hub class request */ +#ifndef HUB_GET_HUB_DESCRIPTOR + #define HUB_CLEAR_HUB_FEATURE 0x20 + #define HUB_CLEAR_PORT_FEATURE 0x23 + #define HUB_GET_BUS_STATE 0xA3 + #define HUB_GET_HUB_DESCRIPTOR 0xA0 + #define HUB_GET_HUB_STATUS 0xA0 + #define HUB_GET_PORT_STATUS 0xA3 + #define HUB_SET_HUB_DESCRIPTOR 0x20 + #define HUB_SET_HUB_FEATURE 0x20 + #define HUB_SET_PORT_FEATURE 0x23 +#endif + +/* Hub class feature selectors */ +#ifndef HUB_PORT_RESET + #define HUB_C_HUB_LOCAL_POWER 0 + #define HUB_C_HUB_OVER_CURRENT 1 + #define HUB_PORT_CONNECTION 0 + #define HUB_PORT_ENABLE 1 + #define HUB_PORT_SUSPEND 2 + #define HUB_PORT_OVER_CURRENT 3 + #define HUB_PORT_RESET 4 + #define HUB_PORT_POWER 8 + #define HUB_PORT_LOW_SPEED 9 + #define HUB_C_PORT_CONNECTION 16 + #define HUB_C_PORT_ENABLE 17 + #define HUB_C_PORT_SUSPEND 18 + #define HUB_C_PORT_OVER_CURRENT 19 + #define HUB_C_PORT_RESET 20 +#endif + +/* USB descriptor type */ +#ifndef USB_DESCR_TYP_DEVICE + #define USB_DESCR_TYP_DEVICE 0x01 + #define USB_DESCR_TYP_CONFIG 0x02 + #define USB_DESCR_TYP_STRING 0x03 + #define USB_DESCR_TYP_INTERF 0x04 + #define USB_DESCR_TYP_ENDP 0x05 + #define USB_DESCR_TYP_QUALIF 0x06 + #define USB_DESCR_TYP_SPEED 0x07 + #define USB_DESCR_TYP_OTG 0x09 + #define USB_DESCR_TYP_HID 0x21 + #define USB_DESCR_TYP_REPORT 0x22 + #define USB_DESCR_TYP_PHYSIC 0x23 + #define USB_DESCR_TYP_CS_INTF 0x24 + #define USB_DESCR_TYP_CS_ENDP 0x25 + #define USB_DESCR_TYP_HUB 0x29 +#endif + +/* USB device class */ +#ifndef USB_DEV_CLASS_HUB + #define USB_DEV_CLASS_RESERVED 0x00 + #define USB_DEV_CLASS_AUDIO 0x01 + #define USB_DEV_CLASS_COMMUNIC 0x02 + #define USB_DEV_CLASS_HID 0x03 + #define USB_DEV_CLASS_MONITOR 0x04 + #define USB_DEV_CLASS_PHYSIC_IF 0x05 + #define USB_DEV_CLASS_POWER 0x06 + #define USB_DEV_CLASS_PRINTER 0x07 + #define USB_DEV_CLASS_STORAGE 0x08 + #define USB_DEV_CLASS_HUB 0x09 + #define USB_DEV_CLASS_VEN_SPEC 0xFF +#endif + +/* USB endpoint type and attributes */ +#ifndef USB_ENDP_TYPE_MASK + #define USB_ENDP_DIR_MASK 0x80 + #define USB_ENDP_ADDR_MASK 0x0F + #define USB_ENDP_TYPE_MASK 0x03 + #define USB_ENDP_TYPE_CTRL 0x00 + #define USB_ENDP_TYPE_ISOCH 0x01 + #define USB_ENDP_TYPE_BULK 0x02 + #define USB_ENDP_TYPE_INTER 0x03 +#endif + +#ifndef USB_DEVICE_ADDR + #define USB_DEVICE_ADDR 0x02 +#endif +#ifndef DEFAULT_ENDP0_SIZE + #define DEFAULT_ENDP0_SIZE 8 /* default maximum packet size for endpoint 0 */ +#endif +#ifndef MAX_PACKET_SIZE + #define MAX_PACKET_SIZE 64 /* maximum packet size */ +#endif +#ifndef USB_BO_CBW_SIZE + #define USB_BO_CBW_SIZE 0x1F + #define USB_BO_CSW_SIZE 0x0D +#endif +#ifndef USB_BO_CBW_SIG0 + #define USB_BO_CBW_SIG0 0x55 + #define USB_BO_CBW_SIG1 0x53 + #define USB_BO_CBW_SIG2 0x42 + #define USB_BO_CBW_SIG3 0x43 + #define USB_BO_CSW_SIG0 0x55 + #define USB_BO_CSW_SIG1 0x53 + #define USB_BO_CSW_SIG2 0x42 + #define USB_BO_CSW_SIG3 0x53 +#endif + +#ifndef __PACKED + #define __PACKED __attribute__((packed)) +#endif + +typedef struct __PACKED _USB_SETUP_REQ +{ + UINT8 bRequestType; + UINT8 bRequest; + UINT16 wValue; + UINT16 wIndex; + UINT16 wLength; +} USB_SETUP_REQ, *PUSB_SETUP_REQ; + +typedef struct __PACKED _USB_DEVICE_DESCR +{ + UINT8 bLength; + UINT8 bDescriptorType; + UINT16 bcdUSB; + UINT8 bDeviceClass; + UINT8 bDeviceSubClass; + UINT8 bDeviceProtocol; + UINT8 bMaxPacketSize0; + UINT16 idVendor; + UINT16 idProduct; + UINT16 bcdDevice; + UINT8 iManufacturer; + UINT8 iProduct; + UINT8 iSerialNumber; + UINT8 bNumConfigurations; +} USB_DEV_DESCR, *PUSB_DEV_DESCR; + +typedef struct __PACKED _USB_CONFIG_DESCR +{ + UINT8 bLength; + UINT8 bDescriptorType; + UINT16 wTotalLength; + UINT8 bNumInterfaces; + UINT8 bConfigurationValue; + UINT8 iConfiguration; + UINT8 bmAttributes; + UINT8 MaxPower; +} USB_CFG_DESCR, *PUSB_CFG_DESCR; + +typedef struct __PACKED _USB_INTERF_DESCR +{ + UINT8 bLength; + UINT8 bDescriptorType; + UINT8 bInterfaceNumber; + UINT8 bAlternateSetting; + UINT8 bNumEndpoints; + UINT8 bInterfaceClass; + UINT8 bInterfaceSubClass; + UINT8 bInterfaceProtocol; + UINT8 iInterface; +} USB_ITF_DESCR, *PUSB_ITF_DESCR; + +typedef struct __PACKED _USB_ENDPOINT_DESCR +{ + UINT8 bLength; + UINT8 bDescriptorType; + UINT8 bEndpointAddress; + UINT8 bmAttributes; + UINT16 wMaxPacketSize; + UINT8 bInterval; +} USB_ENDP_DESCR, *PUSB_ENDP_DESCR; + +typedef struct __PACKED _USB_CONFIG_DESCR_LONG +{ + USB_CFG_DESCR cfg_descr; + USB_ITF_DESCR itf_descr; + USB_ENDP_DESCR endp_descr[1]; +} USB_CFG_DESCR_LONG, *PUSB_CFG_DESCR_LONG; + +typedef struct __PACKED _USB_HUB_DESCR +{ + UINT8 bDescLength; + UINT8 bDescriptorType; + UINT8 bNbrPorts; + UINT8 wHubCharacteristicsL; + UINT8 wHubCharacteristicsH; + UINT8 bPwrOn2PwrGood; + UINT8 bHubContrCurrent; + UINT8 DeviceRemovable; + UINT8 PortPwrCtrlMask; +} USB_HUB_DESCR, *PUSB_HUB_DESCR; + +typedef struct __PACKED _USB_HID_DESCR +{ + UINT8 bLength; + UINT8 bDescriptorType; + UINT16 bcdHID; + UINT8 bCountryCode; + UINT8 bNumDescriptors; + UINT8 bDescriptorTypeX; + UINT8 wDescriptorLengthL; + UINT8 wDescriptorLengthH; +} USB_HID_DESCR, *PUSB_HID_DESCR; + +typedef struct __PACKED _UDISK_BOC_CBW +{ /* command of BulkOnly USB-FlashDisk */ + UINT32 mCBW_Sig; + UINT32 mCBW_Tag; + UINT32 mCBW_DataLen; /* uppest byte of data length, always is 0 */ + UINT8 mCBW_Flag; /* transfer direction and etc. */ + UINT8 mCBW_LUN; + UINT8 mCBW_CB_Len; /* length of command block */ + UINT8 mCBW_CB_Buf[16]; /* command block buffer */ +} UDISK_BOC_CBW, *PXUDISK_BOC_CBW; + +typedef struct __PACKED _UDISK_BOC_CSW +{ /* status of BulkOnly USB-FlashDisk */ + UINT32 mCBW_Sig; + UINT32 mCBW_Tag; + UINT32 mCSW_Residue; /* return: remainder bytes */ /* uppest byte of remainder length, always is 0 */ + UINT8 mCSW_Status; /* return: result status */ +} UDISK_BOC_CSW, *PXUDISK_BOC_CSW; + +extern PUINT8 pEP0_RAM_Addr; //ep0(64) +extern PUINT8 pEP1_RAM_Addr; //ep1_out(64)+ep1_in(64) +extern PUINT8 pEP2_RAM_Addr; //ep2_out(64)+ep2_in(64) +extern PUINT8 pEP3_RAM_Addr; //ep3_out(64)+ep3_in(64) +extern PUINT8 pEP4_RAM_Addr; //ep4_out(64)+ep4_in(64) +extern PUINT8 pEP5_RAM_Addr; //ep5_out(64)+ep5_in(64) +extern PUINT8 pEP6_RAM_Addr; //ep6_out(64)+ep6_in(64) +extern PUINT8 pEP7_RAM_Addr; //ep7_out(64)+ep7_in(64) + +#define pSetupReqPak ((PUSB_SETUP_REQ)pEP0_RAM_Addr) +#define pEP0_DataBuf (pEP0_RAM_Addr) +#define pEP1_OUT_DataBuf (pEP1_RAM_Addr) +#define pEP1_IN_DataBuf (pEP1_RAM_Addr + 64) +#define pEP2_OUT_DataBuf (pEP2_RAM_Addr) +#define pEP2_IN_DataBuf (pEP2_RAM_Addr + 64) +#define pEP3_OUT_DataBuf (pEP3_RAM_Addr) +#define pEP3_IN_DataBuf (pEP3_RAM_Addr + 64) +#define pEP4_OUT_DataBuf (pEP4_RAM_Addr) +#define pEP4_IN_DataBuf (pEP4_RAM_Addr + 64) +#define pEP5_OUT_DataBuf (pEP5_RAM_Addr) +#define pEP5_IN_DataBuf (pEP5_RAM_Addr + 64) +#define pEP6_OUT_DataBuf (pEP6_RAM_Addr) +#define pEP6_IN_DataBuf (pEP6_RAM_Addr + 64) +#define pEP7_OUT_DataBuf (pEP7_RAM_Addr) +#define pEP7_IN_DataBuf (pEP7_RAM_Addr + 64) + +void USB_DeviceInit(void); +void USB_DevTransProcess(void); + +void DevEP1_OUT_Deal(UINT8 l); +void DevEP2_OUT_Deal(UINT8 l); +void DevEP3_OUT_Deal(UINT8 l); +void DevEP4_OUT_Deal(UINT8 l); +void DevEP5_OUT_Deal(UINT8 l); +void DevEP6_OUT_Deal(UINT8 l); +void DevEP7_OUT_Deal(UINT8 l); + +void DevEP1_IN_Deal(UINT8 l); +void DevEP2_IN_Deal(UINT8 l); +void DevEP3_IN_Deal(UINT8 l); +void DevEP4_IN_Deal(UINT8 l); +void DevEP5_IN_Deal(UINT8 l); +void DevEP6_IN_Deal(UINT8 l); +void DevEP7_IN_Deal(UINT8 l); + +#define EP1_GetINSta() (R8_UEP1_CTRL & UEP_T_RES_NAK) +#define EP2_GetINSta() (R8_UEP2_CTRL & UEP_T_RES_NAK) +#define EP3_GetINSta() (R8_UEP3_CTRL & UEP_T_RES_NAK) +#define EP4_GetINSta() (R8_UEP4_CTRL & UEP_T_RES_NAK) +#define EP5_GetINSta() (R8_UEP5_CTRL & UEP_T_RES_NAK) +#define EP6_GetINSta() (R8_UEP6_CTRL & UEP_T_RES_NAK) +#define EP7_GetINSta() (R8_UEP7_CTRL & UEP_T_RES_NAK) + +#ifdef __cplusplus +} +#endif + +#endif // __USB_TYPE__ diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_usb_host.h b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_usb_host.h new file mode 100644 index 0000000000..79e9b50d3f --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_usb_host.h @@ -0,0 +1,96 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_usb_host.h + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file contains all the functions prototypes for the USB + * Host firmware library. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *******************************************************************************/ +#ifndef __CH32V10x_USBHOST_H +#define __CH32V10x_USBHOST_H + +#include "ch32v10x_usb.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define ERR_SUCCESS 0x00 +#define ERR_USB_CONNECT 0x15 +#define ERR_USB_DISCON 0x16 +#define ERR_USB_BUF_OVER 0x17 +#define ERR_USB_DISK_ERR 0x1F +#define ERR_USB_TRANSFER 0x20 +#define ERR_USB_UNSUPPORT 0xFB +#define ERR_USB_UNKNOWN 0xFE +#define ERR_AOA_PROTOCOL 0x41 + +#define ROOT_DEV_DISCONNECT 0 +#define ROOT_DEV_CONNECTED 1 +#define ROOT_DEV_FAILED 2 +#define ROOT_DEV_SUCCESS 3 +#define DEV_TYPE_KEYBOARD (USB_DEV_CLASS_HID | 0x20) +#define DEV_TYPE_MOUSE (USB_DEV_CLASS_HID | 0x30) +#define DEF_AOA_DEVICE 0xF0 +#define DEV_TYPE_UNKNOW 0xFF + +#define HUB_MAX_PORTS 4 +#define WAIT_USB_TOUT_200US 3000 + +typedef struct +{ + UINT8 DeviceStatus; + UINT8 DeviceAddress; + UINT8 DeviceSpeed; + UINT8 DeviceType; + UINT16 DeviceVID; + UINT16 DevicePID; + UINT8 GpVar[4]; + UINT8 GpHUBPortNum; +} _RootHubDev; + +extern _RootHubDev ThisUsbDev; +extern UINT8 UsbDevEndp0Size; +extern UINT8 FoundNewDev; + +extern PUINT8 pHOST_RX_RAM_Addr; +extern PUINT8 pHOST_TX_RAM_Addr; +#define pSetupReq ((PUSB_SETUP_REQ)pHOST_TX_RAM_Addr) + +extern const UINT8 SetupGetDevDescr[]; +extern const UINT8 SetupGetCfgDescr[]; +extern const UINT8 SetupSetUsbAddr[]; +extern const UINT8 SetupSetUsbConfig[]; +extern const UINT8 SetupSetUsbInterface[]; +extern const UINT8 SetupClrEndpStall[]; + +void DisableRootHubPort(void); +UINT8 AnalyzeRootHub(void); +void SetHostUsbAddr(UINT8 addr); +void SetUsbSpeed(UINT8 FullSpeed); +void ResetRootHubPort(void); +UINT8 EnableRootHubPort(void); +void SelectHubPort(UINT8 HubPortIndex); +UINT8 WaitUSB_Interrupt(void); +UINT8 USBHostTransact(UINT8 endp_pid, UINT8 tog, UINT32 timeout); +UINT8 HostCtrlTransfer(PUINT8 DataBuf, PUINT8 RetLen); +void CopySetupReqPkg(const UINT8 *pReqPkt); +UINT8 CtrlGetDeviceDescr(PUINT8 DataBuf); +UINT8 CtrlGetConfigDescr(PUINT8 DataBuf); +UINT8 CtrlSetUsbAddress(UINT8 addr); +UINT8 CtrlSetUsbConfig(UINT8 cfg); +UINT8 CtrlClearEndpStall(UINT8 endp); +UINT8 CtrlSetUsbIntercace(UINT8 cfg); + +void USB_HostInit(void); +UINT8 InitRootDevice(PUINT8 DataBuf); +UINT8 HubGetPortStatus(UINT8 HubPortIndex); // ²éѯHUB¶Ë¿Ú״̬,·µ»ØÔÚTxBufferÖÐ +UINT8 HubSetPortFeature(UINT8 HubPortIndex, UINT8 FeatureSelt); // ÉèÖÃHUB¶Ë¿ÚÌØÐÔ +UINT8 HubClearPortFeature(UINT8 HubPortIndex, UINT8 FeatureSelt); // Çå³ýHUB¶Ë¿ÚÌØÐÔ +#ifdef __cplusplus +} +#endif + +#endif /* __CH32V10x_USBHOST_H */ diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_wwdg.h b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_wwdg.h new file mode 100644 index 0000000000..a6e2695d2d --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc/ch32v10x_wwdg.h @@ -0,0 +1,39 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_wwdg.h + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file contains all the functions prototypes for the WWDG + * firmware library. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *******************************************************************************/ +#ifndef __CH32V10x_WWDG_H +#define __CH32V10x_WWDG_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "ch32v10x.h" + +/* WWDG_Prescaler */ +#define WWDG_Prescaler_1 ((uint32_t)0x00000000) +#define WWDG_Prescaler_2 ((uint32_t)0x00000080) +#define WWDG_Prescaler_4 ((uint32_t)0x00000100) +#define WWDG_Prescaler_8 ((uint32_t)0x00000180) + +void WWDG_DeInit(void); +void WWDG_SetPrescaler(uint32_t WWDG_Prescaler); +void WWDG_SetWindowValue(uint8_t WindowValue); +void WWDG_EnableIT(void); +void WWDG_SetCounter(uint8_t Counter); +void WWDG_Enable(uint8_t Counter); +FlagStatus WWDG_GetFlagStatus(void); +void WWDG_ClearFlag(void); + +#ifdef __cplusplus +} +#endif + +#endif /* __CH32V10x_WWDG_H */ diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_adc.c b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_adc.c new file mode 100644 index 0000000000..b5d2998bdd --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_adc.c @@ -0,0 +1,1145 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_adc.c + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file provides all the ADC firmware functions. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *******************************************************************************/ +#include "ch32v10x_adc.h" +#include "ch32v10x_rcc.h" + +/* ADC DISCNUM mask */ +#define CTLR1_DISCNUM_Reset ((uint32_t)0xFFFF1FFF) + +/* ADC DISCEN mask */ +#define CTLR1_DISCEN_Set ((uint32_t)0x00000800) +#define CTLR1_DISCEN_Reset ((uint32_t)0xFFFFF7FF) + +/* ADC JAUTO mask */ +#define CTLR1_JAUTO_Set ((uint32_t)0x00000400) +#define CTLR1_JAUTO_Reset ((uint32_t)0xFFFFFBFF) + +/* ADC JDISCEN mask */ +#define CTLR1_JDISCEN_Set ((uint32_t)0x00001000) +#define CTLR1_JDISCEN_Reset ((uint32_t)0xFFFFEFFF) + +/* ADC AWDCH mask */ +#define CTLR1_AWDCH_Reset ((uint32_t)0xFFFFFFE0) + +/* ADC Analog watchdog enable mode mask */ +#define CTLR1_AWDMode_Reset ((uint32_t)0xFF3FFDFF) + +/* CTLR1 register Mask */ +#define CTLR1_CLEAR_Mask ((uint32_t)0xFFF0FEFF) + +/* ADC ADON mask */ +#define CTLR2_ADON_Set ((uint32_t)0x00000001) +#define CTLR2_ADON_Reset ((uint32_t)0xFFFFFFFE) + +/* ADC DMA mask */ +#define CTLR2_DMA_Set ((uint32_t)0x00000100) +#define CTLR2_DMA_Reset ((uint32_t)0xFFFFFEFF) + +/* ADC RSTCAL mask */ +#define CTLR2_RSTCAL_Set ((uint32_t)0x00000008) + +/* ADC CAL mask */ +#define CTLR2_CAL_Set ((uint32_t)0x00000004) + +/* ADC SWSTART mask */ +#define CTLR2_SWSTART_Set ((uint32_t)0x00400000) + +/* ADC EXTTRIG mask */ +#define CTLR2_EXTTRIG_Set ((uint32_t)0x00100000) +#define CTLR2_EXTTRIG_Reset ((uint32_t)0xFFEFFFFF) + +/* ADC Software start mask */ +#define CTLR2_EXTTRIG_SWSTART_Set ((uint32_t)0x00500000) +#define CTLR2_EXTTRIG_SWSTART_Reset ((uint32_t)0xFFAFFFFF) + +/* ADC JEXTSEL mask */ +#define CTLR2_JEXTSEL_Reset ((uint32_t)0xFFFF8FFF) + +/* ADC JEXTTRIG mask */ +#define CTLR2_JEXTTRIG_Set ((uint32_t)0x00008000) +#define CTLR2_JEXTTRIG_Reset ((uint32_t)0xFFFF7FFF) + +/* ADC JSWSTART mask */ +#define CTLR2_JSWSTART_Set ((uint32_t)0x00200000) + +/* ADC injected software start mask */ +#define CTLR2_JEXTTRIG_JSWSTART_Set ((uint32_t)0x00208000) +#define CTLR2_JEXTTRIG_JSWSTART_Reset ((uint32_t)0xFFDF7FFF) + +/* ADC TSPD mask */ +#define CTLR2_TSVREFE_Set ((uint32_t)0x00800000) +#define CTLR2_TSVREFE_Reset ((uint32_t)0xFF7FFFFF) + +/* CTLR2 register Mask */ +#define CTLR2_CLEAR_Mask ((uint32_t)0xFFF1F7FD) + +/* ADC SQx mask */ +#define RSQR3_SQ_Set ((uint32_t)0x0000001F) +#define RSQR2_SQ_Set ((uint32_t)0x0000001F) +#define RSQR1_SQ_Set ((uint32_t)0x0000001F) + +/* RSQR1 register Mask */ +#define RSQR1_CLEAR_Mask ((uint32_t)0xFF0FFFFF) + +/* ADC JSQx mask */ +#define ISQR_JSQ_Set ((uint32_t)0x0000001F) + +/* ADC JL mask */ +#define ISQR_JL_Set ((uint32_t)0x00300000) +#define ISQR_JL_Reset ((uint32_t)0xFFCFFFFF) + +/* ADC SMPx mask */ +#define SAMPTR1_SMP_Set ((uint32_t)0x00000007) +#define SAMPTR2_SMP_Set ((uint32_t)0x00000007) + +/* ADC IDATARx registers offset */ +#define IDATAR_Offset ((uint8_t)0x28) + +/* ADC1 RDATAR register base address */ +#define RDATAR_ADDRESS ((uint32_t)0x4001244C) + +/********************************************************************* + * @fn ADC_DeInit + * + * @brief Deinitializes the ADCx peripheral registers to their default + * reset values. + * + * @param ADCx - where x can be 1 to select the ADC peripheral. + * + * @return none + */ +void ADC_DeInit(ADC_TypeDef *ADCx) +{ + if(ADCx == ADC1) + { + RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC1, ENABLE); + RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC1, DISABLE); + } +} + +/********************************************************************* + * @fn ADC_Init + * + * @brief Initializes the ADCx peripheral according to the specified + * parameters in the ADC_InitStruct. + * + * @param ADCx - where x can be 1 to select the ADC peripheral. + * ADC_InitStruct - pointer to an ADC_InitTypeDef structure that + * contains the configuration information for the specified ADC + * peripheral. + * + * @return none + */ +void ADC_Init(ADC_TypeDef *ADCx, ADC_InitTypeDef *ADC_InitStruct) +{ + uint32_t tmpreg1 = 0; + uint8_t tmpreg2 = 0; + + tmpreg1 = ADCx->CTLR1; + tmpreg1 &= CTLR1_CLEAR_Mask; + tmpreg1 |= (uint32_t)(ADC_InitStruct->ADC_Mode | ((uint32_t)ADC_InitStruct->ADC_ScanConvMode << 8)); + ADCx->CTLR1 = tmpreg1; + + tmpreg1 = ADCx->CTLR2; + tmpreg1 &= CTLR2_CLEAR_Mask; + tmpreg1 |= (uint32_t)(ADC_InitStruct->ADC_DataAlign | ADC_InitStruct->ADC_ExternalTrigConv | + ((uint32_t)ADC_InitStruct->ADC_ContinuousConvMode << 1)); + ADCx->CTLR2 = tmpreg1; + + tmpreg1 = ADCx->RSQR1; + tmpreg1 &= RSQR1_CLEAR_Mask; + tmpreg2 |= (uint8_t)(ADC_InitStruct->ADC_NbrOfChannel - (uint8_t)1); + tmpreg1 |= (uint32_t)tmpreg2 << 20; + ADCx->RSQR1 = tmpreg1; +} + +/********************************************************************* + * @fn ADC_StructInit + * + * @brief Fills each ADC_InitStruct member with its default value. + * + * @param ADC_InitStruct - pointer to an ADC_InitTypeDef structure that + * contains the configuration information for the specified ADC + * peripheral. + * + * @return none + */ +void ADC_StructInit(ADC_InitTypeDef *ADC_InitStruct) +{ + ADC_InitStruct->ADC_Mode = ADC_Mode_Independent; + ADC_InitStruct->ADC_ScanConvMode = DISABLE; + ADC_InitStruct->ADC_ContinuousConvMode = DISABLE; + ADC_InitStruct->ADC_ExternalTrigConv = ADC_ExternalTrigConv_T1_CC1; + ADC_InitStruct->ADC_DataAlign = ADC_DataAlign_Right; + ADC_InitStruct->ADC_NbrOfChannel = 1; +} + +/********************************************************************* + * @fn ADC_Cmd + * + * @brief Enables or disables the specified ADC peripheral. + * + * @param ADCx - where x can be 1 to select the ADC peripheral. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void ADC_Cmd(ADC_TypeDef *ADCx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + ADCx->CTLR2 |= CTLR2_ADON_Set; + } + else + { + ADCx->CTLR2 &= CTLR2_ADON_Reset; + } +} + +/********************************************************************* + * @fn ADC_DMACmd + * + * @brief Enables or disables the specified ADC DMA request. + * + * @param ADCx - where x can be 1 to select the ADC peripheral. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void ADC_DMACmd(ADC_TypeDef *ADCx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + ADCx->CTLR2 |= CTLR2_DMA_Set; + } + else + { + ADCx->CTLR2 &= CTLR2_DMA_Reset; + } +} + +/********************************************************************* + * @fn ADC_ITConfig + * + * @brief Enables or disables the specified ADC interrupts. + * + * @param ADCx - where x can be 1 to select the ADC peripheral. + * ADC_IT - specifies the ADC interrupt sources to be enabled or disabled. + * ADC_IT_EOC - End of conversion interrupt mask. + * ADC_IT_AWD - Analog watchdog interrupt mask. + * ADC_IT_JEOC - End of injected conversion interrupt mask. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void ADC_ITConfig(ADC_TypeDef *ADCx, uint16_t ADC_IT, FunctionalState NewState) +{ + uint8_t itmask = 0; + + itmask = (uint8_t)ADC_IT; + + if(NewState != DISABLE) + { + ADCx->CTLR1 |= itmask; + } + else + { + ADCx->CTLR1 &= (~(uint32_t)itmask); + } +} + +/********************************************************************* + * @fn ADC_ResetCalibration + * + * @brief Resets the selected ADC calibration registers. + * + * @param ADCx - where x can be 1 to select the ADC peripheral. + * + * @return none + */ +void ADC_ResetCalibration(ADC_TypeDef *ADCx) +{ + ADCx->CTLR2 |= CTLR2_RSTCAL_Set; +} + +/********************************************************************* + * @fn ADC_GetResetCalibrationStatus + * + * @brief Gets the selected ADC reset calibration registers status. + * + * @param ADCx - where x can be 1 to select the ADC peripheral. + * + * @return FlagStatus: SET or RESET. + */ +FlagStatus ADC_GetResetCalibrationStatus(ADC_TypeDef *ADCx) +{ + FlagStatus bitstatus = RESET; + + if((ADCx->CTLR2 & CTLR2_RSTCAL_Set) != (uint32_t)RESET) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + + return bitstatus; +} + +/********************************************************************* + * @fn ADC_StartCalibration + * + * @brief Starts the selected ADC calibration process. + * + * @param ADCx - where x can be 1 to select the ADC peripheral. + * + * @return None + */ +void ADC_StartCalibration(ADC_TypeDef *ADCx) +{ + ADCx->CTLR2 |= CTLR2_CAL_Set; +} + +/********************************************************************* + * @fn ADC_GetCalibrationStatus + * + * @brief Gets the selected ADC calibration status. + * + * @param ADCx - where x can be 1 to select the ADC peripheral. + * + * @return FlagStatus: SET or RESET. + */ +FlagStatus ADC_GetCalibrationStatus(ADC_TypeDef *ADCx) +{ + FlagStatus bitstatus = RESET; + + if((ADCx->CTLR2 & CTLR2_CAL_Set) != (uint32_t)RESET) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + + return bitstatus; +} + +/********************************************************************* + * @fn ADC_SoftwareStartConvCmd + * + * @brief Enables or disables the selected ADC software start conversion. + * + * @param ADCx - where x can be 1 or 2 to select the ADC peripheral. + * NewState - ENABLE or DISABLE. + * + * @return None + */ +void ADC_SoftwareStartConvCmd(ADC_TypeDef *ADCx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + ADCx->CTLR2 |= CTLR2_EXTTRIG_SWSTART_Set; + } + else + { + ADCx->CTLR2 &= CTLR2_EXTTRIG_SWSTART_Reset; + } +} + +/********************************************************************* + * @fn ADC_GetSoftwareStartConvStatus + * + * @brief Gets the selected ADC Software start conversion Status. + * + * @param ADCx - where x can be 1 to select the ADC peripheral. + * + * @return FlagStatus - SET or RESET. + */ +FlagStatus ADC_GetSoftwareStartConvStatus(ADC_TypeDef *ADCx) +{ + FlagStatus bitstatus = RESET; + + if((ADCx->CTLR2 & CTLR2_SWSTART_Set) != (uint32_t)RESET) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + + return bitstatus; +} + +/********************************************************************* + * @fn ADC_DiscModeChannelCountConfig + * + * @brief Configures the discontinuous mode for the selected ADC regular + * group channel. + * + * @param ADCx - where x can be 1 to select the ADC peripheral. + * Number - specifies the discontinuous mode regular channel + * count value(1-8). + * + * @return None + */ +void ADC_DiscModeChannelCountConfig(ADC_TypeDef *ADCx, uint8_t Number) +{ + uint32_t tmpreg1 = 0; + uint32_t tmpreg2 = 0; + + tmpreg1 = ADCx->CTLR1; + tmpreg1 &= CTLR1_DISCNUM_Reset; + tmpreg2 = Number - 1; + tmpreg1 |= tmpreg2 << 13; + ADCx->CTLR1 = tmpreg1; +} + +/********************************************************************* + * @fn ADC_DiscModeCmd + * + * @brief Enables or disables the discontinuous mode on regular group + * channel for the specified ADC. + * + * @param ADCx - where x can be 1 to select the ADC peripheral. + * NewState - ENABLE or DISABLE. + * + * @return None + */ +void ADC_DiscModeCmd(ADC_TypeDef *ADCx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + ADCx->CTLR1 |= CTLR1_DISCEN_Set; + } + else + { + ADCx->CTLR1 &= CTLR1_DISCEN_Reset; + } +} + +/********************************************************************* + * @fn ADC_RegularChannelConfig + * + * @brief Configures for the selected ADC regular channel its corresponding + * rank in the sequencer and its sample time. + * + * @param ADCx - where x can be 1 to select the ADC peripheral. + * ADC_Channel - the ADC channel to configure. + * ADC_Channel_0 - ADC Channel0 selected. + * ADC_Channel_1 - ADC Channel1 selected. + * ADC_Channel_2 - ADC Channel2 selected. + * ADC_Channel_3 - ADC Channel3 selected. + * ADC_Channel_4 - ADC Channel4 selected. + * ADC_Channel_5 - ADC Channel5 selected. + * ADC_Channel_6 - ADC Channel6 selected. + * ADC_Channel_7 - ADC Channel7 selected. + * ADC_Channel_8 - ADC Channel8 selected. + * ADC_Channel_9 - ADC Channel9 selected. + * ADC_Channel_10 - ADC Channel10 selected. + * ADC_Channel_11 - ADC Channel11 selected. + * ADC_Channel_12 - ADC Channel12 selected. + * ADC_Channel_13 - ADC Channel13 selected. + * ADC_Channel_14 - ADC Channel14 selected. + * ADC_Channel_15 - ADC Channel15 selected. + * ADC_Channel_16 - ADC Channel16 selected. + * ADC_Channel_17 - ADC Channel17 selected. + * Rank - The rank in the regular group sequencer. + * This parameter must be between 1 to 16. + * ADC_SampleTime - The sample time value to be set for the selected channel. + * ADC_SampleTime_1Cycles5 - Sample time equal to 1.5 cycles. + * ADC_SampleTime_7Cycles5 - Sample time equal to 7.5 cycles. + * ADC_SampleTime_13Cycles5 - Sample time equal to 13.5 cycles. + * ADC_SampleTime_28Cycles5 - Sample time equal to 28.5 cycles. + * ADC_SampleTime_41Cycles5 - Sample time equal to 41.5 cycles. + * ADC_SampleTime_55Cycles5 - Sample time equal to 55.5 cycles. + * ADC_SampleTime_71Cycles5 - Sample time equal to 71.5 cycles. + * ADC_SampleTime_239Cycles5 - Sample time equal to 239.5 cycles. + * + * @return None + */ +void ADC_RegularChannelConfig(ADC_TypeDef *ADCx, uint8_t ADC_Channel, uint8_t Rank, uint8_t ADC_SampleTime) +{ + uint32_t tmpreg1 = 0, tmpreg2 = 0; + + if(ADC_Channel > ADC_Channel_9) + { + tmpreg1 = ADCx->SAMPTR1; + tmpreg2 = SAMPTR1_SMP_Set << (3 * (ADC_Channel - 10)); + tmpreg1 &= ~tmpreg2; + tmpreg2 = (uint32_t)ADC_SampleTime << (3 * (ADC_Channel - 10)); + tmpreg1 |= tmpreg2; + ADCx->SAMPTR1 = tmpreg1; + } + else + { + tmpreg1 = ADCx->SAMPTR2; + tmpreg2 = SAMPTR2_SMP_Set << (3 * ADC_Channel); + tmpreg1 &= ~tmpreg2; + tmpreg2 = (uint32_t)ADC_SampleTime << (3 * ADC_Channel); + tmpreg1 |= tmpreg2; + ADCx->SAMPTR2 = tmpreg1; + } + + if(Rank < 7) + { + tmpreg1 = ADCx->RSQR3; + tmpreg2 = RSQR3_SQ_Set << (5 * (Rank - 1)); + tmpreg1 &= ~tmpreg2; + tmpreg2 = (uint32_t)ADC_Channel << (5 * (Rank - 1)); + tmpreg1 |= tmpreg2; + ADCx->RSQR3 = tmpreg1; + } + else if(Rank < 13) + { + tmpreg1 = ADCx->RSQR2; + tmpreg2 = RSQR2_SQ_Set << (5 * (Rank - 7)); + tmpreg1 &= ~tmpreg2; + tmpreg2 = (uint32_t)ADC_Channel << (5 * (Rank - 7)); + tmpreg1 |= tmpreg2; + ADCx->RSQR2 = tmpreg1; + } + else + { + tmpreg1 = ADCx->RSQR1; + tmpreg2 = RSQR1_SQ_Set << (5 * (Rank - 13)); + tmpreg1 &= ~tmpreg2; + tmpreg2 = (uint32_t)ADC_Channel << (5 * (Rank - 13)); + tmpreg1 |= tmpreg2; + ADCx->RSQR1 = tmpreg1; + } +} + +/********************************************************************* + * @fn ADC_ExternalTrigConvCmd + * + * @brief Enables or disables the ADCx conversion through external trigger. + * + * @param ADCx - where x can be 1 to select the ADC peripheral. + * NewState - ENABLE or DISABLE. + * + * @return None + */ +void ADC_ExternalTrigConvCmd(ADC_TypeDef *ADCx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + ADCx->CTLR2 |= CTLR2_EXTTRIG_Set; + } + else + { + ADCx->CTLR2 &= CTLR2_EXTTRIG_Reset; + } +} + +/********************************************************************* + * @fn ADC_GetConversionValue + * + * @brief Returns the last ADCx conversion result data for regular channel. + * + * @param ADCx - where x can be 1 to select the ADC peripheral. + * + * @return ADCx->RDATAR - The Data conversion value. + */ +uint16_t ADC_GetConversionValue(ADC_TypeDef *ADCx) +{ + return (uint16_t)ADCx->RDATAR; +} + +/********************************************************************* + * @fn ADC_GetDualModeConversionValue + * + * @brief Returns the last ADC1 and ADC2 conversion result data in dual mode. + * + * @return RDATAR_ADDRESS - The Data conversion value. + */ +uint32_t ADC_GetDualModeConversionValue(void) +{ + return (*(__IO uint32_t *)RDATAR_ADDRESS); +} + +/********************************************************************* + * @fn ADC_AutoInjectedConvCmd + * + * @brief Enables or disables the selected ADC automatic injected group + * conversion after regular one. + * + * @param ADCx - where x can be 1 to select the ADC peripheral. + * NewState - ENABLE or DISABLE. + * + * @return None + */ +void ADC_AutoInjectedConvCmd(ADC_TypeDef *ADCx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + ADCx->CTLR1 |= CTLR1_JAUTO_Set; + } + else + { + ADCx->CTLR1 &= CTLR1_JAUTO_Reset; + } +} + +/********************************************************************* + * @fn ADC_InjectedDiscModeCmd + * + * @brief Enables or disables the discontinuous mode for injected group + * channel for the specified ADC. + * + * @param ADCx - where x can be 1 to select the ADC peripheral. + * NewState - ENABLE or DISABLE. + * + * @return None + */ +void ADC_InjectedDiscModeCmd(ADC_TypeDef *ADCx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + ADCx->CTLR1 |= CTLR1_JDISCEN_Set; + } + else + { + ADCx->CTLR1 &= CTLR1_JDISCEN_Reset; + } +} + +/********************************************************************* + * @fn ADC_ExternalTrigInjectedConvConfig + * + * @brief Configures the ADCx external trigger for injected channels conversion. + * + * @param ADCx - where x can be 1 to select the ADC peripheral. + * ADC_ExternalTrigInjecConv - specifies the ADC trigger to start + * injected conversion. + * ADC_ExternalTrigInjecConv_T1_TRGO - Timer1 TRGO event selected. + * ADC_ExternalTrigInjecConv_T1_CC4 - Timer1 capture compare4 selected. + * ADC_ExternalTrigInjecConv_T2_TRGO - Timer2 TRGO event selected. + * ADC_ExternalTrigInjecConv_T2_CC1 - Timer2 capture compare1 selected. + * ADC_ExternalTrigInjecConv_T3_CC4 - Timer3 capture compare4 selected. + * ADC_ExternalTrigInjecConv_T4_TRGO - Timer4 TRGO event selected. + * ADC_ExternalTrigInjecConv_Ext_IT15_TIM8_CC4 - External interrupt + * line 15 event selected. + * ADC_ExternalTrigInjecConv_None: Injected conversion started + * by software and not by external trigger. + * + * @return None + */ +void ADC_ExternalTrigInjectedConvConfig(ADC_TypeDef *ADCx, uint32_t ADC_ExternalTrigInjecConv) +{ + uint32_t tmpreg = 0; + + tmpreg = ADCx->CTLR2; + tmpreg &= CTLR2_JEXTSEL_Reset; + tmpreg |= ADC_ExternalTrigInjecConv; + ADCx->CTLR2 = tmpreg; +} + +/********************************************************************* + * @fn ADC_ExternalTrigInjectedConvCmd + * + * @brief Enables or disables the ADCx injected channels conversion through + * external trigger. + * + * @param ADCx - where x can be 1 to select the ADC peripheral. + * NewState - ENABLE or DISABLE. + * + * @return None + */ +void ADC_ExternalTrigInjectedConvCmd(ADC_TypeDef *ADCx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + ADCx->CTLR2 |= CTLR2_JEXTTRIG_Set; + } + else + { + ADCx->CTLR2 &= CTLR2_JEXTTRIG_Reset; + } +} + +/********************************************************************* + * @fn ADC_SoftwareStartInjectedConvCmd + * + * @brief Enables or disables the selected ADC start of the injected + * channels conversion. + * + * @param ADCx - where x can be 1 to select the ADC peripheral. + * NewState - ENABLE or DISABLE. + * + * @return None + */ +void ADC_SoftwareStartInjectedConvCmd(ADC_TypeDef *ADCx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + ADCx->CTLR2 |= CTLR2_JEXTTRIG_JSWSTART_Set; + } + else + { + ADCx->CTLR2 &= CTLR2_JEXTTRIG_JSWSTART_Reset; + } +} + +/********************************************************************* + * @fn ADC_GetSoftwareStartInjectedConvCmdStatus + * + * @brief Gets the selected ADC Software start injected conversion Status. + * + * @param ADCx - where x can be 1 to select the ADC peripheral. + * + * @return FlagStatus: SET or RESET. + */ +FlagStatus ADC_GetSoftwareStartInjectedConvCmdStatus(ADC_TypeDef *ADCx) +{ + FlagStatus bitstatus = RESET; + + if((ADCx->CTLR2 & CTLR2_JSWSTART_Set) != (uint32_t)RESET) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + + return bitstatus; +} + +/********************************************************************* + * @fn ADC_InjectedChannelConfig + * + * @brief Configures for the selected ADC injected channel its corresponding + * rank in the sequencer and its sample time. + * + * @param ADCx - where x can be 1 to select the ADC peripheral. + * ADC_Channel - the ADC channel to configure. + * ADC_Channel_0 - ADC Channel0 selected. + * ADC_Channel_1 - ADC Channel1 selected. + * ADC_Channel_2 - ADC Channel2 selected. + * ADC_Channel_3 - ADC Channel3 selected. + * ADC_Channel_4 - ADC Channel4 selected. + * ADC_Channel_5 - ADC Channel5 selected. + * ADC_Channel_6 - ADC Channel6 selected. + * ADC_Channel_7 - ADC Channel7 selected. + * ADC_Channel_8 - ADC Channel8 selected. + * ADC_Channel_9 - ADC Channel9 selected. + * ADC_Channel_10 - ADC Channel10 selected. + * ADC_Channel_11 - ADC Channel11 selected. + * ADC_Channel_12 - ADC Channel12 selected. + * ADC_Channel_13 - ADC Channel13 selected. + * ADC_Channel_14 - ADC Channel14 selected. + * ADC_Channel_15 - ADC Channel15 selected. + * ADC_Channel_16 - ADC Channel16 selected. + * ADC_Channel_17 - ADC Channel17 selected. + * Rank - The rank in the regular group sequencer. + * This parameter must be between 1 to 4. + * ADC_SampleTime - The sample time value to be set for the selected channel. + * ADC_SampleTime_1Cycles5 - Sample time equal to 1.5 cycles. + * ADC_SampleTime_7Cycles5 - Sample time equal to 7.5 cycles. + * ADC_SampleTime_13Cycles5 - Sample time equal to 13.5 cycles. + * ADC_SampleTime_28Cycles5 - Sample time equal to 28.5 cycles. + * ADC_SampleTime_41Cycles5 - Sample time equal to 41.5 cycles. + * ADC_SampleTime_55Cycles5 - Sample time equal to 55.5 cycles. + * ADC_SampleTime_71Cycles5 - Sample time equal to 71.5 cycles. + * ADC_SampleTime_239Cycles5 - Sample time equal to 239.5 cycles. + * + * @return None + */ +void ADC_InjectedChannelConfig(ADC_TypeDef *ADCx, uint8_t ADC_Channel, uint8_t Rank, uint8_t ADC_SampleTime) +{ + uint32_t tmpreg1 = 0, tmpreg2 = 0, tmpreg3 = 0; + + if(ADC_Channel > ADC_Channel_9) + { + tmpreg1 = ADCx->SAMPTR1; + tmpreg2 = SAMPTR1_SMP_Set << (3 * (ADC_Channel - 10)); + tmpreg1 &= ~tmpreg2; + tmpreg2 = (uint32_t)ADC_SampleTime << (3 * (ADC_Channel - 10)); + tmpreg1 |= tmpreg2; + ADCx->SAMPTR1 = tmpreg1; + } + else + { + tmpreg1 = ADCx->SAMPTR2; + tmpreg2 = SAMPTR2_SMP_Set << (3 * ADC_Channel); + tmpreg1 &= ~tmpreg2; + tmpreg2 = (uint32_t)ADC_SampleTime << (3 * ADC_Channel); + tmpreg1 |= tmpreg2; + ADCx->SAMPTR2 = tmpreg1; + } + + tmpreg1 = ADCx->ISQR; + tmpreg3 = (tmpreg1 & ISQR_JL_Set) >> 20; + tmpreg2 = ISQR_JSQ_Set << (5 * (uint8_t)((Rank + 3) - (tmpreg3 + 1))); + tmpreg1 &= ~tmpreg2; + tmpreg2 = (uint32_t)ADC_Channel << (5 * (uint8_t)((Rank + 3) - (tmpreg3 + 1))); + tmpreg1 |= tmpreg2; + ADCx->ISQR = tmpreg1; +} + +/********************************************************************* + * @fn ADC_InjectedSequencerLengthConfig + * + * @brief Configures the sequencer length for injected channels. + * + * @param ADCx - where x can be 1 to select the ADC peripheral. + * Length - The sequencer length. + * This parameter must be a number between 1 to 4. + * + * @return None + */ +void ADC_InjectedSequencerLengthConfig(ADC_TypeDef *ADCx, uint8_t Length) +{ + uint32_t tmpreg1 = 0; + uint32_t tmpreg2 = 0; + + tmpreg1 = ADCx->ISQR; + tmpreg1 &= ISQR_JL_Reset; + tmpreg2 = Length - 1; + tmpreg1 |= tmpreg2 << 20; + ADCx->ISQR = tmpreg1; +} + +/********************************************************************* + * @fn ADC_SetInjectedOffset + * + * @brief Set the injected channels conversion value offset. + * + * @param ADCx - where x can be 1 to select the ADC peripheral. + * ADC_InjectedChannel: the ADC injected channel to set its offset. + * ADC_InjectedChannel_1 - Injected Channel1 selected. + * ADC_InjectedChannel_2 - Injected Channel2 selected. + * ADC_InjectedChannel_3 - Injected Channel3 selected. + * ADC_InjectedChannel_4 - Injected Channel4 selected. + * Offset - the offset value for the selected ADC injected channel. + * This parameter must be a 12bit value. + * + * @return None + */ +void ADC_SetInjectedOffset(ADC_TypeDef *ADCx, uint8_t ADC_InjectedChannel, uint16_t Offset) +{ + __IO uint32_t tmp = 0; + + tmp = (uint32_t)ADCx; + tmp += ADC_InjectedChannel; + + *(__IO uint32_t *)tmp = (uint32_t)Offset; +} + +/********************************************************************* + * @fn ADC_GetInjectedConversionValue + * + * @brief Returns the ADC injected channel conversion result. + * + * @param ADCx - where x can be 1 to select the ADC peripheral. + * ADC_InjectedChannel - the ADC injected channel to set its offset. + * ADC_InjectedChannel_1 - Injected Channel1 selected. + * ADC_InjectedChannel_2 - Injected Channel2 selected. + * ADC_InjectedChannel_3 - Injected Channel3 selected. + * ADC_InjectedChannel_4 - Injected Channel4 selected. + * + * @return tmp - The Data conversion value. + */ +uint16_t ADC_GetInjectedConversionValue(ADC_TypeDef *ADCx, uint8_t ADC_InjectedChannel) +{ + __IO uint32_t tmp = 0; + + tmp = (uint32_t)ADCx; + tmp += ADC_InjectedChannel + IDATAR_Offset; + + return (uint16_t)(*(__IO uint32_t *)tmp); +} + +/********************************************************************* + * @fn ADC_AnalogWatchdogCmd + * + * @brief Enables or disables the analog watchdog on single/all regular + * or injected channels. + * + * @param ADCx - where x can be 1 to select the ADC peripheral. + * ADC_AnalogWatchdog - the ADC analog watchdog configuration. + * ADC_AnalogWatchdog_SingleRegEnable - Analog watchdog on a + * single regular channel. + * ADC_AnalogWatchdog_SingleInjecEnable - Analog watchdog on a + * single injected channel. + * ADC_AnalogWatchdog_SingleRegOrInjecEnable - Analog watchdog + * on a single regular or injected channel. + * ADC_AnalogWatchdog_AllRegEnable - Analog watchdog on all + * regular channel. + * ADC_AnalogWatchdog_AllInjecEnable - Analog watchdog on all + * injected channel. + * ADC_AnalogWatchdog_AllRegAllInjecEnable - Analog watchdog on + * all regular and injected channels. + * ADC_AnalogWatchdog_None - No channel guarded by the analog + * watchdog. + * + * @return none + */ +void ADC_AnalogWatchdogCmd(ADC_TypeDef *ADCx, uint32_t ADC_AnalogWatchdog) +{ + uint32_t tmpreg = 0; + + tmpreg = ADCx->CTLR1; + tmpreg &= CTLR1_AWDMode_Reset; + tmpreg |= ADC_AnalogWatchdog; + ADCx->CTLR1 = tmpreg; +} + +/********************************************************************* + * @fn ADC_AnalogWatchdogThresholdsConfig + * + * @brief Configures the high and low thresholds of the analog watchdog. + * + * @param ADCx - where x can be 1 to select the ADC peripheral. + * HighThreshold - the ADC analog watchdog High threshold value. + * This parameter must be a 12bit value. + * LowThreshold - the ADC analog watchdog Low threshold value. + * This parameter must be a 12bit value. + * + * @return none + */ +void ADC_AnalogWatchdogThresholdsConfig(ADC_TypeDef *ADCx, uint16_t HighThreshold, + uint16_t LowThreshold) +{ + ADCx->WDHTR = HighThreshold; + ADCx->WDLTR = LowThreshold; +} + +/********************************************************************* + * @fn ADC_AnalogWatchdogSingleChannelConfig + * + * @brief Configures the analog watchdog guarded single channel. + * + * @param ADCx - where x can be 1 to select the ADC peripheral. + * ADC_Channel - the ADC channel to configure. + * ADC_Channel_0 - ADC Channel0 selected. + * ADC_Channel_1 - ADC Channel1 selected. + * ADC_Channel_2 - ADC Channel2 selected. + * ADC_Channel_3 - ADC Channel3 selected. + * ADC_Channel_4 - ADC Channel4 selected. + * ADC_Channel_5 - ADC Channel5 selected. + * ADC_Channel_6 - ADC Channel6 selected. + * ADC_Channel_7 - ADC Channel7 selected. + * ADC_Channel_8 - ADC Channel8 selected. + * ADC_Channel_9 - ADC Channel9 selected. + * ADC_Channel_10 - ADC Channel10 selected. + * ADC_Channel_11 - ADC Channel11 selected. + * ADC_Channel_12 - ADC Channel12 selected. + * ADC_Channel_13 - ADC Channel13 selected. + * ADC_Channel_14 - ADC Channel14 selected. + * ADC_Channel_15 - ADC Channel15 selected. + * ADC_Channel_16 - ADC Channel16 selected. + * ADC_Channel_17 - ADC Channel17 selected. + * + * @return None + */ +void ADC_AnalogWatchdogSingleChannelConfig(ADC_TypeDef *ADCx, uint8_t ADC_Channel) +{ + uint32_t tmpreg = 0; + + tmpreg = ADCx->CTLR1; + tmpreg &= CTLR1_AWDCH_Reset; + tmpreg |= ADC_Channel; + ADCx->CTLR1 = tmpreg; +} + +/********************************************************************* + * @fn ADC_TempSensorVrefintCmd + * + * @brief Enables or disables the temperature sensor and Vrefint channel. + * + * @param NewState - ENABLE or DISABLE. + * + * @return none + */ +void ADC_TempSensorVrefintCmd(FunctionalState NewState) +{ + if(NewState != DISABLE) + { + ADC1->CTLR2 |= CTLR2_TSVREFE_Set; + } + else + { + ADC1->CTLR2 &= CTLR2_TSVREFE_Reset; + } +} + +/********************************************************************* + * @fn ADC_GetFlagStatus + * + * @brief Checks whether the specified ADC flag is set or not. + * + * @param ADCx - where x can be 1 to select the ADC peripheral. + * ADC_FLAG - specifies the flag to check. + * ADC_FLAG_AWD - Analog watchdog flag. + * ADC_FLAG_EOC - End of conversion flag. + * ADC_FLAG_JEOC - End of injected group conversion flag. + * ADC_FLAG_JSTRT - Start of injected group conversion flag. + * ADC_FLAG_STRT - Start of regular group conversion flag. + * + * @return FlagStatus: SET or RESET. + */ +FlagStatus ADC_GetFlagStatus(ADC_TypeDef *ADCx, uint8_t ADC_FLAG) +{ + FlagStatus bitstatus = RESET; + + if((ADCx->STATR & ADC_FLAG) != (uint8_t)RESET) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + + return bitstatus; +} + +/********************************************************************* + * @fn ADC_ClearFlag + * + * @brief Clears the ADCx's pending flags. + * + * @param ADCx - where x can be 1 to select the ADC peripheral. + * ADC_FLAG - specifies the flag to clear. + * ADC_FLAG_AWD - Analog watchdog flag. + * ADC_FLAG_EOC - End of conversion flag. + * ADC_FLAG_JEOC - End of injected group conversion flag. + * ADC_FLAG_JSTRT - Start of injected group conversion flag. + * ADC_FLAG_STRT - Start of regular group conversion flag. + * + * @return none + */ +void ADC_ClearFlag(ADC_TypeDef *ADCx, uint8_t ADC_FLAG) +{ + ADCx->STATR = ~(uint32_t)ADC_FLAG; +} + +/********************************************************************* + * @fn ADC_GetITStatus + * + * @brief Checks whether the specified ADC interrupt has occurred or not. + * + * @param ADCx - where x can be 1 to select the ADC peripheral. + * ADC_IT - specifies the ADC interrupt source to check. + * ADC_IT_EOC - End of conversion interrupt mask. + * ADC_IT_AWD - Analog watchdog interrupt mask. + * ADC_IT_JEOC - End of injected conversion interrupt mask. + * + * @return ITStatus: SET or RESET. + */ +ITStatus ADC_GetITStatus(ADC_TypeDef *ADCx, uint16_t ADC_IT) +{ + ITStatus bitstatus = RESET; + uint32_t itmask = 0, enablestatus = 0; + + itmask = ADC_IT >> 8; + enablestatus = (ADCx->CTLR1 & (uint8_t)ADC_IT); + + if(((ADCx->STATR & itmask) != (uint32_t)RESET) && enablestatus) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + + return bitstatus; +} + +/********************************************************************* + * @fn ADC_ClearITPendingBit + * + * @brief Clears the ADCx's interrupt pending bits. + * + * @param ADCx - where x can be 1 to select the ADC peripheral. + * ADC_IT - specifies the ADC interrupt pending bit to clear. + * ADC_IT_EOC - End of conversion interrupt mask. + * ADC_IT_AWD - Analog watchdog interrupt mask. + * ADC_IT_JEOC - End of injected conversion interrupt mask. + * + * @return none + */ +void ADC_ClearITPendingBit(ADC_TypeDef *ADCx, uint16_t ADC_IT) +{ + uint8_t itmask = 0; + + itmask = (uint8_t)(ADC_IT >> 8); + ADCx->STATR = ~(uint32_t)itmask; +} + +/********************************************************************* + * @fn TempSensor_Volt_To_Temper + * + * @brief Internal Temperature Sensor Voltage to temperature. + * + * @param Value - Voltage Value(mv). + * + * @return Temper - Temperature Value. + */ +s32 TempSensor_Volt_To_Temper(s32 Value) +{ + s32 Temper, Refer_Volt, Refer_Temper; + s32 k = 43; + + Refer_Volt = (s32)((*(u32 *)0x1FFFF898) & 0x0000FFFF); + Refer_Temper = (s32)(((*(u32 *)0x1FFFF898) >> 16) & 0x0000FFFF); + + Temper = Refer_Temper + ((Value - Refer_Volt) * 10 + (k >> 1)) / k; + + return Temper; +} + +/********************************************************************* + * @fn Get_CalibrationValue + * + * @brief Get ADCx Calibration Value. + * + * @param ADCx - where x can be 1 to select the ADC peripheral. + * + * @return CalibrationValue + */ +int16_t Get_CalibrationValue(ADC_TypeDef *ADCx) +{ + __IO uint8_t i, j; + uint16_t buf[10]; + __IO uint16_t t; + + for(i = 0; i < 10; i++){ + ADC_ResetCalibration(ADCx); + while(ADC_GetResetCalibrationStatus(ADCx)); + ADC_StartCalibration(ADCx); + while(ADC_GetCalibrationStatus(ADCx)); + buf[i] = ADCx->RDATAR; + } + + for(i = 0; i < 10; i++){ + for(j = 0; j < 10; j++){ + if(buf[j] > buf[j + 1]){ + t = buf[j]; + buf[j] = buf[j + 1]; + buf[j] = t; + } + } + } + + t = 0; + for(i = 0; i < 6; i++){ + t += buf[i + 2]; + } + + t = (t / 6) + ((t % 6) / 3); + + return (int16_t)(2048 - (int16_t)t); +} diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_bkp.c b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_bkp.c new file mode 100644 index 0000000000..e438308130 --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_bkp.c @@ -0,0 +1,248 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_bkp.c + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file provides all the BKP firmware functions. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *******************************************************************************/ +#include "ch32v10x_bkp.h" +#include "ch32v10x_rcc.h" + +/* BKP registers bit mask */ + +/* OCTLR register bit mask */ +#define OCTLR_CAL_MASK ((uint16_t)0xFF80) +#define OCTLR_MASK ((uint16_t)0xFC7F) + +/********************************************************************* + * @fn BKP_DeInit + * + * @brief Deinitializes the BKP peripheral registers to their default reset values. + * + * @return none + */ +void BKP_DeInit(void) +{ + RCC_BackupResetCmd(ENABLE); + RCC_BackupResetCmd(DISABLE); +} + +/********************************************************************* + * @fn BKP_TamperPinLevelConfig + * + * @brief Configures the Tamper Pin active level. + * + * @param BKP_TamperPinLevel: specifies the Tamper Pin active level. + * BKP_TamperPinLevel_High - Tamper pin active on high level. + * BKP_TamperPinLevel_Low - Tamper pin active on low level. + * + * @return none + */ +void BKP_TamperPinLevelConfig(uint16_t BKP_TamperPinLevel) +{ + if(BKP_TamperPinLevel) + { + BKP->TPCTLR |= (1 << 1); + } + else + { + BKP->TPCTLR &= ~(1 << 1); + } +} + +/********************************************************************* + * @fn BKP_TamperPinCmd + * + * @brief Enables or disables the Tamper Pin activation. + * + * @param NewState - ENABLE or DISABLE. + * + * @return none + */ +void BKP_TamperPinCmd(FunctionalState NewState) +{ + if(NewState) + { + BKP->TPCTLR |= (1 << 0); + } + else + { + BKP->TPCTLR &= ~(1 << 0); + } +} + +/********************************************************************* + * @fn BKP_ITConfig + * + * @brief Enables or disables the Tamper Pin Interrupt. + * + * @param NewState - ENABLE or DISABLE. + * + * @return none + */ +void BKP_ITConfig(FunctionalState NewState) +{ + if(NewState) + { + BKP->TPCSR |= (1 << 2); + } + else + { + BKP->TPCSR &= ~(1 << 2); + } +} + +/********************************************************************* + * @fn BKP_RTCOutputConfig + * + * @brief Select the RTC output source to output on the Tamper pin. + * + * @param BKP_RTCOutputSource - specifies the RTC output source. + * BKP_RTCOutputSource_None - no RTC output on the Tamper pin. + * BKP_RTCOutputSource_CalibClock - output the RTC clock with + * frequency divided by 64 on the Tamper pin. + * BKP_RTCOutputSource_Alarm - output the RTC Alarm pulse signal + * on the Tamper pin. + * BKP_RTCOutputSource_Second - output the RTC Second pulse + * signal on the Tamper pin. + * + * @return none + */ +void BKP_RTCOutputConfig(uint16_t BKP_RTCOutputSource) +{ + uint16_t tmpreg = 0; + + tmpreg = BKP->OCTLR; + tmpreg &= OCTLR_MASK; + tmpreg |= BKP_RTCOutputSource; + BKP->OCTLR = tmpreg; +} + +/********************************************************************* + * @fn BKP_SetRTCCalibrationValue + * + * @brief Sets RTC Clock Calibration value. + * + * @param CalibrationValue - specifies the RTC Clock Calibration value. + * This parameter must be a number between 0 and 0x1F. + * + * @return none + */ +void BKP_SetRTCCalibrationValue(uint8_t CalibrationValue) +{ + uint16_t tmpreg = 0; + + tmpreg = BKP->OCTLR; + tmpreg &= OCTLR_CAL_MASK; + tmpreg |= CalibrationValue; + BKP->OCTLR = tmpreg; +} + +/********************************************************************* + * @fn BKP_WriteBackupRegister + * + * @brief Writes user data to the specified Data Backup Register. + * + * @param BKP_DR - specifies the Data Backup Register. + * Data - data to write. + * + * @return none + */ +void BKP_WriteBackupRegister(uint16_t BKP_DR, uint16_t Data) +{ + __IO uint32_t tmp = 0; + + tmp = (uint32_t)BKP_BASE; + tmp += BKP_DR; + *(__IO uint32_t *)tmp = Data; +} + +/********************************************************************* + * @fn BKP_ReadBackupRegister + * + * @brief Reads data from the specified Data Backup Register. + * + * @param BKP_DR - specifies the Data Backup Register. + * This parameter can be BKP_DRx where x=[1, 42]. + * + * @return none + */ +uint16_t BKP_ReadBackupRegister(uint16_t BKP_DR) +{ + __IO uint32_t tmp = 0; + + tmp = (uint32_t)BKP_BASE; + tmp += BKP_DR; + + return (*(__IO uint16_t *)tmp); +} + +/********************************************************************* + * @fn BKP_GetFlagStatus + * + * @brief Checks whether the Tamper Pin Event flag is set or not. + * + * @return FlagStatus - SET or RESET. + */ +FlagStatus BKP_GetFlagStatus(void) +{ + if(BKP->TPCSR & (1 << 8)) + { + return SET; + } + else + { + return RESET; + } +} + +/********************************************************************* + * @fn BKP_ClearFlag + * + * @brief Clears Tamper Pin Event pending flag. + * + * @return none + */ +void BKP_ClearFlag(void) +{ + BKP->TPCSR |= BKP_CTE; +} + +/********************************************************************* + * @fn BKP_GetITStatus + * + * @brief Checks whether the Tamper Pin Interrupt has occurred or not. + * + * @return ITStatus - SET or RESET. + */ +ITStatus BKP_GetITStatus(void) +{ + if(BKP->TPCSR & (1 << 9)) + { + return SET; + } + else + { + return RESET; + } +} + +/********************************************************************* + * @fn BKP_ClearITPendingBit + * + * @brief Clears Tamper Pin Interrupt pending bit. + * + * @return none + */ +void BKP_ClearITPendingBit(void) +{ + BKP->TPCSR |= BKP_CTI; +} + + + + + + diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_crc.c b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_crc.c new file mode 100644 index 0000000000..25cb7507d6 --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_crc.c @@ -0,0 +1,103 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_crc.c + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file provides all the CRC firmware functions. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *******************************************************************************/ +#include "ch32v10x_crc.h" + +/********************************************************************* + * @fn CRC_ResetDR + * + * @brief Resets the CRC Data register (DR). + * + * @return none + */ +void CRC_ResetDR(void) +{ + CRC->CTLR = CRC_CTLR_RESET; +} + +/********************************************************************* + * @fn CRC_CalcCRC + * + * @brief Computes the 32-bit CRC of a given data word(32-bit). + * + * @param Data - data word(32-bit) to compute its CRC. + * + * @return 32-bit CRC. + */ +uint32_t CRC_CalcCRC(uint32_t Data) +{ + CRC->DATAR = Data; + + return (CRC->DATAR); +} + +/********************************************************************* + * @fn CRC_CalcBlockCRC + * + * @brief Computes the 32-bit CRC of a given buffer of data word(32-bit). + * + * @param pBuffer - pointer to the buffer containing the data to be computed. + * BufferLength - length of the buffer to be computed. + * + * @return 32-bit CRC. + */ +uint32_t CRC_CalcBlockCRC(uint32_t pBuffer[], uint32_t BufferLength) +{ + uint32_t index = 0; + + for(index = 0; index < BufferLength; index++) + { + CRC->DATAR = pBuffer[index]; + } + + return (CRC->DATAR); +} + +/********************************************************************* + * @fn CRC_GetCRC + * + * @brief Returns the current CRC value. + * + * @return 32-bit CRC. + */ +uint32_t CRC_GetCRC(void) +{ + return (CRC->IDATAR); +} + +/********************************************************************* + * @fn CRC_SetIDRegister + * + * @brief Stores a 8-bit data in the Independent Data(ID) register. + * + * @param IDValue - 8-bit value to be stored in the ID register. + * + * @return none + */ +void CRC_SetIDRegister(uint8_t IDValue) +{ + CRC->IDATAR = IDValue; +} + +/********************************************************************* + * @fn CRC_GetIDRegister + * + * @brief Returns the 8-bit data stored in the Independent Data(ID) register. + * + * @return 8-bit value of the ID register. + */ +uint8_t CRC_GetIDRegister(void) +{ + return (CRC->IDATAR); +} + + + + + diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_dbgmcu.c b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_dbgmcu.c new file mode 100644 index 0000000000..fa39e48ab9 --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_dbgmcu.c @@ -0,0 +1,64 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_dbgmcu.c + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file provides all the DBGMCU firmware functions. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + ****************************************************************************************/ +#include "ch32v10x_dbgmcu.h" + +/********************************************************************* + * @fn DBGMCU_Config + * + * @brief Configures the specified peripheral and low power mode behavior + * when the MCU under Debug mode. + * + * @param DBGMCU_Periph - specifies the peripheral and low power mode. + * DBGMCU_IWDG_STOP - Debug IWDG stopped when Core is halted + * DBGMCU_WWDG_STOP - Debug WWDG stopped when Core is halted + * DBGMCU_I2C1_SMBUS_TIMEOUT - I2C1 SMBUS timeout mode stopped when Core is halted + * DBGMCU_I2C2_SMBUS_TIMEOUT - I2C2 SMBUS timeout mode stopped when Core is halted + * DBGMCU_TIM1_STOP - TIM1 counter stopped when Core is halted + * DBGMCU_TIM2_STOP - TIM2 counter stopped when Core is halted + * DBGMCU_TIM3_STOP - TIM3 counter stopped when Core is halted + * DBGMCU_TIM4_STOP - TIM4 counter stopped when Core is halted + * DBGMCU_SLEEP - Keep debugger connection during SLEEP mode + * DBGMCU_STOP - Keep debugger connection during STOP mode + * DBGMCU_STANDBY - Keep debugger connection during STANDBY mode + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void DBGMCU_Config(uint32_t DBGMCU_Periph, FunctionalState NewState) +{ + if((DBGMCU_Periph == DBGMCU_SLEEP) || (DBGMCU_Periph == DBGMCU_STOP) || (DBGMCU_Periph == DBGMCU_STANDBY)) + { + if(NewState != DISABLE) + { + DBGMCU->CFGR1 |= DBGMCU_Periph; + } + else + { + DBGMCU->CFGR1 &= ~DBGMCU_Periph; + } + } + else + { + if(NewState != DISABLE) + { + DBGMCU->CFGR0 |= DBGMCU_Periph; + } + else + { + DBGMCU->CFGR0 &= ~DBGMCU_Periph; + } + } + + + + + + +} diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_dma.c b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_dma.c new file mode 100644 index 0000000000..ca4e2abe91 --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_dma.c @@ -0,0 +1,550 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_dma.c + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file provides all the DMA firmware functions. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *******************************************************************************/ +#include "ch32v10x_dma.h" +#include "ch32v10x_rcc.h" + +/* DMA1 Channelx interrupt pending bit masks */ +#define DMA1_Channel1_IT_Mask ((uint32_t)(DMA_GIF1 | DMA_TCIF1 | DMA_HTIF1 | DMA_TEIF1)) +#define DMA1_Channel2_IT_Mask ((uint32_t)(DMA_GIF2 | DMA_TCIF2 | DMA_HTIF2 | DMA_TEIF2)) +#define DMA1_Channel3_IT_Mask ((uint32_t)(DMA_GIF3 | DMA_TCIF3 | DMA_HTIF3 | DMA_TEIF3)) +#define DMA1_Channel4_IT_Mask ((uint32_t)(DMA_GIF4 | DMA_TCIF4 | DMA_HTIF4 | DMA_TEIF4)) +#define DMA1_Channel5_IT_Mask ((uint32_t)(DMA_GIF5 | DMA_TCIF5 | DMA_HTIF5 | DMA_TEIF5)) +#define DMA1_Channel6_IT_Mask ((uint32_t)(DMA_GIF6 | DMA_TCIF6 | DMA_HTIF6 | DMA_TEIF6)) +#define DMA1_Channel7_IT_Mask ((uint32_t)(DMA_GIF7 | DMA_TCIF7 | DMA_HTIF7 | DMA_TEIF7)) + +/* DMA2 Channelx interrupt pending bit masks */ +#define DMA2_Channel1_IT_Mask ((uint32_t)(DMA_GIF1 | DMA_TCIF1 | DMA_HTIF1 | DMA_TEIF1)) +#define DMA2_Channel2_IT_Mask ((uint32_t)(DMA_GIF2 | DMA_TCIF2 | DMA_HTIF2 | DMA_TEIF2)) +#define DMA2_Channel3_IT_Mask ((uint32_t)(DMA_GIF3 | DMA_TCIF3 | DMA_HTIF3 | DMA_TEIF3)) +#define DMA2_Channel4_IT_Mask ((uint32_t)(DMA_GIF4 | DMA_TCIF4 | DMA_HTIF4 | DMA_TEIF4)) +#define DMA2_Channel5_IT_Mask ((uint32_t)(DMA_GIF5 | DMA_TCIF5 | DMA_HTIF5 | DMA_TEIF5)) + +/* DMA2 FLAG mask */ +#define FLAG_Mask ((uint32_t)0x10000000) + +/* DMA registers Masks */ +#define CFGR_CLEAR_Mask ((uint32_t)0xFFFF800F) + +/********************************************************************* + * @fn DMA_DeInit + * + * @brief Deinitializes the DMAy Channelx registers to their default + * reset values. + * + * @param DMAy_Channelx - here y can be 1 or 2 to select the DMA and x can be + * 1 to 7 for DMA1 and 1 to 5 for DMA2 to select the DMA Channel. + * + * @return none + */ +void DMA_DeInit(DMA_Channel_TypeDef *DMAy_Channelx) +{ + DMAy_Channelx->CFGR &= (uint16_t)(~DMA_CFGR1_EN); + DMAy_Channelx->CFGR = 0; + DMAy_Channelx->CNTR = 0; + DMAy_Channelx->PADDR = 0; + DMAy_Channelx->MADDR = 0; + if(DMAy_Channelx == DMA1_Channel1) + { + DMA1->INTFCR |= DMA1_Channel1_IT_Mask; + } + else if(DMAy_Channelx == DMA1_Channel2) + { + DMA1->INTFCR |= DMA1_Channel2_IT_Mask; + } + else if(DMAy_Channelx == DMA1_Channel3) + { + DMA1->INTFCR |= DMA1_Channel3_IT_Mask; + } + else if(DMAy_Channelx == DMA1_Channel4) + { + DMA1->INTFCR |= DMA1_Channel4_IT_Mask; + } + else if(DMAy_Channelx == DMA1_Channel5) + { + DMA1->INTFCR |= DMA1_Channel5_IT_Mask; + } + else if(DMAy_Channelx == DMA1_Channel6) + { + DMA1->INTFCR |= DMA1_Channel6_IT_Mask; + } + else if(DMAy_Channelx == DMA1_Channel7) + { + DMA1->INTFCR |= DMA1_Channel7_IT_Mask; + } + else if(DMAy_Channelx == DMA2_Channel1) + { + DMA2->INTFCR |= DMA2_Channel1_IT_Mask; + } + else if(DMAy_Channelx == DMA2_Channel2) + { + DMA2->INTFCR |= DMA2_Channel2_IT_Mask; + } + else if(DMAy_Channelx == DMA2_Channel3) + { + DMA2->INTFCR |= DMA2_Channel3_IT_Mask; + } + else if(DMAy_Channelx == DMA2_Channel4) + { + DMA2->INTFCR |= DMA2_Channel4_IT_Mask; + } + else + { + if(DMAy_Channelx == DMA2_Channel5) + { + DMA2->INTFCR |= DMA2_Channel5_IT_Mask; + } + } +} + +/********************************************************************* + * @fn DMA_Init + * + * @brief Initializes the DMAy Channelx according to the specified + * parameters in the DMA_InitStruct. + * + * @param DMAy_Channelx - here y can be 1 or 2 to select the DMA and x can be + * 1 to 7 for DMA1 and 1 to 5 for DMA2 to select the DMA Channel. + * DMA_InitStruct - pointer to a DMA_InitTypeDef structure that contains + * contains the configuration information for the specified DMA Channel. + * + * @return none + */ +void DMA_Init(DMA_Channel_TypeDef *DMAy_Channelx, DMA_InitTypeDef *DMA_InitStruct) +{ + uint32_t tmpreg = 0; + + tmpreg = DMAy_Channelx->CFGR; + tmpreg &= CFGR_CLEAR_Mask; + tmpreg |= DMA_InitStruct->DMA_DIR | DMA_InitStruct->DMA_Mode | + DMA_InitStruct->DMA_PeripheralInc | DMA_InitStruct->DMA_MemoryInc | + DMA_InitStruct->DMA_PeripheralDataSize | DMA_InitStruct->DMA_MemoryDataSize | + DMA_InitStruct->DMA_Priority | DMA_InitStruct->DMA_M2M; + + DMAy_Channelx->CFGR = tmpreg; + DMAy_Channelx->CNTR = DMA_InitStruct->DMA_BufferSize; + DMAy_Channelx->PADDR = DMA_InitStruct->DMA_PeripheralBaseAddr; + DMAy_Channelx->MADDR = DMA_InitStruct->DMA_MemoryBaseAddr; +} + +/********************************************************************* + * @fn DMA_StructInit + * + * @brief Fills each DMA_InitStruct member with its default value. + * + * @param DMAy_Channelx - here y can be 1 or 2 to select the DMA and x can be + * 1 to 7 for DMA1 and 1 to 5 for DMA2 to select the DMA Channel. + * DMA_InitStruct - pointer to a DMA_InitTypeDef structure that contains + * contains the configuration information for the specified DMA Channel. + * + * @return none + */ +void DMA_StructInit(DMA_InitTypeDef *DMA_InitStruct) +{ + DMA_InitStruct->DMA_PeripheralBaseAddr = 0; + DMA_InitStruct->DMA_MemoryBaseAddr = 0; + DMA_InitStruct->DMA_DIR = DMA_DIR_PeripheralSRC; + DMA_InitStruct->DMA_BufferSize = 0; + DMA_InitStruct->DMA_PeripheralInc = DMA_PeripheralInc_Disable; + DMA_InitStruct->DMA_MemoryInc = DMA_MemoryInc_Disable; + DMA_InitStruct->DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte; + DMA_InitStruct->DMA_MemoryDataSize = DMA_MemoryDataSize_Byte; + DMA_InitStruct->DMA_Mode = DMA_Mode_Normal; + DMA_InitStruct->DMA_Priority = DMA_Priority_Low; + DMA_InitStruct->DMA_M2M = DMA_M2M_Disable; +} + +/********************************************************************* + * @fn DMA_Cmd + * + * @brief Enables or disables the specified DMAy Channelx. + * + * @param DMAy_Channelx - here y can be 1 or 2 to select the DMA and x can be + * 1 to 7 for DMA1 and 1 to 5 for DMA2 to select the DMA Channel. + * NewState - new state of the DMAy Channelx(ENABLE or DISABLE). + * + * @return none + */ +void DMA_Cmd(DMA_Channel_TypeDef *DMAy_Channelx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + DMAy_Channelx->CFGR |= DMA_CFGR1_EN; + } + else + { + DMAy_Channelx->CFGR &= (uint16_t)(~DMA_CFGR1_EN); + } +} + +/********************************************************************* + * @fn DMA_ITConfig + * + * @brief Enables or disables the specified DMAy Channelx interrupts. + * + * @param DMAy_Channelx - here y can be 1 or 2 to select the DMA and x can be + * 1 to 7 for DMA1 and 1 to 5 for DMA2 to select the DMA Channel. + * DMA_IT - specifies the DMA interrupts sources to be enabled + * or disabled. + * DMA_IT_TC - Transfer complete interrupt mask + * DMA_IT_HT - Half transfer interrupt mask + * DMA_IT_TE - Transfer error interrupt mask + * NewState - new state of the DMAy Channelx(ENABLE or DISABLE). + * + * @return none + */ +void DMA_ITConfig(DMA_Channel_TypeDef *DMAy_Channelx, uint32_t DMA_IT, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + DMAy_Channelx->CFGR |= DMA_IT; + } + else + { + DMAy_Channelx->CFGR &= ~DMA_IT; + } +} + +/********************************************************************* + * @fn DMA_SetCurrDataCounter + * + * @brief Sets the number of data units in the current DMAy Channelx transfer. + * + * @param DMAy_Channelx - here y can be 1 or 2 to select the DMA and x can be + * 1 to 7 for DMA1 and 1 to 5 for DMA2 to select the DMA Channel. + * DataNumber - The number of data units in the current DMAy Channelx + * transfer. + * + * @return none + */ +void DMA_SetCurrDataCounter(DMA_Channel_TypeDef *DMAy_Channelx, uint16_t DataNumber) +{ + DMAy_Channelx->CNTR = DataNumber; +} + +/********************************************************************* + * @fn DMA_GetCurrDataCounter + * + * @brief Returns the number of remaining data units in the current + * DMAy Channelx transfer. + * + * @param DMAy_Channelx - here y can be 1 or 2 to select the DMA and x can be + * 1 to 7 for DMA1 and 1 to 5 for DMA2 to select the DMA Channel. + * + * @return DataNumber - The number of remaining data units in the current + * DMAy Channelx transfer. + */ +uint16_t DMA_GetCurrDataCounter(DMA_Channel_TypeDef *DMAy_Channelx) +{ + return ((uint16_t)(DMAy_Channelx->CNTR)); +} + +/********************************************************************* + * @fn DMA_GetFlagStatus + * + * @brief Checks whether the specified DMAy Channelx flag is set or not. + * + * @param DMAy_FLAG - specifies the flag to check. + * DMA1_FLAG_GL1 - DMA1 Channel1 global flag. + * DMA1_FLAG_TC1 - DMA1 Channel1 transfer complete flag. + * DMA1_FLAG_HT1 - DMA1 Channel1 half transfer flag. + * DMA1_FLAG_TE1 - DMA1 Channel1 transfer error flag. + * DMA1_FLAG_GL2 - DMA1 Channel2 global flag. + * DMA1_FLAG_TC2 - DMA1 Channel2 transfer complete flag. + * DMA1_FLAG_HT2 - DMA1 Channel2 half transfer flag. + * DMA1_FLAG_TE2 - DMA1 Channel2 transfer error flag. + * DMA1_FLAG_GL3 - DMA1 Channel3 global flag. + * DMA1_FLAG_TC3 - DMA1 Channel3 transfer complete flag. + * DMA1_FLAG_HT3 - DMA1 Channel3 half transfer flag. + * DMA1_FLAG_TE3 - DMA1 Channel3 transfer error flag. + * DMA1_FLAG_GL4 - DMA1 Channel4 global flag. + * DMA1_FLAG_TC4 - DMA1 Channel4 transfer complete flag. + * DMA1_FLAG_HT4 - DMA1 Channel4 half transfer flag. + * DMA1_FLAG_TE4 - DMA1 Channel4 transfer error flag. + * DMA1_FLAG_GL5 - DMA1 Channel5 global flag. + * DMA1_FLAG_TC5 - DMA1 Channel5 transfer complete flag. + * DMA1_FLAG_HT5 - DMA1 Channel5 half transfer flag. + * DMA1_FLAG_TE5 - DMA1 Channel5 transfer error flag. + * DMA1_FLAG_GL6 - DMA1 Channel6 global flag. + * DMA1_FLAG_TC6 - DMA1 Channel6 transfer complete flag. + * DMA1_FLAG_HT6 - DMA1 Channel6 half transfer flag. + * DMA1_FLAG_TE6 - DMA1 Channel6 transfer error flag. + * DMA1_FLAG_GL7 - DMA1 Channel7 global flag. + * DMA1_FLAG_TC7 - DMA1 Channel7 transfer complete flag. + * DMA1_FLAG_HT7 - DMA1 Channel7 half transfer flag. + * DMA1_FLAG_TE7 - DMA1 Channel7 transfer error flag. + * DMA2_FLAG_GL1 - DMA2 Channel1 global flag. + * DMA2_FLAG_TC1 - DMA2 Channel1 transfer complete flag. + * DMA2_FLAG_HT1 - DMA2 Channel1 half transfer flag. + * DMA2_FLAG_TE1 - DMA2 Channel1 transfer error flag. + * DMA2_FLAG_GL2 - DMA2 Channel2 global flag. + * DMA2_FLAG_TC2 - DMA2 Channel2 transfer complete flag. + * DMA2_FLAG_HT2 - DMA2 Channel2 half transfer flag. + * DMA2_FLAG_TE2 - DMA2 Channel2 transfer error flag. + * DMA2_FLAG_GL3 - DMA2 Channel3 global flag. + * DMA2_FLAG_TC3 - DMA2 Channel3 transfer complete flag. + * DMA2_FLAG_HT3 - DMA2 Channel3 half transfer flag. + * DMA2_FLAG_TE3 - DMA2 Channel3 transfer error flag. + * DMA2_FLAG_GL4 - DMA2 Channel4 global flag. + * DMA2_FLAG_TC4 - DMA2 Channel4 transfer complete flag. + * DMA2_FLAG_HT4 - DMA2 Channel4 half transfer flag. + * DMA2_FLAG_TE4 - DMA2 Channel4 transfer error flag. + * DMA2_FLAG_GL5 - DMA2 Channel5 global flag. + * DMA2_FLAG_TC5 - DMA2 Channel5 transfer complete flag. + * DMA2_FLAG_HT5 - DMA2 Channel5 half transfer flag. + * DMA2_FLAG_TE5 - DMA2 Channel5 transfer error flag. + * + * @return The new state of DMAy_FLAG (SET or RESET). + */ +FlagStatus DMA_GetFlagStatus(uint32_t DMAy_FLAG) +{ + FlagStatus bitstatus = RESET; + uint32_t tmpreg = 0; + + if((DMAy_FLAG & FLAG_Mask) != (uint32_t)RESET) + { + tmpreg = DMA2->INTFR; + } + else + { + tmpreg = DMA1->INTFR; + } + + if((tmpreg & DMAy_FLAG) != (uint32_t)RESET) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + + return bitstatus; +} + +/********************************************************************* + * @fn DMA_ClearFlag + * + * @brief Clears the DMAy Channelx's pending flags. + * + * @param DMAy_FLAG - specifies the flag to check. + * DMA1_FLAG_GL1 - DMA1 Channel1 global flag. + * DMA1_FLAG_TC1 - DMA1 Channel1 transfer complete flag. + * DMA1_FLAG_HT1 - DMA1 Channel1 half transfer flag. + * DMA1_FLAG_TE1 - DMA1 Channel1 transfer error flag. + * DMA1_FLAG_GL2 - DMA1 Channel2 global flag. + * DMA1_FLAG_TC2 - DMA1 Channel2 transfer complete flag. + * DMA1_FLAG_HT2 - DMA1 Channel2 half transfer flag. + * DMA1_FLAG_TE2 - DMA1 Channel2 transfer error flag. + * DMA1_FLAG_GL3 - DMA1 Channel3 global flag. + * DMA1_FLAG_TC3 - DMA1 Channel3 transfer complete flag. + * DMA1_FLAG_HT3 - DMA1 Channel3 half transfer flag. + * DMA1_FLAG_TE3 - DMA1 Channel3 transfer error flag. + * DMA1_FLAG_GL4 - DMA1 Channel4 global flag. + * DMA1_FLAG_TC4 - DMA1 Channel4 transfer complete flag. + * DMA1_FLAG_HT4 - DMA1 Channel4 half transfer flag. + * DMA1_FLAG_TE4 - DMA1 Channel4 transfer error flag. + * DMA1_FLAG_GL5 - DMA1 Channel5 global flag. + * DMA1_FLAG_TC5 - DMA1 Channel5 transfer complete flag. + * DMA1_FLAG_HT5 - DMA1 Channel5 half transfer flag. + * DMA1_FLAG_TE5 - DMA1 Channel5 transfer error flag. + * DMA1_FLAG_GL6 - DMA1 Channel6 global flag. + * DMA1_FLAG_TC6 - DMA1 Channel6 transfer complete flag. + * DMA1_FLAG_HT6 - DMA1 Channel6 half transfer flag. + * DMA1_FLAG_TE6 - DMA1 Channel6 transfer error flag. + * DMA1_FLAG_GL7 - DMA1 Channel7 global flag. + * DMA1_FLAG_TC7 - DMA1 Channel7 transfer complete flag. + * DMA1_FLAG_HT7 - DMA1 Channel7 half transfer flag. + * DMA1_FLAG_TE7 - DMA1 Channel7 transfer error flag. + * DMA2_FLAG_GL1 - DMA2 Channel1 global flag. + * DMA2_FLAG_TC1 - DMA2 Channel1 transfer complete flag. + * DMA2_FLAG_HT1 - DMA2 Channel1 half transfer flag. + * DMA2_FLAG_TE1 - DMA2 Channel1 transfer error flag. + * DMA2_FLAG_GL2 - DMA2 Channel2 global flag. + * DMA2_FLAG_TC2 - DMA2 Channel2 transfer complete flag. + * DMA2_FLAG_HT2 - DMA2 Channel2 half transfer flag. + * DMA2_FLAG_TE2 - DMA2 Channel2 transfer error flag. + * DMA2_FLAG_GL3 - DMA2 Channel3 global flag. + * DMA2_FLAG_TC3 - DMA2 Channel3 transfer complete flag. + * DMA2_FLAG_HT3 - DMA2 Channel3 half transfer flag. + * DMA2_FLAG_TE3 - DMA2 Channel3 transfer error flag. + * DMA2_FLAG_GL4 - DMA2 Channel4 global flag. + * DMA2_FLAG_TC4 - DMA2 Channel4 transfer complete flag. + * DMA2_FLAG_HT4 - DMA2 Channel4 half transfer flag. + * DMA2_FLAG_TE4 - DMA2 Channel4 transfer error flag. + * DMA2_FLAG_GL5 - DMA2 Channel5 global flag. + * DMA2_FLAG_TC5 - DMA2 Channel5 transfer complete flag. + * DMA2_FLAG_HT5 - DMA2 Channel5 half transfer flag. + * DMA2_FLAG_TE5 - DMA2 Channel5 transfer error flag. + * + * @return none + */ +void DMA_ClearFlag(uint32_t DMAy_FLAG) +{ + if((DMAy_FLAG & FLAG_Mask) != (uint32_t)RESET) + { + DMA2->INTFCR = DMAy_FLAG; + } + else + { + DMA1->INTFCR = DMAy_FLAG; + } +} + +/********************************************************************* + * @fn DMA_GetITStatus + * + * @brief Checks whether the specified DMAy Channelx interrupt has + * occurred or not. + * + * @param DMAy_IT - specifies the DMAy interrupt source to check. + * DMA1_IT_GL1 - DMA1 Channel1 global flag. + * DMA1_IT_TC1 - DMA1 Channel1 transfer complete flag. + * DMA1_IT_HT1 - DMA1 Channel1 half transfer flag. + * DMA1_IT_TE1 - DMA1 Channel1 transfer error flag. + * DMA1_IT_GL2 - DMA1 Channel2 global flag. + * DMA1_IT_TC2 - DMA1 Channel2 transfer complete flag. + * DMA1_IT_HT2 - DMA1 Channel2 half transfer flag. + * DMA1_IT_TE2 - DMA1 Channel2 transfer error flag. + * DMA1_IT_GL3 - DMA1 Channel3 global flag. + * DMA1_IT_TC3 - DMA1 Channel3 transfer complete flag. + * DMA1_IT_HT3 - DMA1 Channel3 half transfer flag. + * DMA1_IT_TE3 - DMA1 Channel3 transfer error flag. + * DMA1_IT_GL4 - DMA1 Channel4 global flag. + * DMA1_IT_TC4 - DMA1 Channel4 transfer complete flag. + * DMA1_IT_HT4 - DMA1 Channel4 half transfer flag. + * DMA1_IT_TE4 - DMA1 Channel4 transfer error flag. + * DMA1_IT_GL5 - DMA1 Channel5 global flag. + * DMA1_IT_TC5 - DMA1 Channel5 transfer complete flag. + * DMA1_IT_HT5 - DMA1 Channel5 half transfer flag. + * DMA1_IT_TE5 - DMA1 Channel5 transfer error flag. + * DMA1_IT_GL6 - DMA1 Channel6 global flag. + * DMA1_IT_TC6 - DMA1 Channel6 transfer complete flag. + * DMA1_IT_HT6 - DMA1 Channel6 half transfer flag. + * DMA1_IT_TE6 - DMA1 Channel6 transfer error flag. + * DMA1_IT_GL7 - DMA1 Channel7 global flag. + * DMA1_IT_TC7 - DMA1 Channel7 transfer complete flag. + * DMA1_IT_HT7 - DMA1 Channel7 half transfer flag. + * DMA1_IT_TE7 - DMA1 Channel7 transfer error flag. + * DMA2_IT_GL1 - DMA2 Channel1 global flag. + * DMA2_IT_TC1 - DMA2 Channel1 transfer complete flag. + * DMA2_IT_HT1 - DMA2 Channel1 half transfer flag. + * DMA2_IT_TE1 - DMA2 Channel1 transfer error flag. + * DMA2_IT_GL2 - DMA2 Channel2 global flag. + * DMA2_IT_TC2 - DMA2 Channel2 transfer complete flag. + * DMA2_IT_HT2 - DMA2 Channel2 half transfer flag. + * DMA2_IT_TE2 - DMA2 Channel2 transfer error flag. + * DMA2_IT_GL3 - DMA2 Channel3 global flag. + * DMA2_IT_TC3 - DMA2 Channel3 transfer complete flag. + * DMA2_IT_HT3 - DMA2 Channel3 half transfer flag. + * DMA2_IT_TE3 - DMA2 Channel3 transfer error flag. + * DMA2_IT_GL4 - DMA2 Channel4 global flag. + * DMA2_IT_TC4 - DMA2 Channel4 transfer complete flag. + * DMA2_IT_HT4 - DMA2 Channel4 half transfer flag. + * DMA2_IT_TE4 - DMA2 Channel4 transfer error flag. + * DMA2_IT_GL5 - DMA2 Channel5 global flag. + * DMA2_IT_TC5 - DMA2 Channel5 transfer complete flag. + * DMA2_IT_HT5 - DMA2 Channel5 half transfer flag. + * DMA2_IT_TE5 - DMA2 Channel5 transfer error flag. + * + * @return The new state of DMAy_IT (SET or RESET). + */ +ITStatus DMA_GetITStatus(uint32_t DMAy_IT) +{ + ITStatus bitstatus = RESET; + uint32_t tmpreg = 0; + + if((DMAy_IT & FLAG_Mask) != (uint32_t)RESET) + { + tmpreg = DMA2->INTFR; + } + else + { + tmpreg = DMA1->INTFR; + } + + if((tmpreg & DMAy_IT) != (uint32_t)RESET) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + return bitstatus; +} + +/********************************************************************* + * @fn DMA_ClearITPendingBit + * + * @brief Clears the DMAy Channelx's interrupt pending bits. + * + * @param DMAy_IT - specifies the DMAy interrupt source to check. + * DMA1_IT_GL1 - DMA1 Channel1 global flag. + * DMA1_IT_TC1 - DMA1 Channel1 transfer complete flag. + * DMA1_IT_HT1 - DMA1 Channel1 half transfer flag. + * DMA1_IT_TE1 - DMA1 Channel1 transfer error flag. + * DMA1_IT_GL2 - DMA1 Channel2 global flag. + * DMA1_IT_TC2 - DMA1 Channel2 transfer complete flag. + * DMA1_IT_HT2 - DMA1 Channel2 half transfer flag. + * DMA1_IT_TE2 - DMA1 Channel2 transfer error flag. + * DMA1_IT_GL3 - DMA1 Channel3 global flag. + * DMA1_IT_TC3 - DMA1 Channel3 transfer complete flag. + * DMA1_IT_HT3 - DMA1 Channel3 half transfer flag. + * DMA1_IT_TE3 - DMA1 Channel3 transfer error flag. + * DMA1_IT_GL4 - DMA1 Channel4 global flag. + * DMA1_IT_TC4 - DMA1 Channel4 transfer complete flag. + * DMA1_IT_HT4 - DMA1 Channel4 half transfer flag. + * DMA1_IT_TE4 - DMA1 Channel4 transfer error flag. + * DMA1_IT_GL5 - DMA1 Channel5 global flag. + * DMA1_IT_TC5 - DMA1 Channel5 transfer complete flag. + * DMA1_IT_HT5 - DMA1 Channel5 half transfer flag. + * DMA1_IT_TE5 - DMA1 Channel5 transfer error flag. + * DMA1_IT_GL6 - DMA1 Channel6 global flag. + * DMA1_IT_TC6 - DMA1 Channel6 transfer complete flag. + * DMA1_IT_HT6 - DMA1 Channel6 half transfer flag. + * DMA1_IT_TE6 - DMA1 Channel6 transfer error flag. + * DMA1_IT_GL7 - DMA1 Channel7 global flag. + * DMA1_IT_TC7 - DMA1 Channel7 transfer complete flag. + * DMA1_IT_HT7 - DMA1 Channel7 half transfer flag. + * DMA1_IT_TE7 - DMA1 Channel7 transfer error flag. + * DMA2_IT_GL1 - DMA2 Channel1 global flag. + * DMA2_IT_TC1 - DMA2 Channel1 transfer complete flag. + * DMA2_IT_HT1 - DMA2 Channel1 half transfer flag. + * DMA2_IT_TE1 - DMA2 Channel1 transfer error flag. + * DMA2_IT_GL2 - DMA2 Channel2 global flag. + * DMA2_IT_TC2 - DMA2 Channel2 transfer complete flag. + * DMA2_IT_HT2 - DMA2 Channel2 half transfer flag. + * DMA2_IT_TE2 - DMA2 Channel2 transfer error flag. + * DMA2_IT_GL3 - DMA2 Channel3 global flag. + * DMA2_IT_TC3 - DMA2 Channel3 transfer complete flag. + * DMA2_IT_HT3 - DMA2 Channel3 half transfer flag. + * DMA2_IT_TE3 - DMA2 Channel3 transfer error flag. + * DMA2_IT_GL4 - DMA2 Channel4 global flag. + * DMA2_IT_TC4 - DMA2 Channel4 transfer complete flag. + * DMA2_IT_HT4 - DMA2 Channel4 half transfer flag. + * DMA2_IT_TE4 - DMA2 Channel4 transfer error flag. + * DMA2_IT_GL5 - DMA2 Channel5 global flag. + * DMA2_IT_TC5 - DMA2 Channel5 transfer complete flag. + * DMA2_IT_HT5 - DMA2 Channel5 half transfer flag. + * DMA2_IT_TE5 - DMA2 Channel5 transfer error flag. + * + * @return none + */ +void DMA_ClearITPendingBit(uint32_t DMAy_IT) +{ + if((DMAy_IT & FLAG_Mask) != (uint32_t)RESET) + { + DMA2->INTFCR = DMAy_IT; + } + else + { + DMA1->INTFCR = DMAy_IT; + } +} diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_exti.c b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_exti.c new file mode 100644 index 0000000000..b58bff594e --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_exti.c @@ -0,0 +1,180 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_exti.c + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file provides all the EXTI firmware functions. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + ***************************************************************************************/ +#include "ch32v10x_exti.h" + +/* No interrupt selected */ +#define EXTI_LINENONE ((uint32_t)0x00000) + +/********************************************************************* + * @fn EXTI_DeInit + * + * @brief Deinitializes the EXTI peripheral registers to their default + * reset values. + * + * @return none. + */ +void EXTI_DeInit(void) +{ + EXTI->INTENR = 0x00000000; + EXTI->EVENR = 0x00000000; + EXTI->RTENR = 0x00000000; + EXTI->FTENR = 0x00000000; + EXTI->INTFR = 0x000FFFFF; +} + +/********************************************************************* + * @fn EXTI_Init + * + * @brief Initializes the EXTI peripheral according to the specified + * parameters in the EXTI_InitStruct. + * + * @param EXTI_InitStruct: pointer to a EXTI_InitTypeDef structure + * + * @return none. + */ +void EXTI_Init(EXTI_InitTypeDef *EXTI_InitStruct) +{ + uint32_t tmp = 0; + + tmp = (uint32_t)EXTI_BASE; + if(EXTI_InitStruct->EXTI_LineCmd != DISABLE) + { + EXTI->INTENR &= ~EXTI_InitStruct->EXTI_Line; + EXTI->EVENR &= ~EXTI_InitStruct->EXTI_Line; + tmp += EXTI_InitStruct->EXTI_Mode; + *(__IO uint32_t *)tmp |= EXTI_InitStruct->EXTI_Line; + EXTI->RTENR &= ~EXTI_InitStruct->EXTI_Line; + EXTI->FTENR &= ~EXTI_InitStruct->EXTI_Line; + if(EXTI_InitStruct->EXTI_Trigger == EXTI_Trigger_Rising_Falling) + { + EXTI->RTENR |= EXTI_InitStruct->EXTI_Line; + EXTI->FTENR |= EXTI_InitStruct->EXTI_Line; + } + else + { + tmp = (uint32_t)EXTI_BASE; + tmp += EXTI_InitStruct->EXTI_Trigger; + *(__IO uint32_t *)tmp |= EXTI_InitStruct->EXTI_Line; + } + } + else + { + tmp += EXTI_InitStruct->EXTI_Mode; + *(__IO uint32_t *)tmp &= ~EXTI_InitStruct->EXTI_Line; + } +} + +/********************************************************************* + * @fn EXTI_StructInit + * + * @brief Fills each EXTI_InitStruct member with its reset value. + * + * @param EXTI_InitStruct - pointer to a EXTI_InitTypeDef structure + * + * @return none. + */ +void EXTI_StructInit(EXTI_InitTypeDef *EXTI_InitStruct) +{ + EXTI_InitStruct->EXTI_Line = EXTI_LINENONE; + EXTI_InitStruct->EXTI_Mode = EXTI_Mode_Interrupt; + EXTI_InitStruct->EXTI_Trigger = EXTI_Trigger_Falling; + EXTI_InitStruct->EXTI_LineCmd = DISABLE; +} + +/********************************************************************* + * @fn EXTI_GenerateSWInterrupt + * + * @brief Generates a Software interrupt. + * + * @param EXTI_Line - specifies the EXTI lines to be enabled or disabled. + * + * @return none. + */ +void EXTI_GenerateSWInterrupt(uint32_t EXTI_Line) +{ + EXTI->SWIEVR |= EXTI_Line; +} + +/********************************************************************* + * @fn EXTI_GetFlagStatus + * + * @brief Checks whether the specified EXTI line flag is set or not. + * + * @param EXTI_Line - specifies the EXTI lines to be enabled or disabled. + * + * @return The new state of EXTI_Line (SET or RESET). + */ +FlagStatus EXTI_GetFlagStatus(uint32_t EXTI_Line) +{ + FlagStatus bitstatus = RESET; + if((EXTI->INTFR & EXTI_Line) != (uint32_t)RESET) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + return bitstatus; +} + +/********************************************************************* + * @fn EXTI_ClearFlag + * + * @brief Clears the EXTI's line pending flags. + * + * @param EXTI_Line - specifies the EXTI lines to be enabled or disabled. + * + * @return None + */ +void EXTI_ClearFlag(uint32_t EXTI_Line) +{ + EXTI->INTFR = EXTI_Line; +} + +/********************************************************************* + * @fn EXTI_GetITStatus + * + * @brief Checks whether the specified EXTI line is asserted or not. + * + * @param EXTI_Line - specifies the EXTI lines to be enabled or disabled. + * + * @return The new state of EXTI_Line (SET or RESET). + */ +ITStatus EXTI_GetITStatus(uint32_t EXTI_Line) +{ + ITStatus bitstatus = RESET; + uint32_t enablestatus = 0; + + enablestatus = EXTI->INTENR & EXTI_Line; + if(((EXTI->INTFR & EXTI_Line) != (uint32_t)RESET) && (enablestatus != (uint32_t)RESET)) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + return bitstatus; +} + +/********************************************************************* + * @fn EXTI_ClearITPendingBit + * + * @brief Clears the EXTI's line pending bits. + * + * @param EXTI_Line - specifies the EXTI lines to be enabled or disabled. + * + * @return none + */ +void EXTI_ClearITPendingBit(uint32_t EXTI_Line) +{ + EXTI->INTFR = EXTI_Line; +} diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_flash.c b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_flash.c new file mode 100644 index 0000000000..922fa31b5d --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_flash.c @@ -0,0 +1,968 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_flash.c + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file provides all the FLASH firmware functions. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + ***************************************************************************************/ +#include "ch32v10x_flash.h" + +/* Flash Access Control Register bits */ +#define ACR_LATENCY_Mask ((uint32_t)0x00000038) +#define ACR_HLFCYA_Mask ((uint32_t)0xFFFFFFF7) +#define ACR_PRFTBE_Mask ((uint32_t)0xFFFFFFEF) + +/* Flash Access Control Register bits */ +#define ACR_PRFTBS_Mask ((uint32_t)0x00000020) + +/* Flash Control Register bits */ +#define CR_PG_Set ((uint32_t)0x00000001) +#define CR_PG_Reset ((uint32_t)0x00001FFE) +#define CR_PER_Set ((uint32_t)0x00000002) +#define CR_PER_Reset ((uint32_t)0x00001FFD) +#define CR_MER_Set ((uint32_t)0x00000004) +#define CR_MER_Reset ((uint32_t)0x00001FFB) +#define CR_OPTPG_Set ((uint32_t)0x00000010) +#define CR_OPTPG_Reset ((uint32_t)0x00001FEF) +#define CR_OPTER_Set ((uint32_t)0x00000020) +#define CR_OPTER_Reset ((uint32_t)0x00001FDF) +#define CR_STRT_Set ((uint32_t)0x00000040) +#define CR_LOCK_Set ((uint32_t)0x00000080) +#define CR_PAGE_PG ((uint32_t)0x00010000) +#define CR_PAGE_ER ((uint32_t)0x00020000) +#define CR_BUF_LOAD ((uint32_t)0x00040000) +#define CR_BUF_RST ((uint32_t)0x00080000) + +/* FLASH Status Register bits */ +#define SR_BSY ((uint32_t)0x00000001) +#define SR_PGERR ((uint32_t)0x00000004) +#define SR_WRPRTERR ((uint32_t)0x00000010) +#define SR_EOP ((uint32_t)0x00000020) + +/* FLASH Mask */ +#define RDPRT_Mask ((uint32_t)0x00000002) +#define WRP0_Mask ((uint32_t)0x000000FF) +#define WRP1_Mask ((uint32_t)0x0000FF00) +#define WRP2_Mask ((uint32_t)0x00FF0000) +#define WRP3_Mask ((uint32_t)0xFF000000) +#define OB_USER_BFB2 ((uint16_t)0x0008) + +/* FLASH Keys */ +#define RDP_Key ((uint16_t)0x00A5) +#define FLASH_KEY1 ((uint32_t)0x45670123) +#define FLASH_KEY2 ((uint32_t)0xCDEF89AB) + +/* FLASH BANK address */ +#define FLASH_BANK1_END_ADDRESS ((uint32_t)0x807FFFF) + +/* Delay definition */ +#define EraseTimeout ((uint32_t)0x000B0000) +#define ProgramTimeout ((uint32_t)0x00002000) + +/* Flash Program Vaild Address */ +#define ValidAddrStart (FLASH_BASE) +#define ValidAddrEnd (FLASH_BASE + 0x10000) + +/******************************************************************************** + * @fn FLASH_SetLatency + * + * @brief Sets the code latency value. + * + * @param FLASH_Latency - specifies the FLASH Latency value. + * FLASH_Latency_0 - FLASH Zero Latency cycle + * FLASH_Latency_1 - FLASH One Latency cycle + * FLASH_Latency_2 - FLASH Two Latency cycles + * + * @return None + */ +void FLASH_SetLatency(uint32_t FLASH_Latency) +{ + uint32_t tmpreg = 0; + + tmpreg = FLASH->ACTLR; + tmpreg &= ACR_LATENCY_Mask; + tmpreg |= FLASH_Latency; + FLASH->ACTLR = tmpreg; +} + +/******************************************************************************** + * @fn FLASH_HalfCycleAccessCmd + * + * @brief Enables or disables the Half cycle flash access. + * + * @param FLASH_HalfCycleAccess - specifies the FLASH Half cycle Access mode. + * FLASH_HalfCycleAccess_Enable - FLASH Half Cycle Enable + * FLASH_HalfCycleAccess_Disable - FLASH Half Cycle Disable + * + * @return None + */ +void FLASH_HalfCycleAccessCmd(uint32_t FLASH_HalfCycleAccess) +{ + FLASH->ACTLR &= ACR_HLFCYA_Mask; + FLASH->ACTLR |= FLASH_HalfCycleAccess; +} + +/******************************************************************************** + * @fn FLASH_PrefetchBufferCmd + * + * @brief Enables or disables the Prefetch Buffer. + * + * @param FLASH_PrefetchBuffer - specifies the Prefetch buffer status. + * FLASH_PrefetchBuffer_Enable - FLASH Prefetch Buffer Enable + * FLASH_PrefetchBuffer_Disable - FLASH Prefetch Buffer Disable + * + * @return None + */ +void FLASH_PrefetchBufferCmd(uint32_t FLASH_PrefetchBuffer) +{ + FLASH->ACTLR &= ACR_PRFTBE_Mask; + FLASH->ACTLR |= FLASH_PrefetchBuffer; +} + +/******************************************************************************** + * @fn FLASH_Unlock + * + * @brief Unlocks the FLASH Program Erase Controller. + * + * @return None + */ +void FLASH_Unlock(void) +{ + /* Authorize the FPEC of Bank1 Access */ + FLASH->KEYR = FLASH_KEY1; + FLASH->KEYR = FLASH_KEY2; +} + +/******************************************************************************** + * @fn FLASH_UnlockBank1 + * + * @brief Unlocks the FLASH Bank1 Program Erase Controller. + * equivalent to FLASH_Unlock function. + * + * @return None + */ +void FLASH_UnlockBank1(void) +{ + FLASH->KEYR = FLASH_KEY1; + FLASH->KEYR = FLASH_KEY2; +} + +/******************************************************************************** + * @fn FLASH_Lock + * + * @brief Locks the FLASH Program Erase Controller. + * + * @return None + */ +void FLASH_Lock(void) +{ + FLASH->CTLR |= CR_LOCK_Set; +} + +/******************************************************************************** + * @fn FLASH_LockBank1 + * + * @brief Locks the FLASH Bank1 Program Erase Controller. + * + * @return None + */ +void FLASH_LockBank1(void) +{ + FLASH->CTLR |= CR_LOCK_Set; +} + +/******************************************************************************** + * @fn FLASH_ErasePage + * + * @brief Erases a specified FLASH page. + * + * @param Page_Address - The page address to be erased. + * + * @return FLASH Status - The returned value can be: FLASH_BUSY, FLASH_ERROR_PG, + * FLASH_ERROR_WRP, FLASH_COMPLETE or FLASH_TIMEOUT. + */ +FLASH_Status FLASH_ErasePage(uint32_t Page_Address) +{ + FLASH_Status status = FLASH_COMPLETE; + + status = FLASH_WaitForLastOperation(EraseTimeout); + + if(status == FLASH_COMPLETE) + { + FLASH->CTLR |= CR_PER_Set; + FLASH->ADDR = Page_Address; + FLASH->CTLR |= CR_STRT_Set; + + status = FLASH_WaitForLastOperation(EraseTimeout); + + FLASH->CTLR &= CR_PER_Reset; + } + + *(__IO uint32_t *)0x40022034 = *(__IO uint32_t *)((Page_Address & 0xFFFFFFFC) ^ 0x00001000); + + return status; +} + +/******************************************************************************** + * @fn FLASH_EraseAllPages + * + * @brief Erases all FLASH pages. + * + * @return FLASH Status - The returned value can be:FLASH_BUSY, FLASH_ERROR_PG, + * FLASH_ERROR_WRP, FLASH_COMPLETE or FLASH_TIMEOUT. + */ +FLASH_Status FLASH_EraseAllPages(void) +{ + FLASH_Status status = FLASH_COMPLETE; + + status = FLASH_WaitForLastOperation(EraseTimeout); + if(status == FLASH_COMPLETE) + { + FLASH->CTLR |= CR_MER_Set; + FLASH->CTLR |= CR_STRT_Set; + + status = FLASH_WaitForLastOperation(EraseTimeout); + + FLASH->CTLR &= CR_MER_Reset; + } + + return status; +} + +/******************************************************************************** + * @fn FLASH_EraseAllBank1Pages + * + * @brief Erases all Bank1 FLASH pages. + * + * @return FLASH Status - The returned value can be: FLASH_BUSY, FLASH_ERROR_PG, + * FLASH_ERROR_WRP, FLASH_COMPLETE or FLASH_TIMEOUT. + */ +FLASH_Status FLASH_EraseAllBank1Pages(void) +{ + FLASH_Status status = FLASH_COMPLETE; + status = FLASH_WaitForLastBank1Operation(EraseTimeout); + + if(status == FLASH_COMPLETE) + { + FLASH->CTLR |= CR_MER_Set; + FLASH->CTLR |= CR_STRT_Set; + + status = FLASH_WaitForLastBank1Operation(EraseTimeout); + + FLASH->CTLR &= CR_MER_Reset; + } + return status; +} + +/******************************************************************************** + * @fn FLASH_EraseOptionBytes + * + * @brief Erases the FLASH option bytes. + * + * @return FLASH Status - The returned value can be: FLASH_BUSY, FLASH_ERROR_PG, + * FLASH_ERROR_WRP, FLASH_COMPLETE or FLASH_TIMEOUT. + */ +FLASH_Status FLASH_EraseOptionBytes(void) +{ + uint16_t rdptmp = RDP_Key; + + FLASH_Status status = FLASH_COMPLETE; + if(FLASH_GetReadOutProtectionStatus() != RESET) + { + rdptmp = 0x00; + } + status = FLASH_WaitForLastOperation(EraseTimeout); + if(status == FLASH_COMPLETE) + { + FLASH->OBKEYR = FLASH_KEY1; + FLASH->OBKEYR = FLASH_KEY2; + + FLASH->CTLR |= CR_OPTER_Set; + FLASH->CTLR |= CR_STRT_Set; + status = FLASH_WaitForLastOperation(EraseTimeout); + + if(status == FLASH_COMPLETE) + { + FLASH->CTLR &= CR_OPTER_Reset; + FLASH->CTLR |= CR_OPTPG_Set; + OB->RDPR = (uint16_t)rdptmp; + status = FLASH_WaitForLastOperation(ProgramTimeout); + + if(status != FLASH_TIMEOUT) + { + FLASH->CTLR &= CR_OPTPG_Reset; + } + } + else + { + if(status != FLASH_TIMEOUT) + { + FLASH->CTLR &= CR_OPTPG_Reset; + } + } + } + return status; +} + +/********************************************************************* + * @fn FLASH_ProgramWord + * + * @brief Programs a word at a specified address. + * + * @param Address - specifies the address to be programmed. + * Data - specifies the data to be programmed. + * + * @return FLASH Status - The returned value can be: FLASH_BUSY, FLASH_ERROR_PG, + * FLASH_ERROR_WRP, FLASH_COMPLETE or FLASH_TIMEOUT. + */ +FLASH_Status FLASH_ProgramWord(uint32_t Address, uint32_t Data) +{ + FLASH_Status status = FLASH_COMPLETE; + __IO uint32_t tmp = 0; + + status = FLASH_WaitForLastOperation(ProgramTimeout); + + if(status == FLASH_COMPLETE) + { + FLASH->CTLR |= CR_PG_Set; + + *(__IO uint16_t *)Address = (uint16_t)Data; + status = FLASH_WaitForLastOperation(ProgramTimeout); + + if(status == FLASH_COMPLETE) + { + tmp = Address + 2; + *(__IO uint16_t *)tmp = Data >> 16; + status = FLASH_WaitForLastOperation(ProgramTimeout); + FLASH->CTLR &= CR_PG_Reset; + } + else + { + FLASH->CTLR &= CR_PG_Reset; + } + } + + *(__IO uint32_t *)0x40022034 = *(__IO uint32_t *)((Address & 0xFFFFFFFC) ^ 0x00001000); + + return status; +} + +/********************************************************************* + * @fn FLASH_ProgramHalfWord + * + * @brief Programs a half word at a specified address. + * + * @param Address - specifies the address to be programmed. + * Data - specifies the data to be programmed. + * + * @return FLASH Status - The returned value can be: FLASH_BUSY, FLASH_ERROR_PG, + * FLASH_ERROR_WRP, FLASH_COMPLETE or FLASH_TIMEOUT. + */ +FLASH_Status FLASH_ProgramHalfWord(uint32_t Address, uint16_t Data) +{ + FLASH_Status status = FLASH_COMPLETE; + + status = FLASH_WaitForLastOperation(ProgramTimeout); + if(status == FLASH_COMPLETE) + { + FLASH->CTLR |= CR_PG_Set; + *(__IO uint16_t *)Address = Data; + status = FLASH_WaitForLastOperation(ProgramTimeout); + FLASH->CTLR &= CR_PG_Reset; + } + + *(__IO uint32_t *)0x40022034 = *(__IO uint32_t *)((Address & 0xFFFFFFFC) ^ 0x00001000); + + return status; +} + +/********************************************************************* + * @fn FLASH_ProgramOptionByteData + * + * @brief Programs a half word at a specified Option Byte Data address. + * + * @param Address - specifies the address to be programmed. + * Data - specifies the data to be programmed. + * + * @return FLASH Status - The returned value can be: FLASH_BUSY, FLASH_ERROR_PG, + * FLASH_ERROR_WRP, FLASH_COMPLETE or FLASH_TIMEOUT. + */ +FLASH_Status FLASH_ProgramOptionByteData(uint32_t Address, uint8_t Data) +{ + FLASH_Status status = FLASH_COMPLETE; + status = FLASH_WaitForLastOperation(ProgramTimeout); + if(status == FLASH_COMPLETE) + { + FLASH->OBKEYR = FLASH_KEY1; + FLASH->OBKEYR = FLASH_KEY2; + FLASH->CTLR |= CR_OPTPG_Set; + *(__IO uint16_t *)Address = Data; + status = FLASH_WaitForLastOperation(ProgramTimeout); + if(status != FLASH_TIMEOUT) + { + FLASH->CTLR &= CR_OPTPG_Reset; + } + } + + *(__IO uint32_t *)0x40022034 = *(__IO uint32_t *)((Address & 0xFFFFFFFC) ^ 0x00001000); + + return status; +} + +/********************************************************************* + * @fn FLASH_EnableWriteProtection + * + * @brief Write protects the desired sectors + * + * @param FLASH_Sectors - specifies the address of the pages to be write protected. + * + * @return FLASH Status - The returned value can be: FLASH_BUSY, FLASH_ERROR_PG, + * FLASH_ERROR_WRP, FLASH_COMPLETE or FLASH_TIMEOUT. + */ +FLASH_Status FLASH_EnableWriteProtection(uint32_t FLASH_Pages) +{ + uint16_t WRP0_Data = 0xFFFF, WRP1_Data = 0xFFFF, WRP2_Data = 0xFFFF, WRP3_Data = 0xFFFF; + + FLASH_Status status = FLASH_COMPLETE; + + FLASH_Pages = (uint32_t)(~FLASH_Pages); + WRP0_Data = (uint16_t)(FLASH_Pages & WRP0_Mask); + WRP1_Data = (uint16_t)((FLASH_Pages & WRP1_Mask) >> 8); + WRP2_Data = (uint16_t)((FLASH_Pages & WRP2_Mask) >> 16); + WRP3_Data = (uint16_t)((FLASH_Pages & WRP3_Mask) >> 24); + + status = FLASH_WaitForLastOperation(ProgramTimeout); + + if(status == FLASH_COMPLETE) + { + FLASH->OBKEYR = FLASH_KEY1; + FLASH->OBKEYR = FLASH_KEY2; + FLASH->CTLR |= CR_OPTPG_Set; + if(WRP0_Data != 0xFF) + { + OB->WRPR0 = WRP0_Data; + status = FLASH_WaitForLastOperation(ProgramTimeout); + } + if((status == FLASH_COMPLETE) && (WRP1_Data != 0xFF)) + { + OB->WRPR1 = WRP1_Data; + status = FLASH_WaitForLastOperation(ProgramTimeout); + } + if((status == FLASH_COMPLETE) && (WRP2_Data != 0xFF)) + { + OB->WRPR2 = WRP2_Data; + status = FLASH_WaitForLastOperation(ProgramTimeout); + } + + if((status == FLASH_COMPLETE) && (WRP3_Data != 0xFF)) + { + OB->WRPR3 = WRP3_Data; + status = FLASH_WaitForLastOperation(ProgramTimeout); + } + + if(status != FLASH_TIMEOUT) + { + FLASH->CTLR &= CR_OPTPG_Reset; + } + } + return status; +} + +/********************************************************************* + * @fn FLASH_ReadOutProtection + * + * @brief Enables or disables the read out protection. + * + * @param Newstate - new state of the ReadOut Protection(ENABLE or DISABLE). + * + * @return FLASH Status - The returned value can be: FLASH_BUSY, FLASH_ERROR_PG, + * FLASH_ERROR_WRP, FLASH_COMPLETE or FLASH_TIMEOUT. + */ +FLASH_Status FLASH_ReadOutProtection(FunctionalState NewState) +{ + FLASH_Status status = FLASH_COMPLETE; + status = FLASH_WaitForLastOperation(EraseTimeout); + if(status == FLASH_COMPLETE) + { + FLASH->OBKEYR = FLASH_KEY1; + FLASH->OBKEYR = FLASH_KEY2; + FLASH->CTLR |= CR_OPTER_Set; + FLASH->CTLR |= CR_STRT_Set; + status = FLASH_WaitForLastOperation(EraseTimeout); + if(status == FLASH_COMPLETE) + { + FLASH->CTLR &= CR_OPTER_Reset; + FLASH->CTLR |= CR_OPTPG_Set; + if(NewState != DISABLE) + { + OB->RDPR = 0x00; + } + else + { + OB->RDPR = RDP_Key; + } + status = FLASH_WaitForLastOperation(EraseTimeout); + + if(status != FLASH_TIMEOUT) + { + FLASH->CTLR &= CR_OPTPG_Reset; + } + } + else + { + if(status != FLASH_TIMEOUT) + { + FLASH->CTLR &= CR_OPTER_Reset; + } + } + } + return status; +} + +/********************************************************************* + * @fn FLASH_UserOptionByteConfig + * + * @brief Programs the FLASH User Option Byte - IWDG_SW / RST_STOP / RST_STDBY. + * + * @param OB_IWDG - Selects the IWDG mode + * OB_IWDG_SW - Software IWDG selected + * OB_IWDG_HW - Hardware IWDG selected + * OB_STOP - Reset event when entering STOP mode. + * OB_STOP_NoRST - No reset generated when entering in STOP + * OB_STOP_RST - Reset generated when entering in STOP + * OB_STDBY - Reset event when entering Standby mode. + * OB_STDBY_NoRST - No reset generated when entering in STANDBY + * OB_STDBY_RST - Reset generated when entering in STANDBY + * + * @return FLASH Status - The returned value can be: FLASH_BUSY, FLASH_ERROR_PG, + * FLASH_ERROR_WRP, FLASH_COMPLETE or FLASH_TIMEOUT. + */ +FLASH_Status FLASH_UserOptionByteConfig(uint16_t OB_IWDG, uint16_t OB_STOP, uint16_t OB_STDBY) +{ + FLASH_Status status = FLASH_COMPLETE; + + FLASH->OBKEYR = FLASH_KEY1; + FLASH->OBKEYR = FLASH_KEY2; + status = FLASH_WaitForLastOperation(ProgramTimeout); + + if(status == FLASH_COMPLETE) + { + FLASH->CTLR |= CR_OPTPG_Set; + + OB->USER = OB_IWDG | (uint16_t)(OB_STOP | (uint16_t)(OB_STDBY | ((uint16_t)0xF8))); + + status = FLASH_WaitForLastOperation(ProgramTimeout); + if(status != FLASH_TIMEOUT) + { + FLASH->CTLR &= CR_OPTPG_Reset; + } + } + return status; +} + +/********************************************************************* + * @fn FLASH_GetUserOptionByte + * + * @brief Returns the FLASH User Option Bytes values. + * + * @return The FLASH User Option Bytes values:IWDG_SW(Bit0), RST_STOP(Bit1) + * and RST_STDBY(Bit2). + */ +uint32_t FLASH_GetUserOptionByte(void) +{ + return (uint32_t)(FLASH->OBR >> 2); +} + +/********************************************************************* + * @fn FLASH_GetWriteProtectionOptionByte + * + * @brief Returns the FLASH Write Protection Option Bytes Register value. + * + * @return The FLASH Write Protection Option Bytes Register value. + */ +uint32_t FLASH_GetWriteProtectionOptionByte(void) +{ + return (uint32_t)(FLASH->WPR); +} + +/********************************************************************* + * @fn FLASH_GetReadOutProtectionStatus + * + * @brief Checks whether the FLASH Read Out Protection Status is set or not. + * + * @return FLASH ReadOut Protection Status(SET or RESET) + */ +FlagStatus FLASH_GetReadOutProtectionStatus(void) +{ + FlagStatus readoutstatus = RESET; + if((FLASH->OBR & RDPRT_Mask) != (uint32_t)RESET) + { + readoutstatus = SET; + } + else + { + readoutstatus = RESET; + } + return readoutstatus; +} + +/********************************************************************* + * @fn FLASH_GetPrefetchBufferStatus + * + * @brief Checks whether the FLASH Prefetch Buffer status is set or not. + * + * @return FLASH ReadOut Protection Status(SET or RESET) + */ +FlagStatus FLASH_GetPrefetchBufferStatus(void) +{ + FlagStatus bitstatus = RESET; + + if((FLASH->ACTLR & ACR_PRFTBS_Mask) != (uint32_t)RESET) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + return bitstatus; +} + +/********************************************************************* + * @fn FLASH_ITConfig + * + * @brief Enables or disables the specified FLASH interrupts. + * + * @param FLASH_IT - specifies the FLASH interrupt sources to be enabled or disabled. + * FLASH_IT_ERROR - FLASH Error Interrupt + * FLASH_IT_EOP - FLASH end of operation Interrupt + * NewState - new state of the specified Flash interrupts(ENABLE or DISABLE). + * + * @return FLASH Prefetch Buffer Status (SET or RESET). + */ +void FLASH_ITConfig(uint32_t FLASH_IT, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + FLASH->CTLR |= FLASH_IT; + } + else + { + FLASH->CTLR &= ~(uint32_t)FLASH_IT; + } +} + +/********************************************************************* + * @fn FLASH_GetFlagStatus + * + * @brief Checks whether the specified FLASH flag is set or not. + * + * @param FLASH_FLAG - specifies the FLASH flag to check. + * FLASH_FLAG_BSY - FLASH Busy flag + * FLASH_FLAG_PGERR - FLASH Program error flag + * FLASH_FLAG_WRPRTERR - FLASH Write protected error flag + * FLASH_FLAG_EOP - FLASH End of Operation flag + * FLASH_FLAG_OPTERR - FLASH Option Byte error flag + * + * @return The new state of FLASH_FLAG (SET or RESET). + */ +FlagStatus FLASH_GetFlagStatus(uint32_t FLASH_FLAG) +{ + FlagStatus bitstatus = RESET; + + if(FLASH_FLAG == FLASH_FLAG_OPTERR) + { + if((FLASH->OBR & FLASH_FLAG_OPTERR) != (uint32_t)RESET) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + } + else + { + if((FLASH->STATR & FLASH_FLAG) != (uint32_t)RESET) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + } + return bitstatus; +} + +/********************************************************************* + * @fn FLASH_ClearFlag + * + * @brief Clears the FLASH's pending flags. + * + * @param FLASH_FLAG - specifies the FLASH flags to clear. + * FLASH_FLAG_PGERR - FLASH Program error flag + * FLASH_FLAG_WRPRTERR - FLASH Write protected error flag + * FLASH_FLAG_EOP - FLASH End of Operation flag + * + * @return none + */ +void FLASH_ClearFlag(uint32_t FLASH_FLAG) +{ + FLASH->STATR = FLASH_FLAG; +} + +/********************************************************************* + * @fn FLASH_GetStatus + * + * @brief Returns the FLASH Status. + * + * @return FLASH Status - The returned value can be: FLASH_BUSY, FLASH_ERROR_PG, + * FLASH_ERROR_WRP or FLASH_COMPLETE. + */ +FLASH_Status FLASH_GetStatus(void) +{ + FLASH_Status flashstatus = FLASH_COMPLETE; + + if((FLASH->STATR & FLASH_FLAG_BSY) == FLASH_FLAG_BSY) + { + flashstatus = FLASH_BUSY; + } + else + { + if((FLASH->STATR & FLASH_FLAG_PGERR) != 0) + { + flashstatus = FLASH_ERROR_PG; + } + else + { + if((FLASH->STATR & FLASH_FLAG_WRPRTERR) != 0) + { + flashstatus = FLASH_ERROR_WRP; + } + else + { + flashstatus = FLASH_COMPLETE; + } + } + } + return flashstatus; +} + +/********************************************************************* + * @fn FLASH_GetBank1Status + * + * @brief Returns the FLASH Bank1 Status. + * + * @return FLASH Status - The returned value can be: FLASH_BUSY, FLASH_ERROR_PG, + * FLASH_ERROR_WRP or FLASH_COMPLETE. + */ +FLASH_Status FLASH_GetBank1Status(void) +{ + FLASH_Status flashstatus = FLASH_COMPLETE; + + if((FLASH->STATR & FLASH_FLAG_BANK1_BSY) == FLASH_FLAG_BSY) + { + flashstatus = FLASH_BUSY; + } + else + { + if((FLASH->STATR & FLASH_FLAG_BANK1_PGERR) != 0) + { + flashstatus = FLASH_ERROR_PG; + } + else + { + if((FLASH->STATR & FLASH_FLAG_BANK1_WRPRTERR) != 0) + { + flashstatus = FLASH_ERROR_WRP; + } + else + { + flashstatus = FLASH_COMPLETE; + } + } + } + return flashstatus; +} + +/********************************************************************* + * @fn FLASH_WaitForLastOperation + * + * @brief Waits for a Flash operation to complete or a TIMEOUT to occur. + * + * @param Timeout - FLASH programming Timeout + * + * @return FLASH Status - The returned value can be: FLASH_BUSY, FLASH_ERROR_PG, + * FLASH_ERROR_WRP or FLASH_COMPLETE. + */ +FLASH_Status FLASH_WaitForLastOperation(uint32_t Timeout) +{ + FLASH_Status status = FLASH_COMPLETE; + + status = FLASH_GetBank1Status(); + while((status == FLASH_BUSY) && (Timeout != 0x00)) + { + status = FLASH_GetBank1Status(); + Timeout--; + } + if(Timeout == 0x00) + { + status = FLASH_TIMEOUT; + } + return status; +} + +/********************************************************************* + * @fn FLASH_WaitForLastBank1Operation + * + * @brief Waits for a Flash operation on Bank1 to complete or a TIMEOUT to occur. + * + * @param Timeout - FLASH programming Timeout + * + * @return FLASH Status - The returned value can be: FLASH_BUSY, FLASH_ERROR_PG, + * FLASH_ERROR_WRP or FLASH_COMPLETE. + */ +FLASH_Status FLASH_WaitForLastBank1Operation(uint32_t Timeout) +{ + FLASH_Status status = FLASH_COMPLETE; + + status = FLASH_GetBank1Status(); + while((status == FLASH_FLAG_BANK1_BSY) && (Timeout != 0x00)) + { + status = FLASH_GetBank1Status(); + Timeout--; + } + if(Timeout == 0x00) + { + status = FLASH_TIMEOUT; + } + return status; +} + +/********************************************************************* + * @fn FLASH_Unlock_Fast + * + * @brief Unlocks the Fast Program Erase Mode. + * + * @return none + */ +void FLASH_Unlock_Fast(void) +{ + /* Authorize the FPEC of Bank1 Access */ + FLASH->KEYR = FLASH_KEY1; + FLASH->KEYR = FLASH_KEY2; + + /* Fast program mode unlock */ + FLASH->MODEKEYR = FLASH_KEY1; + FLASH->MODEKEYR = FLASH_KEY2; +} + +/********************************************************************* + * @fn FLASH_Unlock_Fast + * + * @brief Unlocks the Fast Program Erase Mode. + * + * @return none + */ +void FLASH_Lock_Fast(void) +{ + FLASH->CTLR |= CR_LOCK_Set; +} + +/********************************************************************* + * @fn FLASH_BufReset + * + * @brief Flash Buffer reset. + * + * @return none + */ +void FLASH_BufReset(void) +{ + FLASH->CTLR |= CR_PAGE_PG; + FLASH->CTLR |= CR_BUF_RST; + while(FLASH->STATR & SR_BSY) + ; + FLASH->CTLR &= ~CR_PAGE_PG; +} + +/********************************************************************* + * @fn FLASH_BufLoad + * + * @brief Flash Buffer load(128 bit). + * + * @param Address - specifies the address to be programmed. + * Data0 - specifies the data0 to be programmed. + * Data1 - specifies the data1 to be programmed. + * Data2 - specifies the data2 to be programmed. + * Data3 - specifies the data3 to be programmed. + * + * @return none + */ +void FLASH_BufLoad(uint32_t Address, uint32_t Data0, uint32_t Data1, uint32_t Data2, uint32_t Data3) +{ + if((Address >= ValidAddrStart) && (Address < ValidAddrEnd)) + { + FLASH->CTLR |= CR_PAGE_PG; + *(__IO uint32_t *)(Address + 0x00) = Data0; + *(__IO uint32_t *)(Address + 0x04) = Data1; + *(__IO uint32_t *)(Address + 0x08) = Data2; + *(__IO uint32_t *)(Address + 0x0C) = Data3; + FLASH->CTLR |= CR_BUF_LOAD; + while(FLASH->STATR & SR_BSY) + ; + FLASH->CTLR &= ~CR_PAGE_PG; + + *(__IO uint32_t *)0x40022034 = *(__IO uint32_t *)((Address & 0xFFFFFFFC) ^ 0x00001000); + } +} + +/********************************************************************* + * @fn FLASH_ErasePage_Fast + * + * @brief Erases a specified FLASH page (1page = 256Byte). + * + * @param Page_Address - The page address to be erased. + * + * @return none + */ +void FLASH_ErasePage_Fast(uint32_t Page_Address) +{ + if((Page_Address >= ValidAddrStart) && (Page_Address < ValidAddrEnd)) + { + FLASH->CTLR |= CR_PAGE_ER; + FLASH->ADDR = Page_Address; + FLASH->CTLR |= CR_STRT_Set; + while(FLASH->STATR & SR_BSY) + ; + FLASH->CTLR &= ~CR_PAGE_ER; + + *(__IO uint32_t *)0x40022034 = *(__IO uint32_t *)((Page_Address & 0xFFFFFFFC) ^ 0x00001000); + } +} + +/********************************************************************* + * @fn FLASH_ProgramPage_Fast + * + * @brief Program a specified FLASH page (1page = 256Byte). + * + * @param Page_Address - The page address to be programed. + * + * @return none + */ +void FLASH_ProgramPage_Fast(uint32_t Page_Address) +{ + if((Page_Address >= ValidAddrStart) && (Page_Address < ValidAddrEnd)) + { + FLASH->CTLR |= CR_PAGE_PG; + FLASH->ADDR = Page_Address; + FLASH->CTLR |= CR_STRT_Set; + while(FLASH->STATR & SR_BSY) + ; + FLASH->CTLR &= ~CR_PAGE_PG; + + *(__IO uint32_t *)0x40022034 = *(__IO uint32_t *)((Page_Address & 0xFFFFFFFC) ^ 0x00001000); + } +} diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_gpio.c b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_gpio.c new file mode 100644 index 0000000000..737b0fed2c --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_gpio.c @@ -0,0 +1,538 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_gpio.c + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file provides all the GPIO firmware functions. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *******************************************************************************/ +#include "ch32v10x_gpio.h" +#include "ch32v10x_rcc.h" + +/* MASK */ +#define ECR_PORTPINCONFIG_MASK ((uint16_t)0xFF80) +#define LSB_MASK ((uint16_t)0xFFFF) +#define DBGAFR_POSITION_MASK ((uint32_t)0x000F0000) +#define DBGAFR_SWJCFG_MASK ((uint32_t)0xF0FFFFFF) +#define DBGAFR_LOCATION_MASK ((uint32_t)0x00200000) +#define DBGAFR_NUMBITS_MASK ((uint32_t)0x00100000) + +/********************************************************************* + * @fn GPIO_DeInit + * + * @brief Deinitializes the GPIOx peripheral registers to their default + * reset values. + * + * @param GPIOx - where x can be (A..G) to select the GPIO peripheral. + * + * @return none + */ +void GPIO_DeInit(GPIO_TypeDef *GPIOx) +{ + if(GPIOx == GPIOA) + { + RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOA, ENABLE); + RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOA, DISABLE); + } + else if(GPIOx == GPIOB) + { + RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOB, ENABLE); + RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOB, DISABLE); + } + else if(GPIOx == GPIOC) + { + RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOC, ENABLE); + RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOC, DISABLE); + } + else if(GPIOx == GPIOD) + { + RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOD, ENABLE); + RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOD, DISABLE); + } + else if(GPIOx == GPIOE) + { + RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOE, ENABLE); + RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOE, DISABLE); + } + else if(GPIOx == GPIOF) + { + RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOF, ENABLE); + RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOF, DISABLE); + } + else + { + if(GPIOx == GPIOG) + { + RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOG, ENABLE); + RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOG, DISABLE); + } + } +} + +/********************************************************************* + * @fn GPIO_AFIODeInit + * + * @brief Deinitializes the Alternate Functions (remap, event control + * and EXTI configuration) registers to their default reset values. + * + * @return none + */ +void GPIO_AFIODeInit(void) +{ + RCC_APB2PeriphResetCmd(RCC_APB2Periph_AFIO, ENABLE); + RCC_APB2PeriphResetCmd(RCC_APB2Periph_AFIO, DISABLE); +} + +/********************************************************************* + * @fn GPIO_Init + * + * @brief GPIOx - where x can be (A..G) to select the GPIO peripheral. + * + * @param GPIO_InitStruct - pointer to a GPIO_InitTypeDef structure that + * contains the configuration information for the specified GPIO peripheral. + * + * @return none + */ +void GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_InitStruct) +{ + uint32_t currentmode = 0x00, currentpin = 0x00, pinpos = 0x00, pos = 0x00; + uint32_t tmpreg = 0x00, pinmask = 0x00; + + currentmode = ((uint32_t)GPIO_InitStruct->GPIO_Mode) & ((uint32_t)0x0F); + + if((((uint32_t)GPIO_InitStruct->GPIO_Mode) & ((uint32_t)0x10)) != 0x00) + { + currentmode |= (uint32_t)GPIO_InitStruct->GPIO_Speed; + } + + if(((uint32_t)GPIO_InitStruct->GPIO_Pin & ((uint32_t)0x00FF)) != 0x00) + { + tmpreg = GPIOx->CFGLR; + + for(pinpos = 0x00; pinpos < 0x08; pinpos++) + { + pos = ((uint32_t)0x01) << pinpos; + currentpin = (GPIO_InitStruct->GPIO_Pin) & pos; + + if(currentpin == pos) + { + pos = pinpos << 2; + pinmask = ((uint32_t)0x0F) << pos; + tmpreg &= ~pinmask; + tmpreg |= (currentmode << pos); + + if(GPIO_InitStruct->GPIO_Mode == GPIO_Mode_IPD) + { + GPIOx->BCR = (((uint32_t)0x01) << pinpos); + } + else + { + if(GPIO_InitStruct->GPIO_Mode == GPIO_Mode_IPU) + { + GPIOx->BSHR = (((uint32_t)0x01) << pinpos); + } + } + } + } + GPIOx->CFGLR = tmpreg; + } + + if(GPIO_InitStruct->GPIO_Pin > 0x00FF) + { + tmpreg = GPIOx->CFGHR; + + for(pinpos = 0x00; pinpos < 0x08; pinpos++) + { + pos = (((uint32_t)0x01) << (pinpos + 0x08)); + currentpin = ((GPIO_InitStruct->GPIO_Pin) & pos); + + if(currentpin == pos) + { + pos = pinpos << 2; + pinmask = ((uint32_t)0x0F) << pos; + tmpreg &= ~pinmask; + tmpreg |= (currentmode << pos); + + if(GPIO_InitStruct->GPIO_Mode == GPIO_Mode_IPD) + { + GPIOx->BCR = (((uint32_t)0x01) << (pinpos + 0x08)); + } + + if(GPIO_InitStruct->GPIO_Mode == GPIO_Mode_IPU) + { + GPIOx->BSHR = (((uint32_t)0x01) << (pinpos + 0x08)); + } + } + } + GPIOx->CFGHR = tmpreg; + } +} + +/********************************************************************* + * @fn GPIO_StructInit + * + * @brief Fills each GPIO_InitStruct member with its default + * + * @param GPIO_InitStruct - pointer to a GPIO_InitTypeDef structure + * which will be initialized. + * + * @return none + */ +void GPIO_StructInit(GPIO_InitTypeDef *GPIO_InitStruct) +{ + GPIO_InitStruct->GPIO_Pin = GPIO_Pin_All; + GPIO_InitStruct->GPIO_Speed = GPIO_Speed_2MHz; + GPIO_InitStruct->GPIO_Mode = GPIO_Mode_IN_FLOATING; +} + +/********************************************************************* + * @fn GPIO_ReadInputDataBit + * + * @brief GPIOx - where x can be (A..G) to select the GPIO peripheral. + * + * @param GPIO_Pin - specifies the port bit to read. + * This parameter can be GPIO_Pin_x where x can be (0..15). + * + * @return The input port pin value. + */ +uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin) +{ + uint8_t bitstatus = 0x00; + + if((GPIOx->INDR & GPIO_Pin) != (uint32_t)Bit_RESET) + { + bitstatus = (uint8_t)Bit_SET; + } + else + { + bitstatus = (uint8_t)Bit_RESET; + } + + return bitstatus; +} + +/********************************************************************* + * @fn GPIO_ReadInputData + * + * @brief Reads the specified GPIO input data port. + * + * @param GPIOx: where x can be (A..G) to select the GPIO peripheral. + * + * @return The input port pin value. + */ +uint16_t GPIO_ReadInputData(GPIO_TypeDef *GPIOx) +{ + return ((uint16_t)GPIOx->INDR); +} + +/********************************************************************* + * @fn GPIO_ReadOutputDataBit + * + * @brief Reads the specified output data port bit. + * + * @param GPIOx - where x can be (A..G) to select the GPIO peripheral. + * GPIO_Pin - specifies the port bit to read. + * This parameter can be GPIO_Pin_x where x can be (0..15). + * + * @return none + */ +uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin) +{ + uint8_t bitstatus = 0x00; + + if((GPIOx->OUTDR & GPIO_Pin) != (uint32_t)Bit_RESET) + { + bitstatus = (uint8_t)Bit_SET; + } + else + { + bitstatus = (uint8_t)Bit_RESET; + } + + return bitstatus; +} + +/********************************************************************* + * @fn GPIO_ReadOutputData + * + * @brief Reads the specified GPIO output data port. + * + * @param GPIOx - where x can be (A..G) to select the GPIO peripheral. + * + * @return GPIO output port pin value. + */ +uint16_t GPIO_ReadOutputData(GPIO_TypeDef *GPIOx) +{ + return ((uint16_t)GPIOx->OUTDR); +} + +/********************************************************************* + * @fn GPIO_SetBits + * + * @brief Sets the selected data port bits. + * + * @param GPIOx - where x can be (A..G) to select the GPIO peripheral. + * GPIO_Pin - specifies the port bits to be written. + * This parameter can be any combination of GPIO_Pin_x where x can be (0..15). + * + * @return none + */ +void GPIO_SetBits(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin) +{ + GPIOx->BSHR = GPIO_Pin; +} + +/********************************************************************* + * @fn GPIO_ResetBits + * + * @brief Clears the selected data port bits. + * + * @param GPIOx - where x can be (A..G) to select the GPIO peripheral. + * GPIO_Pin - specifies the port bits to be written. + * This parameter can be any combination of GPIO_Pin_x where x can be (0..15). + * + * @return none + */ +void GPIO_ResetBits(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin) +{ + GPIOx->BCR = GPIO_Pin; +} + +/********************************************************************* + * @fn GPIO_WriteBit + * + * @brief Sets or clears the selected data port bit. + * + * @param GPIO_Pin - specifies the port bit to be written. + * This parameter can be one of GPIO_Pin_x where x can be (0..15). + * BitVal - specifies the value to be written to the selected bit. + * Bit_SetL - to clear the port pin. + * Bit_SetH - to set the port pin. + * + * @return none + */ +void GPIO_WriteBit(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, BitAction BitVal) +{ + if(BitVal != Bit_RESET) + { + GPIOx->BSHR = GPIO_Pin; + } + else + { + GPIOx->BCR = GPIO_Pin; + } +} + +/********************************************************************* + * @fn GPIO_Write + * + * @brief Writes data to the specified GPIO data port. + * + * @param GPIOx - where x can be (A..G) to select the GPIO peripheral. + * PortVal - specifies the value to be written to the port output data register. + * + * @return none + */ +void GPIO_Write(GPIO_TypeDef *GPIOx, uint16_t PortVal) +{ + GPIOx->OUTDR = PortVal; +} + +/********************************************************************* + * @fn GPIO_PinLockConfig + * + * @brief Locks GPIO Pins configuration registers. + * + * @param GPIOx - where x can be (A..G) to select the GPIO peripheral. + * GPIO_Pin - specifies the port bit to be written. + * This parameter can be any combination of GPIO_Pin_x where x can be (0..15). + * + * @return none + */ +void GPIO_PinLockConfig(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin) +{ + uint32_t tmp = 0x00010000; + + tmp |= GPIO_Pin; + GPIOx->LCKR = tmp; + GPIOx->LCKR = GPIO_Pin; + GPIOx->LCKR = tmp; + tmp = GPIOx->LCKR; + tmp = GPIOx->LCKR; +} + +/********************************************************************* + * @fn GPIO_EventOutputConfig + * + * @brief Selects the GPIO pin used as Event output. + * + * @param GPIO_PortSource - selects the GPIO port to be used as source + * for Event output. + * This parameter can be GPIO_PortSourceGPIOx where x can be (A..E). + * GPIO_PinSource - specifies the pin for the Event output. + * This parameter can be GPIO_PinSourcex where x can be (0..15). + * + * @return none + */ +void GPIO_EventOutputConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource) +{ + uint32_t tmpreg = 0x00; + + tmpreg = AFIO->ECR; + tmpreg &= ECR_PORTPINCONFIG_MASK; + tmpreg |= (uint32_t)GPIO_PortSource << 0x04; + tmpreg |= GPIO_PinSource; + AFIO->ECR = tmpreg; +} + +/********************************************************************* + * @fn GPIO_EventOutputCmd + * + * @brief Enables or disables the Event Output. + * + * @param NewState - ENABLE or DISABLE. + * + * @return none + */ +void GPIO_EventOutputCmd(FunctionalState NewState) +{ + if(NewState) + { + AFIO->ECR |= (1 << 7); + } + else + { + AFIO->ECR &= ~(1 << 7); + } +} + +/********************************************************************* + * @fn GPIO_PinRemapConfig + * + * @brief Changes the mapping of the specified pin. + * + * @param GPIO_Remap - selects the pin to remap. + * GPIO_Remap_SPI1 - SPI1 Alternate Function mapping + * GPIO_Remap_I2C1 - I2C1 Alternate Function mapping + * GPIO_Remap_USART1 - USART1 Alternate Function mapping + * GPIO_Remap_USART2 - USART2 Alternate Function mapping + * GPIO_PartialRemap_USART3 - USART3 Partial Alternate Function mapping + * GPIO_FullRemap_USART3 - USART3 Full Alternate Function mapping + * GPIO_PartialRemap_TIM1 - TIM1 Partial Alternate Function mapping + * GPIO_FullRemap_TIM1 - TIM1 Full Alternate Function mapping + * GPIO_PartialRemap1_TIM2 - TIM2 Partial1 Alternate Function mapping + * GPIO_PartialRemap2_TIM2 - TIM2 Partial2 Alternate Function mapping + * GPIO_FullRemap_TIM2 - TIM2 Full Alternate Function mapping + * GPIO_PartialRemap_TIM3 - TIM3 Partial Alternate Function mapping + * GPIO_FullRemap_TIM3 - TIM3 Full Alternate Function mapping + * GPIO_Remap_TIM4 - TIM4 Alternate Function mapping + * GPIO_Remap1_CAN1 - CAN1 Alternate Function mapping + * GPIO_Remap2_CAN1 - CAN1 Alternate Function mapping + * GPIO_Remap_PD01 - PD01 Alternate Function mapping + * GPIO_Remap_ADC1_ETRGINJ - ADC1 External Trigger Injected Conversion remapping + * GPIO_Remap_ADC1_ETRGREG - ADC1 External Trigger Regular Conversion remapping + * GPIO_Remap_ADC2_ETRGINJ - ADC2 External Trigger Injected Conversion remapping + * GPIO_Remap_ADC2_ETRGREG - ADC2 External Trigger Regular Conversion remapping + * GPIO_Remap_ETH - Ethernet remapping + * GPIO_Remap_CAN2 - CAN2 remapping + * GPIO_Remap_MII_RMII_SEL - MII or RMII selection + * GPIO_Remap_SWJ_NoJTRST - Full SWJ Enabled (JTAG-DP + SW-DP) but without JTRST + * GPIO_Remap_SWJ_JTAGDisable - JTAG-DP Disabled and SW-DP Enabled + * GPIO_Remap_SWJ_Disable - Full SWJ Disabled (JTAG-DP + SW-DP) + * GPIO_Remap_TIM2ITR1_PTP_SOF - Ethernet PTP output or USB OTG SOF (Start of Frame) connected + * to TIM2 Internal Trigger 1 for calibration + * GPIO_Remap_TIM2ITR1_PTP_SOF - Ethernet PTP output or USB OTG SOF (Start of Frame) + * GPIO_Remap_TIM8 - TIM8 Alternate Function mapping + * GPIO_PartialRemap_TIM9 - TIM9 Partial Alternate Function mapping + * GPIO_FullRemap_TIM9 - TIM9 Full Alternate Function mapping + * GPIO_PartialRemap_TIM10 - TIM10 Partial Alternate Function mapping + * GPIO_FullRemap_TIM10 - TIM10 Full Alternate Function mapping + * GPIO_Remap_FSMC_NADV - FSMC_NADV Alternate Function mapping + * GPIO_PartialRemap_USART4 - USART4 Partial Alternate Function mapping + * GPIO_FullRemap_USART4 - USART4 Full Alternate Function mapping + * GPIO_PartialRemap_USART5 - USART5 Partial Alternate Function mapping + * GPIO_FullRemap_USART5 - USART5 Full Alternate Function mapping + * GPIO_PartialRemap_USART6 - USART6 Partial Alternate Function mapping + * GPIO_FullRemap_USART6 - USART6 Full Alternate Function mapping + * GPIO_PartialRemap_USART7 - USART7 Partial Alternate Function mapping + * GPIO_FullRemap_USART7 - USART7 Full Alternate Function mapping + * GPIO_PartialRemap_USART8 - USART8 Partial Alternate Function mapping + * GPIO_FullRemap_USART8 - USART8 Full Alternate Function mapping + * GPIO_Remap_USART1_HighBit - USART1 Alternate Function mapping high bit + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void GPIO_PinRemapConfig(uint32_t GPIO_Remap, FunctionalState NewState) +{ + uint32_t tmp = 0x00, tmp1 = 0x00, tmpreg = 0x00, tmpmask = 0x00; + + if((GPIO_Remap & 0x80000000) == 0x80000000) + { + tmpreg = AFIO->PCFR2; + } + else + { + tmpreg = AFIO->PCFR1; + } + + tmpmask = (GPIO_Remap & DBGAFR_POSITION_MASK) >> 0x10; + tmp = GPIO_Remap & LSB_MASK; + + if((GPIO_Remap & (DBGAFR_LOCATION_MASK | DBGAFR_NUMBITS_MASK)) == (DBGAFR_LOCATION_MASK | DBGAFR_NUMBITS_MASK)) + { + tmpreg &= DBGAFR_SWJCFG_MASK; + AFIO->PCFR1 &= DBGAFR_SWJCFG_MASK; + } + else if((GPIO_Remap & DBGAFR_NUMBITS_MASK) == DBGAFR_NUMBITS_MASK) + { + tmp1 = ((uint32_t)0x03) << tmpmask; + tmpreg &= ~tmp1; + tmpreg |= ~DBGAFR_SWJCFG_MASK; + } + else + { + tmpreg &= ~(tmp << ((GPIO_Remap >> 0x15) * 0x10)); + tmpreg |= ~DBGAFR_SWJCFG_MASK; + } + + if(NewState != DISABLE) + { + tmpreg |= (tmp << ((GPIO_Remap >> 0x15) * 0x10)); + } + + if((GPIO_Remap & 0x80000000) == 0x80000000) + { + AFIO->PCFR2 = tmpreg; + } + else + { + AFIO->PCFR1 = tmpreg; + } +} + +/********************************************************************* + * @fn GPIO_EXTILineConfig + * + * @brief Selects the GPIO pin used as EXTI Line. + * + * @param GPIO_PortSource - selects the GPIO port to be used as source for EXTI lines. + * This parameter can be GPIO_PortSourceGPIOx where x can be (A..G). + * GPIO_PinSource - specifies the EXTI line to be configured. + * This parameter can be GPIO_PinSourcex where x can be (0..15). + * + * @return none + */ +void GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource) +{ + uint32_t tmp = 0x00; + + tmp = ((uint32_t)0x0F) << (0x04 * (GPIO_PinSource & (uint8_t)0x03)); + AFIO->EXTICR[GPIO_PinSource >> 0x02] &= ~tmp; + AFIO->EXTICR[GPIO_PinSource >> 0x02] |= (((uint32_t)GPIO_PortSource) << (0x04 * (GPIO_PinSource & (uint8_t)0x03))); +} + + + + diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_i2c.c b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_i2c.c new file mode 100644 index 0000000000..972ede044b --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_i2c.c @@ -0,0 +1,979 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_i2c.c + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file provides all the I2C firmware functions. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *******************************************************************************/ +#include "ch32v10x_i2c.h" +#include "ch32v10x_rcc.h" + +/* I2C SPE mask */ +#define CTLR1_PE_Set ((uint16_t)0x0001) +#define CTLR1_PE_Reset ((uint16_t)0xFFFE) + +/* I2C START mask */ +#define CTLR1_START_Set ((uint16_t)0x0100) +#define CTLR1_START_Reset ((uint16_t)0xFEFF) + +/* I2C STOP mask */ +#define CTLR1_STOP_Set ((uint16_t)0x0200) +#define CTLR1_STOP_Reset ((uint16_t)0xFDFF) + +/* I2C ACK mask */ +#define CTLR1_ACK_Set ((uint16_t)0x0400) +#define CTLR1_ACK_Reset ((uint16_t)0xFBFF) + +/* I2C ENGC mask */ +#define CTLR1_ENGC_Set ((uint16_t)0x0040) +#define CTLR1_ENGC_Reset ((uint16_t)0xFFBF) + +/* I2C SWRST mask */ +#define CTLR1_SWRST_Set ((uint16_t)0x8000) +#define CTLR1_SWRST_Reset ((uint16_t)0x7FFF) + +/* I2C PEC mask */ +#define CTLR1_PEC_Set ((uint16_t)0x1000) +#define CTLR1_PEC_Reset ((uint16_t)0xEFFF) + +/* I2C ENPEC mask */ +#define CTLR1_ENPEC_Set ((uint16_t)0x0020) +#define CTLR1_ENPEC_Reset ((uint16_t)0xFFDF) + +/* I2C ENARP mask */ +#define CTLR1_ENARP_Set ((uint16_t)0x0010) +#define CTLR1_ENARP_Reset ((uint16_t)0xFFEF) + +/* I2C NOSTRETCH mask */ +#define CTLR1_NOSTRETCH_Set ((uint16_t)0x0080) +#define CTLR1_NOSTRETCH_Reset ((uint16_t)0xFF7F) + +/* I2C registers Masks */ +#define CTLR1_CLEAR_Mask ((uint16_t)0xFBF5) + +/* I2C DMAEN mask */ +#define CTLR2_DMAEN_Set ((uint16_t)0x0800) +#define CTLR2_DMAEN_Reset ((uint16_t)0xF7FF) + +/* I2C LAST mask */ +#define CTLR2_LAST_Set ((uint16_t)0x1000) +#define CTLR2_LAST_Reset ((uint16_t)0xEFFF) + +/* I2C FREQ mask */ +#define CTLR2_FREQ_Reset ((uint16_t)0xFFC0) + +/* I2C ADD0 mask */ +#define OADDR1_ADD0_Set ((uint16_t)0x0001) +#define OADDR1_ADD0_Reset ((uint16_t)0xFFFE) + +/* I2C ENDUAL mask */ +#define OADDR2_ENDUAL_Set ((uint16_t)0x0001) +#define OADDR2_ENDUAL_Reset ((uint16_t)0xFFFE) + +/* I2C ADD2 mask */ +#define OADDR2_ADD2_Reset ((uint16_t)0xFF01) + +/* I2C F/S mask */ +#define CKCFGR_FS_Set ((uint16_t)0x8000) + +/* I2C CCR mask */ +#define CKCFGR_CCR_Set ((uint16_t)0x0FFF) + +/* I2C FLAG mask */ +#define FLAG_Mask ((uint32_t)0x00FFFFFF) + +/* I2C Interrupt Enable mask */ +#define ITEN_Mask ((uint32_t)0x07000000) + +/********************************************************************* + * @fn I2C_DeInit + * + * @brief Deinitializes the I2Cx peripheral registers to their default + * reset values. + * + * @param I2Cx - where x can be 1 or 2 to select the I2C peripheral. + * + * @return none + */ +void I2C_DeInit(I2C_TypeDef *I2Cx) +{ + if(I2Cx == I2C1) + { + RCC_APB1PeriphResetCmd(RCC_APB1Periph_I2C1, ENABLE); + RCC_APB1PeriphResetCmd(RCC_APB1Periph_I2C1, DISABLE); + } + else + { + RCC_APB1PeriphResetCmd(RCC_APB1Periph_I2C2, ENABLE); + RCC_APB1PeriphResetCmd(RCC_APB1Periph_I2C2, DISABLE); + } +} + +/********************************************************************* + * @fn I2C_Init + * + * @brief Initializes the I2Cx peripheral according to the specified + * parameters in the I2C_InitStruct. + * @param I2Cx - where x can be 1 or 2 to select the I2C peripheral. + * I2C_InitStruct - pointer to a I2C_InitTypeDef structure that + * contains the configuration information for the specified I2C peripheral. + * + * @return none + */ +void I2C_Init(I2C_TypeDef *I2Cx, I2C_InitTypeDef *I2C_InitStruct) +{ + uint16_t tmpreg = 0, freqrange = 0; + uint16_t result = 0x04; + uint32_t pclk1 = 8000000; + + RCC_ClocksTypeDef rcc_clocks; + + tmpreg = I2Cx->CTLR2; + tmpreg &= CTLR2_FREQ_Reset; + RCC_GetClocksFreq(&rcc_clocks); + pclk1 = rcc_clocks.PCLK1_Frequency; + freqrange = (uint16_t)(pclk1 / 1000000); + tmpreg |= freqrange; + I2Cx->CTLR2 = tmpreg; + + I2Cx->CTLR1 &= CTLR1_PE_Reset; + tmpreg = 0; + + if(I2C_InitStruct->I2C_ClockSpeed <= 100000) + { + result = (uint16_t)(pclk1 / (I2C_InitStruct->I2C_ClockSpeed << 1)); + + if(result < 0x04) + { + result = 0x04; + } + + tmpreg |= result; + I2Cx->RTR = freqrange + 1; + } + else + { + if(I2C_InitStruct->I2C_DutyCycle == I2C_DutyCycle_2) + { + result = (uint16_t)(pclk1 / (I2C_InitStruct->I2C_ClockSpeed * 3)); + } + else + { + result = (uint16_t)(pclk1 / (I2C_InitStruct->I2C_ClockSpeed * 25)); + result |= I2C_DutyCycle_16_9; + } + + if((result & CKCFGR_CCR_Set) == 0) + { + result |= (uint16_t)0x0001; + } + + tmpreg |= (uint16_t)(result | CKCFGR_FS_Set); + I2Cx->RTR = (uint16_t)(((freqrange * (uint16_t)300) / (uint16_t)1000) + (uint16_t)1); + } + + I2Cx->CKCFGR = tmpreg; + I2Cx->CTLR1 |= CTLR1_PE_Set; + + tmpreg = I2Cx->CTLR1; + tmpreg &= CTLR1_CLEAR_Mask; + tmpreg |= (uint16_t)((uint32_t)I2C_InitStruct->I2C_Mode | I2C_InitStruct->I2C_Ack); + I2Cx->CTLR1 = tmpreg; + + I2Cx->OADDR1 = (I2C_InitStruct->I2C_AcknowledgedAddress | I2C_InitStruct->I2C_OwnAddress1); +} + +/********************************************************************* + * @fn I2C_StructInit + * + * @brief Fills each I2C_InitStruct member with its default value. + * + * @param I2C_InitStruct - pointer to an I2C_InitTypeDef structure which + * will be initialized. + * + * @return none + */ +void I2C_StructInit(I2C_InitTypeDef *I2C_InitStruct) +{ + I2C_InitStruct->I2C_ClockSpeed = 5000; + I2C_InitStruct->I2C_Mode = I2C_Mode_I2C; + I2C_InitStruct->I2C_DutyCycle = I2C_DutyCycle_2; + I2C_InitStruct->I2C_OwnAddress1 = 0; + I2C_InitStruct->I2C_Ack = I2C_Ack_Disable; + I2C_InitStruct->I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit; +} + +/********************************************************************* + * @fn I2C_Cmd + * + * @brief Enables or disables the specified I2C peripheral. + * + * @param I2Cx - where x can be 1 or 2 to select the I2C peripheral. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void I2C_Cmd(I2C_TypeDef *I2Cx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + I2Cx->CTLR1 |= CTLR1_PE_Set; + } + else + { + I2Cx->CTLR1 &= CTLR1_PE_Reset; + } +} + +/********************************************************************* + * @fn I2C_DMACmd + * + * @brief Enables or disables the specified I2C DMA requests. + * + * @param I2Cx - where x can be 1 or 2 to select the I2C peripheral. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void I2C_DMACmd(I2C_TypeDef *I2Cx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + I2Cx->CTLR2 |= CTLR2_DMAEN_Set; + } + else + { + I2Cx->CTLR2 &= CTLR2_DMAEN_Reset; + } +} + +/********************************************************************* + * @fn I2C_DMALastTransferCmd + * + * @brief Specifies if the next DMA transfer will be the last one. + * + * @param I2Cx - where x can be 1 or 2 to select the I2C peripheral. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void I2C_DMALastTransferCmd(I2C_TypeDef *I2Cx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + I2Cx->CTLR2 |= CTLR2_LAST_Set; + } + else + { + I2Cx->CTLR2 &= CTLR2_LAST_Reset; + } +} + +/********************************************************************* + * @fn I2C_GenerateSTART + * + * @brief Generates I2Cx communication START condition. + * + * @param I2Cx - where x can be 1 or 2 to select the I2C peripheral. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void I2C_GenerateSTART(I2C_TypeDef *I2Cx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + I2Cx->CTLR1 |= CTLR1_START_Set; + } + else + { + I2Cx->CTLR1 &= CTLR1_START_Reset; + } +} + +/********************************************************************* + * @fn I2C_GenerateSTOP + * + * @brief Generates I2Cx communication STOP condition. + * + * @param I2Cx - where x can be 1 or 2 to select the I2C peripheral. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void I2C_GenerateSTOP(I2C_TypeDef *I2Cx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + I2Cx->CTLR1 |= CTLR1_STOP_Set; + } + else + { + I2Cx->CTLR1 &= CTLR1_STOP_Reset; + } +} + +/********************************************************************* + * @fn I2C_AcknowledgeConfig + * + * @brief Enables or disables the specified I2C acknowledge feature. + * + * @param I2Cx - where x can be 1 or 2 to select the I2C peripheral. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void I2C_AcknowledgeConfig(I2C_TypeDef *I2Cx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + I2Cx->CTLR1 |= CTLR1_ACK_Set; + } + else + { + I2Cx->CTLR1 &= CTLR1_ACK_Reset; + } +} + +/********************************************************************* + * @fn I2C_OwnAddress2Config + * + * @brief Configures the specified I2C own address2. + * + * @param I2Cx - where x can be 1 or 2 to select the I2C peripheral. + * Address - specifies the 7bit I2C own address2. + * + * @return none + */ +void I2C_OwnAddress2Config(I2C_TypeDef *I2Cx, uint8_t Address) +{ + uint16_t tmpreg = 0; + + tmpreg = I2Cx->OADDR2; + tmpreg &= OADDR2_ADD2_Reset; + tmpreg |= (uint16_t)((uint16_t)Address & (uint16_t)0x00FE); + I2Cx->OADDR2 = tmpreg; +} + +/********************************************************************* + * @fn I2C_DualAddressCmd + * + * @brief Enables or disables the specified I2C dual addressing mode. + * + * @param I2Cx - where x can be 1 or 2 to select the I2C peripheral. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void I2C_DualAddressCmd(I2C_TypeDef *I2Cx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + I2Cx->OADDR2 |= OADDR2_ENDUAL_Set; + } + else + { + I2Cx->OADDR2 &= OADDR2_ENDUAL_Reset; + } +} + +/********************************************************************* + * @fn I2C_GeneralCallCmd + * + * @brief Enables or disables the specified I2C general call feature. + * + * @param I2Cx - where x can be 1 or 2 to select the I2C peripheral. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void I2C_GeneralCallCmd(I2C_TypeDef *I2Cx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + I2Cx->CTLR1 |= CTLR1_ENGC_Set; + } + else + { + I2Cx->CTLR1 &= CTLR1_ENGC_Reset; + } +} + +/********************************************************************* + * @fn I2C_ITConfig + * + * @brief Enables or disables the specified I2C interrupts. + * + * @param I2Cx - where x can be 1 or 2 to select the I2C peripheral. + * I2C_IT - specifies the I2C interrupts sources to be enabled or disabled. + * I2C_IT_BUF - Buffer interrupt mask. + * I2C_IT_EVT - Event interrupt mask. + * I2C_IT_ERR - Error interrupt mask. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void I2C_ITConfig(I2C_TypeDef *I2Cx, uint16_t I2C_IT, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + I2Cx->CTLR2 |= I2C_IT; + } + else + { + I2Cx->CTLR2 &= (uint16_t)~I2C_IT; + } +} + +/********************************************************************* + * @fn I2C_SendData + * + * @brief Sends a data byte through the I2Cx peripheral. + * + * @param I2Cx - where x can be 1 or 2 to select the I2C peripheral. + * Data - Byte to be transmitted. + * + * @return none + */ +void I2C_SendData(I2C_TypeDef *I2Cx, uint8_t Data) +{ + I2Cx->DATAR = Data; +} + +/********************************************************************* + * @fn I2C_ReceiveData + * + * @brief Returns the most recent received data by the I2Cx peripheral. + * + * @param I2Cx - where x can be 1 or 2 to select the I2C peripheral. + * + * @return The value of the received data. + */ +uint8_t I2C_ReceiveData(I2C_TypeDef *I2Cx) +{ + return (uint8_t)I2Cx->DATAR; +} + +/********************************************************************* + * @fn I2C_Send7bitAddress + * + * @brief Transmits the address byte to select the slave device. + * + * @param I2Cx - where x can be 1 or 2 to select the I2C peripheral. + * Address - specifies the slave address which will be transmitted. + * I2C_Direction - specifies whether the I2C device will be a + * Transmitter or a Receiver. + * I2C_Direction_Transmitter - Transmitter mode. + * I2C_Direction_Receiver - Receiver mode. + * + * @return none + */ +void I2C_Send7bitAddress(I2C_TypeDef *I2Cx, uint8_t Address, uint8_t I2C_Direction) +{ + if(I2C_Direction != I2C_Direction_Transmitter) + { + Address |= OADDR1_ADD0_Set; + } + else + { + Address &= OADDR1_ADD0_Reset; + } + + I2Cx->DATAR = Address; +} + +/********************************************************************* + * @fn I2C_ReadRegister + * + * @brief Reads the specified I2C register and returns its value. + * + * @param I2Cx - where x can be 1 or 2 to select the I2C peripheral. + * I2C_Register - specifies the register to read. + * I2C_Register_CTLR1. + * I2C_Register_CTLR2. + * I2C_Register_OADDR1. + * I2C_Register_OADDR2. + * I2C_Register_DATAR. + * I2C_Register_STAR1. + * I2C_Register_STAR2. + * I2C_Register_CKCFGR. + * I2C_Register_RTR. + * + * @return none + */ +uint16_t I2C_ReadRegister(I2C_TypeDef *I2Cx, uint8_t I2C_Register) +{ + __IO uint32_t tmp = 0; + + tmp = (uint32_t)I2Cx; + tmp += I2C_Register; + + return (*(__IO uint16_t *)tmp); +} + +/********************************************************************* + * @fn I2C_SoftwareResetCmd + * + * @brief Enables or disables the specified I2C software reset. + * + * @param I2Cx - where x can be 1 or 2 to select the I2C peripheral. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void I2C_SoftwareResetCmd(I2C_TypeDef *I2Cx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + I2Cx->CTLR1 |= CTLR1_SWRST_Set; + } + else + { + I2Cx->CTLR1 &= CTLR1_SWRST_Reset; + } +} + +/********************************************************************* + * @fn I2C_NACKPositionConfig + * + * @brief Selects the specified I2C NACK position in master receiver mode. + * + * @param I2Cx - where x can be 1 or 2 to select the I2C peripheral. + * I2C_NACKPosition - specifies the NACK position. + * I2C_NACKPosition_Next - indicates that the next byte will be + * the last received byte. + * I2C_NACKPosition_Current - indicates that current byte is the + * last received byte. + * + * @return none + */ +void I2C_NACKPositionConfig(I2C_TypeDef *I2Cx, uint16_t I2C_NACKPosition) +{ + if(I2C_NACKPosition == I2C_NACKPosition_Next) + { + I2Cx->CTLR1 |= I2C_NACKPosition_Next; + } + else + { + I2Cx->CTLR1 &= I2C_NACKPosition_Current; + } +} + +/********************************************************************* + * @fn I2C_SMBusAlertConfig + * + * @brief Drives the SMBusAlert pin high or low for the specified I2C. + * + * @param I2Cx - where x can be 1 or 2 to select the I2C peripheral. + * I2C_SMBusAlert - specifies SMBAlert pin level. + * I2C_SMBusAlert_Low - SMBAlert pin driven low. + * I2C_SMBusAlert_High - SMBAlert pin driven high. + * + * @return none + */ +void I2C_SMBusAlertConfig(I2C_TypeDef *I2Cx, uint16_t I2C_SMBusAlert) +{ + if(I2C_SMBusAlert == I2C_SMBusAlert_Low) + { + I2Cx->CTLR1 |= I2C_SMBusAlert_Low; + } + else + { + I2Cx->CTLR1 &= I2C_SMBusAlert_High; + } +} + +/********************************************************************* + * @fn I2C_TransmitPEC + * + * @brief Enables or disables the specified I2C PEC transfer. + * + * @param I2Cx - where x can be 1 or 2 to select the I2C peripheral. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void I2C_TransmitPEC(I2C_TypeDef *I2Cx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + I2Cx->CTLR1 |= CTLR1_PEC_Set; + } + else + { + I2Cx->CTLR1 &= CTLR1_PEC_Reset; + } +} + +/********************************************************************* + * @fn I2C_PECPositionConfig + * + * @brief Selects the specified I2C PEC position. + * + * @param I2Cx - where x can be 1 or 2 to select the I2C peripheral. + * I2C_PECPosition - specifies the PEC position. + * I2C_PECPosition_Next - indicates that the next byte is PEC. + * I2C_PECPosition_Current - indicates that current byte is PEC. + * + * @return none + */ +void I2C_PECPositionConfig(I2C_TypeDef *I2Cx, uint16_t I2C_PECPosition) +{ + if(I2C_PECPosition == I2C_PECPosition_Next) + { + I2Cx->CTLR1 |= I2C_PECPosition_Next; + } + else + { + I2Cx->CTLR1 &= I2C_PECPosition_Current; + } +} + +/********************************************************************* + * @fn I2C_CalculatePEC + * + * @brief Enables or disables the PEC value calculation of the transferred bytes. + * + * @param I2Cx- where x can be 1 or 2 to select the I2C peripheral. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void I2C_CalculatePEC(I2C_TypeDef *I2Cx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + I2Cx->CTLR1 |= CTLR1_ENPEC_Set; + } + else + { + I2Cx->CTLR1 &= CTLR1_ENPEC_Reset; + } +} + +/********************************************************************* + * @fn I2C_GetPEC + * + * @brief Returns the PEC value for the specified I2C. + * + * @param I2Cx - where x can be 1 or 2 to select the I2C peripheral. + * + * @return The PEC value. + */ +uint8_t I2C_GetPEC(I2C_TypeDef *I2Cx) +{ + return ((I2Cx->STAR2) >> 8); +} + +/********************************************************************* + * @fn I2C_ARPCmd + * + * @brief Enables or disables the specified I2C ARP. + * + * @param I2Cx - where x can be 1 or 2 to select the I2C peripheral. + * NewState - ENABLE or DISABLE. + * + * @return The PEC value. + */ +void I2C_ARPCmd(I2C_TypeDef *I2Cx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + I2Cx->CTLR1 |= CTLR1_ENARP_Set; + } + else + { + I2Cx->CTLR1 &= CTLR1_ENARP_Reset; + } +} + +/********************************************************************* + * @fn I2C_StretchClockCmd + * + * @brief Enables or disables the specified I2C Clock stretching. + * + * @param I2Cx - where x can be 1 or 2 to select the I2C peripheral. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void I2C_StretchClockCmd(I2C_TypeDef *I2Cx, FunctionalState NewState) +{ + if(NewState == DISABLE) + { + I2Cx->CTLR1 |= CTLR1_NOSTRETCH_Set; + } + else + { + I2Cx->CTLR1 &= CTLR1_NOSTRETCH_Reset; + } +} + +/********************************************************************* + * @fn I2C_FastModeDutyCycleConfig + * + * @brief Selects the specified I2C fast mode duty cycle. + * + * @param I2Cx - where x can be 1 or 2 to select the I2C peripheral. + * I2C_DutyCycle - specifies the fast mode duty cycle. + * I2C_DutyCycle_2 - I2C fast mode Tlow/Thigh = 2. + * I2C_DutyCycle_16_9 - I2C fast mode Tlow/Thigh = 16/9. + * + * @return none + */ +void I2C_FastModeDutyCycleConfig(I2C_TypeDef *I2Cx, uint16_t I2C_DutyCycle) +{ + if(I2C_DutyCycle != I2C_DutyCycle_16_9) + { + I2Cx->CKCFGR &= I2C_DutyCycle_2; + } + else + { + I2Cx->CKCFGR |= I2C_DutyCycle_16_9; + } +} + +/********************************************************************* + * @fn I2C_CheckEvent + * + * @brief Checks whether the last I2Cx Event is equal to the one passed + * as parameter. + * + * @param I2Cx- where x can be 1 or 2 to select the I2C peripheral. + * I2C_EVENT: specifies the event to be checked. + * I2C_EVENT_SLAVE_TRANSMITTER_ADDRESS_MATCHED - EV1. + * I2C_EVENT_SLAVE_RECEIVER_ADDRESS_MATCHED - EV1. + * I2C_EVENT_SLAVE_TRANSMITTER_SECONDADDRESS_MATCHED - EV1. + * I2C_EVENT_SLAVE_RECEIVER_SECONDADDRESS_MATCHED - EV1. + * I2C_EVENT_SLAVE_GENERALCALLADDRESS_MATCHED - EV1. + * I2C_EVENT_SLAVE_BYTE_RECEIVED - EV2. + * (I2C_EVENT_SLAVE_BYTE_RECEIVED | I2C_FLAG_DUALF) - EV2. + * (I2C_EVENT_SLAVE_BYTE_RECEIVED | I2C_FLAG_GENCALL) - EV2. + * I2C_EVENT_SLAVE_BYTE_TRANSMITTED - EV3. + * (I2C_EVENT_SLAVE_BYTE_TRANSMITTED | I2C_FLAG_DUALF) - EV3. + * (I2C_EVENT_SLAVE_BYTE_TRANSMITTED | I2C_FLAG_GENCALL) - EV3. + * I2C_EVENT_SLAVE_ACK_FAILURE - EV3_2. + * I2C_EVENT_SLAVE_STOP_DETECTED - EV4. + * I2C_EVENT_MASTER_MODE_SELECT - EV5. + * I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED - EV6. + * I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED - EV6. + * I2C_EVENT_MASTER_BYTE_RECEIVED - EV7. + * I2C_EVENT_MASTER_BYTE_TRANSMITTING - EV8. + * I2C_EVENT_MASTER_BYTE_TRANSMITTED - EV8_2. + * I2C_EVENT_MASTER_MODE_ADDRESS10 - EV9. + * + * @return none + */ +ErrorStatus I2C_CheckEvent(I2C_TypeDef *I2Cx, uint32_t I2C_EVENT) +{ + uint32_t lastevent = 0; + uint32_t flag1 = 0, flag2 = 0; + ErrorStatus status = ERROR; + + flag1 = I2Cx->STAR1; + flag2 = I2Cx->STAR2; + flag2 = flag2 << 16; + + lastevent = (flag1 | flag2) & FLAG_Mask; + + if((lastevent & I2C_EVENT) == I2C_EVENT) + { + status = SUCCESS; + } + else + { + status = ERROR; + } + + return status; +} + +/********************************************************************* + * @fn I2C_GetLastEvent + * + * @brief Returns the last I2Cx Event. + * + * @param I2Cx - where x can be 1 or 2 to select the I2C peripheral. + * + * @return none + */ +uint32_t I2C_GetLastEvent(I2C_TypeDef *I2Cx) +{ + uint32_t lastevent = 0; + uint32_t flag1 = 0, flag2 = 0; + + flag1 = I2Cx->STAR1; + flag2 = I2Cx->STAR2; + flag2 = flag2 << 16; + lastevent = (flag1 | flag2) & FLAG_Mask; + + return lastevent; +} + +/********************************************************************* + * @fn I2C_GetFlagStatus + * + * @brief Checks whether the last I2Cx Event is equal to the one passed + * as parameter. + * + * @param I2Cx - where x can be 1 or 2 to select the I2C peripheral. + * I2C_FLAG - specifies the flag to check. + * I2C_FLAG_DUALF - Dual flag (Slave mode). + * I2C_FLAG_SMBHOST - SMBus host header (Slave mode). + * I2C_FLAG_SMBDEFAULT - SMBus default header (Slave mode). + * I2C_FLAG_GENCALL - General call header flag (Slave mode). + * I2C_FLAG_TRA - Transmitter/Receiver flag. + * I2C_FLAG_BUSY - Bus busy flag. + * I2C_FLAG_MSL - Master/Slave flag. + * I2C_FLAG_SMBALERT - SMBus Alert flag. + * I2C_FLAG_TIMEOUT - Timeout or Tlow error flag. + * I2C_FLAG_PECERR - PEC error in reception flag. + * I2C_FLAG_OVR - Overrun/Underrun flag (Slave mode). + * I2C_FLAG_AF - Acknowledge failure flag. + * I2C_FLAG_ARLO - Arbitration lost flag (Master mode). + * I2C_FLAG_BERR - Bus error flag. + * I2C_FLAG_TXE - Data register empty flag (Transmitter). + * I2C_FLAG_RXNE- Data register not empty (Receiver) flag. + * I2C_FLAG_STOPF - Stop detection flag (Slave mode). + * I2C_FLAG_ADD10 - 10-bit header sent flag (Master mode). + * I2C_FLAG_BTF - Byte transfer finished flag. + * I2C_FLAG_ADDR - Address sent flag (Master mode) "ADSL" + * Address matched flag (Slave mode)"ENDA". + * I2C_FLAG_SB - Start bit flag (Master mode). + * + * @return none + */ +FlagStatus I2C_GetFlagStatus(I2C_TypeDef *I2Cx, uint32_t I2C_FLAG) +{ + FlagStatus bitstatus = RESET; + __IO uint32_t i2creg = 0, i2cxbase = 0; + + i2cxbase = (uint32_t)I2Cx; + i2creg = I2C_FLAG >> 28; + I2C_FLAG &= FLAG_Mask; + + if(i2creg != 0) + { + i2cxbase += 0x14; + } + else + { + I2C_FLAG = (uint32_t)(I2C_FLAG >> 16); + i2cxbase += 0x18; + } + + if(((*(__IO uint32_t *)i2cxbase) & I2C_FLAG) != (uint32_t)RESET) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + + return bitstatus; +} + +/********************************************************************* + * @fn I2C_ClearFlag + * + * @brief Clears the I2Cx's pending flags. + * + * @param I2Cx - where x can be 1 or 2 to select the I2C peripheral. + * I2C_FLAG - specifies the flag to clear. + * I2C_FLAG_SMBALERT - SMBus Alert flag. + * I2C_FLAG_TIMEOUT - Timeout or Tlow error flag. + * I2C_FLAG_PECERR - PEC error in reception flag. + * I2C_FLAG_OVR - Overrun/Underrun flag (Slave mode). + * I2C_FLAG_AF - Acknowledge failure flag. + * I2C_FLAG_ARLO - Arbitration lost flag (Master mode). + * I2C_FLAG_BERR - Bus error flag. + * + * @return none + */ +void I2C_ClearFlag(I2C_TypeDef *I2Cx, uint32_t I2C_FLAG) +{ + uint32_t flagpos = 0; + + flagpos = I2C_FLAG & FLAG_Mask; + I2Cx->STAR1 = (uint16_t)~flagpos; +} + +/********************************************************************* + * @fn I2C_GetITStatus + * + * @brief Checks whether the specified I2C interrupt has occurred or not. + * + * @param I2Cx - where x can be 1 or 2 to select the I2C peripheral. + * II2C_IT - specifies the interrupt source to check. + * I2C_IT_SMBALERT - SMBus Alert flag. + * I2C_IT_TIMEOUT - Timeout or Tlow error flag. + * I2C_IT_PECERR - PEC error in reception flag. + * I2C_IT_OVR - Overrun/Underrun flag (Slave mode). + * I2C_IT_AF - Acknowledge failure flag. + * I2C_IT_ARLO - Arbitration lost flag (Master mode). + * I2C_IT_BERR - Bus error flag. + * I2C_IT_TXE - Data register empty flag (Transmitter). + * I2C_IT_RXNE - Data register not empty (Receiver) flag. + * I2C_IT_STOPF - Stop detection flag (Slave mode). + * I2C_IT_ADD10 - 10-bit header sent flag (Master mode). + * I2C_IT_BTF - Byte transfer finished flag. + * I2C_IT_ADDR - Address sent flag (Master mode) "ADSL" Address matched + * flag (Slave mode)"ENDAD". + * I2C_IT_SB - Start bit flag (Master mode). + * + * @return none + */ +ITStatus I2C_GetITStatus(I2C_TypeDef *I2Cx, uint32_t I2C_IT) +{ + ITStatus bitstatus = RESET; + uint32_t enablestatus = 0; + + enablestatus = (uint32_t)(((I2C_IT & ITEN_Mask) >> 16) & (I2Cx->CTLR2)); + I2C_IT &= FLAG_Mask; + + if(((I2Cx->STAR1 & I2C_IT) != (uint32_t)RESET) && enablestatus) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + + return bitstatus; +} + +/********************************************************************* + * @fn I2C_ClearITPendingBit + * + * @brief Clears the I2Cx interrupt pending bits. + * + * @param I2Cx - where x can be 1 or 2 to select the I2C peripheral. + * I2C_IT - specifies the interrupt pending bit to clear. + * I2C_IT_SMBALERT - SMBus Alert interrupt. + * I2C_IT_TIMEOUT - Timeout or Tlow error interrupt. + * I2C_IT_PECERR - PEC error in reception interrupt. + * I2C_IT_OVR - Overrun/Underrun interrupt (Slave mode). + * I2C_IT_AF - Acknowledge failure interrupt. + * I2C_IT_ARLO - Arbitration lost interrupt (Master mode). + * I2C_IT_BERR - Bus error interrupt. + * + * @return none + */ +void I2C_ClearITPendingBit(I2C_TypeDef *I2Cx, uint32_t I2C_IT) +{ + uint32_t flagpos = 0; + + flagpos = I2C_IT & FLAG_Mask; + I2Cx->STAR1 = (uint16_t)~flagpos; +} + + + + + + + diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_iwdg.c b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_iwdg.c new file mode 100644 index 0000000000..3a3551c74d --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_iwdg.c @@ -0,0 +1,123 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_iwdg.c + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file provides all the IWDG firmware functions. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *******************************************************************************/ +#include "ch32v10x_iwdg.h" + +/* CTLR register bit mask */ +#define CTLR_KEY_Reload ((uint16_t)0xAAAA) +#define CTLR_KEY_Enable ((uint16_t)0xCCCC) + +/********************************************************************* + * @fn IWDG_WriteAccessCmd + * + * @brief Enables or disables write access to IWDG_PSCR and IWDG_RLDR registers. + * + * @param WDG_WriteAccess - new state of write access to IWDG_PSCR and + * IWDG_RLDR registers. + * IWDG_WriteAccess_Enable - Enable write access to IWDG_PSCR and + * IWDG_RLDR registers. + * IWDG_WriteAccess_Disable - Disable write access to IWDG_PSCR + * and IWDG_RLDR registers. + * + * @return none + */ +void IWDG_WriteAccessCmd(uint16_t IWDG_WriteAccess) +{ + IWDG->CTLR = IWDG_WriteAccess; +} + +/********************************************************************* + * @fn IWDG_SetPrescaler + * + * @brief Sets IWDG Prescaler value. + * + * @param IWDG_Prescaler - specifies the IWDG Prescaler value. + * IWDG_Prescaler_4 - IWDG prescaler set to 4. + * IWDG_Prescaler_8 - IWDG prescaler set to 8. + * IWDG_Prescaler_16 - IWDG prescaler set to 16. + * IWDG_Prescaler_32 - IWDG prescaler set to 32. + * IWDG_Prescaler_64 - IWDG prescaler set to 64. + * IWDG_Prescaler_128 - IWDG prescaler set to 128. + * IWDG_Prescaler_256 - IWDG prescaler set to 256. + * + * @return none + */ +void IWDG_SetPrescaler(uint8_t IWDG_Prescaler) +{ + IWDG->PSCR = IWDG_Prescaler; +} + +/********************************************************************* + * @fn IWDG_SetReload + * + * @brief Sets IWDG Reload value. + * + * @param Reload - specifies the IWDG Reload value. + * This parameter must be a number between 0 and 0x0FFF. + * + * @return none + */ +void IWDG_SetReload(uint16_t Reload) +{ + IWDG->RLDR = Reload; +} + +/********************************************************************* + * @fn IWDG_ReloadCounter + * + * @brief Reloads IWDG counter with value defined in the reload register. + * + * @return none + */ +void IWDG_ReloadCounter(void) +{ + IWDG->CTLR = CTLR_KEY_Reload; +} + +/********************************************************************* + * @fn IWDG_Enable + * + * @brief Enables IWDG (write access to IWDG_PSCR and IWDG_RLDR registers disabled). + * + * @return none + */ +void IWDG_Enable(void) +{ + IWDG->CTLR = CTLR_KEY_Enable; +} + +/********************************************************************* + * @fn IWDG_GetFlagStatus + * + * @brief Checks whether the specified IWDG flag is set or not. + * + * @param IWDG_FLAG - specifies the flag to check. + * IWDG_FLAG_PVU - Prescaler Value Update on going. + * IWDG_FLAG_RVU - Reload Value Update on going. + * + * @return none + */ +FlagStatus IWDG_GetFlagStatus(uint16_t IWDG_FLAG) +{ + FlagStatus bitstatus = RESET; + + if((IWDG->STATR & IWDG_FLAG) != (uint32_t)RESET) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + + return bitstatus; +} + + + diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_misc.c b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_misc.c new file mode 100644 index 0000000000..e7e5aefe27 --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_misc.c @@ -0,0 +1,107 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_misc.c + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file provides all the miscellaneous firmware functions . + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *********************************************************************************/ +#include "ch32v10x_misc.h" + +__IO uint32_t NVIC_Priority_Group = 0; + +/********************************************************************* + * @fn NVIC_PriorityGroupConfig + * + * @brief Configures the priority grouping - pre-emption priority and subpriority. + * + * @param NVIC_PriorityGroup - specifies the priority grouping bits length. + * NVIC_PriorityGroup_0 - 0 bits for pre-emption priority + * 4 bits for subpriority + * NVIC_PriorityGroup_1 - 1 bits for pre-emption priority + * 3 bits for subpriority + * NVIC_PriorityGroup_2 - 2 bits for pre-emption priority + * 2 bits for subpriority + * NVIC_PriorityGroup_3 - 3 bits for pre-emption priority + * 1 bits for subpriority + * NVIC_PriorityGroup_4 - 4 bits for pre-emption priority + * 0 bits for subpriority + * + * @return none + */ +void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup) +{ + NVIC_Priority_Group = NVIC_PriorityGroup; +} + +/********************************************************************* + * @fn NVIC_Init + * + * @brief Initializes the NVIC peripheral according to the specified parameters in + * the NVIC_InitStruct. + * + * @param NVIC_InitStruct - pointer to a NVIC_InitTypeDef structure that contains the + * configuration information for the specified NVIC peripheral. + * + * @return none + */ +void NVIC_Init(NVIC_InitTypeDef *NVIC_InitStruct) +{ + uint8_t tmppre = 0; + + if(NVIC_Priority_Group == NVIC_PriorityGroup_0) + { + NVIC_SetPriority(NVIC_InitStruct->NVIC_IRQChannel, NVIC_InitStruct->NVIC_IRQChannelSubPriority << 4); + } + else if(NVIC_Priority_Group == NVIC_PriorityGroup_1) + { + if(NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority == 1) + { + NVIC_SetPriority(NVIC_InitStruct->NVIC_IRQChannel, (1 << 7) | (NVIC_InitStruct->NVIC_IRQChannelSubPriority << 4)); + } + else + { + NVIC_SetPriority(NVIC_InitStruct->NVIC_IRQChannel, (0 << 7) | (NVIC_InitStruct->NVIC_IRQChannelSubPriority << 4)); + } + } + else if(NVIC_Priority_Group == NVIC_PriorityGroup_2) + { + if(NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority <= 1) + { + tmppre = NVIC_InitStruct->NVIC_IRQChannelSubPriority + (4 * NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority); + NVIC_SetPriority(NVIC_InitStruct->NVIC_IRQChannel, (0 << 7) | (tmppre << 4)); + } + else + { + tmppre = NVIC_InitStruct->NVIC_IRQChannelSubPriority + (4 * (NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority - 2)); + NVIC_SetPriority(NVIC_InitStruct->NVIC_IRQChannel, (1 << 7) | (tmppre << 4)); + } + } + else if(NVIC_Priority_Group == NVIC_PriorityGroup_3) + { + if(NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority <= 3) + { + tmppre = NVIC_InitStruct->NVIC_IRQChannelSubPriority + (2 * NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority); + NVIC_SetPriority(NVIC_InitStruct->NVIC_IRQChannel, (0 << 7) | (tmppre << 4)); + } + else + { + tmppre = NVIC_InitStruct->NVIC_IRQChannelSubPriority + (2 * (NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority - 4)); + NVIC_SetPriority(NVIC_InitStruct->NVIC_IRQChannel, (1 << 7) | (tmppre << 4)); + } + } + else if(NVIC_Priority_Group == NVIC_PriorityGroup_4) + { + NVIC_SetPriority(NVIC_InitStruct->NVIC_IRQChannel, NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority << 4); + } + + if(NVIC_InitStruct->NVIC_IRQChannelCmd != DISABLE) + { + NVIC_EnableIRQ(NVIC_InitStruct->NVIC_IRQChannel); + } + else + { + NVIC_DisableIRQ(NVIC_InitStruct->NVIC_IRQChannel); + } +} diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_pwr.c b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_pwr.c new file mode 100644 index 0000000000..7d263d436e --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_pwr.c @@ -0,0 +1,217 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_pwr.c + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file provides all the PWR firmware functions. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + ********************************************************************************/ +#include "ch32v10x_pwr.h" +#include "ch32v10x_rcc.h" + +/* PWR registers bit mask */ +/* CTLR register bit mask */ +#define CTLR_DS_MASK ((uint32_t)0xFFFFFFFC) +#define CTLR_PLS_MASK ((uint32_t)0xFFFFFF1F) + +/********************************************************************* + * @fn PWR_DeInit + * + * @brief Deinitializes the PWR peripheral registers to their default + * reset values. + * + * @return none + */ +void PWR_DeInit(void) +{ + RCC_APB1PeriphResetCmd(RCC_APB1Periph_PWR, ENABLE); + RCC_APB1PeriphResetCmd(RCC_APB1Periph_PWR, DISABLE); +} + +/********************************************************************* + * @fn PWR_BackupAccessCmd + * + * @brief Enables or disables access to the RTC and backup registers. + * + * @param NewState - new state of the access to the RTC and backup registers, + * This parameter can be: ENABLE or DISABLE. + * + * @return none + */ +void PWR_BackupAccessCmd(FunctionalState NewState) +{ + if(NewState) + { + PWR->CTLR |= (1 << 8); + } + else + { + PWR->CTLR &= ~(1 << 8); + } +} + +/********************************************************************* + * @fn PWR_PVDCmd + * + * @brief Enables or disables the Power Voltage Detector(PVD). + * + * @param NewState - new state of the PVD(ENABLE or DISABLE). + * + * @return none + */ +void PWR_PVDCmd(FunctionalState NewState) +{ + if(NewState) + { + PWR->CTLR |= (1 << 4); + } + else + { + PWR->CTLR &= ~(1 << 4); + } +} + +/********************************************************************* + * @fn PWR_PVDLevelConfig + * + * @brief Configures the voltage threshold detected by the Power Voltage + * Detector(PVD). + * + * @param PWR_PVDLevel - specifies the PVD detection level + * PWR_PVDLevel_2V2 - PVD detection level set to 2.2V + * PWR_PVDLevel_2V3 - PVD detection level set to 2.3V + * PWR_PVDLevel_2V4 - PVD detection level set to 2.4V + * PWR_PVDLevel_2V5 - PVD detection level set to 2.5V + * PWR_PVDLevel_2V6 - PVD detection level set to 2.6V + * PWR_PVDLevel_2V7 - PVD detection level set to 2.7V + * PWR_PVDLevel_2V8 - PVD detection level set to 2.8V + * PWR_PVDLevel_2V9 - PVD detection level set to 2.9V + * + * @return none + */ +void PWR_PVDLevelConfig(uint32_t PWR_PVDLevel) +{ + uint32_t tmpreg = 0; + tmpreg = PWR->CTLR; + tmpreg &= CTLR_PLS_MASK; + tmpreg |= PWR_PVDLevel; + PWR->CTLR = tmpreg; +} + +/********************************************************************* + * @fn PWR_WakeUpPinCmd + * + * @brief Enables or disables the WakeUp Pin functionality. + * + * @param NewState - new state of the WakeUp Pin functionality + * (ENABLE or DISABLE). + * + * @return none + */ +void PWR_WakeUpPinCmd(FunctionalState NewState) +{ + if(NewState) + { + PWR->CSR |= (1 << 8); + } + else + { + PWR->CSR &= ~(1 << 8); + } +} + +/********************************************************************* + * @fn PWR_EnterSTOPMode + * + * @brief Enters STOP mode. + * + * @param PWR_Regulator - specifies the regulator state in STOP mode. + * PWR_Regulator_ON - STOP mode with regulator ON + * PWR_Regulator_LowPower - STOP mode with regulator in low power mode + * PWR_STOPEntry - specifies if STOP mode in entered with WFI or WFE instruction. + * PWR_STOPEntry_WFI - enter STOP mode with WFI instruction + * PWR_STOPEntry_WFE - enter STOP mode with WFE instruction + * + * @return none + */ +void PWR_EnterSTOPMode(uint32_t PWR_Regulator, uint8_t PWR_STOPEntry) +{ + uint32_t tmpreg = 0; + tmpreg = PWR->CTLR; + tmpreg &= CTLR_DS_MASK; + tmpreg |= PWR_Regulator; + PWR->CTLR = tmpreg; + + NVIC->SCTLR |= (1 << 2); + + if(PWR_STOPEntry == PWR_STOPEntry_WFI) + { + __WFI(); + } + else + { + __WFE(); + } + + NVIC->SCTLR &= ~(1 << 2); +} + +/********************************************************************* + * @fn PWR_EnterSTANDBYMode + * + * @brief Enters STANDBY mode. + * + * @return none + */ +void PWR_EnterSTANDBYMode(void) +{ + PWR->CTLR |= PWR_CTLR_CWUF; + PWR->CTLR |= PWR_CTLR_PDDS; + NVIC->SCTLR |= (1 << 2); + + __WFI(); +} + +/********************************************************************* + * @fn PWR_GetFlagStatus + * + * @brief Checks whether the specified PWR flag is set or not. + * + * @param PWR_FLAG - specifies the flag to check. + * PWR_FLAG_WU - Wake Up flag + * PWR_FLAG_SB - StandBy flag + * PWR_FLAG_PVDO - PVD Output + * + * @return The new state of PWR_FLAG (SET or RESET). + */ +FlagStatus PWR_GetFlagStatus(uint32_t PWR_FLAG) +{ + FlagStatus bitstatus = RESET; + + if((PWR->CSR & PWR_FLAG) != (uint32_t)RESET) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + return bitstatus; +} + +/********************************************************************* + * @fn PWR_ClearFlag + * + * @brief Clears the PWR's pending flags. + * + * @param PWR_FLAG - specifies the flag to clear. + * PWR_FLAG_WU - Wake Up flag + * PWR_FLAG_SB - StandBy flag + * + * @return none + */ +void PWR_ClearFlag(uint32_t PWR_FLAG) +{ + PWR->CTLR |= PWR_FLAG << 2; +} diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_rcc.c b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_rcc.c new file mode 100644 index 0000000000..5258906e8d --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_rcc.c @@ -0,0 +1,938 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_rcc.c + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file provides all the RCC firmware functions. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *******************************************************************************/ +#include "ch32v10x_rcc.h" + +/* RCC registers bit address in the alias region */ +#define RCC_OFFSET (RCC_BASE - PERIPH_BASE) + +/* BDCTLR Register */ +#define BDCTLR_OFFSET (RCC_OFFSET + 0x20) + +/* RCC registers bit mask */ + +/* CTLR register bit mask */ +#define CTLR_HSEBYP_Reset ((uint32_t)0xFFFBFFFF) +#define CTLR_HSEBYP_Set ((uint32_t)0x00040000) +#define CTLR_HSEON_Reset ((uint32_t)0xFFFEFFFF) +#define CTLR_HSEON_Set ((uint32_t)0x00010000) +#define CTLR_HSITRIM_Mask ((uint32_t)0xFFFFFF07) + +#define CFGR0_PLL_Mask ((uint32_t)0xFFC0FFFF) +#define CFGR0_PLLMull_Mask ((uint32_t)0x003C0000) +#define CFGR0_PLLSRC_Mask ((uint32_t)0x00010000) +#define CFGR0_PLLXTPRE_Mask ((uint32_t)0x00020000) +#define CFGR0_SWS_Mask ((uint32_t)0x0000000C) +#define CFGR0_SW_Mask ((uint32_t)0xFFFFFFFC) +#define CFGR0_HPRE_Reset_Mask ((uint32_t)0xFFFFFF0F) +#define CFGR0_HPRE_Set_Mask ((uint32_t)0x000000F0) +#define CFGR0_PPRE1_Reset_Mask ((uint32_t)0xFFFFF8FF) +#define CFGR0_PPRE1_Set_Mask ((uint32_t)0x00000700) +#define CFGR0_PPRE2_Reset_Mask ((uint32_t)0xFFFFC7FF) +#define CFGR0_PPRE2_Set_Mask ((uint32_t)0x00003800) +#define CFGR0_ADCPRE_Reset_Mask ((uint32_t)0xFFFF3FFF) +#define CFGR0_ADCPRE_Set_Mask ((uint32_t)0x0000C000) + +/* RSTSCKR register bit mask */ +#define RSTSCKR_RMVF_Set ((uint32_t)0x01000000) + +/* RCC Flag Mask */ +#define FLAG_Mask ((uint8_t)0x1F) + +/* INTR register byte 2 (Bits[15:8]) base address */ +#define INTR_BYTE2_ADDRESS ((uint32_t)0x40021009) + +/* INTR register byte 3 (Bits[23:16]) base address */ +#define INTR_BYTE3_ADDRESS ((uint32_t)0x4002100A) + +/* CFGR0 register byte 4 (Bits[31:24]) base address */ +#define CFGR0_BYTE4_ADDRESS ((uint32_t)0x40021007) + +/* BDCTLR register base address */ +#define BDCTLR_ADDRESS (PERIPH_BASE + BDCTLR_OFFSET) + +static __I uint8_t APBAHBPrescTable[16] = {0, 0, 0, 0, 1, 2, 3, 4, 1, 2, 3, 4, 6, 7, 8, 9}; +static __I uint8_t ADCPrescTable[4] = {2, 4, 6, 8}; + +/********************************************************************* + * @fn RCC_DeInit + * + * @brief Resets the RCC clock configuration to the default reset state. + * + * @return none + */ +void RCC_DeInit(void) +{ + RCC->CTLR |= (uint32_t)0x00000001; + RCC->CFGR0 &= (uint32_t)0xF8FF0000; + RCC->CTLR &= (uint32_t)0xFEF6FFFF; + RCC->CTLR &= (uint32_t)0xFFFBFFFF; + RCC->CFGR0 &= (uint32_t)0xFF80FFFF; + RCC->INTR = 0x009F0000; +} + +/********************************************************************* + * @fn RCC_HSEConfig + * + * @brief Configures the External High Speed oscillator (HSE). + * + * @param RCC_HSE - + * RCC_HSE_OFF - HSE oscillator OFF. + * RCC_HSE_ON - HSE oscillator ON. + * RCC_HSE_Bypass - HSE oscillator bypassed with external clock. + * + * @return none + */ +void RCC_HSEConfig(uint32_t RCC_HSE) +{ + RCC->CTLR &= CTLR_HSEON_Reset; + RCC->CTLR &= CTLR_HSEBYP_Reset; + + switch(RCC_HSE) + { + case RCC_HSE_ON: + RCC->CTLR |= CTLR_HSEON_Set; + break; + + case RCC_HSE_Bypass: + RCC->CTLR |= CTLR_HSEBYP_Set | CTLR_HSEON_Set; + break; + + default: + break; + } +} + +/********************************************************************* + * @fn RCC_WaitForHSEStartUp + * + * @brief Waits for HSE start-up. + * + * @return SUCCESS - HSE oscillator is stable and ready to use. + * ERROR - HSE oscillator not yet ready. + */ +ErrorStatus RCC_WaitForHSEStartUp(void) +{ + __IO uint32_t StartUpCounter = 0; + + ErrorStatus status = ERROR; + FlagStatus HSEStatus = RESET; + + do + { + HSEStatus = RCC_GetFlagStatus(RCC_FLAG_HSERDY); + StartUpCounter++; + } while((StartUpCounter != HSE_STARTUP_TIMEOUT) && (HSEStatus == RESET)); + + if(RCC_GetFlagStatus(RCC_FLAG_HSERDY) != RESET) + { + status = SUCCESS; + } + else + { + status = ERROR; + } + + return (status); +} + +/********************************************************************* + * @fn RCC_AdjustHSICalibrationValue + * + * @brief Adjusts the Internal High Speed oscillator (HSI) calibration value. + * + * @param HSICalibrationValue - specifies the calibration trimming value. + * This parameter must be a number between 0 and 0x1F. + * + * @return none + */ +void RCC_AdjustHSICalibrationValue(uint8_t HSICalibrationValue) +{ + uint32_t tmpreg = 0; + + tmpreg = RCC->CTLR; + tmpreg &= CTLR_HSITRIM_Mask; + tmpreg |= (uint32_t)HSICalibrationValue << 3; + RCC->CTLR = tmpreg; +} + +/********************************************************************* + * @fn RCC_HSICmd + * + * @brief Enables or disables the Internal High Speed oscillator (HSI). + * + * @param NewState - ENABLE or DISABLE. + * + * @return none + */ +void RCC_HSICmd(FunctionalState NewState) +{ + if(NewState) + { + RCC->CTLR |= (1 << 0); + } + else + { + RCC->CTLR &= ~(1 << 0); + } +} + +/********************************************************************* + * @fn RCC_PLLConfig + * + * @brief Configures the PLL clock source and multiplication factor. + * + * @param RCC_PLLSource - specifies the PLL entry clock source. + * RCC_PLLSource_HSI_Div2 - HSI oscillator clock divided by 2 + * selected as PLL clock entry. + * RCC_PLLSource_HSE_Div1 - HSE oscillator clock selected as PLL + * clock entry. + * RCC_PLLSource_HSE_Div2 - HSE oscillator clock divided by 2 + * selected as PLL clock entry. + * RCC_PLLMul - specifies the PLL multiplication factor. + * This parameter can be RCC_PLLMul_x where x:[2,16]. + * + * @return none + */ +void RCC_PLLConfig(uint32_t RCC_PLLSource, uint32_t RCC_PLLMul) +{ + uint32_t tmpreg = 0; + + tmpreg = RCC->CFGR0; + tmpreg &= CFGR0_PLL_Mask; + tmpreg |= RCC_PLLSource | RCC_PLLMul; + RCC->CFGR0 = tmpreg; +} + +/********************************************************************* + * @fn RCC_PLLCmd + * + * @brief Enables or disables the PLL. + * + * @param NewState - ENABLE or DISABLE. + * + * @return none + */ +void RCC_PLLCmd(FunctionalState NewState) +{ + if(NewState) + { + RCC->CTLR |= (1 << 24); + } + else + { + RCC->CTLR &= ~(1 << 24); + } +} + +/********************************************************************* + * @fn RCC_SYSCLKConfig + * + * @brief Configures the system clock (SYSCLK). + * + * @param RCC_SYSCLKSource - specifies the clock source used as system clock. + * RCC_SYSCLKSource_HSI - HSI selected as system clock. + * RCC_SYSCLKSource_HSE - HSE selected as system clock. + * RCC_SYSCLKSource_PLLCLK - PLL selected as system clock. + * + * @return none + */ +void RCC_SYSCLKConfig(uint32_t RCC_SYSCLKSource) +{ + uint32_t tmpreg = 0; + + tmpreg = RCC->CFGR0; + tmpreg &= CFGR0_SW_Mask; + tmpreg |= RCC_SYSCLKSource; + RCC->CFGR0 = tmpreg; +} + +/********************************************************************* + * @fn RCC_GetSYSCLKSource + * + * @brief Returns the clock source used as system clock. + * + * @return 0x00 - HSI used as system clock. + * 0x04 - HSE used as system clock. + * 0x08 - PLL used as system clock. + */ +uint8_t RCC_GetSYSCLKSource(void) +{ + return ((uint8_t)(RCC->CFGR0 & CFGR0_SWS_Mask)); +} + +/********************************************************************* + * @fn RCC_HCLKConfig + * + * @brief Configures the AHB clock (HCLK). + * + * @param RCC_SYSCLK - defines the AHB clock divider. This clock is derived from + * the system clock (SYSCLK). + * RCC_SYSCLK_Div1 - AHB clock = SYSCLK. + * RCC_SYSCLK_Div2 - AHB clock = SYSCLK/2. + * RCC_SYSCLK_Div4 - AHB clock = SYSCLK/4. + * RCC_SYSCLK_Div8 - AHB clock = SYSCLK/8. + * RCC_SYSCLK_Div16 - AHB clock = SYSCLK/16. + * RCC_SYSCLK_Div64 - AHB clock = SYSCLK/64. + * RCC_SYSCLK_Div128 - AHB clock = SYSCLK/128. + * RCC_SYSCLK_Div256 - AHB clock = SYSCLK/256. + * RCC_SYSCLK_Div512 - AHB clock = SYSCLK/512. + * + * @return none + */ +void RCC_HCLKConfig(uint32_t RCC_SYSCLK) +{ + uint32_t tmpreg = 0; + + tmpreg = RCC->CFGR0; + tmpreg &= CFGR0_HPRE_Reset_Mask; + tmpreg |= RCC_SYSCLK; + RCC->CFGR0 = tmpreg; +} + +/********************************************************************* + * @fn RCC_PCLK1Config + * + * @brief Configures the Low Speed APB clock (PCLK1). + * + * @param RCC_HCLK - defines the APB1 clock divider. This clock is derived from + * the AHB clock (HCLK). + * RCC_HCLK_Div1 - APB1 clock = HCLK. + * RCC_HCLK_Div2 - APB1 clock = HCLK/2. + * RCC_HCLK_Div4 - APB1 clock = HCLK/4. + * RCC_HCLK_Div8 - APB1 clock = HCLK/8. + * RCC_HCLK_Div16 - APB1 clock = HCLK/16. + * + * @return none + */ +void RCC_PCLK1Config(uint32_t RCC_HCLK) +{ + uint32_t tmpreg = 0; + + tmpreg = RCC->CFGR0; + tmpreg &= CFGR0_PPRE1_Reset_Mask; + tmpreg |= RCC_HCLK; + RCC->CFGR0 = tmpreg; +} + +/********************************************************************* + * @fn RCC_PCLK2Config + * + * @brief Configures the High Speed APB clock (PCLK2). + * + * @param RCC_HCLK - defines the APB2 clock divider. This clock is derived from + * the AHB clock (HCLK). + * RCC_HCLK_Div1 - APB1 clock = HCLK. + * RCC_HCLK_Div2 - APB1 clock = HCLK/2. + * RCC_HCLK_Div4 - APB1 clock = HCLK/4. + * RCC_HCLK_Div8 - APB1 clock = HCLK/8. + * RCC_HCLK_Div16 - APB1 clock = HCLK/16. + * + * @return none + */ +void RCC_PCLK2Config(uint32_t RCC_HCLK) +{ + uint32_t tmpreg = 0; + + tmpreg = RCC->CFGR0; + tmpreg &= CFGR0_PPRE2_Reset_Mask; + tmpreg |= RCC_HCLK << 3; + RCC->CFGR0 = tmpreg; +} + +/********************************************************************* + * @fn RCC_ITConfig + * + * @brief Enables or disables the specified RCC interrupts. + * + * @param RCC_IT - specifies the RCC interrupt sources to be enabled or disabled. + * RCC_IT_LSIRDY - LSI ready interrupt. + * RCC_IT_LSERDY - LSE ready interrupt. + * RCC_IT_HSIRDY - HSI ready interrupt. + * RCC_IT_HSERDY - HSE ready interrupt. + * RCC_IT_PLLRDY - PLL ready interrupt. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void RCC_ITConfig(uint8_t RCC_IT, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + *(__IO uint8_t *)INTR_BYTE2_ADDRESS |= RCC_IT; + } + else + { + *(__IO uint8_t *)INTR_BYTE2_ADDRESS &= (uint8_t)~RCC_IT; + } +} + +/********************************************************************* + * @fn RCC_USBCLKConfig + * + * @brief Configures the USB clock (USBCLK). + * + * @param RCC_USBCLKSource: specifies the USB clock source. This clock is + * derived from the PLL output. + * RCC_USBCLKSource_PLLCLK_1Div5: PLL clock divided by 1,5 selected as USB + * clock source. + * RCC_USBCLKSource_PLLCLK_Div1: PLL clock selected as USB clock source. + * + * @return none + */ +void RCC_USBCLKConfig(uint32_t RCC_USBCLKSource) +{ + if(RCC_USBCLKSource) + { + RCC->CFGR0 |= (1 << 22); + } + else + { + RCC->CFGR0 &= ~(1 << 22); + } +} + +/********************************************************************* + * @fn RCC_ADCCLKConfig + * + * @brief Configures the ADC clock (ADCCLK). + * + * @param RCC_PCLK2 - defines the ADC clock divider. This clock is derived from + * the APB2 clock (PCLK2). + * RCC_PCLK2_Div2 - ADC clock = PCLK2/2. + * RCC_PCLK2_Div4 - ADC clock = PCLK2/4. + * RCC_PCLK2_Div6 - ADC clock = PCLK2/6. + * RCC_PCLK2_Div8 - ADC clock = PCLK2/8. + * + * @return none + */ +void RCC_ADCCLKConfig(uint32_t RCC_PCLK2) +{ + uint32_t tmpreg = 0; + + tmpreg = RCC->CFGR0; + tmpreg &= CFGR0_ADCPRE_Reset_Mask; + tmpreg |= RCC_PCLK2; + RCC->CFGR0 = tmpreg; +} + +/********************************************************************* + * @fn RCC_LSEConfig + * + * @brief Configures the External Low Speed oscillator (LSE). + * + * @param RCC_LSE - specifies the new state of the LSE. + * RCC_LSE_OFF - LSE oscillator OFF. + * RCC_LSE_ON - LSE oscillator ON. + * RCC_LSE_Bypass - LSE oscillator bypassed with external clock. + * + * @return none + */ +void RCC_LSEConfig(uint8_t RCC_LSE) +{ + *(__IO uint8_t *)BDCTLR_ADDRESS = RCC_LSE_OFF; + *(__IO uint8_t *)BDCTLR_ADDRESS = RCC_LSE_OFF; + + switch(RCC_LSE) + { + case RCC_LSE_ON: + *(__IO uint8_t *)BDCTLR_ADDRESS = RCC_LSE_ON; + break; + + case RCC_LSE_Bypass: + *(__IO uint8_t *)BDCTLR_ADDRESS = RCC_LSE_Bypass | RCC_LSE_ON; + break; + + default: + break; + } +} + +/********************************************************************* + * @fn RCC_LSICmd + * + * @brief Enables or disables the Internal Low Speed oscillator (LSI). + * + * @param NewState - ENABLE or DISABLE. + * + * @return none + */ +void RCC_LSICmd(FunctionalState NewState) +{ + if(NewState) + { + RCC->RSTSCKR |= (1 << 0); + } + else + { + RCC->RSTSCKR &= ~(1 << 0); + } +} + +/********************************************************************* + * @fn RCC_RTCCLKConfig + * + * @brief Once the RTC clock is selected it can't be changed unless the Backup domain is reset. + * + * @param RCC_RTCCLKSource - specifies the RTC clock source. + * RCC_RTCCLKSource_LSE - LSE selected as RTC clock. + * RCC_RTCCLKSource_LSI - LSI selected as RTC clock. + * RCC_RTCCLKSource_HSE_Div128 - HSE clock divided by 128 selected as RTC clock. + * + * @return none + */ +void RCC_RTCCLKConfig(uint32_t RCC_RTCCLKSource) +{ + RCC->BDCTLR |= RCC_RTCCLKSource; +} + +/********************************************************************* + * @fn RCC_RTCCLKCmd + * + * @brief This function must be used only after the RTC clock was selected + * using the RCC_RTCCLKConfig function. + * + * @param NewState - ENABLE or DISABLE. + * + * @return none + */ +void RCC_RTCCLKCmd(FunctionalState NewState) +{ + if(NewState) + { + RCC->BDCTLR |= (1 << 15); + } + else + { + RCC->BDCTLR &= ~(1 << 15); + } +} + +/********************************************************************* + * @fn RCC_GetClocksFreq + * + * @brief The result of this function could be not correct when using + * fractional value for HSE crystal. + * + * @param RCC_Clocks - pointer to a RCC_ClocksTypeDef structure which will hold + * the clocks frequencies. + * + * @return none + */ +void RCC_GetClocksFreq(RCC_ClocksTypeDef *RCC_Clocks) +{ + uint32_t tmp = 0, pllmull = 0, pllsource = 0, presc = 0; + + tmp = RCC->CFGR0 & CFGR0_SWS_Mask; + + switch(tmp) + { + case 0x00: + RCC_Clocks->SYSCLK_Frequency = HSI_VALUE; + break; + + case 0x04: + RCC_Clocks->SYSCLK_Frequency = HSE_VALUE; + break; + + case 0x08: + pllmull = RCC->CFGR0 & CFGR0_PLLMull_Mask; + pllsource = RCC->CFGR0 & CFGR0_PLLSRC_Mask; + pllmull = (pllmull >> 18) + 2; + + if(pllsource == 0x00) + { + if(EXTEN->EXTEN_CTR & EXTEN_PLL_HSI_PRE) + { + RCC_Clocks->SYSCLK_Frequency = (HSI_VALUE)*pllmull; + } + else + { + RCC_Clocks->SYSCLK_Frequency = (HSI_VALUE >> 1) * pllmull; + } + } + else + { + if((RCC->CFGR0 & CFGR0_PLLXTPRE_Mask) != (uint32_t)RESET) + { + RCC_Clocks->SYSCLK_Frequency = (HSE_VALUE >> 1) * pllmull; + } + else + { + RCC_Clocks->SYSCLK_Frequency = HSE_VALUE * pllmull; + } + } + break; + + default: + RCC_Clocks->SYSCLK_Frequency = HSI_VALUE; + break; + } + + tmp = RCC->CFGR0 & CFGR0_HPRE_Set_Mask; + tmp = tmp >> 4; + presc = APBAHBPrescTable[tmp]; + RCC_Clocks->HCLK_Frequency = RCC_Clocks->SYSCLK_Frequency >> presc; + tmp = RCC->CFGR0 & CFGR0_PPRE1_Set_Mask; + tmp = tmp >> 8; + presc = APBAHBPrescTable[tmp]; + RCC_Clocks->PCLK1_Frequency = RCC_Clocks->HCLK_Frequency >> presc; + tmp = RCC->CFGR0 & CFGR0_PPRE2_Set_Mask; + tmp = tmp >> 11; + presc = APBAHBPrescTable[tmp]; + RCC_Clocks->PCLK2_Frequency = RCC_Clocks->HCLK_Frequency >> presc; + tmp = RCC->CFGR0 & CFGR0_ADCPRE_Set_Mask; + tmp = tmp >> 14; + presc = ADCPrescTable[tmp]; + RCC_Clocks->ADCCLK_Frequency = RCC_Clocks->PCLK2_Frequency / presc; +} + +/********************************************************************* + * @fn RCC_AHBPeriphClockCmd + * + * @brief Enables or disables the AHB peripheral clock. + * + * @param RCC_AHBPeriph - specifies the AHB peripheral to gates its clock. + * RCC_AHBPeriph_DMA1. + * RCC_AHBPeriph_DMA2. + * RCC_AHBPeriph_SRAM. + * NewState: ENABLE or DISABLE. + * + * @return none + */ +void RCC_AHBPeriphClockCmd(uint32_t RCC_AHBPeriph, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + RCC->AHBPCENR |= RCC_AHBPeriph; + } + else + { + RCC->AHBPCENR &= ~RCC_AHBPeriph; + } +} + +/********************************************************************* + * @fn RCC_APB2PeriphClockCmd + * + * @brief Enables or disables the High Speed APB (APB2) peripheral clock. + * + * @param RCC_APB2Periph - specifies the APB2 peripheral to gates its clock. + * RCC_APB2Periph_AFIO. + * RCC_APB2Periph_GPIOA. + * RCC_APB2Periph_GPIOB. + * RCC_APB2Periph_GPIOC. + * RCC_APB2Periph_GPIOD. + * RCC_APB2Periph_GPIOE + * RCC_APB2Periph_ADC1. + * RCC_APB2Periph_ADC2 + * RCC_APB2Periph_TIM1. + * RCC_APB2Periph_SPI1. + * RCC_APB2Periph_TIM8 + * RCC_APB2Periph_USART1. + * NewState - ENABLE or DISABLE + * + * @return none + */ +void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + RCC->APB2PCENR |= RCC_APB2Periph; + } + else + { + RCC->APB2PCENR &= ~RCC_APB2Periph; + } +} + +/********************************************************************* + * @fn RCC_APB1PeriphClockCmd + * + * @brief Enables or disables the Low Speed APB (APB1) peripheral clock. + * + * @param RCC_APB1Periph - specifies the APB1 peripheral to gates its clock. + * RCC_APB1Periph_TIM2. + * RCC_APB1Periph_TIM3. + * RCC_APB1Periph_TIM4. + * RCC_APB1Periph_WWDG. + * RCC_APB1Periph_SPI2. + * RCC_APB1Periph_USART2. + * RCC_APB1Periph_I2C1. + * RCC_APB1Periph_I2C2. + * RCC_APB1Periph_USB. + * RCC_APB1Periph_CAN1. + * RCC_APB1Periph_BKP. + * RCC_APB1Periph_PWR. + * RCC_APB1Periph_DAC. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void RCC_APB1PeriphClockCmd(uint32_t RCC_APB1Periph, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + RCC->APB1PCENR |= RCC_APB1Periph; + } + else + { + RCC->APB1PCENR &= ~RCC_APB1Periph; + } +} + +/********************************************************************* + * @fn RCC_APB2PeriphResetCmd + * + * @brief Forces or releases High Speed APB (APB2) peripheral reset. + * + * @param RCC_APB2Periph - specifies the APB2 peripheral to reset. + * RCC_APB2Periph_AFIO. + * RCC_APB2Periph_GPIOA. + * RCC_APB2Periph_GPIOB. + * RCC_APB2Periph_GPIOC. + * RCC_APB2Periph_GPIOD. + * RCC_APB2Periph_GPIOE + * RCC_APB2Periph_ADC1. + * RCC_APB2Periph_TIM1. + * RCC_APB2Periph_SPI1. + * RCC_APB2Periph_USART1. + * NewState - ENABLE or DISABLE + * + * @return none + */ +void RCC_APB2PeriphResetCmd(uint32_t RCC_APB2Periph, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + RCC->APB2PRSTR |= RCC_APB2Periph; + } + else + { + RCC->APB2PRSTR &= ~RCC_APB2Periph; + } +} + +/********************************************************************* + * @fn RCC_APB1PeriphResetCmd + * + * @brief Forces or releases Low Speed APB (APB1) peripheral reset. + * + * @param RCC_APB1Periph - specifies the APB1 peripheral to reset. + * RCC_APB1Periph_TIM2. + * RCC_APB1Periph_TIM3. + * RCC_APB1Periph_TIM4. + * RCC_APB1Periph_WWDG. + * RCC_APB1Periph_SPI2. + * RCC_APB1Periph_USART2. + * RCC_APB1Periph_USART3. + * RCC_APB1Periph_I2C1. + * RCC_APB1Periph_I2C2. + * RCC_APB1Periph_USB. + * RCC_APB1Periph_CAN1. + * RCC_APB1Periph_BKP. + * RCC_APB1Periph_PWR. + * RCC_APB1Periph_DAC. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void RCC_APB1PeriphResetCmd(uint32_t RCC_APB1Periph, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + RCC->APB1PRSTR |= RCC_APB1Periph; + } + else + { + RCC->APB1PRSTR &= ~RCC_APB1Periph; + } +} + +/********************************************************************* + * @fn RCC_BackupResetCmd + * + * @brief Forces or releases the Backup domain reset. + * + * @param NewState - ENABLE or DISABLE. + * + * @return none + */ +void RCC_BackupResetCmd(FunctionalState NewState) +{ + if(NewState) + { + RCC->BDCTLR |= (1 << 16); + } + else + { + RCC->BDCTLR &= ~(1 << 16); + } +} + +/********************************************************************* + * @fn RCC_ClockSecuritySystemCmd + * + * @brief Enables or disables the Clock Security System. + * + * @param NewState - ENABLE or DISABLE. + * + * @return none + */ +void RCC_ClockSecuritySystemCmd(FunctionalState NewState) +{ + if(NewState) + { + RCC->CTLR |= (1 << 19); + } + else + { + RCC->CTLR &= ~(1 << 19); + } +} + +/********************************************************************* + * @fn RCC_MCOConfig + * + * @brief Selects the clock source to output on MCO pin. + * + * @param RCC_MCO - specifies the clock source to output. + * RCC_MCO_NoClock - No clock selected. + * RCC_MCO_SYSCLK - System clock selected. + * RCC_MCO_HSI - HSI oscillator clock selected. + * RCC_MCO_HSE - HSE oscillator clock selected. + * RCC_MCO_PLLCLK_Div2 - PLL clock divided by 2 selected. + * + * @return none + */ +void RCC_MCOConfig(uint8_t RCC_MCO) +{ + *(__IO uint8_t *)CFGR0_BYTE4_ADDRESS = RCC_MCO; +} + +/********************************************************************* + * @fn RCC_GetFlagStatus + * + * @brief Checks whether the specified RCC flag is set or not. + * + * @param RCC_FLAG - specifies the flag to check. + * RCC_FLAG_HSIRDY - HSI oscillator clock ready. + * RCC_FLAG_HSERDY - HSE oscillator clock ready. + * RCC_FLAG_PLLRDY - PLL clock ready. + * RCC_FLAG_LSERDY - LSE oscillator clock ready. + * RCC_FLAG_LSIRDY - LSI oscillator clock ready. + * RCC_FLAG_PINRST - Pin reset. + * RCC_FLAG_PORRST - POR/PDR reset. + * RCC_FLAG_SFTRST - Software reset. + * RCC_FLAG_IWDGRST - Independent Watchdog reset. + * RCC_FLAG_WWDGRST - Window Watchdog reset. + * RCC_FLAG_LPWRRST - Low Power reset. + * + * @return FlagStatus - SET or RESET. + */ +FlagStatus RCC_GetFlagStatus(uint8_t RCC_FLAG) +{ + uint32_t tmp = 0; + uint32_t statusreg = 0; + + FlagStatus bitstatus = RESET; + tmp = RCC_FLAG >> 5; + + if(tmp == 1) + { + statusreg = RCC->CTLR; + } + else if(tmp == 2) + { + statusreg = RCC->BDCTLR; + } + else + { + statusreg = RCC->RSTSCKR; + } + + tmp = RCC_FLAG & FLAG_Mask; + + if((statusreg & ((uint32_t)1 << tmp)) != (uint32_t)RESET) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + + return bitstatus; +} + +/********************************************************************* + * @fn RCC_ClearFlag + * + * @brief Clears the RCC reset flags. + * + * @return none + */ +void RCC_ClearFlag(void) +{ + RCC->RSTSCKR |= RSTSCKR_RMVF_Set; +} + +/********************************************************************* + * @fn RCC_GetITStatus + * + * @brief Checks whether the specified RCC interrupt has occurred or not. + * + * @param RCC_IT - specifies the RCC interrupt source to check. + * RCC_IT_LSIRDY - LSI ready interrupt. + * RCC_IT_LSERDY - LSE ready interrupt. + * RCC_IT_HSIRDY - HSI ready interrupt. + * RCC_IT_HSERDY - HSE ready interrupt. + * RCC_IT_PLLRDY - PLL ready interrupt. + * RCC_IT_CSS - Clock Security System interrupt. + * + * @return ITStatus - SET or RESET. + */ +ITStatus RCC_GetITStatus(uint8_t RCC_IT) +{ + ITStatus bitstatus = RESET; + + if((RCC->INTR & RCC_IT) != (uint32_t)RESET) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + + return bitstatus; +} + +/********************************************************************* + * @fn RCC_ClearITPendingBit + * + * @brief Clears the RCC's interrupt pending bits. + * + * @param RCC_IT - specifies the interrupt pending bit to clear. + * RCC_IT_LSIRDY - LSI ready interrupt. + * RCC_IT_LSERDY - LSE ready interrupt. + * RCC_IT_HSIRDY - HSI ready interrupt. + * RCC_IT_HSERDY - HSE ready interrupt. + * RCC_IT_PLLRDY - PLL ready interrupt. + * RCC_IT_CSS - Clock Security System interrupt. + * + * @return none + */ +void RCC_ClearITPendingBit(uint8_t RCC_IT) +{ + *(__IO uint8_t *)INTR_BYTE3_ADDRESS = RCC_IT; +} + + + diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_rtc.c b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_rtc.c new file mode 100644 index 0000000000..611bcd4340 --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_rtc.c @@ -0,0 +1,273 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_rtc.c + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file provides all the RTC firmware functions. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + ********************************************************************************/ +#include "ch32v10x_rtc.h" + +/* RTC_Private_Defines */ +#define RTC_LSB_MASK ((uint32_t)0x0000FFFF) /* RTC LSB Mask */ +#define PRLH_MSB_MASK ((uint32_t)0x000F0000) /* RTC Prescaler MSB Mask */ + +/********************************************************************* + * @fn RTC_ITConfig + * + * @brief Enables or disables the specified RTC interrupts. + * + * @param RTC_IT - specifies the RTC interrupts sources to be enabled or disabled. + * RTC_IT_OW - Overflow interrupt + * RTC_IT_ALR - Alarm interrupt + * RTC_IT_SEC - Second interrupt + * + * @return NewState - new state of the specified RTC interrupts(ENABLE or DISABLE). + */ +void RTC_ITConfig(uint16_t RTC_IT, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + RTC->CTLRH |= RTC_IT; + } + else + { + RTC->CTLRH &= (uint16_t)~RTC_IT; + } +} + +/********************************************************************* + * @fn RTC_EnterConfigMode + * + * @brief Enters the RTC configuration mode. + * + * @return none + */ +void RTC_EnterConfigMode(void) +{ + RTC->CTLRL |= RTC_CTLRL_CNF; +} + +/********************************************************************* + * @fn RTC_ExitConfigMode + * + * @brief Exits from the RTC configuration mode. + * + * @return none + */ +void RTC_ExitConfigMode(void) +{ + RTC->CTLRL &= (uint16_t) ~((uint16_t)RTC_CTLRL_CNF); +} + +/********************************************************************* + * @fn RTC_GetCounter + * + * @brief Gets the RTC counter value + * + * @return RTC counter value + */ +uint32_t RTC_GetCounter(void) +{ + uint16_t high1 = 0, high2 = 0, low = 0; + + high1 = RTC->CNTH; + low = RTC->CNTL; + high2 = RTC->CNTH; + + if(high1 != high2) + { + return (((uint32_t)high2 << 16) | RTC->CNTL); + } + else + { + return (((uint32_t)high1 << 16) | low); + } +} + +/********************************************************************* + * @fn RTC_SetCounter + * + * @brief Sets the RTC counter value. + * + * @param CounterValue - RTC counter new value. + * + * @return RTC counter value + */ +void RTC_SetCounter(uint32_t CounterValue) +{ + RTC_EnterConfigMode(); + RTC->CNTH = CounterValue >> 16; + RTC->CNTL = (CounterValue & RTC_LSB_MASK); + RTC_ExitConfigMode(); +} + +/********************************************************************* + * @fn RTC_SetPrescaler + * + * @brief Sets the RTC prescaler value + * + * @param PrescalerValue - RTC prescaler new value + * + * @return none + */ +void RTC_SetPrescaler(uint32_t PrescalerValue) +{ + RTC_EnterConfigMode(); + RTC->PSCRH = (PrescalerValue & PRLH_MSB_MASK) >> 16; + RTC->PSCRL = (PrescalerValue & RTC_LSB_MASK); + RTC_ExitConfigMode(); +} + +/********************************************************************* + * @fn RTC_SetAlarm + * + * @brief Sets the RTC alarm value + * + * @param AlarmValue - RTC alarm new value + * + * @return none + */ +void RTC_SetAlarm(uint32_t AlarmValue) +{ + RTC_EnterConfigMode(); + RTC->ALRMH = AlarmValue >> 16; + RTC->ALRML = (AlarmValue & RTC_LSB_MASK); + RTC_ExitConfigMode(); +} + +/********************************************************************* + * @fn RTC_GetDivider + * + * @brief Gets the RTC divider value + * + * @return RTC Divider value + */ +uint32_t RTC_GetDivider(void) +{ + uint32_t tmp = 0x00; + tmp = ((uint32_t)RTC->DIVH & (uint32_t)0x000F) << 16; + tmp |= RTC->DIVL; + return tmp; +} + +/********************************************************************* + * @fn RTC_WaitForLastTask + * + * @brief Waits until last write operation on RTC registers has finished + * + * @return none + */ +void RTC_WaitForLastTask(void) +{ + while((RTC->CTLRL & RTC_FLAG_RTOFF) == (uint16_t)RESET) + { + } +} + +/********************************************************************* + * @fn RTC_WaitForSynchro + * + * @brief Waits until the RTC registers are synchronized with RTC APB clock + * + * @return none + */ +void RTC_WaitForSynchro(void) +{ + RTC->CTLRL &= (uint16_t)~RTC_FLAG_RSF; + while((RTC->CTLRL & RTC_FLAG_RSF) == (uint16_t)RESET) + { + } +} + +/********************************************************************* + * @fn RTC_GetFlagStatus + * + * @brief Checks whether the specified RTC flag is set or not + * + * @param RTC_FLAG- specifies the flag to check + * RTC_FLAG_RTOFF - RTC Operation OFF flag + * RTC_FLAG_RSF - Registers Synchronized flag + * RTC_FLAG_OW - Overflow flag + * RTC_FLAG_ALR - Alarm flag + * RTC_FLAG_SEC - Second flag + * + * @return The new state of RTC_FLAG (SET or RESET) + */ +FlagStatus RTC_GetFlagStatus(uint16_t RTC_FLAG) +{ + FlagStatus bitstatus = RESET; + if((RTC->CTLRL & RTC_FLAG) != (uint16_t)RESET) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + return bitstatus; +} + +/********************************************************************* + * @fn RTC_ClearFlag + * + * @brief Clears the RTC's pending flags + * + * @param RTC_FLAG - specifies the flag to clear + * RTC_FLAG_RSF - Registers Synchronized flag + * RTC_FLAG_OW - Overflow flag + * RTC_FLAG_ALR - Alarm flag + * RTC_FLAG_SEC - Second flag + * + * @return none + */ +void RTC_ClearFlag(uint16_t RTC_FLAG) +{ + RTC->CTLRL &= (uint16_t)~RTC_FLAG; +} + +/********************************************************************* + * @fn RTC_GetITStatus + * + * @brief Checks whether the specified RTC interrupt has occurred or not + * + * @param RTC_IT - specifies the RTC interrupts sources to check + * RTC_FLAG_OW - Overflow interrupt + * RTC_FLAG_ALR - Alarm interrupt + * RTC_FLAG_SEC - Second interrupt + * + * @return The new state of the RTC_IT (SET or RESET) + */ +ITStatus RTC_GetITStatus(uint16_t RTC_IT) +{ + ITStatus bitstatus = RESET; + + bitstatus = (ITStatus)(RTC->CTLRL & RTC_IT); + if(((RTC->CTLRH & RTC_IT) != (uint16_t)RESET) && (bitstatus != (uint16_t)RESET)) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + return bitstatus; +} + +/********************************************************************* + * @fn RTC_ClearITPendingBit + * + * @brief Clears the RTC's interrupt pending bits + * + * @param RTC_IT - specifies the interrupt pending bit to clear + * RTC_FLAG_OW - Overflow interrupt + * RTC_FLAG_ALR - Alarm interrupt + * RTC_FLAG_SEC - Second interrupt + * + * @return none + */ +void RTC_ClearITPendingBit(uint16_t RTC_IT) +{ + RTC->CTLRL &= (uint16_t)~RTC_IT; +} diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_spi.c b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_spi.c new file mode 100644 index 0000000000..7ff8fbcf08 --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_spi.c @@ -0,0 +1,652 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_spi.c + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file provides all the SPI firmware functions. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *********************************************************************************/ +#include "ch32v10x_spi.h" +#include "ch32v10x_rcc.h" + +/* SPI SPE mask */ +#define CTLR1_SPE_Set ((uint16_t)0x0040) +#define CTLR1_SPE_Reset ((uint16_t)0xFFBF) + +/* I2S I2SE mask */ +#define I2SCFGR_I2SE_Set ((uint16_t)0x0400) +#define I2SCFGR_I2SE_Reset ((uint16_t)0xFBFF) + +/* SPI CRCNext mask */ +#define CTLR1_CRCNext_Set ((uint16_t)0x1000) + +/* SPI CRCEN mask */ +#define CTLR1_CRCEN_Set ((uint16_t)0x2000) +#define CTLR1_CRCEN_Reset ((uint16_t)0xDFFF) + +/* SPI SSOE mask */ +#define CTLR2_SSOE_Set ((uint16_t)0x0004) +#define CTLR2_SSOE_Reset ((uint16_t)0xFFFB) + +/* SPI registers Masks */ +#define CTLR1_CLEAR_Mask ((uint16_t)0x3040) +#define I2SCFGR_CLEAR_Mask ((uint16_t)0xF040) + +/* SPI or I2S mode selection masks */ +#define SPI_Mode_Select ((uint16_t)0xF7FF) +#define I2S_Mode_Select ((uint16_t)0x0800) + +/* I2S clock source selection masks */ +#define I2S2_CLOCK_SRC ((uint32_t)(0x00020000)) +#define I2S3_CLOCK_SRC ((uint32_t)(0x00040000)) +#define I2S_MUL_MASK ((uint32_t)(0x0000F000)) +#define I2S_DIV_MASK ((uint32_t)(0x000000F0)) + +/********************************************************************* + * @fn SPI_I2S_DeInit + * + * @brief Deinitializes the SPIx peripheral registers to their default + * reset values (Affects also the I2Ss). + * @param SPIx - where x can be 1, 2 or 3 to select the SPI peripheral. + * + * @return none + */ +void SPI_I2S_DeInit(SPI_TypeDef *SPIx) +{ + if(SPIx == SPI1) + { + RCC_APB2PeriphResetCmd(RCC_APB2Periph_SPI1, ENABLE); + RCC_APB2PeriphResetCmd(RCC_APB2Periph_SPI1, DISABLE); + } + else if(SPIx == SPI2) + { + RCC_APB1PeriphResetCmd(RCC_APB1Periph_SPI2, ENABLE); + RCC_APB1PeriphResetCmd(RCC_APB1Periph_SPI2, DISABLE); + } + else + { + if(SPIx == SPI3) + { + RCC_APB1PeriphResetCmd(RCC_APB1Periph_SPI3, ENABLE); + RCC_APB1PeriphResetCmd(RCC_APB1Periph_SPI3, DISABLE); + } + } +} + +/********************************************************************* + * @fn SPI_Init + * + * @brief Initializes the SPIx peripheral according to the specified + * parameters in the SPI_InitStruct. + * + * @param SPIx - where x can be 1, 2 or 3 to select the SPI peripheral. + * SPI_InitStruct - pointer to a SPI_InitTypeDef structure that + * contains the configuration information for the specified SPI peripheral. + * + * @return none + */ +void SPI_Init(SPI_TypeDef *SPIx, SPI_InitTypeDef *SPI_InitStruct) +{ + uint16_t tmpreg = 0; + + tmpreg = SPIx->CTLR1; + tmpreg &= CTLR1_CLEAR_Mask; + tmpreg |= (uint16_t)((uint32_t)SPI_InitStruct->SPI_Direction | SPI_InitStruct->SPI_Mode | + SPI_InitStruct->SPI_DataSize | SPI_InitStruct->SPI_CPOL | + SPI_InitStruct->SPI_CPHA | SPI_InitStruct->SPI_NSS | + SPI_InitStruct->SPI_BaudRatePrescaler | SPI_InitStruct->SPI_FirstBit); + + SPIx->CTLR1 = tmpreg; + SPIx->I2SCFGR &= SPI_Mode_Select; + SPIx->CRCR = SPI_InitStruct->SPI_CRCPolynomial; +} + +/********************************************************************* + * @fn I2S_Init + * + * @brief Initializes the SPIx peripheral according to the specified + * parameters in the I2S_InitStruct. + * @param SPIx - where x can be 1, 2 or 3 to select the SPI peripheral. + * (configured in I2S mode). + * I2S_InitStruct - pointer to an I2S_InitTypeDef structure that + * contains the configuration information for the specified SPI peripheral + * configured in I2S mode. + * @return none + */ +void I2S_Init(SPI_TypeDef *SPIx, I2S_InitTypeDef *I2S_InitStruct) +{ + uint16_t tmpreg = 0, i2sdiv = 2, i2sodd = 0, packetlength = 1; + uint32_t tmp = 0; + RCC_ClocksTypeDef RCC_Clocks; + uint32_t sourceclock = 0; + + SPIx->I2SCFGR &= I2SCFGR_CLEAR_Mask; + SPIx->I2SPR = 0x0002; + tmpreg = SPIx->I2SCFGR; + + if(I2S_InitStruct->I2S_AudioFreq == I2S_AudioFreq_Default) + { + i2sodd = (uint16_t)0; + i2sdiv = (uint16_t)2; + } + else + { + if(I2S_InitStruct->I2S_DataFormat == I2S_DataFormat_16b) + { + packetlength = 1; + } + else + { + packetlength = 2; + } + + if(((uint32_t)SPIx) == SPI2_BASE) + { + tmp = I2S2_CLOCK_SRC; + } + else + { + tmp = I2S3_CLOCK_SRC; + } + + RCC_GetClocksFreq(&RCC_Clocks); + + sourceclock = RCC_Clocks.SYSCLK_Frequency; + + if(I2S_InitStruct->I2S_MCLKOutput == I2S_MCLKOutput_Enable) + { + tmp = (uint16_t)(((((sourceclock / 256) * 10) / I2S_InitStruct->I2S_AudioFreq)) + 5); + } + else + { + tmp = (uint16_t)(((((sourceclock / (32 * packetlength)) * 10) / I2S_InitStruct->I2S_AudioFreq)) + 5); + } + + tmp = tmp / 10; + i2sodd = (uint16_t)(tmp & (uint16_t)0x0001); + i2sdiv = (uint16_t)((tmp - i2sodd) / 2); + i2sodd = (uint16_t)(i2sodd << 8); + } + + if((i2sdiv < 2) || (i2sdiv > 0xFF)) + { + i2sdiv = 2; + i2sodd = 0; + } + + SPIx->I2SPR = (uint16_t)(i2sdiv | (uint16_t)(i2sodd | (uint16_t)I2S_InitStruct->I2S_MCLKOutput)); + tmpreg |= (uint16_t)(I2S_Mode_Select | (uint16_t)(I2S_InitStruct->I2S_Mode | \ + (uint16_t)(I2S_InitStruct->I2S_Standard | (uint16_t)(I2S_InitStruct->I2S_DataFormat | \ + (uint16_t)I2S_InitStruct->I2S_CPOL)))); + SPIx->I2SCFGR = tmpreg; +} + +/********************************************************************* + * @fn SPI_StructInit + * + * @brief Fills each SPI_InitStruct member with its default value. + * + * @param SPI_InitStruct - pointer to a SPI_InitTypeDef structure which + * will be initialized. + * + * @return none + */ +void SPI_StructInit(SPI_InitTypeDef *SPI_InitStruct) +{ + SPI_InitStruct->SPI_Direction = SPI_Direction_2Lines_FullDuplex; + SPI_InitStruct->SPI_Mode = SPI_Mode_Slave; + SPI_InitStruct->SPI_DataSize = SPI_DataSize_8b; + SPI_InitStruct->SPI_CPOL = SPI_CPOL_Low; + SPI_InitStruct->SPI_CPHA = SPI_CPHA_1Edge; + SPI_InitStruct->SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2; + SPI_InitStruct->SPI_FirstBit = SPI_FirstBit_MSB; + SPI_InitStruct->SPI_CRCPolynomial = 7; +} + +/********************************************************************* + * @fn I2S_StructInit + * + * @brief Fills each I2S_InitStruct member with its default value. + * + * @param I2S_InitStruct - pointer to a I2S_InitTypeDef structure which + * will be initialized. + * + * @return none + */ +void I2S_StructInit(I2S_InitTypeDef *I2S_InitStruct) +{ + I2S_InitStruct->I2S_Mode = I2S_Mode_SlaveTx; + I2S_InitStruct->I2S_Standard = I2S_Standard_Phillips; + I2S_InitStruct->I2S_DataFormat = I2S_DataFormat_16b; + I2S_InitStruct->I2S_MCLKOutput = I2S_MCLKOutput_Disable; + I2S_InitStruct->I2S_AudioFreq = I2S_AudioFreq_Default; + I2S_InitStruct->I2S_CPOL = I2S_CPOL_Low; +} + +/********************************************************************* + * @fn SPI_Cmd + * + * @brief Enables or disables the specified SPI peripheral. + * + * @param SPIx - where x can be 1, 2 or 3 to select the SPI peripheral. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void SPI_Cmd(SPI_TypeDef *SPIx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + SPIx->CTLR1 |= CTLR1_SPE_Set; + } + else + { + SPIx->CTLR1 &= CTLR1_SPE_Reset; + } +} + +/********************************************************************* + * @fn I2S_Cmd + * + * @brief Enables or disables the specified SPI peripheral (in I2S mode). + * + * @param SPIx - where x can be 1, 2 or 3 to select the SPI peripheral. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void I2S_Cmd(SPI_TypeDef *SPIx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + SPIx->I2SCFGR |= I2SCFGR_I2SE_Set; + } + else + { + SPIx->I2SCFGR &= I2SCFGR_I2SE_Reset; + } +} + +/********************************************************************* + * @fn SPI_I2S_ITConfig + * + * @brief Enables or disables the specified SPI/I2S interrupts. + * + * @param SPIx - where x can be + * - 1, 2 or 3 in SPI mode. + * - 2 or 3 in I2S mode. + * SPI_I2S_IT - specifies the SPI/I2S interrupt source to be + * enabled or disabled. + * SPI_I2S_IT_TXE - Tx buffer empty interrupt mask. + * SPI_I2S_IT_RXNE - Rx buffer not empty interrupt mask. + * SPI_I2S_IT_ERR - Error interrupt mask. + * NewState: ENABLE or DISABLE. + * @return none + */ +void SPI_I2S_ITConfig(SPI_TypeDef *SPIx, uint8_t SPI_I2S_IT, FunctionalState NewState) +{ + uint16_t itpos = 0, itmask = 0; + + itpos = SPI_I2S_IT >> 4; + itmask = (uint16_t)1 << (uint16_t)itpos; + + if(NewState != DISABLE) + { + SPIx->CTLR2 |= itmask; + } + else + { + SPIx->CTLR2 &= (uint16_t)~itmask; + } +} + +/********************************************************************* + * @fn SPI_I2S_DMACmd + * + * @brief Enables or disables the SPIx/I2Sx DMA interface. + * + * @param SPIx - where x can be + * - 1, 2 or 3 in SPI mode. + * - 2 or 3 in I2S mode. + * SPI_I2S_DMAReq - specifies the SPI/I2S DMA transfer request to + * be enabled or disabled. + * SPI_I2S_DMAReq_Tx - Tx buffer DMA transfer request. + * SPI_I2S_DMAReq_Rx - Rx buffer DMA transfer request. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void SPI_I2S_DMACmd(SPI_TypeDef *SPIx, uint16_t SPI_I2S_DMAReq, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + SPIx->CTLR2 |= SPI_I2S_DMAReq; + } + else + { + SPIx->CTLR2 &= (uint16_t)~SPI_I2S_DMAReq; + } +} + +/********************************************************************* + * @fn SPI_I2S_SendData + * + * @brief Transmits a Data through the SPIx/I2Sx peripheral. + * + * @param SPIx - where x can be + * - 1, 2 or 3 in SPI mode. + * - 2 or 3 in I2S mode. + * Data - Data to be transmitted. + * + * @return none + */ +void SPI_I2S_SendData(SPI_TypeDef *SPIx, uint16_t Data) +{ + SPIx->DATAR = Data; +} + +/********************************************************************* + * @fn SPI_I2S_ReceiveData + * + * @brief Returns the most recent received data by the SPIx/I2Sx peripheral. + * + * @param SPIx - where x can be + * - 1, 2 or 3 in SPI mode. + * - 2 or 3 in I2S mode. + * Data - Data to be transmitted. + * + * @return SPIx->DATAR - The value of the received data. + */ +uint16_t SPI_I2S_ReceiveData(SPI_TypeDef *SPIx) +{ + return SPIx->DATAR; +} + +/********************************************************************* + * @fn SPI_NSSInternalSoftwareConfig + * + * @brief Configures internally by software the NSS pin for the selected SPI. + * + * @param SPIx - where x can be 1, 2 or 3 to select the SPI peripheral. + * SPI_NSSInternalSoft - + * SPI_NSSInternalSoft_Set - Set NSS pin internally. + * SPI_NSSInternalSoft_Reset - Reset NSS pin internally. + * + * @return none + */ +void SPI_NSSInternalSoftwareConfig(SPI_TypeDef *SPIx, uint16_t SPI_NSSInternalSoft) +{ + if(SPI_NSSInternalSoft != SPI_NSSInternalSoft_Reset) + { + SPIx->CTLR1 |= SPI_NSSInternalSoft_Set; + } + else + { + SPIx->CTLR1 &= SPI_NSSInternalSoft_Reset; + } +} + +/********************************************************************* + * @fn SPI_SSOutputCmd + * + * @brief Enables or disables the SS output for the selected SPI. + * + * @param SPIx - where x can be 1, 2 or 3 to select the SPI peripheral. + * NewState - new state of the SPIx SS output. + * + * @return none + */ +void SPI_SSOutputCmd(SPI_TypeDef *SPIx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + SPIx->CTLR2 |= CTLR2_SSOE_Set; + } + else + { + SPIx->CTLR2 &= CTLR2_SSOE_Reset; + } +} + +/********************************************************************* + * @fn SPI_DataSizeConfig + * + * @brief Configures the data size for the selected SPI. + * + * @param SPIx - where x can be 1, 2 or 3 to select the SPI peripheral. + * SPI_DataSize - specifies the SPI data size. + * SPI_DataSize_16b - Set data frame format to 16bit. + * SPI_DataSize_8b - Set data frame format to 8bit. + * + * @return none + */ +void SPI_DataSizeConfig(SPI_TypeDef *SPIx, uint16_t SPI_DataSize) +{ + SPIx->CTLR1 &= (uint16_t)~SPI_DataSize_16b; + SPIx->CTLR1 |= SPI_DataSize; +} + +/********************************************************************* + * @fn SPI_TransmitCRC + * + * @brief Transmit the SPIx CRC value. + * + * @param SPIx - where x can be 1, 2 or 3 to select the SPI peripheral. + * + * @return none + */ +void SPI_TransmitCRC(SPI_TypeDef *SPIx) +{ + SPIx->CTLR1 |= CTLR1_CRCNext_Set; +} + +/********************************************************************* + * @fn SPI_CalculateCRC + * + * @brief Enables or disables the CRC value calculation of the transferred bytes. + * + * @param SPIx - where x can be 1, 2 or 3 to select the SPI peripheral. + * NewState - new state of the SPIx CRC value calculation. + * + * @return none + */ +void SPI_CalculateCRC(SPI_TypeDef *SPIx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + SPIx->CTLR1 |= CTLR1_CRCEN_Set; + } + else + { + SPIx->CTLR1 &= CTLR1_CRCEN_Reset; + } +} + +/********************************************************************* + * @fn SPI_GetCRC + * + * @brief Returns the transmit or the receive CRC register value for the specified SPI. + * + * @param SPIx - where x can be 1, 2 or 3 to select the SPI peripheral. + * SPI_CRC - specifies the CRC register to be read. + * SPI_CRC_Tx - Selects Tx CRC register. + * SPI_CRC_Rx - Selects Rx CRC register. + * + * @return crcreg: The selected CRC register value. + */ +uint16_t SPI_GetCRC(SPI_TypeDef *SPIx, uint8_t SPI_CRC) +{ + uint16_t crcreg = 0; + + if(SPI_CRC != SPI_CRC_Rx) + { + crcreg = SPIx->TCRCR; + } + else + { + crcreg = SPIx->RCRCR; + } + + return crcreg; +} + +/********************************************************************* + * @fn SPI_GetCRCPolynomial + * + * @brief Returns the CRC Polynomial register value for the specified SPI. + * + * @param SPIx - where x can be 1, 2 or 3 to select the SPI peripheral. + * + * @return SPIx->CRCR - The CRC Polynomial register value. + */ +uint16_t SPI_GetCRCPolynomial(SPI_TypeDef *SPIx) +{ + return SPIx->CRCR; +} + +/********************************************************************* + * @fn SPI_BiDirectionalLineConfig + * + * @brief Selects the data transfer direction in bi-directional mode + * for the specified SPI. + * + * @param SPIx - where x can be 1, 2 or 3 to select the SPI peripheral. + * SPI_Direction - specifies the data transfer direction in + * bi-directional mode. + * SPI_Direction_Tx - Selects Tx transmission direction. + * SPI_Direction_Rx - Selects Rx receive direction. + * + * @return none + */ +void SPI_BiDirectionalLineConfig(SPI_TypeDef *SPIx, uint16_t SPI_Direction) +{ + if(SPI_Direction == SPI_Direction_Tx) + { + SPIx->CTLR1 |= SPI_Direction_Tx; + } + else + { + SPIx->CTLR1 &= SPI_Direction_Rx; + } +} + +/********************************************************************* + * @fn SPI_I2S_GetFlagStatus + * + * @brief Checks whether the specified SPI/I2S flag is set or not. + * + * @param SPIx - where x can be + * - 1, 2 or 3 in SPI mode. + * - 2 or 3 in I2S mode. + * SPI_I2S_FLAG - specifies the SPI/I2S flag to check. + * SPI_I2S_FLAG_TXE - Transmit buffer empty flag. + * SPI_I2S_FLAG_RXNE - Receive buffer not empty flag. + * SPI_I2S_FLAG_BSY - Busy flag. + * SPI_I2S_FLAG_OVR - Overrun flag. + * SPI_FLAG_MODF - Mode Fault flag. + * SPI_FLAG_CRCERR - CRC Error flag. + * I2S_FLAG_UDR - Underrun Error flag. + * I2S_FLAG_CHSIDE - Channel Side flag. + * + * @return FlagStatus: SET or RESET. + */ +FlagStatus SPI_I2S_GetFlagStatus(SPI_TypeDef *SPIx, uint16_t SPI_I2S_FLAG) +{ + FlagStatus bitstatus = RESET; + + if((SPIx->STATR & SPI_I2S_FLAG) != (uint16_t)RESET) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + + return bitstatus; +} + +/********************************************************************* + * @fn SPI_I2S_ClearFlag + * + * @brief Clears the SPIx CRC Error (CRCERR) flag. + * + * @param SPIx - where x can be + * - 1, 2 or 3 in SPI mode. + * - 2 or 3 in I2S mode. + * SPI_I2S_FLAG - specifies the SPI flag to clear. + * SPI_FLAG_CRCERR - CRC Error flag. + * + * @return FlagStatus: SET or RESET. + */ +void SPI_I2S_ClearFlag(SPI_TypeDef *SPIx, uint16_t SPI_I2S_FLAG) +{ + SPIx->STATR = (uint16_t)~SPI_I2S_FLAG; +} + +/********************************************************************* + * @fn SPI_I2S_GetITStatus + * + * @brief Checks whether the specified SPI/I2S interrupt has occurred or not. + * + * @param SPIx - where x can be + * - 1, 2 or 3 in SPI mode. + * - 2 or 3 in I2S mode. + * SPI_I2S_IT - specifies the SPI/I2S interrupt source to check.. + * SPI_I2S_IT_TXE - Transmit buffer empty interrupt. + * SPI_I2S_IT_RXNE - Receive buffer not empty interrupt. + * SPI_I2S_IT_OVR - Overrun interrupt. + * SPI_IT_MODF - Mode Fault interrupt. + * SPI_IT_CRCERR - CRC Error interrupt. + * I2S_IT_UDR - Underrun Error interrupt. + * + * @return FlagStatus: SET or RESET. + */ +ITStatus SPI_I2S_GetITStatus(SPI_TypeDef *SPIx, uint8_t SPI_I2S_IT) +{ + ITStatus bitstatus = RESET; + uint16_t itpos = 0, itmask = 0, enablestatus = 0; + + itpos = 0x01 << (SPI_I2S_IT & 0x0F); + itmask = SPI_I2S_IT >> 4; + itmask = 0x01 << itmask; + enablestatus = (SPIx->CTLR2 & itmask); + + if(((SPIx->STATR & itpos) != (uint16_t)RESET) && enablestatus) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + + return bitstatus; +} + +/********************************************************************* + * @fn SPI_I2S_ClearITPendingBit + * + * @brief Clears the SPIx CRC Error (CRCERR) interrupt pending bit. + * + * @param SPIx - where x can be + * - 1, 2 or 3 in SPI mode. + * SPI_I2S_IT - specifies the SPI interrupt pending bit to clear. + * SPI_IT_CRCERR - CRC Error interrupt. + * + * @return none + */ +void SPI_I2S_ClearITPendingBit(SPI_TypeDef *SPIx, uint8_t SPI_I2S_IT) +{ + uint16_t itpos = 0; + + itpos = 0x01 << (SPI_I2S_IT & 0x0F); + SPIx->STATR = (uint16_t)~itpos; +} + + + + + + diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_tim.c b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_tim.c new file mode 100644 index 0000000000..d13babedce --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_tim.c @@ -0,0 +1,2353 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_tim.c + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file provides all the TIM firmware functions. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *******************************************************************************/ +#include "ch32v10x_tim.h" +#include "ch32v10x_rcc.h" + +/* TIM registers bit mask */ +#define SMCFGR_ETR_Mask ((uint16_t)0x00FF) +#define CHCTLR_Offset ((uint16_t)0x0018) +#define CCER_CCE_Set ((uint16_t)0x0001) +#define CCER_CCNE_Set ((uint16_t)0x0004) + +static void TI1_Config(TIM_TypeDef *TIMx, uint16_t TIM_ICPolarity, uint16_t TIM_ICSelection, + uint16_t TIM_ICFilter); +static void TI2_Config(TIM_TypeDef *TIMx, uint16_t TIM_ICPolarity, uint16_t TIM_ICSelection, + uint16_t TIM_ICFilter); +static void TI3_Config(TIM_TypeDef *TIMx, uint16_t TIM_ICPolarity, uint16_t TIM_ICSelection, + uint16_t TIM_ICFilter); +static void TI4_Config(TIM_TypeDef *TIMx, uint16_t TIM_ICPolarity, uint16_t TIM_ICSelection, + uint16_t TIM_ICFilter); + +/********************************************************************* + * @fn TIM_DeInit + * + * @brief Deinitializes the TIMx peripheral registers to their default + * reset values. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * + * @return none + */ +void TIM_DeInit(TIM_TypeDef *TIMx) +{ + if(TIMx == TIM1) + { + RCC_APB2PeriphResetCmd(RCC_APB2Periph_TIM1, ENABLE); + RCC_APB2PeriphResetCmd(RCC_APB2Periph_TIM1, DISABLE); + } + else if(TIMx == TIM2) + { + RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM2, ENABLE); + RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM2, DISABLE); + } + else if(TIMx == TIM3) + { + RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM3, ENABLE); + RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM3, DISABLE); + } + else if(TIMx == TIM4) + { + RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM4, ENABLE); + RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM4, DISABLE); + } +} + +/********************************************************************* + * @fn TIM_TimeBaseInit + * + * @brief Initializes the TIMx Time Base Unit peripheral according to + * the specified parameters in the TIM_TimeBaseInitStruct. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * TIM_TimeBaseInitStruct - pointer to a TIM_TimeBaseInitTypeDef + * structure. + * + * @return none + */ +void TIM_TimeBaseInit(TIM_TypeDef *TIMx, TIM_TimeBaseInitTypeDef *TIM_TimeBaseInitStruct) +{ + uint16_t tmpcr1 = 0; + + tmpcr1 = TIMx->CTLR1; + + if((TIMx == TIM1) || (TIMx == TIM2) || (TIMx == TIM3) || (TIMx == TIM4)) + { + tmpcr1 &= (uint16_t)(~((uint16_t)(TIM_DIR | TIM_CMS))); + tmpcr1 |= (uint32_t)TIM_TimeBaseInitStruct->TIM_CounterMode; + } + + tmpcr1 &= (uint16_t)(~((uint16_t)TIM_CTLR1_CKD)); + tmpcr1 |= (uint32_t)TIM_TimeBaseInitStruct->TIM_ClockDivision; + + TIMx->CTLR1 = tmpcr1; + TIMx->ATRLR = TIM_TimeBaseInitStruct->TIM_Period; + TIMx->PSC = TIM_TimeBaseInitStruct->TIM_Prescaler; + + if(TIMx == TIM1) + { + TIMx->RPTCR = TIM_TimeBaseInitStruct->TIM_RepetitionCounter; + } + + TIMx->SWEVGR = TIM_PSCReloadMode_Immediate; +} + +/********************************************************************* + * @fn TIM_OC1Init + * + * @brief Initializes the TIMx Channel1 according to the specified + * parameters in the TIM_OCInitStruct. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * TIM_OCInitStruct - pointer to a TIM_OCInitTypeDef structure. + * + * @return none + */ +void TIM_OC1Init(TIM_TypeDef *TIMx, TIM_OCInitTypeDef *TIM_OCInitStruct) +{ + uint16_t tmpccmrx = 0, tmpccer = 0, tmpcr2 = 0; + + TIMx->CCER &= (uint16_t)(~(uint16_t)TIM_CC1E); + tmpccer = TIMx->CCER; + tmpcr2 = TIMx->CTLR2; + tmpccmrx = TIMx->CHCTLR1; + tmpccmrx &= (uint16_t)(~((uint16_t)TIM_OC1M)); + tmpccmrx &= (uint16_t)(~((uint16_t)TIM_CC1S)); + tmpccmrx |= TIM_OCInitStruct->TIM_OCMode; + tmpccer &= (uint16_t)(~((uint16_t)TIM_CC1P)); + tmpccer |= TIM_OCInitStruct->TIM_OCPolarity; + tmpccer |= TIM_OCInitStruct->TIM_OutputState; + + if(TIMx == TIM1) + { + tmpccer &= (uint16_t)(~((uint16_t)TIM_CC1NP)); + tmpccer |= TIM_OCInitStruct->TIM_OCNPolarity; + + tmpccer &= (uint16_t)(~((uint16_t)TIM_CC1NE)); + tmpccer |= TIM_OCInitStruct->TIM_OutputNState; + + tmpcr2 &= (uint16_t)(~((uint16_t)TIM_OIS1)); + tmpcr2 &= (uint16_t)(~((uint16_t)TIM_OIS1N)); + + tmpcr2 |= TIM_OCInitStruct->TIM_OCIdleState; + tmpcr2 |= TIM_OCInitStruct->TIM_OCNIdleState; + } + + TIMx->CTLR2 = tmpcr2; + TIMx->CHCTLR1 = tmpccmrx; + TIMx->CH1CVR = TIM_OCInitStruct->TIM_Pulse; + TIMx->CCER = tmpccer; +} + +/********************************************************************* + * @fn TIM_OC2Init + * + * @brief Initializes the TIMx Channel2 according to the specified + * parameters in the TIM_OCInitStruct. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * TIM_OCInitStruct - pointer to a TIM_OCInitTypeDef structure. + * + * @return none + */ +void TIM_OC2Init(TIM_TypeDef *TIMx, TIM_OCInitTypeDef *TIM_OCInitStruct) +{ + uint16_t tmpccmrx = 0, tmpccer = 0, tmpcr2 = 0; + + TIMx->CCER &= (uint16_t)(~((uint16_t)TIM_CC2E)); + tmpccer = TIMx->CCER; + tmpcr2 = TIMx->CTLR2; + tmpccmrx = TIMx->CHCTLR1; + tmpccmrx &= (uint16_t)(~((uint16_t)TIM_OC2M)); + tmpccmrx &= (uint16_t)(~((uint16_t)TIM_CC2S)); + tmpccmrx |= (uint16_t)(TIM_OCInitStruct->TIM_OCMode << 8); + tmpccer &= (uint16_t)(~((uint16_t)TIM_CC2P)); + tmpccer |= (uint16_t)(TIM_OCInitStruct->TIM_OCPolarity << 4); + tmpccer |= (uint16_t)(TIM_OCInitStruct->TIM_OutputState << 4); + + if(TIMx == TIM1) + { + tmpccer &= (uint16_t)(~((uint16_t)TIM_CC2NP)); + tmpccer |= (uint16_t)(TIM_OCInitStruct->TIM_OCNPolarity << 4); + tmpccer &= (uint16_t)(~((uint16_t)TIM_CC2NE)); + tmpccer |= (uint16_t)(TIM_OCInitStruct->TIM_OutputNState << 4); + + tmpcr2 &= (uint16_t)(~((uint16_t)TIM_OIS2)); + tmpcr2 &= (uint16_t)(~((uint16_t)TIM_OIS2N)); + tmpcr2 |= (uint16_t)(TIM_OCInitStruct->TIM_OCIdleState << 2); + tmpcr2 |= (uint16_t)(TIM_OCInitStruct->TIM_OCNIdleState << 2); + } + + TIMx->CTLR2 = tmpcr2; + TIMx->CHCTLR1 = tmpccmrx; + TIMx->CH2CVR = TIM_OCInitStruct->TIM_Pulse; + TIMx->CCER = tmpccer; +} + +/********************************************************************* + * @fn TIM_OC3Init + * + * @brief Initializes the TIMx Channel3 according to the specified + * parameters in the TIM_OCInitStruct. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * TIM_OCInitStruct - pointer to a TIM_OCInitTypeDef structure. + * + * @return none + */ +void TIM_OC3Init(TIM_TypeDef *TIMx, TIM_OCInitTypeDef *TIM_OCInitStruct) +{ + uint16_t tmpccmrx = 0, tmpccer = 0, tmpcr2 = 0; + + TIMx->CCER &= (uint16_t)(~((uint16_t)TIM_CC3E)); + tmpccer = TIMx->CCER; + tmpcr2 = TIMx->CTLR2; + tmpccmrx = TIMx->CHCTLR2; + tmpccmrx &= (uint16_t)(~((uint16_t)TIM_OC3M)); + tmpccmrx &= (uint16_t)(~((uint16_t)TIM_CC3S)); + tmpccmrx |= TIM_OCInitStruct->TIM_OCMode; + tmpccer &= (uint16_t)(~((uint16_t)TIM_CC3P)); + tmpccer |= (uint16_t)(TIM_OCInitStruct->TIM_OCPolarity << 8); + tmpccer |= (uint16_t)(TIM_OCInitStruct->TIM_OutputState << 8); + + if(TIMx == TIM1) + { + tmpccer &= (uint16_t)(~((uint16_t)TIM_CC3NP)); + tmpccer |= (uint16_t)(TIM_OCInitStruct->TIM_OCNPolarity << 8); + tmpccer &= (uint16_t)(~((uint16_t)TIM_CC3NE)); + tmpccer |= (uint16_t)(TIM_OCInitStruct->TIM_OutputNState << 8); + tmpcr2 &= (uint16_t)(~((uint16_t)TIM_OIS3)); + tmpcr2 &= (uint16_t)(~((uint16_t)TIM_OIS3N)); + tmpcr2 |= (uint16_t)(TIM_OCInitStruct->TIM_OCIdleState << 4); + tmpcr2 |= (uint16_t)(TIM_OCInitStruct->TIM_OCNIdleState << 4); + } + + TIMx->CTLR2 = tmpcr2; + TIMx->CHCTLR2 = tmpccmrx; + TIMx->CH3CVR = TIM_OCInitStruct->TIM_Pulse; + TIMx->CCER = tmpccer; +} + +/********************************************************************* + * @fn TIM_OC4Init + * + * @brief Initializes the TIMx Channel4 according to the specified + * parameters in the TIM_OCInitStruct. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * TIM_OCInitStruct - pointer to a TIM_OCInitTypeDef structure. + * + * @return none + */ +void TIM_OC4Init(TIM_TypeDef *TIMx, TIM_OCInitTypeDef *TIM_OCInitStruct) +{ + uint16_t tmpccmrx = 0, tmpccer = 0, tmpcr2 = 0; + + TIMx->CCER &= (uint16_t)(~((uint16_t)TIM_CC4E)); + tmpccer = TIMx->CCER; + tmpcr2 = TIMx->CTLR2; + tmpccmrx = TIMx->CHCTLR2; + tmpccmrx &= (uint16_t)(~((uint16_t)TIM_OC4M)); + tmpccmrx &= (uint16_t)(~((uint16_t)TIM_CC4S)); + tmpccmrx |= (uint16_t)(TIM_OCInitStruct->TIM_OCMode << 8); + tmpccer &= (uint16_t)(~((uint16_t)TIM_CC4P)); + tmpccer |= (uint16_t)(TIM_OCInitStruct->TIM_OCPolarity << 12); + tmpccer |= (uint16_t)(TIM_OCInitStruct->TIM_OutputState << 12); + + if(TIMx == TIM1) + { + tmpcr2 &= (uint16_t)(~((uint16_t)TIM_OIS4)); + tmpcr2 |= (uint16_t)(TIM_OCInitStruct->TIM_OCIdleState << 6); + } + + TIMx->CTLR2 = tmpcr2; + TIMx->CHCTLR2 = tmpccmrx; + TIMx->CH4CVR = TIM_OCInitStruct->TIM_Pulse; + TIMx->CCER = tmpccer; +} + +/********************************************************************* + * @fn TIM_ICInit + * + * @brief IInitializes the TIM peripheral according to the specified + * parameters in the TIM_ICInitStruct. + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * TIM_ICInitStruct - pointer to a TIM_ICInitTypeDef structure. + * + * @return none + */ +void TIM_ICInit(TIM_TypeDef *TIMx, TIM_ICInitTypeDef *TIM_ICInitStruct) +{ + if(TIM_ICInitStruct->TIM_Channel == TIM_Channel_1) + { + TI1_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity, + TIM_ICInitStruct->TIM_ICSelection, + TIM_ICInitStruct->TIM_ICFilter); + TIM_SetIC1Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler); + } + else if(TIM_ICInitStruct->TIM_Channel == TIM_Channel_2) + { + TI2_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity, + TIM_ICInitStruct->TIM_ICSelection, + TIM_ICInitStruct->TIM_ICFilter); + TIM_SetIC2Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler); + } + else if(TIM_ICInitStruct->TIM_Channel == TIM_Channel_3) + { + TI3_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity, + TIM_ICInitStruct->TIM_ICSelection, + TIM_ICInitStruct->TIM_ICFilter); + TIM_SetIC3Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler); + } + else + { + TI4_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity, + TIM_ICInitStruct->TIM_ICSelection, + TIM_ICInitStruct->TIM_ICFilter); + TIM_SetIC4Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler); + } +} + +/********************************************************************* + * @fn TIM_PWMIConfig + * + * @brief Configures the TIM peripheral according to the specified + * parameters in the TIM_ICInitStruct to measure an external + * PWM signal. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * TIM_ICInitStruct - pointer to a TIM_ICInitTypeDef structure. + * + * @return none + */ +void TIM_PWMIConfig(TIM_TypeDef *TIMx, TIM_ICInitTypeDef *TIM_ICInitStruct) +{ + uint16_t icoppositepolarity = TIM_ICPolarity_Rising; + uint16_t icoppositeselection = TIM_ICSelection_DirectTI; + + if(TIM_ICInitStruct->TIM_ICPolarity == TIM_ICPolarity_Rising) + { + icoppositepolarity = TIM_ICPolarity_Falling; + } + else + { + icoppositepolarity = TIM_ICPolarity_Rising; + } + + if(TIM_ICInitStruct->TIM_ICSelection == TIM_ICSelection_DirectTI) + { + icoppositeselection = TIM_ICSelection_IndirectTI; + } + else + { + icoppositeselection = TIM_ICSelection_DirectTI; + } + + if(TIM_ICInitStruct->TIM_Channel == TIM_Channel_1) + { + TI1_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity, TIM_ICInitStruct->TIM_ICSelection, + TIM_ICInitStruct->TIM_ICFilter); + TIM_SetIC1Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler); + TI2_Config(TIMx, icoppositepolarity, icoppositeselection, TIM_ICInitStruct->TIM_ICFilter); + TIM_SetIC2Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler); + } + else + { + TI2_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity, TIM_ICInitStruct->TIM_ICSelection, + TIM_ICInitStruct->TIM_ICFilter); + TIM_SetIC2Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler); + TI1_Config(TIMx, icoppositepolarity, icoppositeselection, TIM_ICInitStruct->TIM_ICFilter); + TIM_SetIC1Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler); + } +} + +/********************************************************************* + * @fn TIM_BDTRConfig + * + * @brief Configures the: Break feature, dead time, Lock level, the OSSI, + * the OSSR State and the AOE(automatic output enable). + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * TIM_BDTRInitStruct - pointer to a TIM_BDTRInitTypeDef structure. + * + * @return none + */ +void TIM_BDTRConfig(TIM_TypeDef *TIMx, TIM_BDTRInitTypeDef *TIM_BDTRInitStruct) +{ + TIMx->BDTR = (uint32_t)TIM_BDTRInitStruct->TIM_OSSRState | TIM_BDTRInitStruct->TIM_OSSIState | + TIM_BDTRInitStruct->TIM_LOCKLevel | TIM_BDTRInitStruct->TIM_DeadTime | + TIM_BDTRInitStruct->TIM_Break | TIM_BDTRInitStruct->TIM_BreakPolarity | + TIM_BDTRInitStruct->TIM_AutomaticOutput; +} + +/********************************************************************* + * @fn TIM_TimeBaseStructInit + * + * @brief Fills each TIM_TimeBaseInitStruct member with its default value. + * + * @param TIM_TimeBaseInitStruct - pointer to a TIM_TimeBaseInitTypeDef structure. + * + * @return none + */ +void TIM_TimeBaseStructInit(TIM_TimeBaseInitTypeDef *TIM_TimeBaseInitStruct) +{ + TIM_TimeBaseInitStruct->TIM_Period = 0xFFFF; + TIM_TimeBaseInitStruct->TIM_Prescaler = 0x0000; + TIM_TimeBaseInitStruct->TIM_ClockDivision = TIM_CKD_DIV1; + TIM_TimeBaseInitStruct->TIM_CounterMode = TIM_CounterMode_Up; + TIM_TimeBaseInitStruct->TIM_RepetitionCounter = 0x0000; +} + +/********************************************************************* + * @fn TIM_OCStructInit + * + * @brief Fills each TIM_OCInitStruct member with its default value. + * + * @param TIM_OCInitStruct - pointer to a TIM_OCInitTypeDef structure. + * + * @return none + */ +void TIM_OCStructInit(TIM_OCInitTypeDef *TIM_OCInitStruct) +{ + TIM_OCInitStruct->TIM_OCMode = TIM_OCMode_Timing; + TIM_OCInitStruct->TIM_OutputState = TIM_OutputState_Disable; + TIM_OCInitStruct->TIM_OutputNState = TIM_OutputNState_Disable; + TIM_OCInitStruct->TIM_Pulse = 0x0000; + TIM_OCInitStruct->TIM_OCPolarity = TIM_OCPolarity_High; + TIM_OCInitStruct->TIM_OCNPolarity = TIM_OCPolarity_High; + TIM_OCInitStruct->TIM_OCIdleState = TIM_OCIdleState_Reset; + TIM_OCInitStruct->TIM_OCNIdleState = TIM_OCNIdleState_Reset; +} + +/********************************************************************* + * @fn TIM_ICStructInit + * + * @brief Fills each TIM_ICInitStruct member with its default value. + * + * @param TIM_ICInitStruct - pointer to a TIM_ICInitTypeDef structure. + * + * @return none + */ +void TIM_ICStructInit(TIM_ICInitTypeDef *TIM_ICInitStruct) +{ + TIM_ICInitStruct->TIM_Channel = TIM_Channel_1; + TIM_ICInitStruct->TIM_ICPolarity = TIM_ICPolarity_Rising; + TIM_ICInitStruct->TIM_ICSelection = TIM_ICSelection_DirectTI; + TIM_ICInitStruct->TIM_ICPrescaler = TIM_ICPSC_DIV1; + TIM_ICInitStruct->TIM_ICFilter = 0x00; +} + +/********************************************************************* + * @fn TIM_BDTRStructInit + * + * @brief Fills each TIM_BDTRInitStruct member with its default value. + * + * @param TIM_BDTRInitStruct - pointer to a TIM_BDTRInitTypeDef structure. + * + * @return none + */ +void TIM_BDTRStructInit(TIM_BDTRInitTypeDef *TIM_BDTRInitStruct) +{ + TIM_BDTRInitStruct->TIM_OSSRState = TIM_OSSRState_Disable; + TIM_BDTRInitStruct->TIM_OSSIState = TIM_OSSIState_Disable; + TIM_BDTRInitStruct->TIM_LOCKLevel = TIM_LOCKLevel_OFF; + TIM_BDTRInitStruct->TIM_DeadTime = 0x00; + TIM_BDTRInitStruct->TIM_Break = TIM_Break_Disable; + TIM_BDTRInitStruct->TIM_BreakPolarity = TIM_BreakPolarity_Low; + TIM_BDTRInitStruct->TIM_AutomaticOutput = TIM_AutomaticOutput_Disable; +} + +/********************************************************************* + * @fn TIM_Cmd + * + * @brief Enables or disables the specified TIM peripheral. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void TIM_Cmd(TIM_TypeDef *TIMx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + TIMx->CTLR1 |= TIM_CEN; + } + else + { + TIMx->CTLR1 &= (uint16_t)(~((uint16_t)TIM_CEN)); + } +} + +/********************************************************************* + * @fn TIM_CtrlPWMOutputs + * + * @brief Enables or disables the TIM peripheral Main Outputs. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void TIM_CtrlPWMOutputs(TIM_TypeDef *TIMx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + TIMx->BDTR |= TIM_MOE; + } + else + { + TIMx->BDTR &= (uint16_t)(~((uint16_t)TIM_MOE)); + } +} + +/********************************************************************* + * @fn TIM_ITConfig + * + * @brief Enables or disables the specified TIM interrupts. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * TIM_IT - specifies the TIM interrupts sources to be enabled or disabled. + * TIM_IT_Update - TIM update Interrupt source. + * TIM_IT_CC1 - TIM Capture Compare 1 Interrupt source. + * TIM_IT_CC2 - TIM Capture Compare 2 Interrupt source + * TIM_IT_CC3 - TIM Capture Compare 3 Interrupt source. + * TIM_IT_CC4 - TIM Capture Compare 4 Interrupt source. + * TIM_IT_COM - TIM Commutation Interrupt source. + * TIM_IT_Trigger - TIM Trigger Interrupt source. + * TIM_IT_Break - TIM Break Interrupt source. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void TIM_ITConfig(TIM_TypeDef *TIMx, uint16_t TIM_IT, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + TIMx->DMAINTENR |= TIM_IT; + } + else + { + TIMx->DMAINTENR &= (uint16_t)~TIM_IT; + } +} + +/********************************************************************* + * @fn TIM_GenerateEvent + * + * @brief Configures the TIMx event to be generate by software. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * TIM_IT - specifies the TIM interrupts sources to be enabled or disabled. + * TIM_IT_Update - TIM update Interrupt source. + * TIM_IT_CC1 - TIM Capture Compare 1 Interrupt source. + * TIM_IT_CC2 - TIM Capture Compare 2 Interrupt source + * TIM_IT_CC3 - TIM Capture Compare 3 Interrupt source. + * TIM_IT_CC4 - TIM Capture Compare 4 Interrupt source. + * TIM_IT_COM - TIM Commutation Interrupt source. + * TIM_IT_Trigger - TIM Trigger Interrupt source. + * TIM_IT_Break - TIM Break Interrupt source. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void TIM_GenerateEvent(TIM_TypeDef *TIMx, uint16_t TIM_EventSource) +{ + TIMx->SWEVGR = TIM_EventSource; +} + +/********************************************************************* + * @fn TIM_DMAConfig + * + * @brief Configures the TIMx's DMA interface. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * TIM_DMABase: DMA Base address. + * TIM_DMABase_CR. + * TIM_DMABase_CR2. + * TIM_DMABase_SMCR. + * TIM_DMABase_DIER. + * TIM1_DMABase_SR. + * TIM_DMABase_EGR. + * TIM_DMABase_CCMR1. + * TIM_DMABase_CCMR2. + * TIM_DMABase_CCER. + * TIM_DMABase_CNT. + * TIM_DMABase_PSC. + * TIM_DMABase_CCR1. + * TIM_DMABase_CCR2. + * TIM_DMABase_CCR3. + * TIM_DMABase_CCR4. + * TIM_DMABase_BDTR. + * TIM_DMABase_DCR. + * TIM_DMABurstLength - DMA Burst length. + * TIM_DMABurstLength_1Transfer. + * TIM_DMABurstLength_18Transfers. + * + * @return none + */ +void TIM_DMAConfig(TIM_TypeDef *TIMx, uint16_t TIM_DMABase, uint16_t TIM_DMABurstLength) +{ + TIMx->DMACFGR = TIM_DMABase | TIM_DMABurstLength; +} + +/********************************************************************* + * @fn TIM_DMACmd + * + * @brief Enables or disables the TIMx's DMA Requests. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * TIM_DMASource - specifies the DMA Request sources. + * TIM_DMA_Update - TIM update Interrupt source. + * TIM_DMA_CC1 - TIM Capture Compare 1 DMA source. + * TIM_DMA_CC2 - TIM Capture Compare 2 DMA source. + * TIM_DMA_CC3 - TIM Capture Compare 3 DMA source. + * TIM_DMA_CC4 - TIM Capture Compare 4 DMA source. + * TIM_DMA_COM - TIM Commutation DMA source. + * TIM_DMA_Trigger - TIM Trigger DMA source. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void TIM_DMACmd(TIM_TypeDef *TIMx, uint16_t TIM_DMASource, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + TIMx->DMAINTENR |= TIM_DMASource; + } + else + { + TIMx->DMAINTENR &= (uint16_t)~TIM_DMASource; + } +} + +/********************************************************************* + * @fn TIM_InternalClockConfig + * + * @brief Configures the TIMx internal Clock. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * + * @return none + */ +void TIM_InternalClockConfig(TIM_TypeDef *TIMx) +{ + TIMx->SMCFGR &= (uint16_t)(~((uint16_t)TIM_SMS)); +} + +/********************************************************************* + * @fn TIM_ITRxExternalClockConfig + * + * @brief Configures the TIMx Internal Trigger as External Clock. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * TIM_InputTriggerSource: Trigger source. + * TIM_TS_ITR0 - Internal Trigger 0. + * TIM_TS_ITR1 - Internal Trigger 1. + * TIM_TS_ITR2 - Internal Trigger 2. + * TIM_TS_ITR3 - Internal Trigger 3. + * + * @return none + */ +void TIM_ITRxExternalClockConfig(TIM_TypeDef *TIMx, uint16_t TIM_InputTriggerSource) +{ + TIM_SelectInputTrigger(TIMx, TIM_InputTriggerSource); + TIMx->SMCFGR |= TIM_SlaveMode_External1; +} + +/********************************************************************* + * @fn TIM_TIxExternalClockConfig + * + * @brief Configures the TIMx Trigger as External Clock. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * TIM_TIxExternalCLKSource - Trigger source. + * TIM_TIxExternalCLK1Source_TI1ED - TI1 Edge Detector. + * TIM_TIxExternalCLK1Source_TI1 - Filtered Timer Input 1. + * TIM_TIxExternalCLK1Source_TI2 - Filtered Timer Input 2. + * TIM_ICPolarity - specifies the TIx Polarity. + * TIM_ICPolarity_Rising. + * TIM_ICPolarity_Falling. + * TIM_DMA_COM - TIM Commutation DMA source. + * TIM_DMA_Trigger - TIM Trigger DMA source. + * ICFilter - specifies the filter value. + * This parameter must be a value between 0x0 and 0xF. + * + * @return none + */ +void TIM_TIxExternalClockConfig(TIM_TypeDef *TIMx, uint16_t TIM_TIxExternalCLKSource, + uint16_t TIM_ICPolarity, uint16_t ICFilter) +{ + if(TIM_TIxExternalCLKSource == TIM_TIxExternalCLK1Source_TI2) + { + TI2_Config(TIMx, TIM_ICPolarity, TIM_ICSelection_DirectTI, ICFilter); + } + else + { + TI1_Config(TIMx, TIM_ICPolarity, TIM_ICSelection_DirectTI, ICFilter); + } + + TIM_SelectInputTrigger(TIMx, TIM_TIxExternalCLKSource); + TIMx->SMCFGR |= TIM_SlaveMode_External1; +} + +/********************************************************************* + * @fn TIM_ETRClockMode1Config + * + * @brief Configures the External clock Mode1. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * TIM_ExtTRGPrescaler - The external Trigger Prescaler. + * TIM_ExtTRGPSC_OFF - ETRP Prescaler OFF. + * TIM_ExtTRGPSC_DIV2 - ETRP frequency divided by 2. + * TIM_ExtTRGPSC_DIV4 - ETRP frequency divided by 4. + * TIM_ExtTRGPSC_DIV8 - ETRP frequency divided by 8. + * TIM_ExtTRGPolarity - The external Trigger Polarity. + * TIM_ExtTRGPolarity_Inverted - active low or falling edge active. + * TIM_ExtTRGPolarity_NonInverted - active high or rising edge active. + * ExtTRGFilter - External Trigger Filter. + * This parameter must be a value between 0x0 and 0xF. + * + * @return none + */ +void TIM_ETRClockMode1Config(TIM_TypeDef *TIMx, uint16_t TIM_ExtTRGPrescaler, uint16_t TIM_ExtTRGPolarity, + uint16_t ExtTRGFilter) +{ + uint16_t tmpsmcr = 0; + + TIM_ETRConfig(TIMx, TIM_ExtTRGPrescaler, TIM_ExtTRGPolarity, ExtTRGFilter); + tmpsmcr = TIMx->SMCFGR; + tmpsmcr &= (uint16_t)(~((uint16_t)TIM_SMS)); + tmpsmcr |= TIM_SlaveMode_External1; + tmpsmcr &= (uint16_t)(~((uint16_t)TIM_TS)); + tmpsmcr |= TIM_TS_ETRF; + TIMx->SMCFGR = tmpsmcr; +} + +/********************************************************************* + * @fn TIM_ETRClockMode2Config + * + * @brief Configures the External clock Mode2. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * TIM_ExtTRGPrescaler - The external Trigger Prescaler. + * TIM_ExtTRGPSC_OFF - ETRP Prescaler OFF. + * TIM_ExtTRGPSC_DIV2 - ETRP frequency divided by 2. + * TIM_ExtTRGPSC_DIV4 - ETRP frequency divided by 4. + * TIM_ExtTRGPSC_DIV8 - ETRP frequency divided by 8. + * TIM_ExtTRGPolarity - The external Trigger Polarity. + * TIM_ExtTRGPolarity_Inverted - active low or falling edge active. + * TIM_ExtTRGPolarity_NonInverted - active high or rising edge active. + * ExtTRGFilter - External Trigger Filter. + * This parameter must be a value between 0x0 and 0xF. + * + * @return none + */ +void TIM_ETRClockMode2Config(TIM_TypeDef *TIMx, uint16_t TIM_ExtTRGPrescaler, + uint16_t TIM_ExtTRGPolarity, uint16_t ExtTRGFilter) +{ + TIM_ETRConfig(TIMx, TIM_ExtTRGPrescaler, TIM_ExtTRGPolarity, ExtTRGFilter); + TIMx->SMCFGR |= TIM_ECE; +} + +/********************************************************************* + * @fn TIM_ETRConfig + * + * @brief Configures the TIMx External Trigger (ETR). + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * TIM_ExtTRGPrescaler - The external Trigger Prescaler. + * TIM_ExtTRGPSC_OFF - ETRP Prescaler OFF. + * TIM_ExtTRGPSC_DIV2 - ETRP frequency divided by 2. + * TIM_ExtTRGPSC_DIV4 - ETRP frequency divided by 4. + * TIM_ExtTRGPSC_DIV8 - ETRP frequency divided by 8. + * TIM_ExtTRGPolarity - The external Trigger Polarity. + * TIM_ExtTRGPolarity_Inverted - active low or falling edge active. + * TIM_ExtTRGPolarity_NonInverted - active high or rising edge active. + * ExtTRGFilter - External Trigger Filter. + * This parameter must be a value between 0x0 and 0xF. + * + * @return none + */ +void TIM_ETRConfig(TIM_TypeDef *TIMx, uint16_t TIM_ExtTRGPrescaler, uint16_t TIM_ExtTRGPolarity, + uint16_t ExtTRGFilter) +{ + uint16_t tmpsmcr = 0; + + tmpsmcr = TIMx->SMCFGR; + tmpsmcr &= SMCFGR_ETR_Mask; + tmpsmcr |= (uint16_t)(TIM_ExtTRGPrescaler | (uint16_t)(TIM_ExtTRGPolarity | (uint16_t)(ExtTRGFilter << (uint16_t)8))); + TIMx->SMCFGR = tmpsmcr; +} + +/********************************************************************* + * @fn TIM_PrescalerConfig + * + * @brief Configures the TIMx Prescaler. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * Prescaler - specifies the Prescaler Register value. + * TIM_PSCReloadMode - specifies the TIM Prescaler Reload mode. + * TIM_PSCReloadMode - specifies the TIM Prescaler Reload mode. + * TIM_PSCReloadMode_Update - The Prescaler is loaded at the update event. + * TIM_PSCReloadMode_Immediate - The Prescaler is loaded immediately. + * + * @return none + */ +void TIM_PrescalerConfig(TIM_TypeDef *TIMx, uint16_t Prescaler, uint16_t TIM_PSCReloadMode) +{ + TIMx->PSC = Prescaler; + TIMx->SWEVGR = TIM_PSCReloadMode; +} + +/********************************************************************* + * @fn TIM_CounterModeConfig + * + * @brief Specifies the TIMx Counter Mode to be used. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * TIM_CounterMode - specifies the Counter Mode to be used. + * TIM_CounterMode_Up - TIM Up Counting Mode. + * TIM_CounterMode_Down - TIM Down Counting Mode. + * TIM_CounterMode_CenterAligned1 - TIM Center Aligned Mode1. + * TIM_CounterMode_CenterAligned2 - TIM Center Aligned Mode2. + * TIM_CounterMode_CenterAligned3 - TIM Center Aligned Mode3. + * + * @return none + */ +void TIM_CounterModeConfig(TIM_TypeDef *TIMx, uint16_t TIM_CounterMode) +{ + uint16_t tmpcr1 = 0; + + tmpcr1 = TIMx->CTLR1; + tmpcr1 &= (uint16_t)(~((uint16_t)(TIM_DIR | TIM_CMS))); + tmpcr1 |= TIM_CounterMode; + TIMx->CTLR1 = tmpcr1; +} + +/********************************************************************* + * @fn TIM_SelectInputTrigger + * + * @brief Selects the Input Trigger source. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * TIM_InputTriggerSource - The Input Trigger source. + * TIM_TS_ITR0 - Internal Trigger 0. + * TIM_TS_ITR1 - Internal Trigger 1. + * TIM_TS_ITR2 - Internal Trigger 2. + * TIM_TS_ITR3 - Internal Trigger 3. + * TIM_TS_TI1F_ED - TI1 Edge Detector. + * TIM_TS_TI1FP1 - Filtered Timer Input 1. + * TIM_TS_TI2FP2 - Filtered Timer Input 2. + * TIM_TS_ETRF - External Trigger input. + * + * @return none + */ +void TIM_SelectInputTrigger(TIM_TypeDef *TIMx, uint16_t TIM_InputTriggerSource) +{ + uint16_t tmpsmcr = 0; + + tmpsmcr = TIMx->SMCFGR; + tmpsmcr &= (uint16_t)(~((uint16_t)TIM_TS)); + tmpsmcr |= TIM_InputTriggerSource; + TIMx->SMCFGR = tmpsmcr; +} + +/********************************************************************* + * @fn TIM_EncoderInterfaceConfig + * + * @brief Configures the TIMx Encoder Interface. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * TIM_EncoderMode - specifies the TIMx Encoder Mode. + * TIM_EncoderMode_TI1 - Counter counts on TI1FP1 edge depending + * on TI2FP2 level. + * TIM_EncoderMode_TI2 - Counter counts on TI2FP2 edge depending + * on TI1FP1 level. + * TIM_EncoderMode_TI12 - Counter counts on both TI1FP1 and + * TI2FP2 edges depending. + * TIM_IC1Polarity - specifies the IC1 Polarity. + * TIM_ICPolarity_Falling - IC Falling edge. + * TTIM_ICPolarity_Rising - IC Rising edge. + * TIM_IC2Polarity - specifies the IC2 Polarity. + * TIM_ICPolarity_Falling - IC Falling edge. + * TIM_ICPolarity_Rising - IC Rising edge. + * + * @return none + */ +void TIM_EncoderInterfaceConfig(TIM_TypeDef *TIMx, uint16_t TIM_EncoderMode, + uint16_t TIM_IC1Polarity, uint16_t TIM_IC2Polarity) +{ + uint16_t tmpsmcr = 0; + uint16_t tmpccmr1 = 0; + uint16_t tmpccer = 0; + + tmpsmcr = TIMx->SMCFGR; + tmpccmr1 = TIMx->CHCTLR1; + tmpccer = TIMx->CCER; + tmpsmcr &= (uint16_t)(~((uint16_t)TIM_SMS)); + tmpsmcr |= TIM_EncoderMode; + tmpccmr1 &= (uint16_t)(((uint16_t) ~((uint16_t)TIM_CC1S)) & (uint16_t)(~((uint16_t)TIM_CC2S))); + tmpccmr1 |= TIM_CC1S_0 | TIM_CC2S_0; + tmpccer &= (uint16_t)(((uint16_t) ~((uint16_t)TIM_CC1P)) & ((uint16_t) ~((uint16_t)TIM_CC2P))); + tmpccer |= (uint16_t)(TIM_IC1Polarity | (uint16_t)(TIM_IC2Polarity << (uint16_t)4)); + TIMx->SMCFGR = tmpsmcr; + TIMx->CHCTLR1 = tmpccmr1; + TIMx->CCER = tmpccer; +} + +/********************************************************************* + * @fn TIM_ForcedOC1Config + * + * @brief Forces the TIMx output 1 waveform to active or inactive level. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * TIM_ForcedAction - specifies the forced Action to be set to the + * output waveform. + * TIM_ForcedAction_Active - Force active level on OC1REF. + * TIM_ForcedAction_InActive - Force inactive level on OC1REF. + * + * @return none + */ +void TIM_ForcedOC1Config(TIM_TypeDef *TIMx, uint16_t TIM_ForcedAction) +{ + uint16_t tmpccmr1 = 0; + + tmpccmr1 = TIMx->CHCTLR1; + tmpccmr1 &= (uint16_t) ~((uint16_t)TIM_OC1M); + tmpccmr1 |= TIM_ForcedAction; + TIMx->CHCTLR1 = tmpccmr1; +} + +/********************************************************************* + * @fn TIM_ForcedOC2Config + * + * @brief Forces the TIMx output 2 waveform to active or inactive level. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * TIM_ForcedAction - specifies the forced Action to be set to the + * output waveform. + * TIM_ForcedAction_Active - Force active level on OC2REF. + * TIM_ForcedAction_InActive - Force inactive level on OC2REF. + * + * @return none + */ +void TIM_ForcedOC2Config(TIM_TypeDef *TIMx, uint16_t TIM_ForcedAction) +{ + uint16_t tmpccmr1 = 0; + + tmpccmr1 = TIMx->CHCTLR1; + tmpccmr1 &= (uint16_t) ~((uint16_t)TIM_OC2M); + tmpccmr1 |= (uint16_t)(TIM_ForcedAction << 8); + TIMx->CHCTLR1 = tmpccmr1; +} + +/********************************************************************* + * @fn TIM_ForcedOC3Config + * + * @brief Forces the TIMx output 3 waveform to active or inactive level. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * TIM_ForcedAction - specifies the forced Action to be set to the + * output waveform. + * TIM_ForcedAction_Active - Force active level on OC3REF. + * TIM_ForcedAction_InActive - Force inactive level on OC3REF. + * + * @return none + */ +void TIM_ForcedOC3Config(TIM_TypeDef *TIMx, uint16_t TIM_ForcedAction) +{ + uint16_t tmpccmr2 = 0; + + tmpccmr2 = TIMx->CHCTLR2; + tmpccmr2 &= (uint16_t) ~((uint16_t)TIM_OC3M); + tmpccmr2 |= TIM_ForcedAction; + TIMx->CHCTLR2 = tmpccmr2; +} + +/********************************************************************* + * @fn TIM_ForcedOC4Config + * + * @brief Forces the TIMx output 4 waveform to active or inactive level. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * TIM_ForcedAction - specifies the forced Action to be set to the + * output waveform. + * TIM_ForcedAction_Active - Force active level on OC4REF. + * TIM_ForcedAction_InActive - Force inactive level on OC4REF. + * + * @return none + */ +void TIM_ForcedOC4Config(TIM_TypeDef *TIMx, uint16_t TIM_ForcedAction) +{ + uint16_t tmpccmr2 = 0; + + tmpccmr2 = TIMx->CHCTLR2; + tmpccmr2 &= (uint16_t) ~((uint16_t)TIM_OC4M); + tmpccmr2 |= (uint16_t)(TIM_ForcedAction << 8); + TIMx->CHCTLR2 = tmpccmr2; +} + +/********************************************************************* + * @fn TIM_ARRPreloadConfig + * + * @brief Enables or disables TIMx peripheral Preload register on ARR. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void TIM_ARRPreloadConfig(TIM_TypeDef *TIMx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + TIMx->CTLR1 |= TIM_ARPE; + } + else + { + TIMx->CTLR1 &= (uint16_t) ~((uint16_t)TIM_ARPE); + } +} + +/********************************************************************* + * @fn TIM_SelectCOM + * + * @brief Selects the TIM peripheral Commutation event. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void TIM_SelectCOM(TIM_TypeDef *TIMx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + TIMx->CTLR2 |= TIM_CCUS; + } + else + { + TIMx->CTLR2 &= (uint16_t) ~((uint16_t)TIM_CCUS); + } +} + +/********************************************************************* + * @fn TIM_SelectCCDMA + * + * @brief Selects the TIMx peripheral Capture Compare DMA source. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void TIM_SelectCCDMA(TIM_TypeDef *TIMx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + TIMx->CTLR2 |= TIM_CCDS; + } + else + { + TIMx->CTLR2 &= (uint16_t) ~((uint16_t)TIM_CCDS); + } +} + +/********************************************************************* + * @fn TIM_CCPreloadControl + * + * @brief DSets or Resets the TIM peripheral Capture Compare Preload Control bit. + * reset values (Affects also the I2Ss). + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void TIM_CCPreloadControl(TIM_TypeDef *TIMx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + TIMx->CTLR2 |= TIM_CCPC; + } + else + { + TIMx->CTLR2 &= (uint16_t) ~((uint16_t)TIM_CCPC); + } +} + +/********************************************************************* + * @fn TIM_OC1PreloadConfig + * + * @brief Enables or disables the TIMx peripheral Preload register on CCR1. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * TIM_OCPreload - new state of the TIMx peripheral Preload register. + * TIM_OCPreload_Enable. + * TIM_OCPreload_Disable. + * + * @return none + */ +void TIM_OC1PreloadConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCPreload) +{ + uint16_t tmpccmr1 = 0; + + tmpccmr1 = TIMx->CHCTLR1; + tmpccmr1 &= (uint16_t) ~((uint16_t)TIM_OC1PE); + tmpccmr1 |= TIM_OCPreload; + TIMx->CHCTLR1 = tmpccmr1; +} + +/********************************************************************* + * @fn TIM_OC2PreloadConfig + * + * @brief Enables or disables the TIMx peripheral Preload register on CCR2. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * TIM_OCPreload - new state of the TIMx peripheral Preload register. + * TIM_OCPreload_Enable. + * TIM_OCPreload_Disable. + * + * @return none + */ +void TIM_OC2PreloadConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCPreload) +{ + uint16_t tmpccmr1 = 0; + + tmpccmr1 = TIMx->CHCTLR1; + tmpccmr1 &= (uint16_t) ~((uint16_t)TIM_OC2PE); + tmpccmr1 |= (uint16_t)(TIM_OCPreload << 8); + TIMx->CHCTLR1 = tmpccmr1; +} + +/********************************************************************* + * @fn TIM_OC3PreloadConfig + * + * @brief Enables or disables the TIMx peripheral Preload register on CCR3. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * TIM_OCPreload - new state of the TIMx peripheral Preload register. + * TIM_OCPreload_Enable. + * TIM_OCPreload_Disable. + * + * @return none + */ +void TIM_OC3PreloadConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCPreload) +{ + uint16_t tmpccmr2 = 0; + + tmpccmr2 = TIMx->CHCTLR2; + tmpccmr2 &= (uint16_t) ~((uint16_t)TIM_OC3PE); + tmpccmr2 |= TIM_OCPreload; + TIMx->CHCTLR2 = tmpccmr2; +} + +/********************************************************************* + * @fn TIM_OC4PreloadConfig + * + * @brief Enables or disables the TIMx peripheral Preload register on CCR4. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * TIM_OCPreload - new state of the TIMx peripheral Preload register. + * TIM_OCPreload_Enable. + * TIM_OCPreload_Disable. + * + * @return none + */ +void TIM_OC4PreloadConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCPreload) +{ + uint16_t tmpccmr2 = 0; + + tmpccmr2 = TIMx->CHCTLR2; + tmpccmr2 &= (uint16_t) ~((uint16_t)TIM_OC4PE); + tmpccmr2 |= (uint16_t)(TIM_OCPreload << 8); + TIMx->CHCTLR2 = tmpccmr2; +} + +/********************************************************************* + * @fn TIM_OC1FastConfig + * + * @brief Configures the TIMx Output Compare 1 Fast feature. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * TIM_OCFast - new state of the Output Compare Fast Enable Bit. + * TIM_OCFast_Enable - TIM output compare fast enable. + * TIM_OCFast_Disable - TIM output compare fast disable. + * + * @return none + */ +void TIM_OC1FastConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCFast) +{ + uint16_t tmpccmr1 = 0; + + tmpccmr1 = TIMx->CHCTLR1; + tmpccmr1 &= (uint16_t) ~((uint16_t)TIM_OC1FE); + tmpccmr1 |= TIM_OCFast; + TIMx->CHCTLR1 = tmpccmr1; +} + +/********************************************************************* + * @fn TIM_OC2FastConfig + * + * @brief Configures the TIMx Output Compare 2 Fast feature. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * TIM_OCFast - new state of the Output Compare Fast Enable Bit. + * TIM_OCFast_Enable - TIM output compare fast enable. + * TIM_OCFast_Disable - TIM output compare fast disable. + * + * @return none + */ +void TIM_OC2FastConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCFast) +{ + uint16_t tmpccmr1 = 0; + + tmpccmr1 = TIMx->CHCTLR1; + tmpccmr1 &= (uint16_t) ~((uint16_t)TIM_OC2FE); + tmpccmr1 |= (uint16_t)(TIM_OCFast << 8); + TIMx->CHCTLR1 = tmpccmr1; +} + +/********************************************************************* + * @fn TIM_OC3FastConfig + * + * @brief Configures the TIMx Output Compare 3 Fast feature. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * TIM_OCFast - new state of the Output Compare Fast Enable Bit. + * TIM_OCFast_Enable - TIM output compare fast enable. + * TIM_OCFast_Disable - TIM output compare fast disable. + * + * @return none + */ +void TIM_OC3FastConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCFast) +{ + uint16_t tmpccmr2 = 0; + + tmpccmr2 = TIMx->CHCTLR2; + tmpccmr2 &= (uint16_t) ~((uint16_t)TIM_OC3FE); + tmpccmr2 |= TIM_OCFast; + TIMx->CHCTLR2 = tmpccmr2; +} + +/********************************************************************* + * @fn TIM_OC4FastConfig + * + * @brief Configures the TIMx Output Compare 4 Fast feature. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * TIM_OCFast - new state of the Output Compare Fast Enable Bit. + * TIM_OCFast_Enable - TIM output compare fast enable. + * TIM_OCFast_Disable - TIM output compare fast disable. + * + * @return none + */ +void TIM_OC4FastConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCFast) +{ + uint16_t tmpccmr2 = 0; + + tmpccmr2 = TIMx->CHCTLR2; + tmpccmr2 &= (uint16_t) ~((uint16_t)TIM_OC4FE); + tmpccmr2 |= (uint16_t)(TIM_OCFast << 8); + TIMx->CHCTLR2 = tmpccmr2; +} + +/********************************************************************* + * @fn TIM_ClearOC1Ref + * + * @brief Clears or safeguards the OCREF1 signal on an external event. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * TIM_OCClear - new state of the Output Compare Clear Enable Bit. + * TIM_OCClear_Enable - TIM Output clear enable. + * TIM_OCClear_Disable - TIM Output clear disable. + * + * @return none + */ +void TIM_ClearOC1Ref(TIM_TypeDef *TIMx, uint16_t TIM_OCClear) +{ + uint16_t tmpccmr1 = 0; + + tmpccmr1 = TIMx->CHCTLR1; + tmpccmr1 &= (uint16_t) ~((uint16_t)TIM_OC1CE); + tmpccmr1 |= TIM_OCClear; + TIMx->CHCTLR1 = tmpccmr1; +} + +/********************************************************************* + * @fn TIM_ClearOC2Ref + * + * @brief Clears or safeguards the OCREF2 signal on an external event. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * TIM_OCClear - new state of the Output Compare Clear Enable Bit. + * TIM_OCClear_Enable - TIM Output clear enable. + * TIM_OCClear_Disable - TIM Output clear disable. + * + * @return none + */ +void TIM_ClearOC2Ref(TIM_TypeDef *TIMx, uint16_t TIM_OCClear) +{ + uint16_t tmpccmr1 = 0; + + tmpccmr1 = TIMx->CHCTLR1; + tmpccmr1 &= (uint16_t) ~((uint16_t)TIM_OC2CE); + tmpccmr1 |= (uint16_t)(TIM_OCClear << 8); + TIMx->CHCTLR1 = tmpccmr1; +} + +/********************************************************************* + * @fn TIM_ClearOC3Ref + * + * @brief Clears or safeguards the OCREF3 signal on an external event. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * TIM_OCClear - new state of the Output Compare Clear Enable Bit. + * TIM_OCClear_Enable - TIM Output clear enable. + * TIM_OCClear_Disable - TIM Output clear disable. + * + * @return none + */ +void TIM_ClearOC3Ref(TIM_TypeDef *TIMx, uint16_t TIM_OCClear) +{ + uint16_t tmpccmr2 = 0; + + tmpccmr2 = TIMx->CHCTLR2; + tmpccmr2 &= (uint16_t) ~((uint16_t)TIM_OC3CE); + tmpccmr2 |= TIM_OCClear; + TIMx->CHCTLR2 = tmpccmr2; +} + +/********************************************************************* + * @fn TIM_ClearOC4Ref + * + * @brief Clears or safeguards the OCREF4 signal on an external event. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * TIM_OCClear - new state of the Output Compare Clear Enable Bit. + * TIM_OCClear_Enable - TIM Output clear enable. + * TIM_OCClear_Disable - TIM Output clear disable. + * + * @return none + */ +void TIM_ClearOC4Ref(TIM_TypeDef *TIMx, uint16_t TIM_OCClear) +{ + uint16_t tmpccmr2 = 0; + + tmpccmr2 = TIMx->CHCTLR2; + tmpccmr2 &= (uint16_t) ~((uint16_t)TIM_OC4CE); + tmpccmr2 |= (uint16_t)(TIM_OCClear << 8); + TIMx->CHCTLR2 = tmpccmr2; +} + +/********************************************************************* + * @fn TIM_OC1PolarityConfig + * + * @brief Configures the TIMx channel 1 polarity. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * TIM_OCPolarity - specifies the OC1 Polarity. + * TIM_OCPolarity_High - Output Compare active high. + * TIM_OCPolarity_Low - Output Compare active low. + * + * @return none + */ +void TIM_OC1PolarityConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCPolarity) +{ + uint16_t tmpccer = 0; + + tmpccer = TIMx->CCER; + tmpccer &= (uint16_t) ~((uint16_t)TIM_CC1P); + tmpccer |= TIM_OCPolarity; + TIMx->CCER = tmpccer; +} + +/********************************************************************* + * @fn TIM_OC1NPolarityConfig + * + * @brief Configures the TIMx channel 1 polarity. + * + * @param TIMx - where x can be 1 to select the TIM peripheral. + * TIM_OCNPolarity - specifies the OC1N Polarity. + * TIM_OCNPolarity_High - Output Compare active high. + * TIM_OCNPolarity_Low - Output Compare active low. + * + * @return none + */ +void TIM_OC1NPolarityConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCNPolarity) +{ + uint16_t tmpccer = 0; + + tmpccer = TIMx->CCER; + tmpccer &= (uint16_t) ~((uint16_t)TIM_CC1NP); + tmpccer |= TIM_OCNPolarity; + TIMx->CCER = tmpccer; +} + +/********************************************************************* + * @fn TIM_OC2PolarityConfig + * + * @brief Configures the TIMx channel 2 polarity. + * + * @param TIMx - where x can be 1 to 4 to select the TIM peripheral. + * TIM_OCPolarity - specifies the OC2 Polarity. + * TIM_OCPolarity_High - Output Compare active high. + * TIM_OCPolarity_Low - Output Compare active low. + * + * @return none + */ +void TIM_OC2PolarityConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCPolarity) +{ + uint16_t tmpccer = 0; + + tmpccer = TIMx->CCER; + tmpccer &= (uint16_t) ~((uint16_t)TIM_CC2P); + tmpccer |= (uint16_t)(TIM_OCPolarity << 4); + TIMx->CCER = tmpccer; +} + +/********************************************************************* + * @fn TIM_OC2NPolarityConfig + * + * @brief Configures the TIMx channel 2 polarity. + * + * @param TIMx - where x can be 1 to select the TIM peripheral. + * TIM_OCNPolarity - specifies the OC1N Polarity. + * TIM_OCNPolarity_High - Output Compare active high. + * TIM_OCNPolarity_Low - Output Compare active low. + * + * @return none + */ +void TIM_OC2NPolarityConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCNPolarity) +{ + uint16_t tmpccer = 0; + + tmpccer = TIMx->CCER; + tmpccer &= (uint16_t) ~((uint16_t)TIM_CC2NP); + tmpccer |= (uint16_t)(TIM_OCNPolarity << 4); + TIMx->CCER = tmpccer; +} + +/********************************************************************* + * @fn TIM_OC3PolarityConfig + * + * @brief Configures the TIMx Channel 3 polarity. + * + * @param TIMx - where x can be 1 to 4 select the TIM peripheral. + * TIM_OCPolarit - specifies the OC3 Polarity. + * TIM_OCPolarity_High - Output Compare active high. + * TIM_OCPolarity_Low - Output Compare active low. + * + * @return none + */ +void TIM_OC3PolarityConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCPolarity) +{ + uint16_t tmpccer = 0; + + tmpccer = TIMx->CCER; + tmpccer &= (uint16_t) ~((uint16_t)TIM_CC3P); + tmpccer |= (uint16_t)(TIM_OCPolarity << 8); + TIMx->CCER = tmpccer; +} + +/********************************************************************* + * @fn TIM_OC3NPolarityConfig + * + * @brief Configures the TIMx Channel 3N polarity. + * + * @param TIMx - where x can be 1 to select the TIM peripheral. + * TIM_OCNPolarity - specifies the OC2N Polarity. + * TIM_OCNPolarity_High - Output Compare active high. + * TIM_OCNPolarity_Low - Output Compare active low. + * + * @return none + */ +void TIM_OC3NPolarityConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCNPolarity) +{ + uint16_t tmpccer = 0; + + tmpccer = TIMx->CCER; + tmpccer &= (uint16_t) ~((uint16_t)TIM_CC3NP); + tmpccer |= (uint16_t)(TIM_OCNPolarity << 8); + TIMx->CCER = tmpccer; +} + +/********************************************************************* + * @fn TIM_OC4PolarityConfig + * + * @brief Configures the TIMx Channel 4 polarity. + * + * @param TIMx - where x can be 1 to 4 select the TIM peripheral. + * TIM_OCPolarit - specifies the OC3 Polarity. + * TIM_OCPolarity_High - Output Compare active high. + * TIM_OCPolarity_Low - Output Compare active low. + * + * @return none + */ +void TIM_OC4PolarityConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCPolarity) +{ + uint16_t tmpccer = 0; + + tmpccer = TIMx->CCER; + tmpccer &= (uint16_t) ~((uint16_t)TIM_CC4P); + tmpccer |= (uint16_t)(TIM_OCPolarity << 12); + TIMx->CCER = tmpccer; +} + +/********************************************************************* + * @fn TIM_CCxCmd + * + * @brief Enables or disables the TIM Capture Compare Channel x. + * + * @param TIMx - where x can be 1 to 4 select the TIM peripheral. + * TIM_Channel - specifies the TIM Channel. + * TIM_Channel_1 - TIM Channel 1. + * TIM_Channel_2 - TIM Channel 2. + * TIM_Channel_3 - TIM Channel 3. + * TIM_Channel_4 - TIM Channel 4. + * TIM_CCx - specifies the TIM Channel CCxE bit new state. + * TIM_CCx_Enable. + * TIM_CCx_Disable. + * + * @return none + */ +void TIM_CCxCmd(TIM_TypeDef *TIMx, uint16_t TIM_Channel, uint16_t TIM_CCx) +{ + uint16_t tmp = 0; + + tmp = CCER_CCE_Set << TIM_Channel; + TIMx->CCER &= (uint16_t)~tmp; + TIMx->CCER |= (uint16_t)(TIM_CCx << TIM_Channel); +} + +/********************************************************************* + * @fn TIM_CCxNCmd + * + * @brief Enables or disables the TIM Capture Compare Channel xN. + * + * @param TIMx - where x can be 1 select the TIM peripheral. + * TIM_Channel - specifies the TIM Channel. + * TIM_Channel_1 - TIM Channel 1. + * TIM_Channel_2 - TIM Channel 2. + * TIM_Channel_3 - TIM Channel 3. + * TIM_CCxN - specifies the TIM Channel CCxNE bit new state. + * TIM_CCxN_Enable. + * TIM_CCxN_Disable. + * + * @return none + */ +void TIM_CCxNCmd(TIM_TypeDef *TIMx, uint16_t TIM_Channel, uint16_t TIM_CCxN) +{ + uint16_t tmp = 0; + + tmp = CCER_CCNE_Set << TIM_Channel; + TIMx->CCER &= (uint16_t)~tmp; + TIMx->CCER |= (uint16_t)(TIM_CCxN << TIM_Channel); +} + +/********************************************************************* + * @fn TIM_SelectOCxM + * + * @brief Selects the TIM Output Compare Mode. + * + * @param TIMx - where x can be 1 to 4 select the TIM peripheral. + * TIM_Channel - specifies the TIM Channel. + * TIM_Channel_1 - TIM Channel 1. + * TIM_Channel_2 - TIM Channel 2. + * TIM_Channel_3 - TIM Channel 3. + * TIM_Channel_4 - TIM Channel 4. + * TIM_OCMode - specifies the TIM Output Compare Mode. + * TIM_OCMode_Timing. + * TIM_OCMode_Active. + * TIM_OCMode_Toggle. + * TIM_OCMode_PWM1. + * TIM_OCMode_PWM2. + * TIM_ForcedAction_Active. + * TIM_ForcedAction_InActive. + * + * @return none + */ +void TIM_SelectOCxM(TIM_TypeDef *TIMx, uint16_t TIM_Channel, uint16_t TIM_OCMode) +{ + uint32_t tmp = 0; + uint16_t tmp1 = 0; + + tmp = (uint32_t)TIMx; + tmp += CHCTLR_Offset; + tmp1 = CCER_CCE_Set << (uint16_t)TIM_Channel; + TIMx->CCER &= (uint16_t)~tmp1; + + if((TIM_Channel == TIM_Channel_1) || (TIM_Channel == TIM_Channel_3)) + { + tmp += (TIM_Channel >> 1); + *(__IO uint32_t *)tmp &= (uint32_t) ~((uint32_t)TIM_OC1M); + *(__IO uint32_t *)tmp |= TIM_OCMode; + } + else + { + tmp += (uint16_t)(TIM_Channel - (uint16_t)4) >> (uint16_t)1; + *(__IO uint32_t *)tmp &= (uint32_t) ~((uint32_t)TIM_OC2M); + *(__IO uint32_t *)tmp |= (uint16_t)(TIM_OCMode << 8); + } +} + +/********************************************************************* + * @fn TIM_UpdateDisableConfig + * + * @brief Enables or Disables the TIMx Update event. + * + * @param TIMx - where x can be 1 to 4 select the TIM peripheral. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void TIM_UpdateDisableConfig(TIM_TypeDef *TIMx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + TIMx->CTLR1 |= TIM_UDIS; + } + else + { + TIMx->CTLR1 &= (uint16_t) ~((uint16_t)TIM_UDIS); + } +} + +/********************************************************************* + * @fn TIM_UpdateRequestConfig + * + * @brief Configures the TIMx Update Request Interrupt source. + * + * @param TIMx - where x can be 1 to 4 select the TIM peripheral. + * TIM_UpdateSource - specifies the Update source. + * TIM_UpdateSource_Regular. + * TIM_UpdateSource_Global. + * + * @return none + */ +void TIM_UpdateRequestConfig(TIM_TypeDef *TIMx, uint16_t TIM_UpdateSource) +{ + if(TIM_UpdateSource != TIM_UpdateSource_Global) + { + TIMx->CTLR1 |= TIM_URS; + } + else + { + TIMx->CTLR1 &= (uint16_t) ~((uint16_t)TIM_URS); + } +} + +/********************************************************************* + * @fn TIM_SelectHallSensor + * + * @brief Enables or disables the TIMx's Hall sensor interface. + * + * @param TIMx - where x can be 1 to 4 select the TIM peripheral. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void TIM_SelectHallSensor(TIM_TypeDef *TIMx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + TIMx->CTLR2 |= TIM_TI1S; + } + else + { + TIMx->CTLR2 &= (uint16_t) ~((uint16_t)TIM_TI1S); + } +} + +/********************************************************************* + * @fn TIM_SelectOnePulseMode + * + * @brief Selects the TIMx's One Pulse Mode. + * + * @param TIMx - where x can be 1 to 4 select the TIM peripheral. + * TIM_OPMode - specifies the OPM Mode to be used. + * TIM_OPMode_Single. + * TIM_OPMode_Repetitive. + * + * @return none + */ +void TIM_SelectOnePulseMode(TIM_TypeDef *TIMx, uint16_t TIM_OPMode) +{ + TIMx->CTLR1 &= (uint16_t) ~((uint16_t)TIM_OPM); + TIMx->CTLR1 |= TIM_OPMode; +} + +/********************************************************************* + * @fn TIM_SelectOutputTrigger + * + * @brief Selects the TIMx Trigger Output Mode. + * + * @param TIMx - where x can be 1 to 4 select the TIM peripheral. + * TIM_TRGOSource - specifies the Trigger Output source. + * TIM_TRGOSource_Reset - The UG bit in the TIM_EGR register is + * used as the trigger output (TRGO). + * TIM_TRGOSource_Enable - The Counter Enable CEN is used as the + * trigger output (TRGO). + * TIM_TRGOSource_Update - The update event is selected as the + * trigger output (TRGO). + * TIM_TRGOSource_OC1 - The trigger output sends a positive pulse + * when the CC1IF flag is to be set, as soon as a capture or compare match occurs (TRGO). + * TIM_TRGOSource_OC1Ref - OC1REF signal is used as the trigger output (TRGO). + * TIM_TRGOSource_OC2Ref - OC2REF signal is used as the trigger output (TRGO). + * TIM_TRGOSource_OC3Ref - OC3REF signal is used as the trigger output (TRGO). + * TIM_TRGOSource_OC4Ref - OC4REF signal is used as the trigger output (TRGO). + * + * @return none + */ +void TIM_SelectOutputTrigger(TIM_TypeDef *TIMx, uint16_t TIM_TRGOSource) +{ + TIMx->CTLR2 &= (uint16_t) ~((uint16_t)TIM_MMS); + TIMx->CTLR2 |= TIM_TRGOSource; +} + +/********************************************************************* + * @fn TIM_SelectSlaveMode + * + * @brief Selects the TIMx Slave Mode. + * + * @param TIMx - where x can be 1 to 4 select the TIM peripheral. + * TIM_SlaveMode - specifies the Timer Slave Mode. + * TIM_SlaveMode_Reset - Rising edge of the selected trigger + * signal (TRGI) re-initializes. + * TIM_SlaveMode_Gated - The counter clock is enabled when the + * trigger signal (TRGI) is high. + * TIM_SlaveMode_Trigger - The counter starts at a rising edge + * of the trigger TRGI. + * TIM_SlaveMode_External1 - Rising edges of the selected trigger + * (TRGI) clock the counter. + * + * @return none + */ +void TIM_SelectSlaveMode(TIM_TypeDef *TIMx, uint16_t TIM_SlaveMode) +{ + TIMx->SMCFGR &= (uint16_t) ~((uint16_t)TIM_SMS); + TIMx->SMCFGR |= TIM_SlaveMode; +} + +/********************************************************************* + * @fn TIM_SelectMasterSlaveMode + * + * @brief Sets or Resets the TIMx Master/Slave Mode. + * + * @param TIMx - where x can be 1 to 4 select the TIM peripheral. + * TIM_MasterSlaveMode - specifies the Timer Master Slave Mode. + * TIM_MasterSlaveMode_Enable - synchronization between the current + * timer and its slaves (through TRGO). + * TIM_MasterSlaveMode_Disable - No action. + * + * @return none + */ +void TIM_SelectMasterSlaveMode(TIM_TypeDef *TIMx, uint16_t TIM_MasterSlaveMode) +{ + TIMx->SMCFGR &= (uint16_t) ~((uint16_t)TIM_MSM); + TIMx->SMCFGR |= TIM_MasterSlaveMode; +} + +/********************************************************************* + * @fn TIM_SetCounter + * + * @brief Sets the TIMx Counter Register value. + * + * @param TIMx - where x can be 1 to 4 select the TIM peripheral. + * Counter - specifies the Counter register new value. + * + * @return none + */ +void TIM_SetCounter(TIM_TypeDef *TIMx, uint16_t Counter) +{ + TIMx->CNT = Counter; +} + +/********************************************************************* + * @fn TIM_SetAutoreload + * + * @brief Sets the TIMx Autoreload Register value. + * + * @param TIMx - where x can be 1 to 4 select the TIM peripheral. + * Autoreload - specifies the Autoreload register new value. + * + * @return none + */ +void TIM_SetAutoreload(TIM_TypeDef *TIMx, uint16_t Autoreload) +{ + TIMx->ATRLR = Autoreload; +} + +/********************************************************************* + * @fn TIM_SetCompare1 + * + * @brief Sets the TIMx Capture Compare1 Register value. + * + * @param TIMx - where x can be 1 to 4 select the TIM peripheral. + * Compare1 - specifies the Capture Compare1 register new value. + * + * @return none + */ +void TIM_SetCompare1(TIM_TypeDef *TIMx, uint16_t Compare1) +{ + TIMx->CH1CVR = Compare1; +} + +/********************************************************************* + * @fn TIM_SetCompare2 + * + * @brief Sets the TIMx Capture Compare2 Register value. + * + * @param TIMx - where x can be 1 to 4 select the TIM peripheral. + * Compare1 - specifies the Capture Compare1 register new value. + * + * @return none + */ +void TIM_SetCompare2(TIM_TypeDef *TIMx, uint16_t Compare2) +{ + TIMx->CH2CVR = Compare2; +} + +/********************************************************************* + * @fn TIM_SetCompare3 + * + * @brief Sets the TIMx Capture Compare3 Register value. + * + * @param TIMx - where x can be 1 to 4 select the TIM peripheral. + * Compare1 - specifies the Capture Compare1 register new value. + * + * @return none + */ +void TIM_SetCompare3(TIM_TypeDef *TIMx, uint16_t Compare3) +{ + TIMx->CH3CVR = Compare3; +} + +/********************************************************************* + * @fn TIM_SetCompare4 + * + * @brief Sets the TIMx Capture Compare4 Register value. + * + * @param TIMx - where x can be 1 to 4 select the TIM peripheral. + * Compare1 - specifies the Capture Compare1 register new value. + * + * @return none + */ +void TIM_SetCompare4(TIM_TypeDef *TIMx, uint16_t Compare4) +{ + TIMx->CH4CVR = Compare4; +} + +/********************************************************************* + * @fn TIM_SetIC1Prescaler + * + * @brief Sets the TIMx Input Capture 1 prescaler. + * + * @param TIMx - where x can be 1 to 4 select the TIM peripheral. + * TIM_ICPSC - specifies the Input Capture1 prescaler new value. + * TIM_ICPSC_DIV1 - no prescaler. + * TIM_ICPSC_DIV2 - capture is done once every 2 events. + * TIM_ICPSC_DIV4 - capture is done once every 4 events. + * TIM_ICPSC_DIV8 - capture is done once every 8 events. + * + * @return none + */ +void TIM_SetIC1Prescaler(TIM_TypeDef *TIMx, uint16_t TIM_ICPSC) +{ + TIMx->CHCTLR1 &= (uint16_t) ~((uint16_t)TIM_IC1PSC); + TIMx->CHCTLR1 |= TIM_ICPSC; +} + +/********************************************************************* + * @fn TIM_SetIC2Prescaler + * + * @brief Sets the TIMx Input Capture 2 prescaler. + * + * @param TIMx - where x can be 1 to 4 select the TIM peripheral. + * TIM_ICPSC - specifies the Input Capture1 prescaler new value. + * TIM_ICPSC_DIV1 - no prescaler. + * TIM_ICPSC_DIV2 - capture is done once every 2 events. + * TIM_ICPSC_DIV4 - capture is done once every 4 events. + * TIM_ICPSC_DIV8 - capture is done once every 8 events. + * + * @return none + */ +void TIM_SetIC2Prescaler(TIM_TypeDef *TIMx, uint16_t TIM_ICPSC) +{ + TIMx->CHCTLR1 &= (uint16_t) ~((uint16_t)TIM_IC2PSC); + TIMx->CHCTLR1 |= (uint16_t)(TIM_ICPSC << 8); +} + +/********************************************************************* + * @fn TIM_SetIC3Prescaler + * + * @brief Sets the TIMx Input Capture 3 prescaler. + * + * @param TIMx - where x can be 1 to 4 select the TIM peripheral. + * TIM_ICPSC - specifies the Input Capture1 prescaler new value. + * TIM_ICPSC_DIV1 - no prescaler. + * TIM_ICPSC_DIV2 - capture is done once every 2 events. + * TIM_ICPSC_DIV4 - capture is done once every 4 events. + * TIM_ICPSC_DIV8 - capture is done once every 8 events. + * + * @return none + */ +void TIM_SetIC3Prescaler(TIM_TypeDef *TIMx, uint16_t TIM_ICPSC) +{ + TIMx->CHCTLR2 &= (uint16_t) ~((uint16_t)TIM_IC3PSC); + TIMx->CHCTLR2 |= TIM_ICPSC; +} + +/********************************************************************* + * @fn TIM_SetIC4Prescaler + * + * @brief Sets the TIMx Input Capture 4 prescaler. + * + * @param TIMx - where x can be 1 to 4 select the TIM peripheral. + * TIM_ICPSC - specifies the Input Capture1 prescaler new value. + * TIM_ICPSC_DIV1 - no prescaler. + * TIM_ICPSC_DIV2 - capture is done once every 2 events. + * TIM_ICPSC_DIV4 - capture is done once every 4 events. + * TIM_ICPSC_DIV8 - capture is done once every 8 events. + * + * @return none + */ +void TIM_SetIC4Prescaler(TIM_TypeDef *TIMx, uint16_t TIM_ICPSC) +{ + TIMx->CHCTLR2 &= (uint16_t) ~((uint16_t)TIM_IC4PSC); + TIMx->CHCTLR2 |= (uint16_t)(TIM_ICPSC << 8); +} + +/********************************************************************* + * @fn TIM_SetClockDivision + * + * @brief Sets the TIMx Clock Division value. + * + * @param TIMx - where x can be 1 to 4 select the TIM peripheral. + * TIM_CKD - specifies the clock division value. + * TIM_CKD_DIV1 - TDTS = Tck_tim. + * TIM_CKD_DIV2 - TDTS = 2*Tck_tim. + * TIM_CKD_DIV4 - TDTS = 4*Tck_tim. + * + * @return none + */ +void TIM_SetClockDivision(TIM_TypeDef *TIMx, uint16_t TIM_CKD) +{ + TIMx->CTLR1 &= (uint16_t) ~((uint16_t)TIM_CTLR1_CKD); + TIMx->CTLR1 |= TIM_CKD; +} + +/********************************************************************* + * @fn TIM_GetCapture1 + * + * @brief Gets the TIMx Input Capture 1 value. + * + * @param TIMx - where x can be 1 to 4 select the TIM peripheral. + * + * @return TIMx->CH1CVR - Capture Compare 1 Register value. + */ +uint16_t TIM_GetCapture1(TIM_TypeDef *TIMx) +{ + return TIMx->CH1CVR; +} + +/********************************************************************* + * @fn TIM_GetCapture2 + * + * @brief Gets the TIMx Input Capture 2 value. + * + * @param TIMx - where x can be 1 to 4 select the TIM peripheral. + * + * @return TIMx->CH2CVR - Capture Compare 2 Register value. + */ +uint16_t TIM_GetCapture2(TIM_TypeDef *TIMx) +{ + return TIMx->CH2CVR; +} + +/********************************************************************* + * @fn TIM_GetCapture2 + * + * @brief Gets the TIMx Input Capture 2 value. + * + * @param TIMx - where x can be 1 to 4 select the TIM peripheral. + * + * @return TIMx->CH2CVR - Capture Compare 2 Register value. + */ +uint16_t TIM_GetCapture3(TIM_TypeDef *TIMx) +{ + return TIMx->CH3CVR; +} + +/********************************************************************* + * @fn TIM_GetCapture4 + * + * @brief Gets the TIMx Input Capture 4 value. + * + * @param TIMx - where x can be 1 to 4 select the TIM peripheral. + * + * @return TIMx->CH4CVR - Capture Compare 4 Register value. + */ +uint16_t TIM_GetCapture4(TIM_TypeDef *TIMx) +{ + return TIMx->CH4CVR; +} + +/********************************************************************* + * @fn TIM_GetCounter + * + * @brief Gets the TIMx Counter value. + * + * @param TIMx - where x can be 1 to 4 select the TIM peripheral. + * + * @return TIMx->CNT - Counter Register value. + */ +uint16_t TIM_GetCounter(TIM_TypeDef *TIMx) +{ + return TIMx->CNT; +} + +/********************************************************************* + * @fn TIM_GetPrescaler + * + * @brief Gets the TIMx Prescaler value. + * + * @param TIMx - where x can be 1 to 4 select the TIM peripheral. + * + * @return TIMx->PSC - Prescaler Register value. + */ +uint16_t TIM_GetPrescaler(TIM_TypeDef *TIMx) +{ + return TIMx->PSC; +} + +/********************************************************************* + * @fn TIM_GetFlagStatus + * + * @brief Checks whether the specified TIM flag is set or not. + * + * @param TIMx - where x can be 1 to 4 select the TIM peripheral. + * TIM_FLAG - specifies the flag to check. + * TIM_FLAG_Update - TIM update Flag. + * TIM_FLAG_CC1 - TIM Capture Compare 1 Flag. + * TIM_FLAG_CC2 - TIM Capture Compare 2 Flag. + * TIM_FLAG_CC3 - TIM Capture Compare 3 Flag. + * TIM_FLAG_CC4 - TIM Capture Compare 4 Flag. + * TIM_FLAG_COM - TIM Commutation Flag. + * TIM_FLAG_Trigger - TIM Trigger Flag. + * TIM_FLAG_Break - TIM Break Flag. + * TIM_FLAG_CC1OF - TIM Capture Compare 1 overcapture Flag. + * TIM_FLAG_CC2OF - TIM Capture Compare 2 overcapture Flag. + * TIM_FLAG_CC3OF - TIM Capture Compare 3 overcapture Flag. + * TIM_FLAG_CC4OF - TIM Capture Compare 4 overcapture Flag. + * + * @return SET or RESET. + */ +FlagStatus TIM_GetFlagStatus(TIM_TypeDef *TIMx, uint16_t TIM_FLAG) +{ + ITStatus bitstatus = RESET; + + if((TIMx->INTFR & TIM_FLAG) != (uint16_t)RESET) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + + return bitstatus; +} + +/********************************************************************* + * @fn TIM_ClearFlag + * + * @brief Clears the TIMx's pending flags. + * + * @param TIMx - where x can be 1 to 4 select the TIM peripheral. + * TIM_FLAG - specifies the flag to check. + * TIM_FLAG_Update - TIM update Flag. + * TIM_FLAG_CC1 - TIM Capture Compare 1 Flag. + * TIM_FLAG_CC2 - TIM Capture Compare 2 Flag. + * TIM_FLAG_CC3 - TIM Capture Compare 3 Flag. + * TIM_FLAG_CC4 - TIM Capture Compare 4 Flag. + * TIM_FLAG_COM - TIM Commutation Flag. + * TIM_FLAG_Trigger - TIM Trigger Flag. + * TIM_FLAG_Break - TIM Break Flag. + * TIM_FLAG_CC1OF - TIM Capture Compare 1 overcapture Flag. + * TIM_FLAG_CC2OF - TIM Capture Compare 2 overcapture Flag. + * TIM_FLAG_CC3OF - TIM Capture Compare 3 overcapture Flag. + * TIM_FLAG_CC4OF - TIM Capture Compare 4 overcapture Flag. + * + * @return none + */ +void TIM_ClearFlag(TIM_TypeDef *TIMx, uint16_t TIM_FLAG) +{ + TIMx->INTFR = (uint16_t)~TIM_FLAG; +} + +/********************************************************************* + * @fn TIM_GetITStatus + * + * @brief Checks whether the TIM interrupt has occurred or not. + * + * @param TIMx - where x can be 1 to 4 select the TIM peripheral. + * TIM_IT - specifies the TIM interrupt source to check. + * TIM_IT_Update - TIM update Interrupt source. + * TIM_IT_CC1 - TIM Capture Compare 1 Interrupt source. + * TIM_IT_CC2 - TIM Capture Compare 2 Interrupt source. + * TIM_IT_CC3 - TIM Capture Compare 3 Interrupt source. + * TIM_IT_CC4 - TIM Capture Compare 4 Interrupt source. + * TIM_IT_COM - TIM Commutation Interrupt source. + * TIM_IT_Trigger - TIM Trigger Interrupt source. + * TIM_IT_Break - TIM Break Interrupt source. + * + * @return none + */ +ITStatus TIM_GetITStatus(TIM_TypeDef *TIMx, uint16_t TIM_IT) +{ + ITStatus bitstatus = RESET; + uint16_t itstatus = 0x0, itenable = 0x0; + + itstatus = TIMx->INTFR & TIM_IT; + + itenable = TIMx->DMAINTENR & TIM_IT; + if((itstatus != (uint16_t)RESET) && (itenable != (uint16_t)RESET)) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + + return bitstatus; +} + +/********************************************************************* + * @fn TIM_ClearITPendingBit + * + * @brief Clears the TIMx's interrupt pending bits. + * + * @param TIMx - where x can be 1 to 4 select the TIM peripheral. + * TIM_IT - specifies the TIM interrupt source to check. + * TIM_IT_Update - TIM update Interrupt source. + * TIM_IT_CC1 - TIM Capture Compare 1 Interrupt source. + * TIM_IT_CC2 - TIM Capture Compare 2 Interrupt source. + * TIM_IT_CC3 - TIM Capture Compare 3 Interrupt source. + * TIM_IT_CC4 - TIM Capture Compare 4 Interrupt source. + * TIM_IT_COM - TIM Commutation Interrupt source. + * TIM_IT_Trigger - TIM Trigger Interrupt source. + * TIM_IT_Break - TIM Break Interrupt source. + * + * @return none + */ +void TIM_ClearITPendingBit(TIM_TypeDef *TIMx, uint16_t TIM_IT) +{ + TIMx->INTFR = (uint16_t)~TIM_IT; +} + +/********************************************************************* + * @fn TI1_Config + * + * @brief Configure the TI1 as Input. + * + * @param TIMx - where x can be 1 to 4 select the TIM peripheral. + * IM_ICPolarity - The Input Polarity. + * TIM_ICPolarity_Rising. + * TIM_ICPolarity_Falling. + * TIM_ICSelection - specifies the input to be used. + * TIM_ICSelection_DirectTI - TIM Input 1 is selected to be + * connected to IC1. + * TIM_ICSelection_IndirectTI - TIM Input 1 is selected to be + * connected to IC2. + * TIM_ICSelection_TRC - TIM Input 1 is selected to be connected + * to TRC. + * TIM_ICFilter - Specifies the Input Capture Filter. + * This parameter must be a value between 0x00 and 0x0F. + * + * @return none + */ +static void TI1_Config(TIM_TypeDef *TIMx, uint16_t TIM_ICPolarity, uint16_t TIM_ICSelection, + uint16_t TIM_ICFilter) +{ + uint16_t tmpccmr1 = 0, tmpccer = 0; + + TIMx->CCER &= (uint16_t) ~((uint16_t)TIM_CC1E); + tmpccmr1 = TIMx->CHCTLR1; + tmpccer = TIMx->CCER; + tmpccmr1 &= (uint16_t)(((uint16_t) ~((uint16_t)TIM_CC1S)) & ((uint16_t) ~((uint16_t)TIM_IC1F))); + + TIMx->CHCTLR1 |= (uint16_t)(TIM_ICSelection); + tmpccmr1 |= (uint16_t)(TIM_ICSelection | (uint16_t)(TIM_ICFilter << (uint16_t)4)); + + if((TIMx == TIM1) || (TIMx == TIM2) || (TIMx == TIM3) || (TIMx == TIM4)) + { + tmpccer &= (uint16_t) ~((uint16_t)(TIM_CC1P)); + tmpccer |= (uint16_t)(TIM_ICPolarity | (uint16_t)TIM_CC1E); + } + else + { + tmpccer &= (uint16_t) ~((uint16_t)(TIM_CC1P | TIM_CC1NP)); + tmpccer |= (uint16_t)(TIM_ICPolarity | (uint16_t)TIM_CC1E); + } + + TIMx->CHCTLR1 = tmpccmr1; + TIMx->CCER = tmpccer; +} + +/********************************************************************* + * @fn TI2_Config + * + * @brief Configure the TI2 as Input. + * + * @param TIMx - where x can be 1 to 4 select the TIM peripheral. + * IM_ICPolarity - The Input Polarity. + * TIM_ICPolarity_Rising. + * TIM_ICPolarity_Falling. + * TIM_ICSelection - specifies the input to be used. + * TIM_ICSelection_DirectTI - TIM Input 2 is selected to be + * connected to IC1. + * TIM_ICSelection_IndirectTI - TIM Input 2 is selected to be + * connected to IC2. + * TIM_ICSelection_TRC - TIM Input 2 is selected to be connected + * to TRC. + * TIM_ICFilter - Specifies the Input Capture Filter. + * This parameter must be a value between 0x00 and 0x0F. + * + * @return none + */ +static void TI2_Config(TIM_TypeDef *TIMx, uint16_t TIM_ICPolarity, uint16_t TIM_ICSelection, + uint16_t TIM_ICFilter) +{ + uint16_t tmpccmr1 = 0, tmpccer = 0, tmp = 0; + + TIMx->CCER &= (uint16_t) ~((uint16_t)TIM_CC2E); + tmpccmr1 = TIMx->CHCTLR1; + tmpccer = TIMx->CCER; + tmp = (uint16_t)(TIM_ICPolarity << 4); + tmpccmr1 &= (uint16_t)(((uint16_t) ~((uint16_t)TIM_CC2S)) & ((uint16_t) ~((uint16_t)TIM_IC2F))); + + TIMx->CHCTLR1 |= (uint16_t)(TIM_ICSelection << 8); + tmpccmr1 |= (uint16_t)(TIM_ICFilter << 12); + + if((TIMx == TIM1) || (TIMx == TIM2) || (TIMx == TIM3) || (TIMx == TIM4)) + { + tmpccer &= (uint16_t) ~((uint16_t)(TIM_CC2P)); + tmpccer |= (uint16_t)(tmp | (uint16_t)TIM_CC2E); + } + else + { + tmpccer &= (uint16_t) ~((uint16_t)(TIM_CC2P | TIM_CC2NP)); + tmpccer |= (uint16_t)(TIM_ICPolarity | (uint16_t)TIM_CC2E); + } + + TIMx->CHCTLR1 = tmpccmr1; + TIMx->CCER = tmpccer; +} + +/********************************************************************* + * @fn TI3_Config + * + * @brief Configure the TI3 as Input. + * + * @param TIMx - where x can be 1 to 4 select the TIM peripheral. + * IM_ICPolarity - The Input Polarity. + * TIM_ICPolarity_Rising. + * TIM_ICPolarity_Falling. + * TIM_ICSelection - specifies the input to be used. + * TIM_ICSelection_DirectTI - TIM Input 3 is selected to be + * connected to IC1. + * TIM_ICSelection_IndirectTI - TIM Input 3 is selected to be + * connected to IC2. + * TIM_ICSelection_TRC - TIM Input 3 is selected to be connected + * to TRC. + * TIM_ICFilter - Specifies the Input Capture Filter. + * This parameter must be a value between 0x00 and 0x0F. + * + * @return none + */ +static void TI3_Config(TIM_TypeDef *TIMx, uint16_t TIM_ICPolarity, uint16_t TIM_ICSelection, + uint16_t TIM_ICFilter) +{ + uint16_t tmpccmr2 = 0, tmpccer = 0, tmp = 0; + + TIMx->CCER &= (uint16_t) ~((uint16_t)TIM_CC3E); + tmpccmr2 = TIMx->CHCTLR2; + tmpccer = TIMx->CCER; + tmp = (uint16_t)(TIM_ICPolarity << 8); + tmpccmr2 &= (uint16_t)(((uint16_t) ~((uint16_t)TIM_CC3S)) & ((uint16_t) ~((uint16_t)TIM_IC3F))); + + TIMx->CHCTLR2 |= (uint16_t)(TIM_ICSelection); + tmpccmr2 |= (uint16_t)(TIM_ICSelection | (uint16_t)(TIM_ICFilter << (uint16_t)4)); + + if((TIMx == TIM1) || (TIMx == TIM2) || (TIMx == TIM3) || (TIMx == TIM4)) + { + tmpccer &= (uint16_t) ~((uint16_t)(TIM_CC3P)); + tmpccer |= (uint16_t)(tmp | (uint16_t)TIM_CC3E); + } + else + { + tmpccer &= (uint16_t) ~((uint16_t)(TIM_CC3P | TIM_CC3NP)); + tmpccer |= (uint16_t)(TIM_ICPolarity | (uint16_t)TIM_CC3E); + } + + TIMx->CHCTLR2 = tmpccmr2; + TIMx->CCER = tmpccer; +} + +/********************************************************************* + * @fn TI4_Config + * + * @brief Configure the TI4 as Input. + * + * @param TIMx - where x can be 1 to 4 select the TIM peripheral. + * IM_ICPolarity - The Input Polarity. + * TIM_ICPolarity_Rising. + * TIM_ICPolarity_Falling. + * TIM_ICSelection - specifies the input to be used. + * TIM_ICSelection_DirectTI - TIM Input 4 is selected to be + * connected to IC1. + * TIM_ICSelection_IndirectTI - TIM Input 4 is selected to be + * connected to IC2. + * TIM_ICSelection_TRC - TIM Input 4 is selected to be connected + * to TRC. + * TIM_ICFilter - Specifies the Input Capture Filter. + * This parameter must be a value between 0x00 and 0x0F. + * + * @return none + */ +static void TI4_Config(TIM_TypeDef *TIMx, uint16_t TIM_ICPolarity, uint16_t TIM_ICSelection, + uint16_t TIM_ICFilter) +{ + uint16_t tmpccmr2 = 0, tmpccer = 0, tmp = 0; + + TIMx->CCER &= (uint16_t) ~((uint16_t)TIM_CC4E); + tmpccmr2 = TIMx->CHCTLR2; + tmpccer = TIMx->CCER; + tmp = (uint16_t)(TIM_ICPolarity << 12); + tmpccmr2 &= (uint16_t)((uint16_t)(~(uint16_t)TIM_CC4S) & ((uint16_t) ~((uint16_t)TIM_IC4F))); + + TIMx->CHCTLR2 |= (uint16_t)(TIM_ICSelection << 8); + tmpccmr2 |= (uint16_t)(TIM_ICFilter << 12); + + if((TIMx == TIM1) || (TIMx == TIM2) || (TIMx == TIM3) || (TIMx == TIM4)) + { + tmpccer &= (uint16_t) ~((uint16_t)(TIM_CC4P)); + tmpccer |= (uint16_t)(tmp | (uint16_t)TIM_CC4E); + } + else + { + tmpccer &= (uint16_t) ~((uint16_t)(TIM_CC3P | TIM_CC4NP)); + tmpccer |= (uint16_t)(TIM_ICPolarity | (uint16_t)TIM_CC4E); + } + + TIMx->CHCTLR2 = tmpccmr2; + TIMx->CCER = tmpccer; +} diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_usart.c b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_usart.c new file mode 100644 index 0000000000..fd8e8b0897 --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_usart.c @@ -0,0 +1,815 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_usart.c + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file provides all the USART firmware functions. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *******************************************************************************/ +#include "ch32v10x_usart.h" +#include "ch32v10x_rcc.h" + +/* USART_Private_Defines */ +#define CTLR1_UE_Set ((uint16_t)0x2000) /* USART Enable Mask */ +#define CTLR1_UE_Reset ((uint16_t)0xDFFF) /* USART Disable Mask */ + +#define CTLR1_WAKE_Mask ((uint16_t)0xF7FF) /* USART WakeUp Method Mask */ + +#define CTLR1_RWU_Set ((uint16_t)0x0002) /* USART mute mode Enable Mask */ +#define CTLR1_RWU_Reset ((uint16_t)0xFFFD) /* USART mute mode Enable Mask */ +#define CTLR1_SBK_Set ((uint16_t)0x0001) /* USART Break Character send Mask */ +#define CTLR1_CLEAR_Mask ((uint16_t)0xE9F3) /* USART CR1 Mask */ +#define CTLR2_Address_Mask ((uint16_t)0xFFF0) /* USART address Mask */ + +#define CTLR2_LINEN_Set ((uint16_t)0x4000) /* USART LIN Enable Mask */ +#define CTLR2_LINEN_Reset ((uint16_t)0xBFFF) /* USART LIN Disable Mask */ + +#define CTLR2_LBDL_Mask ((uint16_t)0xFFDF) /* USART LIN Break detection Mask */ +#define CTLR2_STOP_CLEAR_Mask ((uint16_t)0xCFFF) /* USART CR2 STOP Bits Mask */ +#define CTLR2_CLOCK_CLEAR_Mask ((uint16_t)0xF0FF) /* USART CR2 Clock Mask */ + +#define CTLR3_SCEN_Set ((uint16_t)0x0020) /* USART SC Enable Mask */ +#define CTLR3_SCEN_Reset ((uint16_t)0xFFDF) /* USART SC Disable Mask */ + +#define CTLR3_NACK_Set ((uint16_t)0x0010) /* USART SC NACK Enable Mask */ +#define CTLR3_NACK_Reset ((uint16_t)0xFFEF) /* USART SC NACK Disable Mask */ + +#define CTLR3_HDSEL_Set ((uint16_t)0x0008) /* USART Half-Duplex Enable Mask */ +#define CTLR3_HDSEL_Reset ((uint16_t)0xFFF7) /* USART Half-Duplex Disable Mask */ + +#define CTLR3_IRLP_Mask ((uint16_t)0xFFFB) /* USART IrDA LowPower mode Mask */ +#define CTLR3_CLEAR_Mask ((uint16_t)0xFCFF) /* USART CR3 Mask */ + +#define CTLR3_IREN_Set ((uint16_t)0x0002) /* USART IrDA Enable Mask */ +#define CTLR3_IREN_Reset ((uint16_t)0xFFFD) /* USART IrDA Disable Mask */ +#define GPR_LSB_Mask ((uint16_t)0x00FF) /* Guard Time Register LSB Mask */ +#define GPR_MSB_Mask ((uint16_t)0xFF00) /* Guard Time Register MSB Mask */ +#define IT_Mask ((uint16_t)0x001F) /* USART Interrupt Mask */ + +/* USART OverSampling-8 Mask */ +#define CTLR1_OVER8_Set ((uint16_t)0x8000) /* USART OVER8 mode Enable Mask */ +#define CTLR1_OVER8_Reset ((uint16_t)0x7FFF) /* USART OVER8 mode Disable Mask */ + +/* USART One Bit Sampling Mask */ +#define CTLR3_ONEBITE_Set ((uint16_t)0x0800) /* USART ONEBITE mode Enable Mask */ +#define CTLR3_ONEBITE_Reset ((uint16_t)0xF7FF) /* USART ONEBITE mode Disable Mask */ + +/********************************************************************* + * @fn USART_DeInit + * + * @brief Deinitializes the USARTx peripheral registers to their default + * reset values. + * + * @param USARTx - where x can be 1, 2 or 3 to select the UART peripheral. + * + * @return none + */ +void USART_DeInit(USART_TypeDef *USARTx) +{ + if(USARTx == USART1) + { + RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART1, ENABLE); + RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART1, DISABLE); + } + else if(USARTx == USART2) + { + RCC_APB1PeriphResetCmd(RCC_APB1Periph_USART2, ENABLE); + RCC_APB1PeriphResetCmd(RCC_APB1Periph_USART2, DISABLE); + } + else if(USARTx == USART3) + { + RCC_APB1PeriphResetCmd(RCC_APB1Periph_USART3, ENABLE); + RCC_APB1PeriphResetCmd(RCC_APB1Periph_USART3, DISABLE); + } + else if(USARTx == UART4) + { + RCC_APB1PeriphResetCmd(RCC_APB1Periph_UART4, ENABLE); + RCC_APB1PeriphResetCmd(RCC_APB1Periph_UART4, DISABLE); + } + else + { + if(USARTx == UART5) + { + RCC_APB1PeriphResetCmd(RCC_APB1Periph_UART5, ENABLE); + RCC_APB1PeriphResetCmd(RCC_APB1Periph_UART5, DISABLE); + } + } +} + +/********************************************************************* + * @fn USART_Init + * + * @brief Initializes the USARTx peripheral according to the specified + * parameters in the USART_InitStruct. + * + * @param USARTx - where x can be 1, 2 or 3 to select the UART peripheral. + * USART_InitStruct - pointer to a USART_InitTypeDef structure + * that contains the configuration information for the specified + * USART peripheral. + * + * @return none + */ +void USART_Init(USART_TypeDef *USARTx, USART_InitTypeDef *USART_InitStruct) +{ + uint32_t tmpreg = 0x00, apbclock = 0x00; + uint32_t integerdivider = 0x00; + uint32_t fractionaldivider = 0x00; + uint32_t usartxbase = 0; + RCC_ClocksTypeDef RCC_ClocksStatus; + + if(USART_InitStruct->USART_HardwareFlowControl != USART_HardwareFlowControl_None) + { + } + + usartxbase = (uint32_t)USARTx; + tmpreg = USARTx->CTLR2; + tmpreg &= CTLR2_STOP_CLEAR_Mask; + tmpreg |= (uint32_t)USART_InitStruct->USART_StopBits; + + USARTx->CTLR2 = (uint16_t)tmpreg; + tmpreg = USARTx->CTLR1; + tmpreg &= CTLR1_CLEAR_Mask; + tmpreg |= (uint32_t)USART_InitStruct->USART_WordLength | USART_InitStruct->USART_Parity | + USART_InitStruct->USART_Mode; + USARTx->CTLR1 = (uint16_t)tmpreg; + + tmpreg = USARTx->CTLR3; + tmpreg &= CTLR3_CLEAR_Mask; + tmpreg |= USART_InitStruct->USART_HardwareFlowControl; + USARTx->CTLR3 = (uint16_t)tmpreg; + + RCC_GetClocksFreq(&RCC_ClocksStatus); + + if(usartxbase == USART1_BASE) + { + apbclock = RCC_ClocksStatus.PCLK2_Frequency; + } + else + { + apbclock = RCC_ClocksStatus.PCLK1_Frequency; + } + + if((USARTx->CTLR1 & CTLR1_OVER8_Set) != 0) + { + integerdivider = ((25 * apbclock) / (2 * (USART_InitStruct->USART_BaudRate))); + } + else + { + integerdivider = ((25 * apbclock) / (4 * (USART_InitStruct->USART_BaudRate))); + } + tmpreg = (integerdivider / 100) << 4; + + fractionaldivider = integerdivider - (100 * (tmpreg >> 4)); + + if((USARTx->CTLR1 & CTLR1_OVER8_Set) != 0) + { + tmpreg |= ((((fractionaldivider * 8) + 50) / 100)) & ((uint8_t)0x07); + } + else + { + tmpreg |= ((((fractionaldivider * 16) + 50) / 100)) & ((uint8_t)0x0F); + } + + USARTx->BRR = (uint16_t)tmpreg; +} + +/********************************************************************* + * @fn USART_StructInit + * + * @brief Fills each USART_InitStruct member with its default value. + * + * @param USART_InitStruct: pointer to a USART_InitTypeDef structure + * which will be initialized. + * + * @return none + */ +void USART_StructInit(USART_InitTypeDef *USART_InitStruct) +{ + USART_InitStruct->USART_BaudRate = 9600; + USART_InitStruct->USART_WordLength = USART_WordLength_8b; + USART_InitStruct->USART_StopBits = USART_StopBits_1; + USART_InitStruct->USART_Parity = USART_Parity_No; + USART_InitStruct->USART_Mode = USART_Mode_Rx | USART_Mode_Tx; + USART_InitStruct->USART_HardwareFlowControl = USART_HardwareFlowControl_None; +} + +/********************************************************************* + * @fn USART_ClockInit + * + * @brief Initializes the USARTx peripheral Clock according to the + * specified parameters in the USART_ClockInitStruct . + * + * @param USARTx - where x can be 1, 2, 3 to select the USART peripheral. + * USART_ClockInitStruct - pointer to a USART_ClockInitTypeDef + * structure that contains the configuration information for the specified + * USART peripheral. + * + * @return none + */ +void USART_ClockInit(USART_TypeDef *USARTx, USART_ClockInitTypeDef *USART_ClockInitStruct) +{ + uint32_t tmpreg = 0x00; + + tmpreg = USARTx->CTLR2; + tmpreg &= CTLR2_CLOCK_CLEAR_Mask; + tmpreg |= (uint32_t)USART_ClockInitStruct->USART_Clock | USART_ClockInitStruct->USART_CPOL | + USART_ClockInitStruct->USART_CPHA | USART_ClockInitStruct->USART_LastBit; + USARTx->CTLR2 = (uint16_t)tmpreg; +} + +/********************************************************************* + * @fn USART_ClockStructInit + * + * @brief Fills each USART_ClockStructInit member with its default value. + * + * @param USART_ClockInitStruct: pointer to a USART_ClockInitTypeDef + * structure which will be initialized. + * + * @return none + */ +void USART_ClockStructInit(USART_ClockInitTypeDef *USART_ClockInitStruct) +{ + USART_ClockInitStruct->USART_Clock = USART_Clock_Disable; + USART_ClockInitStruct->USART_CPOL = USART_CPOL_Low; + USART_ClockInitStruct->USART_CPHA = USART_CPHA_1Edge; + USART_ClockInitStruct->USART_LastBit = USART_LastBit_Disable; +} + +/********************************************************************* + * @fn USART_Cmd + * + * @brief Enables or disables the specified USART peripheral. + * reset values (Affects also the I2Ss). + * + * @param USARTx - where x can be 1, 2, 3 to select the USART peripheral. + * NewState: ENABLE or DISABLE. + * + * @return none + */ +void USART_Cmd(USART_TypeDef *USARTx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + USARTx->CTLR1 |= CTLR1_UE_Set; + } + else + { + USARTx->CTLR1 &= CTLR1_UE_Reset; + } +} + +/********************************************************************* + * @fn USART_ITConfig + * + * @brief Enables or disables the specified USART interrupts. + * reset values (Affects also the I2Ss). + * + * @param USARTx - where x can be 1, 2, 3 to select the USART peripheral. + * USART_IT - specifies the USART interrupt sources to be enabled or disabled. + * USART_IT_CTS - CTS change interrupt. + * USART_IT_LBD - LIN Break detection interrupt. + * USART_IT_TXE - Transmit Data Register empty interrupt. + * USART_IT_TC - Transmission complete interrupt. + * USART_IT_RXNE - Receive Data register not empty interrupt. + * USART_IT_IDLE - Idle line detection interrupt. + * USART_IT_PE - Parity Error interrupt. + * USART_IT_ERR - Error interrupt. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void USART_ITConfig(USART_TypeDef *USARTx, uint16_t USART_IT, FunctionalState NewState) +{ + uint32_t usartreg = 0x00, itpos = 0x00, itmask = 0x00; + uint32_t usartxbase = 0x00; + + if(USART_IT == USART_IT_CTS) + { + } + + usartxbase = (uint32_t)USARTx; + usartreg = (((uint8_t)USART_IT) >> 0x05); + itpos = USART_IT & IT_Mask; + itmask = (((uint32_t)0x01) << itpos); + + if(usartreg == 0x01) + { + usartxbase += 0x0C; + } + else if(usartreg == 0x02) + { + usartxbase += 0x10; + } + else + { + usartxbase += 0x14; + } + + if(NewState != DISABLE) + { + *(__IO uint32_t *)usartxbase |= itmask; + } + else + { + *(__IO uint32_t *)usartxbase &= ~itmask; + } +} + +/********************************************************************* + * @fn USART_DMACmd + * + * @brief Enables or disables the USART DMA interface. + * + * @param USARTx - where x can be 1, 2, 3 to select the USART peripheral. + * USART_DMAReq - specifies the DMA request. + * USART_DMAReq_Tx - USART DMA transmit request. + * USART_DMAReq_Rx - USART DMA receive request. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void USART_DMACmd(USART_TypeDef *USARTx, uint16_t USART_DMAReq, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + USARTx->CTLR3 |= USART_DMAReq; + } + else + { + USARTx->CTLR3 &= (uint16_t)~USART_DMAReq; + } +} + +/********************************************************************* + * @fn USART_SetAddress + * + * @brief Sets the address of the USART node. + * + * @param USARTx - where x can be 1, 2, 3 to select the USART peripheral. + * USART_Address - Indicates the address of the USART node. + * + * @return none + */ +void USART_SetAddress(USART_TypeDef *USARTx, uint8_t USART_Address) +{ + USARTx->CTLR2 &= CTLR2_Address_Mask; + USARTx->CTLR2 |= USART_Address; +} + +/********************************************************************* + * @fn USART_WakeUpConfig + * + * @brief Selects the USART WakeUp method. + * + * @param USARTx - where x can be 1, 2, 3 to select the USART peripheral. + * USART_WakeUp - specifies the USART wakeup method. + * USART_WakeUp_IdleLine - WakeUp by an idle line detection. + * USART_WakeUp_AddressMark - WakeUp by an address mark. + * + * @return none + */ +void USART_WakeUpConfig(USART_TypeDef *USARTx, uint16_t USART_WakeUp) +{ + USARTx->CTLR1 &= CTLR1_WAKE_Mask; + USARTx->CTLR1 |= USART_WakeUp; +} + +/********************************************************************* + * @fn USART_ReceiverWakeUpCmd + * + * @brief Determines if the USART is in mute mode or not. + * + * @param USARTx - where x can be 1, 2, 3 to select the USART peripheral. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void USART_ReceiverWakeUpCmd(USART_TypeDef *USARTx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + USARTx->CTLR1 |= CTLR1_RWU_Set; + } + else + { + USARTx->CTLR1 &= CTLR1_RWU_Reset; + } +} + +/********************************************************************* + * @fn USART_LINBreakDetectLengthConfig + * + * @brief Sets the USART LIN Break detection length. + * + * @param USARTx - where x can be 1, 2, 3 to select the USART peripheral. + * USART_LINBreakDetectLength - specifies the LIN break detection length. + * USART_LINBreakDetectLength_10b - 10-bit break detection. + * USART_LINBreakDetectLength_11b - 11-bit break detection. + * + * @return none + */ +void USART_LINBreakDetectLengthConfig(USART_TypeDef *USARTx, uint16_t USART_LINBreakDetectLength) +{ + USARTx->CTLR2 &= CTLR2_LBDL_Mask; + USARTx->CTLR2 |= USART_LINBreakDetectLength; +} + +/********************************************************************* + * @fn USART_LINCmd + * + * @brief Enables or disables the USART LIN mode. + * + * @param USARTx - where x can be 1, 2, 3 to select the USART peripheral. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void USART_LINCmd(USART_TypeDef *USARTx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + USARTx->CTLR2 |= CTLR2_LINEN_Set; + } + else + { + USARTx->CTLR2 &= CTLR2_LINEN_Reset; + } +} + +/********************************************************************* + * @fn USART_SendData + * + * @brief Transmits single data through the USARTx peripheral. + * + * @param USARTx - where x can be 1, 2, 3 to select the USART peripheral. + * Data - the data to transmit. + * + * @return none + */ +void USART_SendData(USART_TypeDef *USARTx, uint16_t Data) +{ + USARTx->DATAR = (Data & (uint16_t)0x01FF); +} + +/********************************************************************* + * @fn USART_ReceiveData + * + * @brief Returns the most recent received data by the USARTx peripheral. + * + * @param USARTx - where x can be 1, 2, 3 to select the USART peripheral. + * + * @return The received data. + */ +uint16_t USART_ReceiveData(USART_TypeDef *USARTx) +{ + return (uint16_t)(USARTx->DATAR & (uint16_t)0x01FF); +} + +/********************************************************************* + * @fn USART_SendBreak + * + * @brief Transmits break characters. + * + * @param USARTx - where x can be 1, 2, 3 to select the USART peripheral. + * + * @return none + */ +void USART_SendBreak(USART_TypeDef *USARTx) +{ + USARTx->CTLR1 |= CTLR1_SBK_Set; +} + +/********************************************************************* + * @fn USART_SetGuardTime + * + * @brief Sets the specified USART guard time. + * + * @param USARTx - where x can be 1, 2, 3 to select the USART peripheral. + * USART_GuardTime - specifies the guard time. + * + * @return none + */ +void USART_SetGuardTime(USART_TypeDef *USARTx, uint8_t USART_GuardTime) +{ + USARTx->GPR &= GPR_LSB_Mask; + USARTx->GPR |= (uint16_t)((uint16_t)USART_GuardTime << 0x08); +} + +/********************************************************************* + * @fn USART_SetPrescaler + * + * @brief Sets the system clock prescaler. + * + * @param USARTx - where x can be 1, 2, 3 to select the USART peripheral. + * USART_Prescaler - specifies the prescaler clock. + * + * @return none + */ +void USART_SetPrescaler(USART_TypeDef *USARTx, uint8_t USART_Prescaler) +{ + USARTx->GPR &= GPR_MSB_Mask; + USARTx->GPR |= USART_Prescaler; +} + +/********************************************************************* + * @fn USART_SmartCardCmd + * + * @brief Enables or disables the USART Smart Card mode. + * + * @param USARTx - where x can be 1, 2, 3 to select the USART peripheral. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void USART_SmartCardCmd(USART_TypeDef *USARTx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + USARTx->CTLR3 |= CTLR3_SCEN_Set; + } + else + { + USARTx->CTLR3 &= CTLR3_SCEN_Reset; + } +} + +/********************************************************************* + * @fn USART_SmartCardNACKCmd + * + * @brief Enables or disables NACK transmission. + * + * @param USARTx - where x can be 1, 2, 3 to select the USART peripheral. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void USART_SmartCardNACKCmd(USART_TypeDef *USARTx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + USARTx->CTLR3 |= CTLR3_NACK_Set; + } + else + { + USARTx->CTLR3 &= CTLR3_NACK_Reset; + } +} + +/********************************************************************* + * @fn USART_HalfDuplexCmd + * + * @brief Enables or disables the USART Half Duplex communication. + * + * @param USARTx - where x can be 1, 2, 3 to select the USART peripheral. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void USART_HalfDuplexCmd(USART_TypeDef *USARTx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + USARTx->CTLR3 |= CTLR3_HDSEL_Set; + } + else + { + USARTx->CTLR3 &= CTLR3_HDSEL_Reset; + } +} + +/********************************************************************* + * @fn USART_OverSampling8Cmd + * + * @brief Enables or disables the USART's 8x oversampling mode. + * + * @param USARTx - where x can be 1, 2, 3 to select the USART peripheral. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void USART_OverSampling8Cmd(USART_TypeDef *USARTx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + USARTx->CTLR1 |= CTLR1_OVER8_Set; + } + else + { + USARTx->CTLR1 &= CTLR1_OVER8_Reset; + } +} + +/********************************************************************* + * @fn USART_OneBitMethodCmd + * + * @brief Enables or disables the USART's one bit sampling method. + * + * @param USARTx - where x can be 1, 2, 3 to select the USART peripheral. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void USART_OneBitMethodCmd(USART_TypeDef *USARTx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + USARTx->CTLR3 |= CTLR3_ONEBITE_Set; + } + else + { + USARTx->CTLR3 &= CTLR3_ONEBITE_Reset; + } +} + +/********************************************************************* + * @fn USART_IrDAConfig + * + * @brief Configures the USART's IrDA interface. + * + * @param USARTx - where x can be 1, 2, 3 to select the USART peripheral. + * USART_IrDAMode - specifies the IrDA mode. + * USART_IrDAMode_LowPower. + * USART_IrDAMode_Normal. + * + * @return none + */ +void USART_IrDAConfig(USART_TypeDef *USARTx, uint16_t USART_IrDAMode) +{ + USARTx->CTLR3 &= CTLR3_IRLP_Mask; + USARTx->CTLR3 |= USART_IrDAMode; +} + +/********************************************************************* + * @fn USART_IrDACmd + * + * @brief Enables or disables the USART's IrDA interface. + * + * @param USARTx - where x can be 1, 2, 3 to select the USART peripheral. + * NewState - ENABLE or DISABLE. + * + * @return none + */ +void USART_IrDACmd(USART_TypeDef *USARTx, FunctionalState NewState) +{ + if(NewState != DISABLE) + { + USARTx->CTLR3 |= CTLR3_IREN_Set; + } + else + { + USARTx->CTLR3 &= CTLR3_IREN_Reset; + } +} + +/********************************************************************* + * @fn USART_GetFlagStatus + * + * @brief Checks whether the specified USART flag is set or not. + * + * @param USARTx - where x can be 1, 2, 3 to select the USART peripheral. + * USART_FLAG - specifies the flag to check. + * USART_FLAG_CTS - CTS Change flag. + * USART_FLAG_LBD - LIN Break detection flag. + * USART_FLAG_TXE - Transmit data register empty flag. + * USART_FLAG_TC - Transmission Complete flag. + * USART_FLAG_RXNE - Receive data register not empty flag. + * USART_FLAG_IDLE - Idle Line detection flag. + * USART_FLAG_ORE - OverRun Error flag. + * USART_FLAG_NE - Noise Error flag. + * USART_FLAG_FE - Framing Error flag. + * USART_FLAG_PE - Parity Error flag. + * + * @return bitstatus: SET or RESET + */ +FlagStatus USART_GetFlagStatus(USART_TypeDef *USARTx, uint16_t USART_FLAG) +{ + FlagStatus bitstatus = RESET; + + if(USART_FLAG == USART_FLAG_CTS) + { + } + + if((USARTx->STATR & USART_FLAG) != (uint16_t)RESET) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + return bitstatus; +} + +/********************************************************************* + * @fn USART_ClearFlag + * + * @brief Clears the USARTx's pending flags. + * + * @param USARTx - where x can be 1, 2, 3 to select the USART peripheral. + * USART_FLAG - specifies the flag to clear. + * USART_FLAG_CTS - CTS Change flag. + * USART_FLAG_LBD - LIN Break detection flag. + * USART_FLAG_TC - Transmission Complete flag. + * USART_FLAG_RXNE - Receive data register not empty flag. + * + * @return none + */ +void USART_ClearFlag(USART_TypeDef *USARTx, uint16_t USART_FLAG) +{ + if((USART_FLAG & USART_FLAG_CTS) == USART_FLAG_CTS) + { + } + + USARTx->STATR = (uint16_t)~USART_FLAG; +} + +/********************************************************************* + * @fn USART_GetITStatus + * + * @brief Checks whether the specified USART interrupt has occurred or not. + * + * @param USARTx - where x can be 1, 2, 3 to select the USART peripheral. + * USART_IT - specifies the USART interrupt source to check. + * USART_IT_CTS - CTS change interrupt. + * USART_IT_LBD - LIN Break detection interrupt. + * USART_IT_TXE - Tansmit Data Register empty interrupt. + * USART_IT_TC - Transmission complete interrupt. + * USART_IT_RXNE - Receive Data register not empty interrupt. + * USART_IT_IDLE - Idle line detection interrupt. + * USART_IT_ORE_RX - OverRun Error interrupt if the RXNEIE bit is set. + * USART_IT_ORE_ER - OverRun Error interrupt if the EIE bit is set. + * USART_IT_NE - Noise Error interrupt. + * USART_IT_FE - Framing Error interrupt. + * USART_IT_PE - Parity Error interrupt. + * + * @return bitstatus: SET or RESET. + */ +ITStatus USART_GetITStatus(USART_TypeDef *USARTx, uint16_t USART_IT) +{ + uint32_t bitpos = 0x00, itmask = 0x00, usartreg = 0x00; + ITStatus bitstatus = RESET; + + if(USART_IT == USART_IT_CTS) + { + } + + usartreg = (((uint8_t)USART_IT) >> 0x05); + itmask = USART_IT & IT_Mask; + itmask = (uint32_t)0x01 << itmask; + + if(usartreg == 0x01) + { + itmask &= USARTx->CTLR1; + } + else if(usartreg == 0x02) + { + itmask &= USARTx->CTLR2; + } + else + { + itmask &= USARTx->CTLR3; + } + + bitpos = USART_IT >> 0x08; + bitpos = (uint32_t)0x01 << bitpos; + bitpos &= USARTx->STATR; + + if((itmask != (uint16_t)RESET) && (bitpos != (uint16_t)RESET)) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + + return bitstatus; +} + +/********************************************************************* + * @fn USART_ClearITPendingBit + * + * @brief Clears the USARTx's interrupt pending bits. + * + * @param USARTx - where x can be 1, 2, 3 to select the USART peripheral. + * USART_IT - specifies the interrupt pending bit to clear. + * USART_IT_CTS - CTS change interrupt. + * USART_IT_LBD - LIN Break detection interrupt. + * USART_IT_TC - Transmission complete interrupt. + * USART_IT_RXNE - Receive Data register not empty interrupt. + * + * @return none + */ +void USART_ClearITPendingBit(USART_TypeDef *USARTx, uint16_t USART_IT) +{ + uint16_t bitpos = 0x00, itmask = 0x00; + + if(USART_IT == USART_IT_CTS) + { + } + + bitpos = USART_IT >> 0x08; + itmask = ((uint16_t)0x01 << (uint16_t)bitpos); + USARTx->STATR = (uint16_t)~itmask; +} diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_usb.c b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_usb.c new file mode 100644 index 0000000000..bc3093e2d8 --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_usb.c @@ -0,0 +1,170 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_usb.c + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file provides all the USB firmware functions. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *******************************************************************************/ +#include "ch32v10x_usb.h" +#include "ch32v10x_rcc.h" +#include "debug.h" +/******************************** USB DEVICE **********************************/ + +/* Endpoint address */ +PUINT8 pEP0_RAM_Addr; +PUINT8 pEP1_RAM_Addr; +PUINT8 pEP2_RAM_Addr; +PUINT8 pEP3_RAM_Addr; +PUINT8 pEP4_RAM_Addr; +PUINT8 pEP5_RAM_Addr; +PUINT8 pEP6_RAM_Addr; +PUINT8 pEP7_RAM_Addr; + +/********************************************************************* + * @fn USB_DeviceInit + * + * @brief Initializes USB device. + * + * @return none + */ +void USB_DeviceInit(void) +{ + R8_USB_CTRL = 0x00; + + R8_UEP4_1_MOD = RB_UEP4_RX_EN | RB_UEP4_TX_EN | RB_UEP1_RX_EN | RB_UEP1_TX_EN; + R8_UEP2_3_MOD = RB_UEP2_RX_EN | RB_UEP2_TX_EN | RB_UEP3_RX_EN | RB_UEP3_TX_EN; + R8_UEP5_6_MOD = RB_UEP5_RX_EN | RB_UEP5_TX_EN | RB_UEP6_RX_EN | RB_UEP6_TX_EN; + R8_UEP7_MOD = RB_UEP7_RX_EN | RB_UEP7_TX_EN; + + R16_UEP0_DMA = (UINT16)(UINT32)pEP0_RAM_Addr; + R16_UEP1_DMA = (UINT16)(UINT32)pEP1_RAM_Addr; + R16_UEP2_DMA = (UINT16)(UINT32)pEP2_RAM_Addr; + R16_UEP3_DMA = (UINT16)(UINT32)pEP3_RAM_Addr; + R16_UEP4_DMA = (UINT16)(UINT32)pEP4_RAM_Addr; + R16_UEP5_DMA = (UINT16)(UINT32)pEP5_RAM_Addr; + R16_UEP6_DMA = (UINT16)(UINT32)pEP6_RAM_Addr; + R16_UEP7_DMA = (UINT16)(UINT32)pEP7_RAM_Addr; + + R8_UEP0_CTRL = UEP_R_RES_ACK | UEP_T_RES_NAK; + R8_UEP1_CTRL = UEP_R_RES_ACK | UEP_T_RES_NAK; + R8_UEP2_CTRL = UEP_R_RES_ACK | UEP_T_RES_NAK; + R8_UEP3_CTRL = UEP_R_RES_ACK | UEP_T_RES_NAK; + R8_UEP4_CTRL = UEP_R_RES_ACK | UEP_T_RES_NAK; + R8_UEP5_CTRL = UEP_R_RES_ACK | UEP_T_RES_NAK; + R8_UEP6_CTRL = UEP_R_RES_ACK | UEP_T_RES_NAK; + R8_UEP7_CTRL = UEP_R_RES_ACK | UEP_T_RES_NAK; + + R8_USB_INT_FG = 0xFF; + R8_USB_INT_EN = RB_UIE_SUSPEND | RB_UIE_BUS_RST | RB_UIE_TRANSFER; + + R8_USB_DEV_AD = 0x00; + R8_USB_CTRL = RB_UC_DEV_PU_EN | RB_UC_INT_BUSY | RB_UC_DMA_EN; + R8_UDEV_CTRL = RB_UD_PD_DIS | RB_UD_PORT_EN; +} + +/********************************************************************* + * @fn DevEP1_IN_Deal + * + * @brief Device endpoint1 IN + * + * @param l: IN length(<64B) + * + * @return none + */ +void DevEP1_IN_Deal(UINT8 l) +{ + R8_UEP1_T_LEN = l; + R8_UEP1_CTRL = (R8_UEP1_CTRL & ~MASK_UEP_T_RES) | UEP_T_RES_ACK; +} + +/********************************************************************* + * @fn DevEP2_IN_Deal + * + * @brief Device endpoint2 IN + * + * @param l: IN length(<64B) + * + * @return none + */ +void DevEP2_IN_Deal(UINT8 l) +{ + R8_UEP2_T_LEN = l; + R8_UEP2_CTRL = (R8_UEP2_CTRL & ~MASK_UEP_T_RES) | UEP_T_RES_ACK; +} + +/********************************************************************* + * @fn DevEP3_IN_Deal + * + * @brief Device endpoint3 IN + * + * @param l: IN length(<64B) + * + * @return none + */ +void DevEP3_IN_Deal(UINT8 l) +{ + R8_UEP3_T_LEN = l; + R8_UEP3_CTRL = (R8_UEP3_CTRL & ~MASK_UEP_T_RES) | UEP_T_RES_ACK; +} + +/********************************************************************* + * @fn DevEP4_IN_Deal + * + * @brief Device endpoint4 IN + * + * @param l: IN length(<64B) + * + * @return none + */ +void DevEP4_IN_Deal(UINT8 l) +{ + R8_UEP4_T_LEN = l; + R8_UEP4_CTRL = (R8_UEP4_CTRL & ~MASK_UEP_T_RES) | UEP_T_RES_ACK; +} + +/********************************************************************* + * @fn DevEP5_IN_Deal + * + * @brief Device endpoint5 IN + * + * @param l: IN length(<64B) + * + * @return none + */ +void DevEP5_IN_Deal(UINT8 l) +{ + R8_UEP5_T_LEN = l; + R8_UEP5_CTRL = (R8_UEP5_CTRL & ~MASK_UEP_T_RES) | UEP_T_RES_ACK; +} + +/********************************************************************* + * @fn DevEP6_IN_Deal + * + * @brief Device endpoint6 IN + * + * @param l: IN length(<64B) + * + * @return none + */ +void DevEP6_IN_Deal(UINT8 l) +{ + R8_UEP6_T_LEN = l; + R8_UEP6_CTRL = (R8_UEP6_CTRL & ~MASK_UEP_T_RES) | UEP_T_RES_ACK; +} + +/********************************************************************* + * @fn DevEP7_IN_Deal + * + * @brief Device endpoint7 IN + * + * @param l: IN length(<64B) + * + * @return none + */ +void DevEP7_IN_Deal(UINT8 l) +{ + R8_UEP7_T_LEN = l; + R8_UEP7_CTRL = (R8_UEP7_CTRL & ~MASK_UEP_T_RES) | UEP_T_RES_ACK; +} diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_usb_host.c b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_usb_host.c new file mode 100644 index 0000000000..1205f2fd16 --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_usb_host.c @@ -0,0 +1,809 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_usb_host.c + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file provides all the USB firmware functions. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *******************************************************************************/ +#include "ch32v10x_usb_host.h" +#include "debug.h" + +/******************************** HOST DEVICE **********************************/ +UINT8 UsbDevEndp0Size; +UINT8 FoundNewDev; +_RootHubDev ThisUsbDev; + +PUINT8 pHOST_RX_RAM_Addr; +PUINT8 pHOST_TX_RAM_Addr; +extern UINT8 Com_Buffer[128]; + +__attribute__((aligned(4))) const UINT8 SetupGetDevDescr[] = {USB_REQ_TYP_IN, USB_GET_DESCRIPTOR, 0x00, USB_DESCR_TYP_DEVICE, 0x00, 0x00, sizeof(USB_DEV_DESCR), 0x00}; + +__attribute__((aligned(4))) const UINT8 SetupGetCfgDescr[] = {USB_REQ_TYP_IN, USB_GET_DESCRIPTOR, 0x00, USB_DESCR_TYP_CONFIG, 0x00, 0x00, 0x04, 0x00}; + +__attribute__((aligned(4))) const UINT8 SetupSetUsbAddr[] = {USB_REQ_TYP_OUT, USB_SET_ADDRESS, USB_DEVICE_ADDR, 0x00, 0x00, 0x00, 0x00, 0x00}; + +__attribute__((aligned(4))) const UINT8 SetupSetUsbConfig[] = {USB_REQ_TYP_OUT, USB_SET_CONFIGURATION, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + +__attribute__((aligned(4))) const UINT8 SetupSetUsbInterface[] = {USB_REQ_RECIP_INTERF, USB_SET_INTERFACE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + +__attribute__((aligned(4))) const UINT8 SetupClrEndpStall[] = {USB_REQ_TYP_OUT | USB_REQ_RECIP_ENDP, USB_CLEAR_FEATURE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + +/********************************************************************* + * @fn DisableRootHubPort( ) + * + * @brief Disable root hub + * + * @return none + */ +void DisableRootHubPort(void) +{ +#ifdef FOR_ROOT_UDISK_ONLY + CH103DiskStatus = DISK_DISCONNECT; + +#endif + +#ifndef DISK_BASE_BUF_LEN + ThisUsbDev.DeviceStatus = ROOT_DEV_DISCONNECT; + ThisUsbDev.DeviceAddress = 0x00; + +#endif +} + +/********************************************************************* + * @fn AnalyzeRootHub + * + * @brief Analyze root hub state. + * + * @return Error + */ +UINT8 AnalyzeRootHub(void) +{ + UINT8 s; + + s = ERR_SUCCESS; + + if(R8_USB_MIS_ST & RB_UMS_DEV_ATTACH) + { +#ifdef DISK_BASE_BUF_LEN + if(CH103DiskStatus == DISK_DISCONNECT + +#else + if(ThisUsbDev.DeviceStatus == ROOT_DEV_DISCONNECT + +#endif + || (R8_UHOST_CTRL & RB_UH_PORT_EN) == 0x00) + { + DisableRootHubPort(); + +#ifdef DISK_BASE_BUF_LEN + CH103DiskStatus = DISK_CONNECT; + +#else + ThisUsbDev.DeviceSpeed = R8_USB_MIS_ST & RB_UMS_DM_LEVEL ? 0 : 1; + ThisUsbDev.DeviceStatus = ROOT_DEV_CONNECTED; + +#endif + s = ERR_USB_CONNECT; + } + } + +#ifdef DISK_BASE_BUF_LEN + else if(CH103DiskStatus >= DISK_CONNECT) + { +#else + else if(ThisUsbDev.DeviceStatus >= ROOT_DEV_CONNECTED) + { + +#endif + DisableRootHubPort(); + if(s == ERR_SUCCESS) + s = ERR_USB_DISCON; + } + + return (s); +} + +/********************************************************************* + * @fn SetHostUsbAddr + * + * @brief Set USB host address + * + * @param addr - host address + * + * @return none + */ +void SetHostUsbAddr(UINT8 addr) +{ + R8_USB_DEV_AD = (R8_USB_DEV_AD & RB_UDA_GP_BIT) | (addr & MASK_USB_ADDR); +} + +#ifndef FOR_ROOT_UDISK_ONLY +/********************************************************************* + * @fn SetUsbSpeed + * + * @brief Set USB speed. + * + * @param FullSpeed - USB speed. + * + * @return none + */ +void SetUsbSpeed(UINT8 FullSpeed) +{ + if(FullSpeed) + { + R8_USB_CTRL &= ~RB_UC_LOW_SPEED; + R8_UH_SETUP &= ~RB_UH_PRE_PID_EN; + } + else + { + R8_USB_CTRL |= RB_UC_LOW_SPEED; + } +} +#endif + +/********************************************************************* + * @fn ResetRootHubPort( ) + * + * @brief Reset root hub + * + * @return none + */ +void ResetRootHubPort(void) +{ + UsbDevEndp0Size = DEFAULT_ENDP0_SIZE; + SetHostUsbAddr(0x00); + R8_UHOST_CTRL &= ~RB_UH_PORT_EN; + SetUsbSpeed(1); + R8_UHOST_CTRL = (R8_UHOST_CTRL & ~RB_UH_LOW_SPEED) | RB_UH_BUS_RESET; + Delay_Ms(15); + R8_UHOST_CTRL = R8_UHOST_CTRL & ~RB_UH_BUS_RESET; + Delay_Us(250); + R8_USB_INT_FG = RB_UIF_DETECT; +} + +/********************************************************************* + * @fn EnableRootHubPort( ) + * + * @brief Enable root hub. + * + * @return ERROR + */ +UINT8 EnableRootHubPort(void) +{ +#ifdef DISK_BASE_BUF_LEN + if(CH103DiskStatus < DISK_CONNECT) + CH103DiskStatus = DISK_CONNECT; + +#else + if(ThisUsbDev.DeviceStatus < ROOT_DEV_CONNECTED) + ThisUsbDev.DeviceStatus = ROOT_DEV_CONNECTED; + +#endif + if(R8_USB_MIS_ST & RB_UMS_DEV_ATTACH) + { +#ifndef DISK_BASE_BUF_LEN + if((R8_UHOST_CTRL & RB_UH_PORT_EN) == 0x00) + { + ThisUsbDev.DeviceSpeed = (R8_USB_MIS_ST & RB_UMS_DM_LEVEL) ? 0 : 1; + if(ThisUsbDev.DeviceSpeed == 0) + R8_UHOST_CTRL |= RB_UH_LOW_SPEED; + } + +#endif + R8_UHOST_CTRL |= RB_UH_PORT_EN; + return (ERR_SUCCESS); + } + + return (ERR_USB_DISCON); +} + +/********************************************************************* + * @fn WaitUSB_Interrupt + * + * @brief Wait USB Interrput. + * + * @return ERROR + */ +UINT8 WaitUSB_Interrupt(void) +{ + UINT16 i; + + for(i = WAIT_USB_TOUT_200US; i != 0 && (R8_USB_INT_FG & RB_UIF_TRANSFER) == 0; i--) + { + ; + } + return ((R8_USB_INT_FG & RB_UIF_TRANSFER) ? ERR_SUCCESS : ERR_USB_UNKNOWN); +} + +/********************************************************************* + * @fn USBHostTransact + * + * @brief USB host transport transaction + * @param endp_pid: endpoint and PID + * tog: Synchronization flag + * timeout: timeout times + * + * @return EEROR: + * ERR_USB_UNKNOWN + * ERR_USB_DISCON + * ERR_USB_CONNECT + * ERR_SUCCESS + */ +UINT8 USBHostTransact(UINT8 endp_pid, UINT8 tog, UINT32 timeout) +{ + UINT8 TransRetry; + UINT8 s, r; + UINT16 i; + + R8_UH_RX_CTRL = R8_UH_TX_CTRL = tog; + TransRetry = 0; + + do + { + R8_UH_EP_PID = endp_pid; + R8_USB_INT_FG = RB_UIF_TRANSFER; + for(i = WAIT_USB_TOUT_200US; i != 0 && (R8_USB_INT_FG & RB_UIF_TRANSFER) == 0; i--) + ; + R8_UH_EP_PID = 0x00; + if((R8_USB_INT_FG & RB_UIF_TRANSFER) == 0) + { + return (ERR_USB_UNKNOWN); + } + + if(R8_USB_INT_FG & RB_UIF_DETECT) + { + R8_USB_INT_FG = RB_UIF_DETECT; + s = AnalyzeRootHub(); + + if(s == ERR_USB_CONNECT) + FoundNewDev = 1; + +#ifdef DISK_BASE_BUF_LEN + + if(CH103DiskStatus == DISK_DISCONNECT) + return (ERR_USB_DISCON); + if(CH103DiskStatus == DISK_CONNECT) + return (ERR_USB_CONNECT); + +#else + if(ThisUsbDev.DeviceStatus == ROOT_DEV_DISCONNECT) + return (ERR_USB_DISCON); + if(ThisUsbDev.DeviceStatus == ROOT_DEV_CONNECTED) + return (ERR_USB_CONNECT); + +#endif + Delay_Us(200); + } + + if(R8_USB_INT_FG & RB_UIF_TRANSFER) + { + if(R8_USB_INT_ST & RB_UIS_TOG_OK) + return (ERR_SUCCESS); + r = R8_USB_INT_ST & MASK_UIS_H_RES; + if(r == USB_PID_STALL) + return (r | ERR_USB_TRANSFER); + + if(r == USB_PID_NAK) + { + if(timeout == 0) + return (r | ERR_USB_TRANSFER); + if(timeout < 0xFFFF) + timeout--; + --TransRetry; + } + else + switch(endp_pid >> 4) + { + case USB_PID_SETUP: + + case USB_PID_OUT: + if(r) + return (r | ERR_USB_TRANSFER); + break; + + case USB_PID_IN: + if(r == USB_PID_DATA0 && r == USB_PID_DATA1) + { + } + else if(r) + return (r | ERR_USB_TRANSFER); + break; + + default: + return (ERR_USB_UNKNOWN); + } + } + else + { + R8_USB_INT_FG = 0xFF; + } + Delay_Us(15); + } while(++TransRetry < 3); + + return (ERR_USB_TRANSFER); +} + +/********************************************************************* + * @fn HostCtrlTransfer + * + * @brief Host control transport. + * + * @param DataBuf : Receive or send data buffer. + * RetLen : Data length. + * + * @return ERR_USB_BUF_OVER IN + * ERR_SUCCESS + */ +UINT8 HostCtrlTransfer(PUINT8 DataBuf, PUINT8 RetLen) +{ + UINT16 RemLen = 0; + UINT8 s, RxLen, RxCnt, TxCnt; + PUINT8 pBuf; + PUINT8 pLen; + + pBuf = DataBuf; + pLen = RetLen; + Delay_Us(200); + if(pLen) + *pLen = 0; + + R8_UH_TX_LEN = sizeof(USB_SETUP_REQ); + s = USBHostTransact(USB_PID_SETUP << 4 | 0x00, 0x00, 200000 / 20); + if(s != ERR_SUCCESS) + return (s); + R8_UH_RX_CTRL = R8_UH_TX_CTRL = RB_UH_R_TOG | RB_UH_R_AUTO_TOG | RB_UH_T_TOG | RB_UH_T_AUTO_TOG; + R8_UH_TX_LEN = 0x01; + RemLen = pSetupReq->wLength; + + if(RemLen && pBuf) + { + if(pSetupReq->bRequestType & USB_REQ_TYP_IN) + { + while(RemLen) + { + Delay_Us(200); + s = USBHostTransact(USB_PID_IN << 4 | 0x00, R8_UH_RX_CTRL, 200000 / 20); + if(s != ERR_SUCCESS) + return (s); + RxLen = R8_USB_RX_LEN < RemLen ? R8_USB_RX_LEN : RemLen; + RemLen -= RxLen; + if(pLen) + *pLen += RxLen; + + for(RxCnt = 0; RxCnt != RxLen; RxCnt++) { + *pBuf = pHOST_RX_RAM_Addr[RxCnt]; + pBuf++; + } + + if(R8_USB_RX_LEN == 0 || (R8_USB_RX_LEN & (UsbDevEndp0Size - 1))) + break; + } + R8_UH_TX_LEN = 0x00; + } + else + { + while(RemLen) + { + Delay_Us(200); + R8_UH_TX_LEN = RemLen >= UsbDevEndp0Size ? UsbDevEndp0Size : RemLen; + + for(TxCnt = 0; TxCnt != R8_UH_TX_LEN; TxCnt++){ + pHOST_TX_RAM_Addr[TxCnt] = *pBuf; + pBuf++; + } + + s = USBHostTransact(USB_PID_OUT << 4 | 0x00, R8_UH_TX_CTRL, 200000 / 20); + if(s != ERR_SUCCESS) + return (s); + RemLen -= R8_UH_TX_LEN; + if(pLen) + *pLen += R8_UH_TX_LEN; + } + } + } + + Delay_Us(200); + s = USBHostTransact((R8_UH_TX_LEN ? USB_PID_IN << 4 | 0x00 : USB_PID_OUT << 4 | 0x00), RB_UH_R_TOG | RB_UH_T_TOG, 200000 / 20); + if(s != ERR_SUCCESS) + return (s); + if(R8_UH_TX_LEN == 0) + return (ERR_SUCCESS); + if(R8_USB_RX_LEN == 0) + return (ERR_SUCCESS); + + return (ERR_USB_BUF_OVER); +} + +/********************************************************************* + * @fn CopySetupReqPkg + * + * @brief Copy setup request package. + * + * @param pReqPkt: setup request package address. + * + * @return none + */ +void CopySetupReqPkg(const UINT8 *pReqPkt) +{ + UINT8 i; + + for(i = 0; i != sizeof(USB_SETUP_REQ); i++) { + ((PUINT8)pSetupReq)[i] = *pReqPkt; + pReqPkt++; + } +} + +/********************************************************************* + * @fn CtrlGetDeviceDescr + * + * @brief Get device descrptor. + * + * @param DataBuf: Data buffer. + * + * @return ERR_USB_BUF_OVER + * ERR_SUCCESS + */ +UINT8 CtrlGetDeviceDescr(PUINT8 DataBuf) +{ + UINT8 s; + UINT8 len; + + UsbDevEndp0Size = DEFAULT_ENDP0_SIZE; + CopySetupReqPkg(SetupGetDevDescr); + s = HostCtrlTransfer(DataBuf, &len); + + if(s != ERR_SUCCESS) + return (s); + UsbDevEndp0Size = ((PUSB_DEV_DESCR)DataBuf)->bMaxPacketSize0; + if(len < ((PUSB_SETUP_REQ)SetupGetDevDescr)->wLength) + return (ERR_USB_BUF_OVER); + + return (ERR_SUCCESS); +} + +/********************************************************************* + * @fn CtrlGetConfigDescr + * + * @brief Get configration descrptor. + * + * @param DataBuf: Data buffer. + * + * @return ERR_USB_BUF_OVER + * ERR_SUCCESS + */ +UINT8 CtrlGetConfigDescr(PUINT8 DataBuf) +{ + UINT8 s; + UINT8 len; + + CopySetupReqPkg(SetupGetCfgDescr); + s = HostCtrlTransfer(DataBuf, &len); + if(s != ERR_SUCCESS) + return (s); + if(len < ((PUSB_SETUP_REQ)SetupGetCfgDescr)->wLength) + return (ERR_USB_BUF_OVER); + + len = ((PUSB_CFG_DESCR)DataBuf)->wTotalLength; + CopySetupReqPkg(SetupGetCfgDescr); + pSetupReq->wLength = len; + s = HostCtrlTransfer(DataBuf, &len); + if(s != ERR_SUCCESS) + return (s); + + return (ERR_SUCCESS); +} + +/********************************************************************* + * @fn CtrlSetUsbAddress + * + * @brief Set USB device address. + * + * @param addr: Device address. + * + * @return ERR_SUCCESS + */ +UINT8 CtrlSetUsbAddress(UINT8 addr) +{ + UINT8 s; + + CopySetupReqPkg(SetupSetUsbAddr); + pSetupReq->wValue = addr; + s = HostCtrlTransfer(NULL, NULL); + if(s != ERR_SUCCESS) + return (s); + SetHostUsbAddr(addr); + Delay_Ms(10); + + return (ERR_SUCCESS); +} + +/********************************************************************* + * @fn CtrlSetUsbConfig + * + * @brief Set usb configration. + * + * @param cfg: Configration Value. + * + * @return ERR_SUCCESS + */ +UINT8 CtrlSetUsbConfig(UINT8 cfg) +{ + CopySetupReqPkg(SetupSetUsbConfig); + pSetupReq->wValue = cfg; + return (HostCtrlTransfer(NULL, NULL)); +} + +/********************************************************************* + * @fn CtrlClearEndpStall + * + * @brief Clear endpoint STALL. + * + * @param endp: Endpoint address. + * + * @return ERR_SUCCESS + */ +UINT8 CtrlClearEndpStall(UINT8 endp) +{ + CopySetupReqPkg(SetupClrEndpStall); + pSetupReq->wIndex = endp; + return (HostCtrlTransfer(NULL, NULL)); +} + +/********************************************************************* + * @fn CtrlSetUsbIntercace + * + * @brief Set USB Interface configration. + * + * @param cfg: Configration value. + * + * @return ERR_SUCCESS + */ +UINT8 CtrlSetUsbIntercace(UINT8 cfg) +{ + CopySetupReqPkg(SetupSetUsbInterface); + pSetupReq->wValue = cfg; + return (HostCtrlTransfer(NULL, NULL)); +} + +/********************************************************************* + * @fn USB_HostInit + * + * @brief Initializes USB host mode. + * + * @return ERR_SUCCESS + */ +void USB_HostInit(void) +{ + R8_USB_CTRL = RB_UC_HOST_MODE; + R8_UHOST_CTRL = 0; + R8_USB_DEV_AD = 0x00; + R8_UH_EP_MOD = RB_UH_EP_TX_EN | RB_UH_EP_RX_EN; + R16_UH_RX_DMA = (UINT16)(UINT32)pHOST_RX_RAM_Addr; + R16_UH_TX_DMA = (UINT16)(UINT32)pHOST_TX_RAM_Addr; + + R8_UH_RX_CTRL = 0x00; + R8_UH_TX_CTRL = 0x00; + R8_USB_CTRL = RB_UC_HOST_MODE | RB_UC_INT_BUSY | RB_UC_DMA_EN; + R8_UH_SETUP = RB_UH_SOF_EN; + R8_USB_INT_FG = 0xFF; + DisableRootHubPort(); + R8_USB_INT_EN = RB_UIE_TRANSFER | RB_UIE_DETECT; + + FoundNewDev = 0; +} + +/********************************************************************* + * @fn InitRootDevice + * + * @brief Initializes USB root hub. + * + * @param DataBuf: Data buffer. + * + * @return ERROR + */ +UINT8 InitRootDevice(PUINT8 DataBuf) +{ + UINT8 i, s; + UINT8 cfg, dv_cls, if_cls; + + ResetRootHubPort(); + + for(i = 0, s = 0; i < 100; i++) + { + Delay_Ms(1); + if(EnableRootHubPort() == ERR_SUCCESS) + { + i = 0; + s++; + if(s > 100) + break; + } + } + + if(i) + { + DisableRootHubPort(); + return (ERR_USB_DISCON); + } + + SetUsbSpeed(ThisUsbDev.DeviceSpeed); + + s = CtrlGetDeviceDescr(DataBuf); + + if(s == ERR_SUCCESS) + { + ThisUsbDev.DeviceVID = ((PUSB_DEV_DESCR)DataBuf)->idVendor; + ThisUsbDev.DevicePID = ((PUSB_DEV_DESCR)DataBuf)->idProduct; + dv_cls = ((PUSB_DEV_DESCR)DataBuf)->bDeviceClass; + + s = CtrlSetUsbAddress(((PUSB_SETUP_REQ)SetupSetUsbAddr)->wValue); + + if(s == ERR_SUCCESS) + { + ThisUsbDev.DeviceAddress = ((PUSB_SETUP_REQ)SetupSetUsbAddr)->wValue; + + s = CtrlGetConfigDescr(DataBuf); + + if(s == ERR_SUCCESS) + { + cfg = ((PUSB_CFG_DESCR)DataBuf)->bConfigurationValue; + if_cls = ((PUSB_CFG_DESCR_LONG)DataBuf)->itf_descr.bInterfaceClass; + + if((dv_cls == 0x00) && (if_cls == USB_DEV_CLASS_STORAGE)) + { +#ifdef FOR_ROOT_UDISK_ONLY + CH103DiskStatus = DISK_USB_ADDR; + return (ERR_SUCCESS); + } + else + return (ERR_USB_UNSUPPORT); + +#else + s = CtrlSetUsbConfig(cfg); + + if(s == ERR_SUCCESS) + { + ThisUsbDev.DeviceStatus = ROOT_DEV_SUCCESS; + ThisUsbDev.DeviceType = USB_DEV_CLASS_STORAGE; + SetUsbSpeed(1); + return (ERR_SUCCESS); + } + } + else if((dv_cls == 0x00) && (if_cls == USB_DEV_CLASS_PRINTER) && ((PUSB_CFG_DESCR_LONG)DataBuf)->itf_descr.bInterfaceSubClass == 0x01) + { + s = CtrlSetUsbConfig(cfg); + if(s == ERR_SUCCESS) + { + ThisUsbDev.DeviceStatus = ROOT_DEV_SUCCESS; + ThisUsbDev.DeviceType = USB_DEV_CLASS_PRINTER; + SetUsbSpeed(1); + return (ERR_SUCCESS); + } + } + else if((dv_cls == 0x00) && (if_cls == USB_DEV_CLASS_HID) && ((PUSB_CFG_DESCR_LONG)DataBuf)->itf_descr.bInterfaceSubClass <= 0x01) + { + if_cls = ((PUSB_CFG_DESCR_LONG)DataBuf)->itf_descr.bInterfaceProtocol; + s = CtrlSetUsbConfig(cfg); + if(s == ERR_SUCCESS) + { + ThisUsbDev.DeviceStatus = ROOT_DEV_SUCCESS; + if(if_cls == 1) + { + ThisUsbDev.DeviceType = DEV_TYPE_KEYBOARD; + SetUsbSpeed(1); + return (ERR_SUCCESS); + } + else if(if_cls == 2) + { + ThisUsbDev.DeviceType = DEV_TYPE_MOUSE; + SetUsbSpeed(1); + return (ERR_SUCCESS); + } + s = ERR_USB_UNSUPPORT; + } + } + else + { + s = CtrlSetUsbConfig(cfg); + if(s == ERR_SUCCESS) + { + ThisUsbDev.DeviceStatus = ROOT_DEV_SUCCESS; + ThisUsbDev.DeviceType = DEV_TYPE_UNKNOW; + SetUsbSpeed(1); + return (ERR_SUCCESS); + } + } + +#endif + } + } + } + +#ifdef FOR_ROOT_UDISK_ONLY + CH103DiskStatus = DISK_CONNECT; + +#else + ThisUsbDev.DeviceStatus = ROOT_DEV_FAILED; + +#endif + + SetUsbSpeed(1); + + return (s); +} + +/********************************************************************* + * @fn HubGetPortStatus + * + * @brief ²éѯHUB¶Ë¿Ú״̬,·µ»ØÔÚCom_BufferÖÐ + * + * @param UINT8 HubPortIndex + * + * @return ERR_SUCCESS ³É¹¦ + * ERR_USB_BUF_OVER ³¤¶È´íÎó + */ +UINT8 HubGetPortStatus(UINT8 HubPortIndex) +{ + UINT8 s; + UINT8 len; + + pSetupReq->bRequestType = HUB_GET_PORT_STATUS; + pSetupReq->bRequest = HUB_GET_STATUS; + pSetupReq->wValue = 0x0000; + pSetupReq->wIndex = 0x0000 | HubPortIndex; + pSetupReq->wLength = 0x0004; + s = HostCtrlTransfer(Com_Buffer, &len); // Ö´ÐпØÖÆ´«Êä + if(s != ERR_SUCCESS) + { + return (s); + } + if(len < 4) + { + return (ERR_USB_BUF_OVER); // ÃèÊö·û³¤¶È´íÎó + } + + return (ERR_SUCCESS); +} + +/********************************************************************* + * @fn HubSetPortFeature + * + * @brief ÉèÖÃHUB¶Ë¿ÚÌØÐÔ + * + * @param UINT8 HubPortIndex + * UINT8 FeatureSelt + * + * @return ERR_SUCCESS ³É¹¦ + */ +UINT8 HubSetPortFeature(UINT8 HubPortIndex, UINT8 FeatureSelt) +{ + pSetupReq->bRequestType = HUB_SET_PORT_FEATURE; + pSetupReq->bRequest = HUB_SET_FEATURE; + pSetupReq->wValue = 0x0000 | FeatureSelt; + pSetupReq->wIndex = 0x0000 | HubPortIndex; + pSetupReq->wLength = 0x0000; + return (HostCtrlTransfer(NULL, NULL)); // Ö´ÐпØÖÆ´«Êä +} + +/********************************************************************* + * @fn HubClearPortFeature + * + * @brief Çå³ýHUB¶Ë¿ÚÌØÐÔ + * + * @param UINT8 HubPortIndex + * UINT8 FeatureSelt + * + * @return ERR_SUCCESS ³É¹¦ + */ +UINT8 HubClearPortFeature(UINT8 HubPortIndex, UINT8 FeatureSelt) +{ + pSetupReq->bRequestType = HUB_CLEAR_PORT_FEATURE; + pSetupReq->bRequest = HUB_CLEAR_FEATURE; + pSetupReq->wValue = 0x0000 | FeatureSelt; + pSetupReq->wIndex = 0x0000 | HubPortIndex; + pSetupReq->wLength = 0x0000; + return (HostCtrlTransfer(NULL, NULL)); // Ö´ÐпØÖÆ´«Êä +} diff --git a/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_wwdg.c b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_wwdg.c new file mode 100644 index 0000000000..187a5d959e --- /dev/null +++ b/bsp/wch/risc-v/Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src/ch32v10x_wwdg.c @@ -0,0 +1,139 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_wwdg.c + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file provides all the WWDG firmware functions. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + **********************************************************************************/ +#include "ch32v10x_wwdg.h" +#include "ch32v10x_rcc.h" + +/* CTLR register bit mask */ +#define CTLR_WDGA_Set ((uint32_t)0x00000080) + +/* CFGR register bit mask */ +#define CFGR_WDGTB_Mask ((uint32_t)0xFFFFFE7F) +#define CFGR_W_Mask ((uint32_t)0xFFFFFF80) +#define BIT_Mask ((uint8_t)0x7F) + +/********************************************************************* + * @fn WWDG_DeInit + * + * @brief Deinitializes the WWDG peripheral registers to their default reset values + * + * @return none + */ +void WWDG_DeInit(void) +{ + RCC_APB1PeriphResetCmd(RCC_APB1Periph_WWDG, ENABLE); + RCC_APB1PeriphResetCmd(RCC_APB1Periph_WWDG, DISABLE); +} + +/********************************************************************* + * @fn WWDG_SetPrescaler + * + * @brief Sets the WWDG Prescaler + * + * @param WWDG_Prescaler - specifies the WWDG Prescaler + * WWDG_Prescaler_1 - WWDG counter clock = (PCLK1/4096)/1 + * WWDG_Prescaler_2 - WWDG counter clock = (PCLK1/4096)/2 + * WWDG_Prescaler_4 - WWDG counter clock = (PCLK1/4096)/4 + * WWDG_Prescaler_8 - WWDG counter clock = (PCLK1/4096)/8 + * + * @return none + */ +void WWDG_SetPrescaler(uint32_t WWDG_Prescaler) +{ + uint32_t tmpreg = 0; + tmpreg = WWDG->CFGR & CFGR_WDGTB_Mask; + tmpreg |= WWDG_Prescaler; + WWDG->CFGR = tmpreg; +} + +/********************************************************************* + * @fn WWDG_SetWindowValue + * + * @brief Sets the WWDG window value + * + * @param WindowValue - specifies the window value to be compared to the + * downcounter,which must be lower than 0x80 + * + * @return none + */ +void WWDG_SetWindowValue(uint8_t WindowValue) +{ + __IO uint32_t tmpreg = 0; + + tmpreg = WWDG->CFGR & CFGR_W_Mask; + + tmpreg |= WindowValue & (uint32_t)BIT_Mask; + + WWDG->CFGR = tmpreg; +} + +/********************************************************************* + * @fn WWDG_EnableIT + * + * @brief Enables the WWDG Early Wakeup interrupt(EWI) + * + * @return none + */ +void WWDG_EnableIT(void) +{ + WWDG->CFGR |= (1 << 9); +} + +/********************************************************************* + * @fn WWDG_SetCounter + * + * @brief Sets the WWDG counter value + * + * @param Counter - specifies the watchdog counter value,which must be a + * number between 0x40 and 0x7F + * + * @return none + */ +void WWDG_SetCounter(uint8_t Counter) +{ + WWDG->CTLR = Counter & BIT_Mask; +} + +/********************************************************************* + * @fn WWDG_Enable + * + * @brief Enables WWDG and load the counter value + * + * @param Counter - specifies the watchdog counter value,which must be a + * number between 0x40 and 0x7F + * @return none + */ +void WWDG_Enable(uint8_t Counter) +{ + WWDG->CTLR = CTLR_WDGA_Set | Counter; +} + +/********************************************************************* + * @fn WWDG_GetFlagStatus + * + * @brief Checks whether the Early Wakeup interrupt flag is set or not + * + * @return The new state of the Early Wakeup interrupt flag (SET or RESET) + */ +FlagStatus WWDG_GetFlagStatus(void) +{ + return (FlagStatus)(WWDG->STATR); +} + +/********************************************************************* + * @fn WWDG_ClearFlag + * + * @brief Clears Early Wakeup interrupt flag + * + * @return none + */ +void WWDG_ClearFlag(void) +{ + WWDG->STATR = (uint32_t)RESET; +} diff --git a/bsp/wch/risc-v/Libraries/Kconfig b/bsp/wch/risc-v/Libraries/Kconfig new file mode 100644 index 0000000000..6482c47a1d --- /dev/null +++ b/bsp/wch/risc-v/Libraries/Kconfig @@ -0,0 +1,8 @@ +config SOC_RISCV_FAMILY_CH32 + bool + +config SOC_RISCV_SERIES_CH32V103 + bool + select ARCH_RISCV + select SOC_RISCV_FAMILY_CH32 + \ No newline at end of file diff --git a/bsp/wch/risc-v/Libraries/ch32_drivers/SConscript b/bsp/wch/risc-v/Libraries/ch32_drivers/SConscript new file mode 100644 index 0000000000..fbecf69d47 --- /dev/null +++ b/bsp/wch/risc-v/Libraries/ch32_drivers/SConscript @@ -0,0 +1,29 @@ +Import('RTT_ROOT') +Import('rtconfig') +from building import * + +cwd = GetCurrentDir() + +# add the general drivers. +src = Split(""" +""") + + +if GetDepend('SOC_RISCV_SERIES_CH32V103'): + + if GetDepend('RT_USING_PIN'): + src += ['drv_gpio.c'] + + if GetDepend(['RT_USING_SERIAL', 'BSP_USING_UART']): + src += ['drv_usart.c'] + + + + + +path = [cwd] + + +group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path) + +Return('group') diff --git a/bsp/wch/risc-v/Libraries/ch32_drivers/drv_gpio.c b/bsp/wch/risc-v/Libraries/ch32_drivers/drv_gpio.c new file mode 100644 index 0000000000..1d27521f74 --- /dev/null +++ b/bsp/wch/risc-v/Libraries/ch32_drivers/drv_gpio.c @@ -0,0 +1,776 @@ +/* + * Copyright (c) 2006-2022, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2017-10-20 ZYH the first version + * 2017-11-15 ZYH update to 3.0.0 + */ + +#include +#include +#include +#include +#include "drivers/pin.h" + + +#ifdef RT_USING_PIN +#define __CH32_PIN(index, gpio, gpio_index) {index, GPIO##gpio##_CLK_ENABLE, GPIO##gpio, GPIO_Pin_##gpio_index} +#define __CH32_PIN_DEFAULT {-1, 0, 0, 0} + +#define PIN_MODE_INPUT_AIN 0x05 +#define PIN_MODE_OUTPUT_AF_OD 0x06 +#define PIN_MODE_OUTPUT_AF_PP 0x07 + +static void GPIOA_CLK_ENABLE(void) +{ + RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); +} + +static void GPIOB_CLK_ENABLE(void) +{ + RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); +} + +#if (CH32V10X_PIN_NUMBERS >36) +static void GPIOC_CLK_ENABLE(void) +{ + RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); +} +#endif + +#if (CH32V10X_PIN_NUMBERS >48) +static void GPIOD_CLK_ENABLE(void) +{ + RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE); +} +#endif + +#if (CH32V10X_PIN_NUMBERS >64) +static void GPIOE_CLK_ENABLE(void) +{ + RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE); +} +#endif + + + + + +/* STM32 GPIO driver */ +struct pin_index +{ + int index; + void (*rcc)(void); + GPIO_TypeDef *gpio; + uint32_t pin; +}; + +static const struct pin_index pins[] = +{ +#if (CH32V10X_PIN_NUMBERS == 36) + __CH32_PIN_DEFAULT, + __CH32_PIN_DEFAULT, + __CH32_PIN_DEFAULT, + __CH32_PIN_DEFAULT, + __CH32_PIN_DEFAULT, + __CH32_PIN_DEFAULT, + __CH32_PIN_DEFAULT, + __CH32_PIN(7, A, 0), + __CH32_PIN(8, A, 1), + __CH32_PIN(9, A, 2), + __CH32_PIN(10, A, 3), + __CH32_PIN(11, A, 4), + __CH32_PIN(12, A, 5), + __CH32_PIN(13, A, 6), + __CH32_PIN(14, A, 7), + __CH32_PIN(15, B, 0), + __CH32_PIN(16, B, 1), + __CH32_PIN(17, B, 2), + __CH32_PIN_DEFAULT, + __CH32_PIN_DEFAULT, + __CH32_PIN(20, A, 8), + __CH32_PIN(21, A, 9), + __CH32_PIN(22, A, 10), + __CH32_PIN(23, A, 11), + __CH32_PIN(24, A, 12), + __CH32_PIN(25, A, 13), + __CH32_PIN_DEFAULT, + __CH32_PIN_DEFAULT, + __CH32_PIN(28, A, 14), + __CH32_PIN(29, A, 15), + __CH32_PIN(30, B, 3), + __CH32_PIN(31, B, 4), + __CH32_PIN(32, B, 5), + __CH32_PIN(33, B, 6), + __CH32_PIN(34, B, 7), + __CH32_PIN_DEFAULT, + __CH32_PIN_DEFAULT, +#endif +#if (CH32V10X_PIN_NUMBERS == 48) + __CH32_PIN_DEFAULT, + __CH32_PIN_DEFAULT, + __CH32_PIN(2, C, 13), + __CH32_PIN(3, C, 14), + __CH32_PIN(4, C, 15), + __CH32_PIN_DEFAULT, + __CH32_PIN_DEFAULT, + __CH32_PIN_DEFAULT, + __CH32_PIN_DEFAULT, + __CH32_PIN_DEFAULT, + __CH32_PIN(10, A, 0), + __CH32_PIN(11, A, 1), + __CH32_PIN(12, A, 2), + __CH32_PIN(13, A, 3), + __CH32_PIN(14, A, 4), + __CH32_PIN(15, A, 5), + __CH32_PIN(16, A, 6), + __CH32_PIN(17, A, 7), + __CH32_PIN(18, B, 0), + __CH32_PIN(19, B, 1), + __CH32_PIN(20, B, 2), + __CH32_PIN(21, B, 10), + __CH32_PIN(22, B, 11), + __CH32_PIN_DEFAULT, + __CH32_PIN_DEFAULT, + __CH32_PIN(25, B, 12), + __CH32_PIN(26, B, 13), + __CH32_PIN(27, B, 14), + __CH32_PIN(28, B, 15), + __CH32_PIN(29, A, 8), + __CH32_PIN(30, A, 9), + __CH32_PIN(31, A, 10), + __CH32_PIN(32, A, 11), + __CH32_PIN(33, A, 12), + __CH32_PIN(34, A, 13), + __CH32_PIN_DEFAULT, + __CH32_PIN_DEFAULT, + __CH32_PIN(37, A, 14), + __CH32_PIN(38, A, 15), + __CH32_PIN(39, B, 3), + __CH32_PIN(40, B, 4), + __CH32_PIN(41, B, 5), + __CH32_PIN(42, B, 6), + __CH32_PIN(43, B, 7), + __CH32_PIN_DEFAULT, + __CH32_PIN(45, B, 8), + __CH32_PIN(46, B, 9), + __CH32_PIN_DEFAULT, + __CH32_PIN_DEFAULT, +#endif + +#if (CH32V10X_PIN_NUMBERS == 64) + __CH32_PIN_DEFAULT, + __CH32_PIN_DEFAULT, + __CH32_PIN(2, C, 13), + __CH32_PIN(3, C, 14), + __CH32_PIN(4, C, 15), + __CH32_PIN(5, D, 0), + __CH32_PIN(6, D, 1), + __CH32_PIN_DEFAULT, + __CH32_PIN(8, C, 0), + __CH32_PIN(9, C, 1), + __CH32_PIN(10, C, 2), + __CH32_PIN(11, C, 3), + __CH32_PIN_DEFAULT, + __CH32_PIN_DEFAULT, + __CH32_PIN(14, A, 0), + __CH32_PIN(15, A, 1), + __CH32_PIN(16, A, 2), + __CH32_PIN(17, A, 3), + __CH32_PIN_DEFAULT, + __CH32_PIN_DEFAULT, + __CH32_PIN(20, A, 4), + __CH32_PIN(21, A, 5), + __CH32_PIN(22, A, 6), + __CH32_PIN(23, A, 7), + __CH32_PIN(24, C, 4), + __CH32_PIN(25, C, 5), + __CH32_PIN(26, B, 0), + __CH32_PIN(27, B, 1), + __CH32_PIN(28, B, 2), + __CH32_PIN(29, B, 10), + __CH32_PIN(30, B, 11), + __CH32_PIN_DEFAULT, + __CH32_PIN_DEFAULT, + __CH32_PIN(33, B, 12), + __CH32_PIN(34, B, 13), + __CH32_PIN(35, B, 14), + __CH32_PIN(36, B, 15), + __CH32_PIN(37, C, 6), + __CH32_PIN(38, C, 7), + __CH32_PIN(39, C, 8), + __CH32_PIN(40, C, 9), + __CH32_PIN(41, A, 8), + __CH32_PIN(42, A, 9), + __CH32_PIN(43, A, 10), + __CH32_PIN(44, A, 11), + __CH32_PIN(45, A, 12), + __CH32_PIN(46, A, 13), + __CH32_PIN_DEFAULT, + __CH32_PIN_DEFAULT, + __CH32_PIN(49, A, 14), + __CH32_PIN(50, A, 15), + __CH32_PIN(51, C, 10), + __CH32_PIN(52, C, 11), + __CH32_PIN(53, C, 12), + __CH32_PIN(54, D, 2), + __CH32_PIN(55, B, 3), + __CH32_PIN(56, B, 4), + __CH32_PIN(57, B, 5), + __CH32_PIN(58, B, 6), + __CH32_PIN(59, B, 7), + __CH32_PIN_DEFAULT, + __CH32_PIN(61, B, 8), + __CH32_PIN(62, B, 9), + __CH32_PIN_DEFAULT, + __CH32_PIN_DEFAULT, +#endif +#if (CH32V10X_PIN_NUMBERS == 100) + __CH32_PIN_DEFAULT, + __CH32_PIN(1, E, 2), + __CH32_PIN(2, E, 3), + __CH32_PIN(3, E, 4), + __CH32_PIN(4, E, 5), + __CH32_PIN(5, E, 6), + __CH32_PIN_DEFAULT, + __CH32_PIN(7, C, 13), + __CH32_PIN(8, C, 14), + __CH32_PIN(9, C, 15), + __CH32_PIN_DEFAULT, + __CH32_PIN_DEFAULT, + __CH32_PIN_DEFAULT, + __CH32_PIN_DEFAULT, + __CH32_PIN_DEFAULT, + __CH32_PIN(15, C, 0), + __CH32_PIN(16, C, 1), + __CH32_PIN(17, C, 2), + __CH32_PIN(18, C, 3), + __CH32_PIN_DEFAULT, + __CH32_PIN_DEFAULT, + __CH32_PIN_DEFAULT, + __CH32_PIN_DEFAULT, + __CH32_PIN(23, A, 0), + __CH32_PIN(24, A, 1), + __CH32_PIN(25, A, 2), + __CH32_PIN(26, A, 3), + __CH32_PIN_DEFAULT, + __CH32_PIN_DEFAULT, + __CH32_PIN(29, A, 4), + __CH32_PIN(30, A, 5), + __CH32_PIN(31, A, 6), + __CH32_PIN(32, A, 7), + __CH32_PIN(33, C, 4), + __CH32_PIN(34, C, 5), + __CH32_PIN(35, B, 0), + __CH32_PIN(36, B, 1), + __CH32_PIN(37, B, 2), + __CH32_PIN(38, E, 7), + __CH32_PIN(39, E, 8), + __CH32_PIN(40, E, 9), + __CH32_PIN(41, E, 10), + __CH32_PIN(42, E, 11), + __CH32_PIN(43, E, 12), + __CH32_PIN(44, E, 13), + __CH32_PIN(45, E, 14), + __CH32_PIN(46, E, 15), + __CH32_PIN(47, B, 10), + __CH32_PIN(48, B, 11), + __CH32_PIN_DEFAULT, + __CH32_PIN_DEFAULT, + __CH32_PIN(51, B, 12), + __CH32_PIN(52, B, 13), + __CH32_PIN(53, B, 14), + __CH32_PIN(54, B, 15), + __CH32_PIN(55, D, 8), + __CH32_PIN(56, D, 9), + __CH32_PIN(57, D, 10), + __CH32_PIN(58, D, 11), + __CH32_PIN(59, D, 12), + __CH32_PIN(60, D, 13), + __CH32_PIN(61, D, 14), + __CH32_PIN(62, D, 15), + __CH32_PIN(63, C, 6), + __CH32_PIN(64, C, 7), + __CH32_PIN(65, C, 8), + __CH32_PIN(66, C, 9), + __CH32_PIN(67, A, 8), + __CH32_PIN(68, A, 9), + __CH32_PIN(69, A, 10), + __CH32_PIN(70, A, 11), + __CH32_PIN(71, A, 12), + __CH32_PIN(72, A, 13), + __CH32_PIN_DEFAULT, + __CH32_PIN_DEFAULT, + __CH32_PIN_DEFAULT, + __CH32_PIN(76, A, 14), + __CH32_PIN(77, A, 15), + __CH32_PIN(78, C, 10), + __CH32_PIN(79, C, 11), + __CH32_PIN(80, C, 12), + __CH32_PIN(81, D, 0), + __CH32_PIN(82, D, 1), + __CH32_PIN(83, D, 2), + __CH32_PIN(84, D, 3), + __CH32_PIN(85, D, 4), + __CH32_PIN(86, D, 5), + __CH32_PIN(87, D, 6), + __CH32_PIN(88, D, 7), + __CH32_PIN(89, B, 3), + __CH32_PIN(90, B, 4), + __CH32_PIN(91, B, 5), + __CH32_PIN(92, B, 6), + __CH32_PIN(93, B, 7), + __CH32_PIN_DEFAULT, + __CH32_PIN(95, B, 8), + __CH32_PIN(96, B, 9), + __CH32_PIN(97, E, 0), + __CH32_PIN(98, E, 1), + __CH32_PIN_DEFAULT, + __CH32_PIN_DEFAULT, +#endif +}; + +struct pin_irq_map +{ + rt_uint16_t pinbit; + IRQn_Type irqno; +}; +static const struct pin_irq_map pin_irq_map[] = +{ + {GPIO_Pin_0, EXTI0_IRQn}, + {GPIO_Pin_1, EXTI1_IRQn}, + {GPIO_Pin_2, EXTI2_IRQn}, + {GPIO_Pin_3, EXTI3_IRQn}, + {GPIO_Pin_4, EXTI4_IRQn}, + {GPIO_Pin_5, EXTI9_5_IRQn}, + {GPIO_Pin_6, EXTI9_5_IRQn}, + {GPIO_Pin_7, EXTI9_5_IRQn}, + {GPIO_Pin_8, EXTI9_5_IRQn}, + {GPIO_Pin_9, EXTI9_5_IRQn}, + {GPIO_Pin_10, EXTI15_10_IRQn}, + {GPIO_Pin_11, EXTI15_10_IRQn}, + {GPIO_Pin_12, EXTI15_10_IRQn}, + {GPIO_Pin_13, EXTI15_10_IRQn}, + {GPIO_Pin_14, EXTI15_10_IRQn}, + {GPIO_Pin_15, EXTI15_10_IRQn}, +}; +struct rt_pin_irq_hdr pin_irq_hdr_tab[] = +{ + { -1, 0, RT_NULL, RT_NULL}, + { -1, 0, RT_NULL, RT_NULL}, + { -1, 0, RT_NULL, RT_NULL}, + { -1, 0, RT_NULL, RT_NULL}, + { -1, 0, RT_NULL, RT_NULL}, + { -1, 0, RT_NULL, RT_NULL}, + { -1, 0, RT_NULL, RT_NULL}, + { -1, 0, RT_NULL, RT_NULL}, + { -1, 0, RT_NULL, RT_NULL}, + { -1, 0, RT_NULL, RT_NULL}, + { -1, 0, RT_NULL, RT_NULL}, + { -1, 0, RT_NULL, RT_NULL}, + { -1, 0, RT_NULL, RT_NULL}, + { -1, 0, RT_NULL, RT_NULL}, + { -1, 0, RT_NULL, RT_NULL}, + { -1, 0, RT_NULL, RT_NULL}, +}; + +#define ITEM_NUM(items) sizeof(items) / sizeof(items[0]) +const struct pin_index *get_pin(uint8_t pin) +{ + const struct pin_index *index; + if (pin < ITEM_NUM(pins)) + { + index = &pins[pin]; + if (index->index == -1) + index = RT_NULL; + } + else + { + index = RT_NULL; + } + return index; +}; + +void ch32_pin_write(rt_device_t dev, rt_base_t pin, rt_base_t value) +{ + const struct pin_index *index; + index = get_pin(pin); + if (index == RT_NULL) + { + return; + } + GPIO_WriteBit(index->gpio, index->pin, (BitAction)value); +} + +int ch32_pin_read(rt_device_t dev, rt_base_t pin) +{ + int value; + const struct pin_index *index; + value = PIN_LOW; + index = get_pin(pin); + if (index == RT_NULL) + { + return value; + } + value = GPIO_ReadInputDataBit(index->gpio, index->pin); + return value; +} + +void ch32_pin_mode(rt_device_t dev, rt_base_t pin, rt_base_t mode) +{ + const struct pin_index *index; + GPIO_InitTypeDef GPIO_InitStruct; + index = get_pin(pin); + if (index == RT_NULL) + { + return; + } + rt_kprintf("get pin index\r\n"); + /* GPIO Periph clock enable */ + index->rcc(); + /* Configure GPIO_InitStructure */ + GPIO_InitStruct.GPIO_Pin = index->pin; + GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP; + GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; + if (mode == PIN_MODE_OUTPUT) + { + /* output setting */ + GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP; + } + else if (mode == PIN_MODE_INPUT_AIN) + { + /* input setting: not pull. */ + GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AIN; + } + else if (mode == PIN_MODE_INPUT) + { + /* input setting: pull up. */ + GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN_FLOATING; + } + else if (mode == PIN_MODE_INPUT_PULLDOWN) + { + /* input setting: pull down. */ + GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IPD; +// GPIO_InitStruct.Pull = GPIO_PULLDOWN; + } + else if (mode == PIN_MODE_INPUT_PULLUP) + { + /* output setting: od. */ + GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IPU; +// GPIO_InitStruct.Pull = GPIO_NOPULL; + } + else if (mode == PIN_MODE_OUTPUT_OD) + { + GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_OD; + } + else if (mode == PIN_MODE_OUTPUT_AF_OD) + { + GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_OD; + } + else if (mode == PIN_MODE_OUTPUT_AF_PP) + { + GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP; + } + + GPIO_Init(index->gpio, &GPIO_InitStruct); +} + + +rt_inline rt_int32_t bit2bitno(rt_uint32_t bit) +{ + int i; + for (i = 0; i < 32; i++) + { + if ((0x01 << i) == bit) + { + return i; + } + } + return -1; +} + +rt_inline const struct pin_irq_map *get_pin_irq_map(uint32_t pinbit) +{ + rt_int32_t mapindex = bit2bitno(pinbit); + if (mapindex < 0 || mapindex >= ITEM_NUM(pin_irq_map)) + { + return RT_NULL; + } + return &pin_irq_map[mapindex]; +}; +rt_err_t ch32_pin_attach_irq(struct rt_device *device, rt_int32_t pin, + rt_uint32_t mode, void (*hdr)(void *args), void *args) +{ + const struct pin_index *index; + rt_base_t level; + rt_int32_t irqindex = -1; + index = get_pin(pin); + if (index == RT_NULL) + { + return RT_ENOSYS; + } + irqindex = bit2bitno(index->pin); + if (irqindex < 0 || irqindex >= ITEM_NUM(pin_irq_map)) + { + return RT_ENOSYS; + } + level = rt_hw_interrupt_disable(); + if (pin_irq_hdr_tab[irqindex].pin == pin && + pin_irq_hdr_tab[irqindex].hdr == hdr && + pin_irq_hdr_tab[irqindex].mode == mode && + pin_irq_hdr_tab[irqindex].args == args) + { + rt_hw_interrupt_enable(level); + return RT_EOK; + } + if (pin_irq_hdr_tab[irqindex].pin != -1) + { + rt_hw_interrupt_enable(level); + return RT_EBUSY; + } + pin_irq_hdr_tab[irqindex].pin = pin; + pin_irq_hdr_tab[irqindex].hdr = hdr; + pin_irq_hdr_tab[irqindex].mode = mode; + pin_irq_hdr_tab[irqindex].args = args; + rt_hw_interrupt_enable(level); + return RT_EOK; +} + +rt_err_t ch32_pin_dettach_irq(struct rt_device *device, rt_int32_t pin) +{ + const struct pin_index *index; + rt_base_t level; + rt_int32_t irqindex = -1; + index = get_pin(pin); + if (index == RT_NULL) + { + return RT_ENOSYS; + } + irqindex = bit2bitno(index->pin); + if (irqindex < 0 || irqindex >= ITEM_NUM(pin_irq_map)) + { + return RT_ENOSYS; + } + level = rt_hw_interrupt_disable(); + if (pin_irq_hdr_tab[irqindex].pin == -1) + { + rt_hw_interrupt_enable(level); + return RT_EOK; + } + pin_irq_hdr_tab[irqindex].pin = -1; + pin_irq_hdr_tab[irqindex].hdr = RT_NULL; + pin_irq_hdr_tab[irqindex].mode = 0; + pin_irq_hdr_tab[irqindex].args = RT_NULL; + rt_hw_interrupt_enable(level); + return RT_EOK; +} + +rt_err_t ch32_pin_irq_enable(struct rt_device *device, rt_base_t pin, + rt_uint32_t enabled) +{ + const struct pin_index *index; + const struct pin_irq_map *irqmap; + rt_base_t level; + rt_int32_t irqindex = -1; + GPIO_InitTypeDef GPIO_InitStruct; + EXTI_InitTypeDef EXTI_InitStructure; + + index = get_pin(pin); + if (index == RT_NULL) + { + return RT_ENOSYS; + } + if (enabled == PIN_IRQ_ENABLE) + { + irqindex = bit2bitno(index->pin); + if (irqindex < 0 || irqindex >= ITEM_NUM(pin_irq_map)) + { + return RT_ENOSYS; + } + level = rt_hw_interrupt_disable(); + if (pin_irq_hdr_tab[irqindex].pin == -1) + { + rt_hw_interrupt_enable(level); + return RT_ENOSYS; + } + irqmap = &pin_irq_map[irqindex]; + /* GPIO Periph clock enable */ + index->rcc(); + RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); + + /* Configure GPIO_InitStructure */ + GPIO_InitStruct.GPIO_Pin = index->pin; + GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; + + EXTI_InitStructure.EXTI_Line=index->pin;/* �ⲿ�ж��ߺ����źŶ�Ӧ */ + EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; + EXTI_InitStructure.EXTI_LineCmd = ENABLE; + switch (pin_irq_hdr_tab[irqindex].mode) + { + case PIN_IRQ_MODE_RISING: + GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IPD; + EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; + break; + case PIN_IRQ_MODE_FALLING: + GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IPU; + EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; + break; + case PIN_IRQ_MODE_RISING_FALLING: + GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN_FLOATING; + EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling; + break; + } + + GPIO_Init(index->gpio, &GPIO_InitStruct); + EXTI_Init(&EXTI_InitStructure); + NVIC_SetPriority(irqmap->irqno,5<<4); + NVIC_EnableIRQ( irqmap->irqno ); + + rt_hw_interrupt_enable(level); + } + else if (enabled == PIN_IRQ_DISABLE) + { + irqmap = get_pin_irq_map(index->pin); + if (irqmap == RT_NULL) + { + return RT_ENOSYS; + } + NVIC_DisableIRQ(irqmap->irqno); + } + else + { + return RT_ENOSYS; + } + return RT_EOK; +} + +const static struct rt_pin_ops _ch32_pin_ops = +{ + ch32_pin_mode, + ch32_pin_write, + ch32_pin_read, + ch32_pin_attach_irq, + ch32_pin_dettach_irq, + ch32_pin_irq_enable, +}; + +int rt_hw_pin_init(void) +{ + int result; + result = rt_device_pin_register("pin", &_ch32_pin_ops, RT_NULL); + return result; +} +INIT_BOARD_EXPORT(rt_hw_pin_init); + +rt_inline void pin_irq_hdr(int irqno) +{ + if (pin_irq_hdr_tab[irqno].hdr) + { + pin_irq_hdr_tab[irqno].hdr(pin_irq_hdr_tab[irqno].args); + } +} + +void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) +{ + pin_irq_hdr(bit2bitno(GPIO_Pin)); +} + + +void EXTI0_IRQHandler(void) __attribute__((interrupt())); +void EXTI1_IRQHandler(void) __attribute__((interrupt())); +void EXTI3_IRQHandler(void) __attribute__((interrupt())); +void EXTI4_IRQHandler(void) __attribute__((interrupt())); +void EXTI9_5_IRQHandler(void) __attribute__((interrupt())); + +void EXTI0_IRQHandler(void) +{ + GET_INT_SP(); + rt_interrupt_enter(); + + if(EXTI_GetITStatus(EXTI_Line0)!=RESET) + { + HAL_GPIO_EXTI_Callback(GPIO_Pin_0); + EXTI_ClearITPendingBit(EXTI_Line0); + } + + rt_interrupt_leave(); + FREE_INT_SP(); +} + +void EXTI1_IRQHandler(void) +{ + GET_INT_SP(); + rt_interrupt_enter(); + if(EXTI_GetITStatus(EXTI_Line1)!=RESET) + { + HAL_GPIO_EXTI_Callback(GPIO_Pin_1); + EXTI_ClearITPendingBit(EXTI_Line1); + } + rt_interrupt_leave(); + FREE_INT_SP(); +} + +void EXTI2_IRQHandler(void) +{ + GET_INT_SP(); + rt_interrupt_enter(); + if(EXTI_GetITStatus(EXTI_Line2)!=RESET) + { + HAL_GPIO_EXTI_Callback(GPIO_Pin_2); + EXTI_ClearITPendingBit(EXTI_Line2); + } + rt_interrupt_leave(); + FREE_INT_SP(); +} + +void EXTI3_IRQHandler(void) +{ + GET_INT_SP(); + rt_interrupt_enter(); + if(EXTI_GetITStatus(EXTI_Line3)!=RESET) + { + HAL_GPIO_EXTI_Callback(GPIO_Pin_3); + EXTI_ClearITPendingBit(EXTI_Line3); + } + rt_interrupt_leave(); + FREE_INT_SP(); +} + +void EXTI4_IRQHandler(void) +{ + GET_INT_SP(); + rt_interrupt_enter(); + if(EXTI_GetITStatus(EXTI_Line4)!=RESET) + { + HAL_GPIO_EXTI_Callback(GPIO_Pin_4); + EXTI_ClearITPendingBit(EXTI_Line4); + } + rt_interrupt_leave(); + FREE_INT_SP(); +} + +void EXTI9_5_IRQHandler(void) +{ + GET_INT_SP(); + rt_interrupt_enter(); + if( (EXTI_GetITStatus(EXTI_Line5)!=RESET)|| \ + (EXTI_GetITStatus(EXTI_Line6)!=RESET)|| \ + (EXTI_GetITStatus(EXTI_Line7)!=RESET)|| \ + (EXTI_GetITStatus(EXTI_Line8)!=RESET)|| \ + (EXTI_GetITStatus(EXTI_Line9)!=RESET) ) + { + HAL_GPIO_EXTI_Callback(GPIO_Pin_5); + HAL_GPIO_EXTI_Callback(GPIO_Pin_6); + HAL_GPIO_EXTI_Callback(GPIO_Pin_7); + HAL_GPIO_EXTI_Callback(GPIO_Pin_8); + HAL_GPIO_EXTI_Callback(GPIO_Pin_9); + EXTI_ClearITPendingBit(EXTI_Line5|EXTI_Line6|EXTI_Line7|EXTI_Line8|EXTI_Line9); + } + rt_interrupt_leave(); + FREE_INT_SP(); +} + +#endif diff --git a/bsp/wch/risc-v/Libraries/ch32_drivers/drv_gpio.h b/bsp/wch/risc-v/Libraries/ch32_drivers/drv_gpio.h new file mode 100644 index 0000000000..f0e61e9dfc --- /dev/null +++ b/bsp/wch/risc-v/Libraries/ch32_drivers/drv_gpio.h @@ -0,0 +1,16 @@ +/* + * Copyright (c) 2006-2022, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2021-08-10 charlown first version + */ + +#ifndef DRV_GPIO_H__ +#define DRV_GPIO_H__ + +int rt_hw_pin_init(void); + +#endif diff --git a/bsp/wch/risc-v/Libraries/ch32_drivers/drv_usart.c b/bsp/wch/risc-v/Libraries/ch32_drivers/drv_usart.c new file mode 100644 index 0000000000..73f2ad09a7 --- /dev/null +++ b/bsp/wch/risc-v/Libraries/ch32_drivers/drv_usart.c @@ -0,0 +1,253 @@ +/* + * Copyright (c) 2006-2022, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2009-01-05 Bernard the first version + * 2010-03-29 Bernard remove interrupt Tx and DMA Rx mode + * 2013-05-13 aozima update for kehong-lingtai. + * 2015-01-31 armink make sure the serial transmit complete in putc() + * 2016-05-13 armink add DMA Rx mode + * 2017-01-19 aubr.cool add interrupt Tx mode + * 2017-04-13 aubr.cool correct Rx parity err + * 2017-10-20 ZYH porting to HAL Libraries(with out DMA) + * 2017-11-15 ZYH update to 3.0.0 + */ + +#include "board.h" +#include +#include + +/* uart driver */ +struct ch32_uart +{ + USART_InitTypeDef huart; + USART_TypeDef *USARTx; + IRQn_Type irq; +}; + +static rt_err_t ch32_configure(struct rt_serial_device *serial, struct serial_configure *cfg) +{ + struct ch32_uart *uart; + RT_ASSERT(serial != RT_NULL); + RT_ASSERT(cfg != RT_NULL); + uart = (struct ch32_uart *)serial->parent.user_data; + uart->huart.USART_BaudRate = cfg->baud_rate; + uart->huart.USART_HardwareFlowControl = USART_HardwareFlowControl_None; + uart->huart.USART_Mode = USART_Mode_Rx|USART_Mode_Tx; + + switch (cfg->data_bits) + { + case DATA_BITS_8: + uart->huart.USART_WordLength = USART_WordLength_8b; + break; + case DATA_BITS_9: + uart->huart.USART_WordLength = USART_WordLength_9b; + break; + default: + uart->huart.USART_WordLength = USART_WordLength_8b; + break; + } + switch (cfg->stop_bits) + { + case STOP_BITS_1: + uart->huart.USART_StopBits = USART_StopBits_1; + break; + case STOP_BITS_2: + uart->huart.USART_StopBits = USART_StopBits_2; + break; + default: + uart->huart.USART_StopBits = USART_StopBits_1; + break; + } + switch (cfg->parity) + { + case PARITY_NONE: + uart->huart.USART_Parity = USART_Parity_No; + break; + case PARITY_ODD: + uart->huart.USART_Parity = USART_Parity_Odd; + break; + case PARITY_EVEN: + uart->huart.USART_Parity = USART_Parity_Even; + break; + default: + uart->huart.USART_Parity = USART_Parity_No; + break; + } + + if(uart->USARTx == USART1) + { + GPIO_InitTypeDef GPIO_InitStructure; + RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE); + GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; + GPIO_Init(GPIOA, &GPIO_InitStructure); + GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; + GPIO_Init(GPIOA, &GPIO_InitStructure); + USART_Init(uart->USARTx,&uart->huart); + USART_Cmd(uart->USARTx, ENABLE); + } + + return RT_EOK; +} + +static rt_err_t ch32_control(struct rt_serial_device *serial, int cmd, void *arg) +{ + struct ch32_uart *uart; + RT_ASSERT(serial != RT_NULL); + uart = (struct ch32_uart *)serial->parent.user_data; + switch (cmd) + { + /* disable interrupt */ + case RT_DEVICE_CTRL_CLR_INT: + /* disable rx irq */ + NVIC_DisableIRQ(uart->irq); + /* disable interrupt */ + USART_ITConfig(uart->USARTx,USART_IT_RXNE,DISABLE); + break; + /* enable interrupt */ + case RT_DEVICE_CTRL_SET_INT: + /* enable rx irq */ + NVIC_EnableIRQ(uart->irq); + /* enable interrupt */ + USART_ITConfig(uart->USARTx, USART_IT_RXNE,ENABLE); + break; + } + return RT_EOK; +} + +static int ch32_putc(struct rt_serial_device *serial, char c) +{ + struct ch32_uart *uart; + RT_ASSERT(serial != RT_NULL); + uart = (struct ch32_uart *)serial->parent.user_data; + while (USART_GetFlagStatus(uart->USARTx, USART_FLAG_TC) == RESET); + uart->USARTx->DATAR = c; + return 1; +} + +static int ch32_getc(struct rt_serial_device *serial) +{ + int ch; + struct ch32_uart *uart; + RT_ASSERT(serial != RT_NULL); + uart = (struct ch32_uart *)serial->parent.user_data; + ch = -1; + if (USART_GetFlagStatus(uart->USARTx, USART_FLAG_RXNE) != RESET) + { + ch = uart->USARTx->DATAR & 0xff; + } + return ch; +} + + +rt_size_t ch32dma_transmit(struct rt_serial_device *serial, rt_uint8_t *buf, rt_size_t size, int direction) +{ + return RT_EOK; +} + + +/** + * Uart common interrupt process. This need add to uart ISR. + * + * @param serial serial device + */ +static void uart_isr(struct rt_serial_device *serial) +{ + struct ch32_uart *uart = (struct ch32_uart *) serial->parent.user_data; + RT_ASSERT(uart != RT_NULL); + if (USART_GetITStatus(uart->USARTx, USART_IT_RXNE) != RESET) + { + rt_hw_serial_isr(serial, RT_SERIAL_EVENT_RX_IND); + USART_ClearITPendingBit(uart->USARTx, USART_IT_RXNE); + } +} + +static const struct rt_uart_ops ch32_uart_ops = +{ + ch32_configure, + ch32_control, + ch32_putc, + ch32_getc, + ch32dma_transmit +}; + +#if defined(BSP_USING_UART1) +/* UART1 device driver structure */ +struct ch32_uart uart1; +struct rt_serial_device serial1; + + + +void USART1_IRQHandler(void) __attribute__((interrupt())); +void USART1_IRQHandler(void) +{ + GET_INT_SP(); + /* enter interrupt */ + rt_interrupt_enter(); + + uart_isr(&serial1); + + /* leave interrupt */ + rt_interrupt_leave(); + + FREE_INT_SP(); +} +#endif /* BSP_USING_UART1 */ + + + + +int rt_hw_usart_init(void) +{ + struct ch32_uart *uart; + struct serial_configure config = RT_SERIAL_CONFIG_DEFAULT; + +#if defined(BSP_USING_UART1) + uart=&uart1; + uart->irq=USART1_IRQn; + uart->USARTx=USART1; + + config.baud_rate = BAUD_RATE_115200; + serial1.ops = &ch32_uart_ops; + serial1.config = config; + + uart->huart.USART_BaudRate = 115200; + uart->huart.USART_HardwareFlowControl = USART_HardwareFlowControl_None; + uart->huart.USART_Mode = USART_Mode_Rx|USART_Mode_Tx; + uart->huart.USART_WordLength = USART_WordLength_8b; + uart->huart.USART_StopBits = USART_StopBits_1; + uart->huart.USART_Parity = USART_Parity_No; + + if(uart->USARTx == USART1) + { + GPIO_InitTypeDef GPIO_InitStructure; + RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE); + GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; + GPIO_Init(GPIOA, &GPIO_InitStructure); + GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; + GPIO_Init(GPIOA, &GPIO_InitStructure); + USART_Init(uart->USARTx,&uart->huart); + USART_Cmd(uart->USARTx, ENABLE); + } + + /* register UART1 device */ + rt_hw_serial_register(&serial1, "uart1", + RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX, + uart); +#endif /* BSP_USING_UART1 */ + + return 0; +} +INIT_BOARD_EXPORT(rt_hw_usart_init); + diff --git a/bsp/wch/risc-v/Libraries/ch32_drivers/drv_usart.h b/bsp/wch/risc-v/Libraries/ch32_drivers/drv_usart.h new file mode 100644 index 0000000000..3d0c0dd3b1 --- /dev/null +++ b/bsp/wch/risc-v/Libraries/ch32_drivers/drv_usart.h @@ -0,0 +1,16 @@ +/* + * Copyright (c) 2006-2022, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2009-01-05 Bernard the first version + */ +#ifndef __USART_H__ +#define __USART_H__ +#include "rthw.h" +#include "rtthread.h" + +int rt_hw_usart_init(void); +#endif diff --git a/bsp/wch/risc-v/ch32v103r-evt/.config b/bsp/wch/risc-v/ch32v103r-evt/.config new file mode 100644 index 0000000000..fadc7bbca2 --- /dev/null +++ b/bsp/wch/risc-v/ch32v103r-evt/.config @@ -0,0 +1,653 @@ +# +# Automatically generated file; DO NOT EDIT. +# RT-Thread Configuration +# + +# +# RT-Thread Kernel +# +CONFIG_RT_NAME_MAX=8 +# CONFIG_RT_USING_ARCH_DATA_TYPE is not set +# CONFIG_RT_USING_SMP is not set +CONFIG_RT_ALIGN_SIZE=4 +# CONFIG_RT_THREAD_PRIORITY_8 is not set +CONFIG_RT_THREAD_PRIORITY_32=y +# CONFIG_RT_THREAD_PRIORITY_256 is not set +CONFIG_RT_THREAD_PRIORITY_MAX=32 +CONFIG_RT_TICK_PER_SECOND=1000 +# CONFIG_RT_USING_OVERFLOW_CHECK is not set +CONFIG_RT_USING_HOOK=y +CONFIG_RT_HOOK_USING_FUNC_PTR=y +CONFIG_RT_USING_IDLE_HOOK=y +CONFIG_RT_IDLE_HOOK_LIST_SIZE=4 +CONFIG_IDLE_THREAD_STACK_SIZE=256 +CONFIG_RT_USING_TIMER_SOFT=y +CONFIG_RT_TIMER_THREAD_PRIO=4 +CONFIG_RT_TIMER_THREAD_STACK_SIZE=512 + +# +# kservice optimization +# +# CONFIG_RT_KSERVICE_USING_STDLIB is not set +# CONFIG_RT_KSERVICE_USING_TINY_SIZE is not set +# CONFIG_RT_USING_TINY_FFS is not set +# CONFIG_RT_PRINTF_LONGLONG is not set +# CONFIG_RT_DEBUG is not set + +# +# Inter-Thread communication +# +CONFIG_RT_USING_SEMAPHORE=y +CONFIG_RT_USING_MUTEX=y +CONFIG_RT_USING_EVENT=y +CONFIG_RT_USING_MAILBOX=y +CONFIG_RT_USING_MESSAGEQUEUE=y +# CONFIG_RT_USING_SIGNALS is not set + +# +# Memory Management +# +# CONFIG_RT_USING_MEMPOOL is not set +CONFIG_RT_USING_SMALL_MEM=y +# CONFIG_RT_USING_SLAB is not set +# CONFIG_RT_USING_MEMHEAP is not set +CONFIG_RT_USING_SMALL_MEM_AS_HEAP=y +# CONFIG_RT_USING_MEMHEAP_AS_HEAP is not set +# CONFIG_RT_USING_SLAB_AS_HEAP is not set +# CONFIG_RT_USING_USERHEAP is not set +# CONFIG_RT_USING_NOHEAP is not set +# CONFIG_RT_USING_MEMTRACE is not set +# CONFIG_RT_USING_HEAP_ISR is not set +CONFIG_RT_USING_HEAP=y + +# +# Kernel Device Object +# +CONFIG_RT_USING_DEVICE=y +# CONFIG_RT_USING_DEVICE_OPS is not set +# CONFIG_RT_USING_INTERRUPT_INFO is not set +CONFIG_RT_USING_CONSOLE=y +CONFIG_RT_CONSOLEBUF_SIZE=128 +CONFIG_RT_CONSOLE_DEVICE_NAME="uart1" +CONFIG_RT_VER_NUM=0x40100 +# CONFIG_RT_USING_CPU_FFS is not set +CONFIG_ARCH_RISCV=y +# CONFIG_ARCH_CPU_STACK_GROWS_UPWARD is not set + +# +# RT-Thread Components +# +CONFIG_RT_USING_COMPONENTS_INIT=y +CONFIG_RT_USING_USER_MAIN=y +CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048 +CONFIG_RT_MAIN_THREAD_PRIORITY=10 +# CONFIG_RT_USING_LEGACY is not set +CONFIG_RT_USING_MSH=y +CONFIG_RT_USING_FINSH=y +CONFIG_FINSH_USING_MSH=y +CONFIG_FINSH_THREAD_NAME="tshell" +CONFIG_FINSH_THREAD_PRIORITY=20 +CONFIG_FINSH_THREAD_STACK_SIZE=1024 +CONFIG_FINSH_USING_HISTORY=y +CONFIG_FINSH_HISTORY_LINES=5 +CONFIG_FINSH_USING_SYMTAB=y +CONFIG_FINSH_CMD_SIZE=80 +CONFIG_MSH_USING_BUILT_IN_COMMANDS=y +CONFIG_FINSH_USING_DESCRIPTION=y +# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set +# CONFIG_FINSH_USING_AUTH is not set +CONFIG_FINSH_ARG_MAX=10 +# CONFIG_RT_USING_DFS is not set +# CONFIG_RT_USING_FAL is not set + +# +# Device Drivers +# +CONFIG_RT_USING_DEVICE_IPC=y +# CONFIG_RT_USING_SYSTEM_WORKQUEUE is not set +CONFIG_RT_USING_SERIAL=y +CONFIG_RT_USING_SERIAL_V1=y +# CONFIG_RT_USING_SERIAL_V2 is not set +# CONFIG_RT_SERIAL_USING_DMA is not set +CONFIG_RT_SERIAL_RB_BUFSZ=64 +# CONFIG_RT_USING_CAN is not set +# CONFIG_RT_USING_HWTIMER is not set +# CONFIG_RT_USING_CPUTIME is not set +# CONFIG_RT_USING_I2C is not set +# CONFIG_RT_USING_PHY is not set +CONFIG_RT_USING_PIN=y +# CONFIG_RT_USING_ADC is not set +# CONFIG_RT_USING_DAC is not set +# CONFIG_RT_USING_PWM is not set +# CONFIG_RT_USING_MTD_NOR is not set +# CONFIG_RT_USING_MTD_NAND is not set +# CONFIG_RT_USING_PM is not set +# CONFIG_RT_USING_RTC is not set +# CONFIG_RT_USING_SDIO is not set +# CONFIG_RT_USING_SPI is not set +# CONFIG_RT_USING_WDT is not set +# CONFIG_RT_USING_AUDIO is not set +# CONFIG_RT_USING_SENSOR is not set +# CONFIG_RT_USING_TOUCH is not set +# CONFIG_RT_USING_HWCRYPTO is not set +# CONFIG_RT_USING_PULSE_ENCODER is not set +# CONFIG_RT_USING_INPUT_CAPTURE is not set +# CONFIG_RT_USING_WIFI is not set + +# +# Using USB +# +# CONFIG_RT_USING_USB is not set +# CONFIG_RT_USING_USB_HOST is not set +# CONFIG_RT_USING_USB_DEVICE is not set + +# +# C/C++ and POSIX layer +# +CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8 + +# +# POSIX (Portable Operating System Interface) layer +# +# CONFIG_RT_USING_POSIX_FS is not set +# CONFIG_RT_USING_POSIX_DELAY is not set +# CONFIG_RT_USING_POSIX_CLOCK is not set +# CONFIG_RT_USING_POSIX_TIMER is not set +# CONFIG_RT_USING_PTHREADS is not set +# CONFIG_RT_USING_MODULE is not set + +# +# Interprocess Communication (IPC) +# +# CONFIG_RT_USING_POSIX_PIPE is not set +# CONFIG_RT_USING_POSIX_MESSAGE_QUEUE is not set +# CONFIG_RT_USING_POSIX_MESSAGE_SEMAPHORE is not set + +# +# Socket is in the 'Network' category +# +# CONFIG_RT_USING_CPLUSPLUS is not set + +# +# Network +# +# CONFIG_RT_USING_SAL is not set +# CONFIG_RT_USING_NETDEV is not set +# CONFIG_RT_USING_LWIP is not set +# CONFIG_RT_USING_AT is not set + +# +# Utilities +# +# CONFIG_RT_USING_RYM is not set +# CONFIG_RT_USING_ULOG is not set +# CONFIG_RT_USING_UTEST is not set +# CONFIG_RT_USING_VAR_EXPORT is not set +# CONFIG_RT_USING_RT_LINK is not set +# CONFIG_RT_USING_VBUS is not set + +# +# RT-Thread Utestcases +# +# CONFIG_RT_USING_UTESTCASES is not set + +# +# RT-Thread online packages +# + +# +# IoT - internet of things +# +# CONFIG_PKG_USING_LWIP is not set +# CONFIG_PKG_USING_LORAWAN_DRIVER is not set +# CONFIG_PKG_USING_PAHOMQTT is not set +# CONFIG_PKG_USING_UMQTT is not set +# CONFIG_PKG_USING_WEBCLIENT is not set +# CONFIG_PKG_USING_WEBNET is not set +# CONFIG_PKG_USING_MONGOOSE is not set +# CONFIG_PKG_USING_MYMQTT is not set +# CONFIG_PKG_USING_KAWAII_MQTT is not set +# CONFIG_PKG_USING_BC28_MQTT is not set +# CONFIG_PKG_USING_WEBTERMINAL is not set +# CONFIG_PKG_USING_LIBMODBUS is not set +# CONFIG_PKG_USING_FREEMODBUS is not set +# CONFIG_PKG_USING_NANOPB is not set + +# +# Wi-Fi +# + +# +# Marvell WiFi +# +# CONFIG_PKG_USING_WLANMARVELL is not set + +# +# Wiced WiFi +# +# CONFIG_PKG_USING_WLAN_WICED is not set +# CONFIG_PKG_USING_RW007 is not set +# CONFIG_PKG_USING_COAP is not set +# CONFIG_PKG_USING_NOPOLL is not set +# CONFIG_PKG_USING_NETUTILS is not set +# CONFIG_PKG_USING_CMUX is not set +# CONFIG_PKG_USING_PPP_DEVICE is not set +# CONFIG_PKG_USING_AT_DEVICE is not set +# CONFIG_PKG_USING_ATSRV_SOCKET is not set +# CONFIG_PKG_USING_WIZNET is not set +# CONFIG_PKG_USING_ZB_COORDINATOR is not set + +# +# IoT Cloud +# +# CONFIG_PKG_USING_ONENET is not set +# CONFIG_PKG_USING_GAGENT_CLOUD is not set +# CONFIG_PKG_USING_ALI_IOTKIT is not set +# CONFIG_PKG_USING_AZURE is not set +# CONFIG_PKG_USING_TENCENT_IOT_EXPLORER is not set +# CONFIG_PKG_USING_JIOT-C-SDK is not set +# CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set +# CONFIG_PKG_USING_JOYLINK is not set +# CONFIG_PKG_USING_EZ_IOT_OS is not set +# CONFIG_PKG_USING_NIMBLE is not set +# CONFIG_PKG_USING_LLSYNC_SDK_ADAPTER is not set +# CONFIG_PKG_USING_OTA_DOWNLOADER is not set +# CONFIG_PKG_USING_IPMSG is not set +# CONFIG_PKG_USING_LSSDP is not set +# CONFIG_PKG_USING_AIRKISS_OPEN is not set +# CONFIG_PKG_USING_LIBRWS is not set +# CONFIG_PKG_USING_TCPSERVER is not set +# CONFIG_PKG_USING_PROTOBUF_C is not set +# CONFIG_PKG_USING_DLT645 is not set +# CONFIG_PKG_USING_QXWZ is not set +# CONFIG_PKG_USING_SMTP_CLIENT is not set +# CONFIG_PKG_USING_ABUP_FOTA is not set +# CONFIG_PKG_USING_LIBCURL2RTT is not set +# CONFIG_PKG_USING_CAPNP is not set +# CONFIG_PKG_USING_AGILE_TELNET is not set +# CONFIG_PKG_USING_NMEALIB is not set +# CONFIG_PKG_USING_PDULIB is not set +# CONFIG_PKG_USING_BTSTACK is not set +# CONFIG_PKG_USING_LORAWAN_ED_STACK is not set +# CONFIG_PKG_USING_WAYZ_IOTKIT is not set +# CONFIG_PKG_USING_MAVLINK is not set +# CONFIG_PKG_USING_BSAL is not set +# CONFIG_PKG_USING_AGILE_MODBUS is not set +# CONFIG_PKG_USING_AGILE_FTP is not set +# CONFIG_PKG_USING_EMBEDDEDPROTO is not set +# CONFIG_PKG_USING_RT_LINK_HW is not set +# CONFIG_PKG_USING_LORA_PKT_FWD is not set +# CONFIG_PKG_USING_LORA_GW_DRIVER_LIB is not set +# CONFIG_PKG_USING_LORA_PKT_SNIFFER is not set +# CONFIG_PKG_USING_HM is not set +# CONFIG_PKG_USING_SMALL_MODBUS is not set +# CONFIG_PKG_USING_NET_SERVER is not set + +# +# security packages +# +# CONFIG_PKG_USING_MBEDTLS is not set +# CONFIG_PKG_USING_LIBSODIUM is not set +# CONFIG_PKG_USING_TINYCRYPT is not set +# CONFIG_PKG_USING_TFM is not set +# CONFIG_PKG_USING_YD_CRYPTO is not set + +# +# language packages +# + +# +# JSON: JavaScript Object Notation, a lightweight data-interchange format +# +# CONFIG_PKG_USING_CJSON is not set +# CONFIG_PKG_USING_LJSON is not set +# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set +# CONFIG_PKG_USING_RAPIDJSON is not set +# CONFIG_PKG_USING_JSMN is not set +# CONFIG_PKG_USING_AGILE_JSMN is not set + +# +# XML: Extensible Markup Language +# +# CONFIG_PKG_USING_SIMPLE_XML is not set +# CONFIG_PKG_USING_EZXML is not set +# CONFIG_PKG_USING_LUATOS_SOC is not set +# CONFIG_PKG_USING_LUA is not set +# CONFIG_PKG_USING_JERRYSCRIPT is not set +# CONFIG_PKG_USING_MICROPYTHON is not set +# CONFIG_PKG_USING_PIKASCRIPT is not set + +# +# multimedia packages +# + +# +# LVGL: powerful and easy-to-use embedded GUI library +# +# CONFIG_PKG_USING_LVGL is not set +# CONFIG_PKG_USING_LITTLEVGL2RTT is not set +# CONFIG_PKG_USING_LV_MUSIC_DEMO is not set + +# +# u8g2: a monochrome graphic library +# +# CONFIG_PKG_USING_U8G2_OFFICIAL is not set +# CONFIG_PKG_USING_U8G2 is not set +# CONFIG_PKG_USING_OPENMV is not set +# CONFIG_PKG_USING_MUPDF is not set +# CONFIG_PKG_USING_STEMWIN is not set +# CONFIG_PKG_USING_WAVPLAYER is not set +# CONFIG_PKG_USING_TJPGD is not set +# CONFIG_PKG_USING_PDFGEN is not set +# CONFIG_PKG_USING_HELIX is not set +# CONFIG_PKG_USING_AZUREGUIX is not set +# CONFIG_PKG_USING_TOUCHGFX2RTT is not set +# CONFIG_PKG_USING_NUEMWIN is not set +# CONFIG_PKG_USING_MP3PLAYER is not set +# CONFIG_PKG_USING_TINYJPEG is not set +# CONFIG_PKG_USING_UGUI is not set + +# +# PainterEngine: A cross-platform graphics application framework written in C language +# +# CONFIG_PKG_USING_PAINTERENGINE is not set +# CONFIG_PKG_USING_PAINTERENGINE_AUX is not set +# CONFIG_PKG_USING_MCURSES is not set +# CONFIG_PKG_USING_TERMBOX is not set +# CONFIG_PKG_USING_VT100 is not set +# CONFIG_PKG_USING_QRCODE is not set +# CONFIG_PKG_USING_GUIENGINE is not set + +# +# tools packages +# +# CONFIG_PKG_USING_CMBACKTRACE is not set +# CONFIG_PKG_USING_EASYFLASH is not set +# CONFIG_PKG_USING_EASYLOGGER is not set +# CONFIG_PKG_USING_SYSTEMVIEW is not set +# CONFIG_PKG_USING_SEGGER_RTT is not set +# CONFIG_PKG_USING_RDB is not set +# CONFIG_PKG_USING_ULOG_EASYFLASH is not set +# CONFIG_PKG_USING_ULOG_FILE is not set +# CONFIG_PKG_USING_LOGMGR is not set +# CONFIG_PKG_USING_ADBD is not set +# CONFIG_PKG_USING_COREMARK is not set +# CONFIG_PKG_USING_DHRYSTONE is not set +# CONFIG_PKG_USING_MEMORYPERF is not set +# CONFIG_PKG_USING_NR_MICRO_SHELL is not set +# CONFIG_PKG_USING_CHINESE_FONT_LIBRARY is not set +# CONFIG_PKG_USING_LUNAR_CALENDAR is not set +# CONFIG_PKG_USING_BS8116A is not set +# CONFIG_PKG_USING_GPS_RMC is not set +# CONFIG_PKG_USING_URLENCODE is not set +# CONFIG_PKG_USING_UMCN is not set +# CONFIG_PKG_USING_LWRB2RTT is not set +# CONFIG_PKG_USING_CPU_USAGE is not set +# CONFIG_PKG_USING_GBK2UTF8 is not set +# CONFIG_PKG_USING_VCONSOLE is not set +# CONFIG_PKG_USING_KDB is not set +# CONFIG_PKG_USING_WAMR is not set +# CONFIG_PKG_USING_MICRO_XRCE_DDS_CLIENT is not set +# CONFIG_PKG_USING_LWLOG is not set +# CONFIG_PKG_USING_ANV_TRACE is not set +# CONFIG_PKG_USING_ANV_MEMLEAK is not set +# CONFIG_PKG_USING_ANV_TESTSUIT is not set +# CONFIG_PKG_USING_ANV_BENCH is not set +# CONFIG_PKG_USING_DEVMEM is not set +# CONFIG_PKG_USING_REGEX is not set +# CONFIG_PKG_USING_MEM_SANDBOX is not set +# CONFIG_PKG_USING_SOLAR_TERMS is not set +# CONFIG_PKG_USING_GAN_ZHI is not set +# CONFIG_PKG_USING_FDT is not set +# CONFIG_PKG_USING_CBOX is not set +# CONFIG_PKG_USING_SNOWFLAKE is not set + +# +# system packages +# + +# +# enhanced kernel services +# +# CONFIG_PKG_USING_RT_MEMCPY_CM is not set +# CONFIG_PKG_USING_RT_KPRINTF_THREADSAFE is not set +# CONFIG_PKG_USING_RT_VSNPRINTF_FULL is not set + +# +# POSIX extension functions +# +# CONFIG_PKG_USING_POSIX_GETLINE is not set +# CONFIG_PKG_USING_POSIX_WCWIDTH is not set +# CONFIG_PKG_USING_POSIX_ITOA is not set +# CONFIG_PKG_USING_POSIX_STRINGS is not set + +# +# acceleration: Assembly language or algorithmic acceleration packages +# +# CONFIG_PKG_USING_QFPLIB_M0_FULL is not set +# CONFIG_PKG_USING_QFPLIB_M0_TINY is not set +# CONFIG_PKG_USING_QFPLIB_M3 is not set + +# +# CMSIS: ARM Cortex-M Microcontroller Software Interface Standard +# +# CONFIG_PKG_USING_CMSIS_5 is not set +# CONFIG_PKG_USING_CMSIS_RTOS2 is not set + +# +# Micrium: Micrium software products porting for RT-Thread +# +# CONFIG_PKG_USING_UCOSIII_WRAPPER is not set +# CONFIG_PKG_USING_UCOSII_WRAPPER is not set +# CONFIG_PKG_USING_UC_CRC is not set +# CONFIG_PKG_USING_UC_CLK is not set +# CONFIG_PKG_USING_UC_COMMON is not set +# CONFIG_PKG_USING_UC_MODBUS is not set +# CONFIG_PKG_USING_RTDUINO is not set +# CONFIG_PKG_USING_CAIRO is not set +# CONFIG_PKG_USING_PIXMAN is not set +# CONFIG_PKG_USING_PARTITION is not set +# CONFIG_PKG_USING_FLASHDB is not set +# CONFIG_PKG_USING_SQLITE is not set +# CONFIG_PKG_USING_RTI is not set +# CONFIG_PKG_USING_DFS_YAFFS is not set +# CONFIG_PKG_USING_LITTLEFS is not set +# CONFIG_PKG_USING_DFS_JFFS2 is not set +# CONFIG_PKG_USING_DFS_UFFS is not set +# CONFIG_PKG_USING_LWEXT4 is not set +# CONFIG_PKG_USING_THREAD_POOL is not set +# CONFIG_PKG_USING_ROBOTS is not set +# CONFIG_PKG_USING_EV is not set +# CONFIG_PKG_USING_SYSWATCH is not set +# CONFIG_PKG_USING_SYS_LOAD_MONITOR is not set +# CONFIG_PKG_USING_PLCCORE is not set +# CONFIG_PKG_USING_RAMDISK is not set +# CONFIG_PKG_USING_MININI is not set +# CONFIG_PKG_USING_QBOOT is not set +# CONFIG_PKG_USING_PPOOL is not set +# CONFIG_PKG_USING_OPENAMP is not set +# CONFIG_PKG_USING_LPM is not set +# CONFIG_PKG_USING_TLSF is not set +# CONFIG_PKG_USING_EVENT_RECORDER is not set +# CONFIG_PKG_USING_ARM_2D is not set +# CONFIG_PKG_USING_MCUBOOT is not set +# CONFIG_PKG_USING_TINYUSB is not set +# CONFIG_PKG_USING_CHERRYUSB is not set +# CONFIG_PKG_USING_KMULTI_RTIMER is not set +# CONFIG_PKG_USING_TFDB is not set + +# +# peripheral libraries and drivers +# +# CONFIG_PKG_USING_SENSORS_DRIVERS is not set +# CONFIG_PKG_USING_REALTEK_AMEBA is not set +# CONFIG_PKG_USING_SHT2X is not set +# CONFIG_PKG_USING_SHT3X is not set +# CONFIG_PKG_USING_AS7341 is not set +# CONFIG_PKG_USING_STM32_SDIO is not set +# CONFIG_PKG_USING_ICM20608 is not set +# CONFIG_PKG_USING_BUTTON is not set +# CONFIG_PKG_USING_PCF8574 is not set +# CONFIG_PKG_USING_SX12XX is not set +# CONFIG_PKG_USING_SIGNAL_LED is not set +# CONFIG_PKG_USING_LEDBLINK is not set +# CONFIG_PKG_USING_LITTLED is not set +# CONFIG_PKG_USING_LKDGUI is not set +# CONFIG_PKG_USING_NRF5X_SDK is not set +# CONFIG_PKG_USING_NRFX is not set +# CONFIG_PKG_USING_WM_LIBRARIES is not set +# CONFIG_PKG_USING_KENDRYTE_SDK is not set +# CONFIG_PKG_USING_INFRARED is not set +# CONFIG_PKG_USING_MULTI_INFRARED is not set +# CONFIG_PKG_USING_AGILE_BUTTON is not set +# CONFIG_PKG_USING_AGILE_LED is not set +# CONFIG_PKG_USING_AT24CXX is not set +# CONFIG_PKG_USING_MOTIONDRIVER2RTT is not set +# CONFIG_PKG_USING_AD7746 is not set +# CONFIG_PKG_USING_PCA9685 is not set +# CONFIG_PKG_USING_I2C_TOOLS is not set +# CONFIG_PKG_USING_NRF24L01 is not set +# CONFIG_PKG_USING_TOUCH_DRIVERS is not set +# CONFIG_PKG_USING_MAX17048 is not set +# CONFIG_PKG_USING_RPLIDAR is not set +# CONFIG_PKG_USING_AS608 is not set +# CONFIG_PKG_USING_RC522 is not set +# CONFIG_PKG_USING_WS2812B is not set +# CONFIG_PKG_USING_EMBARC_BSP is not set +# CONFIG_PKG_USING_EXTERN_RTC_DRIVERS is not set +# CONFIG_PKG_USING_MULTI_RTIMER is not set +# CONFIG_PKG_USING_MAX7219 is not set +# CONFIG_PKG_USING_BEEP is not set +# CONFIG_PKG_USING_EASYBLINK is not set +# CONFIG_PKG_USING_PMS_SERIES is not set +# CONFIG_PKG_USING_NUCLEI_SDK is not set +# CONFIG_PKG_USING_CAN_YMODEM is not set +# CONFIG_PKG_USING_LORA_RADIO_DRIVER is not set +# CONFIG_PKG_USING_QLED is not set +# CONFIG_PKG_USING_PAJ7620 is not set +# CONFIG_PKG_USING_AGILE_CONSOLE is not set +# CONFIG_PKG_USING_LD3320 is not set +# CONFIG_PKG_USING_WK2124 is not set +# CONFIG_PKG_USING_LY68L6400 is not set +# CONFIG_PKG_USING_DM9051 is not set +# CONFIG_PKG_USING_SSD1306 is not set +# CONFIG_PKG_USING_QKEY is not set +# CONFIG_PKG_USING_RS485 is not set +# CONFIG_PKG_USING_RS232 is not set +# CONFIG_PKG_USING_NES is not set +# CONFIG_PKG_USING_VIRTUAL_SENSOR is not set +# CONFIG_PKG_USING_VDEVICE is not set +# CONFIG_PKG_USING_SGM706 is not set +# CONFIG_PKG_USING_STM32WB55_SDK is not set +# CONFIG_PKG_USING_RDA58XX is not set +# CONFIG_PKG_USING_LIBNFC is not set +# CONFIG_PKG_USING_MFOC is not set +# CONFIG_PKG_USING_TMC51XX is not set +# CONFIG_PKG_USING_TCA9534 is not set +# CONFIG_PKG_USING_KOBUKI is not set +# CONFIG_PKG_USING_ROSSERIAL is not set +# CONFIG_PKG_USING_MICRO_ROS is not set +# CONFIG_PKG_USING_MCP23008 is not set +# CONFIG_PKG_USING_BLUETRUM_SDK is not set +# CONFIG_PKG_USING_MISAKA_AT24CXX is not set +# CONFIG_PKG_USING_MISAKA_RGB_BLING is not set +# CONFIG_PKG_USING_LORA_MODEM_DRIVER is not set +# CONFIG_PKG_USING_BL_MCU_SDK is not set +# CONFIG_PKG_USING_SOFT_SERIAL is not set +# CONFIG_PKG_USING_MB85RS16 is not set +# CONFIG_PKG_USING_CW2015 is not set +# CONFIG_PKG_USING_RFM300 is not set + +# +# AI packages +# +# CONFIG_PKG_USING_LIBANN is not set +# CONFIG_PKG_USING_NNOM is not set +# CONFIG_PKG_USING_ONNX_BACKEND is not set +# CONFIG_PKG_USING_ONNX_PARSER is not set +# CONFIG_PKG_USING_TENSORFLOWLITEMICRO is not set +# CONFIG_PKG_USING_ELAPACK is not set +# CONFIG_PKG_USING_ULAPACK is not set +# CONFIG_PKG_USING_QUEST is not set +# CONFIG_PKG_USING_NAXOS is not set + +# +# miscellaneous packages +# + +# +# project laboratory +# + +# +# samples: kernel and components samples +# +# CONFIG_PKG_USING_KERNEL_SAMPLES is not set +# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set +# CONFIG_PKG_USING_NETWORK_SAMPLES is not set +# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set + +# +# entertainment: terminal games and other interesting software packages +# +# CONFIG_PKG_USING_CMATRIX is not set +# CONFIG_PKG_USING_SL is not set +# CONFIG_PKG_USING_CAL is not set +# CONFIG_PKG_USING_ACLOCK is not set +# CONFIG_PKG_USING_THREES is not set +# CONFIG_PKG_USING_2048 is not set +# CONFIG_PKG_USING_SNAKE is not set +# CONFIG_PKG_USING_TETRIS is not set +# CONFIG_PKG_USING_DONUT is not set +# CONFIG_PKG_USING_COWSAY is not set +# CONFIG_PKG_USING_LIBCSV is not set +# CONFIG_PKG_USING_OPTPARSE is not set +# CONFIG_PKG_USING_FASTLZ is not set +# CONFIG_PKG_USING_MINILZO is not set +# CONFIG_PKG_USING_QUICKLZ is not set +# CONFIG_PKG_USING_LZMA is not set +# CONFIG_PKG_USING_MULTIBUTTON is not set +# CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set +# CONFIG_PKG_USING_CANFESTIVAL is not set +# CONFIG_PKG_USING_ZLIB is not set +# CONFIG_PKG_USING_MINIZIP is not set +# CONFIG_PKG_USING_HEATSHRINK is not set +# CONFIG_PKG_USING_DSTR is not set +# CONFIG_PKG_USING_TINYFRAME is not set +# CONFIG_PKG_USING_KENDRYTE_DEMO is not set +# CONFIG_PKG_USING_DIGITALCTRL is not set +# CONFIG_PKG_USING_UPACKER is not set +# CONFIG_PKG_USING_UPARAM is not set +# CONFIG_PKG_USING_HELLO is not set +# CONFIG_PKG_USING_VI is not set +# CONFIG_PKG_USING_KI is not set +# CONFIG_PKG_USING_ARMv7M_DWT is not set +# CONFIG_PKG_USING_UKAL is not set +# CONFIG_PKG_USING_CRCLIB is not set +# CONFIG_PKG_USING_LWGPS is not set +# CONFIG_PKG_USING_STATE_MACHINE is not set +# CONFIG_PKG_USING_DESIGN_PATTERN is not set +# CONFIG_PKG_USING_CONTROLLER is not set +# CONFIG_PKG_USING_PHASE_LOCKED_LOOP is not set +# CONFIG_PKG_USING_MFBD is not set +CONFIG_SOC_RISCV_FAMILY_CH32=y +CONFIG_SOC_RISCV_SERIES_CH32V103=y + +# +# Hardware Drivers Config +# +CONFIG_SOC_CH32V103R8=y + +# +# On-chip Peripheral Drivers +# +CONFIG_BSP_USING_UART=y +CONFIG_BSP_USING_UART1=y + +# +# Onboard Peripheral Drivers +# + +# +# Board extended module Drivers +# diff --git a/bsp/wch/risc-v/ch32v103r-evt/Kconfig b/bsp/wch/risc-v/ch32v103r-evt/Kconfig new file mode 100644 index 0000000000..c80a8958fd --- /dev/null +++ b/bsp/wch/risc-v/ch32v103r-evt/Kconfig @@ -0,0 +1,21 @@ +mainmenu "RT-Thread Configuration" + +config BSP_DIR + string + option env="BSP_ROOT" + default "." + +config RTT_DIR + string + option env="RTT_ROOT" + default "../../../.." + +config PKGS_DIR + string + option env="PKGS_ROOT" + default "packages" + +source "$RTT_DIR/Kconfig" +source "$PKGS_DIR/Kconfig" +source "../Libraries/Kconfig" +source "board/Kconfig" diff --git a/bsp/wch/risc-v/ch32v103r-evt/README.md b/bsp/wch/risc-v/ch32v103r-evt/README.md new file mode 100644 index 0000000000..892c11c394 --- /dev/null +++ b/bsp/wch/risc-v/ch32v103r-evt/README.md @@ -0,0 +1,167 @@ +# ch32v103r-evt BSP 说明 +## 开呿¿ç®€ä»‹ + +ch32v103r-evt 是基于 CH32V103 MCU æŽ¨å‡ºäº†ä¸€æ¬¾å¼€å‘æ¿ï¼ŒåŒ…å« WCH-Link 调试器,具有丰富的外设,比较适åˆå…¥é—¨å­¦ä¹  RISC-V 架构。 + +开呿¿å›¾ç‰‡ + +2022-03-27_182300 + +基本硬件资æºï¼š + +- é’稞 V3A 处ç†å™¨ï¼Œæœ€é«˜ 80MHz 系统主频; +- 支æŒå•周期乘法和硬件除法; +- 20KB SRAM,64KB CodeFlashï¼› +- 供电范围:2.7V ~ 5.5V,GPIOåŒæ­¥ä¾›ç”µç”µåŽ‹ï¼› +- 多ç§ä½ŽåŠŸè€—æ¨¡å¼ï¼šç¡çœ /åœæ­¢/待机; +- 上电/断电å¤ä½ï¼ˆPOR/PDR); +- å¯ç¼–程电压监测器(PVD); +- 7é€šé“ DMA 控制器; +- 16è·¯ TouchKey 通é“监测; +- 16è·¯12ä½ ADC 转æ¢é€šé“ï¼› +- 7个定时器; +- 1个 USB2.0 主机/设备接å£ï¼ˆå…¨é€Ÿå’Œä½Žé€Ÿï¼‰ï¼› +- 2个 IIC 接å£ï¼ˆæ”¯æŒ SMBus/PMBus); +- 3个 USART 接å£ï¼› +- 2个 SPI 接å£ï¼ˆæ”¯æŒ Master å’Œ Slave 模å¼ï¼‰ï¼› +- 51个 I/O å£ï¼Œæ‰€æœ‰çš„ I/O å£éƒ½å¯ä»¥æ˜ å°„到16个外部中断; +- CRC 计算å•元,96ä½èŠ¯ç‰‡å”¯ä¸€ IDï¼› +- 串行å•线调试(SWD)接å£ï¼› +- å°è£…å½¢å¼ï¼šLQFP64Mã€LQFP48ã€QFN48。 + +更多信æ¯å’Œèµ„æºè¯·è®¿é—® [WCH CHV103](http://www.wch.cn/products/CH32V103.html?) + +## 编译说明 + +æ¿çº§åŒ…æ”¯æŒ RISC-V GCC å¼€å‘环境,以下是具体版本信æ¯ï¼š + +| IDE/编译器 | 已测试版本 | +| ---------- | -------------------- | +| GCC | WCH RISC-V GCC 8.2.0 | + + +## å¤–è®¾æ”¯æŒ + +本 BSP ç›®å‰å¯¹å¤–è®¾é©±åŠ¨çš„æ”¯æŒæƒ…况如下: + +| 驱动 | æ”¯æŒæƒ…况 | 备注 | +| --------- | -------- | :------------------------:| +| UART | æ”¯æŒ | USART 1 | +| GPIO | æ”¯æŒ | PA0...PE15 | + + +### IO在æ¿çº§æ”¯æŒåŒ…中的映射情况 + +| IOå· | æ¿çº§åŒ…中的定义 | +| ---- | -------------- | +| PA9(默认与æ¿è½½wch-link串å£ç›¸è¿ž) | USART1_TX | +| PA10(默认与æ¿è½½wch-link串å£ç›¸è¿ž) | USART1_RX | + + + +## 使用说明 + + 本章节是为刚接触 RT-Thread 的新手准备的使用说明,éµå¾ªç®€å•的步骤å³å¯å°† RT-Thread æ“作系统è¿è¡Œåœ¨è¯¥å¼€å‘æ¿ä¸Šï¼Œçœ‹åˆ°å®žéªŒæ•ˆæžœ 。 + +### 快速上手 + +本 BSP 为开å‘者æä¾› SCons编译é…置。下é¢ä»‹ç»å¦‚何将系统è¿è¡Œèµ·æ¥ã€‚ + +#### SCons 编译 + +需è¦å…ˆæ­£ç¡®é…ç½® RISC-V GCC ä½ç½®ï¼ŒæŽ¨è使用 RT_Studio 软件包里的 + +``` +import os +ARCH = 'risc-v' +CPU = 'ch32v1' +# toolchains options +CROSS_TOOL = 'gcc' + +#------- toolchains path ------------------------------------------------------- +if os.getenv('RTT_CC'): + CROSS_TOOL = os.getenv('RTT_CC') + +if CROSS_TOOL == 'gcc': + PLATFORM = 'gcc' + EXEC_PATH = r'D:/Softwares/RT_ThreadStudio/repo/Extract/ToolChain_Support_Packages/WCH/RISC-V-GCC-WCH/8.2.0/bin' +else: + print('Please make sure your toolchains is GNU GCC!') + exit(0) + +# if os.getenv('RTT_EXEC_PATH'): + # EXEC_PATH = os.getenv('RTT_EXEC_PATH') + +``` + +开始 scons 编译 + +``` +LT@DESKTOP-WIN10 E:\WorkSpaces\rt-thread\bsp\wch\risc-v\ch32v103r-evt +>scons +scons: Reading SConscript files ... +Newlib version:3.0.0 +scons: done reading SConscript files. +scons: Building targets ... +scons: building associated VariantDir targets: build +CC build\applications\main.o +CC build\board\board.o +CC build\board\ch32v10x_it.o +.... +CC build\libraries\ch32_library\StdPeriph_Driver\src\ch32v10x_misc.o +CC build\libraries\ch32_library\StdPeriph_Driver\src\ch32v10x_pwr.o +CC build\libraries\ch32_library\StdPeriph_Driver\src\ch32v10x_rcc.o +CC build\libraries\ch32_library\StdPeriph_Driver\src\ch32v10x_rtc.o +CC build\libraries\ch32_library\StdPeriph_Driver\src\ch32v10x_spi.o +CC build\libraries\ch32_library\StdPeriph_Driver\src\ch32v10x_tim.o +CC build\libraries\ch32_library\StdPeriph_Driver\src\ch32v10x_usart.o +CC build\libraries\ch32_library\StdPeriph_Driver\src\ch32v10x_wwdg.o +LINK rtthread.elf +riscv-none-embed-objcopy -O binary rtthread.elf rtthread.bin +riscv-none-embed-size rtthread.elf +text data bss dec hex filename +63540 392 8080 72012 1194c rtthread.elf +scons: done building targets. +``` + +#### 硬件连接 + +使用数æ®çº¿è¿žæŽ¥æ¿è½½ wch-link 到 PC,打开电æºå¼€å…³ã€‚ + +#### 下载 + +打开WCH_RISC-V_Programmer下载软件,选择bsp目录下生æˆçš„`rtthread.bin` 文件,å•击执行进行下载。 + +![image-20220404205018822](figures/image-20220404205018822.png) + +> WCH_RISC-V_Programmer下载软件 å¯ä»¥ä»Ž MRS IDE中直接导出 + +#### è¿è¡Œç»“æžœ + + +在终端工具里打开æ¿è½½ wch-link 串å£ï¼ˆWCHDapLink SERIAL,默认115200-8-1-N),å¤ä½è®¾å¤‡åŽï¼Œåœ¨ä¸²å£ä¸Šå¯ä»¥çœ‹åˆ° RT-Thread 的输出信æ¯: + +```bash + + \ | / +- RT - Thread Operating System + / | \ 4.1.0 build Apr 4 2022 16:57:50 + 2006 - 2022 Copyright by RT-Thread team + + MCU: CH32V103C8T6 + SysClk: 72000000Hz + www.wch.cn +msh >ps +thread pri status sp stack size max used left tick error +-------- --- ------- ---------- ---------- ------ ---------- --- +tshell 20 running 0x00000140 0x00000400 83% 0x00000003 000 +tidle0 31 ready 0x000000b0 0x00000100 70% 0x00000002 000 +timer 4 suspend 0x000000e0 0x00000200 43% 0x00000009 000 +main 10 suspend 0x00000140 0x00000800 20% 0x0000000f 000 +``` + +## è”ç³»äººä¿¡æ¯ + +维护人: + +- [blta](https://github.com/blta) diff --git a/bsp/wch/risc-v/ch32v103r-evt/SConscript b/bsp/wch/risc-v/ch32v103r-evt/SConscript new file mode 100644 index 0000000000..20f7689c53 --- /dev/null +++ b/bsp/wch/risc-v/ch32v103r-evt/SConscript @@ -0,0 +1,15 @@ +# for module compiling +import os +Import('RTT_ROOT') +from building import * + +cwd = GetCurrentDir() +objs = [] +list = os.listdir(cwd) + +for d in list: + path = os.path.join(cwd, d) + if os.path.isfile(os.path.join(path, 'SConscript')): + objs = objs + SConscript(os.path.join(d, 'SConscript')) + +Return('objs') diff --git a/bsp/wch/risc-v/ch32v103r-evt/SConstruct b/bsp/wch/risc-v/ch32v103r-evt/SConstruct new file mode 100644 index 0000000000..9f4c2c13e5 --- /dev/null +++ b/bsp/wch/risc-v/ch32v103r-evt/SConstruct @@ -0,0 +1,64 @@ +import os +import sys +import rtconfig +from SCons.Script import * + +if os.getenv('RTT_ROOT'): + RTT_ROOT = os.getenv('RTT_ROOT') +else: + RTT_ROOT = os.path.normpath(os.getcwd() + '/../../../..') + +sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')] +try: + from building import * +except: + print('Cannot found RT-Thread root directory, please check RTT_ROOT') + print(RTT_ROOT) + exit(-1) + + +TARGET = 'rtthread.' + rtconfig.TARGET_EXT + +DefaultEnvironment(tools=[]) +env = Environment(tools = ['mingw'], + AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS, + CC = rtconfig.CC, CFLAGS = rtconfig.CFLAGS, + AR = rtconfig.AR, ARFLAGS = '-rc', + LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS) +env.PrependENVPath('PATH', rtconfig.EXEC_PATH) + +if rtconfig.PLATFORM == 'iar': + env.Replace(CCCOM = ['$CC $CFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET $SOURCES']) + env.Replace(ARFLAGS = ['']) + env.Replace(LINKCOM = env["LINKCOM"] + ' --map project.map') + +Export('RTT_ROOT') +Export('rtconfig') + +SDK_ROOT = os.path.abspath('./') + +if os.path.exists(SDK_ROOT + '/Libraries'): + libraries_path_prefix = SDK_ROOT + '/Libraries' +else: + libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/Libraries' + +SDK_LIB = libraries_path_prefix +Export('SDK_LIB') + +# prepare building environment +objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False) + +ch32_library = 'CH32V10x_StdPeriph_Driver' +rtconfig.BSP_LIBRARY_TYPE = ch32_library + +bsp_vdir = 'build' +library_vdir = 'build/libraries' + +# include libraries +objs.extend(SConscript(os.path.join(libraries_path_prefix, ch32_library, 'SConscript'), variant_dir=library_vdir + '/ch32_library', duplicate=0)) + +# common include drivers +objs.extend(SConscript(os.path.join(libraries_path_prefix, 'ch32_drivers', 'SConscript'), variant_dir=library_vdir + '/ch32_drivers', duplicate=0)) + +# make a building +DoBuilding(TARGET, objs) diff --git a/bsp/wch/risc-v/ch32v103r-evt/applications/SConscript b/bsp/wch/risc-v/ch32v103r-evt/applications/SConscript new file mode 100644 index 0000000000..61a0bd61dd --- /dev/null +++ b/bsp/wch/risc-v/ch32v103r-evt/applications/SConscript @@ -0,0 +1,17 @@ +# RT-Thread building script for component +Import('RTT_ROOT') +Import('rtconfig') +from building import * + +cwd = GetCurrentDir() + +# add the general drivers. +src = Split(""" +main.c +""") + +CPPPATH = [cwd, str(Dir('#'))] + +group = DefineGroup('Applications', src, depend = [''], CPPPATH = CPPPATH) + +Return('group') diff --git a/bsp/wch/risc-v/ch32v103r-evt/applications/main.c b/bsp/wch/risc-v/ch32v103r-evt/applications/main.c new file mode 100644 index 0000000000..63e0873167 --- /dev/null +++ b/bsp/wch/risc-v/ch32v103r-evt/applications/main.c @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2006-2022, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-04-03 WCH first version + * 2022-04-05 Blta modify some formats + */ +#include +#include + + +/* Global typedef */ + +/* Global define */ + +/* LED0(PA1) usd pin device */ +#define LED0_PIN 15 + +/* Global Variable */ + +/* LED1 initialization */ +void LED1_BLINK_INIT(void) +{ + GPIO_InitTypeDef GPIO_InitStructure = {0}; + RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); + GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; + GPIO_Init(GPIOA, &GPIO_InitStructure); +} + +/* main thread */ +int main(void) +{ + rt_kprintf("\r\n MCU: CH32V103C8T6\r\n"); + rt_kprintf(" SysClk: %dHz\r\n", SystemCoreClock); + rt_kprintf(" www.wch.cn\r\n"); + LED1_BLINK_INIT(); + + GPIO_ResetBits(GPIOA, GPIO_Pin_0); + while(1) + { + GPIO_SetBits(GPIOA, GPIO_Pin_0); + rt_thread_mdelay(500); + + GPIO_ResetBits(GPIOA, GPIO_Pin_0); + rt_thread_mdelay(500); + } +} + +/* led cmd */ +int led(void) +{ + rt_uint8_t count; + + rt_pin_mode(LED0_PIN, PIN_MODE_OUTPUT); + + for(count = 0; count < 10; count++) + { + rt_pin_write(LED0_PIN, PIN_LOW); + rt_kprintf("led on, count : %d\r\n", count); + rt_thread_mdelay(500); + + rt_pin_write(LED0_PIN, PIN_HIGH); + rt_kprintf("led off\r\n"); + rt_thread_mdelay(500); + } + return 0; +} +MSH_CMD_EXPORT(led, RT - Thread first led sample by using I / O driver); diff --git a/bsp/wch/risc-v/ch32v103r-evt/board/Kconfig b/bsp/wch/risc-v/ch32v103r-evt/board/Kconfig new file mode 100644 index 0000000000..3d8d6535ad --- /dev/null +++ b/bsp/wch/risc-v/ch32v103r-evt/board/Kconfig @@ -0,0 +1,32 @@ +menu "Hardware Drivers Config" + +config SOC_CH32V103R8 + bool + select SOC_RISCV_SERIES_CH32V103 + select RT_USING_COMPONENTS_INIT + select RT_USING_USER_MAIN + default y + +menu "On-chip Peripheral Drivers" + +config BSP_USING_UART + bool "using onchip usart" + select RT_USING_SERIAL + default n + + if BSP_USING_UART + config BSP_USING_UART1 + bool "using uart1" + default n + endif +endmenu + +menu "Onboard Peripheral Drivers" + +endmenu + +menu "Board extended module Drivers" + +endmenu + +endmenu diff --git a/bsp/wch/risc-v/ch32v103r-evt/board/SConscript b/bsp/wch/risc-v/ch32v103r-evt/board/SConscript new file mode 100644 index 0000000000..d245fbe011 --- /dev/null +++ b/bsp/wch/risc-v/ch32v103r-evt/board/SConscript @@ -0,0 +1,19 @@ +import os +import rtconfig +from building import * + +Import('SDK_LIB') + +cwd = GetCurrentDir() + +# add general drivers +src = Split(''' +board.c +debug.c +ch32v10x_it.c +''') + +path = [cwd] + +group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path) +Return('group') diff --git a/bsp/wch/risc-v/ch32v103r-evt/board/board.c b/bsp/wch/risc-v/ch32v103r-evt/board/board.c new file mode 100644 index 0000000000..48d9a99459 --- /dev/null +++ b/bsp/wch/risc-v/ch32v103r-evt/board/board.c @@ -0,0 +1,106 @@ +/* + * Copyright (c) 2006-2022, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2017-07-24 Tanek the first version + * 2018-11-12 Ernest Chen modify copyright + */ + +#include "board.h" + +#include +#include "drv_usart.h" + +#include +#include + + +/* Updates the variable SystemCoreClock and must be called + * whenever the core clock is changed during program execution. + */ +extern void SystemCoreClockUpdate(void); + +/* core clock */ +extern uint32_t SystemCoreClock; + +volatile rt_uint32_t g_ticks=0; + +static uint32_t _SysTick_Config(rt_uint32_t ticks) +{ + g_ticks=ticks; + /* disable hardware pushing stack automatically and disable interrupt nesting */ + PFIC->CFGR=0xFA050003; + NVIC_SetPriority(SysTicK_IRQn,0xf0); + NVIC_SetPriority(Software_IRQn,0xf0); + SysTick->CTLR=0; + SysTick->CNTL0=0;SysTick->CNTL1=0;SysTick->CNTL2=0;SysTick->CNTL3=0; + SysTick->CNTH0=0;SysTick->CNTH1=0;SysTick->CNTH2=0;SysTick->CNTH3=0; + SysTick->CMPLR0=(rt_uint8_t)(g_ticks-1); + SysTick->CMPLR1=(rt_uint8_t)((g_ticks-1)>>8); + SysTick->CMPLR2=(rt_uint8_t)((g_ticks-1)>>16); + SysTick->CMPLR3=(rt_uint8_t)((g_ticks-1)>>24); + SysTick->CMPHR0=0;SysTick->CMPHR1=0;SysTick->CMPHR2=0;SysTick->CMPHR3=0; + SysTick->CTLR=0x1; + NVIC_EnableIRQ(SysTicK_IRQn); + NVIC_EnableIRQ(Software_IRQn); + return 0; +} + +#if defined(RT_USING_USER_MAIN) && defined(RT_USING_HEAP) +#define RT_HEAP_SIZE (1024) +/* heap default size: 4K(1024 * 4) */ +static uint32_t rt_heap[RT_HEAP_SIZE]; +RT_WEAK void *rt_heap_begin_get(void) +{ + return rt_heap; +} + +RT_WEAK void *rt_heap_end_get(void) +{ + return rt_heap + RT_HEAP_SIZE; +} +#endif + +/** + * This function will initial your board. + */ +void rt_hw_board_init() +{ + /* System Clock Update */ + SystemCoreClockUpdate(); + + /* System Tick Configuration, systick clock is HCLK/8 */ + _SysTick_Config(SystemCoreClock / 8 / RT_TICK_PER_SECOND); + /* Call components board initial (use INIT_BOARD_EXPORT()) */ +#ifdef RT_USING_COMPONENTS_INIT + rt_components_board_init(); +#endif +#if defined(RT_USING_USER_MAIN) && defined(RT_USING_HEAP) + rt_system_heap_init(rt_heap_begin_get(), rt_heap_end_get()); +#endif + +#ifdef RT_USING_CONSOLE + rt_console_set_device(RT_CONSOLE_DEVICE_NAME); +#endif +} + + +void SysTick_Handler(void) __attribute__((interrupt())); +void SysTick_Handler(void) +{ + GET_INT_SP(); + /* enter interrupt */ + rt_interrupt_enter(); + SysTick->CTLR=0; + SysTick->CNTL0=0;SysTick->CNTL1=0;SysTick->CNTL2=0;SysTick->CNTL3=0; + SysTick->CNTH0=0;SysTick->CNTH1=0;SysTick->CNTH2=0;SysTick->CNTH3=0; + SysTick->CTLR=0x1; + rt_tick_increase(); + /* leave interrupt */ + rt_interrupt_leave(); + FREE_INT_SP(); + +} diff --git a/bsp/wch/risc-v/ch32v103r-evt/board/board.h b/bsp/wch/risc-v/ch32v103r-evt/board/board.h new file mode 100644 index 0000000000..6496052cb1 --- /dev/null +++ b/bsp/wch/risc-v/ch32v103r-evt/board/board.h @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2006-2022, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2009-09-22 Bernard add board.h to this bsp + * 2017-10-20 ZYH emmm...setup for HAL Libraries + */ + +/* <<< Use Configuration Wizard in Context Menu >>> */ +#ifndef __BOARD_H__ +#define __BOARD_H__ + +#include "ch32v10x.h" +#include +#include "drivers/pin.h" +#define CH32V10X_PIN_NUMBERS 64 + +/* board configuration */ +#define SRAM_SIZE 20 +#define SRAM_END (0x20000000 + SRAM_SIZE * 1024) + +extern int _ebss; +#define HEAP_BEGIN ((void *)&_ebss) +#define HEAP_END (SRAM_END-_stack_size) + + +/* extern volatile unsigned long interrupter_sp_saver */ +void rt_hw_board_init(void); + +#endif /* __BOARD_H__ */ diff --git a/bsp/wch/risc-v/ch32v103r-evt/board/ch32v10x_conf.h b/bsp/wch/risc-v/ch32v103r-evt/board/ch32v10x_conf.h new file mode 100644 index 0000000000..faa518ad7f --- /dev/null +++ b/bsp/wch/risc-v/ch32v103r-evt/board/ch32v10x_conf.h @@ -0,0 +1,41 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_conf.h + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : Library configuration file. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *******************************************************************************/ +#ifndef __CH32V10x_CONF_H +#define __CH32V10x_CONF_H + +#include "ch32v10x_adc.h" +#include "ch32v10x_bkp.h" +#include "ch32v10x_crc.h" +#include "ch32v10x_dbgmcu.h" +#include "ch32v10x_dma.h" +#include "ch32v10x_exti.h" +#include "ch32v10x_flash.h" +#include "ch32v10x_gpio.h" +#include "ch32v10x_i2c.h" +#include "ch32v10x_iwdg.h" +#include "ch32v10x_pwr.h" +#include "ch32v10x_rcc.h" +#include "ch32v10x_rtc.h" +#include "ch32v10x_spi.h" +#include "ch32v10x_tim.h" +#include "ch32v10x_usart.h" +#include "ch32v10x_wwdg.h" +#include "ch32v10x_usb.h" +#include "ch32v10x_usb_host.h" +#include "ch32v10x_it.h" +#include "ch32v10x_misc.h" + + +#endif /* __CH32V10x_CONF_H */ + + + + + diff --git a/bsp/wch/risc-v/ch32v103r-evt/board/ch32v10x_it.c b/bsp/wch/risc-v/ch32v103r-evt/board/ch32v10x_it.c new file mode 100644 index 0000000000..f5d54fa7e8 --- /dev/null +++ b/bsp/wch/risc-v/ch32v103r-evt/board/ch32v10x_it.c @@ -0,0 +1,54 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_it.c + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : Main Interrupt Service Routines. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *******************************************************************************/ +#include "ch32v10x_it.h" +#include "board.h" +#include + +void NMI_Handler(void) __attribute__((interrupt())); +void HardFault_Handler(void) __attribute__((interrupt())); + +/********************************************************************* + * @fn NMI_Handler + * + * @brief This function handles NMI exception. + * + * @return none + */ +void NMI_Handler(void) +{ + GET_INT_SP(); + rt_interrupt_enter(); + + rt_kprintf(" NMI Handler\r\n"); + + rt_interrupt_leave(); + FREE_INT_SP(); +} + +/********************************************************************* + * @fn HardFault_Handler + * + * @brief This function handles Hard Fault exception. + * + * @return none + */ +void HardFault_Handler(void) +{ + GET_INT_SP(); + rt_interrupt_enter(); + + rt_kprintf(" hardfult\r\n"); + rt_interrupt_leave(); + FREE_INT_SP(); + + +} + + diff --git a/bsp/wch/risc-v/ch32v103r-evt/board/ch32v10x_it.h b/bsp/wch/risc-v/ch32v103r-evt/board/ch32v10x_it.h new file mode 100644 index 0000000000..c4271ccca0 --- /dev/null +++ b/bsp/wch/risc-v/ch32v103r-evt/board/ch32v10x_it.h @@ -0,0 +1,20 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : ch32v10x_it.h + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file contains the headers of the interrupt handlers. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *******************************************************************************/ +#ifndef __CH32V10x_IT_H +#define __CH32V10x_IT_H + +#include "debug.h" + +#define GET_INT_SP() asm("csrrw sp,mscratch,sp") +#define FREE_INT_SP() asm("csrrw sp,mscratch,sp") + +#endif /* __CH32V10x_IT_H */ + + diff --git a/bsp/wch/risc-v/ch32v103r-evt/board/debug.c b/bsp/wch/risc-v/ch32v103r-evt/board/debug.c new file mode 100644 index 0000000000..2eecec8feb --- /dev/null +++ b/bsp/wch/risc-v/ch32v103r-evt/board/debug.c @@ -0,0 +1,199 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : debug.c + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file contains all the functions prototypes for UART + * Printf , Delay functions. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *******************************************************************************/ +#include "debug.h" + +static uint8_t p_us = 0; +static uint16_t p_ms = 0; + +/********************************************************************* + * @fn Delay_Init + * + * @brief Initializes Delay Funcation. + * + * @return none + */ +void Delay_Init(void) +{ + p_us = SystemCoreClock / 8000000; + p_ms = (uint16_t)p_us * 1000; +} + +/********************************************************************* + * @fn Delay_Us + * + * @brief Microsecond Delay Time. + * + * @param n - Microsecond number. + * + * @return None + */ +void Delay_Us(uint32_t n) +{ + uint32_t i; + + SysTick->CTLR = 0; + i = (uint32_t)n * p_us; + + SysTick->CNTL0 = 0; + SysTick->CNTL1 = 0; + SysTick->CNTL2 = 0; + SysTick->CNTL3 = 0; + SysTick->CTLR = 1; + + while((*(__IO uint32_t *)0xE000F004) <= i) + { + ; + } + +} + +/********************************************************************* + * @fn Delay_Ms + * + * @brief Millisecond Delay Time. + * + * @param n - Millisecond number. + * + * @return None + */ +void Delay_Ms(uint32_t n) +{ + uint32_t i; + + SysTick->CTLR = 0; + i = (uint32_t)n * p_ms; + + SysTick->CNTL0 = 0; + SysTick->CNTL1 = 0; + SysTick->CNTL2 = 0; + SysTick->CNTL3 = 0; + SysTick->CTLR = 1; + + while((*(__IO uint32_t *)0xE000F004) <= i) ; +} + +/********************************************************************* + * @fn USART_Printf_Init + * + * @brief Initializes the USARTx peripheral. + * + * @param baudrate - USART communication baud rate. + * + * @return None + */ +void USART_Printf_Init(uint32_t baudrate) +{ + GPIO_InitTypeDef GPIO_InitStructure; + USART_InitTypeDef USART_InitStructure; + +#if(DEBUG == DEBUG_UART1) + RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA, ENABLE); + + GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; + GPIO_Init(GPIOA, &GPIO_InitStructure); + +#elif(DEBUG == DEBUG_UART2) + RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE); + RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); + + GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; + GPIO_Init(GPIOA, &GPIO_InitStructure); + +#elif(DEBUG == DEBUG_UART3) + RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE); + RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); + + GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; + GPIO_Init(GPIOB, &GPIO_InitStructure); + +#endif + + USART_InitStructure.USART_BaudRate = baudrate; + USART_InitStructure.USART_WordLength = USART_WordLength_8b; + USART_InitStructure.USART_StopBits = USART_StopBits_1; + USART_InitStructure.USART_Parity = USART_Parity_No; + USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; + USART_InitStructure.USART_Mode = USART_Mode_Tx; + +#if(DEBUG == DEBUG_UART1) + USART_Init(USART1, &USART_InitStructure); + USART_Cmd(USART1, ENABLE); + +#elif(DEBUG == DEBUG_UART2) + USART_Init(USART2, &USART_InitStructure); + USART_Cmd(USART2, ENABLE); + +#elif(DEBUG == DEBUG_UART3) + USART_Init(USART3, &USART_InitStructure); + USART_Cmd(USART3, ENABLE); + +#endif +} + +/********************************************************************* + * @fn _write + * + * @brief Support Printf Function + * + * @param *buf - UART send Data. + * size - Data length. + * + * @return size - Data length + */ +__attribute__((used)) +int _write(int fd, char *buf, int size) +{ + int i; + + for(i = 0; i < size; i++){ +#if(DEBUG == DEBUG_UART1) + while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET); + USART_SendData(USART1, *buf++); +#elif(DEBUG == DEBUG_UART2) + while(USART_GetFlagStatus(USART2, USART_FLAG_TC) == RESET); + USART_SendData(USART2, *buf++); +#elif(DEBUG == DEBUG_UART3) + while(USART_GetFlagStatus(USART3, USART_FLAG_TC) == RESET); + USART_SendData(USART3, *buf++); +#endif + } + + return size; +} + +/********************************************************************* + * @fn _sbrk + * + * @brief Change the spatial position of data segment. + * + * @return size: Data length + */ +void *_sbrk(ptrdiff_t incr) +{ + extern char _end[]; + extern char _heap_end[]; + static char *curbrk = _end; + + if ((curbrk + incr < _end) || (curbrk + incr > _heap_end)) + return NULL - 1; + + curbrk += incr; + return curbrk - incr; +} + + + diff --git a/bsp/wch/risc-v/ch32v103r-evt/board/debug.h b/bsp/wch/risc-v/ch32v103r-evt/board/debug.h new file mode 100644 index 0000000000..0b1118b7ca --- /dev/null +++ b/bsp/wch/risc-v/ch32v103r-evt/board/debug.h @@ -0,0 +1,32 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : debug.h + * Author : WCH + * Version : V1.0.0 + * Date : 2020/04/30 + * Description : This file contains all the functions prototypes for UART + * Printf , Delay functions. + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * SPDX-License-Identifier: Apache-2.0 + *******************************************************************************/ +#ifndef __DEBUG_H +#define __DEBUG_H + +#include "stdio.h" +#include "ch32v10x.h" + +/* UART Printf Definition */ +#define DEBUG_UART1 1 +#define DEBUG_UART2 2 +#define DEBUG_UART3 3 + +/* DEBUG UATR Definition */ +#define DEBUG DEBUG_UART1 +//#define DEBUG DEBUG_UART2 +//#define DEBUG DEBUG_UART3 + +void Delay_Init(void); +void Delay_Us(uint32_t n); +void Delay_Ms(uint32_t n); +void USART_Printf_Init(uint32_t baudrate); + +#endif /* __DEBUG_H */ diff --git a/bsp/wch/risc-v/ch32v103r-evt/board/linker_scripts/link.lds b/bsp/wch/risc-v/ch32v103r-evt/board/linker_scripts/link.lds new file mode 100644 index 0000000000..c81a03907b --- /dev/null +++ b/bsp/wch/risc-v/ch32v103r-evt/board/linker_scripts/link.lds @@ -0,0 +1 @@ +ENTRY( _start ) __stack_size = 2048; PROVIDE( _stack_size = __stack_size ); MEMORY { FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 64K RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 20K } SECTIONS { .init : { _sinit = .; . = ALIGN(4); KEEP(*(SORT_NONE(.init))) . = ALIGN(4); _einit = .; } >FLASH AT>FLASH .vector : { *(.vector); . = ALIGN(64); } >FLASH AT>FLASH .text : { . = ALIGN(4); *(.text) *(.text.*) *(.rodata) *(.rodata*) *(.glue_7) *(.glue_7t) *(.gnu.linkonce.t.*) /* section information for finsh shell */ . = ALIGN(4); __fsymtab_start = .; KEEP(*(FSymTab)) __fsymtab_end = .; . = ALIGN(4); __vsymtab_start = .; KEEP(*(VSymTab)) __vsymtab_end = .; . = ALIGN(4); /* section information for initial. */ . = ALIGN(4); __rt_init_start = .; KEEP(*(SORT(.rti_fn*))) __rt_init_end = .; . = ALIGN(4); /* section information for modules */ . = ALIGN(4); __rtmsymtab_start = .; KEEP(*(RTMSymTab)) __rtmsymtab_end = .; . = ALIGN(4); } >FLASH AT>FLASH .fini : { KEEP(*(SORT_NONE(.fini))) . = ALIGN(4); } >FLASH AT>FLASH PROVIDE( _etext = . ); PROVIDE( _eitcm = . ); .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } >FLASH AT>FLASH .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } >FLASH AT>FLASH .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } >FLASH AT>FLASH .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } >FLASH AT>FLASH .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } >FLASH AT>FLASH .dalign : { . = ALIGN(4); PROVIDE(_data_vma = .); } >RAM AT>FLASH .dlalign : { . = ALIGN(4); PROVIDE(_data_lma = .); } >FLASH AT>FLASH .data : { *(.gnu.linkonce.r.*) *(.data .data.*) *(.gnu.linkonce.d.*) . = ALIGN(8); PROVIDE( __global_pointer$ = . + 0x800 ); *(.sdata .sdata.*) *(.sdata2.*) *(.gnu.linkonce.s.*) . = ALIGN(8); *(.srodata.cst16) *(.srodata.cst8) *(.srodata.cst4) *(.srodata.cst2) *(.srodata .srodata.*) . = ALIGN(4); PROVIDE( _edata = .); } >RAM AT>FLASH .bss : { . = ALIGN(4); PROVIDE( _sbss = .); *(.sbss*) *(.gnu.linkonce.sb.*) *(.bss*) *(.gnu.linkonce.b.*) *(COMMON*) . = ALIGN(4); PROVIDE( _ebss = .); } >RAM AT>FLASH PROVIDE( _end = _ebss); PROVIDE( end = . ); .stack ORIGIN(RAM) + LENGTH(RAM) - __stack_size : { PROVIDE( _heap_end = . ); . = ALIGN(4); PROVIDE(_susrstack = . ); . = . + __stack_size; PROVIDE( _eusrstack = .); } >RAM } \ No newline at end of file diff --git a/bsp/wch/risc-v/ch32v103r-evt/figures/2022-03-27_182300.bmp b/bsp/wch/risc-v/ch32v103r-evt/figures/2022-03-27_182300.bmp new file mode 100644 index 0000000000000000000000000000000000000000..683478b7af979f883717411fa04c1fe1ae010042 GIT binary patch literal 3692886 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�^v#YzKt6Q#6cEd7`fYQKJXkVYKqk|`ERp2{xdK% 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 z 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 ^3|J66&a{Bw9Ec{FTPaZBmmQy^l+$YYSjY>&! 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

k=5#e&pn-dygFbpTZ{ph_SwSWXN>= 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%0DE+KTO1OaAY(U6I9!QIBrEn30Om1 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%0DuT0D8&3R(HsgG z@F@)GJYT>yY>8(1B0V)eeJ-mL%v4y)#t3g}VPR}xLHD9Q+%9CFmM)Vdrb*~tvI_DG zN=qVQqB$YUPV~GeC?M9s{DOkQq%(G}AZ+hG#KJqd`#8FJk!fIHZL6ef_}p{_*;)#Z z2H|gPY3~{sf(hL-GTbd#!V)xfHqi;mu_-ChsVRTMlQ`HD!m^@y&U}PmOo*)x2*W#r z*+j5@@ackOaHGV~N9^t&=gs-(Gi%>X87 zrTmEAicgA8%}mP3OU=xio1M!V&Rj-z4(;}#@d^GB5g>75is`jSlf+^LjuL6M(CoSvDPl@0XDj*E>aKEcb!7atRNCMze$%gc*(S8Z)Q zk)2~&Mpi{tB};4J5#fG80rVpnV%pV10c>n<>l#X4TT&+Vnjwj4WVVQ-5(8sXLz6P` z3`!Ex#gU25{$a$q=vdh+8Jf+~*2lp`M4O_nv4)8S5)%$7=5~&TR<_Ez#xE&pp+-=e zqi$-7h0fK<-HSn!oV^o-y*uoshdWe+7yOPF3phbRRFb#{1b7Ap;Q5jWQ3*o9sDD_5 zt5|GmW2305h8XJ^RvM;37La43IDLj39xFtm2u4ZJLgd7Z8kWS_+1b+*R>lKaml@Sd znwrd$W#1_QoBVT&g9EGl^i6b9C}_b@L{w%fr*h z-2=4aMNToG&xx{kyz*912K;mAnglV9F%wRbHuP-mtU--XC!_*6x;R>s@an*ec5(+G zyE@z3i|p)eTwEQYT6E6G+00GCz z@{{?j@Z;a_6$jzxo&yx{TX+rGMjnlQcoVp=o#i98^WfYIq{AD|1(X4--~zq?89jBK z@T2U)ulVaQ@dkRZ1+>Dy!VSC`3@{4!Vhg*;*b^Br;W_ZCpT1aMU%!#D@weZ8haAj@ zUw*mk=+UV71Ur%4`mu@k-g@Wg$ukXYoemyiV{7M##2h>(<@GHUb!}zUt&Piv)(#!m zvHS9gv-fY@`Q+8N9>4m|w^v{LboYsyt2Z2M>RPv8NndHr%KWmn?4rg@M(OgzqNb?g z=JbZ)^0iadn=e%CxR$@+Y}&}tC^D>|vaD=jU0zuk4bD17rl47YFP#1o zp}R!fSlYQ+Ie6N*`Z)RpMrLF$Xzdu?x##4Kn^#|d*&ed$Iom(dU|-< zRNv(8)$8|8?l^Mb#HGu(-gxVSFYmwe>E#=*oj7%M-~Q8^wjNze{!c%35~Hv!le?y- zPMyDc=e74f`Qq{Szx?p?li!}eoe22kuRs3Sy>mB_EGP1d9RLL3|dN0*Zt)qoJ8KizPTpUYv=UMFsmg4vy(B@if$_q=#yORbg-!$Ppfg z2h`LzrH~y`1{IlLnOC8Y{%>sZq8v7M?x+b_jD|$84=Z6^mlxtH1Wgz11JtT0QJ3lH z?7{>>|42duzPT@b8w)0&EV>>(KTbE-2?p{y}ez7gT14pLz_0Oo?PEG zIMm$TyR@ydv7@tP)hg!dZT*AYL&F2>){Sl1ykW=oO}lok-?n{t-TF0S6RUv$qa*G8 zy^GtL=hxR3R#qVuE?>B)zPV{>duu~mYxR+63bkM`KqJ!;ATU)r% z-qX`PIDpp=N$sk^fq|i+k#&=sckSMB;K0Tm+t-edwRLwjwzf2Pb*|{^>m3^EUAq>7 zds$m6t4WKRmM!mG(aV>3a+2r2yt})jzkhIIV)MRzyN@5=dF;g2!$;TeJ21It|Hge& zTMr)HdHmF#lV|pyK6~Wi<>Obb9XNAt+o2=tcI_G4wqwKYU0V+9-74@|AwzkmIKsf`DZY(8>o+p+W8kDS|a`0TEu=l7ntGK$3yy?SZ)V8g1_%X-%^7IpSkF7L>z zT?%g!m0c8;o*R~t8=GI6QMqt_L)+pNeT`iM4V}GIWc$W7TPM3GhuTL5NNj8A>unwA?;2XuKR&W{{rIZ2t8>fey9EauSc@PjKq3gO z(a-pYMtTQGY+c=Tj7?xV049J46DeaNH3Ed;HQ-0+61MZ=MMPeqtiiP8bvJ%d!`~cmNJ&cILDUW)ZZOu)?WtO5czzE7%0n z(2!zaVS%|G7Yw)q?++LXg}<=)?Cx&s?r!7iN_sGKGD=FYiKj%e|Jd=bfB5m>vExPa z=R;rftXo8Xl$q)>tV-uv%u+^~@qR8ErUr?Yc% zKmYvmufBfV)!Rb_$d}@&#>KXDbxdyEw0dl$u3;(I0jm_6tDvZG8E+Dd`x{+Thy?i} zn8iOV1X=_D0vG|XFl3N~Yheo>d8t=LChn45%ixK0o*w~G0wbA}m7biPk(iktm6#Y1 z63QIg8s5ahl2{cZPDxb2&{l~&22AzhbQY7TZY-%Nk4cE<#LO$=!pwo02TLwcZ{Q%< zF*mZKo!!8d4z3==o7%d$8HsFF^o*v_$MmlknLx}|R<^Wr@(2tS$0WFhN0|F~SujKM z^np-_Pfii&(X`Yk7z)%=IMC^BjKT$v;|AZ244a_oLf8h>isJ*uM~jai!&U50*Sx-! zy@HO>G(|OryrzMUg{>V+@L`dXgrv~KVhITej9LS;CX?lSnYfFe$}m0-y_uiV{q1o}SE6 z8<#gjD17qCr(Zt$;;lE|K6c_{clWB?oV@siL?UAGcQYGl@9N&Y|G=?RrzbaW$t^AQ z4GLn88WbE{T3Io^aq{--cfR=gi|>B?{=G*Jk6pe{)37u?Ikjft(ycr8e)8z^{}W#L zFK*|L^Q{nU$ZLS5#b*S6G;llbwMhB{zrguDtyG z_{5}$=$N$3tfG1IFgIaws;XU3yQsFIX;E`aL-X>c%8Kfwn#e3A<5%A{MX-Y@^^k5pwVX{X-=% zmBb@Rh)iesB_;|k%*n%x23QCb2oDTtoZlJGJj>UgDYqa@k}d2r%VnwzYJkze0*^6- zsV}o-=~wE1xq9X~mPBT;3_|oVt8>e{Ix7~{^X;}pcV%VmXe07)0{Xdny17BXcsRRw zxCn!$JJ#eyHr7xjQojj-u2A5D-^9QWY@%;%V}WW5NKNykgR_H;y^X!2H2lxi2|NNe zv3Ia_admP=Q*CR_#8XwrvWlV#Gn6^hmoUwI+PWw!f=90-Wl4nEC4m%1q$xN{Yd`+a5-v=Yfe$hggtrop*1r16YsXHV?O4?>mPA-PdIV91lwDR-%`$RtcklYG z+fSW3d++r5H>Qr?-L⁣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%0D-`gOQCIS=0c{SIk_1!d(dC6Koi5E8|kQCr(_ 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%0D}J*lVAlb3q%y}hXb%V(?mcbW_SWZ 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�y80B@8Ch9-_U`8A_VDQwunCn0&M^aX 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

    Y&3|BHV1flfw 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ǨzmklBSy@;!nLiOxy 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

    $LY_w`LDX=# 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%0D62>7) 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%0Ay- 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 z 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 z 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

    9kXcOEDl{B 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

    _hB_Mj|H6=MIH7zAQBQ+x}IV~|dHVSD+L?kBL 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