mirror of
https://github.com/ArteryTek/AT32F413_Firmware_Library.git
synced 2026-05-21 01:12:01 +00:00
update version to v2.0.6
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413.h
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief at32f413 header file
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
@@ -87,7 +87,7 @@ extern "C" {
|
||||
*/
|
||||
#define __AT32F413_LIBRARY_VERSION_MAJOR (0x02) /*!< [31:24] major version */
|
||||
#define __AT32F413_LIBRARY_VERSION_MIDDLE (0x00) /*!< [23:16] middle version */
|
||||
#define __AT32F413_LIBRARY_VERSION_MINOR (0x05) /*!< [15:8] minor version */
|
||||
#define __AT32F413_LIBRARY_VERSION_MINOR (0x06) /*!< [15:8] minor version */
|
||||
#define __AT32F413_LIBRARY_VERSION_RC (0x00) /*!< [7:0] release candidate */
|
||||
#define __AT32F413_LIBRARY_VERSION ((__AT32F413_LIBRARY_VERSION_MAJOR << 24) | \
|
||||
(__AT32F413_LIBRARY_VERSION_MIDDLE << 16) | \
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_conf.h
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief at32f413 config header file
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file startup_at32f413.s
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief at32f413xx devices vector table for gcc toolchain.
|
||||
* this module performs:
|
||||
* - set the initial sp
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
;**************************************************************************
|
||||
;* @file startup_at32f413.s
|
||||
;* @version v2.0.5
|
||||
;* @date 2022-05-20
|
||||
;* @version v2.0.6
|
||||
;* @date 2022-06-28
|
||||
;* @brief at32f413 startup file for IAR Systems
|
||||
;**************************************************************************
|
||||
;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
;**************************************************************************
|
||||
;* @file startup_at32f403a_407.s
|
||||
;* @version v2.0.5
|
||||
;* @date 2022-05-20
|
||||
;* @version v2.0.6
|
||||
;* @date 2022-06-28
|
||||
;* @brief at32f403a_407 startup file for keil
|
||||
;**************************************************************************
|
||||
;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file system_at32f413.c
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief contains all the functions for cmsis cortex-m4 system source file
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file system_at32f413.h
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief cmsis cortex-m4 system header file.
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
@@ -45,6 +45,7 @@ extern "C" {
|
||||
|
||||
#define HEXT_STABLE_DELAY (5000u)
|
||||
#define PLL_STABLE_DELAY (500u)
|
||||
#define SystemCoreClock system_core_clock
|
||||
|
||||
/**
|
||||
* @}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
* @file arm_sorting.h
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief Private header file for CMSIS DSP Library
|
||||
******************************************************************************/
|
||||
/*
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
* @file arm_vec_fft.h
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief Private header file for CMSIS DSP Library
|
||||
******************************************************************************/
|
||||
/*
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
* @file arm_vec_filtering.h
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief Private header file for CMSIS DSP Library
|
||||
******************************************************************************/
|
||||
/*
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
* @file arm_math.h
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief Public header file for CMSIS DSP Library
|
||||
******************************************************************************/
|
||||
/*
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
* @file arm_vec_math.h
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief Public header file for CMSIS DSP Library
|
||||
******************************************************************************/
|
||||
/*
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_acc.h
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief at32f413 acc header file
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_adc.h
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief at32f413 adc header file
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_bpr.h
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief at32f413 bpr header file
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_can.h
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief at32f413 can header file
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
@@ -352,7 +352,7 @@ typedef struct
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
uint16_t baudrate_div; /*!< baudrate division,this parameter can be 0x001~0x400.*/
|
||||
uint16_t baudrate_div; /*!< baudrate division,this parameter can be 0x001~0x1000.*/
|
||||
|
||||
can_rsaw_type rsaw_size; /*!< resynchronization adjust width */
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_crc.h
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief at32f413 crc header file
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_crm.h
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief at32f413 crm header file
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_debug.h
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief at32f413 debug header file
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_def.h
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief at32f413 macros header file
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
@@ -62,6 +62,8 @@ extern "C" {
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define UNUSED(x) (void)x /* to avoid gcc/g++ warnings */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_dma.h
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief at32f413 dma header file
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_exint.h
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief at32f413 exint header file
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_flash.h
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief at32f413 flash header file
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
@@ -600,7 +600,7 @@ error_status flash_slib_disable(uint32_t pwd);
|
||||
uint32_t flash_slib_remaining_count_get(void);
|
||||
flag_status flash_slib_state_get(void);
|
||||
uint16_t flash_slib_start_sector_get(void);
|
||||
uint16_t flash_slib_datstart_sector_get(void);
|
||||
uint16_t flash_slib_datastart_sector_get(void);
|
||||
uint16_t flash_slib_end_sector_get(void);
|
||||
uint32_t flash_crc_calibrate(uint32_t start_sector, uint32_t sector_cnt);
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_gpio.h
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief at32f413 gpio header file
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
@@ -767,7 +767,7 @@ uint16_t gpio_output_data_read(gpio_type *gpio_x);
|
||||
void gpio_bits_set(gpio_type *gpio_x, uint16_t pins);
|
||||
void gpio_bits_reset(gpio_type *gpio_x, uint16_t pins);
|
||||
void gpio_bits_write(gpio_type *gpio_x, uint16_t pins, confirm_state bit_state);
|
||||
void gpio_port_wirte(gpio_type *gpio_x, uint16_t port_value);
|
||||
void gpio_port_write(gpio_type *gpio_x, uint16_t port_value);
|
||||
void gpio_pin_wp_config(gpio_type *gpio_x, uint16_t pins);
|
||||
void gpio_event_output_config(gpio_port_source_type gpio_port_source, gpio_pins_source_type gpio_pin_source);
|
||||
void gpio_event_output_enable(confirm_state new_state);
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_i2c.h
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief at32f413 i2c header file
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_misc.h
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief at32f413 misc header file
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
@@ -76,9 +76,9 @@ typedef enum
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
NVIC_LP_SLEEPONEXIT = 0x02, /*!< send event on pending */
|
||||
NVIC_LP_SLEEPONEXIT = 0x02, /*!< enable sleep-on-exit feature */
|
||||
NVIC_LP_SLEEPDEEP = 0x04, /*!< enable sleep-deep output signal when entering sleep mode */
|
||||
NVIC_LP_SEVONPEND = 0x10 /*!< enable sleep-on-exit feature */
|
||||
NVIC_LP_SEVONPEND = 0x10 /*!< send event on pending */
|
||||
} nvic_lowpower_mode_type;
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_pwc.h
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief at32f413 pwc header file
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
@@ -98,15 +98,6 @@ typedef enum
|
||||
PWC_DEEP_SLEEP_ENTER_WFE = 0x01 /*!< use wfe enter deepsleep mode */
|
||||
} pwc_deep_sleep_enter_type;
|
||||
|
||||
/**
|
||||
* @brief pwc regulator type
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
PWC_REGULATOR_ON = 0x00, /*!< voltage regulator state on when deepsleep mode */
|
||||
PWC_REGULATOR_LOW_POWER = 0x01 /*!< voltage regulator state low power when deepsleep mode */
|
||||
} pwc_regulator_type;
|
||||
|
||||
/**
|
||||
* @brief type define pwc register all
|
||||
*/
|
||||
@@ -120,14 +111,14 @@ typedef struct
|
||||
__IO uint32_t ctrl;
|
||||
struct
|
||||
{
|
||||
__IO uint32_t vrsel : 1; /* [0] */
|
||||
__IO uint32_t reserved1 : 1; /* [0] */
|
||||
__IO uint32_t lpsel : 1; /* [1] */
|
||||
__IO uint32_t clswef : 1; /* [2] */
|
||||
__IO uint32_t clsef : 1; /* [3] */
|
||||
__IO uint32_t pvmen : 1; /* [4] */
|
||||
__IO uint32_t pvmsel : 3; /* [7:5] */
|
||||
__IO uint32_t bpwen : 1; /* [8] */
|
||||
__IO uint32_t reserved1 : 23;/* [31:9] */
|
||||
__IO uint32_t reserved2 : 23;/* [31:9] */
|
||||
} ctrl_bit;
|
||||
};
|
||||
|
||||
@@ -169,7 +160,6 @@ void pwc_flag_clear(uint32_t pwc_flag);
|
||||
flag_status pwc_flag_get(uint32_t pwc_flag);
|
||||
void pwc_sleep_mode_enter(pwc_sleep_enter_type pwc_sleep_enter);
|
||||
void pwc_deep_sleep_mode_enter(pwc_deep_sleep_enter_type pwc_deep_sleep_enter);
|
||||
void pwc_voltage_regulate_set(pwc_regulator_type pwc_regulator);
|
||||
void pwc_standby_mode_enter(void);
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_rtc.h
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief at32f413 rtc header file
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_sdio.h
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief at32f413 sdio header file
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
@@ -577,7 +577,7 @@ typedef struct
|
||||
|
||||
void sdio_reset(sdio_type *sdio_x);
|
||||
void sdio_power_set(sdio_type *sdio_x, sdio_power_state_type power_state);
|
||||
flag_status sdio_power_status_get(sdio_type *sdio_x);
|
||||
sdio_power_state_type sdio_power_status_get(sdio_type *sdio_x);
|
||||
void sdio_clock_config(sdio_type *sdio_x, uint16_t clk_div, sdio_edge_phase_type clk_edg);
|
||||
void sdio_bus_width_config(sdio_type *sdio_x, sdio_bus_width_type width);
|
||||
void sdio_clock_bypass(sdio_type *sdio_x, confirm_state new_state);
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_spi.h
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief at32f413 spi header file
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_tmr.h
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief at32f413 tmr header file
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
@@ -883,7 +883,7 @@ void tmr_input_channel_filter_set(tmr_type *tmr_x, tmr_channel_select_type tmr_c
|
||||
uint16_t filter_value);
|
||||
void tmr_pwm_input_config(tmr_type *tmr_x, tmr_input_config_type *input_struct, \
|
||||
tmr_channel_input_divider_type divider_factor);
|
||||
void tmr_channel1_input_select(tmr_type *tmr_x, tmr_channel1_input_connected_type ti1_connect);
|
||||
void tmr_channel1_input_select(tmr_type *tmr_x, tmr_channel1_input_connected_type ch1_connect);
|
||||
void tmr_input_channel_divider_set(tmr_type *tmr_x, tmr_channel_select_type tmr_channel, \
|
||||
tmr_channel_input_divider_type divider_factor);
|
||||
void tmr_primary_mode_select(tmr_type *tmr_x, tmr_primary_select_type primary_mode);
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_usart.h
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief at32f413 usart header file
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_usb.h
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief at32f413 usb header file
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_wdt.h
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief at32f413 wdt header file
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_wwdt.h
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief at32f413 wwdt header file
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_acc.c
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief contains all the functions for the acc firmware library
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_adc.c
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief contains all the functions for the adc firmware library
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_bpr.c
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief contains all the functions for the bpr firmware library
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_can.c
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief contains all the functions for the can firmware library
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_crc.c
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief contains all the functions for the crc firmware library
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_crm.c
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief contains all the functions for the crm firmware library
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_debug.c
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief contains all the functions for the debug firmware library
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_dma.c
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief contains all the functions for the dma firmware library
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_exint.c
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief contains all the functions for the exint firmware library
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_flash.c
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief contains all the functions for the flash firmware library
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
@@ -275,42 +275,27 @@ flash_status_type flash_sector_erase(uint32_t sector_address)
|
||||
/* spim : external flash */
|
||||
if(sector_address >= FLASH_SPIM_START_ADDR)
|
||||
{
|
||||
/* wait for last operation to be completed */
|
||||
FLASH->ctrl3_bit.secers = TRUE;
|
||||
FLASH->addr3 = sector_address;
|
||||
FLASH->ctrl3_bit.erstr = TRUE;
|
||||
|
||||
/* wait for operation to be completed */
|
||||
status = flash_spim_operation_wait_for(SPIM_ERASE_TIMEOUT);
|
||||
|
||||
if(status == FLASH_OPERATE_DONE)
|
||||
{
|
||||
/* if the previous operation is completed, continue to erase the sector */
|
||||
FLASH->ctrl3_bit.secers = TRUE;
|
||||
FLASH->addr3 = sector_address;
|
||||
FLASH->ctrl3_bit.erstr = TRUE;
|
||||
|
||||
/* wait for operation to be completed */
|
||||
status = flash_spim_operation_wait_for(SPIM_ERASE_TIMEOUT);
|
||||
|
||||
/* disable the secers bit */
|
||||
FLASH->ctrl3_bit.secers = FALSE;
|
||||
}
|
||||
return status;
|
||||
/* disable the secers bit */
|
||||
FLASH->ctrl3_bit.secers = FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* wait for last operation to be completed */
|
||||
FLASH->ctrl_bit.secers = TRUE;
|
||||
FLASH->addr = sector_address;
|
||||
FLASH->ctrl_bit.erstr = TRUE;
|
||||
|
||||
/* wait for operation to be completed */
|
||||
status = flash_operation_wait_for(ERASE_TIMEOUT);
|
||||
|
||||
if(status == FLASH_OPERATE_DONE)
|
||||
{
|
||||
/* if the previous operation is completed, continue to erase the sector */
|
||||
FLASH->ctrl_bit.secers = TRUE;
|
||||
FLASH->addr = sector_address;
|
||||
FLASH->ctrl_bit.erstr = TRUE;
|
||||
|
||||
/* wait for operation to be completed */
|
||||
status = flash_operation_wait_for(ERASE_TIMEOUT);
|
||||
|
||||
/* disable the secers bit */
|
||||
FLASH->ctrl_bit.secers = FALSE;
|
||||
}
|
||||
/* disable the secers bit */
|
||||
FLASH->ctrl_bit.secers = FALSE;
|
||||
}
|
||||
/* return the erase status */
|
||||
return status;
|
||||
@@ -325,21 +310,16 @@ flash_status_type flash_sector_erase(uint32_t sector_address)
|
||||
flash_status_type flash_internal_all_erase(void)
|
||||
{
|
||||
flash_status_type status = FLASH_OPERATE_DONE;
|
||||
/* wait for last operation to be completed */
|
||||
|
||||
FLASH->ctrl_bit.bankers = TRUE;
|
||||
FLASH->ctrl_bit.erstr = TRUE;
|
||||
|
||||
/* wait for operation to be completed */
|
||||
status = flash_operation_wait_for(ERASE_TIMEOUT);
|
||||
|
||||
if(status == FLASH_OPERATE_DONE)
|
||||
{
|
||||
/* if the previous operation is completed, continue to erase bank1 */
|
||||
FLASH->ctrl_bit.bankers = TRUE;
|
||||
FLASH->ctrl_bit.erstr = TRUE;
|
||||
/* disable the bankers bit */
|
||||
FLASH->ctrl_bit.bankers = FALSE;
|
||||
|
||||
/* wait for operation to be completed */
|
||||
status = flash_operation_wait_for(ERASE_TIMEOUT);
|
||||
|
||||
/* disable the bankers bit */
|
||||
FLASH->ctrl_bit.bankers = FALSE;
|
||||
}
|
||||
/* return the erase status */
|
||||
return status;
|
||||
}
|
||||
@@ -353,21 +333,16 @@ flash_status_type flash_internal_all_erase(void)
|
||||
flash_status_type flash_spim_all_erase(void)
|
||||
{
|
||||
flash_status_type status = FLASH_OPERATE_DONE;
|
||||
/* wait for last operation to be completed */
|
||||
|
||||
FLASH->ctrl3_bit.chpers = TRUE;
|
||||
FLASH->ctrl3_bit.erstr = TRUE;
|
||||
|
||||
/* wait for operation to be completed */
|
||||
status = flash_spim_operation_wait_for(SPIM_ERASE_TIMEOUT);
|
||||
|
||||
if(status == FLASH_OPERATE_DONE)
|
||||
{
|
||||
/* if the previous operation is completed, continue to erase spim */
|
||||
FLASH->ctrl3_bit.chpers = TRUE;
|
||||
FLASH->ctrl3_bit.erstr = TRUE;
|
||||
/* disable the chpers bit */
|
||||
FLASH->ctrl3_bit.chpers = FALSE;
|
||||
|
||||
/* wait for operation to be completed */
|
||||
status = flash_spim_operation_wait_for(SPIM_ERASE_TIMEOUT);
|
||||
|
||||
/* disable the chpers bit */
|
||||
FLASH->ctrl3_bit.chpers = FALSE;
|
||||
}
|
||||
/* return the erase status */
|
||||
return status;
|
||||
}
|
||||
@@ -389,41 +364,36 @@ flash_status_type flash_user_system_data_erase(void)
|
||||
fap_val = 0x0000;
|
||||
}
|
||||
|
||||
/* wait for last operation to be completed */
|
||||
/* unlock the user system data */
|
||||
FLASH->usd_unlock = FLASH_UNLOCK_KEY1;
|
||||
FLASH->usd_unlock = FLASH_UNLOCK_KEY2;
|
||||
while(FLASH->ctrl_bit.usdulks == RESET);
|
||||
|
||||
/* erase the user system data */
|
||||
FLASH->ctrl_bit.usders = TRUE;
|
||||
FLASH->ctrl_bit.erstr = TRUE;
|
||||
|
||||
/* wait for operation to be completed */
|
||||
status = flash_operation_wait_for(ERASE_TIMEOUT);
|
||||
|
||||
if(status == FLASH_OPERATE_DONE)
|
||||
{
|
||||
/* unlock the user system data */
|
||||
FLASH->usd_unlock = FLASH_UNLOCK_KEY1;
|
||||
FLASH->usd_unlock = FLASH_UNLOCK_KEY2;
|
||||
while(FLASH->ctrl_bit.usdulks==RESET);
|
||||
/* disable the usders bit */
|
||||
FLASH->ctrl_bit.usders = FALSE;
|
||||
|
||||
/* erase the user system data */
|
||||
FLASH->ctrl_bit.usders = TRUE;
|
||||
FLASH->ctrl_bit.erstr = TRUE;
|
||||
if((status == FLASH_OPERATE_DONE) && (fap_val == FAP_RELIEVE_KEY))
|
||||
{
|
||||
/* enable the user system data programming operation */
|
||||
FLASH->ctrl_bit.usdprgm = TRUE;
|
||||
|
||||
/* restore the last flash access protection value */
|
||||
USD->fap = (uint16_t)fap_val;
|
||||
|
||||
/* wait for operation to be completed */
|
||||
status = flash_operation_wait_for(ERASE_TIMEOUT);
|
||||
status = flash_operation_wait_for(PROGRAMMING_TIMEOUT);
|
||||
|
||||
/* disable the usders bit */
|
||||
FLASH->ctrl_bit.usders = FALSE;
|
||||
|
||||
if((status == FLASH_OPERATE_DONE) && (fap_val == FAP_RELIEVE_KEY))
|
||||
{
|
||||
/* enable the user system data programming operation */
|
||||
FLASH->ctrl_bit.usdprgm = TRUE;
|
||||
|
||||
/* restore the last flash access protection value */
|
||||
USD->fap = (uint16_t)fap_val;
|
||||
|
||||
/* wait for operation to be completed */
|
||||
status = flash_operation_wait_for(PROGRAMMING_TIMEOUT);
|
||||
|
||||
/*disable the usdprgm bit */
|
||||
FLASH->ctrl_bit.usdprgm = FALSE;
|
||||
}
|
||||
/*disable the usdprgm bit */
|
||||
FLASH->ctrl_bit.usdprgm = FALSE;
|
||||
}
|
||||
|
||||
/* return the erase status */
|
||||
return status;
|
||||
}
|
||||
@@ -441,35 +411,23 @@ flash_status_type flash_word_program(uint32_t address, uint32_t data)
|
||||
/* spim : external flash */
|
||||
if(address >= FLASH_SPIM_START_ADDR)
|
||||
{
|
||||
/* wait for last operation to be completed */
|
||||
FLASH->ctrl3_bit.fprgm = TRUE;
|
||||
*(__IO uint32_t*)address = data;
|
||||
/* wait for operation to be completed */
|
||||
status = flash_spim_operation_wait_for(SPIM_PROGRAMMING_TIMEOUT);
|
||||
|
||||
if(status == FLASH_OPERATE_DONE)
|
||||
{
|
||||
FLASH->ctrl3_bit.fprgm = TRUE;
|
||||
*(__IO uint32_t*)address = data;
|
||||
/* wait for operation to be completed */
|
||||
status = flash_spim_operation_wait_for(SPIM_PROGRAMMING_TIMEOUT);
|
||||
|
||||
/* disable the fprgm bit */
|
||||
FLASH->ctrl3_bit.fprgm = FALSE;
|
||||
}
|
||||
/* disable the fprgm bit */
|
||||
FLASH->ctrl3_bit.fprgm = FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* wait for last operation to be completed */
|
||||
FLASH->ctrl_bit.fprgm = TRUE;
|
||||
*(__IO uint32_t*)address = data;
|
||||
/* wait for operation to be completed */
|
||||
status = flash_operation_wait_for(PROGRAMMING_TIMEOUT);
|
||||
|
||||
if(status == FLASH_OPERATE_DONE)
|
||||
{
|
||||
FLASH->ctrl_bit.fprgm = TRUE;
|
||||
*(__IO uint32_t*)address = data;
|
||||
/* wait for operation to be completed */
|
||||
status = flash_operation_wait_for(PROGRAMMING_TIMEOUT);
|
||||
|
||||
/* disable the fprgm bit */
|
||||
FLASH->ctrl_bit.fprgm = FALSE;
|
||||
}
|
||||
/* disable the fprgm bit */
|
||||
FLASH->ctrl_bit.fprgm = FALSE;
|
||||
}
|
||||
/* return the program status */
|
||||
return status;
|
||||
@@ -488,35 +446,23 @@ flash_status_type flash_halfword_program(uint32_t address, uint16_t data)
|
||||
/* spim : external flash */
|
||||
if(address >= FLASH_SPIM_START_ADDR)
|
||||
{
|
||||
/* wait for last operation to be completed */
|
||||
FLASH->ctrl3_bit.fprgm = TRUE;
|
||||
*(__IO uint16_t*)address = data;
|
||||
/* wait for operation to be completed */
|
||||
status = flash_spim_operation_wait_for(SPIM_PROGRAMMING_TIMEOUT);
|
||||
|
||||
if(status == FLASH_OPERATE_DONE)
|
||||
{
|
||||
FLASH->ctrl3_bit.fprgm = TRUE;
|
||||
*(__IO uint16_t*)address = data;
|
||||
/* wait for operation to be completed */
|
||||
status = flash_spim_operation_wait_for(SPIM_PROGRAMMING_TIMEOUT);
|
||||
|
||||
/* disable the fprgm bit */
|
||||
FLASH->ctrl3_bit.fprgm = FALSE;
|
||||
}
|
||||
/* disable the fprgm bit */
|
||||
FLASH->ctrl3_bit.fprgm = FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* wait for last operation to be completed */
|
||||
FLASH->ctrl_bit.fprgm = TRUE;
|
||||
*(__IO uint16_t*)address = data;
|
||||
/* wait for operation to be completed */
|
||||
status = flash_operation_wait_for(PROGRAMMING_TIMEOUT);
|
||||
|
||||
if(status == FLASH_OPERATE_DONE)
|
||||
{
|
||||
FLASH->ctrl_bit.fprgm = TRUE;
|
||||
*(__IO uint16_t*)address = data;
|
||||
/* wait for operation to be completed */
|
||||
status = flash_operation_wait_for(PROGRAMMING_TIMEOUT);
|
||||
|
||||
/* disable the fprgm bit */
|
||||
FLASH->ctrl_bit.fprgm = FALSE;
|
||||
}
|
||||
/* disable the fprgm bit */
|
||||
FLASH->ctrl_bit.fprgm = FALSE;
|
||||
}
|
||||
/* return the program status */
|
||||
return status;
|
||||
@@ -533,19 +479,15 @@ flash_status_type flash_halfword_program(uint32_t address, uint16_t data)
|
||||
flash_status_type flash_byte_program(uint32_t address, uint8_t data)
|
||||
{
|
||||
flash_status_type status = FLASH_OPERATE_DONE;
|
||||
/* wait for last operation to be completed */
|
||||
|
||||
FLASH->ctrl_bit.fprgm = TRUE;
|
||||
*(__IO uint8_t*)address = data;
|
||||
/* wait for operation to be completed */
|
||||
status = flash_operation_wait_for(PROGRAMMING_TIMEOUT);
|
||||
|
||||
if(status == FLASH_OPERATE_DONE)
|
||||
{
|
||||
FLASH->ctrl_bit.fprgm = TRUE;
|
||||
*(__IO uint8_t*)address = data;
|
||||
/* wait for operation to be completed */
|
||||
status = flash_operation_wait_for(PROGRAMMING_TIMEOUT);
|
||||
/* disable the fprgm bit */
|
||||
FLASH->ctrl_bit.fprgm = FALSE;
|
||||
|
||||
/* disable the fprgm bit */
|
||||
FLASH->ctrl_bit.fprgm = FALSE;
|
||||
}
|
||||
/* return the program status */
|
||||
return status;
|
||||
}
|
||||
@@ -560,24 +502,28 @@ flash_status_type flash_byte_program(uint32_t address, uint8_t data)
|
||||
flash_status_type flash_user_system_data_program(uint32_t address, uint8_t data)
|
||||
{
|
||||
flash_status_type status = FLASH_OPERATE_DONE;
|
||||
status = flash_operation_wait_for(PROGRAMMING_TIMEOUT);
|
||||
if(status == FLASH_OPERATE_DONE)
|
||||
|
||||
if(address == USD_BASE)
|
||||
{
|
||||
/* unlock the user system data */
|
||||
FLASH->usd_unlock = FLASH_UNLOCK_KEY1;
|
||||
FLASH->usd_unlock = FLASH_UNLOCK_KEY2;
|
||||
while(FLASH->ctrl_bit.usdulks==RESET);
|
||||
|
||||
/* enable the user system data programming operation */
|
||||
FLASH->ctrl_bit.usdprgm = TRUE;
|
||||
*(__IO uint16_t*)address = data;
|
||||
|
||||
/* wait for operation to be completed */
|
||||
status = flash_operation_wait_for(PROGRAMMING_TIMEOUT);
|
||||
|
||||
/* disable the usdprgm bit */
|
||||
FLASH->ctrl_bit.usdprgm = FALSE;
|
||||
if(data != 0xA5)
|
||||
return FLASH_OPERATE_DONE;
|
||||
}
|
||||
|
||||
/* unlock the user system data */
|
||||
FLASH->usd_unlock = FLASH_UNLOCK_KEY1;
|
||||
FLASH->usd_unlock = FLASH_UNLOCK_KEY2;
|
||||
while(FLASH->ctrl_bit.usdulks==RESET);
|
||||
|
||||
/* enable the user system data programming operation */
|
||||
FLASH->ctrl_bit.usdprgm = TRUE;
|
||||
*(__IO uint16_t*)address = data;
|
||||
|
||||
/* wait for operation to be completed */
|
||||
status = flash_operation_wait_for(PROGRAMMING_TIMEOUT);
|
||||
|
||||
/* disable the usdprgm bit */
|
||||
FLASH->ctrl_bit.usdprgm = FALSE;
|
||||
|
||||
/* return the user system data program status */
|
||||
return status;
|
||||
}
|
||||
@@ -600,42 +546,38 @@ flash_status_type flash_epp_set(uint32_t *sector_bits)
|
||||
epp_data[1] = (uint16_t)((sector_bits[0] >> 8) & 0xFF);
|
||||
epp_data[2] = (uint16_t)((sector_bits[0] >> 16) & 0xFF);
|
||||
epp_data[3] = (uint16_t)((sector_bits[0] >> 24) & 0xFF);
|
||||
/* wait for last operation to be completed */
|
||||
|
||||
/* unlock the user system data */
|
||||
FLASH->usd_unlock = FLASH_UNLOCK_KEY1;
|
||||
FLASH->usd_unlock = FLASH_UNLOCK_KEY2;
|
||||
while(FLASH->ctrl_bit.usdulks==RESET);
|
||||
|
||||
FLASH->ctrl_bit.usdprgm = TRUE;
|
||||
USD->epp0 = epp_data[0];
|
||||
/* wait for operation to be completed */
|
||||
status = flash_operation_wait_for(PROGRAMMING_TIMEOUT);
|
||||
|
||||
if(status == FLASH_OPERATE_DONE)
|
||||
{
|
||||
/* unlock the user system data */
|
||||
FLASH->usd_unlock = FLASH_UNLOCK_KEY1;
|
||||
FLASH->usd_unlock = FLASH_UNLOCK_KEY2;
|
||||
while(FLASH->ctrl_bit.usdulks==RESET);
|
||||
|
||||
FLASH->ctrl_bit.usdprgm = TRUE;
|
||||
USD->epp0 = epp_data[0];
|
||||
USD->epp1 = epp_data[1];
|
||||
/* wait for operation to be completed */
|
||||
status = flash_operation_wait_for(PROGRAMMING_TIMEOUT);
|
||||
|
||||
if(status == FLASH_OPERATE_DONE)
|
||||
{
|
||||
USD->epp1 = epp_data[1];
|
||||
/* wait for operation to be completed */
|
||||
status = flash_operation_wait_for(PROGRAMMING_TIMEOUT);
|
||||
}
|
||||
if(status == FLASH_OPERATE_DONE)
|
||||
{
|
||||
USD->epp2 = epp_data[2];
|
||||
/* wait for operation to be completed */
|
||||
status = flash_operation_wait_for(PROGRAMMING_TIMEOUT);
|
||||
}
|
||||
if(status == FLASH_OPERATE_DONE)
|
||||
{
|
||||
USD->epp3 = epp_data[3];
|
||||
/* wait for operation to be completed */
|
||||
status = flash_operation_wait_for(PROGRAMMING_TIMEOUT);
|
||||
}
|
||||
/* disable the usdprgm bit */
|
||||
FLASH->ctrl_bit.usdprgm = FALSE;
|
||||
}
|
||||
if(status == FLASH_OPERATE_DONE)
|
||||
{
|
||||
USD->epp2 = epp_data[2];
|
||||
/* wait for operation to be completed */
|
||||
status = flash_operation_wait_for(PROGRAMMING_TIMEOUT);
|
||||
}
|
||||
if(status == FLASH_OPERATE_DONE)
|
||||
{
|
||||
USD->epp3 = epp_data[3];
|
||||
/* wait for operation to be completed */
|
||||
status = flash_operation_wait_for(PROGRAMMING_TIMEOUT);
|
||||
}
|
||||
/* disable the usdprgm bit */
|
||||
FLASH->ctrl_bit.usdprgm = FALSE;
|
||||
|
||||
/* return the erase/program protection operation status */
|
||||
return status;
|
||||
}
|
||||
@@ -663,38 +605,36 @@ void flash_epp_status_get(uint32_t *sector_bits)
|
||||
flash_status_type flash_fap_enable(confirm_state new_state)
|
||||
{
|
||||
flash_status_type status = FLASH_OPERATE_DONE;
|
||||
|
||||
/* unlock the user system data */
|
||||
FLASH->usd_unlock = FLASH_UNLOCK_KEY1;
|
||||
FLASH->usd_unlock = FLASH_UNLOCK_KEY2;
|
||||
while(FLASH->ctrl_bit.usdulks==RESET);
|
||||
|
||||
FLASH->ctrl_bit.usders = TRUE;
|
||||
FLASH->ctrl_bit.erstr = TRUE;
|
||||
/* wait for operation to be completed */
|
||||
status = flash_operation_wait_for(ERASE_TIMEOUT);
|
||||
|
||||
/* disable the usders bit */
|
||||
FLASH->ctrl_bit.usders = FALSE;
|
||||
|
||||
if(status == FLASH_OPERATE_DONE)
|
||||
{
|
||||
/* unlock the user system data */
|
||||
FLASH->usd_unlock = FLASH_UNLOCK_KEY1;
|
||||
FLASH->usd_unlock = FLASH_UNLOCK_KEY2;
|
||||
while(FLASH->ctrl_bit.usdulks==RESET);
|
||||
|
||||
FLASH->ctrl_bit.usders = TRUE;
|
||||
FLASH->ctrl_bit.erstr = TRUE;
|
||||
/* wait for operation to be completed */
|
||||
status = flash_operation_wait_for(ERASE_TIMEOUT);
|
||||
|
||||
/* disable the usders bit */
|
||||
FLASH->ctrl_bit.usders = FALSE;
|
||||
|
||||
if(status == FLASH_OPERATE_DONE)
|
||||
if(new_state == FALSE)
|
||||
{
|
||||
if(new_state == FALSE)
|
||||
{
|
||||
/* enable the user system data programming operation */
|
||||
FLASH->ctrl_bit.usdprgm = TRUE;
|
||||
USD->fap = FAP_RELIEVE_KEY;
|
||||
/* enable the user system data programming operation */
|
||||
FLASH->ctrl_bit.usdprgm = TRUE;
|
||||
USD->fap = FAP_RELIEVE_KEY;
|
||||
|
||||
/* Wait for operation to be completed */
|
||||
status = flash_operation_wait_for(ERASE_TIMEOUT);
|
||||
/* Wait for operation to be completed */
|
||||
status = flash_operation_wait_for(ERASE_TIMEOUT);
|
||||
|
||||
/* disable the usdprgm bit */
|
||||
FLASH->ctrl_bit.usdprgm = FALSE;
|
||||
}
|
||||
/* disable the usdprgm bit */
|
||||
FLASH->ctrl_bit.usdprgm = FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
/* return the flash access protection operation status */
|
||||
return status;
|
||||
}
|
||||
@@ -731,26 +671,22 @@ flag_status flash_fap_status_get(void)
|
||||
flash_status_type flash_ssb_set(uint8_t usd_ssb)
|
||||
{
|
||||
flash_status_type status = FLASH_OPERATE_DONE;
|
||||
/* wait for last operation to be completed */
|
||||
|
||||
/* unlock the user system data */
|
||||
FLASH->usd_unlock = FLASH_UNLOCK_KEY1;
|
||||
FLASH->usd_unlock = FLASH_UNLOCK_KEY2;
|
||||
while(FLASH->ctrl_bit.usdulks==RESET);
|
||||
|
||||
/* enable the user system data programming operation */
|
||||
FLASH->ctrl_bit.usdprgm = TRUE;
|
||||
|
||||
USD->ssb = usd_ssb;
|
||||
/* wait for operation to be completed */
|
||||
status = flash_operation_wait_for(PROGRAMMING_TIMEOUT);
|
||||
|
||||
if(status == FLASH_OPERATE_DONE)
|
||||
{
|
||||
/* unlock the user system data */
|
||||
FLASH->usd_unlock = FLASH_UNLOCK_KEY1;
|
||||
FLASH->usd_unlock = FLASH_UNLOCK_KEY2;
|
||||
while(FLASH->ctrl_bit.usdulks==RESET);
|
||||
/* disable the usdprgm bit */
|
||||
FLASH->ctrl_bit.usdprgm = FALSE;
|
||||
|
||||
/* enable the user system data programming operation */
|
||||
FLASH->ctrl_bit.usdprgm = TRUE;
|
||||
|
||||
USD->ssb = usd_ssb;
|
||||
/* wait for operation to be completed */
|
||||
status = flash_operation_wait_for(PROGRAMMING_TIMEOUT);
|
||||
|
||||
/* disable the usdprgm bit */
|
||||
FLASH->ctrl_bit.usdprgm = FALSE;
|
||||
}
|
||||
/* return the user system data program status */
|
||||
return status;
|
||||
}
|
||||
@@ -825,29 +761,29 @@ flash_status_type flash_slib_enable(uint32_t pwd, uint16_t start_sector, uint16_
|
||||
{
|
||||
uint32_t slib_range;
|
||||
flash_status_type status = FLASH_OPERATE_DONE;
|
||||
/* wait for last operation to be completed */
|
||||
status = flash_operation_wait_for(PROGRAMMING_TIMEOUT);
|
||||
|
||||
/*check range param limits*/
|
||||
if((start_sector>=data_start_sector) || ((data_start_sector > end_sector) && \
|
||||
(data_start_sector != 0x7FF)) || (start_sector > end_sector))
|
||||
return FLASH_PROGRAM_ERROR;
|
||||
|
||||
|
||||
/* unlock slib cfg register */
|
||||
FLASH->slib_unlock = SLIB_UNLOCK_KEY;
|
||||
while(FLASH->slib_misc_sts_bit.slib_ulkf==RESET);
|
||||
|
||||
slib_range = ((uint32_t)(data_start_sector << 11) & FLASH_SLIB_DATA_START_SECTOR) | \
|
||||
((uint32_t)(end_sector << 22) & FLASH_SLIB_END_SECTOR) | \
|
||||
(start_sector & FLASH_SLIB_START_SECTOR);
|
||||
/* configure slib, set pwd and range */
|
||||
FLASH->slib_set_pwd = pwd;
|
||||
status = flash_operation_wait_for(PROGRAMMING_TIMEOUT);
|
||||
if(status == FLASH_OPERATE_DONE)
|
||||
{
|
||||
/* unlock slib cfg register */
|
||||
FLASH->slib_unlock = SLIB_UNLOCK_KEY;
|
||||
while(FLASH->slib_misc_sts_bit.slib_ulkf==RESET);
|
||||
|
||||
slib_range = ((uint32_t)(data_start_sector << 11) & FLASH_SLIB_DATA_START_SECTOR) | \
|
||||
((uint32_t)(end_sector << 22) & FLASH_SLIB_END_SECTOR) | \
|
||||
(start_sector & FLASH_SLIB_START_SECTOR);
|
||||
/* configure slib, set pwd and range */
|
||||
FLASH->slib_set_pwd = pwd;
|
||||
status = flash_operation_wait_for(PROGRAMMING_TIMEOUT);
|
||||
FLASH->slib_set_range = slib_range;
|
||||
status = flash_operation_wait_for(PROGRAMMING_TIMEOUT);
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
@@ -911,7 +847,7 @@ uint16_t flash_slib_start_sector_get(void)
|
||||
* @param none
|
||||
* @retval uint16_t
|
||||
*/
|
||||
uint16_t flash_slib_datstart_sector_get(void)
|
||||
uint16_t flash_slib_datastart_sector_get(void)
|
||||
{
|
||||
return (uint16_t)FLASH->slib_sts1_bit.slib_dat_ss;
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_gpio.c
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief contains all the functions for the gpio firmware library
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
@@ -390,7 +390,7 @@ void gpio_bits_write(gpio_type *gpio_x, uint16_t pins, confirm_state bit_state)
|
||||
* @param port_value: specifies the value to be written to the port output data register.
|
||||
* @retval none
|
||||
*/
|
||||
void gpio_port_wirte(gpio_type *gpio_x, uint16_t port_value)
|
||||
void gpio_port_write(gpio_type *gpio_x, uint16_t port_value)
|
||||
{
|
||||
gpio_x->odt = port_value;
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_i2c.c
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief contains all the functions for the i2c firmware library
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
@@ -600,7 +600,7 @@ flag_status i2c_flag_get(i2c_type *i2c_x, uint32_t flag)
|
||||
* @brief clear flag status
|
||||
* @param i2c_x: to select the i2c peripheral.
|
||||
* this parameter can be one of the following values:
|
||||
* I2C1, I2C2.
|
||||
* I2C1, I2C2, I2C3.
|
||||
* @param flag
|
||||
* this parameter can be any combination of the following values:
|
||||
* - I2C_BUSERR_FLAG: bus error flag.
|
||||
@@ -610,11 +610,23 @@ flag_status i2c_flag_get(i2c_type *i2c_x, uint32_t flag)
|
||||
* - I2C_PECERR_FLAG: pec receive error flag.
|
||||
* - I2C_TMOUT_FLAG: smbus timeout flag.
|
||||
* - I2C_ALERTF_FLAG: smbus alert flag.
|
||||
* - I2C_STOPF_FLAG: stop condition generation complete flag.
|
||||
* - I2C_ADDR7F_FLAG: i2c 0~7 bit address match flag.
|
||||
* @retval none
|
||||
*/
|
||||
void i2c_flag_clear(i2c_type *i2c_x, uint32_t flag)
|
||||
{
|
||||
i2c_x->sts1 = (uint16_t)~(flag & (uint32_t)0x00FFFFFF);
|
||||
{
|
||||
i2c_x->sts1 = (uint16_t)~(flag & (uint32_t)0x0000DF00);
|
||||
|
||||
if(i2c_x->sts1 & I2C_ADDR7F_FLAG)
|
||||
{
|
||||
UNUSED(i2c_x->sts2);
|
||||
}
|
||||
|
||||
if(i2c_x->sts1 & I2C_STOPF_FLAG)
|
||||
{
|
||||
i2c_x->ctrl1_bit.i2cen = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_misc.c
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief contains all the functions for the misc firmware library
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_pwc.c
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief contains all the functions for the pwc firmware library
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
@@ -202,19 +202,6 @@ void pwc_deep_sleep_mode_enter(pwc_deep_sleep_enter_type pwc_deep_sleep_enter)
|
||||
SCB->SCR &= (uint32_t)~0x4;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief regulate low power consumption in the deep sleep mode
|
||||
* @param pwc_regulator: set the regulator state.
|
||||
* this parameter can be one of the following values:
|
||||
* - PWC_REGULATOR_ON
|
||||
* - PWC_REGULATOR_LOW_POWER
|
||||
* @retval none
|
||||
*/
|
||||
void pwc_voltage_regulate_set(pwc_regulator_type pwc_regulator)
|
||||
{
|
||||
PWC->ctrl_bit.vrsel = pwc_regulator;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief enter pwc standby mode
|
||||
* @param none
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_rtc.c
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief contains all the functions for the rtc firmware library
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
@@ -76,7 +76,7 @@ uint32_t rtc_counter_get(void)
|
||||
|
||||
/**
|
||||
* @brief rtc divider set
|
||||
* @param div_value (0x0000_0000 ~ 0xFFFF_FFFF)
|
||||
* @param div_value (0x0000_0000 ~ 0x000F_FFFF)
|
||||
* @retval none
|
||||
*/
|
||||
void rtc_divider_set(uint32_t div_value)
|
||||
@@ -181,7 +181,7 @@ flag_status rtc_flag_get(uint16_t flag)
|
||||
* - RTC_TS_FLAG: time second flag.
|
||||
* - RTC_TA_FLAG: time alarm flag.
|
||||
* - RTC_OVF_FLAG: overflow flag.
|
||||
* - RTC_CFGF_FLAG: rtc configuration finish flag.
|
||||
* - RTC_UPDF_FLAG: rtc update finish flag.
|
||||
* @retval none
|
||||
*/
|
||||
void rtc_flag_clear(uint16_t flag)
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_sdio.c
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief contains all the functions for the sdio firmware library
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
@@ -82,22 +82,11 @@ void sdio_power_set(sdio_type *sdio_x, sdio_power_state_type power_state)
|
||||
* @param sdio_x: to select the sdio peripheral.
|
||||
* this parameter can be one of the following values:
|
||||
* SDIO1.
|
||||
* @retval flag_status (SET or RESET)
|
||||
* @retval sdio_power_state_type (SDIO_POWER_ON or SDIO_POWER_OFF)
|
||||
*/
|
||||
flag_status sdio_power_status_get(sdio_type *sdio_x)
|
||||
sdio_power_state_type sdio_power_status_get(sdio_type *sdio_x)
|
||||
{
|
||||
flag_status flag = RESET;
|
||||
|
||||
if(sdio_x->pwrctrl_bit.ps == SDIO_POWER_ON)
|
||||
{
|
||||
flag = SET;
|
||||
}
|
||||
else if(sdio_x->pwrctrl_bit.ps == SDIO_POWER_OFF)
|
||||
{
|
||||
flag = RESET;
|
||||
}
|
||||
|
||||
return flag;
|
||||
return (sdio_power_state_type)(sdio_x->pwrctrl_bit.ps);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_spi.c
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief contains all the functions for the spi firmware library
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
@@ -579,23 +579,21 @@ flag_status spi_i2s_flag_get(spi_type* spi_x, uint32_t spi_i2s_flag)
|
||||
*/
|
||||
void spi_i2s_flag_clear(spi_type* spi_x, uint32_t spi_i2s_flag)
|
||||
{
|
||||
volatile uint32_t temp = 0;
|
||||
temp = temp;
|
||||
if(spi_i2s_flag == SPI_CCERR_FLAG)
|
||||
spi_x->sts = ~SPI_CCERR_FLAG;
|
||||
else if(spi_i2s_flag == SPI_I2S_RDBF_FLAG)
|
||||
temp = REG32(&spi_x->dt);
|
||||
UNUSED(spi_x->dt);
|
||||
else if(spi_i2s_flag == I2S_TUERR_FLAG)
|
||||
temp = REG32(&spi_x->sts);
|
||||
UNUSED(spi_x->sts);
|
||||
else if(spi_i2s_flag == SPI_MMERR_FLAG)
|
||||
{
|
||||
temp = REG32(&spi_x->sts);
|
||||
UNUSED(spi_x->sts);
|
||||
spi_x->ctrl1 = spi_x->ctrl1;
|
||||
}
|
||||
else if(spi_i2s_flag == SPI_I2S_ROERR_FLAG)
|
||||
{
|
||||
temp = REG32(&spi_x->dt);
|
||||
temp = REG32(&spi_x->sts);
|
||||
UNUSED(spi_x->dt);
|
||||
UNUSED(spi_x->sts);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_tmr.c
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief contains all the functions for the tmr firmware library
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
@@ -1076,15 +1076,15 @@ void tmr_pwm_input_config(tmr_type *tmr_x, tmr_input_config_type *input_struct,
|
||||
* @param tmr_x: select the tmr peripheral.
|
||||
* this parameter can be one of the following values:
|
||||
* TMR1, TMR2, TMR3, TMR4, TMR5, TMR8
|
||||
* @param ti1_connect
|
||||
* @param ch1_connect
|
||||
* this parameter can be one of the following values:
|
||||
* - TMR_CHANEL1_CONNECTED_C1IRAW
|
||||
* - TMR_CHANEL1_2_3_CONNECTED_C1IRAW_XOR
|
||||
* @retval none
|
||||
*/
|
||||
void tmr_channel1_input_select(tmr_type *tmr_x, tmr_channel1_input_connected_type ti1_connect)
|
||||
void tmr_channel1_input_select(tmr_type *tmr_x, tmr_channel1_input_connected_type ch1_connect)
|
||||
{
|
||||
tmr_x->ctrl2_bit.c1insel = ti1_connect;
|
||||
tmr_x->ctrl2_bit.c1insel = ch1_connect;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_usart.c
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief contains all the functions for the usart firmware library
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
@@ -579,6 +579,11 @@ flag_status usart_flag_get(usart_type* usart_x, uint32_t flag)
|
||||
* - USART_BFF_FLAG:
|
||||
* - USART_TDC_FLAG:
|
||||
* - USART_RDBF_FLAG:
|
||||
* - USART_PERR_FLAG:
|
||||
* - USART_FERR_FLAG:
|
||||
* - USART_NERR_FLAG:
|
||||
* - USART_ROERR_FLAG:
|
||||
* - USART_IDLEF_FLAG:
|
||||
* @note
|
||||
* - USART_PERR_FLAG, USART_FERR_FLAG, USART_NERR_FLAG, USART_ROERR_FLAG and USART_IDLEF_FLAG are cleared by software
|
||||
* sequence: a read operation to usart sts register (usart_flag_get())
|
||||
@@ -591,7 +596,15 @@ flag_status usart_flag_get(usart_type* usart_x, uint32_t flag)
|
||||
*/
|
||||
void usart_flag_clear(usart_type* usart_x, uint32_t flag)
|
||||
{
|
||||
usart_x->sts = ~flag;
|
||||
if(flag & (USART_PERR_FLAG | USART_FERR_FLAG | USART_NERR_FLAG | USART_ROERR_FLAG | USART_IDLEF_FLAG))
|
||||
{
|
||||
UNUSED(usart_x->sts);
|
||||
UNUSED(usart_x->dt);
|
||||
}
|
||||
else
|
||||
{
|
||||
usart_x->sts = ~flag;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_usb.c
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief contains the functions for the usb firmware library
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_wdt.c
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief contains all the functions for the wdt firmware library
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f413_wwdt.c
|
||||
* @version v2.0.5
|
||||
* @date 2022-05-20
|
||||
* @version v2.0.6
|
||||
* @date 2022-06-28
|
||||
* @brief contains all the functions for the wwdt firmware library
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
|
||||
Reference in New Issue
Block a user