[资源共享] HC32L17x的LL驱动库之寄存器文件

[复制链接]
2469|4
 楼主| 慢醇 发表于 2023-6-8 23:50 | 显示全部楼层 |阅读模式
本帖最后由 芯圣电子官方QQ 于 2023-7-20 10:18 编辑
  1. #ifndef HC32L17XA_H_
  2. #define HC32L17XA_H_

  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6.         
  7.         #include "core_cm0plus.h"
  8.         #include "system_hc32l17x.h"
  9.         #include <stdint.h>
  10.         

  11. #pragma region RCC
  12.         //===端口通用功能配置寄存器
  13.         typedef struct
  14.         {
  15.                 __IO uint32_t CR0;                //---控制寄存器1  00
  16.                 __IO uint32_t CR1;                //---控制寄存器2  04
  17.                 __IO uint32_t CR2;                //---控制寄存器3  08
  18.                 __IO uint32_t RCH;                //---RCH控制寄存器 0C
  19.                 __IO uint32_t XTH;                //---XTH控制寄存器        10
  20.                 __IO uint32_t RCL;                //---RCL控制寄存器        14
  21.                 __IO uint32_t XTL;                //---XTL置位清零寄存器        18
  22.                 __IO uint32_t RSTSR;        //---复位标识                        1C
  23.                 __IO uint32_t PERENR0;        //---外设时钟使能寄存器1        20
  24.                 __IO uint32_t PERENR1;        //---外设时钟使能寄存器2        24
  25.                 __IO uint32_t PERRSTR0;        //---外设时钟复位寄存器1        28
  26.                 __IO uint32_t PERRSTR1;        //---外设时钟复位寄存器2        2C
  27.                 uint32_t RESERVED[3];        //---保留        30 34 38
  28.                 __IO uint32_t PLL;                //---PLL控制寄存器        3C
  29.         } RCC_TypeDef;

  30.         //===>>>系统控制寄存器0的的功能        
  31.         #define RCC_CR0_WAKEUP_BYRCH_POS        15
  32.         #define RCC_CR0_WAKEUP_BYRCH_MASK  (0x01UL<<RCC_CR0_WAKEUP_BYRCH_POS)
  33.         #define RCC_CR0_WAKEUP_BYRCH                RCC_CR0_WAKEUP_BYRCH_MASK

  34.         //===PCLK的时钟来源选择
  35.         #define RCC_CR0_PCLK_PRS_POS                11
  36.         #define RCC_CR0_PCLK_PRS_MASK      (0x03UL<<RCC_CR0_PCLK_PRS_POS)
  37.         #define RCC_CR0_PCLK_PRS                        RCC_CR0_PCLK_PRS_MASK

  38.         //===PCLK的时钟分频数
  39.         #define RCC_CR0_PCLK_PRS_1                        (0x00UL<<RCC_CR0_PCLK_PRS_POS)
  40.         #define RCC_CR0_PCLK_PRS_2                        (0x01UL<<RCC_CR0_PCLK_PRS_POS)
  41.         #define RCC_CR0_PCLK_PRS_4                        (0x02UL<<RCC_CR0_PCLK_PRS_POS)
  42.         #define RCC_CR0_PCLK_PRS_8                        (0x03UL<<RCC_CR0_PCLK_PRS_POS)

  43.         //===HCLK的时钟来源选择
  44.         #define RCC_CR0_HCLK_PRS_POS                8
  45.         #define RCC_CR0_HCLK_PRS_MASK      (0x07UL<<RCC_CR0_HCLK_PRS_POS)
  46.         #define RCC_CR0_HCLK_PRS                        RCC_CR0_HCLK_PRS_MASK

  47.         //===HCLK的时钟分频数
  48.         #define RCC_CR0_HCLK_PRS_1                        (0x00UL<<RCC_CR0_HCLK_PRS_POS)
  49.         #define RCC_CR0_HCLK_PRS_2                        (0x01UL<<RCC_CR0_HCLK_PRS_POS)
  50.         #define RCC_CR0_HCLK_PRS_4                        (0x02UL<<RCC_CR0_HCLK_PRS_POS)
  51.         #define RCC_CR0_HCLK_PRS_8                        (0x03UL<<RCC_CR0_HCLK_PRS_POS)
  52.         #define RCC_CR0_HCLK_PRS_16                        (0x04UL<<RCC_CR0_HCLK_PRS_POS)
  53.         #define RCC_CR0_HCLK_PRS_32                        (0x05UL<<RCC_CR0_HCLK_PRS_POS)
  54.         #define RCC_CR0_HCLK_PRS_64                        (0x06UL<<RCC_CR0_HCLK_PRS_POS)
  55.         #define RCC_CR0_HCLK_PRS_128                (0x07UL<<RCC_CR0_HCLK_PRS_POS)

  56.         //===系统时钟的来源的时钟来源选择
  57.         #define RCC_CR0_CLKSW_POS                        5
  58.         #define RCC_CR0_CLKSW_MASK                        (0x07UL<<RCC_CR0_CLKSW_POS)
  59.         #define RCC_CR0_CLKSW                                RCC_CR0_CLKSW_MASK

  60.         #define RCC_CR0_CLKSW_RCH                        (0x00UL<<RCC_CR0_CLKSW_POS)
  61.         #define RCC_CR0_CLKSW_XTH                        (0x01UL<<RCC_CR0_CLKSW_POS)
  62.         #define RCC_CR0_CLKSW_RCL                        (0x02UL<<RCC_CR0_CLKSW_POS)
  63.         #define RCC_CR0_CLKSW_XTL                        (0x03UL<<RCC_CR0_CLKSW_POS)
  64.         #define RCC_CR0_CLKSW_PLL                        (0x04UL<<RCC_CR0_CLKSW_POS)

  65.         //===PLL使能控制
  66.         #define RCC_CR0_PLLEN_POS                        4
  67.         #define RCC_CR0_PLLEN_MASK                        (0x01UL<<RCC_CR0_PLLEN_POS)
  68.         #define RCC_CR0_PLLEN                                RCC_CR0_PLLEN_MASK

  69.         //===XTL使能控制
  70.         #define RCC_CR0_XTLEN_POS                        3
  71.         #define RCC_CR0_XTLEN_MASK                        (0x01UL<<RCC_CR0_XTLEN_POS)
  72.         #define RCC_CR0_XTLEN                                RCC_CR0_XTLEN_MASK

  73.         //===RCL使能控制
  74.         #define RCC_CR0_RCLEN_POS                        2
  75.         #define RCC_CR0_RCLEN_MASK                        (0x01UL<<RCC_CR0_RCLEN_POS)
  76.         #define RCC_CR0_RCLEN                                RCC_CR0_RCLEN_MASK

  77.         //===XTH使能控制
  78.         #define RCC_CR0_XTHEN_POS                        1
  79.         #define RCC_CR0_XTHEN_MASK                        (0x01UL<<RCC_CR0_XTHEN_POS)
  80.         #define RCC_CR0_XTHEN                                RCC_CR0_XTHEN_MASK

  81.         //===RCH使能控制
  82.         #define RCC_CR0_RCHEN_POS                        0
  83.         #define RCC_CR0_RCHEN_MASK                        (0x01UL<<RCC_CR0_RCHEN_POS)
  84.         #define RCC_CR0_RCHEN                                RCC_CR0_RCHEN_MASK

  85.         //===<<<系统控制寄存器0的功能

  86.         //===>>>系统控制寄存器1的的功能
  87.         //===RTC高速补偿时钟使能控制
  88.         #define RCC_CR1_RTC_FREQ_ADJ_POS        9
  89.         #define RCC_CR1_RTC_FREQ_ADJ_MASK        (0x07UL<<RCC_CR1_RTC_FREQ_ADJ_POS)
  90.         #define RCC_CR1_RTC_FREQ_ADJ                RCC_CR1_RTC_FREQ_ADJ_MASK

  91.         #define RCC_CR1_RTC_FREQ_ADJ_4M                (0x00UL<<RCC_CR1_RTC_FREQ_ADJ_POS)
  92.         #define RCC_CR1_RTC_FREQ_ADJ_6M                (0x01UL<<RCC_CR1_RTC_FREQ_ADJ_POS)
  93.         #define RCC_CR1_RTC_FREQ_ADJ_8M                (0x02UL<<RCC_CR1_RTC_FREQ_ADJ_POS)
  94.         #define RCC_CR1_RTC_FREQ_ADJ_12M        (0x03UL<<RCC_CR1_RTC_FREQ_ADJ_POS)
  95.         #define RCC_CR1_RTC_FREQ_ADJ_16M        (0x04UL<<RCC_CR1_RTC_FREQ_ADJ_POS)
  96.         #define RCC_CR1_RTC_FREQ_ADJ_20M        (0x05UL<<RCC_CR1_RTC_FREQ_ADJ_POS)
  97.         #define RCC_CR1_RTC_FREQ_ADJ_24M        (0x06UL<<RCC_CR1_RTC_FREQ_ADJ_POS)
  98.         #define RCC_CR1_RTC_FREQ_ADJ_32M        (0x07UL<<RCC_CR1_RTC_FREQ_ADJ_POS)

  99.         //===SWD端口功能
  100.         #define RCC_CR1_SWD_AF_POS                        8
  101.         #define RCC_CR1_SWD_AF_MASK                        (0x01UL<<RCC_CR1_SWD_AF_POS)
  102.         #define RCC_CR1_SWD_AF                                RCC_CR1_SWD_AF_MASK

  103.         //===锁定功能
  104.         #define RCC_CR1_LOCK_UP_POS                        6
  105.         #define RCC_CR1_LOCK_UP_MASK                (0x01UL<<RCC_CR1_LOCK_UP_POS)
  106.         #define RCC_CR1_LOCK_UP                                RCC_CR1_LOCK_UP_MASK

  107.         //===RTC低功耗模式
  108.         #define RCC_CR1_RTC_LPW_POS                        5
  109.         #define RCC_CR1_RTC_LPW_MASK                (0x01UL<<RCC_CR1_RTC_LPW_POS)
  110.         #define RCC_CR1_RTC_LPW                                RCC_CR1_RTC_LPW_MASK

  111.         //===RTC低功耗模式
  112.         #define RCC_CR1_XTL_ON_POS                        3
  113.         #define RCC_CR1_XTL_ON_MASK                        (0x01UL<<RCC_CR1_XTL_ON_POS)
  114.         #define RCC_CR1_XTL_ON                                RCC_CR1_XTL_ON_MASK

  115.         //===外部XTL时钟输入控制
  116.         #define RCC_CR1_EXTL_EN_POS                        2
  117.         #define RCC_CR1_EXTL_EN_MASK                (0x01UL<<RCC_CR1_EXTL_EN_POS)
  118.         #define RCC_CR1_EXTL_EN                                RCC_CR1_EXTL_EN_MASK

  119.         //===外部XTH时钟输入控制
  120.         #define RCC_CR1_EXTH_EN_POS                        1
  121.         #define RCC_CR1_EXTH_EN_MASK                (0x01UL<<RCC_CR1_EXTH_EN_POS)
  122.         #define RCC_CR1_EXTH_EN                                RCC_CR1_EXTH_EN_MASK

  123.         //===<<<系统控制寄存器1的功能

  124.         //===>>>系统控制寄存器2的的功能
  125.         
  126.         //===<<<系统控制寄存器2的功能

  127.         //===>>>RCH控制寄存器的的功能
  128.         #define RCC_RCH_STABLE_POS                        11
  129.         #define RCC_RCH_STABLE_MASK                        (0x01UL<<RCC_RCH_STABLE_POS)
  130.         #define RCC_RCH_STABLE                                RCC_RCH_STABLE_MASK

  131.         #define RCC_RCH_TRIM_POS                        0
  132.         #define RCC_RCH_TRIM_MASK                        (0x3FFUL<<RCC_RCH_TRIM_POS)
  133.         #define RCC_RCH_TRIM                                RCC_RCH_TRIM_MASK
  134.         
  135.         //===内置频率的校准值
  136. #ifndef USE_SIMULATOR
  137.         #define RCC_RCH_TRIM_4M                                (*((volatile uint16_t*) (0x00100C08ul)))
  138.         #define RCC_RCH_TRIM_8M                                (*((volatile uint16_t*) (0x00100C06ul)))
  139.         #define RCC_RCH_TRIM_16M                        (*((volatile uint16_t*) (0x00100C04ul)))
  140.         #define RCC_RCH_TRIM_22M12                        (*((volatile uint16_t*) (0x00100C02ul)))
  141.         #define RCC_RCH_TRIM_24M                        (*((volatile uint16_t*) (0x00100C00ul)))
  142. #else
  143.         #define RCC_RCH_TRIM_4M                                (0x100)
  144.         #define RCC_RCH_TRIM_8M                                (0x100)
  145.         #define RCC_RCH_TRIM_16M                        (0x100)
  146.         #define RCC_RCH_TRIM_22M12                        (0x100)
  147.         #define RCC_RCH_TRIM_24M                        (0x100)
  148. #endif

  149.         //===<<<RCH控制寄存器的的功能

  150.         //===>>>XTH控制寄存器的的功能
  151.         #define RCC_XTH_STABLE_POS                        6
  152.         #define RCC_XTH_STABLE_MASK                        (0x01UL<<RCC_XTH_STABLE_POS)
  153.         #define RCC_XTH_STABLE                                RCC_XTH_STABLE_MASK

  154.         #define RCC_XTH_STARTUP_POS                        4
  155.         #define RCC_XTH_STARTUP_MASK                (0x03UL<<RCC_XTH_STARTUP_POS)
  156.         #define RCC_XTH_STARTUP                                RCC_XTH_STARTUP_MASK

  157.         #define RCC_XTH_STARTUP_256_CLK                (0x00UL<<RCC_XTH_STARTUP_POS)
  158.         #define RCC_XTH_STARTUP_1024_CLK        (0x01UL<<RCC_XTH_STARTUP_POS)
  159.         #define RCC_XTH_STARTUP_4096_CLK        (0x02UL<<RCC_XTH_STARTUP_POS)
  160.         #define RCC_XTH_STARTUP_16384_CLK        (0x03UL<<RCC_XTH_STARTUP_POS)

  161.         #define RCC_XTH_FREQ_POS                        2
  162.         #define RCC_XTH_FREQ_MASK                        (0x03UL<<RCC_XTH_FREQ_POS)
  163.         #define RCC_XTH_FREQ                                RCC_XTH_FREQ_MASK

  164.         #define RCC_XTH_FREQ_24M_32M                (0x03UL<<RCC_XTH_FREQ_POS)
  165.         #define RCC_XTH_FREQ_16M_24M                (0x02UL<<RCC_XTH_FREQ_POS)
  166.         #define RCC_XTH_FREQ_8M_16M                        (0x01UL<<RCC_XTH_FREQ_POS)
  167.         #define RCC_XTH_FREQ_4M_8M                        (0x00UL<<RCC_XTH_FREQ_POS)

  168.         #define RCC_XTH_DRIVER_POS                        0
  169.         #define RCC_XTH_DRIVER_MASK                        (0x03UL<<RCC_XTH_DRIVER_POS)
  170.         #define RCC_XTH_DRIVER                                RCC_XTH_DRIVER_MASK

  171.         #define RCC_XTH_DRIVER_HIGH                        (0x03UL<<RCC_XTH_DRIVER_POS)
  172.         #define RCC_XTH_DRIVER_NORMAL                (0x02UL<<RCC_XTH_DRIVER_POS)
  173.         #define RCC_XTH_DRIVER_LOW                        (0x01UL<<RCC_XTH_DRIVER_POS)
  174.         #define RCC_XTH_DRIVER_VERY_LOW                (0x00UL<<RCC_XTH_DRIVER_POS)

  175.         //===<<<XTH控制寄存器的的功能

  176.         //===>>>RCL控制寄存器的的功能
  177.         #define RCC_RCL_STABLE_POS                        12
  178.         #define RCC_RCL_STABLE_MASK                        (0x01UL<<RCC_RCL_STABLE_POS)
  179.         #define RCC_RCL_STABLE                                RCC_RCL_STABLE_MASK

  180.         #define RCC_RCL_STARTUP_POS                        10
  181.         #define RCC_RCL_STARTUP_MASK                (0x03UL<<RCC_RCL_STARTUP_POS)
  182.         #define RCC_RCL_STARTUP                                RCC_RCL_STARTUP_MASK
  183.                                 
  184.         #define RCC_RCL_STARTUP_256_CLK                (0x03UL<<RCC_RCL_STARTUP_POS)
  185.         #define RCC_RCL_STARTUP_64_CLK                (0x02UL<<RCC_RCL_STARTUP_POS)
  186.         #define RCC_RCL_STARTUP_16_CLK                (0x01UL<<RCC_RCL_STARTUP_POS)
  187.         #define RCC_RCL_STARTUP_4_CLK                (0x00UL<<RCC_RCL_STARTUP_POS)

  188.         #define RCC_RCL_TRIM_POS                        0
  189.         #define RCC_RCL_TRIM_MASK                        (0x1FFUL<<RCC_RCL_TRIM_POS)
  190.         #define RCC_RCL_TRIM                                RCC_RCL_TRIM_MASK

  191.         //===内置RCL频率的校准值
  192. #ifndef USE_SIMULATOR
  193.         #define RCC_RCL_TRIM_38K4                        (*((volatile uint16_t*) (0x00100C20ul)))
  194.         #define RCC_RCL_TRIM_32K768                        (*((volatile uint16_t*) (0x00100C22ul)))
  195. #else
  196.         #define RCC_RCL_TRIM_38K4                        (0x100)
  197.         #define RCC_RCL_TRIM_32K768                        (0x100)
  198. #endif
  199.         
  200.         //===<<<RCL控制寄存器的的功能

  201.         //===>>>XTL控制寄存器的的功能
  202.         #define RCC_XTL_STABLE_POS                        6
  203.         #define RCC_XTL_STABLE_MASK                        (0x01UL<<RCC_XTL_STABLE_POS)
  204.         #define RCC_XTL_STABLE                                RCC_XTL_STABLE_MASK

  205.         #define RCC_XTL_STARTUP_POS                        4
  206.         #define RCC_XTL_STARTUP_MASK                (0x03UL<<RCC_XTL_STARTUP_POS)
  207.         #define RCC_XTL_STARTUP                                RCC_XTL_STARTUP_MASK

  208.         #define RCC_XTL_STARTUP_256_CLK                (0x00UL<<RCC_XTL_STARTUP_POS)
  209.         #define RCC_XTL_STARTUP_1024_CLK        (0x01UL<<RCC_XTL_STARTUP_POS)
  210.         #define RCC_XTL_STARTUP_4096_CLK        (0x02UL<<RCC_XTL_STARTUP_POS)
  211.         #define RCC_XTL_STARTUP_16384_CLK        (0x03UL<<RCC_XTL_STARTUP_POS)

  212.         #define RCC_XTL_AMP_POS                                2
  213.         #define RCC_XTL_AMP_MASK                        (0x03UL<<RCC_XTL_AMP_POS)
  214.         #define RCC_XTL_AMP                                        RCC_XTL_AMP_MASK

  215.         #define RCC_XTL_AMP_VERY_HIGH                (0x03UL<<RCC_XTL_AMP_POS)
  216.         #define RCC_XTL_AMP_HIGH                        (0x02UL<<RCC_XTL_AMP_POS)
  217.         #define RCC_XTL_AMP_NORMAL                        (0x01UL<<RCC_XTL_AMP_POS)
  218.         #define RCC_XTL_AMP_LOW                                (0x00UL<<RCC_XTL_AMP_POS)

  219.         #define RCC_XTL_DRIVER_POS                        0
  220.         #define RCC_XTL_DRIVER_MASK                        (0x03UL<<RCC_XTL_DRIVER_POS)
  221.         #define RCC_XTL_DRIVER                                RCC_XTL_DRIVER_MASK

  222.         #define RCC_XTL_DRIVER_VERY_HIGH        (0x03UL<<RCC_XTL_DRIVER_POS)
  223.         #define RCC_XTL_DRIVER_HIGH                        (0x02UL<<RCC_XTL_DRIVER_POS)
  224.         #define RCC_XTL_DRIVER_NORMAL                (0x01UL<<RCC_XTL_DRIVER_POS)
  225.         #define RCC_XTL_DRIVER_LOW                        (0x00UL<<RCC_XTL_DRIVER_POS)

  226.         //===<<<XTL控制寄存器的的功能

  227.         //===>>>复位标识寄存器的功能
  228.         #define RCC_RSTSR_RST_POS                        7
  229.         #define RCC_RSTSR_RST_MASK                        (0x01UL<<RCC_RSTSR_RST_POS)
  230.         #define RCC_RSTSR_RST                                RCC_RSTSR_RST_MASK

  231.         #define RCC_RSTSR_SYSREQ_POS                6
  232.         #define RCC_RSTSR_SYSREQ_MASK                (0x01UL<<RCC_RSTSR_SYSREQ_POS)
  233.         #define RCC_RSTSR_SYSREQ                        RCC_RSTSR_SYSREQ_MASK

  234.         #define RCC_RSTSR_LOCKUP_POS                5
  235.         #define RCC_RSTSR_LOCKUP_MASK                (0x01UL<<RCC_RSTSR_LOCKUP_POS)
  236.         #define RCC_RSTSR_LOCKUP                        RCC_RSTSR_LOCKUP_MASK

  237.         #define RCC_RSTSR_PCA_POS                        4
  238.         #define RCC_RSTSR_PCA_MASK                        (0x01UL<<RCC_RSTSR_PCA_POS)
  239.         #define RCC_RSTSR_PCA                                RCC_RSTSR_PCA_MASK

  240.         #define RCC_RSTSR_WDT_POS                        3
  241.         #define RCC_RSTSR_WDT_MASK                        (0x01UL<<RCC_RSTSR_WDT_POS)
  242.         #define RCC_RSTSR_WDT                                RCC_RSTSR_WDT_MASK
  243.         
  244.         #define RCC_RSTSR_LVD_POS                        2
  245.         #define RCC_RSTSR_LVD_MASK                        (0x01UL<<RCC_RSTSR_LVD_POS)
  246.         #define RCC_RSTSR_LVD                                RCC_RSTSR_LVD_MASK

  247.         #define RCC_RSTSR_PORVCAP_POS                1
  248.         #define RCC_RSTSR_PORVCAP_MASK                (0x01UL<<RCC_RSTSR_PORVCAP_POS)
  249.         #define RCC_RSTSR_PORVCAP                        RCC_RSTSR_PORVCAP_MASK

  250.         #define RCC_RSTSR_PORVCC_POS                0
  251.         #define RCC_RSTSR_PORVCC_MASK                (0x01UL<<RCC_RSTSR_PORVCC_POS)
  252.         #define RCC_RSTSR_PORVCC                        RCC_RSTSR_PORVCC_MASK

  253.         //===<<<复位标识寄存器的功能
  254.         
  255.         //===>>>外围模块时钟控制寄存器0的功能
  256.         #define RCC_PER0ENR_UART0EN_POS                0
  257.         #define RCC_PER0ENR_UART0EN_MASK        (0x01UL<<RCC_PER0ENR_UART0EN_POS)
  258.         #define RCC_PER0ENR_UART0EN                        RCC_PER0ENR_UART0EN_MASK

  259.         #define RCC_PER0ENR_UART1EN_POS                1
  260.         #define RCC_PER0ENR_UART1EN_MASK        (0x01UL<<RCC_PER0ENR_UART1EN_POS)
  261.         #define RCC_PER0ENR_UART1EN                        RCC_PER0ENR_UART1EN_MASK

  262.         #define RCC_PER0ENR_LPUART0EN_POS        2
  263.         #define RCC_PER0ENR_LPUART0EN_MASK        (0x01UL<<RCC_PER0ENR_LPUART0EN_POS)
  264.         #define RCC_PER0ENR_LPUART0EN                RCC_PER0ENR_LPUART0EN_MASK

  265.         #define RCC_PER0ENR_LPUART1EN_POS        3
  266.         #define RCC_PER0ENR_LPUART1EN_MASK        (0x01UL<<RCC_PER0ENR_LPUART1EN_POS)
  267.         #define RCC_PER0ENR_LPUART1EN                RCC_PER0ENR_LPUART1EN_MASK

  268.         #define RCC_PER0ENR_I2C0EN_POS                4
  269.         #define RCC_PER0ENR_I2C0EN_MASK                (0x01UL<<RCC_PER0ENR_I2C0EN_POS)
  270.         #define RCC_PER0ENR_I2C0EN                        RCC_PER0ENR_I2C0EN_MASK

  271.         #define RCC_PER0ENR_I2C1EN_POS                5
  272.         #define RCC_PER0ENR_I2C1EN_MASK                (0x01UL<<RCC_PER0ENR_I2C1EN_POS)
  273.         #define RCC_PER0ENR_I2C1EN                        RCC_PER0ENR_I2C1EN_MASK

  274.         #define RCC_PER0ENR_SPI0EN_POS                6
  275.         #define RCC_PER0ENR_SPI0EN_MASK                (0x01UL<<RCC_PER0ENR_SPI0EN_POS)
  276.         #define RCC_PER0ENR_SPI0EN                        RCC_PER0ENR_SPI0EN_MASK

  277.         #define RCC_PER0ENR_SPI1EN_POS                7
  278.         #define RCC_PER0ENR_SPI1EN_MASK                (0x01UL<<RCC_PER0ENR_SPI1EN_POS)
  279.         #define RCC_PER0ENR_SPI1EN                        RCC_PER0ENR_SPI1EN_MASK

  280.         #define RCC_PER0ENR_TIM0EN_POS                8
  281.         #define RCC_PER0ENR_TIM0EN_MASK                (0x01UL<<RCC_PER0ENR_TIM0EN_POS)
  282.         #define RCC_PER0ENR_TIM0EN                        RCC_PER0ENR_TIM0EN_MASK

  283.         #define RCC_PER0ENR_TIM1EN_POS                8
  284.         #define RCC_PER0ENR_TIM1EN_MASK                (0x01UL<<RCC_PER0ENR_TIM1EN_POS)
  285.         #define RCC_PER0ENR_TIM1EN                        RCC_PER0ENR_TIM1EN_MASK

  286.         #define RCC_PER0ENR_TIM2EN_POS                8
  287.         #define RCC_PER0ENR_TIM2EN_MASK                (0x01UL<<RCC_PER0ENR_TIM2EN_POS)
  288.         #define RCC_PER0ENR_TIM2EN                        RCC_PER0ENR_TIM2EN_MASK

  289.         #define RCC_PER0ENR_LPTIM0EN_POS        9
  290.         #define RCC_PER0ENR_LPTIM0EN_MASK        (0x01UL<<RCC_PER0ENR_LPTIM0EN_POS)
  291.         #define RCC_PER0ENR_LPTIM0EN                RCC_PER0ENR_LPTIM0EN_MASK

  292.         #define RCC_PER0ENR_TIM4EN_POS                10
  293.         #define RCC_PER0ENR_TIM4EN_MASK                (0x01UL<<RCC_PER0ENR_TIM4EN_POS)
  294.         #define RCC_PER0ENR_TIM4EN                        RCC_PER0ENR_TIM4EN_MASK

  295.         #define RCC_PER0ENR_TIM5EN_POS                10
  296.         #define RCC_PER0ENR_TIM5EN_MASK                (0x01UL<<RCC_PER0ENR_TIM5EN_POS)
  297.         #define RCC_PER0ENR_TIM5EN                        RCC_PER0ENR_TIM5EN_MASK

  298.         #define RCC_PER0ENR_TIM6EN_POS                10
  299.         #define RCC_PER0ENR_TIM6EN_MASK                (0x01UL<<RCC_PER0ENR_TIM6EN_POS)
  300.         #define RCC_PER0ENR_TIM6EN                        RCC_PER0ENR_TIM6EN_MASK

  301.         #define RCC_PER0ENR_TIM3EN_POS                11
  302.         #define RCC_PER0ENR_TIM3EN_MASK                (0x01UL<<RCC_PER0ENR_TIM3EN_POS)
  303.         #define RCC_PER0ENR_TIM3EN                        RCC_PER0ENR_TIM3EN_MASK

  304.         #define RCC_PER0ENR_OPAEN_POS                13
  305.         #define RCC_PER0ENR_OPAEN_MASK                (0x01UL<<RCC_PER0ENR_OPAEN_POS)
  306.         #define RCC_PER0ENR_OPAEN                        RCC_PER0ENR_OPAEN_MASK

  307.         #define RCC_PER0ENR_PCAEN_POS                14
  308.         #define RCC_PER0ENR_PCAEN_MASK                (0x01UL<<RCC_PER0ENR_PCAEN_POS)
  309.         #define RCC_PER0ENR_PCAEN                        RCC_PER0ENR_PCAEN_MASK

  310.         #define RCC_PER0ENR_WDTEN_POS                15
  311.         #define RCC_PER0ENR_WDTEN_MASK                (0x01UL<<RCC_PER0ENR_WDTEN_POS)
  312.         #define RCC_PER0ENR_WDTEN                        RCC_PER0ENR_WDTEN_MASK

  313.         #define RCC_PER0ENR_ADCEN_POS                16
  314.         #define RCC_PER0ENR_ADCEN_MASK                (0x01UL<<RCC_PER0ENR_ADCEN_POS)
  315.         #define RCC_PER0ENR_ADCEN                        RCC_PER0ENR_ADCEN_MASK

  316.         #define RCC_PER0ENR_VCEN_POS                17
  317.         #define RCC_PER0ENR_VCEN_MASK                (0x01UL<<RCC_PER0ENR_VCEN_POS)
  318.         #define RCC_PER0ENR_VCEN                        RCC_PER0ENR_VCEN_MASK

  319.         #define RCC_PER0ENR_RNGEN_POS                18
  320.         #define RCC_PER0ENR_RNGEN_MASK                (0x01UL<<RCC_PER0ENR_RNGEN_POS)
  321.         #define RCC_PER0ENR_RNGEN                        RCC_PER0ENR_RNGEN_MASK

  322.         #define RCC_PER0ENR_PCNTEN_POS                19
  323.         #define RCC_PER0ENR_PCNTEN_MASK                (0x01UL<<RCC_PER0ENR_PCNTEN_POS)
  324.         #define RCC_PER0ENR_PCNTEN                        RCC_PER0ENR_PCNTEN_MASK

  325.         #define RCC_PER0ENR_RTCEN_POS                20
  326.         #define RCC_PER0ENR_RTCEN_MASK                (0x01UL<<RCC_PER0ENR_RTCEN_POS)
  327.         #define RCC_PER0ENR_RTCEN                        RCC_PER0ENR_RTCEN_MASK

  328.         #define RCC_PER0ENR_TRIMEN_POS                21
  329.         #define RCC_PER0ENR_TRIMEN_MASK                (0x01UL<<RCC_PER0ENR_TRIMEN_POS)
  330.         #define RCC_PER0ENR_TRIMEN                        RCC_PER0ENR_TRIMEN_MASK

  331.         #define RCC_PER0ENR_LCDEN_POS                22
  332.         #define RCC_PER0ENR_LCDEN_MASK                (0x01UL<<RCC_PER0ENR_LCDEN_POS)
  333.         #define RCC_PER0ENR_LCDEN                        RCC_PER0ENR_LCDEN_MASK

  334.         #define RCC_PER0ENR_TICKEN_POS                24
  335.         #define RCC_PER0ENR_TICKEN_MASK                (0x01UL<<RCC_PER0ENR_TICKEN_POS)
  336.         #define RCC_PER0ENR_TICKEN                        RCC_PER0ENR_TICKEN_MASK

  337.         #define RCC_PER0ENR_SWDEN_POS                25
  338.         #define RCC_PER0ENR_SWDEN_MASK                (0x01UL<<RCC_PER0ENR_SWDEN_POS)
  339.         #define RCC_PER0ENR_SWDEN                        RCC_PER0ENR_SWDEN_MASK

  340.         #define RCC_PER0ENR_CRCEN_POS                26
  341.         #define RCC_PER0ENR_CRCEN_MASK                (0x01UL<<RCC_PER0ENR_CRCEN_POS)
  342.         #define RCC_PER0ENR_CRCEN                        RCC_PER0ENR_CRCEN_MASK

  343.         #define RCC_PER0ENR_AESEN_POS                27
  344.         #define RCC_PER0ENR_AESEN_MASK                (0x01UL<<RCC_PER0ENR_AESEN_POS)
  345.         #define RCC_PER0ENR_AESEN                        RCC_PER0ENR_AESEN_MASK

  346.         #define RCC_PER0ENR_GPIOEN_POS                28
  347.         #define RCC_PER0ENR_GPIOEN_MASK                (0x01UL<<RCC_PER0ENR_GPIOEN_POS)
  348.         #define RCC_PER0ENR_GPIOEN                        RCC_PER0ENR_GPIOEN_MASK

  349.         #define RCC_PER0ENR_DMAEN_POS                29
  350.         #define RCC_PER0ENR_DMAEN_MASK                (0x01UL<<RCC_PER0ENR_DMAEN_POS)
  351.         #define RCC_PER0ENR_DMAEN                        RCC_PER0ENR_DMAEN_MASK

  352.         #define RCC_PER0ENR_FLASHEN_POS                31
  353.         #define RCC_PER0ENR_FLASHEN_MASK        (0x01UL<<RCC_PER0ENR_FLASHEN_POS)
  354.         #define RCC_PER0ENR_FLASHEN                        RCC_PER0ENR_FLASHEN_MASK
  355.         //===<<<外围模块时钟控制寄存器0的功能

  356.         //===>>>外围模块时钟控制寄存器1的功能
  357.         #define RCC_PER1ENR_DACEN_POS                3
  358.         #define RCC_PER1ENR_DACEN_MASK                (0x01UL<<RCC_PER1ENR_DACEN_POS)
  359.         #define RCC_PER1ENR_DACEN                        RCC_PER1ENR_DACEN_MASK

  360.         #define RCC_PER1ENR_LPTIM1EN_POS        4
  361.         #define RCC_PER1ENR_LPTIM1EN_MASK   (0x01UL<<RCC_PER1ENR_LPTIM1EN_POS)
  362.         #define RCC_PER1ENR_LPTIM1EN                RCC_PER1ENR_LPTIM1EN_POS

  363.         #define RCC_PER1ENR_UART2EN_POS                8
  364.         #define RCC_PER1ENR_UART2EN_MASK        (0x01UL<<RCC_PER1ENR_UART2EN_POS)
  365.         #define RCC_PER1ENR_UART2EN                        RCC_PER1ENR_UART2EN_MASK

  366.         #define RCC_PER1ENR_UART3EN_POS                9
  367.         #define RCC_PER1ENR_UART3EN_MASK        (0x01UL<<RCC_PER1ENR_UART3EN_POS)
  368.         #define RCC_PER1ENR_UART3EN                        RCC_PER1ENR_UART3EN_MASK
  369.         //===<<<外围模块时钟控制寄存器1的功能
  370.         //
  371.         //===>>>外围模块时钟复位寄存器0的功能
  372.         #define RCC_PER0RSTR_UART0RST_POS                0
  373.         #define RCC_PER0RSTR_UART0RST_MASK                (0x01UL<<RCC_PER0RSTR_UART0RST_POS)
  374.         #define RCC_PER0RSTR_UART0RST                        RCC_PER0RSTR_UART0RST_MASK

  375.         #define RCC_PER0RSTR_UART1RST_POS                1
  376.         #define RCC_PER0RSTR_UART1RST_MASK                (0x01UL<<RCC_PER0RSTR_UART1RST_POS)
  377.         #define RCC_PER0RSTR_UART1RST                        RCC_PER0RSTR_UART1RST_MASK

  378.         #define RCC_PER0RSTR_LPUART0RST_POS                2
  379.         #define RCC_PER0RSTR_LPUART0RST_MASK        (0x01UL<<RCC_PER0RSTR_LPUART0RST_POS)
  380.         #define RCC_PER0RSTR_LPUART0RST                        RCC_PER0RSTR_LPUART0RST_MASK

  381.         #define RCC_PER0RSTR_LPUART1RST_POS                3
  382.         #define RCC_PER0RSTR_LPUART1RST_MASK        (0x01UL<<RCC_PER0RSTR_LPUART1RST_POS)
  383.         #define RCC_PER0RSTR_LPUART1RST                        RCC_PER0RSTR_LPUART1RST_MASK

  384.         #define RCC_PER0RSTR_I2C0RST_POS                4
  385.         #define RCC_PER0RSTR_I2C0RST_MASK                (0x01UL<<RCC_PER0RSTR_I2C0RST_POS)
  386.         #define RCC_PER0RSTR_I2C0RST                        RCC_PER0RSTR_I2C0RST_MASK

  387.         #define RCC_PER0RSTR_I2C1RST_POS                5
  388.         #define RCC_PER0RSTR_I2C1RST_MASK                (0x01UL<<RCC_PER0RSTR_I2C1RST_POS)
  389.         #define RCC_PER0RSTR_I2C1RST                        RCC_PER0RSTR_I2C1RST_MASK

  390.         #define RCC_PER0RSTR_SPI0RST_POS                6
  391.         #define RCC_PER0RSTR_SPI0RST_MASK                (0x01UL<<RCC_PER0RSTR_SPI0RST_POS)
  392.         #define RCC_PER0RSTR_SPI0RST                        RCC_PER0RSTR_SPI0RST_MASK

  393.         #define RCC_PER0RSTR_SPI1RST_POS                7
  394.         #define RCC_PER0RSTR_SPI1RST_MASK                (0x01UL<<RCC_PER0RSTR_SPI1RST_POS)
  395.         #define RCC_PER0RSTR_SPI1RST                        RCC_PER0RSTR_SPI1RST_MASK

  396.         #define RCC_PER0RSTR_TIM0RST_POS                8
  397.         #define RCC_PER0RSTR_TIM0RST_MASK                (0x01UL<<RCC_PER0RSTR_TIM0RST_POS)
  398.         #define RCC_PER0RSTR_TIM0RST                        RCC_PER0RSTR_TIM0RST_MASK

  399.         #define RCC_PER0RSTR_TIM1RST_POS                8
  400.         #define RCC_PER0RSTR_TIM1RST_MASK                (0x01UL<<RCC_PER0RSTR_TIM1RST_POS)
  401.         #define RCC_PER0RSTR_TIM1RST                        RCC_PER0RSTR_TIM1RST_MASK

  402.         #define RCC_PER0RSTR_TIM2RST_POS                8
  403.         #define RCC_PER0RSTR_TIM2RST_MASK                (0x01UL<<RCC_PER0RSTR_TIM2RST_POS)
  404.         #define RCC_PER0RSTR_TIM2RST                        RCC_PER0RSTR_TIM2RST_MASK

  405.         #define RCC_PER0RSTR_LPTIM0RST_POS                9
  406.         #define RCC_PER0RSTR_LPTIM0RST_MASK                (0x01UL<<RCC_PER0RSTR_LPTIM0RST_POS)
  407.         #define RCC_PER0RSTR_LPTIM0RST                        RCC_PER0RSTR_LPTIM0RST_MASK

  408.         #define RCC_PER0RSTR_TIM4RST_POS                10
  409.         #define RCC_PER0RSTR_TIM4RST_MASK                (0x01UL<<RCC_PER0RSTR_TIM4RST_POS)
  410.         #define RCC_PER0RSTR_TIM4RST                        RCC_PER0RSTR_TIM4RST_MASK

  411.         #define RCC_PER0RSTR_TIM5RST_POS                10
  412.         #define RCC_PER0RSTR_TIM5RST_MASK                (0x01UL<<RCC_PER0RSTR_TIM5RST_POS)
  413.         #define RCC_PER0RSTR_TIM5RST                        RCC_PER0RSTR_TIM5RST_MASK

  414.         #define RCC_PER0RSTR_TIM6RST_POS                10
  415.         #define RCC_PER0RSTR_TIM6RST_MASK                (0x01UL<<RCC_PER0RSTR_TIM6RST_POS)
  416.         #define RCC_PER0RSTR_TIM6RST                        RCC_PER0RSTR_TIM6RST_MASK

  417.         #define RCC_PER0RSTR_TIM3RST_POS                11
  418.         #define RCC_PER0RSTR_TIM3RST_MASK                (0x01UL<<RCC_PER0RSTR_TIM3RST_POS)
  419.         #define RCC_PER0RSTR_TIM3RST                        RCC_PER0RSTR_TIM3RST_MASK

  420.         #define RCC_PER0RSTR_OPARST_POS                        13
  421.         #define RCC_PER0RSTR_OPARST_MASK                (0x01UL<<RCC_PER0RSTR_OPARST_POS)
  422.         #define RCC_PER0RSTR_OPARST                                RCC_PER0RSTR_OPARST_MASK

  423.         #define RCC_PER0RSTR_PCARST_POS                        14
  424.         #define RCC_PER0RSTR_PCARST_MASK                (0x01UL<<RCC_PER0RSTR_PCARST_POS)
  425.         #define RCC_PER0RSTR_PCARST                                RCC_PER0RSTR_PCARST_MASK
  426.         
  427.         #define RCC_PER0RSTR_ADCRST_POS                        16
  428.         #define RCC_PER0RSTR_ADCRST_MASK                (0x01UL<<RCC_PER0RSTR_ADCRST_POS)
  429.         #define RCC_PER0RSTR_ADCRST                                RCC_PER0RSTR_ADCRST_MASK

  430.         #define RCC_PER0RSTR_VCRST_POS                        17
  431.         #define RCC_PER0RSTR_VCRST_MASK                        (0x01UL<<RCC_PER0RSTR_VCRST_POS)
  432.         #define RCC_PER0RSTR_VCRST                                RCC_PER0RSTR_VCRST_MASK

  433.         #define RCC_PER0RSTR_RNGRST_POS                        18
  434.         #define RCC_PER0RSTR_RNGRST_MASK                (0x01UL<<RCC_PER0RSTR_RNGRST_POS)
  435.         #define RCC_PER0RSTR_RNGRST                                RCC_PER0RSTR_RNGRST_MASK

  436.         #define RCC_PER0RSTR_PCNTRST_POS                19
  437.         #define RCC_PER0RSTR_PCNTRST_MASK                (0x01UL<<RCC_PER0RSTR_PCNTRST_POS)
  438.         #define RCC_PER0RSTR_PCNTRST                        RCC_PER0RSTR_PCNTRST_MASK

  439.         #define RCC_PER0RSTR_RTCRST_POS                        20
  440.         #define RCC_PER0RSTR_RTCRST_MASK                (0x01UL<<RCC_PER0RSTR_RTCRST_POS)
  441.         #define RCC_PER0RSTR_RTCRST                                RCC_PER0RSTR_RTCRST_MASK

  442.         #define RCC_PER0RSTR_TRIMRST_POS                21
  443.         #define RCC_PER0RSTR_TRIMRST_MASK                (0x01UL<<RCC_PER0RSTR_TRIMRST_POS)
  444.         #define RCC_PER0RSTR_TRIMRST                        RCC_PER0RSTR_TRIMRST_MASK

  445.         #define RCC_PER0RSTR_LCDRST_POS                        22
  446.         #define RCC_PER0RSTR_LCDRST_MASK                (0x01UL<<RCC_PER0RSTR_LCDRST_POS)
  447.         #define RCC_PER0RSTR_LCDRST                                RCC_PER0RSTR_LCDRST_MASK

  448.         #define RCC_PER0RSTR_TICKRST_POS                24
  449.         #define RCC_PER0RSTR_TICKRST_MASK                (0x01UL<<RCC_PER0RSTR_TICKRST_POS)
  450.         #define RCC_PER0RSTR_TICKRST                        RCC_PER0RSTR_TICKRST_MASK

  451.         #define RCC_PER0RSTR_SWDRST_POS                        25
  452.         #define RCC_PER0RSTR_SWDRST_MASK                (0x01UL<<RCC_PER0RSTR_SWDRST_POS)
  453.         #define RCC_PER0RSTR_SWDRST                                RCC_PER0RSTR_SWDRST_MASK

  454.         #define RCC_PER0RSTR_CRCRST_POS                        26
  455.         #define RCC_PER0RSTR_CRCRST_MASK                (0x01UL<<RCC_PER0RSTR_CRCRST_POS)
  456.         #define RCC_PER0RSTR_CRCRST                                RCC_PER0RSTR_CRCRST_MASK

  457.         #define RCC_PER0RSTR_AESRST_POS                        27
  458.         #define RCC_PER0RSTR_AESRST_MASK                (0x01UL<<RCC_PER0RSTR_AESRST_POS)
  459.         #define RCC_PER0RSTR_AESRST                                RCC_PER0RSTR_AESRST_MASK

  460.         #define RCC_PER0RSTR_GPIORST_POS                28
  461.         #define RCC_PER0RSTR_GPIORST_MASK                (0x01UL<<RCC_PER0RSTR_GPIORST_POS)
  462.         #define RCC_PER0RSTR_GPIORST                        RCC_PER0RSTR_GPIORST_MASK

  463.         #define RCC_PER0RSTR_DMARST_POS                        29
  464.         #define RCC_PER0RSTR_DMARST_MASK                (0x01UL<<RCC_PER0RSTR_DMARST_POS)
  465.         #define RCC_PER0RSTR_DMARST                                RCC_PER0RSTR_DMARST_MASK
  466.         
  467.         #define RCC_PER0RSTR_ALL                                 (uint32_t)0xFFFFFFFFU

  468.         //===<<<外围模块时钟复位寄存器0的功能

  469.         //===>>>外围模块时钟控制寄存器1的功能
  470.         #define RCC_PER1RSTR_DACRST_POS                        3
  471.         #define RCC_PER1RSTR_DACRST_MASK                (0x01UL<<RCC_PER1RSTR_DACRST_POS)
  472.         #define RCC_PER1RSTR_DACRST                                RCC_PER1RSTR_DACRST_MASK

  473.         #define RCC_PER1RSTR_LPTIM1RST_POS                4
  474.         #define RCC_PER1RSTR_LPTIM1RST_MASK                (0x01UL<<RCC_PER1RSTR_LPTIM1RST_POS)
  475.         #define RCC_PER1RSTR_LPTIM1RST                        RCC_PER1RSTR_LPTIM1RST_POS

  476.         #define RCC_PER1RSTR_UART2RST_POS                8
  477.         #define RCC_PER1RSTR_UART2RST_MASK                (0x01UL<<RCC_PER1RSTR_UART2RST_POS)
  478.         #define RCC_PER1RSTR_UART2RST                        RCC_PER1RSTR_UART2RST_MASK

  479.         #define RCC_PER1RSTR_UART3RST_POS                9
  480.         #define RCC_PER1RSTR_UART3RST_MASK                (0x01UL<<RCC_PER1RSTR_UART3RST_POS)
  481.         #define RCC_PER1RSTR_UART3RST                        RCC_PER1RSTR_UART3RST_MASK
  482.         
  483.         #define RCC_PER1RSTR_ALL                                 (uint32_t)0xFFFFFFFFU

  484.         //===<<<外围模块时钟控制寄存器1的功能

  485.         //===>>>XTL控制寄存器的的功能
  486.         #define RCC_PLL_STABLE_POS                                18
  487.         #define RCC_PLL_STABLE_MASK                                (0x01UL<<RCC_PLL_STABLE_POS)
  488.         #define RCC_PLL_STABLE                                        RCC_PLL_STABLE_MASK

  489.         #define RCC_PLL_STARTUP_POS                                15
  490.         #define RCC_PLL_STARTUP_MASK                        (0x07UL<<RCC_PLL_STARTUP_POS)
  491.         #define RCC_PLL_STARTUP                                        RCC_PLL_STARTUP_MASK

  492.         #define RCC_PLL_STARTUP_128_CLK                        (0x00UL<<RCC_PLL_STARTUP_POS)
  493.         #define RCC_PLL_STARTUP_256_CLK                        (0x01UL<<RCC_PLL_STARTUP_POS)
  494.         #define RCC_PLL_STARTUP_512_CLK                        (0x02UL<<RCC_PLL_STARTUP_POS)
  495.         #define RCC_PLL_STARTUP_1024_CLK                (0x03UL<<RCC_PLL_STARTUP_POS)
  496.         #define RCC_PLL_STARTUP_2048_CLK                (0x04UL<<RCC_PLL_STARTUP_POS)
  497.         #define RCC_PLL_STARTUP_4096_CLK                (0x05UL<<RCC_PLL_STARTUP_POS)
  498.         #define RCC_PLL_STARTUP_8192_CLK                (0x06UL<<RCC_PLL_STARTUP_POS)
  499.         #define RCC_PLL_STARTUP_16384_CLK                (0x07UL<<RCC_PLL_STARTUP_POS)

  500.         //===PLL输入频率
  501.         #define RCC_PLL_IN_FREQ_POS                                13
  502.         #define RCC_PLL_IN_FREQ_MASK                        (0x03UL<<RCC_PLL_IN_FREQ_POS)
  503.         #define RCC_PLL_IN_FREQ                                        RCC_PLL_IN_FREQ_MASK

  504.         #define RCC_PLL_IN_FREQ_20M_24M                        (0x03UL<<RCC_PLL_IN_FREQ_POS)
  505.         #define RCC_PLL_IN_FREQ_12M_20M                        (0x02UL<<RCC_PLL_IN_FREQ_POS)
  506.         #define RCC_PLL_IN_FREQ_6M_12M                        (0x01UL<<RCC_PLL_IN_FREQ_POS)
  507.         #define RCC_PLL_IN_FREQ_4M_6M                        (0x00UL<<RCC_PLL_IN_FREQ_POS)
  508.         
  509.         //===PLL倍频
  510.         #define RCC_PLL_DIVN_POS                                5
  511.         #define RCC_PLL_DIVN_MASK                                (0x0FUL<<RCC_PLL_DIVN_POS)
  512.         #define RCC_PLL_DIVN                                        RCC_PLL_DIVN_MASK

  513.         #define RCC_PLL_DIVN_2                                        (0x02UL<<RCC_PLL_DIVN_POS)
  514.         #define RCC_PLL_DIVN_3                                        (0x03UL<<RCC_PLL_DIVN_POS)
  515.         #define RCC_PLL_DIVN_4                                        (0x04UL<<RCC_PLL_DIVN_POS)
  516.         #define RCC_PLL_DIVN_5                                        (0x05UL<<RCC_PLL_DIVN_POS)
  517.         #define RCC_PLL_DIVN_6                                        (0x06UL<<RCC_PLL_DIVN_POS)
  518.         #define RCC_PLL_DIVN_7                                        (0x07UL<<RCC_PLL_DIVN_POS)
  519.         #define RCC_PLL_DIVN_8                                        (0x08UL<<RCC_PLL_DIVN_POS)
  520.         #define RCC_PLL_DIVN_9                                        (0x09UL<<RCC_PLL_DIVN_POS)
  521.         #define RCC_PLL_DIVN_10                                        (0x0AUL<<RCC_PLL_DIVN_POS)
  522.         #define RCC_PLL_DIVN_11                                        (0x0BUL<<RCC_PLL_DIVN_POS)
  523.         #define RCC_PLL_DIVN_12                                        (0x0CUL<<RCC_PLL_DIVN_POS)

  524.         //===PLL输出频率
  525.         #define RCC_PLL_OUT_FREQ_POS                        2
  526.         #define RCC_PLL_OUT_FREQ_MASK                        (0x07UL<<RCC_PLL_OUT_FREQ_POS)
  527.         #define RCC_PLL_OUT_FREQ                                RCC_PLL_OUT_FREQ_MASK

  528.         #define RCC_PLL_OUT_FREQ_8M_12M                        (0x00UL<<RCC_PLL_OUT_FREQ_POS)
  529.         #define RCC_PLL_OUT_FREQ_12M_18M                (0x01UL<<RCC_PLL_OUT_FREQ_POS)
  530.         #define RCC_PLL_OUT_FREQ_18M_24M                (0x02UL<<RCC_PLL_OUT_FREQ_POS)
  531.         #define RCC_PLL_OUT_FREQ_24M_36M                (0x03UL<<RCC_PLL_OUT_FREQ_POS)
  532.         #define RCC_PLL_OUT_FREQ_36M_48M                (0x04UL<<RCC_PLL_OUT_FREQ_POS)

  533.         //===输入时钟选择
  534.         #define RCC_PLL_REF_POS                                        0
  535.         #define RCC_PLL_REF_MASK                                (0x07UL<<RCC_PLL_REF_POS)
  536.         #define RCC_PLL_REF                                                RCC_PLL_REF_MASK

  537.         #define RCC_PLL_REF_XTH                                        (0x00UL<<RCC_PLL_REF_POS)
  538.         #define RCC_PLL_REF_BYPASS                                (0x01UL<<RCC_PLL_REF_POS)
  539.         #define RCC_PLL_REF_RCH                                        (0x03UL<<RCC_PLL_REF_POS)

  540.         //===<<<XTL控制寄存器的的功能

  541. #pragma endregion

  542. #pragma region GPIO
  543.         //===端口复用功能配置寄存器
  544.         typedef struct
  545.         {
  546.                 __IO uint32_t SEL[16];                //---端口选择功能
  547.                 /*
  548.                 __IO uint32_t SEL01;                //---端口选择功能
  549.                 __IO uint32_t SEL02;                //---端口选择功能
  550.                 __IO uint32_t SEL03;                //---端口选择功能
  551.                 __IO uint32_t SEL04;                //---端口选择功能
  552.                 __IO uint32_t SEL05;                //---端口选择功能
  553.                 __IO uint32_t SEL06;                //---端口选择功能
  554.                 __IO uint32_t SEL07;                //---端口选择功能
  555.                 __IO uint32_t SEL08;                //---端口选择功能
  556.                 __IO uint32_t SEL09;                //---端口选择功能
  557.                 __IO uint32_t SEL10;                //---端口选择功能
  558.                 __IO uint32_t SEL11;                //---端口选择功能
  559.                 __IO uint32_t SEL12;                //---端口选择功能
  560.                 __IO uint32_t SEL13;                //---端口选择功能
  561.                 __IO uint32_t SEL14;                //---端口选择功能
  562.                 __IO uint32_t SEL15;                //---端口选择功能
  563.                 */
  564.         } GPIO_AF_TypeDef;

  565.         //===端口通用功能配置寄存器
  566.         typedef struct
  567.         {
  568.                 __IO uint32_t DIR;                //---配置输入输出模式模式                00
  569.                 __IO uint32_t IDR;                //---输入数据寄存器                        04
  570.                 __IO uint32_t ODR;                //---输出数据寄存器                        08
  571.                 __IO uint32_t ADS;                //---数模配置寄存器                        0c
  572.                 __IO uint32_t BSET;                //---置位寄存器                                10
  573.                 __IO uint32_t BCLR;                //---清零寄存器                                14
  574.                 __IO uint32_t BSETCLR;        //---置位清零寄存器                        18

  575.                 __IO uint32_t DRIVER;        //---驱动能力寄存器                        1c
  576.                 __IO uint32_t PU;                //---上拉使能寄存器                        20
  577.                 __IO uint32_t PD;                //---下拉使能寄存器                        24
  578.                 uint32_t RESERVED;                //---保留字节
  579.                 __IO uint32_t OD;                //---开漏输出寄存器                        2c
  580.         } GPIO_TypeDef;

  581.         //===端口辅助功能配置寄存器
  582.         typedef struct
  583.         {
  584.                 __IO uint32_t CTRL1;        //---端口辅助功能配置寄存器1                04
  585.                 __IO uint32_t CTRL2;        //---端口辅助功能配置寄存器1                08
  586.                 __IO uint32_t TIMGS;        //---端口辅助定时器门控选择                0c
  587.                 __IO uint32_t TIMES;        //---端口辅助定时器ETR控选择                10
  588.                 __IO uint32_t TIMCPS;        //---端口辅助定时器输入捕获选择        14
  589.                 __IO uint32_t PCAS;                //---端口辅助PCA捕获选择                        18
  590.                 __IO uint32_t PCNTS;        //---端口辅助PCNT脉冲输入选择                1c
  591.         } GPIO_Sub_TypeDef;

  592.         #define GPIO_AF_CTRL1_IR_POS                        14
  593.         #define GPIO_AF_CTRL1_IR_MASK                        (0x01UL<<GPIO_AF_CTRL1_IR_POS)
  594.         #define GPIO_AF_CTRL1_IR                                GPIO_AF_CTRL1_IR_MASK

  595.         #define GPIO_AF_CTRL1_HCLK_EN_POS                13
  596.         #define GPIO_AF_CTRL1_HCLK_EN_MASK                (0x01UL<<GPIO_AF_CTRL1_HCLK_EN_POS)
  597.         #define GPIO_AF_CTRL1_HCLK_EN                        GPIO_AF_CTRL1_HCLK_EN_MASK

  598.         #define GPIO_AF_CTRL1_PCLK_EN_POS                13
  599.         #define GPIO_AF_CTRL1_PCLK_EN_MASK                (0x01UL<<GPIO_AF_CTRL1_PCLK_EN_POS)
  600.         #define GPIO_AF_CTRL1_PCLK_EN                        GPIO_AF_CTRL1_PCLK_EN_MASK

  601.         #define GPIO_AF_CTRL1_HCLK_SEL_POS                10
  602.         #define GPIO_AF_CTRL1_HCLK_SEL_MASK                (0x03UL<<GPIO_AF_CTRL1_HCLK_SEL_POS)
  603.         #define GPIO_AF_CTRL1_HCLK_SEL                        GPIO_AF_CTRL1_HCLK_SEL_MASK

  604.         #define GPIO_AF_CTRL1_HCLK_PRS_1                (0x00UL<<GPIO_AF_CTRL1_HCLK_SEL_POS)
  605.         #define GPIO_AF_CTRL1_HCLK_PRS_2                (0x01UL<<GPIO_AF_CTRL1_HCLK_SEL_POS)
  606.         #define GPIO_AF_CTRL1_HCLK_PRS_4                (0x02UL<<GPIO_AF_CTRL1_HCLK_SEL_POS)
  607.         #define GPIO_AF_CTRL1_HCLK_PRS_8                (0x03UL<<GPIO_AF_CTRL1_HCLK_SEL_POS)

  608.         #define GPIO_AF_CTRL1_PCLK_SEL_POS                8
  609.         #define GPIO_AF_CTRL1_PCLK_SEL_MASK                (0x03UL<<GPIO_AF_CTRL1_PCLK_SEL_POS)
  610.         #define GPIO_AF_CTRL1_PCLK_SEL                        GPIO_AF_CTRL1_PCLK_SEL_MASK

  611.         #define GPIO_AF_CTRL1_PCLK_PRS_1                (0x00UL<<GPIO_AF_CTRL1_PCLK_SEL_POS)
  612.         #define GPIO_AF_CTRL1_PCLK_PRS_2                (0x01UL<<GPIO_AF_CTRL1_PCLK_SEL_POS)
  613.         #define GPIO_AF_CTRL1_PCLK_PRS_4                (0x02UL<<GPIO_AF_CTRL1_PCLK_SEL_POS)
  614.         #define GPIO_AF_CTRL1_PCLK_PRS_8                (0x03UL<<GPIO_AF_CTRL1_PCLK_SEL_POS)

  615.         #define GPIO_AF_CTRL1_SPI0_SS_POS                4
  616.         #define GPIO_AF_CTRL1_SPI0_SS_MASK                (0x0FUL<<GPIO_AF_CTRL1_SPI0_SS_POS)
  617.         #define GPIO_AF_CTRL1_SPI0_SS                        GPIO_AF_CTRL1_SPI0_SS_MASK

  618.         #define GPIO_AF_CTRL1_EXT_CLK_POS                0
  619.         #define GPIO_AF_CTRL1_EXT_CLK_MASK                (0x0FUL<<GPIO_AF_CTRL1_EXT_CLK_POS)
  620.         #define GPIO_AF_CTRL1_EXT_CLK                        GPIO_AF_CTRL1_EXT_CLK_MASK

  621.         #define GPIO_AF_CTRL2_AHB_POS                        15
  622.         #define GPIO_AF_CTRL2_AHB_MASK                        (0x01UL<<GPIO_AF_CTRL2_AHB_POS)
  623.         #define GPIO_AF_CTRL2_AHB                                GPIO_AF_CTRL2_AHB_MASK

  624.         #define GPIO_AF_CTRL2_TCLK_DIV_POS                6
  625.         #define GPIO_AF_CTRL2_TCLK_DIV_MASK                (0x03UL<<GPIO_AF_CTRL2_TCLK_DIV_POS)
  626.         #define GPIO_AF_CTRL2_TCLK_DIV                        GPIO_AF_CTRL2_TCLK_DIV_MASK

  627.         #define GPIO_AF_CTRL2_TCLK_SEL_POS                4
  628.         #define GPIO_AF_CTRL2_TCLK_SEL_MASK                (0x03UL<<GPIO_AF_CTRL2_TCLK_SEL_POS)
  629.         #define GPIO_AF_CTRL2_TCLK_SEL                        GPIO_AF_CTRL2_TCLK_SEL_MASK

  630.         #define GPIO_AF_CTRL2_SPI1_SS_POS                0
  631.         #define GPIO_AF_CTRL2_SPI1_SS_MASK                (0x0FUL<<GPIO_AF_CTRL2_SPI1_SS_POS)
  632.         #define GPIO_AF_CTRL2_SPI1_SS                        GPIO_AF_CTRL2_SPI1_SS_MASK

  633.         //===端口定时器门控选择
  634.         #define GPIO_AF_TIMGS_LPTIM0_POS                12
  635.         #define GPIO_AF_TIMGS_LPTIM0_MASK                (0x07UL<<GPIO_AF_TIMGS_LPTIM0_POS)
  636.         #define GPIO_AF_TIMGS_LPTIM0                        GPIO_AF_TIMGS_LPTIM0_MASK

  637.         #define GPIO_AF_TIMGS_TIM3_POS                        9
  638.         #define GPIO_AF_TIMGS_TIM3_MASK                        (0x07UL<<GPIO_AF_TIMGS_TIM3_POS)
  639.         #define GPIO_AF_TIMGS_TIM3                                GPIO_AF_TIMGS_TIM3_MASK

  640.         #define GPIO_AF_TIMGS_TIM2_POS                        6
  641.         #define GPIO_AF_TIMGS_TIM2_MASK                        (0x07UL<<GPIO_AF_TIMGS_TIM2_POS)
  642.         #define GPIO_AF_TIMGS_TIM2                                GPIO_AF_TIMGS_TIM2_MASK

  643.         #define GPIO_AF_TIMGS_TIM1_POS                        3
  644.         #define GPIO_AF_TIMGS_TIM1_MASK                        (0x07UL<<GPIO_AF_TIMGS_TIM1_POS)
  645.         #define GPIO_AF_TIMGS_TIM1                                GPIO_AF_TIMGS_TIM1_MASK

  646.         #define GPIO_AF_TIMGS_TIM0_POS                        0
  647.         #define GPIO_AF_TIMGS_TIM0_MASK                        (0x07UL<<GPIO_AF_TIMGS_TIM0_POS)
  648.         #define GPIO_AF_TIMGS_TIM0                                GPIO_AF_TIMGS_TIM0_MASK

  649.         //===定时器ETR输入选择
  650.         #define GPIO_AF_TIMES_LPTIM0_POS                12
  651.         #define GPIO_AF_TIMES_LPTIM0_MASK                (0x07UL<<GPIO_AF_TIMES_LPTIM0_POS)
  652.         #define GPIO_AF_TIMES_LPTIM0                        GPIO_AF_TIMES_LPTIM0_MASK

  653.         #define GPIO_AF_TIMES_TIM3_POS                        9
  654.         #define GPIO_AF_TIMES_TIM3_MASK                        (0x07UL<<GPIO_AF_TIMES_TIM3_POS)
  655.         #define GPIO_AF_TIMES_TIM3                                GPIO_AF_TIMES_TIM3_MASK

  656.         #define GPIO_AF_TIMES_TIM2_POS                        6
  657.         #define GPIO_AF_TIMES_TIM2_MASK                        (0x07UL<<GPIO_AF_TIMES_TIM2_POS)
  658.         #define GPIO_AF_TIMES_TIM2                                GPIO_AF_TIMES_TIM2_MASK

  659.         #define GPIO_AF_TIMES_TIM1_POS                        3
  660.         #define GPIO_AF_TIMES_TIM1_MASK                        (0x07UL<<GPIO_AF_TIMES_TIM1_POS)
  661.         #define GPIO_AF_TIMES_TIM1                                GPIO_AF_TIMES_TIM1_MASK

  662.         #define GPIO_AF_TIMES_TIM0_POS                        0
  663.         #define GPIO_AF_TIMES_TIM0_MASK                        (0x07UL<<GPIO_AF_TIMES_TIM0_POS)
  664.         #define GPIO_AF_TIMES_TIM0                                GPIO_AF_TIMES_TIM0_MASK

  665.         //===输入捕捉通道选择
  666.         #define GPIO_AF_TIMCPS_TIM3_CH0B_POS        12
  667.         #define GPIO_AF_TIMCPS_TIM3_CH0B_MASK        (0x07UL<<GPIO_AF_TIMCPS_TIM3_CH0B_POS)
  668.         #define GPIO_AF_TIMCPS_TIM3_CH0B                GPIO_AF_TIMCPS_TIM3_CH0B_MASK

  669.         #define GPIO_AF_TIMCPS_TIM3_CH0A_POS        9
  670.         #define GPIO_AF_TIMCPS_TIM3_CH0A_MASK        (0x07UL<<GPIO_AF_TIMCPS_TIM3_CH0A_POS)
  671.         #define GPIO_AF_TIMCPS_TIM3_CH0A                GPIO_AF_TIMCPS_TIM3_CH0A_MASK

  672.         #define GPIO_AF_TIMCPS_TIM2_CH0A_POS        6
  673.         #define GPIO_AF_TIMCPS_TIM2_CH0A_MASK        (0x07UL<<GPIO_AF_TIMCPS_TIM2_CH0A_POS)
  674.         #define GPIO_AF_TIMCPS_TIM2_CH0A                GPIO_AF_TIMCPS_TIM2_CH0A_MASK

  675.         #define GPIO_AF_TIMCPS_TIM1_CH0A_POS        3
  676.         #define GPIO_AF_TIMCPS_TIM1_CH0A_MASK        (0x07UL<<GPIO_AF_TIMCPS_TIM1_CH0A_POS)
  677.         #define GPIO_AF_TIMCPS_TIM1_CH0A                GPIO_AF_TIMCPS_TIM1_CH0A_MASK

  678.         #define GPIO_AF_TIMCPS_TIM0_CH0A_POS        0
  679.         #define GPIO_AF_TIMCPS_TIM0_CH0A_MASK        (0x07UL<<GPIO_AF_TIMCPS_TIM0_CH0A_POS)
  680.         #define GPIO_AF_TIMCPS_TIM0_CH0A                GPIO_AF_TIMCPS_TIM0_CH0A_MASK

  681.         //===PCA捕获选择
  682.         #define GPIO_AF_PCAS_LPTIM1_ETR_POS                9
  683.         #define GPIO_AF_PCAS_LPTIM1_ETR_MASK        (0x07UL<<GPIO_AF_PCAS_LPTIM1_ETR_POS)
  684.         #define GPIO_AF_PCAS_LPTIM1_ETR                        GPIO_AF_PCAS_LPTIM1_ETR_MASK

  685.         #define GPIO_AF_PCAS_LPTIM1_GATE_POS        6
  686.         #define GPIO_AF_PCAS_LPTIM1_GATE_MASK        (0x07UL<<GPIO_AF_PCAS_LPTIM1_GATE_POS)
  687.         #define GPIO_AF_PCAS_LPTIM1_GATE                GPIO_AF_PCAS_LPTIM1_GATE_MASK

  688.         #define GPIO_AF_PCAS_PCA_EC1_POS                3
  689.         #define GPIO_AF_PCAS_PCA_EC1_MASK                (0x07UL<<GPIO_AF_PCAS_PCA_EC1_POS)
  690.         #define GPIO_AF_PCAS_PCA_EC1                        GPIO_AF_PCAS_PCA_EC1_MASK
  691.         
  692.         #define GPIO_AF_PCAS_PCA_CH0_POS                0
  693.         #define GPIO_AF_PCAS_PCA_CH0_MASK                (0x07UL<<GPIO_AF_PCAS_PCA_CH0_POS)
  694.         #define GPIO_AF_PCAS_PCA_CH0                        GPIO_AF_PCAS_PCA_CH0_MASK

  695.         //===PCNT输入选择
  696.         #define GPIO_AF_PCNTS_PCNT_S1_POS                2
  697.         #define GPIO_AF_PCNTS_PCNT_S1_MASK                (0x03UL<<GPIO_AF_PCNTS_PCNT_S1_POS)
  698.         #define GPIO_AF_PCNTS_PCNT_S1                        GPIO_AF_PCNTS_PCNT_S1_MASK

  699.         #define GPIO_AF_PCNTS_PCNT_S0_POS                0
  700.         #define GPIO_AF_PCNTS_PCNT_S0_MASK                (0x03UL<<GPIO_AF_PCNTS_PCNT_S0_POS)
  701.         #define GPIO_AF_PCNTS_PCNT_S0                        GPIO_AF_PCNTS_PCNT_S0_MASK

  702. #pragma endregion

  703. //===外部中断
  704. #pragma region EXTI

  705.         //===端口通用功能配置寄存器
  706.         typedef struct
  707.         {
  708.                 __IO uint32_t HIE;                //---高电平中断使能  130
  709.                 __IO uint32_t LIE;                //---低电平中断使能  134
  710.                 __IO uint32_t RIE;                //---上升沿中断使能  138
  711.                 __IO uint32_t FIE;                //---下降沿中断使能  13c
  712.                 uint32_t RESERVED1[48];        //---保留字节
  713.                 __IO uint32_t SR;                //---中断状态        200
  714.                 uint32_t RESERVED2[3];        //---保留字节
  715.                 __IO uint32_t CSR;                //---清除中断状态    210
  716.         } EXIT_TypeDef;

  717.         #define EXIT_PIN_0_POS                                        0
  718.         #define EXIT_PIN_0_MASK                                        (0x01UL<<EXIT_PIN_0_POS)
  719.         #define EXIT_PIN_0                                                EXIT_PIN_0_MASK

  720.         #define EXIT_PIN_1_POS                                        1
  721.         #define EXIT_PIN_1_MASK                                        (0x01UL<<EXIT_PIN_1_POS)
  722.         #define EXIT_PIN_1                                                EXIT_PIN_1_MASK

  723.         #define EXIT_PIN_2_POS                                        2
  724.         #define EXIT_PIN_2_MASK                                        (0x01UL<<EXIT_PIN_2_POS)
  725.         #define EXIT_PIN_2                                                EXIT_PIN_2

  726.         #define EXIT_PIN_3_POS                                        3
  727.         #define EXIT_PIN_3_MASK                                        (0x01UL<<EXIT_PIN_3_POS)
  728.         #define EXIT_PIN_3                                                EXIT_PIN_3_MASK

  729.         #define EXIT_PIN_4_POS                                        4
  730.         #define EXIT_PIN_4_MASK                                        (0x01UL<<EXIT_PIN_4_POS)
  731.         #define EXIT_PIN_4                                                EXIT_PIN_4_MASK

  732.         #define EXIT_PIN_5_POS                                        5
  733.         #define EXIT_PIN_5_MASK                                        (0x01UL<<EXIT_PIN_5_POS)
  734.         #define EXIT_PIN_5                                                EXIT_PIN_5_MASK

  735.         #define EXIT_PIN_6_POS                                        6
  736.         #define EXIT_PIN_6_MASK                                        (0x01UL<<EXIT_PIN_6_POS)
  737.         #define EXIT_PIN_6                                                EXIT_PIN_6_MASK

  738.         #define EXIT_PIN_7_POS                                        7
  739.         #define EXIT_PIN_7_MASK                                        (0x01UL<<EXIT_PIN_7_POS)
  740.         #define EXIT_PIN_7                                                EXIT_PIN_7_MASK

  741.         #define EXIT_PIN_8_POS                                        8
  742.         #define EXIT_PIN_8_MASK                                        (0x01UL<<EXIT_PIN_8_POS)
  743.         #define EXIT_PIN_8                                                EXIT_PIN_8_MASK

  744.         #define EXIT_PIN_9_POS                                        9
  745.         #define EXIT_PIN_9_MASK                                        (0x01UL<<EXIT_PIN_9_POS)
  746.         #define EXIT_PIN_9                                                EXIT_PIN_9_MASK

  747.         #define EXIT_PIN_10_POS                                        10
  748.         #define EXIT_PIN_10_MASK                                (0x01UL<<EXIT_PIN_10_POS)
  749.         #define EXIT_PIN_10                                                EXIT_PIN_10_MASK

  750.         #define EXIT_PIN_11_POS                                        11
  751.         #define EXIT_PIN_11_MASK                                (0x01UL<<EXIT_PIN_11_POS)
  752.         #define EXIT_PIN_11                                                EXIT_PIN_11_MASK

  753.         #define EXIT_PIN_12_POS                                        12
  754.         #define EXIT_PIN_12_MASK                                (0x01UL<<EXIT_PIN_12_POS)
  755.         #define EXIT_PIN_12                                                EXIT_PIN_12_MASK

  756.         #define EXIT_PIN_13_POS                                        13
  757.         #define EXIT_PIN_13_MASK                                (0x01UL<<EXIT_PIN_13_POS)
  758.         #define EXIT_PIN_13                                                EXIT_PIN_13_MASK

  759.         #define EXIT_PIN_14_POS                                        14
  760.         #define EXIT_PIN_14_MASK                                (0x01UL<<EXIT_PIN_14_POS)
  761.         #define EXIT_PIN_14                                                EXIT_PIN_14_MASK

  762.         #define EXIT_PIN_15_POS                                        15
  763.         #define EXIT_PIN_15_MASK                                (0x01UL<<EXIT_PIN_15_POS)
  764.         #define EXIT_PIN_15                                                EXIT_PIN_15_MASK

  765. #pragma endregion

  766. #pragma region CRC
  767.         //===端口通用功能配置寄存器
  768.         typedef struct
  769.         {
  770.                 __IO uint32_t CR;                //---控制寄存器
  771.                 __IO uint32_t DR;                //---数据寄存器    04
  772.                 uint32_t RESERVED[30];        //---保留字节
  773.                 __IO uint32_t IDR;                //---输入数据寄存器 80
  774.         } CRC_TypeDef;

  775.         //===CRC编码格式,CRC16或者CRC32
  776.         #define CRC_CR_ENCODE_POS                0
  777.         #define CRC_CR_ENCODE_MASK                (0x01U<<CRC_CR_ENCODE_POS)
  778.         #define CRC_CR_ENCODE                        CRC_CR_ENCODE_MASK
  779.         
  780.         //===CRC校验结果
  781.         #define CRC_CR_FLAG_POS                        1
  782.         #define CRC_CR_FLAG_MASK                (0x01U<<CRC_CR_FLAG_POS)
  783.         #define CRC_CR_FLAG                                CRC_CR_FLAG_MASK
  784.         
  785.         //===CRC16编码
  786.         #define CRC_CR_CRC16                        0
  787.         //===CRC32编码
  788.         #define CRC_CR_CRC32                        1
  789.         
  790.         //===CRC校验错误
  791.         #define CRC_CR_FLAG_ERR                        0
  792.         //===CRC校验成功
  793.         #define CRC_CR_FLAG_OK                        1

  794. #pragma endregion
  795.         
  796. #pragma region I2C
  797.         //===端口通用功能配置寄存器
  798.         typedef struct
  799.         {
  800.                 __IO uint32_t TMRUN;        //---时钟寄存器1
  801.                 __IO uint32_t TM;                //---时钟寄存器2
  802.                 __IO uint32_t CR;                //---控制寄存器
  803.                 __IO uint32_t DR;                //---数据寄存器
  804.                 __IO uint32_t ADDR;                //---地址寄存器
  805.                 __IO uint32_t SR;                //---状态寄存器
  806.         } I2C_TypeDef;

  807.         #define I2C_TMRUN_TME_POS                0
  808.         #define I2C_TMRUN_TME_MASK                (0x01U<<I2C_TMRUN_TME_POS)
  809.         #define I2C_TMRUN_TME                        I2C_TMRUN_TME_MASK

  810.         #define I2C_TM_POS                                0
  811.         #define I2C_TM_MASK                                (0xFFU<<I2C_TM_POS)
  812.         #define I2C_TM                                        I2C_TM_MASK

  813.         #define I2C_CR_EN_POS                        6
  814.         #define I2C_CR_EN_MASK                        (0x01U<<I2C_CR_EN_POS)
  815.         #define I2C_CR_EN                                I2C_CR_EN_MASK

  816.         #define I2C_CR_START_POS                5
  817.         #define I2C_CR_START_MASK                (0x01U<<I2C_CR_START_POS)
  818.         #define I2C_CR_START                        I2C_CR_START_MASK

  819.         #define I2C_CR_STOP_POS                        4
  820.         #define I2C_CR_STOP_MASK                (0x01U<<I2C_CR_STOP_POS)
  821.         #define I2C_CR_STOP                                I2C_CR_STOP_MASK

  822.         #define I2C_CR_IE_FLAG_POS                3
  823.         #define I2C_CR_IE_FLAG_MASK                (0x01U<<I2C_CR_IE_FLAG_POS)
  824.         #define I2C_CR_IE_FLAG                        I2C_CR_IE_FLAG_MASK

  825.         #define I2C_CR_ACK_POS                        2
  826.         #define I2C_CR_ACK_MASK                        (0x01U<<I2C_CR_ACK_POS)
  827.         #define I2C_CR_ACK                                I2C_CR_ACK_MASK

  828.         #define I2C_CR_FILTER_POS                0
  829.         #define I2C_CR_FILTER_MASK                (0x01U<<I2C_CR_FILTER_POS)
  830.         #define I2C_CR_FILTER                        I2C_CR_FILTER_MASK

  831.         #define I2C_DATA_POS                        0
  832.         #define I2C_DATA_MASK                        (0xFFU<<I2C_DATA_POS)
  833.         #define I2C_DATA                                I2C_DATA_MASK

  834.         #define I2C_ADDR_SLAVE_POS                1
  835.         #define I2C_ADDR_SLAVE_MASK                (0x7FU<<I2C_ADDR_SLAVE_POS)
  836.         #define I2C_ADDR_SLAVE                        I2C_ADDR_SLAVE_MASK

  837.         #define I2C_ADDR_GC_POS                        0
  838.         #define I2C_ADDR_GC_MASK                (0x01U<<I2C_ADDR_GC_POS)
  839.         #define I2C_ADDR_GC                                I2C_ADDR_GC_MASK

  840.         #define I2C_STATE_POS                        0
  841.         #define I2C_STATE_MASK                        (0xFFU<<I2C_STATE_POS)
  842.         #define I2C_STATE                                I2C_STATE_MASK

  843.         #define I2C_STATE_M_START                        0X08
  844.         #define I2C_STATE_M_RESTART                        0X10
  845.         #define I2C_STATE_M_ERR                                0X38

  846.         #define I2C_STATE_MT_ADDR_ACK                0X18
  847.         #define I2C_STATE_MT_ADDR_NACK                0X20
  848.         #define I2C_STATE_MT_DATA_ACK                0X28
  849.         #define I2C_STATE_MT_DATA_NACK                0X30

  850.         #define I2C_STATE_MR_ADDR_ACK                0X40
  851.         #define I2C_STATE_MR_ADDR_NACK                0X48
  852.         #define I2C_STATE_MR_DATA_ACK                0X50
  853.         #define I2C_STATE_MR_DATA_NACK                0X58

  854.         #define I2C_STATE_STATIC_ADDR                0XA0

  855.         #define I2C_STATE_SR_ADDR_ACK                0X60
  856.         #define I2C_STATE_SR_ADDR_ERR_ACK        0X68
  857.         #define I2C_STATE_SR_DATA_ACK                0X80
  858.         #define I2C_STATE_SR_DATA_NACK                0X88        

  859.         #define I2C_STATE_ST_ADDR_ACK                0XA8
  860.         #define I2C_STATE_ST_ADDR_ERR_ACK        0XB0
  861.         #define I2C_STATE_ST_DATA_ACK                0XB8
  862.         #define I2C_STATE_ST_DATA_NACK                0XC0
  863.         #define I2C_STATE_ST_DATA_LOAD_ACK        0XC8

  864.         #define I2C_STATE_GC_ADDR_ACK                0X70
  865.         #define I2C_STATE_GC_ADDR_ERR_ACK        0X78
  866.         #define I2C_STATE_GC_DATA_ACK                0X78
  867.         #define I2C_STATE_GC_DATA_NACK                0X98
  868.         
  869.         #define I2C_STATE_NONE                                0XF8
  870.         #define I2C_STATE_ERR                                0X00

  871. #pragma endregion

  872. #pragma region SPI
  873.         //===端口通用功能配置寄存器
  874.         typedef struct
  875.         {
  876.                 __IO uint32_t CR;                //---配置寄存器1                        00
  877.                 __IO uint32_t SSN;                //---片选配置寄存器                04
  878.                 __IO uint32_t SR;                //---状态寄存器                        08
  879.                 __IO uint32_t DR;                //---数据寄存器                        0C
  880.                 __IO uint32_t CR2;                //---配置寄存器2                        10
  881.                 __IO uint32_t CSR;                //---状态清除寄存器                14
  882.         } SPI_TypeDef;

  883.         #define SPI_CR_BAUDRATE_SPR2_POS        7
  884.         #define SPI_CR_BAUDRATE_SPR2_MASK        (0x01U<<SPI_CR_BAUDRATE_SPR2_POS)
  885.         #define SPI_CR_BAUDRATE_SPR2                SPI_CR_BAUDRATE_SPR2_MASK

  886.         #define SPI_CR_EN_POS                                6
  887.         #define SPI_CR_EN_MASK                                (0x01U<<SPI_CR_EN_POS)
  888.         #define SPI_CR_EN                                        SPI_CR_EN_MASK

  889.         #define SPI_CR_MODE_POS                                4
  890.         #define SPI_CR_MODE_MASK                        (0x01U<<SPI_CR_MODE_POS)
  891.         #define SPI_CR_MODE                                        SPI_CR_MODE_MASK

  892.         #define SPI_CR_MODE_MASTER                        SPI_CR_MODE
  893.         #define SPI_CR_MODE_SLAVE                        (~SPI_CR_MODE)

  894.         #define SPI_CR_CPOL_POS                                3
  895.         #define SPI_CR_CPOL_MASK                        (0x01U<<SPI_CR_CPOL_POS)
  896.         #define SPI_CR_CPOL                                        SPI_CR_CPOL_MASK

  897.         #define SPI_CR_CPOL_LOW                                (~SPI_CR_CPOL)
  898.         #define SPI_CR_CPOL_HIGH                        (SPI_CR_CPOL)

  899.         #define SPI_CR_CPHA_POS                                2
  900.         #define SPI_CR_CPHA_MASK                        (0x01U<<SPI_CR_CPHA_POS)
  901.         #define SPI_CR_CPHA                                        SPI_CR_CPHA_MASK

  902.         #define SPI_CR_CPHA_1EDGE                        (~SPI_CR_CPHA)
  903.         #define SPI_CR_CPHA_2EDGE                        (SPI_CR_CPHA)

  904.         #define SPI_CR_BAUDRATE_SPR1_POS        1
  905.         #define SPI_CR_BAUDRATE_SPR1_MASK        (0x01U<<SPI_CR_BAUDRATE_SPR1_POS)
  906.         #define SPI_CR_BAUDRATE_SPR1                SPI_CR_BAUDRATE_SPR1_MASK

  907.         #define SPI_CR_BAUDRATE_SPR0_POS        0
  908.         #define SPI_CR_BAUDRATE_SPR0_MASK        (0x01U<<SPI_CR_BAUDRATE_SPR0_POS)
  909.         #define SPI_CR_BAUDRATE_SPR0                SPI_CR_BAUDRATE_SPR0_MASK

  910.         #define SPI_CR_BAUDRATE_SPR                        (SPI_CR_BAUDRATE_SPR0|SPI_CR_BAUDRATE_SPR1|SPI_CR_BAUDRATE_SPR2)

  911.         #define SPI_CR_SCK_PRE_2                        ((0x00U<<SPI_CR_BAUDRATE_SPR2_POS)|(0x00U<<SPI_CR_BAUDRATE_SPR1_POS)|(0x00U<<SPI_CR_BAUDRATE_SPR0_POS))
  912.         #define SPI_CR_SCK_PRE_4                        ((0x00U<<SPI_CR_BAUDRATE_SPR2_POS)|(0x00U<<SPI_CR_BAUDRATE_SPR1_POS)|(0x01U<<SPI_CR_BAUDRATE_SPR0_POS))
  913.         #define SPI_CR_SCK_PRE_8                        ((0x00U<<SPI_CR_BAUDRATE_SPR2_POS)|(0x01U<<SPI_CR_BAUDRATE_SPR1_POS)|(0x00U<<SPI_CR_BAUDRATE_SPR0_POS))
  914.         #define SPI_CR_SCK_PRE_16                        ((0x00U<<SPI_CR_BAUDRATE_SPR2_POS)|(0x01U<<SPI_CR_BAUDRATE_SPR1_POS)|(0x01U<<SPI_CR_BAUDRATE_SPR0_POS))
  915.         #define SPI_CR_SCK_PRE_32                        ((0x01U<<SPI_CR_BAUDRATE_SPR2_POS)|(0x00U<<SPI_CR_BAUDRATE_SPR1_POS)|(0x00U<<SPI_CR_BAUDRATE_SPR0_POS))
  916.         #define SPI_CR_SCK_PRE_64                        ((0x01U<<SPI_CR_BAUDRATE_SPR2_POS)|(0x00U<<SPI_CR_BAUDRATE_SPR1_POS)|(0x01U<<SPI_CR_BAUDRATE_SPR0_POS))
  917.         #define SPI_CR_SCK_PRE_128                        ((0x01U<<SPI_CR_BAUDRATE_SPR2_POS)|(0x01U<<SPI_CR_BAUDRATE_SPR1_POS)|(0x00U<<SPI_CR_BAUDRATE_SPR0_POS))

  918.         #define SPI_SSN_SSN_POS                                0
  919.         #define SPI_SSN_SSN_MASK                        (0x01U<<SPI_SSN_SSN_POS)
  920.         #define SPI_SSN_SSN                                        SPI_SSN_SSN_MASK
  921.         
  922.         #define SPI_SR_SPIF_POS                                7
  923.         #define SPI_SR_SPIF_MASK                        (0x01U<<SPI_SR_SPIF_POS)
  924.         #define SPI_SR_SPIF                                        SPI_SR_SPIF_MASK

  925.         #define SPI_SR_SSERR_POS                        5
  926.         #define SPI_SR_SSERR_MASK                        (0x01U<<SPI_SR_SSERR_POS)
  927.         #define SPI_SR_SSERR                                SPI_SR_SSERR_MASK

  928.         #define SPI_SR_MDF_POS                                4
  929.         #define SPI_SR_MDF_MASK                                (0x01U<<SPI_SR_MDF_POS)
  930.         #define SPI_SR_MDF                                        SPI_SR_MDF_MASK

  931.         #define SPI_SR_BUSY_POS                                3
  932.         #define SPI_SR_BUSY_MASK                        (0x01U<<SPI_SR_BUSY_POS)
  933.         #define SPI_SR_BUSY                                        SPI_SR_BUSY_MASK

  934.         #define SPI_SR_TXE_POS                                2
  935.         #define SPI_SR_TXE_MASK                                (0x01U<<SPI_SR_TXE_POS)
  936.         #define SPI_SR_TXE                                        SPI_SR_TXE_MASK

  937.         #define SPI_SR_RXNE_POS                                1
  938.         #define SPI_SR_RXNE_MASK                        (0x01U<<SPI_SR_RXNE_POS)
  939.         #define SPI_SR_RXNE                                        SPI_SR_RXNE_MASK

  940.         #define SPI_DR_POS                                        0
  941.         #define SPI_DR_MASK                                        (0xFFUL<<SPI_DR_POS)
  942.         #define SPI_DR                                                SPI_DR_MASK

  943.         #define SPI_CR2_RXNEIE_POS                        6
  944.         #define SPI_CR2_RXNEIE_MASK                        (0x01U<<SPI_CR2_RXNEIE_POS)
  945.         #define SPI_CR2_RXNEIE                                SPI_CR2_RXNEIE_MASK

  946.         #define SPI_CR2_TXEIE_POS                        5
  947.         #define SPI_CR2_TXEIE_MASK                        (0x01U<<SPI_CR2_TXEIE_POS)
  948.         #define SPI_CR2_TXEIE                                SPI_CR2_TXEIE_MASK

  949.         #define SPI_CR2_DMATXEN_POS                        4
  950.         #define SPI_CR2_DMATXEN_MASK                (0x01U<<SPI_CR2_DMATXEN_POS)
  951.         #define SPI_CR2_DMATXEN                                SPI_CR2_DMATXEN_MASK

  952.         #define SPI_CR2_DMARXEN_POS                        3
  953.         #define SPI_CR2_DMARXEN_MASK                (0x01U<<SPI_CR2_DMARXEN_POS)
  954.         #define SPI_CR2_DMARXEN                                SPI_CR2_DMARXEN_MASK

  955.         #define SPI_CR2_IE_POS                                2
  956.         #define SPI_CR2_IE_MASK                                (0x01U<<SPI_CR2_IE_POS)
  957.         #define SPI_CR2_IE                                        SPI_CR2_IE_MASK

  958.         #define SPI_CSR_IE_POS                                0
  959.         #define SPI_CSR_IE_MASK                                (0x01U<<SPI_CSR_IE_POS)
  960.         #define SPI_CSR_IE                                        SPI_CSR_IE_MASK

  961. #pragma endregion

  962. #pragma region USART
  963.         //===端口通用功能配置寄存器
  964.         typedef struct
  965.         {
  966.                 __IO uint32_t SBUF;                //---数据寄存器
  967.                 __IO uint32_t SCON;                //---控制寄存器
  968.                 __IO uint32_t SADDR;        //---地址寄存器寄存器
  969.                 __IO uint32_t SADEN;        //---地址寄存器寄存器
  970.                 __IO uint32_t SR;                //---状态寄存器
  971.                 __IO uint32_t CSR;                //---状态清除寄存器
  972.                 __IO uint32_t SCNT;                //---波特率寄存器
  973.         } USART_TypeDef;

  974.         //===>>>USART控制寄存器的的功能
  975.         //===单线半双工模式使能位
  976.         #define USART_SCON_HDSEL_POS                                22
  977.         #define USART_SCON_HDSEL_MASK                                (0x01U<<USART_SCON_HDSEL_POS)
  978.         #define USART_SCON_HDSEL                                        USART_SCON_HDSEL_MASK

  979.         //===帧错误中断使能位
  980.         #define USART_SCON_FEIE_POS                                        21
  981.         #define USART_SCON_FEIE_MASK                                (0x01U<<USART_SCON_FEIE_POS)
  982.         #define USART_SCON_FEIE                                                USART_SCON_FEIE_MASK

  983.         //===CTS信号翻转中断使能位
  984.         #define USART_SCON_CTSIE_POS                                20
  985.         #define USART_SCON_CTSIE_MASK                                (0x01U<<USART_SCON_CTSIE_POS)
  986.         #define USART_SCON_CTSIE                                        USART_SCON_CTSIE_MASK

  987.         //===硬件流控制使能位
  988.         #define USART_SCON_CTSEN_POS                                19
  989.         #define USART_SCON_CTSEN_MASK                                (0x01U<<USART_SCON_CTSEN_POS)
  990.         #define USART_SCON_CTSEN                                        USART_SCON_CTSEN_MASK

  991.         //===硬件流控制使能位
  992.         #define USART_SCON_RTSEN_POS                                18
  993.         #define USART_SCON_RTSEN_MASK                                (0x01U<<USART_SCON_RTSEN_POS)
  994.         #define USART_SCON_RTSEN                                        USART_SCON_RTSEN_MASK

  995.         //===DMA使能位
  996.         #define USART_SCON_DMATXEN_POS                                17
  997.         #define USART_SCON_DMATXEN_MASK                                (0x01U<<USART_SCON_DMATXEN_POS)
  998.         #define USART_SCON_DMATXEN                                        USART_SCON_DMATXEN_MASK

  999.         //===DMA使能位
  1000.         #define USART_SCON_DMARXEN_POS                                16
  1001.         #define USART_SCON_DMARXEN_MASK                                (0x01U<<USART_SCON_DMARXEN_POS)
  1002.         #define USART_SCON_DMARXEN                                        USART_SCON_DMARXEN_MASK

  1003.         //===停止位
  1004.         #define USART_SCON_STOPBIT_POS                                14
  1005.         #define USART_SCON_STOPBIT_MASK                                (0x03U<<USART_SCON_STOPBIT_POS)
  1006.         #define USART_SCON_STOPBIT                                        USART_SCON_STOPBIT_MASK

  1007.         #define USART_SCON_STOPBIT_1BIT                                (0x00U<<USART_SCON_STOPBIT_POS)
  1008.         #define USART_SCON_STOPBIT_1BIT5                        (0x01U<<USART_SCON_STOPBIT_POS)
  1009.         #define USART_SCON_STOPBIT_2BIT                                (0x02U<<USART_SCON_STOPBIT_POS)

  1010.         //===奇偶校验错误中断使能位
  1011.         #define USART_SCON_PEIE_POS                                        13
  1012.         #define USART_SCON_PEIE_MASK                                (0x01U<<USART_SCON_PEIE_POS)
  1013.         #define USART_SCON_PEIE                                                USART_SCON_PEIE_MASK

  1014.         //===采样分频
  1015.         #define USART_SCON_OVER_POS                                        9
  1016.         #define USART_SCON_OVER_MASK                                (0x01U<<USART_SCON_OVER_POS)
  1017.         #define USART_SCON_OVER                                                USART_SCON_OVER_MASK

  1018.         #define USART_SCON_OVER1_16                                        (0x00U<<USART_SCON_OVER_POS)
  1019.         #define USART_SCON_OVER1_8                                        (0x01U<<USART_SCON_OVER_POS)
  1020.         #define USART_SCON_OVER2_32                                        (0x00U<<USART_SCON_OVER_POS)
  1021.         #define USART_SCON_OVER2_16                                        (0x01U<<USART_SCON_OVER_POS)

  1022.         //===发送空中断使能位
  1023.         #define USART_SCON_TXEIE_POS                                8
  1024.         #define USART_SCON_TXEIE_MASK                                (0x01U<<USART_SCON_TXEIE_POS)
  1025.         #define USART_SCON_TXEIE                                        USART_SCON_TXEIE_MASK

  1026.         //===工作模式
  1027.         #define USART_SCON_SM_POS                                        6
  1028.         #define USART_SCON_SM_MASK                                        (0x03U<<USART_SCON_SM_POS)
  1029.         #define USART_SCON_SM                                                USART_SCON_SM_MASK

  1030.         #define USART_SCON_SM_MODE0                                        (0x00U<<USART_SCON_SM_POS)
  1031.         #define USART_SCON_SM_MODE1                                        (0x01U<<USART_SCON_SM_POS)
  1032.         #define USART_SCON_SM_MODE2                                        (0x02U<<USART_SCON_SM_POS)
  1033.         #define USART_SCON_SM_MODE3                                        (0x03U<<USART_SCON_SM_POS)

  1034.         //===多机通讯地址自动识别使能位
  1035.         #define USART_SCON_ADRDET_POS                                5
  1036.         #define USART_SCON_ADRDET_MASK                                (0x01U<<USART_SCON_ADRDET_POS)
  1037.         #define USART_SCON_ADRDET                                        USART_SCON_ADRDET_MASK

  1038.         //===收发模式控制
  1039.         #define USART_SCON_REN_POS                                        4
  1040.         #define USART_SCON_REN_MASK                                        (0x01U<<USART_SCON_REN_POS)
  1041.         #define USART_SCON_REN                                                USART_SCON_REN_MASK

  1042.         #define USART_SCON_REN_TX                                        (0x00U<<USART_SCON_REN_POS)
  1043.         #define USART_SCON_REN_RX                                        (0x01U<<USART_SCON_REN_POS)
  1044.         #define USART_SCON_REN_TX_RX                                (0x01U<<USART_SCON_REN_POS)

  1045.         //===BIT8数据控制位
  1046.         #define USART_SCON_B8CONT_POS                                2
  1047.         #define USART_SCON_B8CONT_MASK                                (0x03U<<USART_SCON_B8CONT_POS)
  1048.         #define USART_SCON_B8CONT                                        USART_SCON_B8CONT_MASK

  1049.         #define USART_SCON_B8CONT_B8SBUF                        (0x00U<<USART_SCON_B8CONT_POS)
  1050.         #define USART_SCON_B8CONT_EVEN                                (0x01U<<USART_SCON_B8CONT_POS)
  1051.         #define USART_SCON_B8CONT_ODD                                (0x02U<<USART_SCON_B8CONT_POS)
  1052.         #define USART_SCON_B8CONT_NONE                                (0x03U<<USART_SCON_B8CONT_POS)

  1053.         //===发送完成中断使能位        
  1054.         #define USART_SCON_TCIE_POS                                        1
  1055.         #define USART_SCON_TCIE_MASK                                (0x01U<<USART_SCON_TCIE_POS)
  1056.         #define USART_SCON_TCIE                                                USART_SCON_TCIE_MASK

  1057.         //===接收完成中断使能位        
  1058.         #define USART_SCON_RCIE_POS                                        0
  1059.         #define USART_SCON_RCIE_MASK                                (0x01U<<USART_SCON_RCIE_POS)
  1060.         #define USART_SCON_RCIE                                                USART_SCON_RCIE_MASK

  1061.         //===<<<USART控制寄存器的的功能

  1062.         //===>>>USART标志寄存器的的功能
  1063.         //===CTS信号标志位
  1064.         #define USART_SR_CTS_POS                                        6
  1065.         #define USART_SR_CTS_MASK                                        (0x01U<<USART_SR_CTS_POS)
  1066.         #define USART_SR_CTS                                                USART_SR_CTS_MASK

  1067.         //===CTS中断标志位
  1068.         #define USART_SR_CTSIF_POS                                        5
  1069.         #define USART_SR_CTSIF_MASK                                        (0x01U<<USART_SR_CTSIF_POS)
  1070.         #define USART_SR_CTSIF                                                USART_SR_CTSIF_MASK

  1071.         //===PE奇偶校验错误中断标志位
  1072.         #define USART_SR_PE_POS                                                4
  1073.         #define USART_SR_PE_MASK                                        (0x01U<<USART_SR_PE_POS)
  1074.         #define USART_SR_PE                                                        USART_SR_PE_MASK

  1075.         //===发送寄存器空中断标志位
  1076.         #define USART_SR_TXE_POS                                        3
  1077.         #define USART_SR_TXE_MASK                                        (0x01U<<USART_SR_TXE_POS)
  1078.         #define USART_SR_TXE                                                USART_SR_TXE_MASK

  1079.         //===帧错误中断标志位
  1080.         #define USART_SR_FE_POS                                                2
  1081.         #define USART_SR_FE_MASK                                        (0x01U<<USART_SR_FE_POS)
  1082.         #define USART_SR_FE                                                        USART_SR_FE_MASK

  1083.         //===发送寄存器空中断标志位
  1084.         #define USART_SR_TC_POS                                                1
  1085.         #define USART_SR_TC_MASK                                        (0x01U<<USART_SR_TC_POS)
  1086.         #define USART_SR_TC                                                        USART_SR_TC_MASK

  1087.         //===发送寄存器空中断标志位
  1088.         #define USART_SR_RC_POS                                                0
  1089.         #define USART_SR_RC_MASK                                        (0x01U<<USART_SR_RC_POS)
  1090.         #define USART_SR_RC                                                        USART_SR_RC_MASK
  1091.         
  1092.         //===<<<USART标志寄存器的的功能

  1093.         //===>>>USART标志清楚寄存器的的功能
  1094.         //===CTS中断标志位
  1095.         #define USART_CSR_CTSIF_POS                                        5
  1096.         #define USART_CSR_CTSIF_MASK                                (0x01U<<USART_CSR_CTSIF_POS)
  1097.         #define USART_CSR_CTSIF                                                USART_CSR_CTSIF_MASK

  1098.         //===PE奇偶校验错误中断标志位
  1099.         #define USART_CSR_PE_POS                                        4
  1100.         #define USART_CSR_PE_MASK                                        (0x01U<<USART_CSR_PE_POS)
  1101.         #define USART_CSR_PE                                                USART_CSR_PE_MASK

  1102.         //===帧错误中断标志位
  1103.         #define USART_CSR_FE_POS                                        2
  1104.         #define USART_CSR_FE_MASK                                        (0x01U<<USART_CSR_FE_POS)
  1105.         #define USART_CSR_FE                                                        USART_CSR_FE_MASK

  1106.         //===发送寄存器空中断标志位
  1107.         #define USART_CSR_TC_POS                                        1
  1108.         #define USART_CSR_TC_MASK                                        (0x01U<<USART_CSR_TC_POS)
  1109.         #define USART_CSR_TC                                                USART_CSR_TC_MASK
  1110.         
  1111.         //===发送寄存器空中断标志位
  1112.         #define USART_CSR_RC_POS                                        0
  1113.         #define USART_CSR_RC_MASK                                        (0x01U<<USART_CSR_RC_POS)
  1114.         #define USART_CSR_RC                                                USART_CSR_RC_MASK
  1115.         
  1116.         //===<<<USART标志清楚寄存器的的功能
  1117. #pragma endregion

  1118. #pragma region LPUSART
  1119.         //===端口通用功能配置寄存器
  1120.         typedef struct
  1121.         {
  1122.                 __IO uint32_t SBUF;                //---数据寄存器
  1123.                 __IO uint32_t SCON;                //---控制寄存器
  1124.                 __IO uint32_t SADDR;        //---地址寄存器寄存器
  1125.                 __IO uint32_t SADEN;        //---地址寄存器寄存器
  1126.                 __IO uint32_t SR;                //---状态寄存器
  1127.                 __IO uint32_t CSR;                //---状态清除寄存器
  1128.                 __IO uint32_t SCNT;                //---波特率寄存器
  1129.         } LPUSART_TypeDef;

  1130.         //===>>>LPUSART控制寄存器的的功能
  1131.         //===单线半双工模式使能位
  1132.         #define LPUSART_SCON_HDSEL_POS                                22
  1133.         #define LPUSART_SCON_HDSEL_MASK                                (0x01U<<LPUSART_SCON_HDSEL_POS)
  1134.         #define LPUSART_SCON_HDSEL                                        LPUSART_SCON_HDSEL_MASK

  1135.         //===帧错误中断使能位
  1136.         #define LPUSART_SCON_FEIE_POS                                21
  1137.         #define LPUSART_SCON_FEIE_MASK                                (0x01U<<LPUSART_SCON_FEIE_POS)
  1138.         #define LPUSART_SCON_FEIE                                        LPUSART_SCON_FEIE_MASK

  1139.         //===CTS信号翻转中断使能位
  1140.         #define LPUSART_SCON_CTSIE_POS                                20
  1141.         #define LPUSART_SCON_CTSIE_MASK                                (0x01U<<LPUSART_SCON_CTSIE_POS)
  1142.         #define LPUSART_SCON_CTSIE                                        LPUSART_SCON_CTSIE_MASK

  1143.         //===硬件流控制使能位
  1144.         #define LPUSART_SCON_CTSEN_POS                                19
  1145.         #define LPUSART_SCON_CTSEN_MASK                                (0x01U<<LPUSART_SCON_CTSEN_POS)
  1146.         #define LPUSART_SCON_CTSEN                                        LPUSART_SCON_CTSEN_MASK

  1147.         //===硬件流控制使能位
  1148.         #define LPUSART_SCON_RTSEN_POS                                18
  1149.         #define LPUSART_SCON_RTSEN_MASK                                (0x01U<<LPUSART_SCON_RTSEN_POS)
  1150.         #define LPUSART_SCON_RTSEN                                        LPUSART_SCON_RTSEN_MASK

  1151.         //===DMA使能位
  1152.         #define LPUSART_SCON_DMATXEN_POS                        17
  1153.         #define LPUSART_SCON_DMATXEN_MASK                        (0x01U<<LPUSART_SCON_DMATXEN_POS)
  1154.         #define LPUSART_SCON_DMATXEN                                LPUSART_SCON_DMATXEN_MASK

  1155.         //===DMA使能位
  1156.         #define LPUSART_SCON_DMARXEN_POS                        16
  1157.         #define LPUSART_SCON_DMARXEN_MASK                        (0x01U<<LPUSART_SCON_DMARXEN_POS)
  1158.         #define LPUSART_SCON_DMARXEN                                LPUSART_SCON_DMARXEN_MASK

  1159.         //===停止位
  1160.         #define LPUSART_SCON_STOPBIT_POS                        14
  1161.         #define LPUSART_SCON_STOPBIT_MASK                        (0x03U<<LPUSART_SCON_STOPBIT_POS)
  1162.         #define LPUSART_SCON_STOPBIT                                LPUSART_SCON_STOPBIT_MASK

  1163.         #define LPUSART_SCON_STOPBIT_1BIT                        (0x00U<<LPUSART_SCON_STOPBIT_POS)
  1164.         #define LPUSART_SCON_STOPBIT_1BIT5                        (0x01U<<LPUSART_SCON_STOPBIT_POS)
  1165.         #define LPUSART_SCON_STOPBIT_2BIT                        (0x02U<<LPUSART_SCON_STOPBIT_POS)

  1166.         //===奇偶校验错误中断使能位
  1167.         #define LPUSART_SCON_PEIE_POS                                13
  1168.         #define LPUSART_SCON_PEIE_MASK                                (0x01U<<LPUSART_SCON_PEIE_POS)
  1169.         #define LPUSART_SCON_PEIE                                        LPUSART_SCON_PEIE_MASK

  1170.         //===传输时钟选择为
  1171.         #define LPUSART_SCON_SCLK_POS                                11
  1172.         #define LPUSART_SCON_SCLK_MASK                                (0x03U<<LPUSART_SCON_SCLK_POS)
  1173.         #define LPUSART_SCON_SCLK                                        LPUSART_SCON_SCLK_MASK

  1174.         #define LPUSART_SCON_SCLK_PCLK                                (0x00U<<LPUSART_SCON_SCLK_POS)
  1175.         #define LPUSART_SCON_SCLK_XTL                                (0x02U<<LPUSART_SCON_SCLK_POS)
  1176.         #define LPUSART_SCON_SCLK_RCL                                (0x03U<<LPUSART_SCON_SCLK_POS)

  1177.         //===采样分频
  1178.         #define LPUSART_SCON_OVER_POS                                9
  1179.         #define LPUSART_SCON_OVER_MASK                                (0x03U<<LPUSART_SCON_OVER_POS)
  1180.         #define LPUSART_SCON_OVER                                        LPUSART_SCON_OVER_MASK

  1181.         #define LPUSART_SCON_OVER1_16                                (0x00U<<LPUSART_SCON_OVER_POS)
  1182.         #define LPUSART_SCON_OVER1_8                                (0x01U<<LPUSART_SCON_OVER_POS)
  1183.         #define LPUSART_SCON_OVER1_4                                (0x02U<<LPUSART_SCON_OVER_POS)
  1184.         #define LPUSART_SCON_OVER2_32                                (0x00U<<LPUSART_SCON_OVER_POS)
  1185.         #define LPUSART_SCON_OVER2_16                                (0x01U<<LPUSART_SCON_OVER_POS)
  1186.         #define LPUSART_SCON_OVER2_8                                (0x02U<<LPUSART_SCON_OVER_POS)

  1187.         //===发送空中断使能位
  1188.         #define LPUSART_SCON_TXEIE_POS                                8
  1189.         #define LPUSART_SCON_TXEIE_MASK                                (0x01U<<LPUSART_SCON_TXEIE_POS)
  1190.         #define LPUSART_SCON_TXEIE                                        LPUSART_SCON_TXEIE_MASK

  1191.         //===工作模式
  1192.         #define LPUSART_SCON_SM_POS                                        6
  1193.         #define LPUSART_SCON_SM_MASK                                (0x03U<<LPUSART_SCON_SM_POS)
  1194.         #define LPUSART_SCON_SM                                                LPUSART_SCON_SM_MASK

  1195.         #define LPUSART_SCON_SM_MODE0                                (0x00U<<LPUSART_SCON_SM_POS)
  1196.         #define LPUSART_SCON_SM_MODE1                                (0x01U<<LPUSART_SCON_SM_POS)
  1197.         #define LPUSART_SCON_SM_MODE2                                (0x02U<<LPUSART_SCON_SM_POS)
  1198.         #define LPUSART_SCON_SM_MODE3                                (0x03U<<LPUSART_SCON_SM_POS)

  1199.         //===多机通讯地址自动识别使能位
  1200.         #define LPUSART_SCON_ADRDET_POS                                5
  1201.         #define LPUSART_SCON_ADRDET_MASK                        (0x01U<<LPUSART_SCON_ADRDET_POS)
  1202.         #define LPUSART_SCON_ADRDET                                        LPUSART_SCON_ADRDET_MASK

  1203.         //===收发模式控制
  1204.         #define LPUSART_SCON_REN_POS                                4
  1205.         #define LPUSART_SCON_REN_MASK                                (0x01U<<LPUSART_SCON_REN_POS)
  1206.         #define LPUSART_SCON_REN                                        LPUSART_SCON_REN_MASK

  1207.         #define LPUSART_SCON_REN_TX                                        (0x00U<<LPUSART_SCON_REN_POS)
  1208.         #define LPUSART_SCON_REN_RX                                        (0x01U<<LPUSART_SCON_REN_POS)
  1209.         #define LPUSART_SCON_REN_TX_RX                                (0x01U<<LPUSART_SCON_REN_POS)

  1210.         //===BIT8数据控制位
  1211.         #define LPUSART_SCON_B8CONT_POS                                2
  1212.         #define LPUSART_SCON_B8CONT_MASK                        (0x03U<<LPUSART_SCON_B8CONT_POS)
  1213.         #define LPUSART_SCON_B8CONT                                        LPUSART_SCON_B8CONT_MASK

  1214.         #define LPUSART_SCON_B8CONT_B8SBUF                        (0x00U<<LPUSART_SCON_B8CONT_POS)
  1215.         #define LPUSART_SCON_B8CONT_EVEN                        (0x01U<<LPUSART_SCON_B8CONT_POS)
  1216.         #define LPUSART_SCON_B8CONT_ODD                                (0x02U<<LPUSART_SCON_B8CONT_POS)
  1217.         #define LPUSART_SCON_B8CONT_NONE                        (0x03U<<LPUSART_SCON_B8CONT_POS)

  1218.         //===发送完成中断使能位        
  1219.         #define LPUSART_SCON_TCIE_POS                                1
  1220.         #define LPUSART_SCON_TCIE_MASK                                (0x01U<<LPUSART_SCON_TCIE_POS)
  1221.         #define LPUSART_SCON_TCIE                                        LPUSART_SCON_TCIE_MASK

  1222.         //===接收完成中断使能位        
  1223.         #define LPUSART_SCON_RCIE_POS                                0
  1224.         #define LPUSART_SCON_RCIE_MASK                                (0x01U<<LPUSART_SCON_RCIE_POS)
  1225.         #define LPUSART_SCON_RCIE                                        LPUSART_SCON_RCIE_MASK

  1226.         //===<<<LPUSART控制寄存器的的功能

  1227.         //===>>>LPUSART标志寄存器的的功能
  1228.         //===CTS信号标志位
  1229.         #define LPUSART_SR_CTS_POS                                        6
  1230.         #define LPUSART_SR_CTS_MASK                                        (0x01U<<LPUSART_SR_CTS_POS)
  1231.         #define LPUSART_SR_CTS                                                LPUSART_SR_CTS_MASK

  1232.         //===CTS中断标志位
  1233.         #define LPUSART_SR_CTSIF_POS                                5
  1234.         #define LPUSART_SR_CTSIF_MASK                                (0x01U<<LPUSART_SR_CTSIF_POS)
  1235.         #define LPUSART_SR_CTSIF                                        LPUSART_SR_CTSIF_MASK

  1236.         //===PE奇偶校验错误中断标志位
  1237.         #define LPUSART_SR_PE_POS                                        4
  1238.         #define LPUSART_SR_PE_MASK                                        (0x01U<<LPUSART_SR_PE_POS)
  1239.         #define LPUSART_SR_PE                                                LPUSART_SR_PE_MASK

  1240.         //===发送寄存器空中断标志位
  1241.         #define LPUSART_SR_TXE_POS                                        3
  1242.         #define LPUSART_SR_TXE_MASK                                        (0x01U<<LPUSART_SR_TXE_POS)
  1243.         #define LPUSART_SR_TXE                                                LPUSART_SR_TXE_MASK

  1244.         //===帧错误中断标志位
  1245.         #define LPUSART_SR_FE_POS                                        2
  1246.         #define LPUSART_SR_FE_MASK                                        (0x01U<<LPUSART_SR_FE_POS)
  1247.         #define LPUSART_SR_FE                                                LPUSART_SR_FE_MASK

  1248.         //===发送寄存器空中断标志位
  1249.         #define LPUSART_SR_TC_POS                                        1
  1250.         #define LPUSART_SR_TC_MASK                                        (0x01U<<LPUSART_SR_TC_POS)
  1251.         #define LPUSART_SR_TC                                                LPUSART_SR_TC_MASK

  1252.         //===发送寄存器空中断标志位
  1253.         #define LPUSART_SR_RC_POS                                        0
  1254.         #define LPUSART_SR_RC_MASK                                        (0x01U<<LPUSART_SR_RC_POS)
  1255.         #define LPUSART_SR_RC                                                LPUSART_SR_RC_MASK
  1256.         
  1257.         //===<<<LPUSART标志寄存器的的功能

  1258.         //===>>>LPUSART标志清楚寄存器的的功能
  1259.         //===CTS中断标志位
  1260.         #define LPUSART_CSR_CTSIF_POS                                5
  1261.         #define LPUSART_CSR_CTSIF_MASK                                (0x01U<<LPUSART_CSR_CTSIF_POS)
  1262.         #define LPUSART_CSR_CTSIF                                        LPUSART_CSR_CTSIF_MASK

  1263.         //===PE奇偶校验错误中断标志位
  1264.         #define LPUSART_CSR_PE_POS                                        4
  1265.         #define LPUSART_CSR_PE_MASK                                        (0x01U<<LPUSART_CSR_PE_POS)
  1266.         #define LPUSART_CSR_PE                                                LPUSART_CSR_PE_MASK

  1267.         //===帧错误中断标志位
  1268.         #define LPUSART_CSR_FE_POS                                        2
  1269.         #define LPUSART_CSR_FE_MASK                                        (0x01U<<LPUSART_CSR_FE_POS)
  1270.         #define LPUSART_CSR_FE                                                LPUSART_CSR_FE_MASK

  1271.         //===发送寄存器空中断标志位
  1272.         #define LPUSART_CSR_TC_POS                                        1
  1273.         #define LPUSART_CSR_TC_MASK                                        (0x01U<<LPUSART_CSR_TC_POS)
  1274.         #define LPUSART_CSR_TC                                                LPUSART_CSR_TC_MASK
  1275.         
  1276.         //===发送寄存器空中断标志位
  1277.         #define LPUSART_CSR_RC_POS                                        0
  1278.         #define LPUSART_CSR_RC_MASK                                        (0x01U<<LPUSART_CSR_RC_POS)
  1279.         #define LPUSART_CSR_RC                                                LPUSART_CSR_RC_MASK
  1280.         
  1281.         //===<<<LPUSART标志清楚寄存器的的功能

  1282. #pragma endregion

  1283. #pragma region FLASH
  1284.         //===FLASH寄存器
  1285.         typedef struct
  1286.         {
  1287.                 __IO uint32_t TNVS;                        //---时间参数
  1288.                 __IO uint32_t TPGS;                        //---时间参数
  1289.                 __IO uint32_t TPROG;                //---地址寄存器寄存器
  1290.                 __IO uint32_t TSERASE;                //---地址寄存器寄存器
  1291.                 __IO uint32_t TMERASE;                //---状态寄存器
  1292.                 __IO uint32_t TPRCV;                //---状态清除寄存器
  1293.                 __IO uint32_t TSRCV;                //---状态清除寄存器
  1294.                 __IO uint32_t TMRCV;                //---状态清除寄存器
  1295.                 __IO uint32_t CR;                        //---状态清除寄存器
  1296.                 __IO uint32_t SR;                        //---状态清除寄存器
  1297.                 __IO uint32_t CSR;                        //---状态清除寄存器
  1298.                 __IO uint32_t BYPASS;                //---状态清除寄存器
  1299.                 __IO uint32_t SLOCK0;                //---状态清除寄存器
  1300.                 __IO uint32_t SLOCK1;                //---状态清除寄存器
  1301.                 uint32_t RESERVED[2];                //---保留字节
  1302.                 __IO uint32_t SLOCK2;                //---状态清除寄存器
  1303.                 __IO uint32_t SLOCK3;                //---状态清除寄存器
  1304.         } FLASH_TypeDef;

  1305.         //====TNVS
  1306.         #define FLASH_TNVS_POS                        0
  1307.         #define FLASH_TNVS_MASK                        (0x1FFUL<<FLASH_TNVS_POS)
  1308.         #define FLASH_TNVS                                FLASH_TNVS_MASK
  1309.         //===TPGS
  1310.         #define FLASH_TPGS_POS                        0
  1311.         #define FLASH_TPGS_MASK                        (0x1FFUL<<FLASH_TPGS_POS)
  1312.         #define FLASH_TPGS                                FLASH_TPGS_MASK
  1313.         //===TPRGOS
  1314.         #define FLASH_TPRGOS_POS                0
  1315.         #define FLASH_TPRGOS_MASK                (0x1FFUL<<FLASH_TPRGOS_POS)
  1316.         #define FLASH_TPRGOS                        FLASH_TPRGOS_MASK
  1317.         //===TSERASE        
  1318.         #define FLASH_TSERASE_POS                0
  1319.         #define FLASH_TSERASE_MASK                (0x1FFFFUL<<FLASH_TSERASE_POS)
  1320.         #define FLASH_TSERASE                        FLASH_TSERASE_MASK
  1321.         //===TMERASE
  1322.         #define FLASH_TMERASE_POS                0
  1323.         #define FLASH_TMERASE_MASK                (0x1FFFFFUL<<FLASH_TMERASE_POS)
  1324.         #define FLASH_TMERASE                        FLASH_TMERASE_MASK
  1325.         //===TPRCV
  1326.         #define FLASH_TPRCV_POS                        0
  1327.         #define FLASH_TPRCV_MASK                (0xFFFUL<<FLASH_TPRCV_POS)
  1328.         #define FLASH_TPRCV                                FLASH_TPRCV_MASK
  1329.         //===TSRCV
  1330.         #define FLASH_TSRCV_POS                        0
  1331.         #define FLASH_TSRCV_MASK                (0xFFFUL<<FLASH_TSRCV_POS)
  1332.         #define FLASH_TSRCV                                FLASH_TSRCV_MASK
  1333.         //===TMRCV
  1334.         #define FLASH_TMRCV_POS                        0
  1335.         #define FLASH_TMRCV_MASK                (0x3FFFUL<<FLASH_TMRCV_POS)
  1336.         #define FLASH_TMRCV                                FLASH_TMRCV_MASK

  1337.         //===>>>FLASH_CR寄存器
  1338.         #define FLASH_CR_DPSTN_EN_POS        9
  1339.         #define FLASH_CR_DPSTN_EN_MASK        (0x1UL<<FLASH_CR_DPSTN_EN_POS)
  1340.         #define FLASH_CR_DPSTN_EN                FLASH_CR_DPSTN_EN_MASK

  1341.         #define FLASH_CR_IE_ADDR_POS        6
  1342.         #define FLASH_CR_IE_ADDR_MASK        (0x1UL<<FLASH_CR_IE_ADDR_POS)
  1343.         #define FLASH_CR_IE_ADDR                FLASH_CR_IE_ADDR_MASK

  1344.         #define FLASH_CR_IE_PC_POS                5
  1345.         #define FLASH_CR_IE_PC_MASK                (0x1UL<<FLASH_CR_IE_PC_POS)
  1346.         #define FLASH_CR_IE_PC                        FLASH_CR_IE_PC_MASK

  1347.         #define FLASH_CR_BUSY_POS                4
  1348.         #define FLASH_CR_BUSY_MASK                (0x1UL<<FLASH_CR_BUSY_POS)
  1349.         #define FLASH_CR_BUSY                        FLASH_CR_BUSY_MASK

  1350.         #define FLASH_CR_WAIT_POS                2
  1351.         #define FLASH_CR_WAIT_MASK                (0x3UL<<FLASH_CR_WAIT_POS)
  1352.         #define FLASH_CR_WAIT                        FLASH_CR_WAIT_MASK

  1353.         #define FLASH_CR_WAIT_0                        (0x0UL<<FLASH_CR_WAIT_POS)
  1354.         #define FLASH_CR_WAIT_1                        (0x0UL<<FLASH_CR_WAIT_POS)
  1355.         #define FLASH_CR_WAIT_2                        (0x1UL<<FLASH_CR_WAIT_POS)
  1356.         #define FLASH_CR_WAIT_3                        (0x2UL<<FLASH_CR_WAIT_POS)

  1357.         #define FLASH_CR_OP_POS                        0
  1358.         #define FLASH_CR_OP_MASK                (0x3UL<<FLASH_CR_OP_POS)
  1359.         #define FLASH_CR_OP                                FLASH_CR_OP_MASK

  1360.         #define FLASH_CR_OP_READ                        (0x0UL<<FLASH_CR_OP_POS)
  1361.         #define FLASH_CR_OP_PROGRAM                        (0x1UL<<FLASH_CR_OP_POS)
  1362.         #define FLASH_CR_OP_SECTOR_ERASE        (0x2UL<<FLASH_CR_OP_POS)
  1363.         #define FLASH_CR_OP_CHIP_ERASE                (0x3UL<<FLASH_CR_OP_POS)

  1364.         //===<<<FLASH_CR寄存器

  1365.         #define FLASH_SR_IE_ADDR_POS        1
  1366.         #define FLASH_SR_IE_ADDR_MASK        (0x1UL<<FLASH_SR_IE_ADDR_POS)
  1367.         #define FLASH_SR_IE_ADDR                FLASH_SR_IE_ADDR_MASK
  1368.         
  1369.         #define FLASH_SR_IE_PC_POS                0
  1370.         #define FLASH_SR_IE_PC_MASK                (0x1UL<<FLASH_SR_IE_PC_POS)
  1371.         #define FLASH_SR_IE_PC                        FLASH_SR_IE_PC_MASK

  1372.         #define FLASH_CSR_IE_ADDR_POS        1
  1373.         #define FLASH_CSR_IE_ADDR_MASK        (0x1UL<<FLASH_CSR_IE_ADDR_POS)
  1374.         #define FLASH_CSR_IE_ADDR                FLASH_CSR_IE_ADDR_MASK
  1375.         
  1376.         #define FLASH_CSR_IE_PC_POS                0
  1377.         #define FLASH_CSR_IE_PC_MASK        (0x1UL<<FLASH_CSR_IE_PC_POS)
  1378.         #define FLASH_CSR_IE_PC                        FLASH_CSR_IE_PC_MASK

  1379.         #define FLASH_BYPASS_POS                0
  1380.         #define FLASH_BYPASS_MASK                (0xFFFFUL<<FLASH_BYPASS_POS)
  1381.         #define FLASH_BYPASS                        FLASH_BYPASS_MASK

  1382. #pragma endregion

  1383. #pragma region RAM
  1384.         //==RAM寄存器
  1385.         typedef struct
  1386.         {
  1387.                 __IO uint32_t CR;                        //---控制寄存器
  1388.                 __IO uint32_t ERR;                        //---出错地址寄存器
  1389.                 __IO uint32_t SR;                        //---状态寄存器
  1390.                 __IO uint32_t CSR;                        //---状态清除寄存器
  1391.         } RAM_TypeDef;

  1392.         //===RAM校验报警中断使能信号
  1393.         #define RAM_CR_IE_POS                                1
  1394.         #define RAM_CR_IE_MASK                                (0x01UL<<RAM_CR_IE_POS)
  1395.         #define RAM_CR_IE                                        RAM_CR_IE_MASK

  1396.         //===RAM校验出错地址
  1397.         #define RAM_ERR_ADDR_POS                        0
  1398.         #define RAM_ERR_ADDR_MASK                        (0x3FFFUL<<RAM_ERR_ADDR_POS)
  1399.         #define RAM_ERR_ADDR                                RAM_ERR_ADDR_MASK

  1400.         //===RAM错误中断标志
  1401.         #define RAM_SR_ERR_POS                                0
  1402.         #define RAM_SR_ERR_MASK                                (0x01UL<<RAM_SR_ERR_POS)
  1403.         #define RAM_SR_ERR                                        RAM_SR_ERR_MASK               

  1404.         //===RAM错误中断标志清除
  1405.         #define RAM_CSR_ERR_POS                                0
  1406.         #define RAM_CSR_ERR_MASK                        (0x01UL<<RAM_CSR_ERR_POS)
  1407.         #define RAM_CSR_ERR                                        RAM_CSR_ERR_MASK               
  1408.         
  1409. #pragma endregion

  1410. #pragma region RNG
  1411.         //===端口通用功能配置寄存器
  1412.         typedef struct
  1413.         {
  1414.                 __IO uint32_t CR;                        //---控制寄存器
  1415.                 __IO uint32_t MODE;                        //---模式寄存器
  1416.                 uint32_t RESERVED;                        //---保留字节
  1417.                 __IO uint32_t DR1;                        //---数据寄存器1
  1418.                 __IO uint32_t DR2;                        //---数据寄存器2
  1419.         } RNG_TypeDef;

  1420.         //===随机数状态
  1421.         #define RNG_CR_RUN_POS                        1
  1422.         #define RNG_CR_RUN_MASK                        (0x01UL<<RNG_CR_RUN_POS)
  1423.         #define RNG_CR_RUN                                RNG_CR_RUN_MASK

  1424.         //===使能RNG
  1425.         #define RNG_CR_EN_POS                        0
  1426.         #define RNG_CR_EN_MASK                        (0x01UL<<RNG_CR_EN_POS)
  1427.         #define RNG_CR_EN                                RNG_CR_EN_MASK

  1428.         //===随机数反馈移位次数
  1429.         #define RNG_MODE_CNT_POS                2
  1430.         #define RNG_MODE_CNT_MASK                (0x07UL<<RNG_MODE_CNT_POS)
  1431.         #define RNG_MODE_CNT                        RNG_MODE_CNT_MASK

  1432.         #define RNG_MODE_CNT_NONE                (0x00UL<<RNG_MODE_CNT_POS)
  1433.         #define RNG_MODE_CNT_8                        (0x01UL<<RNG_MODE_CNT_POS)
  1434.         #define RNG_MODE_CNT_16                        (0x02UL<<RNG_MODE_CNT_POS)
  1435.         #define RNG_MODE_CNT_32                        (0x03UL<<RNG_MODE_CNT_POS)
  1436.         #define RNG_MODE_CNT_64                        (0x04UL<<RNG_MODE_CNT_POS)
  1437.         #define RNG_MODE_CNT_128                (0x05UL<<RNG_MODE_CNT_POS)
  1438.         #define RNG_MODE_CNT_256                (0x06UL<<RNG_MODE_CNT_POS)

  1439.         //===异或运算
  1440.         #define RNG_MODE_FDBK_POS                1
  1441.         #define RNG_MODE_FDBK_MASK                (0x01UL<<RNG_MODE_FDBK_POS)
  1442.         #define RNG_MODE_FDBK                        RNG_MODE_FDBK_MASK
  1443.         
  1444.         //===产生真随机数,还是伪随机数
  1445.         #define RNG_MODE_LOAD_POS                0
  1446.         #define RNG_MODE_LOAD_MASK                (0x01UL<<RNG_MODE_LOAD_POS)
  1447.         #define RNG_MODE_LOAD                        RNG_MODE_LOAD_MASK
  1448.         
  1449. #pragma endregion

  1450. #pragma region RTC
  1451.         //===端口通用功能配置寄存器
  1452.         typedef struct
  1453.         {
  1454.                 __IO uint32_t CR0;                        //---控制寄存器0
  1455.                 __IO uint32_t CR1;                        //---控制寄存器1
  1456.                 __IO uint32_t SEC;                        //---秒计数寄存器
  1457.                 __IO uint32_t MIN;                        //---分计数寄存器
  1458.                 __IO uint32_t HOUR;                        //---十计数寄存器
  1459.                 __IO uint32_t WEEKDAY;                //---周计数寄存器
  1460.                 __IO uint32_t DAY;                        //---日计数寄存器
  1461.                 __IO uint32_t MONTH;                //---月计数寄存器
  1462.                 __IO uint32_t YEAR;                        //---年计数寄存器
  1463.                 __IO uint32_t ALMMIN;                //---分闹钟寄存器
  1464.                 __IO uint32_t ALMHOUR;                //---时闹钟寄存器
  1465.                 __IO uint32_t ALMWEEKDAY;        //---周闹钟寄存器
  1466.                 __IO uint32_t COMPEM;                //---时钟误差补偿寄存器
  1467.                 __IO uint32_t ALMSEC;                //---秒闹钟寄存器
  1468.         } RTC_TypeDef;

  1469.         //===控制寄存器0的配置
  1470.         #define RTC_CR0_PRDSEL_POS                14
  1471.         #define RTC_CR0_PRDSEL_MASK                (0x01UL<<RTC_CR0_PRDSEL_POS)               
  1472.         #define RTC_CR0_PRDSEL                        RTC_CR0_PRDSEL_MASK

  1473.         #define RTC_CR0_PRDX_POS                8
  1474.         #define RTC_CR0_PRDX_MASK                (0x3FUL<<RTC_CR0_PRDX_POS)               
  1475.         #define RTC_CR0_PRDX                        RTC_CR0_PRDX_MASK

  1476.         #define RTC_CR0_PRDX_SEC_0P5        (0x00UL<<RTC_CR0_PRDX_POS)               
  1477.         #define RTC_CR0_PRDX_SEC_1                (0x01UL<<RTC_CR0_PRDX_POS)               
  1478.         #define RTC_CR0_PRDX_SEC_1P5        (0x02UL<<RTC_CR0_PRDX_POS)               
  1479.         #define RTC_CR0_PRDX_SEC_2                (0x03UL<<RTC_CR0_PRDX_POS)               
  1480.         #define RTC_CR0_PRDX_SEC_2P5        (0x04UL<<RTC_CR0_PRDX_POS)               
  1481.         #define RTC_CR0_PRDX_SEC_3                (0x05UL<<RTC_CR0_PRDX_POS)               
  1482.         #define RTC_CR0_PRDX_SEC_3P5        (0x06UL<<RTC_CR0_PRDX_POS)               
  1483.         #define RTC_CR0_PRDX_SEC_4                (0x07UL<<RTC_CR0_PRDX_POS)               
  1484.         #define RTC_CR0_PRDX_SEC_4P5        (0x08UL<<RTC_CR0_PRDX_POS)               
  1485.         #define RTC_CR0_PRDX_SEC_5                (0x09UL<<RTC_CR0_PRDX_POS)               
  1486.         #define RTC_CR0_PRDX_SEC_5P5        (0x0AUL<<RTC_CR0_PRDX_POS)               
  1487.         #define RTC_CR0_PRDX_SEC_6                (0x0BUL<<RTC_CR0_PRDX_POS)               
  1488.         #define RTC_CR0_PRDX_SEC_6P5        (0x0CUL<<RTC_CR0_PRDX_POS)               
  1489.         #define RTC_CR0_PRDX_SEC_7                (0x0DUL<<RTC_CR0_PRDX_POS)               
  1490.         #define RTC_CR0_PRDX_SEC_7P5        (0x0EUL<<RTC_CR0_PRDX_POS)               
  1491.         #define RTC_CR0_PRDX_SEC_8                (0x0FUL<<RTC_CR0_PRDX_POS)               
  1492.         #define RTC_CR0_PRDX_SEC_8P5        (0x10UL<<RTC_CR0_PRDX_POS)               
  1493.         #define RTC_CR0_PRDX_SEC_9                (0x11UL<<RTC_CR0_PRDX_POS)               
  1494.         #define RTC_CR0_PRDX_SEC_9P5        (0x12UL<<RTC_CR0_PRDX_POS)               
  1495.         #define RTC_CR0_PRDX_SEC_10                (0x13UL<<RTC_CR0_PRDX_POS)               
  1496.         #define RTC_CR0_PRDX_SEC_10P5        (0x14UL<<RTC_CR0_PRDX_POS)               
  1497.         #define RTC_CR0_PRDX_SEC_11                (0x15UL<<RTC_CR0_PRDX_POS)               
  1498.         #define RTC_CR0_PRDX_SEC_11P5        (0x16UL<<RTC_CR0_PRDX_POS)               
  1499.         #define RTC_CR0_PRDX_SEC_12                (0x17UL<<RTC_CR0_PRDX_POS)               
  1500.         #define RTC_CR0_PRDX_SEC_12P5        (0x18UL<<RTC_CR0_PRDX_POS)               
  1501.         #define RTC_CR0_PRDX_SEC_13                (0x19UL<<RTC_CR0_PRDX_POS)               
  1502.         #define RTC_CR0_PRDX_SEC_13P5        (0x1AUL<<RTC_CR0_PRDX_POS)               
  1503.         #define RTC_CR0_PRDX_SEC_14                (0x1BUL<<RTC_CR0_PRDX_POS)               
  1504.         #define RTC_CR0_PRDX_SEC_14P5        (0x1CUL<<RTC_CR0_PRDX_POS)               
  1505.         #define RTC_CR0_PRDX_SEC_15                (0x1DUL<<RTC_CR0_PRDX_POS)               
  1506.         #define RTC_CR0_PRDX_SEC_15P5        (0x1EUL<<RTC_CR0_PRDX_POS)               
  1507.         #define RTC_CR0_PRDX_SEC_16                (0x1FUL<<RTC_CR0_PRDX_POS)               
  1508.         #define RTC_CR0_PRDX_SEC_16P5        (0x20UL<<RTC_CR0_PRDX_POS)               
  1509.         #define RTC_CR0_PRDX_SEC_17                (0x21UL<<RTC_CR0_PRDX_POS)               
  1510.         #define RTC_CR0_PRDX_SEC_17P5        (0x22UL<<RTC_CR0_PRDX_POS)               
  1511.         #define RTC_CR0_PRDX_SEC_18                (0x23UL<<RTC_CR0_PRDX_POS)               
  1512.         #define RTC_CR0_PRDX_SEC_18P5        (0x24UL<<RTC_CR0_PRDX_POS)               
  1513.         #define RTC_CR0_PRDX_SEC_19                (0x25UL<<RTC_CR0_PRDX_POS)               
  1514.         #define RTC_CR0_PRDX_SEC_19P5        (0x26UL<<RTC_CR0_PRDX_POS)               
  1515.         #define RTC_CR0_PRDX_SEC_20                (0x27UL<<RTC_CR0_PRDX_POS)               
  1516.         #define RTC_CR0_PRDX_SEC_20P5        (0x28UL<<RTC_CR0_PRDX_POS)        
  1517.         #define RTC_CR0_PRDX_SEC_21                (0x29UL<<RTC_CR0_PRDX_POS)               
  1518.         #define RTC_CR0_PRDX_SEC_21P5        (0x2AUL<<RTC_CR0_PRDX_POS)               
  1519.         #define RTC_CR0_PRDX_SEC_22                (0x2BUL<<RTC_CR0_PRDX_POS)               
  1520.         #define RTC_CR0_PRDX_SEC_22P5        (0x2CUL<<RTC_CR0_PRDX_POS)               
  1521.         #define RTC_CR0_PRDX_SEC_23                (0x2DUL<<RTC_CR0_PRDX_POS)               
  1522.         #define RTC_CR0_PRDX_SEC_23P5        (0x2EUL<<RTC_CR0_PRDX_POS)               
  1523.         #define RTC_CR0_PRDX_SEC_24                (0x2FUL<<RTC_CR0_PRDX_POS)               
  1524.         #define RTC_CR0_PRDX_SEC_24P5        (0x30UL<<RTC_CR0_PRDX_POS)               
  1525.         #define RTC_CR0_PRDX_SEC_25                (0x31UL<<RTC_CR0_PRDX_POS)               
  1526.         #define RTC_CR0_PRDX_SEC_25P5        (0x32UL<<RTC_CR0_PRDX_POS)               
  1527.         #define RTC_CR0_PRDX_SEC_26                (0x33UL<<RTC_CR0_PRDX_POS)               
  1528.         #define RTC_CR0_PRDX_SEC_26P5        (0x34UL<<RTC_CR0_PRDX_POS)               
  1529.         #define RTC_CR0_PRDX_SEC_27                (0x35UL<<RTC_CR0_PRDX_POS)               
  1530.         #define RTC_CR0_PRDX_SEC_27P5        (0x36UL<<RTC_CR0_PRDX_POS)               
  1531.         #define RTC_CR0_PRDX_SEC_28                (0x37UL<<RTC_CR0_PRDX_POS)               
  1532.         #define RTC_CR0_PRDX_SEC_28P5        (0x38UL<<RTC_CR0_PRDX_POS)               
  1533.         #define RTC_CR0_PRDX_SEC_29                (0x39UL<<RTC_CR0_PRDX_POS)               
  1534.         #define RTC_CR0_PRDX_SEC_29P5        (0x3AUL<<RTC_CR0_PRDX_POS)               
  1535.         #define RTC_CR0_PRDX_SEC_30                (0x3BUL<<RTC_CR0_PRDX_POS)               
  1536.         #define RTC_CR0_PRDX_SEC_30P5        (0x3CUL<<RTC_CR0_PRDX_POS)        
  1537.         #define RTC_CR0_PRDX_SEC_31                (0x3DUL<<RTC_CR0_PRDX_POS)               
  1538.         #define RTC_CR0_PRDX_SEC_31P5        (0x3EUL<<RTC_CR0_PRDX_POS)               
  1539.         #define RTC_CR0_PRDX_SEC_32                (0x3FUL<<RTC_CR0_PRDX_POS)               

  1540.         #define RTC_CR0_START_POS                7
  1541.         #define RTC_CR0_START_MASK                (0x01UL<<RTC_CR0_START_POS)        
  1542.         #define RTC_CR0_START                        RTC_CR0_START_MASK

  1543.         #define RTC_CR0_1HZSEL_POS                6
  1544.         #define RTC_CR0_1HZSEL_MASK                (0x01UL<<RTC_CR0_1HZSEL_POS)        
  1545.         #define RTC_CR0_1HZSEL                        RTC_CR0_1HZSEL_MASK

  1546.         #define RTC_CR0_1HZEN_POS                5
  1547.         #define RTC_CR0_1HZEN_MASK                (0x01UL<<RTC_CR0_1HZEN_POS)        
  1548.         #define RTC_CR0_1HZEN                        RTC_CR0_1HZEN_MASK

  1549.         #define RTC_CR0_AMPM_POS                3
  1550.         #define RTC_CR0_AMPM_MASK                (0x01UL<<RTC_CR0_AMPM_POS)        
  1551.         #define RTC_CR0_AMPM                        RTC_CR0_AMPM_MASK

  1552.         #define RTC_CR0_AM                                (0x01UL<<RTC_CR0_AMPM_POS)        
  1553.         #define RTC_CR0_PM                                (0x00UL<<RTC_CR0_AMPM_POS)        

  1554.         #define RTC_CR0_PRDS_POS                0
  1555.         #define RTC_CR0_PRDS_MASK                (0x3UL<<RTC_CR0_PRDS_POS)               
  1556.         #define RTC_CR0_PRDS                        RTC_CR0_PRDS_MASK

  1557.         #define RTC_CR0_PRDS_NONE                (0x00UL<<RTC_CR0_PRDS_POS)        
  1558.         #define RTC_CR0_PRDS_SEC_0P5        (0x01UL<<RTC_CR0_PRDS_POS)        
  1559.         #define RTC_CR0_PRDS_SEC_1                (0x02UL<<RTC_CR0_PRDS_POS)                        
  1560.         #define RTC_CR0_PRDS_MIN_1                (0x03UL<<RTC_CR0_PRDS_POS)        
  1561.         #define RTC_CR0_PRDS_HOUR_1                (0x04UL<<RTC_CR0_PRDS_POS)        
  1562.         #define RTC_CR0_PRDS_DAY_1                (0x05UL<<RTC_CR0_PRDS_POS)        
  1563.         #define RTC_CR0_PRDS_MON_1                (0x06UL<<RTC_CR0_PRDS_POS)        

  1564.         //===控制寄存器1的配置
  1565.         #define RTC_CR1_CKSEL_POS                8
  1566.         #define RTC_CR1_CKSEL_MASK                (0x07UL<<RTC_CR1_CKSEL_POS)        
  1567.         #define RTC_CR1_CKSEL                        RTC_CR1_CKSEL_MASK

  1568.         #define RTC_CR1_CKSEL_XTL                        (0x00UL<<RTC_CR1_CKSEL_POS)        
  1569.         #define RTC_CR1_CKSEL_RCL                        (0x02UL<<RTC_CR1_CKSEL_POS)        
  1570.         #define RTC_CR1_CKSEL_XTH_PRE128        (0x04UL<<RTC_CR1_CKSEL_POS)        
  1571.         #define RTC_CR1_CKSEL_XTH_PRE256        (0x05UL<<RTC_CR1_CKSEL_POS)        
  1572.         #define RTC_CR1_CKSEL_XTH_PRE512        (0x06UL<<RTC_CR1_CKSEL_POS)        
  1573.         #define RTC_CR1_CKSEL_XTH_PRE1024        (0x07UL<<RTC_CR1_CKSEL_POS)        

  1574.         #define RTC_CR1_ALMEN_POS                7
  1575.         #define RTC_CR1_ALMEN_MASK                (0x01UL<<RTC_CR1_ALMEN_POS)        
  1576.         #define RTC_CR1_ALMEN                        RTC_CR1_ALMEN_MASK
  1577.         
  1578.         //===闹钟中断使能位
  1579.         #define RTC_CR1_ALMIE_POS                6
  1580.         #define RTC_CR1_ALMIE_MASK                (0x01UL<<RTC_CR1_ALMIE_POS)        
  1581.         #define RTC_CR1_ALMIE                        RTC_CR1_ALMIE_MASK

  1582.         //===闹钟中断标志
  1583.         #define RTC_CR1_ALMF_POS                4
  1584.         #define RTC_CR1_ALMF_MASK                (0x01UL<<RTC_CR1_ALMF_POS)        
  1585.         #define RTC_CR1_ALMF                        RTC_CR1_ALMF_MASK

  1586.         //===周期中断标志
  1587.         #define RTC_CR1_PRDF_POS                3
  1588.         #define RTC_CR1_PRDF_MASK                (0x01UL<<RTC_CR1_PRDF_POS)        
  1589.         #define RTC_CR1_PRDF                        RTC_CR1_PRDF_MASK

  1590.         //===技术模式标志
  1591.         #define RTC_CR1_WAITF_POS                1
  1592.         #define RTC_CR1_WAITF_MASK                (0x01UL<<RTC_CR1_WAITF_POS)        
  1593.         #define RTC_CR1_WAITF                        RTC_CR1_WAITF_MASK

  1594.         //===计数模式
  1595.         #define RTC_CR1_WAIT_POS                0
  1596.         #define RTC_CR1_WAIT_MASK                (0x01UL<<RTC_CR1_WAIT_POS)        
  1597.         #define RTC_CR1_WAIT                        RTC_CR1_WAIT_MASK
  1598.         
  1599. #pragma endregion

  1600. #pragma region TIM
  1601.         //===普通定时器
  1602.         typedef struct
  1603.         {
  1604.                 __IO uint32_t ARR;                        //---重载寄存器                        00
  1605.                 __IO uint32_t CNT;                        //---16位模式计数寄存器        04
  1606.                 __IO uint32_t CNT32;                //---32位模式计数寄存器        08
  1607.                 __IO uint32_t MCR;                        //---控制寄存器                        0C
  1608.                 __IO uint32_t SR;                        //---中断标志                        10
  1609.                 __IO uint32_t CSR;                        //---中断标志清除                14
  1610.                 __IO uint32_t MSCR;                        //---主从模式控制                18
  1611.                 __IO uint32_t FLTR;                        //---滤波控制                        1C
  1612.                 __IO uint32_t ADTR;                        //---ADC触发控制                        20
  1613.                 __IO uint32_t CRCH0_CR0;        //---比较单元0控制寄存器        24
  1614.                 __IO uint32_t CRCH1;                //---比较单元1控制寄存器        28
  1615.                 __IO uint32_t CRCH2;                //---比较单元2控制寄存器        2C
  1616.                 __IO uint32_t DTR;                        //---死区寄存器                        30
  1617.                 __IO uint32_t RCR;                        //---重复计数寄存器                34
  1618.                 __IO uint32_t ARRDM;                //---控制寄存器1                        38
  1619.                         
  1620.                 __IO uint32_t CCR0A;                //---比较0A寄存器                3C
  1621.                 __IO uint32_t CCR0B;                //---比较0B寄存器                40
  1622.                 __IO uint32_t CCR1A;                //---比较1A寄存器                44
  1623.                 __IO uint32_t CCR1B;                //---比较1B寄存器                48
  1624.                 __IO uint32_t CCR2A;                //---比较2A寄存器                4C
  1625.                 __IO uint32_t CCR2B;                //---比较2B寄存器                50
  1626.         } TIM_TypeDef;

  1627.         //===工作模式
  1628.         #define TIM_MCR_MODE_POS                                12
  1629.         #define TIM_MCR_MODE_MASK                                (0x03UL<<TIM_MCR_MODE_POS)
  1630.         #define TIM_MCR_MODE                                        TIM_MCR_MODE_MASK

  1631.         #define TIM_MCR_MODE_TIM0                                (0x00UL<<TIM_MCR_MODE_POS)
  1632.         #define TIM_MCR_MODE_PWC                                (0x01UL<<TIM_MCR_MODE_POS)
  1633.         #define TIM_MCR_MODE_SAWTOOTH                        (0x02UL<<TIM_MCR_MODE_POS)
  1634.         #define TIM_MCR_MODE_TRIANGLE                        (0x03UL<<TIM_MCR_MODE_POS)

  1635.         #define TIM_MCR_PRS_POS                                        4
  1636.         #define TIM_MCR_PRS_MASK                                 (0x07U<<TIM_MCR_PRS_POS)
  1637.         #define TIM_MCR_PRS                                                TIM_MCR_PRS_MASK
  1638.         
  1639.         #define TIM_MCR_PRS_1                                        (0x00U<<TIM_MCR_PRS_POS)
  1640.         #define TIM_MCR_PRS_2                                        (0x01U<<TIM_MCR_PRS_POS)
  1641.         #define TIM_MCR_PRS_4                                        (0x02U<<TIM_MCR_PRS_POS)
  1642.         #define TIM_MCR_PRS_8                                        (0x03U<<TIM_MCR_PRS_POS)
  1643.         #define TIM_MCR_PRS_16                                        (0x04U<<TIM_MCR_PRS_POS)
  1644.         #define TIM_MCR_PRS_32                                        (0x05U<<TIM_MCR_PRS_POS)
  1645.         #define TIM_MCR_PRS_64                                        (0x06U<<TIM_MCR_PRS_POS)
  1646.         #define TIM_MCR_PRS_256                                        (0x07U<<TIM_MCR_PRS_POS)

  1647.         #define TIM_MCR_CT_POS                                        2
  1648.         #define TIM_MCR_CT_MASK                                         (0x01U<<TIM_MCR_CT_POS)
  1649.         #define TIM_MCR_CT                                                TIM_MCR_CT_MASK
  1650.         
  1651.         #define TIM_MCR_EN_POS                                        0
  1652.         #define TIM_MCR_EN_MASK                                         (0x01U<<TIM_MCR_EN_POS)
  1653.         #define TIM_MCR_EN                                                TIM_MCR_EN_MASK
  1654.         
  1655. #pragma region TIM_M0

  1656.         //===普通定时器
  1657.         typedef struct
  1658.         {
  1659.                 __IO uint32_t ARR;                        //---重载寄存器                        00
  1660.                 __IO uint32_t CNT;                        //---16位模式计数寄存器        04
  1661.                 __IO uint32_t CNT32;                //---32位模式计数寄存器        08
  1662.                 __IO uint32_t M0CR;                        //---控制寄存器                        0C
  1663.                 __IO uint32_t SR;                        //---中断标志                        10
  1664.                 __IO uint32_t CSR;                        //---中断标志清除                        14
  1665.                 uint32_t RESERVED[6];                //---保留字节
  1666.                 __IO uint32_t DTR;                        //---死区寄存器                        30
  1667.         } TIM_M0_TypeDef;
  1668.         
  1669.         #define TIM_M0_ARR_ARR_POS                0
  1670.         #define TIM_M0_ARR_ARR_MASK                (0xFFFFUL<<TIM_M0_ARR_ARR_POS)
  1671.         #define TIM_M0_ARR_ARR                        TIM_M0_ARR_ARR_MASK

  1672.         #define TIM_M0_CNT_CNT_POS                0
  1673.         #define TIM_M0_CNT_CNT_MASK                (0xFFFFUL<<TIM_M0_CNT_CNT_POS)
  1674.         #define TIM_M0_CNT_CNT                        TIM_M0_CNT_CNT_MASK

  1675.         #define TIM_M0_CNT_CNT32_POS                0
  1676.         #define TIM_M0_CNT_CNT32_MASK        (0xFFFFFFFFUL<<TIM_M0_CNT_CNT32_POS)
  1677.         #define TIM_M0_CNT_CNT32                        TIM_M0_CNT_CNT32_MASK

  1678.         //===控制寄存器
  1679.         #define TIM_M0_M0CR_MODE_POS                12
  1680.         #define TIM_M0_M0CR_MODE_MASK        (0x03U<<TIM_M0_M0CR_MODE_POS)
  1681.         #define TIM_M0_M0CR_MODE                        TIM_M0_M0CR_MODE_MASK

  1682.         #define TIM_M0_M0CR_IE_POS                10
  1683.         #define TIM_M0_M0CR_IE_MASK                (0x01U<<TIM_M0_M0CR_IE_POS)
  1684.         #define TIM_M0_M0CR_IE                        TIM_M0_M0CR_IE_MASK

  1685.         #define TIM_M0_M0CR_GATEP_POS        9
  1686.         #define TIM_M0_M0CR_GATEP_MASK        (0x01U<<TIM_M0_M0CR_GATEP_POS)
  1687.         #define TIM_M0_M0CR_GATEP                TIM_M0_M0CR_GATEP_MASK

  1688.         #define TIM_M0_M0CR_GATEN_POS        8
  1689.         #define TIM_M0_M0CR_GATEN_MASK        (0x01U<<TIM_M0_M0CR_GATEN_POS)
  1690.         #define TIM_M0_M0CR_GATEN                TIM_M0_M0CR_GATEN_MASK

  1691.         #define TIM_M0_M0CR_PRS_POS                4
  1692.         #define TIM_M0_M0CR_PRS_MASK                 (0x07U<<TIM_M0_M0CR_PRS_POS)
  1693.         #define TIM_M0_M0CR_PRS                        TIM_M0_M0CR_PRS_MASK

  1694.         #define TIM_M0_M0CR_PRS_1                (0x00U<<TIM_M0_M0CR_PRS_POS)
  1695.         #define TIM_M0_M0CR_PRS_2                (0x01U<<TIM_M0_M0CR_PRS_POS)
  1696.         #define TIM_M0_M0CR_PRS_4                (0x02U<<TIM_M0_M0CR_PRS_POS)
  1697.         #define TIM_M0_M0CR_PRS_8                (0x03U<<TIM_M0_M0CR_PRS_POS)
  1698.         #define TIM_M0_M0CR_PRS_16                (0x04U<<TIM_M0_M0CR_PRS_POS)
  1699.         #define TIM_M0_M0CR_PRS_32                (0x05U<<TIM_M0_M0CR_PRS_POS)
  1700.         #define TIM_M0_M0CR_PRS_64                (0x06U<<TIM_M0_M0CR_PRS_POS)
  1701.         #define TIM_M0_M0CR_PRS_256                (0x07U<<TIM_M0_M0CR_PRS_POS)

  1702.         #define TIM_M0_M0CR_TOGEN_POS        3
  1703.         #define TIM_M0_M0CR_TOGEN_MASK        (0x01U<<TIM_M0_M0CR_TOGEN_POS)
  1704.         #define TIM_M0_M0CR_TOGEN                TIM_M0_M0CR_TOGEN_MASK

  1705.         #define TIM_M0_M0CR_CT_POS                2
  1706.         #define TIM_M0_M0CR_CT_MASK                 (0x01U<<TIM_M0_M0CR_CT_POS)
  1707.         #define TIM_M0_M0CR_CT                        TIM_M0_M0CR_CT_MASK

  1708.         #define TIM_M0_M0CR_MD_POS                1
  1709.         #define TIM_M0_M0CR_MD_MASK                 (0x01U<<TIM_M0_M0CR_MD_POS)
  1710.         #define TIM_M0_M0CR_MD                        TIM_M0_M0CR_MD_MASK

  1711.         #define TIM_M0_M0CR_EN_POS                0
  1712.         #define TIM_M0_M0CR_EN_MASK                 (0x01U<<TIM_M0_M0CR_EN_POS)
  1713.         #define TIM_M0_M0CR_EN                        TIM_M0_M0CR_EN_MASK

  1714.         //===标志寄存器
  1715.         #define TIM_M0_SR_IE_POS                        0
  1716.         #define TIM_M0_SR_IE_MASK                 (0x01U<<TIM_M0_SR_IE_POS)
  1717.         #define TIM_M0_SR_IE                                TIM_M0_SR_IE_MASK

  1718.         //===清楚标志寄存器
  1719.         #define TIM_M0_CSR_IE_POS                0
  1720.         #define TIM_M0_CSR_IE_MASK                 (0x01U<<TIM_M0_CSR_IE_POS)
  1721.         #define TIM_M0_CSR_IE                        TIM_M0_CSR_IE_MASK

  1722.         //===死区控制寄存器
  1723.         #define TIM_M0_DTR_MOE_POS                12
  1724.         #define TIM_M0_DTR_MOE_MASK                 (0x01U<<TIM_M0_DTR_MOE_POS)
  1725.         #define TIM_M0_DTR_MOE                        TIM_M0_DTR_MOE_MASK

  1726. #pragma endregion

  1727. #pragma region TIM_M1

  1728.         //===普通定时器
  1729.         typedef struct
  1730.         {
  1731.                 uint32_t RESERVED1;                        //---保留字节                        00
  1732.                 __IO uint32_t CNT;                        //---16位模式计数寄存器        04
  1733.                 uint32_t RESERVED2;                        //---保留字节                        08
  1734.                 __IO uint32_t M1CR;                        //---控制寄存器                        0C
  1735.                 __IO uint32_t SR;                        //---中断标志                        10
  1736.                 __IO uint32_t CSR;                        //---中断标志清除                14
  1737.                 __IO uint32_t DTR;                        //---死区寄存器                        30
  1738.                 __IO uint32_t MSCR;                        //---主从模式控制                18
  1739.                 __IO uint32_t FLTR;                        //---滤波控制                        1C
  1740.                 uint32_t RESERVED3;                        //---保留字节                        20
  1741.                 __IO uint32_t CR0;                        //---比较单元0控制寄存器        24
  1742.                 uint32_t RESERVED4[5];                //---保留字节
  1743.                 __IO uint32_t CCR0A;                //---比较0A寄存器                3C
  1744.         } TIM_M1_TypeDef;

  1745.         //===控制寄存器
  1746.         #define TIM_M1_CR_TRIG_POS                14
  1747.         #define TIM_M1_CR_TRIG_MASK                (0x03U<<TIM_M1_CR_TRIG_POS)
  1748.         #define TIM_M1_CR_TRIG                        TIM_M1_CR_TRIG_MASK

  1749.         #define TIM_M1_CR_MODE_POS                12
  1750.         #define TIM_M1_CR_MODE_MASK                (0x03U<<TIM_M1_CR_MODE_POS)
  1751.         #define TIM_M1_CR_MODE                        TIM_M1_CR_MODE_MASK

  1752.         #define TIM_M1_CR_IE_POS                        10
  1753.         #define TIM_M1_CR_IE_MASK                (0x01U<<TIM_M1_CR_IE_POS)
  1754.         #define TIM_M1_CR_IE                                TIM_M1_CR_IE_MASK

  1755.         #define TIM_M1_CR_EDG_POS                8
  1756.         #define TIM_M1_CR_EDG_MASK                (0x03U<<TIM_M1_CR_EDG_POS)
  1757.         #define TIM_M1_CR_EDG                        TIM_M1_CR_EDG_MASK

  1758.         #define TIM_M1_CR_PRS_POS                4
  1759.         #define TIM_M1_CR_PRS_MASK                 (0x07U<<TIM_M1_CR_PRS_POS)
  1760.         #define TIM_M1_CR_PRS                        TIM_M1_CR_PRS_MASK

  1761.         #define TIM_M1_CR_TOGEN_POS                3
  1762.         #define TIM_M1_CR_TOGEN_MASK                 (0x01U<<TIM_M1_CR_TOGEN_POS)
  1763.         #define TIM_M1_CR_TOGEN                        TIM_M1_CR_TOGEN_MASK

  1764.         #define TIM_M1_CR_CT_POS                        2
  1765.         #define TIM_M1_CR_CT_MASK                 (0x01U<<TIM_M1_CR_CT_POS)
  1766.         #define TIM_M1_CR_CT                                TIM_M1_CR_CT_MASK

  1767.         #define TIM_M1_CR_EN_POS                        0
  1768.         #define TIM_M1_CR_EN_MASK                 (0x01U<<TIM_M1_CR_EN_POS)
  1769.         #define TIM_M1_CR_EN                                TIM_M1_CR_EN_MASK

  1770.         //===标志寄存器
  1771.         #define TIM_M1_SR_CAE_POS                2
  1772.         #define TIM_M1_SR_CAE_MASK                 (0x01U<<TIM_M1_SR_CAE_POS)
  1773.         #define TIM_M1_SR_CAE                        TIM_M1_SR_CAE_MASK

  1774.         #define TIM_M1_SR_IE_POS                        0
  1775.         #define TIM_M1_SR_IE_MASK                 (0x01U<<TIM_M1_SR_IE_POS)
  1776.         #define TIM_M1_SR_IE                                TIM_M1_SR_IE_MASK

  1777.         //===清楚标志寄存器
  1778.         #define TIM_M1_CSR_CAE_POS                2
  1779.         #define TIM_M1_CSR_CAE_MASK                 (0x01U<<TIM_M1_CSR_CAE_POS)
  1780.         #define TIM_M1_CSR_CAE                        TIM_M1_CSR_CAE_MASK        

  1781.         #define TIM_M1_CSR_IE_POS                0
  1782.         #define TIM_M1_CSR_IE_MASK                 (0x01U<<TIM_M1_CSR_IE_POS)
  1783.         #define TIM_M1_CSR_IE                        TIM_M1_CSR_IE_MASK

  1784.         //===主从模式控制寄存器
  1785.         #define TIM_M1_MSCR_IB_POS                12
  1786.         #define TIM_M1_MSCR_IB_MASK                 (0x01U<<TIM_M1_MSCR_IB_POS)
  1787.         #define TIM_M1_MSCR_IB                        TIM_M1_MSCR_IB_MASK

  1788.         #define TIM_M1_MSCR_IA_POS                11
  1789.         #define TIM_M1_MSCR_IA_MASK                 (0x01U<<TIM_M1_MSCR_IA_POS)
  1790.         #define TIM_M1_MSCR_IA                        TIM_M1_MSCR_IA_MASK

  1791.         #define TIM_M1_MSCR_TRIG_POS                5
  1792.         #define TIM_M1_MSCR_TRIG_MASK         (0x07U<<TIM_M1_MSCR_TRIG_POS)
  1793.         #define TIM_M1_MSCR_TRIG                        TIM_M1_MSCR_TRIG_MASK

  1794.         //===滤波控制寄存器

  1795.         //===ETR输入相位
  1796.         #define TIM_M1_FLTR_ETP_POS                31
  1797.         #define TIM_M1_FLTR_ETP_MASK                 (0x01U<<TIM_M1_FLTR_ETP_POS)
  1798.         #define TIM_M1_FLTR_ETP                        TIM_M1_FLTR_ETP_MASK

  1799.         //===ETR滤波控制
  1800.         #define TIM_M1_FLTR_ETR_POS                28
  1801.         #define TIM_M1_FLTR_ETR_MASK         (0x07U<<TIM_M1_FLTR_ETR_POS)
  1802.         #define TIM_M1_FLTR_ETR                        TIM_M1_FLTR_ETR_MASK

  1803.         //===CHB滤波控制
  1804.         #define TIM_M1_FLTR_CHB_POS                4
  1805.         #define TIM_M1_FLTR_CHB_MASK                 (0x07U<<TIM_M1_FLTR_CHB_POS)
  1806.         #define TIM_M1_FLTR_CHB                        TIM_M1_FLTR_CHB_MASK

  1807.         //===CHA滤波控制
  1808.         #define TIM_M1_FLTR_CHA_POS                0
  1809.         #define TIM_M1_FLTR_CHA_MASK                 (0x07U<<TIM_M1_FLTR_CHA_POS)
  1810.         #define TIM_M1_FLTR_CHA                        TIM_M1_FLTR_CHA_POS


  1811.         //===CR0控制寄存器
  1812.         #define TIM_M1_CR0_CAE_POS                8
  1813.         #define TIM_M1_CR0_CAE_MASK                (0x01U<<TIM_M1_CR0_CAE_POS)
  1814.         #define TIM_M1_CR0_CAE                        TIM_M1_CR0_CAE_MASK

  1815. #pragma endregion

  1816. #pragma region TIM_M2
  1817.         //===普通定时器
  1818.         typedef struct
  1819.         {
  1820.                 __IO uint32_t ARR;                        //---重载寄存器                        00
  1821.                 __IO uint32_t CNT;                        //---16位模式计数寄存器        04
  1822.                 uint32_t RESERVED1;                        //---保留字节                        08
  1823.                 __IO uint32_t M23CR;                //---控制寄存器                        0C
  1824.                 __IO uint32_t SR;                        //---中断标志                        10
  1825.                 __IO uint32_t CSR;                        //---中断标志清除                14
  1826.                 __IO uint32_t MSCR;                        //---主从模式控制                18
  1827.                 __IO uint32_t FLTR;                        //---滤波控制                        1C
  1828.                 __IO uint32_t ADTR;                        //---ADC触发控制                20
  1829.                 __IO uint32_t CRCH0;                //---比较单元0控制寄存器        24
  1830.                 __IO uint32_t CRCH1;                //---比较单元1控制寄存器        28
  1831.                 __IO uint32_t CRCH2;                //---比较单元2控制寄存器        2C
  1832.                 __IO uint32_t DTR;                        //---死区寄存器                        30
  1833.                 __IO uint32_t RCR;                        //---重复计数寄存器                34
  1834.                 __IO uint32_t ARRDM;                //---控制寄存器1                38

  1835.                 __IO uint32_t CCR0A;                //---比较0A寄存器                3C
  1836.                 __IO uint32_t CCR0B;                //---比较0B寄存器                40
  1837.                 __IO uint32_t CCR1A;                //---比较1A寄存器                44
  1838.                 __IO uint32_t CCR1B;                //---比较1B寄存器                48
  1839.                 __IO uint32_t CCR2A;                //---比较2A寄存器                4C
  1840.                 __IO uint32_t CCR2B;                //---比较2B寄存器                50
  1841.         } TIM_M2_TypeDef;
  1842.         
  1843.         #define TIM_M2_ARR_ARR_POS                                        0
  1844.         #define TIM_M2_ARR_ARR_MASK                                        (0xFFFFUL<<TIM_M2_ARR_ARR_POS)
  1845.         #define TIM_M2_ARR_ARR                                                TIM_M2_ARR_ARR_MASK

  1846.         #define TIM_M2_CNT_CNT_POS                                        0
  1847.         #define TIM_M2_CNT_CNT_MASK                                        (0xFFFFUL<<TIM_M2_CNT_CNT_POS)
  1848.         #define TIM_M2_CNT_CNT                                                TIM_M2_CNT_CNT_MASK

  1849.         //===控制寄存器
  1850.         #define TIM_M2_M23CR_DIR_POS                                27
  1851.         #define TIM_M2_M23CR_DIR_MASK                                (0x01UL<<TIM_M2_M23CR_DIR_POS)
  1852.         #define TIM_M2_M23CR_DIR                                        TIM_M2_M23CR_DIR_MASK

  1853.         #define TIM_M2_M23CR_DIR_UP                                        (0x00UL<<TIM_M2_M23CR_DIR_POS)
  1854.         #define TIM_M2_M23CR_DIR_DOWN                                (0x01UL<<TIM_M2_M23CR_DIR_POS)

  1855.         //===软件刹车
  1856.         #define TIM_M2_M23CR_BG_POS                                        26
  1857.         #define TIM_M2_M23CR_BG_MASK                                (0x01UL<<TIM_M2_M23CR_BG_POS)
  1858.         #define TIM_M2_M23CR_BG                                                TIM_M2_M23CR_BG_MASK

  1859.         #define TIM_M2_M23CR_BG_ENABLE                                (0x01UL<<TIM_M2_M23CR_BG_POS)
  1860.         #define TIM_M2_M23CR_BG_DISABLE                                (0x00UL<<TIM_M2_M23CR_BG_POS)

  1861.         //===软件更新
  1862.         #define TIM_M2_M23CR_UG_POS                                        25
  1863.         #define TIM_M2_M23CR_UG_MASK                                (0x01UL<<TIM_M2_M23CR_UG_POS)
  1864.         #define TIM_M2_M23CR_UG                                                TIM_M2_M23CR_UG_MASK

  1865.         #define TIM_M2_M23CR_UG_ENABLE                                (0x01UL<<TIM_M2_M23CR_UG_POS)
  1866.         #define TIM_M2_M23CR_UG_DISABLE                                (0x00UL<<TIM_M2_M23CR_UG_POS)

  1867.         //===软件触发
  1868.         #define TIM_M2_M23CR_TG_POS                                        24
  1869.         #define TIM_M2_M23CR_TG_MASK                                (0x01UL<<TIM_M2_M23CR_TG_POS)
  1870.         #define TIM_M2_M23CR_TG                                                TIM_M2_M23CR_TG_MASK

  1871.         #define TIM_M2_M23CR_TG_ENABLE                                (0x01UL<<TIM_M2_M23CR_TG_POS)
  1872.         #define TIM_M2_M23CR_TG_DISABLE                                (0x00UL<<TIM_M2_M23CR_TG_POS)

  1873.         //===OCREF清除使能
  1874.         #define TIM_M2_M23CR_OCCE_POS                                23
  1875.         #define TIM_M2_M23CR_OCCE_MASK                                (0x01UL<<TIM_M2_M23CR_OCCE_POS)
  1876.         #define TIM_M2_M23CR_OCCE                                        TIM_M2_M23CR_OCCE_MASK

  1877.         #define TIM_M2_M23CR_OCCE_ENABLE                        (0x01UL<<TIM_M2_M23CR_OCCE_POS)
  1878.         #define TIM_M2_M23CR_OCCE_DISABLE                        (0x00UL<<TIM_M2_M23CR_OCCE_POS)

  1879.         //===A比较模式中断
  1880.         #define TIM_M2_M23CR_CISA_POS                                21
  1881.         #define TIM_M2_M23CR_CISA_MASK                                (0x03UL<<TIM_M2_M23CR_CISA_POS)
  1882.         #define TIM_M2_M23CR_CISA                                        TIM_M2_M23CR_CISA_MASK

  1883.         #define TIM_M2_M23CR_CISA_EDGE_NONE                                (0x00UL<<TIM_M2_M23CR_CISA_POS)
  1884.         #define TIM_M2_M23CR_CISA_EDGE_RISE                                (0x01UL<<TIM_M2_M23CR_CISA_POS)
  1885.         #define TIM_M2_M23CR_CISA_EDGE_FAIL                                (0x02UL<<TIM_M2_M23CR_CISA_POS)
  1886.         #define TIM_M2_M23CR_CISA_EDGE_ALL                                (0x03UL<<TIM_M2_M23CR_CISA_POS)

  1887.         //===刹车中断使能
  1888.         #define TIM_M2_M23CR_BIE_POS                                20
  1889.         #define TIM_M2_M23CR_BIE_MASK                                (0x01UL<<TIM_M2_M23CR_BIE_POS)
  1890.         #define TIM_M2_M23CR_BIE                                        TIM_M2_M23CR_BIE_MASK

  1891.         //===触发中断使能
  1892.         #define TIM_M2_M23CR_TIE_POS                                19
  1893.         #define TIM_M2_M23CR_TIE_MASK                                (0x01UL<<TIM_M2_M23CR_TIE_POS)
  1894.         #define TIM_M2_M23CR_TIE                                        TIM_M2_M23CR_TIE_MASK

  1895.         //===触发DMA中断使能
  1896.         #define TIM_M2_M23CR_TDMAIE_POS                                18
  1897.         #define TIM_M2_M23CR_TDMAIE_MASK                        (0x01UL<<TIM_M2_M23CR_TDMAIE_POS)
  1898.         #define TIM_M2_M23CR_TDMAIE                                        TIM_M2_M23CR_TDMAIE_MASK

  1899.         //===更新源
  1900.         #define TIM_M2_M23CR_URS_POS                                17
  1901.         #define TIM_M2_M23CR_URS_MASK                                (0x01UL<<TIM_M2_M23CR_URS_POS)
  1902.         #define TIM_M2_M23CR_URS                                        TIM_M2_M23CR_URS_MASK
  1903.         
  1904.         #define TIM_M2_M23CR_URS_ALL                                (0x00UL<<TIM_M2_M23CR_URS_POS)
  1905.         #define TIM_M2_M23CR_URS_RISE_OR_FAIL                (0x00UL<<TIM_M2_M23CR_URS_POS)

  1906.         //===OCREF清除源选择
  1907.         #define TIM_M2_M23CR_OCCS_POS                                16
  1908.         #define TIM_M2_M23CR_OCCS_MASK                                (0x01UL<<TIM_M2_M23CR_OCCS_POS)
  1909.         #define TIM_M2_M23CR_OCCS                                        TIM_M2_M23CR_OCCS_MASK

  1910.         #define TIM_M2_M23CR_OCCS_VC                                (0x00UL<<TIM_M2_M23CR_OCCS_POS)
  1911.         #define TIM_M2_M23CR_OCCS_ETR                                (0x01UL<<TIM_M2_M23CR_OCCS_POS)

  1912.         //===PWM互补模式选择
  1913.         #define TIM_M2_M23CR_CSG_POS                                15
  1914.         #define TIM_M2_M23CR_CSG_MASK                                (0x01UL<<TIM_M2_M23CR_CSG_POS)
  1915.         #define TIM_M2_M23CR_CSG                                        TIM_M2_M23CR_CSG_MASK

  1916.         #define TIM_M2_M23CR_CSG_COMP                                (0x00UL<<TIM_M2_M23CR_CSG_POS)
  1917.         #define TIM_M2_M23CR_CSG_CAPT                                (0x01UL<<TIM_M2_M23CR_CSG_POS)
  1918.         
  1919.         //===触发选择
  1920.         #define TIM_M2_M23CR_TRIG_POS                                14
  1921.         #define TIM_M2_M23CR_TRIG_MASK                                (0x01UL<<TIM_M2_M23CR_TRIG_POS)
  1922.         #define TIM_M2_M23CR_TRIG                                        TIM_M2_M23CR_TRIG_MASK

  1923.         #define TIM_M2_M23CR_TRIG_CYCLE                                (0x00UL<<TIM_M2_M23CR_TRIG_POS)
  1924.         #define TIM_M2_M23CR_TRIG_SINGLE                        (0x01UL<<TIM_M2_M23CR_TRIG_POS)

  1925.         //===工作模式
  1926.         #define TIM_M2_M23CR_MODE_POS                                12
  1927.         #define TIM_M2_M23CR_MODE_MASK                                (0x03UL<<TIM_M2_M23CR_MODE_POS)
  1928.         #define TIM_M2_M23CR_MODE                                        TIM_M2_M23CR_MODE_MASK

  1929.         #define TIM_M2_M23CR_MODE_TIM0                                (0x00UL<<TIM_M2_M23CR_MODE_POS)
  1930.         #define TIM_M2_M23CR_MODE_PWC                                (0x01UL<<TIM_M2_M23CR_MODE_POS)
  1931.         #define TIM_M2_M23CR_MODE_SAWTOOTH                        (0x02UL<<TIM_M2_M23CR_MODE_POS)
  1932.         #define TIM_M2_M23CR_MODE_TRIANGLE                        (0x03UL<<TIM_M2_M23CR_MODE_POS)

  1933.         //===更新DMA使能
  1934.         #define TIM_M2_M23CR_UDMAEN_POS                                11
  1935.         #define TIM_M2_M23CR_UDMAEN_MASK                        (0x01UL<<TIM_M2_M23CR_UDMAEN_POS)
  1936.         #define TIM_M2_M23CR_UDMAEN                                        TIM_M2_M23CR_UDMAEN_MASK

  1937.         //===更新中断使能
  1938.         #define TIM_M2_M23CR_UIE_POS                                10
  1939.         #define TIM_M2_M23CR_UIE_MASK                                (0x01UL<<TIM_M2_M23CR_UIE_POS)
  1940.         #define TIM_M2_M23CR_UIE                                        TIM_M2_M23CR_UIE_MASK

  1941.         //===下降沿捕获使能控制
  1942.         #define TIM_M2_M23CR_CFG_POS                                9
  1943.         #define TIM_M2_M23CR_CFG_MASK                                (0x01UL<<TIM_M2_M23CR_CFG_POS)
  1944.         #define TIM_M2_M23CR_CFG                                        TIM_M2_M23CR_CFG_MASK

  1945.         #define TIM_M2_M23CR_CFG_ENABLE                                (0x01UL<<TIM_M2_M23CR_CFG_POS)
  1946.         #define TIM_M2_M23CR_CFG_DISABLE                        (0x00UL<<TIM_M2_M23CR_CFG_POS)
  1947.         
  1948.         //===上升沿捕获使能控制
  1949.         #define TIM_M2_M23CR_CRG_POS                                8
  1950.         #define TIM_M2_M23CR_CRG_MASK                                (0x01UL<<TIM_M2_M23CR_CRG_POS)
  1951.         #define TIM_M2_M23CR_CRG                                        TIM_M2_M23CR_CRG_MASK

  1952.         #define TIM_M2_M23CR_CRG_ENABLE                                (0x01UL<<TIM_M2_M23CR_CRG_POS)
  1953.         #define TIM_M2_M23CR_CRG_DISABLE                        (0x00UL<<TIM_M2_M23CR_CRG_POS)

  1954.         //===重载缓存使能控制
  1955.         #define TIM_M2_M23CR_BUFPEN_POS                                7
  1956.         #define TIM_M2_M23CR_BUFPEN_MASK                        (0x01UL<<TIM_M2_M23CR_BUFPEN_POS)
  1957.         #define TIM_M2_M23CR_BUFPEN                                        TIM_M2_M23CR_BUFPEN_MASK
  1958.         
  1959.         //===时钟分频选择
  1960.         #define TIM_M2_M23CR_PRS_POS                                4
  1961.         #define TIM_M2_M23CR_PRS_MASK                                 (0x07UL<<TIM_M2_M23CR_PRS_POS)
  1962.         #define TIM_M2_M23CR_PRS                                        TIM_M2_M23CR_PRS_MASK

  1963.         #define TIM_M2_M23CR_PRS_1                                         (0x00UL<<TIM_M2_M23CR_PRS_POS)
  1964.         #define TIM_M2_M23CR_PRS_2                                         (0x01UL<<TIM_M2_M23CR_PRS_POS)
  1965.         #define TIM_M2_M23CR_PRS_4                                         (0x02UL<<TIM_M2_M23CR_PRS_POS)
  1966.         #define TIM_M2_M23CR_PRS_8                                         (0x03UL<<TIM_M2_M23CR_PRS_POS)
  1967.         #define TIM_M2_M23CR_PRS_16                                         (0x04UL<<TIM_M2_M23CR_PRS_POS)        
  1968.         #define TIM_M2_M23CR_PRS_32                                         (0x05UL<<TIM_M2_M23CR_PRS_POS)
  1969.         #define TIM_M2_M23CR_PRS_64                                         (0x06UL<<TIM_M2_M23CR_PRS_POS)
  1970.         #define TIM_M2_M23CR_PRS_256                                 (0x07UL<<TIM_M2_M23CR_PRS_POS)

  1971.         //===单双点比较控制
  1972.         #define TIM_M2_M23CR_PWM2S_POS                                3
  1973.         #define TIM_M2_M23CR_PWM2S_MASK                                (0x01UL<<TIM_M2_M23CR_PWM2S_POS)
  1974.         #define TIM_M2_M23CR_PWM2S                                        TIM_M2_M23CR_PWM2S_MASK

  1975.         #define TIM_M2_M23CR_PWM2S_DOUBLE                        (0x00UL<<TIM_M2_M23CR_PWM2S_POS)
  1976.         #define TIM_M2_M23CR_PWM2S_SINGLE                        (0x01UL<<TIM_M2_M23CR_PWM2S_POS)

  1977.         //===计数时钟
  1978.         #define TIM_M2_M23CR_CT_POS                                        2
  1979.         #define TIM_M2_M23CR_CT_MASK                                 (0x01UL<<TIM_M2_M23CR_CT_POS)
  1980.         #define TIM_M2_M23CR_CT                                                TIM_M2_M23CR_CT_MASK

  1981.         #define TIM_M2_M23CR_CT_TCLK                                (0x00UL<<TIM_M2_M23CR_CT_POS)
  1982.         #define TIM_M2_M23CR_CT_ETR                                        (0x01UL<<TIM_M2_M23CR_CT_POS)

  1983.         //===PWM模式选择
  1984.         #define TIM_M2_M23CR_COMP_POS                                1
  1985.         #define TIM_M2_M23CR_COMP_MASK                                 (0x01UL<<TIM_M2_M23CR_COMP_POS)
  1986.         #define TIM_M2_M23CR_COMP                                        TIM_M2_M23CR_COMP_MASK

  1987.         #define TIM_M2_M23CR_COMP_PWM_COMP                        (0x01UL<<TIM_M2_M23CR_COMP_POS)
  1988.         #define TIM_M2_M23CR_COMP_PWM_INDEP                        (0x00UL<<TIM_M2_M23CR_COMP_POS)

  1989.         //===定时器使能控制
  1990.         #define TIM_M2_M23CR_EN_POS                                        0
  1991.         #define TIM_M2_M23CR_EN_MASK                                 (0x01U<<TIM_M2_M23CR_EN_POS)
  1992.         #define TIM_M2_M23CR_EN                                                TIM_M2_M23CR_EN_MASK

  1993.         //===中断标志寄存器
  1994.         //===触发中断标志
  1995.         #define TIM_M2_SR_TIE_POS                                        15
  1996.         #define TIM_M2_SR_TIE_MASK                                         (0x01U<<TIM_M2_SR_TIE_POS)
  1997.         #define TIM_M2_SR_TIE                                                TIM_M2_SR_TIE_MASK
  1998.                         
  1999.         //===刹车中断标志
  2000.         #define TIM_M2_SR_BIE_POS                                        14
  2001.         #define TIM_M2_SR_BIE_MASK                                         (0x01U<<TIM_M2_SR_BIE_POS)
  2002.         #define TIM_M2_SR_BIE                                                TIM_M2_SR_BIE_MASK
  2003.                
  2004.         //==CH2B捕获丢数据
  2005.         #define TIM_M2_SR_CH2B_ERROR_POS                        13
  2006.         #define TIM_M2_SR_CH2B_ERROR_MASK                         (0x01U<<TIM_M2_SR_CH2B_ERROR_POS)
  2007.         #define TIM_M2_SR_CH2B_ERROR                                TIM_M2_SR_CH2B_ERROR_MASK
  2008.                
  2009.         //==CH1B捕获丢数据
  2010.         #define TIM_M2_SR_CH1B_ERROR_POS                        12
  2011.         #define TIM_M2_SR_CH1B_ERROR_MASK                         (0x01U<<TIM_M2_SR_CH1B_ERROR_POS)
  2012.         #define TIM_M2_SR_CH1B_ERROR                                TIM_M2_SR_CH1B_ERROR_MASK
  2013.                
  2014.         //==CH0B捕获丢数据
  2015.         #define TIM_M2_SR_CH0B_ERROR_POS                        11
  2016.         #define TIM_M2_SR_CH0B_ERROR_MASK                         (0x01U<<TIM_M2_SR_CH0B_ERROR_POS)
  2017.         #define TIM_M2_SR_CH0B_ERROR                                TIM_M2_SR_CH0B_ERROR_MASK
  2018.                
  2019.         //==CH2A捕获丢数据
  2020.         #define TIM_M2_SR_CH2A_ERROR_POS                        10
  2021.         #define TIM_M2_SR_CH2A_ERROR_MASK                         (0x01U<<TIM_M2_SR_CH2A_ERROR_POS)
  2022.         #define TIM_M2_SR_CH2A_ERROR                                TIM_M2_SR_CH2A_ERROR_MASK
  2023.                
  2024.         //==CH1A捕获丢数据
  2025.         #define TIM_M2_SR_CH1A_ERROR_POS                        9
  2026.         #define TIM_M2_SR_CH1A_ERROR_MASK                         (0x01U<<TIM_M2_SR_CH1A_ERROR_POS)
  2027.         #define TIM_M2_SR_CH1A_ERROR                                TIM_M2_SR_CH1A_ERROR_MASK
  2028.                
  2029.         //==CH0A捕获丢数据
  2030.         #define TIM_M2_SR_CH0A_ERROR_POS                        8
  2031.         #define TIM_M2_SR_CH0A_ERROR_MASK                         (0x01U<<TIM_M2_SR_CH0A_ERROR_POS)
  2032.         #define TIM_M2_SR_CH0A_ERROR                                TIM_M2_SR_CH0A_ERROR_MASK
  2033.                         
  2034.         //==CH2B捕获/比较中断标志
  2035.         #define TIM_M2_SR_CH2B_FLAG_POS                                7
  2036.         #define TIM_M2_SR_CH2B_FLAG_MASK                         (0x01U<<TIM_M2_SR_CH2B_FLAG_POS)
  2037.         #define TIM_M2_SR_CH2B_FLAG                                        TIM_M2_SR_CH2B_FLAG_MASK
  2038.                
  2039.         //==CH1B捕获/比较中断标志
  2040.         #define TIM_M2_SR_CH1B_FLAG_POS                                6
  2041.         #define TIM_M2_SR_CH1B_FLAG_MASK                         (0x01U<<TIM_M2_SR_CH1B_FLAG_POS)
  2042.         #define TIM_M2_SR_CH1B_FLAG                                        TIM_M2_SR_CH1B_FLAG_MASK
  2043.                
  2044.         //==CH0B捕获/比较中断标志
  2045.         #define TIM_M2_SR_CH0B_FLAG_POS                                5
  2046.         #define TIM_M2_SR_CH0B_FLAG_MASK                         (0x01U<<TIM_M2_SR_CH0B_FLAG_POS)
  2047.         #define TIM_M2_SR_CH0B_FLAG                                        TIM_M2_SR_CH0B_FLAG_MASK
  2048.                
  2049.         //==CH2A捕获/比较中断标志
  2050.         #define TIM_M2_SR_CH2A_FLAG_POS                                4
  2051.         #define TIM_M2_SR_CH2A_FLAG_MASK                         (0x01U<<TIM_M2_SR_CH2A_FLAG_POS)
  2052.         #define TIM_M2_SR_CH2A_FLAG                                        TIM_M2_SR_CH2A_FLAG_MASK
  2053.         
  2054.         //==CH1A捕获/比较中断标志
  2055.         #define TIM_M2_SR_CH1A_FLAG_POS                                3
  2056.         #define TIM_M2_SR_CH1A_FLAG_MASK                         (0x01U<<TIM_M2_SR_CH1A_FLAG_POS)
  2057.         #define TIM_M2_SR_CH1A_FLAG                                        TIM_M2_SR_CH1A_FLAG_MASK
  2058.                
  2059.         //==CH0A捕获/比较中断标志
  2060.         #define TIM_M2_SR_CH0A_FLAG_POS                                2
  2061.         #define TIM_M2_SR_CH0A_FLAG_MASK                         (0x01U<<TIM_M2_SR_CH0A_FLAG_POS)
  2062.         #define TIM_M2_SR_CH0A_FLAG                                        TIM_M2_SR_CH0A_FLAG_MASK
  2063.                
  2064.         //===更新中断标志位
  2065.         #define TIM_M2_SR_UIE_POS                                        0
  2066.         #define TIM_M2_SR_UIE_MASK                                         (0x01U<<TIM_M2_SR_UIE_POS)
  2067.         #define TIM_M2_SR_UIE                                                TIM_M2_SR_UIE_MASK

  2068.         //===清楚标志寄存器
  2069.         #define TIM_M2_CSR_MASK                                                0xFFFDUL

  2070.         #define TIM_M2_CSR_TIE_POS                                        15
  2071.         #define TIM_M2_CSR_TIE_MASK                                         (0x01U<<TIM_M2_CSR_TIE_POS)
  2072.         #define TIM_M2_CSR_TIE                                                TIM_M2_CSR_TIE_MASK
  2073.                                           
  2074.         #define TIM_M2_CSR_BIE_POS                                        14
  2075.         #define TIM_M2_CSR_BIE_MASK                                         (0x01U<<TIM_M2_CSR_BIE_POS)
  2076.         #define TIM_M2_CSR_BIE                                                TIM_M2_CSR_BIE_MASK
  2077.                                           
  2078.         #define TIM_M2_CSR_CH2B_ERROR_POS                        13
  2079.         #define TIM_M2_CSR_CH2B_ERROR_MASK                        (0x01U<<TIM_M2_CSR_CH2B_ERROR_POS)
  2080.         #define TIM_M2_CSR_CH2B_ERROR                                TIM_M2_CSR_CH2B_ERROR_MASK
  2081.                                           
  2082.         #define TIM_M2_CSR_CH1B_ERROR_POS                        12
  2083.         #define TIM_M2_CSR_CH1B_ERROR_MASK                        (0x01U<<TIM_M2_CSR_CH1B_ERROR_POS)
  2084.         #define TIM_M2_CSR_CH1B_ERROR                                TIM_M2_CSR_CH1B_ERROR_MASK
  2085.                                           
  2086.         #define TIM_M2_CSR_CH0B_ERROR_POS                        11
  2087.         #define TIM_M2_CSR_CH0B_ERROR_MASK                        (0x01U<<TIM_M2_CSR_CH0B_ERROR_POS)
  2088.         #define TIM_M2_CSR_CH0B_ERROR                                TIM_M2_CSR_CH0B_ERROR_MASK
  2089.                                           
  2090.         #define TIM_M2_CSR_CH2A_ERROR_POS                        10
  2091.         #define TIM_M2_CSR_CH2A_ERROR_MASK                        (0x01U<<TIM_M2_CSR_CH2A_ERROR_POS)
  2092.         #define TIM_M2_CSR_CH2A_ERROR                                TIM_M2_CSR_CH2A_ERROR_MASK
  2093.                                           
  2094.         #define TIM_M2_CSR_CH1A_ERROR_POS                        9
  2095.         #define TIM_M2_CSR_CH1A_ERROR_MASK                        (0x01U<<TIM_M2_CSR_CH1A_ERROR_POS)
  2096.         #define TIM_M2_CSR_CH1A_ERROR                                TIM_M2_CSR_CH1A_ERROR_MASK
  2097.                                           
  2098.         #define TIM_M2_CSR_CH0A_ERROR_POS                        8
  2099.         #define TIM_M2_CSR_CH0A_ERROR_MASK                        (0x01U<<TIM_M2_CSR_CH0A_ERROR_POS)
  2100.         #define TIM_M2_CSR_CH0A_ERROR                                TIM_M2_CSR_CH0A_ERROR_MASK
  2101.                                           
  2102.         #define TIM_M2_CSR_CH2B_FLAG_POS                        7
  2103.         #define TIM_M2_CSR_CH2B_FLAG_MASK                (0x01U<<TIM_M2_CSR_CH2B_FLAG_POS)
  2104.         #define TIM_M2_CSR_CH2B_FLAG                                TIM_M2_CSR_CH2B_FLAG_MASK
  2105.                                           
  2106.         #define TIM_M2_CSR_CH1B_FLAG_POS                        6
  2107.         #define TIM_M2_CSR_CH1B_FLAG_MASK                (0x01U<<TIM_M2_CSR_CH1B_FLAG_POS)
  2108.         #define TIM_M2_CSR_CH1B_FLAG                                TIM_M2_CSR_CH1B_FLAG_MASK
  2109.                                           
  2110.         #define TIM_M2_CSR_CH0B_FLAG_POS                        5
  2111.         #define TIM_M2_CSR_CH0B_FLAG_MASK                (0x01U<<TIM_M2_CSR_CH0B_FLAG_POS)
  2112.         #define TIM_M2_CSR_CH0B_FLAG                                TIM_M2_CSR_CH0B_FLAG_MASK
  2113.                                           
  2114.         #define TIM_M2_CSR_CH2A_FLAG_POS                        4
  2115.         #define TIM_M2_CSR_CH2A_FLAG_MASK                (0x01U<<TIM_M2_CSR_CH2A_FLAG_POS)
  2116.         #define TIM_M2_CSR_CH2A_FLAG                                TIM_M2_CSR_CH2A_FLAG_MASK
  2117.                                           
  2118.         #define TIM_M2_CSR_CH1A_FLAG_POS                        3
  2119.         #define TIM_M2_CSR_CH1A_FLAG_MASK                (0x01U<<TIM_M2_CSR_CH1A_FLAG_POS)
  2120.         #define TIM_M2_CSR_CH1A_FLAG                                TIM_M2_CSR_CH1A_FLAG_MASK
  2121.                                           
  2122.         #define TIM_M2_CSR_CH0A_FLAG_POS                        2
  2123.         #define TIM_M2_CSR_CH0A_FLAG_MASK                (0x01U<<TIM_M2_CSR_CH0A_FLAG_POS)
  2124.         #define TIM_M2_CSR_CH0A_FLAG                                TIM_M2_CSR_CH0A_FLAG_MASK
  2125.                                           
  2126.         #define TIM_M2_CSR_UIE_POS                                        0
  2127.         #define TIM_M2_CSR_UIE_MASK                                         (0x01U<<TIM_M2_CSR_UIE_POS)
  2128.         #define TIM_M2_CSR_UIE                                                TIM_M2_CSR_UIE_MASK

  2129.         //===主从模式控制寄存器
  2130.         //===CH0B输入选择
  2131.         #define TIM_M2_MSCR_IB0S_POS                                12
  2132.         #define TIM_M2_MSCR_IB0S_MASK                                 (0x01U<<TIM_M2_MSCR_IB0S_POS)
  2133.         #define TIM_M2_MSCR_IB0S                                        TIM_M2_MSCR_IB0S_MASK

  2134.         //===CH0A输入选择
  2135.         #define TIM_M2_MSCR_IA0S_POS                                11
  2136.         #define TIM_M2_MSCR_IA0S_MASK                                 (0x01U<<TIM_M2_MSCR_IA0S_POS)
  2137.         #define TIM_M2_MSCR_IA0S                                        TIM_M2_MSCR_IA0S_MASK

  2138.         //===从模式选择
  2139.         #define TIM_M2_MSCR_SMS_POS                                        8
  2140.         #define TIM_M2_MSCR_SMS_MASK                                (0x07U<<TIM_M2_MSCR_SMS_POS)
  2141.         #define TIM_M2_MSCR_SMS                                                TIM_M2_MSCR_SMS_MASK

  2142.         #define TIM_M2_MSCR_SMS_TCLK                                (0x00U<<TIM_M2_MSCR_SMS_POS)
  2143.         #define TIM_M2_MSCR_SMS_RESET                                (0x01U<<TIM_M2_MSCR_SMS_POS)
  2144.         #define TIM_M2_MSCR_SMS_TRIG                                (0x02U<<TIM_M2_MSCR_SMS_POS)
  2145.         #define TIM_M2_MSCR_SMS_ETR                                        (0x03U<<TIM_M2_MSCR_SMS_POS)
  2146.         #define TIM_M2_MSCR_SMS_ENCODE_MODE1                (0x04U<<TIM_M2_MSCR_SMS_POS)
  2147.         #define TIM_M2_MSCR_SMS_ENCODE_MODE2                (0x05U<<TIM_M2_MSCR_SMS_POS)
  2148.         #define TIM_M2_MSCR_SMS_ENCODE_MODE3                (0x06U<<TIM_M2_MSCR_SMS_POS)
  2149.         #define TIM_M2_MSCR_SMS_GATE                                (0x07U<<TIM_M2_MSCR_SMS_POS)

  2150.         //===触发模式选择
  2151.         #define TIM_M2_MSCR_TRIG_POS                                5
  2152.         #define TIM_M2_MSCR_TRIG_MASK                                (0x07U<<TIM_M2_MSCR_TRIG_POS)
  2153.         #define TIM_M2_MSCR_TRIG                                        TIM_M2_MSCR_TRIG_MASK

  2154.         #define TIM_M2_MSCR_TRIG_ETRP                                (0x00U<<TIM_M2_MSCR_TRIG_POS)
  2155.         #define TIM_M2_MSCR_TRIG_ITR0                                (0x01U<<TIM_M2_MSCR_TRIG_POS)
  2156.         #define TIM_M2_MSCR_TRIG_ITR1                                (0x02U<<TIM_M2_MSCR_TRIG_POS)
  2157.         #define TIM_M2_MSCR_TRIG_ITR2                                (0x03U<<TIM_M2_MSCR_TRIG_POS)
  2158.         #define TIM_M2_MSCR_TRIG_ITR3                                (0x04U<<TIM_M2_MSCR_TRIG_POS)
  2159.         #define TIM_M2_MSCR_TRIG_CH0A                                (0x05U<<TIM_M2_MSCR_TRIG_POS)
  2160.         #define TIM_M2_MSCR_TRIG_CH0AP                                (0x06U<<TIM_M2_MSCR_TRIG_POS)
  2161.         #define TIM_M2_MSCR_TRIG_CH0BP                                (0x07U<<TIM_M2_MSCR_TRIG_POS)

  2162.         //===主从模式选择
  2163.         #define TIM_M2_MSCR_MSM_POS                                        4
  2164.         #define TIM_M2_MSCR_MSM_MASK                                (0x07U<<TIM_M2_MSCR_MSM_POS)
  2165.         #define TIM_M2_MSCR_MSM                                                TIM_M2_MSCR_MSM_MASK

  2166.         //===比较模式下DMA比较触发选择
  2167.         #define TIM_M2_MSCR_CCDS_POS                                3
  2168.         #define TIM_M2_MSCR_CCDS_MASK                                (0x07U<<TIM_M2_MSCR_CCDS_POS)
  2169.         #define TIM_M2_MSCR_CCDS                                        TIM_M2_MSCR_CCDS_MASK

  2170.         //===主模式输出选择
  2171.         #define TIM_M2_MSCR_MMS_POS                                        0
  2172.         #define TIM_M2_MSCR_MMS_MASK                                (0x07UL<<TIM_M2_MSCR_MMS_POS)
  2173.         #define TIM_M2_MSCR_MMS                                                TIM_M2_MSCR_MMS_MASK

  2174.         #define TIM_M2_MSCR_MMS_UG                                        (0x00U<<TIM_M2_MSCR_MMS_POS)
  2175.         #define TIM_M2_MSCR_MMS_EN                                        (0x01U<<TIM_M2_MSCR_MMS_POS)
  2176.         #define TIM_M2_MSCR_MMS_UEV                                        (0x02U<<TIM_M2_MSCR_MMS_POS)
  2177.         #define TIM_M2_MSCR_MMS_CMPSO                                (0x03U<<TIM_M2_MSCR_MMS_POS)
  2178.         #define TIM_M2_MSCR_MMS_OCREF0A                                (0x04U<<TIM_M2_MSCR_MMS_POS)
  2179.         #define TIM_M2_MSCR_MMS_OCREF1A                                (0x05U<<TIM_M2_MSCR_MMS_POS)
  2180.         #define TIM_M2_MSCR_MMS_OCREF2A                                (0x06U<<TIM_M2_MSCR_MMS_POS)
  2181.         #define TIM_M2_MSCR_MMS_OCREF0B                                (0x07U<<TIM_M2_MSCR_MMS_POS)        

  2182.         //===滤波控制寄存器
  2183.         //===ETR输入相位
  2184.         #define TIM_M2_FLTR_ETP_POS                                        31
  2185.         #define TIM_M2_FLTR_ETP_MASK                                (0x01UL<<TIM_M2_FLTR_ETP_POS)
  2186.         #define TIM_M2_FLTR_ETP                                                TIM_M2_FLTR_ETP_MASK
  2187.         
  2188.         //===ETR滤波控制
  2189.         #define TIM_M2_FLTR_ETR_POS                                        28
  2190.         #define TIM_M2_FLTR_ETR_MASK                                (0x07UL<<TIM_M2_FLTR_ETR_POS)
  2191.         #define TIM_M2_FLTR_ETR                                                TIM_M2_FLTR_ETR_MASK

  2192.         #define TIM_M2_FLTR_ETR_NONE                                (0x00U<<TIM_M2_FLTR_ETR_POS)
  2193.         #define TIM_M2_FLTR_ETR_PCLK_DIV1                        (0x04U<<TIM_M2_FLTR_ETR_POS)
  2194.         #define TIM_M2_FLTR_ETR_PCLK_DIV4                        (0x05U<<TIM_M2_FLTR_ETR_POS)
  2195.         #define TIM_M2_FLTR_ETR_PCLK_DIV16                        (0x06U<<TIM_M2_FLTR_ETR_POS)
  2196.         #define TIM_M2_FLTR_ETR_PCLK_DIV64                        (0x07U<<TIM_M2_FLTR_ETR_POS)

  2197.         //===刹车BK输入相位选择
  2198.         #define TIM_M2_FLTR_BKP_POS                                        27
  2199.         #define TIM_M2_FLTR_BKP_MASK                                (0x01U<<TIM_M2_FLTR_BKP_POS)
  2200.         #define TIM_M2_FLTR_BKP                                                TIM_M2_FLTR_BKP_MASK

  2201.         //===刹车输入滤波控制
  2202.         #define TIM_M2_FLTR_BKR_POS                                        24
  2203.         #define TIM_M2_FLTR_BKR_MASK                                (0x07UL<<TIM_M2_FLTR_BKR_POS)
  2204.         #define TIM_M2_FLTR_BKR                                                TIM_M2_FLTR_BKR_MASK

  2205.         #define TIM_M2_FLTR_BKR_NONE                                (0x00UL<<TIM_M2_FLTR_BKR_POS)
  2206.         #define TIM_M2_FLTR_BKR_PCLK_DIV1                        (0x04UL<<TIM_M2_FLTR_BKR_POS)
  2207.         #define TIM_M2_FLTR_BKR_PCLK_DIV4                        (0x05UL<<TIM_M2_FLTR_BKR_POS)
  2208.         #define TIM_M2_FLTR_BKR_PCLK_DIV16                        (0x06UL<<TIM_M2_FLTR_BKR_POS)
  2209.         #define TIM_M2_FLTR_BKR_PCLK_DIV64                        (0x07UL<<TIM_M2_FLTR_BKR_POS)

  2210.         //===CH2B比较输出相位控制
  2211.         #define TIM_M2_FLTR_CCPB2_POS                                23
  2212.         #define TIM_M2_FLTR_CCPB2_MASK                                (0x01UL<<TIM_M2_FLTR_CCPB2_POS)
  2213.         #define TIM_M2_FLTR_CCPB2                                        TIM_M2_FLTR_CCPB2_MASK
  2214.         
  2215.         //==CH2B比较输出控制
  2216.         #define TIM_M2_FLTR_OCMB2_POS                                20
  2217.         #define TIM_M2_FLTR_OCMB2_MASK                                (0x07UL<<TIM_M2_FLTR_OCMB2_POS)
  2218.         #define TIM_M2_FLTR_OCMB2                                        TIM_M2_FLTR_OCMB2_MASK

  2219.         #define TIM_M2_FLTR_OCMB2_FORCE_LOW                        (0x00UL<<TIM_M2_FLTR_OCMB2_POS)
  2220.         #define TIM_M2_FLTR_OCMB2_FORCE_HIGH                (0x01UL<<TIM_M2_FLTR_OCMB2_POS)
  2221.         #define TIM_M2_FLTR_OCMB2_COMP_LOW                        (0x02UL<<TIM_M2_FLTR_OCMB2_POS)
  2222.         #define TIM_M2_FLTR_OCMB2_COMP_HIGH                        (0x03UL<<TIM_M2_FLTR_OCMB2_POS)
  2223.         #define TIM_M2_FLTR_OCMB2_COMP_TOGGLE                (0x04UL<<TIM_M2_FLTR_OCMB2_POS)
  2224.         #define TIM_M2_FLTR_OCMB2_COMP_KEEP_HIGH        (0x05UL<<TIM_M2_FLTR_OCMB2_POS)
  2225.         #define TIM_M2_FLTR_OCMB2_PWM_MODE1                        (0x06UL<<TIM_M2_FLTR_OCMB2_POS)
  2226.         #define TIM_M2_FLTR_OCMB2_PWM_MODE2                        (0x07UL<<TIM_M2_FLTR_OCMB2_POS)
  2227.         
  2228.         //==CH2B捕获输入滤波控制
  2229.         #define TIM_M2_FLTR_CH2B_POS                                20
  2230.         #define TIM_M2_FLTR_CH2B_MASK                                (0x07UL<<TIM_M2_FLTR_CH2B_POS)
  2231.         #define TIM_M2_FLTR_CH2B                                        TIM_M2_FLTR_CH2B_MASK

  2232.         #define TIM_M2_FLTR_CH2B_NONE                                (0x00U<<TIM_M2_FLTR_CH2B_POS)
  2233.         #define TIM_M2_FLTR_CH2B_PCLK_DIV1                        (0x04U<<TIM_M2_FLTR_CH2B_POS)
  2234.         #define TIM_M2_FLTR_CH2B_PCLK_DIV4                        (0x05U<<TIM_M2_FLTR_CH2B_POS)
  2235.         #define TIM_M2_FLTR_CH2B_PCLK_DIV16                        (0x06U<<TIM_M2_FLTR_CH2B_POS)
  2236.         #define TIM_M2_FLTR_CH2B_PCLK_DIV64                        (0x07U<<TIM_M2_FLTR_CH2B_POS)

  2237.         //===CH2A比较输出相位控制
  2238.         #define TIM_M2_FLTR_CCPA2_POS                                19
  2239.         #define TIM_M2_FLTR_CCPA2_MASK                                (0x01UL<<TIM_M2_FLTR_CCPA2_POS)
  2240.         #define TIM_M2_FLTR_CCPA2                                        TIM_M2_FLTR_CCPA2_MASK

  2241.         //==CH2A比较输出控制
  2242.         #define TIM_M2_FLTR_OCMA2_POS                                16
  2243.         #define TIM_M2_FLTR_OCMA2_MASK                                (0x07UL<<TIM_M2_FLTR_OCMA2_POS)
  2244.         #define TIM_M2_FLTR_OCMA2                                        TIM_M2_FLTR_OCMA2_MASK

  2245.         #define TIM_M2_FLTR_OCMA2_FORCE_LOW                        (0x00UL<<TIM_M2_FLTR_OCMA2_POS)
  2246.         #define TIM_M2_FLTR_OCMA2_FORCE_HIGH                (0x01UL<<TIM_M2_FLTR_OCMA2_POS)
  2247.         #define TIM_M2_FLTR_OCMA2_COMP_LOW                        (0x02UL<<TIM_M2_FLTR_OCMA2_POS)
  2248.         #define TIM_M2_FLTR_OCMA2_COMP_HIGH                        (0x03UL<<TIM_M2_FLTR_OCMA2_POS)
  2249.         #define TIM_M2_FLTR_OCMA2_COMP_TOGGLE                (0x04UL<<TIM_M2_FLTR_OCMA2_POS)
  2250.         #define TIM_M2_FLTR_OCMA2_COMP_KEEP_HIGH        (0x05UL<<TIM_M2_FLTR_OCMA2_POS)
  2251.         #define TIM_M2_FLTR_OCMA2_PWM_MODE1                        (0x06UL<<TIM_M2_FLTR_OCMA2_POS)
  2252.         #define TIM_M2_FLTR_OCMA2_PWM_MODE2                        (0x07UL<<TIM_M2_FLTR_OCMA2_POS)
  2253.         
  2254.         //==CH2A捕获输入滤波控制
  2255.         #define TIM_M2_FLTR_CH2A_POS                                16
  2256.         #define TIM_M2_FLTR_CH2A_MASK                                (0x07UL<<TIM_M2_FLTR_CH2A_POS)
  2257.         #define TIM_M2_FLTR_CH2A                                        TIM_M2_FLTR_CH2A_MASK

  2258.         #define TIM_M2_FLTR_CH2A_NONE                                (0x00UL<<TIM_M2_FLTR_CH2A_POS)
  2259.         #define TIM_M2_FLTR_CH2A_PCLK_DIV1                        (0x04UL<<TIM_M2_FLTR_CH2A_POS)
  2260.         #define TIM_M2_FLTR_CH2A_PCLK_DIV4                        (0x05UL<<TIM_M2_FLTR_CH2A_POS)
  2261.         #define TIM_M2_FLTR_CH2A_PCLK_DIV16                        (0x06UL<<TIM_M2_FLTR_CH2A_POS)
  2262.         #define TIM_M2_FLTR_CH2A_PCLK_DIV64                        (0x07UL<<TIM_M2_FLTR_CH2A_POS)

  2263.         //===CH1B比较输出相位控制
  2264.         #define TIM_M2_FLTR_CCPB1_POS                                15
  2265.         #define TIM_M2_FLTR_CCPB1_MASK                                (0x01UL<<TIM_M2_FLTR_CCPB1_POS)
  2266.         #define TIM_M2_FLTR_CCPB1                                        TIM_M2_FLTR_CCPB1_MASK
  2267.                
  2268.         //==CH1B比较输出控制
  2269.         #define TIM_M2_FLTR_OCMB1_POS                                12
  2270.         #define TIM_M2_FLTR_OCMB1_MASK                                (0x07UL<<TIM_M2_FLTR_OCMB1_POS)
  2271.         #define TIM_M2_FLTR_OCMB1                                        TIM_M2_FLTR_OCMB1_MASK

  2272.         #define TIM_M2_FLTR_OCMB1_FORCE_LOW                        (0x00UL<<TIM_M2_FLTR_OCMB1_POS)
  2273.         #define TIM_M2_FLTR_OCMB1_FORCE_HIGH                (0x01UL<<TIM_M2_FLTR_OCMB1_POS)
  2274.         #define TIM_M2_FLTR_OCMB1_COMP_LOW                        (0x02UL<<TIM_M2_FLTR_OCMB1_POS)
  2275.         #define TIM_M2_FLTR_OCMB1_COMP_HIGH                        (0x03UL<<TIM_M2_FLTR_OCMB1_POS)
  2276.         #define TIM_M2_FLTR_OCMB1_COMP_TOGGLE                (0x04UL<<TIM_M2_FLTR_OCMB1_POS)
  2277.         #define TIM_M2_FLTR_OCMB1_COMP_KEEP_HIGH        (0x05UL<<TIM_M2_FLTR_OCMB1_POS)
  2278.         #define TIM_M2_FLTR_OCMB1_PWM_MODE1                        (0x06UL<<TIM_M2_FLTR_OCMB1_POS)
  2279.         #define TIM_M2_FLTR_OCMB1_PWM_MODE2                        (0x07UL<<TIM_M2_FLTR_OCMB1_POS)        

  2280.         //==CH1B捕获输入滤波控制
  2281.         #define TIM_M2_FLTR_CH1B_POS                                12
  2282.         #define TIM_M2_FLTR_CH1B_MASK                                (0x07UL<<TIM_M2_FLTR_CH1B_POS)
  2283.         #define TIM_M2_FLTR_CH1B                                        TIM_M2_FLTR_CH1B_MASK

  2284.         #define TIM_M2_FLTR_CH1B_NONE                                (0x00UL<<TIM_M2_FLTR_CH1B_POS)
  2285.         #define TIM_M2_FLTR_CH1B_PCLK_DIV1                        (0x04UL<<TIM_M2_FLTR_CH1B_POS)
  2286.         #define TIM_M2_FLTR_CH1B_PCLK_DIV4                        (0x05UL<<TIM_M2_FLTR_CH1B_POS)
  2287.         #define TIM_M2_FLTR_CH1B_PCLK_DIV16                        (0x06UL<<TIM_M2_FLTR_CH1B_POS)
  2288.         #define TIM_M2_FLTR_CH1B_PCLK_DIV64                        (0x07UL<<TIM_M2_FLTR_CH1B_POS)

  2289.         //===CH1A比较输出相位控制
  2290.         #define TIM_M2_FLTR_CCPA1_POS                                11
  2291.         #define TIM_M2_FLTR_CCPA1_MASK                                (0x01UL<<TIM_M2_FLTR_CCPA1_POS)
  2292.         #define TIM_M2_FLTR_CCPA1                                        TIM_M2_FLTR_CCPA1_MASK

  2293.         //==CH1A比较输出控制
  2294.         #define TIM_M2_FLTR_OCMA1_POS                                8
  2295.         #define TIM_M2_FLTR_OCMA1_MASK                                (0x07UL<<TIM_M2_FLTR_OCMA1_POS)
  2296.         #define TIM_M2_FLTR_OCMA1                                        TIM_M2_FLTR_OCMA1_MASK
  2297.         
  2298.         #define TIM_M2_FLTR_OCMA1_FORCE_LOW                        (0x00UL<<TIM_M2_FLTR_OCMA1_POS)
  2299.         #define TIM_M2_FLTR_OCMA1_FORCE_HIGH                (0x01UL<<TIM_M2_FLTR_OCMA1_POS)
  2300.         #define TIM_M2_FLTR_OCMA1_COMP_LOW                        (0x02UL<<TIM_M2_FLTR_OCMA1_POS)
  2301.         #define TIM_M2_FLTR_OCMA1_COMP_HIGH                        (0x03UL<<TIM_M2_FLTR_OCMA1_POS)
  2302.         #define TIM_M2_FLTR_OCMA1_COMP_TOGGLE                (0x04UL<<TIM_M2_FLTR_OCMA1_POS)
  2303.         #define TIM_M2_FLTR_OCMA1_COMP_KEEP_HIGH        (0x05UL<<TIM_M2_FLTR_OCMA1_POS)
  2304.         #define TIM_M2_FLTR_OCMA1_PWM_MODE1                        (0x06UL<<TIM_M2_FLTR_OCMA1_POS)
  2305.         #define TIM_M2_FLTR_OCMA1_PWM_MODE2                        (0x07UL<<TIM_M2_FLTR_OCMA1_POS)        
  2306.         
  2307.         //==CH1A捕获输入滤波控制
  2308.         #define TIM_M2_FLTR_CH1A_POS                                8
  2309.         #define TIM_M2_FLTR_CH1A_MASK                                (0x07UL<<TIM_M2_FLTR_CH1A_POS)
  2310.         #define TIM_M2_FLTR_CH1A                                        TIM_M2_FLTR_CH1A_MASK

  2311.         #define TIM_M2_FLTR_CH1A_NONE                                (0x00UL<<TIM_M2_FLTR_CH1A_POS)
  2312.         #define TIM_M2_FLTR_CH1A_PCLK_DIV1                        (0x04UL<<TIM_M2_FLTR_CH1A_POS)
  2313.         #define TIM_M2_FLTR_CH1A_PCLK_DIV4                        (0x05UL<<TIM_M2_FLTR_CH1A_POS)
  2314.         #define TIM_M2_FLTR_CH1A_PCLK_DIV16                        (0x06UL<<TIM_M2_FLTR_CH1A_POS)
  2315.         #define TIM_M2_FLTR_CH1A_PCLK_DIV64                        (0x07UL<<TIM_M2_FLTR_CH1A_POS)

  2316.         //===CH0B比较输出相位控制
  2317.         #define TIM_M2_FLTR_CCPB0_POS                                7
  2318.         #define TIM_M2_FLTR_CCPB0_MASK                                (0x01UL<<TIM_M2_FLTR_CCPB0_POS)
  2319.         #define TIM_M2_FLTR_CCPB0                                        TIM_M2_FLTR_CCPB0_MASK

  2320.         //==CH0B捕获输入滤波控制
  2321.         #define TIM_M2_FLTR_OCMB0_POS                                4
  2322.         #define TIM_M2_FLTR_OCMB0_MASK                                (0x07UL<<TIM_M2_FLTR_OCMB0_POS)
  2323.         #define TIM_M2_FLTR_OCMB0                                        TIM_M2_FLTR_OCMB0_MASK

  2324.         #define TIM_M2_FLTR_OCMB0_FORCE_LOW                        (0x00UL<<TIM_M2_FLTR_OCMB0_POS)
  2325.         #define TIM_M2_FLTR_OCMB0_FORCE_HIGH                (0x01UL<<TIM_M2_FLTR_OCMB0_POS)
  2326.         #define TIM_M2_FLTR_OCMB0_COMP_LOW                        (0x02UL<<TIM_M2_FLTR_OCMB0_POS)
  2327.         #define TIM_M2_FLTR_OCMB0_COMP_HIGH                        (0x03UL<<TIM_M2_FLTR_OCMB0_POS)
  2328.         #define TIM_M2_FLTR_OCMB0_COMP_TOGGLE                (0x04UL<<TIM_M2_FLTR_OCMB0_POS)
  2329.         #define TIM_M2_FLTR_OCMB0_COMP_KEEP_HIGH        (0x05UL<<TIM_M2_FLTR_OCMB0_POS)
  2330.         #define TIM_M2_FLTR_OCMB0_PWM_MODE1                        (0x06UL<<TIM_M2_FLTR_OCMB0_POS)
  2331.         #define TIM_M2_FLTR_OCMB0_PWM_MODE2                        (0x07UL<<TIM_M2_FLTR_OCMB0_POS)        
  2332.         
  2333.         //==CH0B捕获输入滤波控制
  2334.         #define TIM_M2_FLTR_CH0B_POS                                4
  2335.         #define TIM_M2_FLTR_CH0B_MASK                                (0x07UL<<TIM_M2_FLTR_CH0B_POS)
  2336.         #define TIM_M2_FLTR_CH0B                                        TIM_M2_FLTR_CH0B_MASK

  2337.         #define TIM_M2_FLTR_CH0B_NONE                                (0x00UL<<TIM_M2_FLTR_CH0B_POS)
  2338.         #define TIM_M2_FLTR_CH0B_PCLK_DIV1                        (0x04UL<<TIM_M2_FLTR_CH0B_POS)
  2339.         #define TIM_M2_FLTR_CH0B_PCLK_DIV4                        (0x05UL<<TIM_M2_FLTR_CH0B_POS)
  2340.         #define TIM_M2_FLTR_CH0B_PCLK_DIV16                        (0x06UL<<TIM_M2_FLTR_CH0B_POS)
  2341.         #define TIM_M2_FLTR_CH0B_PCLK_DIV64                        (0x07UL<<TIM_M2_FLTR_CH0B_POS)

  2342.         //===CH0A比较输出相位控制
  2343.         #define TIM_M2_FLTR_CCPA0_POS                                3
  2344.         #define TIM_M2_FLTR_CCPA0_MASK                                (0x01UL<<TIM_M2_FLTR_CCPA0_POS)
  2345.         #define TIM_M2_FLTR_CCPA0                                        TIM_M2_FLTR_CCPA0_MASK

  2346.         //==CH0A比较输出控制
  2347.         #define TIM_M2_FLTR_OCMA0_POS                                0
  2348.         #define TIM_M2_FLTR_OCMA0_MASK                                (0x07UL<<TIM_M2_FLTR_OCMA0_POS)
  2349.         #define TIM_M2_FLTR_OCMA0                                        TIM_M2_FLTR_OCMA0_MASK

  2350.         #define TIM_M2_FLTR_OCMA0_FORCE_LOW                        (0x00UL<<TIM_M2_FLTR_OCMA0_POS)
  2351.         #define TIM_M2_FLTR_OCMA0_FORCE_HIGH                (0x01UL<<TIM_M2_FLTR_OCMA0_POS)
  2352.         #define TIM_M2_FLTR_OCMA0_COMP_LOW                        (0x02UL<<TIM_M2_FLTR_OCMA0_POS)
  2353.         #define TIM_M2_FLTR_OCMA0_COMP_HIGH                        (0x03UL<<TIM_M2_FLTR_OCMA0_POS)
  2354.         #define TIM_M2_FLTR_OCMA0_COMP_TOGGLE                (0x04UL<<TIM_M2_FLTR_OCMA0_POS)
  2355.         #define TIM_M2_FLTR_OCMA0_COMP_KEEP_HIGH        (0x05UL<<TIM_M2_FLTR_OCMA0_POS)
  2356.         #define TIM_M2_FLTR_OCMA0_PWM_MODE1                        (0x06UL<<TIM_M2_FLTR_OCMA0_POS)
  2357.         #define TIM_M2_FLTR_OCMA0_PWM_MODE2                        (0x07UL<<TIM_M2_FLTR_OCMA0_POS)        
  2358.         
  2359.         //==CH0A捕获输入滤波控制
  2360.         #define TIM_M2_FLTR_CH0A_POS                                0
  2361.         #define TIM_M2_FLTR_CH0A_MASK                                (0x07UL<<TIM_M2_FLTR_CH0A_POS)
  2362.         #define TIM_M2_FLTR_CH0A                                        TIM_M2_FLTR_CH0A_MASK

  2363.         #define TIM_M2_FLTR_CH0A_NONE                                (0x00UL<<TIM_M2_FLTR_CH0A_POS)
  2364.         #define TIM_M2_FLTR_CH0A_PCLK_DIV1                        (0x04UL<<TIM_M2_FLTR_CH0A_POS)
  2365.         #define TIM_M2_FLTR_CH0A_PCLK_DIV4                        (0x05UL<<TIM_M2_FLTR_CH0A_POS)
  2366.         #define TIM_M2_FLTR_CH0A_PCLK_DIV16                        (0x06UL<<TIM_M2_FLTR_CH0A_POS)
  2367.         #define TIM_M2_FLTR_CH0A_PCLK_DIV64                        (0x07UL<<TIM_M2_FLTR_CH0A_POS)
  2368.         
  2369.         //===ADC触发控制寄存器
  2370.         #define TIM_M2_ADTR_EN_POS                                        7
  2371.         #define TIM_M2_ADTR_EN_MASK                                        (0x01UL<<TIM_M2_ADTR_EN_POS)
  2372.         #define TIM_M2_ADTR_EN                                                TIM_M2_ADTR_EN_MASK

  2373.         //===CH2B比较匹配触发adc
  2374.         #define TIM_M2_ADTR_CMB2EN_POS                                6
  2375.         #define TIM_M2_ADTR_CMB2EN_MASK                                (0x01UL<<TIM_M2_ADTR_CMB2EN_POS)
  2376.         #define TIM_M2_ADTR_CMB2EN                                        TIM_M2_ADTR_CMB2EN_MASK

  2377.         //===CH1B比较匹配触发adc
  2378.         #define TIM_M2_ADTR_CMB1EN_POS                                5
  2379.         #define TIM_M2_ADTR_CMB1EN_MASK                                (0x01UL<<TIM_M2_ADTR_CMB1EN_POS)
  2380.         #define TIM_M2_ADTR_CMB1EN                                        TIM_M2_ADTR_CMB1EN_MASK

  2381.         //===CH0B比较匹配触发adc
  2382.         #define TIM_M2_ADTR_CMB0EN_POS                                4
  2383.         #define TIM_M2_ADTR_CMB0EN_MASK                                (0x01UL<<TIM_M2_ADTR_CMB0EN_POS)
  2384.         #define TIM_M2_ADTR_CMB0EN                                        TIM_M2_ADTR_CMB0EN_MASK

  2385.         //===CH2A比较匹配触发adc
  2386.         #define TIM_M2_ADTR_CMA2EN_POS                                3
  2387.         #define TIM_M2_ADTR_CMA2EN_MASK                                (0x01UL<<TIM_M2_ADTR_CMA2EN_POS)
  2388.         #define TIM_M2_ADTR_CMA2EN                                        TIM_M2_ADTR_CMA2EN_MASK
  2389.                         
  2390.         //===CH0A比较匹配触发adc
  2391.         #define TIM_M2_ADTR_CMA1EN_POS                                2
  2392.         #define TIM_M2_ADTR_CMA1EN_MASK                                (0x01UL<<TIM_M2_ADTR_CMA1EN_POS)
  2393.         #define TIM_M2_ADTR_CMA1EN                                        TIM_M2_ADTR_CMA1EN_MASK
  2394.                
  2395.         //===CH0A比较匹配触发adc
  2396.         #define TIM_M2_ADTR_CMA0EN_POS                                1
  2397.         #define TIM_M2_ADTR_CMA0EN_MASK                                (0x01UL<<TIM_M2_ADTR_CMA0EN_POS)
  2398.         #define TIM_M2_ADTR_CMA0EN                                        TIM_M2_ADTR_CMA0EN_MASK

  2399.         //===事件更新触发adc
  2400.         #define TIM_M2_ADTR_UEN_POS                                        0
  2401.         #define TIM_M2_ADTR_UEN_MASK                                (0x01UL<<TIM_M2_ADTR_UEN_POS)
  2402.         #define TIM_M2_ADTR_UEN                                                TIM_M2_ADTR_UEN_MASK

  2403.         //===通道0控制寄存器
  2404.         //===捕获比较B软件触发
  2405.         #define TIM_M2_CRCH0_CCGB_POS                                15
  2406.         #define TIM_M2_CRCH0_CCGB_MASK                                (0x01UL<<TIM_M2_CRCH0_CCGB_POS)
  2407.         #define TIM_M2_CRCH0_CCGB                                        TIM_M2_CRCH0_CCGB_MASK

  2408.         //===捕获比较A软件触发
  2409.         #define TIM_M2_CRCH0_CCGA_POS                                14
  2410.         #define TIM_M2_CRCH0_CCGA_MASK                                (0x01UL<<TIM_M2_CRCH0_CCGA_POS)
  2411.         #define TIM_M2_CRCH0_CCGA                                        TIM_M2_CRCH0_CCGA_MASK
  2412.         
  2413.         //===B比较模式中断
  2414.         #define TIM_M2_CRCH0_CISB_POS                                13
  2415.         #define TIM_M2_CRCH0_CISB_MASK                                (0x03UL<<TIM_M2_CRCH0_CISB_POS)
  2416.         #define TIM_M2_CRCH0_CISB                                        TIM_M2_CRCH0_CISB_MASK

  2417.         #define TIM_M2_CRCH0_CISB_EDGE_NONE                        (0x00UL<<TIM_M2_CRCH0_CISB_POS)
  2418.         #define TIM_M2_CRCH0_CISB_EDGE_RISE                        (0x01UL<<TIM_M2_CRCH0_CISB_POS)
  2419.         #define TIM_M2_CRCH0_CISB_EDGE_FAIL                        (0x02UL<<TIM_M2_CRCH0_CISB_POS)
  2420.         #define TIM_M2_CRCH0_CISB_EDGE_ALL                        (0x03UL<<TIM_M2_CRCH0_CISB_POS)

  2421.         //===B捕获比较触发DMA使能
  2422.         #define TIM_M2_CRCH0_CDMABEN_POS                        11
  2423.         #define TIM_M2_CRCH0_CDMABEN_MASK                        (0x01UL<<TIM_M2_CRCH0_CDMABEN_POS)
  2424.         #define TIM_M2_CRCH0_CDMABEN                                TIM_M2_CRCH0_CDMABEN_MASK

  2425.         //===A捕获比较触发DMA使能
  2426.         #define TIM_M2_CRCH0_CDMAAEN_POS                        10
  2427.         #define TIM_M2_CRCH0_CDMAAEN_MASK                        (0x01UL<<TIM_M2_CRCH0_CDMAAEN_POS)
  2428.         #define TIM_M2_CRCH0_CDMAAEN                                TIM_M2_CRCH0_CDMAAEN_MASK

  2429.         //===B捕获比较触发中断
  2430.         #define TIM_M2_CRCH0_CIEB_POS                                9
  2431.         #define TIM_M2_CRCH0_CIEB_MASK                                (0x01UL<<TIM_M2_CRCH0_CIEB_POS)
  2432.         #define TIM_M2_CRCH0_CIEB                                        TIM_M2_CRCH0_CIEB_MASK

  2433.         //===B捕获比较触发中断
  2434.         #define TIM_M2_CRCH0_CIEA_POS                                8
  2435.         #define TIM_M2_CRCH0_CIEA_MASK                                (0x01UL<<TIM_M2_CRCH0_CIEA_POS)
  2436.         #define TIM_M2_CRCH0_CIEA                                        TIM_M2_CRCH0_CIEA_MASK
  2437.         
  2438.         //===比较功能,B比较缓存使能控制
  2439.         #define TIM_M2_CRCH0_BUFEB_POS                                7
  2440.         #define TIM_M2_CRCH0_BUFEB_MASK                                (0x01UL<<TIM_M2_CRCH0_BUFEB_POS)
  2441.         #define TIM_M2_CRCH0_BUFEB                                        TIM_M2_CRCH0_BUFEB_MASK

  2442.         //===比较功能,B比较缓存使能控制
  2443.         #define TIM_M2_CRCH0_BUFEA_POS                                6
  2444.         #define TIM_M2_CRCH0_BUFEA_MASK                                (0x01UL<<TIM_M2_CRCH0_BUFEA_POS)
  2445.         #define TIM_M2_CRCH0_BUFEA                                        TIM_M2_CRCH0_BUFEA_MASK

  2446.         #define TIM_M2_CRCH0_CSB_POS                                5
  2447.         #define TIM_M2_CRCH0_CSB_MASK                                (0x01UL<<TIM_M2_CRCH0_CSB_POS)
  2448.         #define TIM_M2_CRCH0_CSB                                        TIM_M2_CRCH0_CSB_MASK

  2449.         #define TIM_M2_CRCH0_CSA_POS                                4
  2450.         #define TIM_M2_CRCH0_CSA_MASK                                (0x01UL<<TIM_M2_CRCH0_CSA_POS)
  2451.         #define TIM_M2_CRCH0_CSA                                        TIM_M2_CRCH0_CSA_MASK

  2452.         #define TIM_M2_CRCH0_CFB_POS                                3
  2453.         #define TIM_M2_CRCH0_CFB_MASK                                (0x01UL<<TIM_M2_CRCH0_CFB_POS)
  2454.         #define TIM_M2_CRCH0_CFB                                        TIM_M2_CRCH0_CFB_MASK

  2455.         #define TIM_M2_CRCH0_CRB_POS                                2
  2456.         #define TIM_M2_CRCH0_CRB_MASK                                (0x01UL<<TIM_M2_CRCH0_CRB_POS)
  2457.         #define TIM_M2_CRCH0_CRB                                        TIM_M2_CRCH0_CRB_MASK

  2458.         //===B通道比较输出刹车电平控制
  2459.         #define TIM_M2_CRCH0_BKSB_POS                                2
  2460.         #define TIM_M2_CRCH0_BKSB_MASK                                (0x03UL<<TIM_M2_CRCH0_BKSB_POS)
  2461.         #define TIM_M2_CRCH0_BKSB                                        TIM_M2_CRCH0_BKSB_MASK

  2462.         #define TIM_M2_CRCH0_BKSB_HZ                                (0x00UL<<TIM_M2_CRCH0_BKSB_POS)
  2463.         #define TIM_M2_CRCH0_BKSB_NONE                                (0x01UL<<TIM_M2_CRCH0_BKSB_POS)
  2464.         #define TIM_M2_CRCH0_BKSB_LOW                                (0x02UL<<TIM_M2_CRCH0_BKSB_POS)
  2465.         #define TIM_M2_CRCH0_BKSB_HIGHT                                (0x03UL<<TIM_M2_CRCH0_BKSB_POS)

  2466.         #define TIM_M2_CRCH0_CFA_POS                                1
  2467.         #define TIM_M2_CRCH0_CFA_MASK                                (0x01UL<<TIM_M2_CRCH0_CFA_POS)
  2468.         #define TIM_M2_CRCH0_CFA                                        TIM_M2_CRCH0_CFA_MASK

  2469.         #define TIM_M2_CRCH0_CRA_POS                                0
  2470.         #define TIM_M2_CRCH0_CRA_MASK                                (0x01UL<<TIM_M2_CRCH0_CRA_POS)
  2471.         #define TIM_M2_CRCH0_CRA                                        TIM_M2_CRCH0_CRA_MASK

  2472.         #define TIM_M2_CRCH0_BKSA_POS                                0
  2473.         #define TIM_M2_CRCH0_BKSA_MASK                                (0x03UL<<TIM_M2_CRCH0_BKSA_POS)
  2474.         #define TIM_M2_CRCH0_BKSA                                        TIM_M2_CRCH0_BKSA_MASK

  2475.         #define TIM_M2_CRCH0_BKSA_HZ                                (0x00UL<<TIM_M2_CRCH0_BKSA_POS)
  2476.         #define TIM_M2_CRCH0_BKSA_NONE                                (0x01UL<<TIM_M2_CRCH0_BKSA_POS)
  2477.         #define TIM_M2_CRCH0_BKSA_LOW                                (0x02UL<<TIM_M2_CRCH0_BKSA_POS)
  2478.         #define TIM_M2_CRCH0_BKSA_HIGHT                                (0x03UL<<TIM_M2_CRCH0_BKSA_POS)

  2479.         //===通道1控制寄存器
  2480.         //===捕获比较B软件触发
  2481.         #define TIM_M2_CRCH1_CCGB_POS                                15
  2482.         #define TIM_M2_CRCH1_CCGB_MASK                                (0x01UL<<TIM_M2_CRCH1_CCGB_POS)
  2483.         #define TIM_M2_CRCH1_CCGB                                        TIM_M2_CRCH1_CCGB_MASK

  2484.         //===捕获比较A软件触发
  2485.         #define TIM_M2_CRCH1_CCGA_POS                                14
  2486.         #define TIM_M2_CRCH1_CCGA_MASK                                (0x01UL<<TIM_M2_CRCH1_CCGA_POS)
  2487.         #define TIM_M2_CRCH1_CCGA                                        TIM_M2_CRCH1_CCGA_MASK
  2488.         
  2489.         //===B比较模式中断
  2490.         #define TIM_M2_CRCH1_CISB_POS                                13
  2491.         #define TIM_M2_CRCH1_CISB_MASK                                (0x03UL<<TIM_M2_CRCH1_CISB_POS)
  2492.         #define TIM_M2_CRCH1_CISB                                        TIM_M2_CRCH1_CISB_MASK

  2493.         #define TIM_M2_CRCH1_CISB_EDGE_NONE                        (0x00UL<<TIM_M2_CRCH1_CISB_POS)
  2494.         #define TIM_M2_CRCH1_CISB_EDGE_RISE                        (0x01UL<<TIM_M2_CRCH1_CISB_POS)
  2495.         #define TIM_M2_CRCH1_CISB_EDGE_FAIL                        (0x02UL<<TIM_M2_CRCH1_CISB_POS)
  2496.         #define TIM_M2_CRCH1_CISB_EDGE_ALL                        (0x03UL<<TIM_M2_CRCH1_CISB_POS)

  2497.         //===B捕获比较触发DMA使能
  2498.         #define TIM_M2_CRCH1_CDMABEN_POS                        11
  2499.         #define TIM_M2_CRCH1_CDMABEN_MASK                        (0x01UL<<TIM_M2_CRCH1_CDMABEN_POS)
  2500.         #define TIM_M2_CRCH1_CDMABEN                                TIM_M2_CRCH1_CDMABEN_MASK

  2501.         //===A捕获比较触发DMA使能
  2502.         #define TIM_M2_CRCH1_CDMAAEN_POS                        10
  2503.         #define TIM_M2_CRCH1_CDMAAEN_MASK                        (0x01UL<<TIM_M2_CRCH1_CDMAAEN_POS)
  2504.         #define TIM_M2_CRCH1_CDMAAEN                                TIM_M2_CRCH1_CDMAAEN_MASK

  2505.         //===B捕获比较触发中断
  2506.         #define TIM_M2_CRCH1_CIEB_POS                                9
  2507.         #define TIM_M2_CRCH1_CIEB_MASK                                (0x01UL<<TIM_M2_CRCH1_CIEB_POS)
  2508.         #define TIM_M2_CRCH1_CIEB                                        TIM_M2_CRCH1_CIEB_MASK

  2509.         //===B捕获比较触发中断
  2510.         #define TIM_M2_CRCH1_CIEA_POS                                8
  2511.         #define TIM_M2_CRCH1_CIEA_MASK                                (0x01UL<<TIM_M2_CRCH1_CIEA_POS)
  2512.         #define TIM_M2_CRCH1_CIEA                                        TIM_M2_CRCH1_CIEA_MASK
  2513.         
  2514.         //===比较功能,B比较缓存使能控制
  2515.         #define TIM_M2_CRCH1_BUFEB_POS                                7
  2516.         #define TIM_M2_CRCH1_BUFEB_MASK                                (0x01UL<<TIM_M2_CRCH1_BUFEB_POS)
  2517.         #define TIM_M2_CRCH1_BUFEB                                        TIM_M2_CRCH1_BUFEB_MASK

  2518.         //===比较功能,B比较缓存使能控制
  2519.         #define TIM_M2_CRCH1_BUFEA_POS                                6
  2520.         #define TIM_M2_CRCH1_BUFEA_MASK                                (0x01UL<<TIM_M2_CRCH1_BUFEA_POS)
  2521.         #define TIM_M2_CRCH1_BUFEA                                        TIM_M2_CRCH1_BUFEA_MASK

  2522.         #define TIM_M2_CRCH1_CSB_POS                                5
  2523.         #define TIM_M2_CRCH1_CSB_MASK                                (0x01UL<<TIM_M2_CRCH1_CSB_POS)
  2524.         #define TIM_M2_CRCH1_CSB                                        TIM_M2_CRCH1_CSB_MASK

  2525.         #define TIM_M2_CRCH1_CSA_POS                                4
  2526.         #define TIM_M2_CRCH1_CSA_MASK                                (0x01UL<<TIM_M2_CRCH1_CSA_POS)
  2527.         #define TIM_M2_CRCH1_CSA                                        TIM_M2_CRCH1_CSA_MASK

  2528.         #define TIM_M2_CRCH1_CFB_POS                                3
  2529.         #define TIM_M2_CRCH1_CFB_MASK                                (0x01UL<<TIM_M2_CRCH1_CFB_POS)
  2530.         #define TIM_M2_CRCH1_CFB                                        TIM_M2_CRCH1_CFB_MASK

  2531.         #define TIM_M2_CRCH1_CRB_POS                                2
  2532.         #define TIM_M2_CRCH1_CRB_MASK                                (0x01UL<<TIM_M2_CRCH1_CRB_POS)
  2533.         #define TIM_M2_CRCH1_CRB                                        TIM_M2_CRCH1_CRB_MASK

  2534.         //===B通道比较输出刹车电平控制
  2535.         #define TIM_M2_CRCH1_BKSB_POS                                2
  2536.         #define TIM_M2_CRCH1_BKSB_MASK                                (0x03UL<<TIM_M2_CRCH1_BKSB_POS)
  2537.         #define TIM_M2_CRCH1_BKSB                                        TIM_M2_CRCH1_BKSB_MASK

  2538.         #define TIM_M2_CRCH1_BKSB_HZ                                (0x00UL<<TIM_M2_CRCH1_BKSB_POS)
  2539.         #define TIM_M2_CRCH1_BKSB_NONE                                (0x01UL<<TIM_M2_CRCH1_BKSB_POS)
  2540.         #define TIM_M2_CRCH1_BKSB_LOW                                (0x02UL<<TIM_M2_CRCH1_BKSB_POS)
  2541.         #define TIM_M2_CRCH1_BKSB_HIGHT                                (0x03UL<<TIM_M2_CRCH1_BKSB_POS)

  2542.         #define TIM_M2_CRCH1_CFA_POS                                1
  2543.         #define TIM_M2_CRCH1_CFA_MASK                                (0x01UL<<TIM_M2_CRCH1_CFA_POS)
  2544.         #define TIM_M2_CRCH1_CFA                                        TIM_M2_CRCH1_CFA_MASK

  2545.         #define TIM_M2_CRCH1_CRA_POS                                0
  2546.         #define TIM_M2_CRCH1_CRA_MASK                                (0x01UL<<TIM_M2_CRCH1_CRA_POS)
  2547.         #define TIM_M2_CRCH1_CRA                                        TIM_M2_CRCH1_CRA_MASK

  2548.         #define TIM_M2_CRCH1_BKSA_POS                                0
  2549.         #define TIM_M2_CRCH1_BKSA_MASK                                (0x03UL<<TIM_M2_CRCH1_BKSA_POS)
  2550.         #define TIM_M2_CRCH1_BKSA                                        TIM_M2_CRCH1_BKSA_MASK

  2551.         #define TIM_M2_CRCH1_BKSA_HZ                                (0x00UL<<TIM_M2_CRCH1_BKSA_POS)
  2552.         #define TIM_M2_CRCH1_BKSA_NONE                                (0x01UL<<TIM_M2_CRCH1_BKSA_POS)
  2553.         #define TIM_M2_CRCH1_BKSA_LOW                                (0x02UL<<TIM_M2_CRCH1_BKSA_POS)
  2554.         #define TIM_M2_CRCH1_BKSA_HIGHT                                (0x03UL<<TIM_M2_CRCH1_BKSA_POS)

  2555.         //===通道2控制寄存器
  2556.         //===捕获比较B软件触发
  2557.         #define TIM_M2_CRCH2_CCGB_POS                                15
  2558.         #define TIM_M2_CRCH2_CCGB_MASK                                (0x01UL<<TIM_M2_CRCH2_CCGB_POS)
  2559.         #define TIM_M2_CRCH2_CCGB                                        TIM_M2_CRCH2_CCGB_MASK

  2560.         //===捕获比较A软件触发
  2561.         #define TIM_M2_CRCH2_CCGA_POS                                14
  2562.         #define TIM_M2_CRCH2_CCGA_MASK                                (0x01UL<<TIM_M2_CRCH2_CCGA_POS)
  2563.         #define TIM_M2_CRCH2_CCGA                                        TIM_M2_CRCH2_CCGA_MASK
  2564.         
  2565.         //===B比较模式中断
  2566.         #define TIM_M2_CRCH2_CISB_POS                                13
  2567.         #define TIM_M2_CRCH2_CISB_MASK                                (0x03UL<<TIM_M2_CRCH2_CISB_POS)
  2568.         #define TIM_M2_CRCH2_CISB                                        TIM_M2_CRCH2_CISB_MASK

  2569.         #define TIM_M2_CRCH2_CISB_EDGE_NONE                        (0x00UL<<TIM_M2_CRCH2_CISB_POS)
  2570.         #define TIM_M2_CRCH2_CISB_EDGE_RISE                        (0x01UL<<TIM_M2_CRCH2_CISB_POS)
  2571.         #define TIM_M2_CRCH2_CISB_EDGE_FAIL                        (0x02UL<<TIM_M2_CRCH2_CISB_POS)
  2572.         #define TIM_M2_CRCH2_CISB_EDGE_ALL                        (0x03UL<<TIM_M2_CRCH2_CISB_POS)

  2573.         //===B捕获比较触发DMA使能
  2574.         #define TIM_M2_CRCH2_CDMABEN_POS                        11
  2575.         #define TIM_M2_CRCH2_CDMABEN_MASK                        (0x01UL<<TIM_M2_CRCH2_CDMABEN_POS)
  2576.         #define TIM_M2_CRCH2_CDMABEN                                TIM_M2_CRCH2_CDMABEN_MASK

  2577.         //===A捕获比较触发DMA使能
  2578.         #define TIM_M2_CRCH2_CDMAAEN_POS                        10
  2579.         #define TIM_M2_CRCH2_CDMAAEN_MASK                        (0x01UL<<TIM_M2_CRCH2_CDMAAEN_POS)
  2580.         #define TIM_M2_CRCH2_CDMAAEN                                TIM_M2_CRCH2_CDMAAEN_MASK

  2581.         //===B捕获比较触发中断
  2582.         #define TIM_M2_CRCH2_CIEB_POS                                9
  2583.         #define TIM_M2_CRCH2_CIEB_MASK                                (0x01UL<<TIM_M2_CRCH2_CIEB_POS)
  2584.         #define TIM_M2_CRCH2_CIEB                                        TIM_M2_CRCH2_CIEB_MASK

  2585.         //===B捕获比较触发中断
  2586.         #define TIM_M2_CRCH2_CIEA_POS                                8
  2587.         #define TIM_M2_CRCH2_CIEA_MASK                                (0x01UL<<TIM_M2_CRCH2_CIEA_POS)
  2588.         #define TIM_M2_CRCH2_CIEA                                        TIM_M2_CRCH2_CIEA_MASK
  2589.         
  2590.         //===比较功能,B比较缓存使能控制
  2591.         #define TIM_M2_CRCH2_BUFEB_POS                                7
  2592.         #define TIM_M2_CRCH2_BUFEB_MASK                                (0x01UL<<TIM_M2_CRCH2_BUFEB_POS)
  2593.         #define TIM_M2_CRCH2_BUFEB                                        TIM_M2_CRCH2_BUFEB_MASK

  2594.         //===比较功能,B比较缓存使能控制
  2595.         #define TIM_M2_CRCH2_BUFEA_POS                                6
  2596.         #define TIM_M2_CRCH2_BUFEA_MASK                                (0x01UL<<TIM_M2_CRCH2_BUFEA_POS)
  2597.         #define TIM_M2_CRCH2_BUFEA                                        TIM_M2_CRCH2_BUFEA_MASK

  2598.         #define TIM_M2_CRCH2_CSB_POS                                5
  2599.         #define TIM_M2_CRCH2_CSB_MASK                                (0x01UL<<TIM_M2_CRCH2_CSB_POS)
  2600.         #define TIM_M2_CRCH2_CSB                                        TIM_M2_CRCH2_CSB_MASK

  2601.         #define TIM_M2_CRCH2_CSA_POS                                4
  2602.         #define TIM_M2_CRCH2_CSA_MASK                                (0x01UL<<TIM_M2_CRCH2_CSA_POS)
  2603.         #define TIM_M2_CRCH2_CSA                                        TIM_M2_CRCH2_CSA_MASK

  2604.         #define TIM_M2_CRCH2_CFB_POS                                3
  2605.         #define TIM_M2_CRCH2_CFB_MASK                                (0x01UL<<TIM_M2_CRCH2_CFB_POS)
  2606.         #define TIM_M2_CRCH2_CFB                                        TIM_M2_CRCH2_CFB_MASK

  2607.         #define TIM_M2_CRCH2_CRB_POS                                2
  2608.         #define TIM_M2_CRCH2_CRB_MASK                                (0x01UL<<TIM_M2_CRCH2_CRB_POS)
  2609.         #define TIM_M2_CRCH2_CRB                                        TIM_M2_CRCH2_CRB_MASK

  2610.         //===B通道比较输出刹车电平控制
  2611.         #define TIM_M2_CRCH2_BKSB_POS                                2
  2612.         #define TIM_M2_CRCH2_BKSB_MASK                                (0x03UL<<TIM_M2_CRCH2_BKSB_POS)
  2613.         #define TIM_M2_CRCH2_BKSB                                        TIM_M2_CRCH2_BKSB_MASK

  2614.         #define TIM_M2_CRCH2_BKSB_HZ                                (0x00UL<<TIM_M2_CRCH2_BKSB_POS)
  2615.         #define TIM_M2_CRCH2_BKSB_NONE                                (0x01UL<<TIM_M2_CRCH2_BKSB_POS)
  2616.         #define TIM_M2_CRCH2_BKSB_LOW                                (0x02UL<<TIM_M2_CRCH2_BKSB_POS)
  2617.         #define TIM_M2_CRCH2_BKSB_HIGHT                                (0x03UL<<TIM_M2_CRCH2_BKSB_POS)

  2618.         #define TIM_M2_CRCH2_CFA_POS                                1
  2619.         #define TIM_M2_CRCH2_CFA_MASK                                (0x01UL<<TIM_M2_CRCH2_CFA_POS)
  2620.         #define TIM_M2_CRCH2_CFA                                        TIM_M2_CRCH2_CFA_MASK

  2621.         #define TIM_M2_CRCH2_CRA_POS                                0
  2622.         #define TIM_M2_CRCH2_CRA_MASK                                (0x01UL<<TIM_M2_CRCH2_CRA_POS)
  2623.         #define TIM_M2_CRCH2_CRA                                        TIM_M2_CRCH2_CRA_MASK

  2624.         #define TIM_M2_CRCH2_BKSA_POS                                0
  2625.         #define TIM_M2_CRCH2_BKSA_MASK                                (0x03UL<<TIM_M2_CRCH2_BKSA_POS)
  2626.         #define TIM_M2_CRCH2_BKSA                                        TIM_M2_CRCH2_BKSA_MASK

  2627.         #define TIM_M2_CRCH2_BKSA_HZ                                (0x00UL<<TIM_M2_CRCH2_BKSA_POS)
  2628.         #define TIM_M2_CRCH2_BKSA_NONE                                (0x01UL<<TIM_M2_CRCH2_BKSA_POS)
  2629.         #define TIM_M2_CRCH2_BKSA_LOW                                (0x02UL<<TIM_M2_CRCH2_BKSA_POS)
  2630.         #define TIM_M2_CRCH2_BKSA_HIGHT                                (0x03UL<<TIM_M2_CRCH2_BKSA_POS)

  2631.         //===死区控制寄存器
  2632.         #define TIM_M2_DTR_VCEN_POS                                        14
  2633.         #define TIM_M2_DTR_VCEN_MASK                                (0x01UL<<TIM_M2_DTR_VCEN_POS)
  2634.         #define TIM_M2_DTR_VCEN                                                TIM_M2_DTR_VCEN_MASK

  2635.         //===Safety刹车控制使能
  2636.         #define TIM_M2_DTR_SAFETYEN_POS                                13
  2637.         #define TIM_M2_DTR_SAFETYEN_MASK                        (0x01UL<<TIM_M2_DTR_SAFETYEN_POS)
  2638.         #define TIM_M2_DTR_SAFETYEN                                        TIM_M2_DTR_SAFETYEN_MASK

  2639.         //===PWM输出控制使能
  2640.         #define TIM_M2_DTR_MOEN_POS                                        12
  2641.         #define TIM_M2_DTR_MOEN_MASK                                (0x01UL<<TIM_M2_DTR_MOEN_POS)
  2642.         #define TIM_M2_DTR_MOEN                                                TIM_M2_DTR_MOEN_MASK

  2643.         //===PWM输出自动控制使能
  2644.         #define TIM_M2_DTR_AOEN_POS                                        11
  2645.         #define TIM_M2_DTR_AOEN_MASK                                (0x01UL<<TIM_M2_DTR_AOEN_POS)
  2646.         #define TIM_M2_DTR_AOEN                                                TIM_M2_DTR_AOEN_MASK
  2647.         
  2648.         //===刹车控制使能
  2649.         #define TIM_M2_DTR_BKE_POS                                        10
  2650.         #define TIM_M2_DTR_BKE_MASK                                        (0x01UL<<TIM_M2_DTR_BKE_POS)
  2651.         #define TIM_M2_DTR_BKE                                                TIM_M2_DTR_BKE_MASK

  2652.         //===死区控制使能
  2653.         #define TIM_M2_DTR_DTEN_POS                                        9
  2654.         #define TIM_M2_DTR_DTEN_MASK                                (0x01UL<<TIM_M2_DTR_DTEN_POS)
  2655.         #define TIM_M2_DTR_DTEN                                                TIM_M2_DTR_DTEN_MASK

  2656.         //===刹车选择
  2657.         #define TIM_M2_DTR_BKSEL_POS                                8
  2658.         #define TIM_M2_DTR_BKSEL_MASK                                (0x01UL<<TIM_M2_DTR_BKSEL_POS)
  2659.         #define TIM_M2_DTR_BKSEL                                        TIM_M2_DTR_BKSEL_MASK
  2660.         
  2661.         //===死区控制
  2662.         #define TIM_M2_DTR_TIM_POS                                        0
  2663.         #define TIM_M2_DTR_TIM_MASK                                 (0xFFUL<<TIM_M2_DTR_TIM_POS)
  2664.         #define TIM_M2_DTR_TIM                                                TIM_M2_DTR_TIM_MASK

  2665.         //===死区时间
  2666.         #define TIM_M2_DTR_TIM_2                                        (0x00UL<<TIM_M2_DTR_TIM_POS)
  2667.         #define TIM_M2_DTR_TIM_3                                        (0x01UL<<TIM_M2_DTR_TIM_POS)
  2668.         #define TIM_M2_DTR_TIM_4                                        (0x02UL<<TIM_M2_DTR_TIM_POS)
  2669.         #define TIM_M2_DTR_TIM_5                                        (0x03UL<<TIM_M2_DTR_TIM_POS)
  2670.         #define TIM_M2_DTR_TIM_6                                        (0x04UL<<TIM_M2_DTR_TIM_POS)
  2671.         #define TIM_M2_DTR_TIM_7                                        (0x05UL<<TIM_M2_DTR_TIM_POS)
  2672.         #define TIM_M2_DTR_TIM_8                                        (0x06UL<<TIM_M2_DTR_TIM_POS)
  2673.         #define TIM_M2_DTR_TIM_9                                        (0x07UL<<TIM_M2_DTR_TIM_POS)
  2674.         #define TIM_M2_DTR_TIM_10                                        (0x08UL<<TIM_M2_DTR_TIM_POS)
  2675.         #define TIM_M2_DTR_TIM_11                                        (0x09UL<<TIM_M2_DTR_TIM_POS)
  2676.         #define TIM_M2_DTR_TIM_12                                        (0x0AUL<<TIM_M2_DTR_TIM_POS)
  2677.         #define TIM_M2_DTR_TIM_13                                        (0x0BUL<<TIM_M2_DTR_TIM_POS)
  2678.         #define TIM_M2_DTR_TIM_14                                        (0x0CUL<<TIM_M2_DTR_TIM_POS)
  2679.         #define TIM_M2_DTR_TIM_15                                        (0x0DUL<<TIM_M2_DTR_TIM_POS)
  2680.         #define TIM_M2_DTR_TIM_16                                        (0x0EUL<<TIM_M2_DTR_TIM_POS)
  2681.         #define TIM_M2_DTR_TIM_17                                        (0x0FUL<<TIM_M2_DTR_TIM_POS)
  2682.         #define TIM_M2_DTR_TIM_18                                        (0x10UL<<TIM_M2_DTR_TIM_POS)
  2683.         #define TIM_M2_DTR_TIM_19                                        (0x11UL<<TIM_M2_DTR_TIM_POS)
  2684.         #define TIM_M2_DTR_TIM_20                                        (0x12UL<<TIM_M2_DTR_TIM_POS)
  2685.         #define TIM_M2_DTR_TIM_21                                        (0x13UL<<TIM_M2_DTR_TIM_POS)
  2686.         #define TIM_M2_DTR_TIM_22                                        (0x14UL<<TIM_M2_DTR_TIM_POS)
  2687.         #define TIM_M2_DTR_TIM_23                                        (0x15UL<<TIM_M2_DTR_TIM_POS)
  2688.         #define TIM_M2_DTR_TIM_24                                        (0x16UL<<TIM_M2_DTR_TIM_POS)
  2689.         #define TIM_M2_DTR_TIM_25                                        (0x17UL<<TIM_M2_DTR_TIM_POS)
  2690.         #define TIM_M2_DTR_TIM_26                                        (0x18UL<<TIM_M2_DTR_TIM_POS)
  2691.         #define TIM_M2_DTR_TIM_27                                        (0x19UL<<TIM_M2_DTR_TIM_POS)
  2692.         #define TIM_M2_DTR_TIM_28                                        (0x1AUL<<TIM_M2_DTR_TIM_POS)
  2693.         #define TIM_M2_DTR_TIM_29                                        (0x1BUL<<TIM_M2_DTR_TIM_POS)
  2694.         #define TIM_M2_DTR_TIM_30                                        (0x1CUL<<TIM_M2_DTR_TIM_POS)
  2695.         #define TIM_M2_DTR_TIM_31                                        (0x1DUL<<TIM_M2_DTR_TIM_POS)
  2696.         #define TIM_M2_DTR_TIM_32                                        (0x1EUL<<TIM_M2_DTR_TIM_POS)
  2697.         #define TIM_M2_DTR_TIM_33                                        (0x1FUL<<TIM_M2_DTR_TIM_POS)
  2698.         #define TIM_M2_DTR_TIM_34                                        (0x20UL<<TIM_M2_DTR_TIM_POS)
  2699.         #define TIM_M2_DTR_TIM_35                                        (0x21UL<<TIM_M2_DTR_TIM_POS)
  2700.         #define TIM_M2_DTR_TIM_36                                        (0x22UL<<TIM_M2_DTR_TIM_POS)
  2701.         #define TIM_M2_DTR_TIM_37                                        (0x23UL<<TIM_M2_DTR_TIM_POS)
  2702.         #define TIM_M2_DTR_TIM_38                                        (0x24UL<<TIM_M2_DTR_TIM_POS)
  2703.         #define TIM_M2_DTR_TIM_39                                        (0x25UL<<TIM_M2_DTR_TIM_POS)
  2704.         #define TIM_M2_DTR_TIM_40                                        (0x26UL<<TIM_M2_DTR_TIM_POS)
  2705.         #define TIM_M2_DTR_TIM_41                                        (0x27UL<<TIM_M2_DTR_TIM_POS)
  2706.         #define TIM_M2_DTR_TIM_42                                        (0x28UL<<TIM_M2_DTR_TIM_POS)
  2707.         #define TIM_M2_DTR_TIM_43                                        (0x29UL<<TIM_M2_DTR_TIM_POS)
  2708.         #define TIM_M2_DTR_TIM_44                                        (0x2AUL<<TIM_M2_DTR_TIM_POS)
  2709.         #define TIM_M2_DTR_TIM_45                                        (0x2BUL<<TIM_M2_DTR_TIM_POS)
  2710.         #define TIM_M2_DTR_TIM_46                                        (0x2CUL<<TIM_M2_DTR_TIM_POS)
  2711.         #define TIM_M2_DTR_TIM_47                                        (0x2DUL<<TIM_M2_DTR_TIM_POS)
  2712.         #define TIM_M2_DTR_TIM_48                                        (0x2EUL<<TIM_M2_DTR_TIM_POS)
  2713.         #define TIM_M2_DTR_TIM_49                                        (0x2FUL<<TIM_M2_DTR_TIM_POS)
  2714.         #define TIM_M2_DTR_TIM_50                                        (0x30UL<<TIM_M2_DTR_TIM_POS)
  2715.         #define TIM_M2_DTR_TIM_51                                        (0x31UL<<TIM_M2_DTR_TIM_POS)
  2716.         #define TIM_M2_DTR_TIM_52                                        (0x32UL<<TIM_M2_DTR_TIM_POS)
  2717.         #define TIM_M2_DTR_TIM_53                                        (0x33UL<<TIM_M2_DTR_TIM_POS)
  2718.         #define TIM_M2_DTR_TIM_54                                        (0x34UL<<TIM_M2_DTR_TIM_POS)
  2719.         #define TIM_M2_DTR_TIM_55                                        (0x35UL<<TIM_M2_DTR_TIM_POS)
  2720.         #define TIM_M2_DTR_TIM_56                                        (0x36UL<<TIM_M2_DTR_TIM_POS)
  2721.         #define TIM_M2_DTR_TIM_57                                        (0x37UL<<TIM_M2_DTR_TIM_POS)
  2722.         #define TIM_M2_DTR_TIM_58                                        (0x38UL<<TIM_M2_DTR_TIM_POS)
  2723.         #define TIM_M2_DTR_TIM_59                                        (0x39UL<<TIM_M2_DTR_TIM_POS)
  2724.         #define TIM_M2_DTR_TIM_60                                        (0x3AUL<<TIM_M2_DTR_TIM_POS)
  2725.         #define TIM_M2_DTR_TIM_61                                        (0x3BUL<<TIM_M2_DTR_TIM_POS)
  2726.         #define TIM_M2_DTR_TIM_62                                        (0x3CUL<<TIM_M2_DTR_TIM_POS)
  2727.         #define TIM_M2_DTR_TIM_63                                        (0x3DUL<<TIM_M2_DTR_TIM_POS)
  2728.         #define TIM_M2_DTR_TIM_64                                        (0x3EUL<<TIM_M2_DTR_TIM_POS)
  2729.         #define TIM_M2_DTR_TIM_65                                        (0x3FUL<<TIM_M2_DTR_TIM_POS)
  2730.         #define TIM_M2_DTR_TIM_66                                        (0x40UL<<TIM_M2_DTR_TIM_POS)
  2731.         #define TIM_M2_DTR_TIM_67                                        (0x41UL<<TIM_M2_DTR_TIM_POS)
  2732.         #define TIM_M2_DTR_TIM_68                                        (0x42UL<<TIM_M2_DTR_TIM_POS)
  2733.         #define TIM_M2_DTR_TIM_69                                        (0x43UL<<TIM_M2_DTR_TIM_POS)
  2734.         #define TIM_M2_DTR_TIM_70                                        (0x44UL<<TIM_M2_DTR_TIM_POS)
  2735.         #define TIM_M2_DTR_TIM_71                                        (0x45UL<<TIM_M2_DTR_TIM_POS)
  2736.         #define TIM_M2_DTR_TIM_72                                        (0x46UL<<TIM_M2_DTR_TIM_POS)
  2737.         #define TIM_M2_DTR_TIM_73                                        (0x47UL<<TIM_M2_DTR_TIM_POS)
  2738.         #define TIM_M2_DTR_TIM_74                                        (0x48UL<<TIM_M2_DTR_TIM_POS)
  2739.         #define TIM_M2_DTR_TIM_75                                        (0x49UL<<TIM_M2_DTR_TIM_POS)
  2740.         #define TIM_M2_DTR_TIM_76                                        (0x4AUL<<TIM_M2_DTR_TIM_POS)
  2741.         #define TIM_M2_DTR_TIM_77                                        (0x4BUL<<TIM_M2_DTR_TIM_POS)
  2742.         #define TIM_M2_DTR_TIM_78                                        (0x4CUL<<TIM_M2_DTR_TIM_POS)
  2743.         #define TIM_M2_DTR_TIM_79                                        (0x4DUL<<TIM_M2_DTR_TIM_POS)
  2744.         #define TIM_M2_DTR_TIM_80                                        (0x4EUL<<TIM_M2_DTR_TIM_POS)
  2745.         #define TIM_M2_DTR_TIM_81                                        (0x4FUL<<TIM_M2_DTR_TIM_POS)
  2746.         #define TIM_M2_DTR_TIM_82                                        (0x50UL<<TIM_M2_DTR_TIM_POS)
  2747.         #define TIM_M2_DTR_TIM_83                                        (0x51UL<<TIM_M2_DTR_TIM_POS)
  2748.         #define TIM_M2_DTR_TIM_84                                        (0x52UL<<TIM_M2_DTR_TIM_POS)
  2749.         #define TIM_M2_DTR_TIM_85                                        (0x53UL<<TIM_M2_DTR_TIM_POS)
  2750.         #define TIM_M2_DTR_TIM_86                                        (0x54UL<<TIM_M2_DTR_TIM_POS)
  2751.         #define TIM_M2_DTR_TIM_87                                        (0x55UL<<TIM_M2_DTR_TIM_POS)
  2752.         #define TIM_M2_DTR_TIM_88                                        (0x56UL<<TIM_M2_DTR_TIM_POS)
  2753.         #define TIM_M2_DTR_TIM_89                                        (0x57UL<<TIM_M2_DTR_TIM_POS)
  2754.         #define TIM_M2_DTR_TIM_90                                        (0x58UL<<TIM_M2_DTR_TIM_POS)
  2755.         #define TIM_M2_DTR_TIM_91                                        (0x59UL<<TIM_M2_DTR_TIM_POS)
  2756.         #define TIM_M2_DTR_TIM_92                                        (0x5AUL<<TIM_M2_DTR_TIM_POS)
  2757.         #define TIM_M2_DTR_TIM_93                                        (0x5BUL<<TIM_M2_DTR_TIM_POS)
  2758.         #define TIM_M2_DTR_TIM_94                                        (0x5CUL<<TIM_M2_DTR_TIM_POS)
  2759.         #define TIM_M2_DTR_TIM_95                                        (0x5DUL<<TIM_M2_DTR_TIM_POS)
  2760.         #define TIM_M2_DTR_TIM_96                                        (0x5EUL<<TIM_M2_DTR_TIM_POS)
  2761.         #define TIM_M2_DTR_TIM_97                                        (0x5FUL<<TIM_M2_DTR_TIM_POS)
  2762.         #define TIM_M2_DTR_TIM_98                                        (0x60UL<<TIM_M2_DTR_TIM_POS)
  2763.         #define TIM_M2_DTR_TIM_99                                        (0x61UL<<TIM_M2_DTR_TIM_POS)
  2764.         #define TIM_M2_DTR_TIM_100                                        (0x62UL<<TIM_M2_DTR_TIM_POS)
  2765.         #define TIM_M2_DTR_TIM_101                                        (0x63UL<<TIM_M2_DTR_TIM_POS)
  2766.         #define TIM_M2_DTR_TIM_102                                        (0x64UL<<TIM_M2_DTR_TIM_POS)
  2767.         #define TIM_M2_DTR_TIM_103                                        (0x65UL<<TIM_M2_DTR_TIM_POS)
  2768.         #define TIM_M2_DTR_TIM_104                                        (0x66UL<<TIM_M2_DTR_TIM_POS)
  2769.         #define TIM_M2_DTR_TIM_105                                        (0x67UL<<TIM_M2_DTR_TIM_POS)
  2770.         #define TIM_M2_DTR_TIM_106                                        (0x68UL<<TIM_M2_DTR_TIM_POS)
  2771.         #define TIM_M2_DTR_TIM_107                                        (0x69UL<<TIM_M2_DTR_TIM_POS)
  2772.         #define TIM_M2_DTR_TIM_108                                        (0x6AUL<<TIM_M2_DTR_TIM_POS)
  2773.         #define TIM_M2_DTR_TIM_109                                        (0x6BUL<<TIM_M2_DTR_TIM_POS)
  2774.         #define TIM_M2_DTR_TIM_110                                        (0x6CUL<<TIM_M2_DTR_TIM_POS)
  2775.         #define TIM_M2_DTR_TIM_111                                        (0x6DUL<<TIM_M2_DTR_TIM_POS)
  2776.         #define TIM_M2_DTR_TIM_112                                        (0x6EUL<<TIM_M2_DTR_TIM_POS)
  2777.         #define TIM_M2_DTR_TIM_113                                        (0x6FUL<<TIM_M2_DTR_TIM_POS)
  2778.         #define TIM_M2_DTR_TIM_114                                        (0x70UL<<TIM_M2_DTR_TIM_POS)
  2779.         #define TIM_M2_DTR_TIM_115                                        (0x71UL<<TIM_M2_DTR_TIM_POS)
  2780.         #define TIM_M2_DTR_TIM_116                                        (0x72UL<<TIM_M2_DTR_TIM_POS)
  2781.         #define TIM_M2_DTR_TIM_117                                        (0x73UL<<TIM_M2_DTR_TIM_POS)
  2782.         #define TIM_M2_DTR_TIM_118                                        (0x74UL<<TIM_M2_DTR_TIM_POS)
  2783.         #define TIM_M2_DTR_TIM_119                                        (0x75UL<<TIM_M2_DTR_TIM_POS)
  2784.         #define TIM_M2_DTR_TIM_120                                        (0x76UL<<TIM_M2_DTR_TIM_POS)
  2785.         #define TIM_M2_DTR_TIM_121                                        (0x77UL<<TIM_M2_DTR_TIM_POS)
  2786.         #define TIM_M2_DTR_TIM_122                                        (0x78UL<<TIM_M2_DTR_TIM_POS)
  2787.         #define TIM_M2_DTR_TIM_123                                        (0x79UL<<TIM_M2_DTR_TIM_POS)
  2788.         #define TIM_M2_DTR_TIM_124                                        (0x7AUL<<TIM_M2_DTR_TIM_POS)
  2789.         #define TIM_M2_DTR_TIM_125                                        (0x7BUL<<TIM_M2_DTR_TIM_POS)
  2790.         #define TIM_M2_DTR_TIM_126                                        (0x7CUL<<TIM_M2_DTR_TIM_POS)
  2791.         #define TIM_M2_DTR_TIM_127                                        (0x7DUL<<TIM_M2_DTR_TIM_POS)
  2792.         #define TIM_M2_DTR_TIM_128                                        (0x7EUL<<TIM_M2_DTR_TIM_POS)
  2793.         #define TIM_M2_DTR_TIM_129                                        (0x7FUL<<TIM_M2_DTR_TIM_POS)

  2794.         #define TIM_M2_DTR_TIM_130                                        (0x80UL<<TIM_M2_DTR_TIM_POS)
  2795.         #define TIM_M2_DTR_TIM_132                                        (0x81UL<<TIM_M2_DTR_TIM_POS)
  2796.         #define TIM_M2_DTR_TIM_134                                        (0x82UL<<TIM_M2_DTR_TIM_POS)
  2797.         #define TIM_M2_DTR_TIM_136                                        (0x83UL<<TIM_M2_DTR_TIM_POS)
  2798.         #define TIM_M2_DTR_TIM_138                                        (0x84UL<<TIM_M2_DTR_TIM_POS)
  2799.         #define TIM_M2_DTR_TIM_140                                        (0x85UL<<TIM_M2_DTR_TIM_POS)
  2800.         #define TIM_M2_DTR_TIM_142                                        (0x86UL<<TIM_M2_DTR_TIM_POS)
  2801.         #define TIM_M2_DTR_TIM_144                                        (0x87UL<<TIM_M2_DTR_TIM_POS)
  2802.         #define TIM_M2_DTR_TIM_146                                        (0x88UL<<TIM_M2_DTR_TIM_POS)
  2803.         #define TIM_M2_DTR_TIM_148                                        (0x89UL<<TIM_M2_DTR_TIM_POS)
  2804.         #define TIM_M2_DTR_TIM_150                                        (0x8AUL<<TIM_M2_DTR_TIM_POS)
  2805.         #define TIM_M2_DTR_TIM_152                                        (0x8BUL<<TIM_M2_DTR_TIM_POS)
  2806.         #define TIM_M2_DTR_TIM_154                                        (0x8CUL<<TIM_M2_DTR_TIM_POS)
  2807.         #define TIM_M2_DTR_TIM_156                                        (0x8DUL<<TIM_M2_DTR_TIM_POS)
  2808.         #define TIM_M2_DTR_TIM_158                                        (0x8EUL<<TIM_M2_DTR_TIM_POS)
  2809.         #define TIM_M2_DTR_TIM_160                                        (0x8FUL<<TIM_M2_DTR_TIM_POS)
  2810.         #define TIM_M2_DTR_TIM_162                                        (0x90UL<<TIM_M2_DTR_TIM_POS)
  2811.         #define TIM_M2_DTR_TIM_164                                        (0x91UL<<TIM_M2_DTR_TIM_POS)
  2812.         #define TIM_M2_DTR_TIM_166                                        (0x92UL<<TIM_M2_DTR_TIM_POS)
  2813.         #define TIM_M2_DTR_TIM_168                                        (0x93UL<<TIM_M2_DTR_TIM_POS)
  2814.         #define TIM_M2_DTR_TIM_170                                        (0x94UL<<TIM_M2_DTR_TIM_POS)
  2815.         #define TIM_M2_DTR_TIM_172                                        (0x95UL<<TIM_M2_DTR_TIM_POS)
  2816.         #define TIM_M2_DTR_TIM_174                                        (0x96UL<<TIM_M2_DTR_TIM_POS)
  2817.         #define TIM_M2_DTR_TIM_176                                        (0x97UL<<TIM_M2_DTR_TIM_POS)
  2818.         #define TIM_M2_DTR_TIM_178                                        (0x98UL<<TIM_M2_DTR_TIM_POS)
  2819.         #define TIM_M2_DTR_TIM_180                                        (0x99UL<<TIM_M2_DTR_TIM_POS)
  2820.         #define TIM_M2_DTR_TIM_182                                        (0x9AUL<<TIM_M2_DTR_TIM_POS)
  2821.         #define TIM_M2_DTR_TIM_184                                        (0x9BUL<<TIM_M2_DTR_TIM_POS)
  2822.         #define TIM_M2_DTR_TIM_186                                        (0x9CUL<<TIM_M2_DTR_TIM_POS)
  2823.         #define TIM_M2_DTR_TIM_188                                        (0x9DUL<<TIM_M2_DTR_TIM_POS)
  2824.         #define TIM_M2_DTR_TIM_190                                        (0x9EUL<<TIM_M2_DTR_TIM_POS)
  2825.         #define TIM_M2_DTR_TIM_192                                        (0x9FUL<<TIM_M2_DTR_TIM_POS)
  2826.         #define TIM_M2_DTR_TIM_194                                        (0xA0UL<<TIM_M2_DTR_TIM_POS)
  2827.         #define TIM_M2_DTR_TIM_196                                        (0xA1UL<<TIM_M2_DTR_TIM_POS)
  2828.         #define TIM_M2_DTR_TIM_198                                        (0xA2UL<<TIM_M2_DTR_TIM_POS)
  2829.         #define TIM_M2_DTR_TIM_200                                        (0xA3UL<<TIM_M2_DTR_TIM_POS)
  2830.         #define TIM_M2_DTR_TIM_202                                        (0xA4UL<<TIM_M2_DTR_TIM_POS)
  2831.         #define TIM_M2_DTR_TIM_204                                        (0xA5UL<<TIM_M2_DTR_TIM_POS)
  2832.         #define TIM_M2_DTR_TIM_206                                        (0xA6UL<<TIM_M2_DTR_TIM_POS)
  2833.         #define TIM_M2_DTR_TIM_208                                        (0xA8UL<<TIM_M2_DTR_TIM_POS)
  2834.         #define TIM_M2_DTR_TIM_210                                        (0xA9UL<<TIM_M2_DTR_TIM_POS)
  2835.         #define TIM_M2_DTR_TIM_212                                        (0xAAUL<<TIM_M2_DTR_TIM_POS)
  2836.         #define TIM_M2_DTR_TIM_214                                        (0xABUL<<TIM_M2_DTR_TIM_POS)
  2837.         #define TIM_M2_DTR_TIM_216                                        (0xACUL<<TIM_M2_DTR_TIM_POS)
  2838.         #define TIM_M2_DTR_TIM_218                                        (0xADUL<<TIM_M2_DTR_TIM_POS)
  2839.         #define TIM_M2_DTR_TIM_220                                        (0xAEUL<<TIM_M2_DTR_TIM_POS)
  2840.         #define TIM_M2_DTR_TIM_222                                        (0xAFUL<<TIM_M2_DTR_TIM_POS)
  2841.         #define TIM_M2_DTR_TIM_224                                        (0xB0UL<<TIM_M2_DTR_TIM_POS)
  2842.         #define TIM_M2_DTR_TIM_226                                        (0xB1UL<<TIM_M2_DTR_TIM_POS)
  2843.         #define TIM_M2_DTR_TIM_228                                        (0xB2UL<<TIM_M2_DTR_TIM_POS)
  2844.         #define TIM_M2_DTR_TIM_230                                        (0xB3UL<<TIM_M2_DTR_TIM_POS)
  2845.         #define TIM_M2_DTR_TIM_232                                        (0xB4UL<<TIM_M2_DTR_TIM_POS)
  2846.         #define TIM_M2_DTR_TIM_234                                        (0xB5UL<<TIM_M2_DTR_TIM_POS)
  2847.         #define TIM_M2_DTR_TIM_236                                        (0xB6UL<<TIM_M2_DTR_TIM_POS)
  2848.         #define TIM_M2_DTR_TIM_238                                        (0xB7UL<<TIM_M2_DTR_TIM_POS)
  2849.         #define TIM_M2_DTR_TIM_240                                        (0xB8UL<<TIM_M2_DTR_TIM_POS)
  2850.         #define TIM_M2_DTR_TIM_242                                        (0xB9UL<<TIM_M2_DTR_TIM_POS)
  2851.         #define TIM_M2_DTR_TIM_246                                        (0xBAUL<<TIM_M2_DTR_TIM_POS)
  2852.         #define TIM_M2_DTR_TIM_248                                        (0xBBUL<<TIM_M2_DTR_TIM_POS)
  2853.         #define TIM_M2_DTR_TIM_250                                        (0xBCUL<<TIM_M2_DTR_TIM_POS)
  2854.         #define TIM_M2_DTR_TIM_252                                        (0xBDUL<<TIM_M2_DTR_TIM_POS)
  2855.         #define TIM_M2_DTR_TIM_254                                        (0xBEUL<<TIM_M2_DTR_TIM_POS)
  2856.         #define TIM_M2_DTR_TIM_256                                        (0xBFUL<<TIM_M2_DTR_TIM_POS)
  2857.         
  2858.         #define TIM_M2_DTR_TIM_258                                        (0xC0UL<<TIM_M2_DTR_TIM_POS)        
  2859.         #define TIM_M2_DTR_TIM_266                                        (0xC1UL<<TIM_M2_DTR_TIM_POS)        
  2860.         #define TIM_M2_DTR_TIM_274                                        (0xC2UL<<TIM_M2_DTR_TIM_POS)        
  2861.         #define TIM_M2_DTR_TIM_282                                        (0xC3UL<<TIM_M2_DTR_TIM_POS)        
  2862.         #define TIM_M2_DTR_TIM_290                                        (0xC4UL<<TIM_M2_DTR_TIM_POS)        
  2863.         #define TIM_M2_DTR_TIM_296                                        (0xC5UL<<TIM_M2_DTR_TIM_POS)        
  2864.         #define TIM_M2_DTR_TIM_302                                        (0xC6UL<<TIM_M2_DTR_TIM_POS)        
  2865.         #define TIM_M2_DTR_TIM_308                                        (0xC7UL<<TIM_M2_DTR_TIM_POS)        
  2866.         #define TIM_M2_DTR_TIM_314                                        (0xC8UL<<TIM_M2_DTR_TIM_POS)        
  2867.         #define TIM_M2_DTR_TIM_322                                        (0xC9UL<<TIM_M2_DTR_TIM_POS)        
  2868.         #define TIM_M2_DTR_TIM_330                                        (0xCAUL<<TIM_M2_DTR_TIM_POS)        
  2869.         #define TIM_M2_DTR_TIM_338                                        (0xCBUL<<TIM_M2_DTR_TIM_POS)        
  2870.         #define TIM_M2_DTR_TIM_346                                        (0xCCUL<<TIM_M2_DTR_TIM_POS)        
  2871.         #define TIM_M2_DTR_TIM_354                                        (0xCDUL<<TIM_M2_DTR_TIM_POS)        
  2872.         #define TIM_M2_DTR_TIM_362                                        (0xCEUL<<TIM_M2_DTR_TIM_POS)        
  2873.         #define TIM_M2_DTR_TIM_370                                        (0xCFUL<<TIM_M2_DTR_TIM_POS)        
  2874.         #define TIM_M2_DTR_TIM_378                                        (0xD0UL<<TIM_M2_DTR_TIM_POS)        
  2875.         #define TIM_M2_DTR_TIM_386                                        (0xD1UL<<TIM_M2_DTR_TIM_POS)        
  2876.         #define TIM_M2_DTR_TIM_394                                        (0xD2UL<<TIM_M2_DTR_TIM_POS)        
  2877.         #define TIM_M2_DTR_TIM_402                                        (0xD3UL<<TIM_M2_DTR_TIM_POS)        
  2878.         #define TIM_M2_DTR_TIM_410                                        (0xD4UL<<TIM_M2_DTR_TIM_POS)        
  2879.         #define TIM_M2_DTR_TIM_418                                        (0xD5UL<<TIM_M2_DTR_TIM_POS)        
  2880.         #define TIM_M2_DTR_TIM_426                                        (0xD6UL<<TIM_M2_DTR_TIM_POS)        
  2881.         #define TIM_M2_DTR_TIM_434                                        (0xD7UL<<TIM_M2_DTR_TIM_POS)        
  2882.         #define TIM_M2_DTR_TIM_442                                        (0xD8UL<<TIM_M2_DTR_TIM_POS)        
  2883.         #define TIM_M2_DTR_TIM_450                                        (0xD9UL<<TIM_M2_DTR_TIM_POS)        
  2884.         #define TIM_M2_DTR_TIM_458                                        (0xDAUL<<TIM_M2_DTR_TIM_POS)        
  2885.         #define TIM_M2_DTR_TIM_466                                        (0xDBUL<<TIM_M2_DTR_TIM_POS)        
  2886.         #define TIM_M2_DTR_TIM_474                                        (0xDCUL<<TIM_M2_DTR_TIM_POS)        
  2887.         #define TIM_M2_DTR_TIM_482                                        (0xDDUL<<TIM_M2_DTR_TIM_POS)        
  2888.         #define TIM_M2_DTR_TIM_490                                        (0xDEUL<<TIM_M2_DTR_TIM_POS)        
  2889.         #define TIM_M2_DTR_TIM_498                                        (0xDFUL<<TIM_M2_DTR_TIM_POS)

  2890.         #define TIM_M2_DTR_TIM_514                                        (0xE0UL<<TIM_M2_DTR_TIM_POS)
  2891.         #define TIM_M2_DTR_TIM_530                                        (0xE1UL<<TIM_M2_DTR_TIM_POS)
  2892.         #define TIM_M2_DTR_TIM_546                                        (0xE2UL<<TIM_M2_DTR_TIM_POS)
  2893.         #define TIM_M2_DTR_TIM_547                                        (0xE3UL<<TIM_M2_DTR_TIM_POS)
  2894.         #define TIM_M2_DTR_TIM_562                                        (0xE4UL<<TIM_M2_DTR_TIM_POS)
  2895.         #define TIM_M2_DTR_TIM_578                                        (0xE5UL<<TIM_M2_DTR_TIM_POS)
  2896.         #define TIM_M2_DTR_TIM_594                                        (0xE6UL<<TIM_M2_DTR_TIM_POS)
  2897.         #define TIM_M2_DTR_TIM_610                                        (0xE7UL<<TIM_M2_DTR_TIM_POS)
  2898.         #define TIM_M2_DTR_TIM_642                                        (0xE8UL<<TIM_M2_DTR_TIM_POS)
  2899.         #define TIM_M2_DTR_TIM_658                                        (0xE9UL<<TIM_M2_DTR_TIM_POS)
  2900.         #define TIM_M2_DTR_TIM_674                                        (0xEAUL<<TIM_M2_DTR_TIM_POS)
  2901.         #define TIM_M2_DTR_TIM_690                                        (0xEBUL<<TIM_M2_DTR_TIM_POS)
  2902.         #define TIM_M2_DTR_TIM_706                                        (0xECUL<<TIM_M2_DTR_TIM_POS)
  2903.         #define TIM_M2_DTR_TIM_722                                        (0xEDUL<<TIM_M2_DTR_TIM_POS)
  2904.         #define TIM_M2_DTR_TIM_738                                        (0xEEUL<<TIM_M2_DTR_TIM_POS)
  2905.         #define TIM_M2_DTR_TIM_754                                        (0xEFUL<<TIM_M2_DTR_TIM_POS)
  2906.         #define TIM_M2_DTR_TIM_770                                        (0xF0UL<<TIM_M2_DTR_TIM_POS)
  2907.         #define TIM_M2_DTR_TIM_786                                        (0xF1UL<<TIM_M2_DTR_TIM_POS)
  2908.         #define TIM_M2_DTR_TIM_802                                        (0xF2UL<<TIM_M2_DTR_TIM_POS)
  2909.         #define TIM_M2_DTR_TIM_818                                        (0xF3UL<<TIM_M2_DTR_TIM_POS)
  2910.         #define TIM_M2_DTR_TIM_834                                        (0xF4UL<<TIM_M2_DTR_TIM_POS)
  2911.         #define TIM_M2_DTR_TIM_850                                        (0xF5UL<<TIM_M2_DTR_TIM_POS)
  2912.         #define TIM_M2_DTR_TIM_866                                        (0xF6UL<<TIM_M2_DTR_TIM_POS)
  2913.         #define TIM_M2_DTR_TIM_882                                        (0xF7UL<<TIM_M2_DTR_TIM_POS)
  2914.         #define TIM_M2_DTR_TIM_898                                        (0xF8UL<<TIM_M2_DTR_TIM_POS)
  2915.         #define TIM_M2_DTR_TIM_914                                        (0xF9UL<<TIM_M2_DTR_TIM_POS)
  2916.         #define TIM_M2_DTR_TIM_930                                        (0xFAUL<<TIM_M2_DTR_TIM_POS)
  2917.         #define TIM_M2_DTR_TIM_946                                        (0xFBUL<<TIM_M2_DTR_TIM_POS)
  2918.         #define TIM_M2_DTR_TIM_962                                        (0xFCUL<<TIM_M2_DTR_TIM_POS)
  2919.         #define TIM_M2_DTR_TIM_978                                        (0xFDUL<<TIM_M2_DTR_TIM_POS)
  2920.         #define TIM_M2_DTR_TIM_994                                        (0xFEUL<<TIM_M2_DTR_TIM_POS)
  2921.         #define TIM_M2_DTR_TIM_1010                                        (0xFFUL<<TIM_M2_DTR_TIM_POS)
  2922.         
  2923.         //===重复周期设置值
  2924.         #define TIM_M2_RCR_RCR_POS                                        0
  2925.         #define TIM_M2_RCR_RCR_MASK                                 (0xFFUL<<TIM_M2_RCR_RCR_POS)
  2926.         #define TIM_M2_RCR_RCR                                                TIM_M2_RCR_RCR_MASK

  2927.         //===通道0比较捕获寄存器
  2928.         #define TIM_M2_CCR_CCR0A_POS                                0
  2929.         #define TIM_M2_CCR_CCR0A_MASK                                 (0xFFFFUL<<TIM_M2_CCR_CCR0A_POS)
  2930.         #define TIM_M2_CCR_CCR0A                                        TIM_M2_CCR_CCR0A_MASK

  2931.         #define TIM_M2_CCR_CCR0B_POS                                0
  2932.         #define TIM_M2_CCR_CCR0B_MASK                                 (0xFFFFUL<<TIM_M2_CCR_CCR0A_POS)
  2933.         #define TIM_M2_CCR_CCR0B                                        TIM_M2_CCR_CCR0B_MASK

  2934.         //===通道1比较捕获寄存器
  2935.         #define TIM_M2_CCR_CCR1A_POS                                0
  2936.         #define TIM_M2_CCR_CCR1A_MASK                                 (0xFFFFUL<<TIM_M2_CCR_CCR1A_POS)
  2937.         #define TIM_M2_CCR_CCR1A                                        TIM_M2_CCR_CCR1A_MASK

  2938.         #define TIM_M2_CCR_CCR1B_POS                                0
  2939.         #define TIM_M2_CCR_CCR1B_MASK                                 (0xFFFFUL<<TIM_M2_CCR_CCR1B_POS)
  2940.         #define TIM_M2_CCR_CCR1B                                        TIM_M2_CCR_CCR1B_MASK

  2941.         //===通道2比较捕获寄存器
  2942.         #define TIM_M2_CCR_CCR2A_POS                                0
  2943.         #define TIM_M2_CCR_CCR2A_MASK                                 (0xFFFFUL<<TIM_M2_CCR_CCR2A_POS)
  2944.         #define TIM_M2_CCR_CCR2A                                        TIM_M2_CCR_CCR2A_MASK

  2945.         #define TIM_M2_CCR_CCR2B_POS                                0
  2946.         #define TIM_M2_CCR_CCR2B_MASK                                 (0xFFFFUL<<TIM_M2_CCR_CCR2B_POS)
  2947.         #define TIM_M2_CCR_CCR2B                                        TIM_M2_CCR_CCR2B_MASK

  2948. #pragma endregion

  2949. #pragma region TIM_M3
  2950.         //===普通定时器
  2951.         typedef struct
  2952.         {
  2953.                 __IO uint32_t ARR;                        //---重载寄存器                        00
  2954.                 __IO uint32_t CNT;                        //---16位模式计数寄存器        04
  2955.                 uint32_t RESERVED1;                        //---保留字节                        08
  2956.                 __IO uint32_t M23CR;                //---控制寄存器                        0C
  2957.                 __IO uint32_t SR;                        //---中断标志                        10
  2958.                 __IO uint32_t CSR;                        //---中断标志清除                14
  2959.                 __IO uint32_t MSCR;                        //---主从模式控制                18
  2960.                 __IO uint32_t FLTR;                        //---滤波控制                        1C
  2961.                 __IO uint32_t ADTR;                        //---ADC触发控制                20
  2962.                 __IO uint32_t CRCH0;                //---比较单元0控制寄存器        24
  2963.                 __IO uint32_t CRCH1;                //---比较单元1控制寄存器        28
  2964.                 __IO uint32_t CRCH2;                //---比较单元2控制寄存器        2C
  2965.                 __IO uint32_t DTR;                        //---死区寄存器                        30
  2966.                 __IO uint32_t RCR;                        //---重复计数寄存器                34
  2967.                 __IO uint32_t ARRDM;                //---控制寄存器1                38

  2968.                 __IO uint32_t CCR0A;                //---比较0A寄存器                3C
  2969.                 __IO uint32_t CCR0B;                //---比较0B寄存器                40
  2970.                 __IO uint32_t CCR1A;                //---比较1A寄存器                44
  2971.                 __IO uint32_t CCR1B;                //---比较1B寄存器                48
  2972.                 __IO uint32_t CCR2A;                //---比较2A寄存器                4C
  2973.                 __IO uint32_t CCR2B;                //---比较2B寄存器                50
  2974.         } TIM_M3_TypeDef;
  2975.         
  2976.         #define TIM_M3_ARR_ARR_POS                                        0
  2977.         #define TIM_M3_ARR_ARR_MASK                                        (0xFFFFUL<<TIM_M3_ARR_ARR_POS)
  2978.         #define TIM_M3_ARR_ARR                                                TIM_M3_ARR_ARR_MASK

  2979.         #define TIM_M3_CNT_CNT_POS                                        0
  2980.         #define TIM_M3_CNT_CNT_MASK                                        (0xFFFFUL<<TIM_M3_CNT_CNT_POS)
  2981.         #define TIM_M3_CNT_CNT                                                TIM_M3_CNT_CNT_MASK

  2982.         //===控制寄存器
  2983.         #define TIM_M3_M23CR_DIR_POS                                27
  2984.         #define TIM_M3_M23CR_DIR_MASK                                (0x01UL<<TIM_M3_M23CR_DIR_POS)
  2985.         #define TIM_M3_M23CR_DIR                                        TIM_M3_M23CR_DIR_MASK

  2986.         #define TIM_M3_M23CR_DIR_UP                                        (0x00UL<<TIM_M3_M23CR_DIR_POS)
  2987.         #define TIM_M3_M23CR_DIR_DOWN                                (0x01UL<<TIM_M3_M23CR_DIR_POS)

  2988.         //===软件刹车
  2989.         #define TIM_M3_M23CR_BG_POS                                        26
  2990.         #define TIM_M3_M23CR_BG_MASK                                (0x01UL<<TIM_M3_M23CR_BG_POS)
  2991.         #define TIM_M3_M23CR_BG                                                TIM_M3_M23CR_BG_MASK

  2992.         #define TIM_M3_M23CR_BG_ENABLE                                (0x01UL<<TIM_M3_M23CR_BG_POS)
  2993.         #define TIM_M3_M23CR_BG_DISABLE                                (0x00UL<<TIM_M3_M23CR_BG_POS)

  2994.         //===软件更新
  2995.         #define TIM_M3_M23CR_UG_POS                                        25
  2996.         #define TIM_M3_M23CR_UG_MASK                                (0x01UL<<TIM_M3_M23CR_UG_POS)
  2997.         #define TIM_M3_M23CR_UG                                                TIM_M3_M23CR_UG_MASK

  2998.         #define TIM_M3_M23CR_UG_ENABLE                                (0x01UL<<TIM_M3_M23CR_UG_POS)
  2999.         #define TIM_M3_M23CR_UG_DISABLE                                (0x00UL<<TIM_M3_M23CR_UG_POS)

  3000.         //===软件触发
  3001.         #define TIM_M3_M23CR_TG_POS                                        24
  3002.         #define TIM_M3_M23CR_TG_MASK                                (0x01UL<<TIM_M3_M23CR_TG_POS)
  3003.         #define TIM_M3_M23CR_TG                                                TIM_M3_M23CR_TG_MASK

  3004.         #define TIM_M3_M23CR_TG_ENABLE                                (0x01UL<<TIM_M3_M23CR_TG_POS)
  3005.         #define TIM_M3_M23CR_TG_DISABLE                                (0x00UL<<TIM_M3_M23CR_TG_POS)

  3006.         //===OCREF清除使能
  3007.         #define TIM_M3_M23CR_OCCE_POS                                23
  3008.         #define TIM_M3_M23CR_OCCE_MASK                                (0x01UL<<TIM_M3_M23CR_OCCE_POS)
  3009.         #define TIM_M3_M23CR_OCCE                                        TIM_M3_M23CR_OCCE_MASK

  3010.         #define TIM_M3_M23CR_OCCE_ENABLE                        (0x01UL<<TIM_M3_M23CR_OCCE_POS)
  3011.         #define TIM_M3_M23CR_OCCE_DISABLE                        (0x00UL<<TIM_M3_M23CR_OCCE_POS)

  3012.         //===A比较模式中断
  3013.         #define TIM_M3_M23CR_CISA_POS                                21
  3014.         #define TIM_M3_M23CR_CISA_MASK                                (0x03UL<<TIM_M3_M23CR_CISA_POS)
  3015.         #define TIM_M3_M23CR_CISA                                        TIM_M3_M23CR_CISA_MASK

  3016.         #define TIM_M3_M23CR_CISA_EDGE_NONE                                (0x00UL<<TIM_M3_M23CR_CISA_POS)
  3017.         #define TIM_M3_M23CR_CISA_EDGE_RISE                                (0x01UL<<TIM_M3_M23CR_CISA_POS)
  3018.         #define TIM_M3_M23CR_CISA_EDGE_FAIL                                (0x02UL<<TIM_M3_M23CR_CISA_POS)
  3019.         #define TIM_M3_M23CR_CISA_EDGE_ALL                                (0x03UL<<TIM_M3_M23CR_CISA_POS)

  3020.         //===刹车中断使能
  3021.         #define TIM_M3_M23CR_BIE_POS                                20
  3022.         #define TIM_M3_M23CR_BIE_MASK                                (0x01UL<<TIM_M3_M23CR_BIE_POS)
  3023.         #define TIM_M3_M23CR_BIE                                        TIM_M3_M23CR_BIE_MASK

  3024.         //===触发中断使能
  3025.         #define TIM_M3_M23CR_TIE_POS                                19
  3026.         #define TIM_M3_M23CR_TIE_MASK                                (0x01UL<<TIM_M3_M23CR_TIE_POS)
  3027.         #define TIM_M3_M23CR_TIE                                        TIM_M3_M23CR_TIE_MASK

  3028.         //===触发DMA中断使能
  3029.         #define TIM_M3_M23CR_TDMAIE_POS                                18
  3030.         #define TIM_M3_M23CR_TDMAIE_MASK                        (0x01UL<<TIM_M3_M23CR_TDMAIE_POS)
  3031.         #define TIM_M3_M23CR_TDMAIE                                        TIM_M3_M23CR_TDMAIE_MASK

  3032.         //===更新源
  3033.         #define TIM_M3_M23CR_URS_POS                                17
  3034.         #define TIM_M3_M23CR_URS_MASK                                (0x01UL<<TIM_M3_M23CR_URS_POS)
  3035.         #define TIM_M3_M23CR_URS                                        TIM_M3_M23CR_URS_MASK
  3036.         
  3037.         #define TIM_M3_M23CR_URS_ALL                                (0x00UL<<TIM_M3_M23CR_URS_POS)
  3038.         #define TIM_M3_M23CR_URS_RISE_OR_FAIL                (0x00UL<<TIM_M3_M23CR_URS_POS)

  3039.         //===OCREF清除源选择
  3040.         #define TIM_M3_M23CR_OCCS_POS                                16
  3041.         #define TIM_M3_M23CR_OCCS_MASK                                (0x01UL<<TIM_M3_M23CR_OCCS_POS)
  3042.         #define TIM_M3_M23CR_OCCS                                        TIM_M3_M23CR_OCCS_MASK

  3043.         #define TIM_M3_M23CR_OCCS_VC                                (0x00UL<<TIM_M3_M23CR_OCCS_POS)
  3044.         #define TIM_M3_M23CR_OCCS_ETR                                (0x01UL<<TIM_M3_M23CR_OCCS_POS)

  3045.         //===PWM互补模式选择
  3046.         #define TIM_M3_M23CR_CSG_POS                                15
  3047.         #define TIM_M3_M23CR_CSG_MASK                                (0x01UL<<TIM_M3_M23CR_CSG_POS)
  3048.         #define TIM_M3_M23CR_CSG                                        TIM_M3_M23CR_CSG_MASK

  3049.         #define TIM_M3_M23CR_CSG_COMP                                (0x00UL<<TIM_M3_M23CR_CSG_POS)
  3050.         #define TIM_M3_M23CR_CSG_CAPT                                (0x01UL<<TIM_M3_M23CR_CSG_POS)
  3051.         
  3052.         //===触发选择
  3053.         #define TIM_M3_M23CR_TRIG_POS                                14
  3054.         #define TIM_M3_M23CR_TRIG_MASK                                (0x01UL<<TIM_M3_M23CR_TRIG_POS)
  3055.         #define TIM_M3_M23CR_TRIG                                        TIM_M3_M23CR_TRIG_MASK

  3056.         #define TIM_M3_M23CR_TRIG_CYCLE                                (0x00UL<<TIM_M3_M23CR_TRIG_POS)
  3057.         #define TIM_M3_M23CR_TRIG_SINGLE                        (0x01UL<<TIM_M3_M23CR_TRIG_POS)

  3058.         //===工作模式
  3059.         #define TIM_M3_M23CR_MODE_POS                                12
  3060.         #define TIM_M3_M23CR_MODE_MASK                                (0x03UL<<TIM_M3_M23CR_MODE_POS)
  3061.         #define TIM_M3_M23CR_MODE                                        TIM_M3_M23CR_MODE_MASK

  3062.         #define TIM_M3_M23CR_MODE_TIM0                                (0x00UL<<TIM_M3_M23CR_MODE_POS)
  3063.         #define TIM_M3_M23CR_MODE_PWC                                (0x01UL<<TIM_M3_M23CR_MODE_POS)
  3064.         #define TIM_M3_M23CR_MODE_SAWTOOTH                        (0x02UL<<TIM_M3_M23CR_MODE_POS)
  3065.         #define TIM_M3_M23CR_MODE_TRIANGLE                        (0x03UL<<TIM_M3_M23CR_MODE_POS)

  3066.         //===更新DMA使能
  3067.         #define TIM_M3_M23CR_UDMAEN_POS                                11
  3068.         #define TIM_M3_M23CR_UDMAEN_MASK                        (0x01UL<<TIM_M3_M23CR_UDMAEN_POS)
  3069.         #define TIM_M3_M23CR_UDMAEN                                        TIM_M3_M23CR_UDMAEN_MASK

  3070.         //===更新中断使能
  3071.         #define TIM_M3_M23CR_UIE_POS                                10
  3072.         #define TIM_M3_M23CR_UIE_MASK                                (0x01UL<<TIM_M3_M23CR_UIE_POS)
  3073.         #define TIM_M3_M23CR_UIE                                        TIM_M3_M23CR_UIE_MASK

  3074.         //===下降沿捕获使能控制
  3075.         #define TIM_M3_M23CR_CFG_POS                                9
  3076.         #define TIM_M3_M23CR_CFG_MASK                                (0x01UL<<TIM_M3_M23CR_CFG_POS)
  3077.         #define TIM_M3_M23CR_CFG                                        TIM_M3_M23CR_CFG_MASK

  3078.         #define TIM_M3_M23CR_CFG_ENABLE                                (0x01UL<<TIM_M3_M23CR_CFG_POS)
  3079.         #define TIM_M3_M23CR_CFG_DISABLE                        (0x00UL<<TIM_M3_M23CR_CFG_POS)
  3080.         
  3081.         //===上升沿捕获使能控制
  3082.         #define TIM_M3_M23CR_CRG_POS                                8
  3083.         #define TIM_M3_M23CR_CRG_MASK                                (0x01UL<<TIM_M3_M23CR_CRG_POS)
  3084.         #define TIM_M3_M23CR_CRG                                        TIM_M3_M23CR_CRG_MASK

  3085.         #define TIM_M3_M23CR_CRG_ENABLE                                (0x01UL<<TIM_M3_M23CR_CRG_POS)
  3086.         #define TIM_M3_M23CR_CRG_DISABLE                        (0x00UL<<TIM_M3_M23CR_CRG_POS)

  3087.         //===重载缓存使能控制
  3088.         #define TIM_M3_M23CR_BUFPEN_POS                                7
  3089.         #define TIM_M3_M23CR_BUFPEN_MASK                        (0x01UL<<TIM_M3_M23CR_BUFPEN_POS)
  3090.         #define TIM_M3_M23CR_BUFPEN                                        TIM_M3_M23CR_BUFPEN_MASK
  3091.         
  3092.         //===时钟分频选择
  3093.         #define TIM_M3_M23CR_PRS_POS                                4
  3094.         #define TIM_M3_M23CR_PRS_MASK                                 (0x07UL<<TIM_M3_M23CR_PRS_POS)
  3095.         #define TIM_M3_M23CR_PRS                                        TIM_M3_M23CR_PRS_MASK

  3096.         #define TIM_M3_M23CR_PRS_1                                         (0x00UL<<TIM_M3_M23CR_PRS_POS)
  3097.         #define TIM_M3_M23CR_PRS_2                                         (0x01UL<<TIM_M3_M23CR_PRS_POS)
  3098.         #define TIM_M3_M23CR_PRS_4                                         (0x02UL<<TIM_M3_M23CR_PRS_POS)
  3099.         #define TIM_M3_M23CR_PRS_8                                         (0x03UL<<TIM_M3_M23CR_PRS_POS)
  3100.         #define TIM_M3_M23CR_PRS_16                                         (0x04UL<<TIM_M3_M23CR_PRS_POS)        
  3101.         #define TIM_M3_M23CR_PRS_32                                         (0x05UL<<TIM_M3_M23CR_PRS_POS)
  3102.         #define TIM_M3_M23CR_PRS_64                                         (0x06UL<<TIM_M3_M23CR_PRS_POS)
  3103.         #define TIM_M3_M23CR_PRS_256                                 (0x07UL<<TIM_M3_M23CR_PRS_POS)

  3104.         //===单双点比较控制
  3105.         #define TIM_M3_M23CR_PWM2S_POS                                3
  3106.         #define TIM_M3_M23CR_PWM2S_MASK                                (0x01UL<<TIM_M3_M23CR_PWM2S_POS)
  3107.         #define TIM_M3_M23CR_PWM2S                                        TIM_M3_M23CR_PWM2S_MASK

  3108.         #define TIM_M3_M23CR_PWM2S_DOUBLE                        (0x00UL<<TIM_M3_M23CR_PWM2S_POS)
  3109.         #define TIM_M3_M23CR_PWM2S_SINGLE                        (0x01UL<<TIM_M3_M23CR_PWM2S_POS)

  3110.         //===计数时钟
  3111.         #define TIM_M3_M23CR_CT_POS                                        2
  3112.         #define TIM_M3_M23CR_CT_MASK                                 (0x01UL<<TIM_M3_M23CR_CT_POS)
  3113.         #define TIM_M3_M23CR_CT                                                TIM_M3_M23CR_CT_MASK

  3114.         #define TIM_M3_M23CR_CT_TCLK                                (0x00UL<<TIM_M3_M23CR_CT_POS)
  3115.         #define TIM_M3_M23CR_CT_ETR                                        (0x01UL<<TIM_M3_M23CR_CT_POS)

  3116.         //===PWM模式选择
  3117.         #define TIM_M3_M23CR_COMP_POS                                1
  3118.         #define TIM_M3_M23CR_COMP_MASK                                 (0x01UL<<TIM_M3_M23CR_COMP_POS)
  3119.         #define TIM_M3_M23CR_COMP                                        TIM_M3_M23CR_COMP_MASK

  3120.         #define TIM_M3_M23CR_COMP_PWM_COMP                        (0x01UL<<TIM_M3_M23CR_COMP_POS)
  3121.         #define TIM_M3_M23CR_COMP_PWM_INDEP                        (0x00UL<<TIM_M3_M23CR_COMP_POS)

  3122.         //===定时器使能控制
  3123.         #define TIM_M3_M23CR_EN_POS                                        0
  3124.         #define TIM_M3_M23CR_EN_MASK                                 (0x01U<<TIM_M3_M23CR_EN_POS)
  3125.         #define TIM_M3_M23CR_EN                                                TIM_M3_M23CR_EN_MASK

  3126.         //===中断标志寄存器
  3127.         //===触发中断标志
  3128.         #define TIM_M3_SR_TIE_POS                                        15
  3129.         #define TIM_M3_SR_TIE_MASK                                         (0x01U<<TIM_M3_SR_TIE_POS)
  3130.         #define TIM_M3_SR_TIE                                                TIM_M3_SR_TIE_MASK
  3131.                         
  3132.         //===刹车中断标志
  3133.         #define TIM_M3_SR_BIE_POS                                        14
  3134.         #define TIM_M3_SR_BIE_MASK                                         (0x01U<<TIM_M3_SR_BIE_POS)
  3135.         #define TIM_M3_SR_BIE                                                TIM_M3_SR_BIE_MASK
  3136.                
  3137.         //==CH2B捕获丢数据
  3138.         #define TIM_M3_SR_CH2B_ERROR_POS                        13
  3139.         #define TIM_M3_SR_CH2B_ERROR_MASK                         (0x01U<<TIM_M3_SR_CH2B_ERROR_POS)
  3140.         #define TIM_M3_SR_CH2B_ERROR                                TIM_M3_SR_CH2B_ERROR_MASK
  3141.                
  3142.         //==CH1B捕获丢数据
  3143.         #define TIM_M3_SR_CH1B_ERROR_POS                        12
  3144.         #define TIM_M3_SR_CH1B_ERROR_MASK                         (0x01U<<TIM_M3_SR_CH1B_ERROR_POS)
  3145.         #define TIM_M3_SR_CH1B_ERROR                                TIM_M3_SR_CH1B_ERROR_MASK
  3146.                
  3147.         //==CH0B捕获丢数据
  3148.         #define TIM_M3_SR_CH0B_ERROR_POS                        11
  3149.         #define TIM_M3_SR_CH0B_ERROR_MASK                         (0x01U<<TIM_M3_SR_CH0B_ERROR_POS)
  3150.         #define TIM_M3_SR_CH0B_ERROR                                TIM_M3_SR_CH0B_ERROR_MASK
  3151.                
  3152.         //==CH2A捕获丢数据
  3153.         #define TIM_M3_SR_CH2A_ERROR_POS                        10
  3154.         #define TIM_M3_SR_CH2A_ERROR_MASK                         (0x01U<<TIM_M3_SR_CH2A_ERROR_POS)
  3155.         #define TIM_M3_SR_CH2A_ERROR                                TIM_M3_SR_CH2A_ERROR_MASK
  3156.                
  3157.         //==CH1A捕获丢数据
  3158.         #define TIM_M3_SR_CH1A_ERROR_POS                        9
  3159.         #define TIM_M3_SR_CH1A_ERROR_MASK                         (0x01U<<TIM_M3_SR_CH1A_ERROR_POS)
  3160.         #define TIM_M3_SR_CH1A_ERROR                                TIM_M3_SR_CH1A_ERROR_MASK
  3161.                
  3162.         //==CH0A捕获丢数据
  3163.         #define TIM_M3_SR_CH0A_ERROR_POS                        8
  3164.         #define TIM_M3_SR_CH0A_ERROR_MASK                         (0x01U<<TIM_M3_SR_CH0A_ERROR_POS)
  3165.         #define TIM_M3_SR_CH0A_ERROR                                TIM_M3_SR_CH0A_ERROR_MASK
  3166.                         
  3167.         //==CH2B捕获/比较中断标志
  3168.         #define TIM_M3_SR_CH2B_FLAG_POS                                7
  3169.         #define TIM_M3_SR_CH2B_FLAG_MASK                         (0x01U<<TIM_M3_SR_CH2B_FLAG_POS)
  3170.         #define TIM_M3_SR_CH2B_FLAG                                        TIM_M3_SR_CH2B_FLAG_MASK
  3171.                
  3172.         //==CH1B捕获/比较中断标志
  3173.         #define TIM_M3_SR_CH1B_FLAG_POS                                6
  3174.         #define TIM_M3_SR_CH1B_FLAG_MASK                         (0x01U<<TIM_M3_SR_CH1B_FLAG_POS)
  3175.         #define TIM_M3_SR_CH1B_FLAG                                        TIM_M3_SR_CH1B_FLAG_MASK
  3176.                
  3177.         //==CH0B捕获/比较中断标志
  3178.         #define TIM_M3_SR_CH0B_FLAG_POS                                5
  3179.         #define TIM_M3_SR_CH0B_FLAG_MASK                         (0x01U<<TIM_M3_SR_CH0B_FLAG_POS)
  3180.         #define TIM_M3_SR_CH0B_FLAG                                        TIM_M3_SR_CH0B_FLAG_MASK
  3181.                
  3182.         //==CH2A捕获/比较中断标志
  3183.         #define TIM_M3_SR_CH2A_FLAG_POS                                4
  3184.         #define TIM_M3_SR_CH2A_FLAG_MASK                         (0x01U<<TIM_M3_SR_CH2A_FLAG_POS)
  3185.         #define TIM_M3_SR_CH2A_FLAG                                        TIM_M3_SR_CH2A_FLAG_MASK
  3186.         
  3187.         //==CH1A捕获/比较中断标志
  3188.         #define TIM_M3_SR_CH1A_FLAG_POS                                3
  3189.         #define TIM_M3_SR_CH1A_FLAG_MASK                         (0x01U<<TIM_M3_SR_CH1A_FLAG_POS)
  3190.         #define TIM_M3_SR_CH1A_FLAG                                        TIM_M3_SR_CH1A_FLAG_MASK
  3191.                
  3192.         //==CH0A捕获/比较中断标志
  3193.         #define TIM_M3_SR_CH0A_FLAG_POS                                2
  3194.         #define TIM_M3_SR_CH0A_FLAG_MASK                         (0x01U<<TIM_M3_SR_CH0A_FLAG_POS)
  3195.         #define TIM_M3_SR_CH0A_FLAG                                        TIM_M3_SR_CH0A_FLAG_MASK
  3196.                
  3197.         //===更新中断标志位
  3198.         #define TIM_M3_SR_UIE_POS                                        0
  3199.         #define TIM_M3_SR_UIE_MASK                                         (0x01U<<TIM_M3_SR_UIE_POS)
  3200.         #define TIM_M3_SR_UIE                                                TIM_M3_SR_UIE_MASK

  3201.         //===清楚标志寄存器
  3202.         #define TIM_M3_CSR_MASK                                                0xFFFDUL

  3203.         #define TIM_M3_CSR_TIE_POS                                        15
  3204.         #define TIM_M3_CSR_TIE_MASK                                         (0x01U<<TIM_M3_CSR_TIE_POS)
  3205.         #define TIM_M3_CSR_TIE                                                TIM_M3_CSR_TIE_MASK
  3206.                                           
  3207.         #define TIM_M3_CSR_BIE_POS                                        14
  3208.         #define TIM_M3_CSR_BIE_MASK                                         (0x01U<<TIM_M3_CSR_BIE_POS)
  3209.         #define TIM_M3_CSR_BIE                                                TIM_M3_CSR_BIE_MASK
  3210.                                           
  3211.         #define TIM_M3_CSR_CH2B_ERROR_POS                        13
  3212.         #define TIM_M3_CSR_CH2B_ERROR_MASK                        (0x01U<<TIM_M3_CSR_CH2B_ERROR_POS)
  3213.         #define TIM_M3_CSR_CH2B_ERROR                                TIM_M3_CSR_CH2B_ERROR_MASK
  3214.                                           
  3215.         #define TIM_M3_CSR_CH1B_ERROR_POS                        12
  3216.         #define TIM_M3_CSR_CH1B_ERROR_MASK                        (0x01U<<TIM_M3_CSR_CH1B_ERROR_POS)
  3217.         #define TIM_M3_CSR_CH1B_ERROR                                TIM_M3_CSR_CH1B_ERROR_MASK
  3218.                                           
  3219.         #define TIM_M3_CSR_CH0B_ERROR_POS                        11
  3220.         #define TIM_M3_CSR_CH0B_ERROR_MASK                        (0x01U<<TIM_M3_CSR_CH0B_ERROR_POS)
  3221.         #define TIM_M3_CSR_CH0B_ERROR                                TIM_M3_CSR_CH0B_ERROR_MASK
  3222.                                           
  3223.         #define TIM_M3_CSR_CH2A_ERROR_POS                        10
  3224.         #define TIM_M3_CSR_CH2A_ERROR_MASK                        (0x01U<<TIM_M3_CSR_CH2A_ERROR_POS)
  3225.         #define TIM_M3_CSR_CH2A_ERROR                                TIM_M3_CSR_CH2A_ERROR_MASK
  3226.                                           
  3227.         #define TIM_M3_CSR_CH1A_ERROR_POS                        9
  3228.         #define TIM_M3_CSR_CH1A_ERROR_MASK                        (0x01U<<TIM_M3_CSR_CH1A_ERROR_POS)
  3229.         #define TIM_M3_CSR_CH1A_ERROR                                TIM_M3_CSR_CH1A_ERROR_MASK
  3230.                                           
  3231.         #define TIM_M3_CSR_CH0A_ERROR_POS                        8
  3232.         #define TIM_M3_CSR_CH0A_ERROR_MASK                        (0x01U<<TIM_M3_CSR_CH0A_ERROR_POS)
  3233.         #define TIM_M3_CSR_CH0A_ERROR                                TIM_M3_CSR_CH0A_ERROR_MASK
  3234.                                           
  3235.         #define TIM_M3_CSR_CH2B_FLAG_POS                        7
  3236.         #define TIM_M3_CSR_CH2B_FLAG_MASK                (0x01U<<TIM_M3_CSR_CH2B_FLAG_POS)
  3237.         #define TIM_M3_CSR_CH2B_FLAG                                TIM_M3_CSR_CH2B_FLAG_MASK
  3238.                                           
  3239.         #define TIM_M3_CSR_CH1B_FLAG_POS                        6
  3240.         #define TIM_M3_CSR_CH1B_FLAG_MASK                (0x01U<<TIM_M3_CSR_CH1B_FLAG_POS)
  3241.         #define TIM_M3_CSR_CH1B_FLAG                                TIM_M3_CSR_CH1B_FLAG_MASK
  3242.                                           
  3243.         #define TIM_M3_CSR_CH0B_FLAG_POS                        5
  3244.         #define TIM_M3_CSR_CH0B_FLAG_MASK                (0x01U<<TIM_M3_CSR_CH0B_FLAG_POS)
  3245.         #define TIM_M3_CSR_CH0B_FLAG                                TIM_M3_CSR_CH0B_FLAG_MASK
  3246.                                           
  3247.         #define TIM_M3_CSR_CH2A_FLAG_POS                        4
  3248.         #define TIM_M3_CSR_CH2A_FLAG_MASK                (0x01U<<TIM_M3_CSR_CH2A_FLAG_POS)
  3249.         #define TIM_M3_CSR_CH2A_FLAG                                TIM_M3_CSR_CH2A_FLAG_MASK
  3250.                                           
  3251.         #define TIM_M3_CSR_CH1A_FLAG_POS                        3
  3252.         #define TIM_M3_CSR_CH1A_FLAG_MASK                (0x01U<<TIM_M3_CSR_CH1A_FLAG_POS)
  3253.         #define TIM_M3_CSR_CH1A_FLAG                                TIM_M3_CSR_CH1A_FLAG_MASK
  3254.                                           
  3255.         #define TIM_M3_CSR_CH0A_FLAG_POS                        2
  3256.         #define TIM_M3_CSR_CH0A_FLAG_MASK                (0x01U<<TIM_M3_CSR_CH0A_FLAG_POS)
  3257.         #define TIM_M3_CSR_CH0A_FLAG                                TIM_M3_CSR_CH0A_FLAG_MASK
  3258.                                           
  3259.         #define TIM_M3_CSR_UIE_POS                                        0
  3260.         #define TIM_M3_CSR_UIE_MASK                                         (0x01U<<TIM_M3_CSR_UIE_POS)
  3261.         #define TIM_M3_CSR_UIE                                                TIM_M3_CSR_UIE_MASK

  3262.         //===主从模式控制寄存器
  3263.         //===CH0B输入选择
  3264.         #define TIM_M3_MSCR_IB0S_POS                                12
  3265.         #define TIM_M3_MSCR_IB0S_MASK                                 (0x01U<<TIM_M3_MSCR_IB0S_POS)
  3266.         #define TIM_M3_MSCR_IB0S                                        TIM_M3_MSCR_IB0S_MASK

  3267.         //===CH0A输入选择
  3268.         #define TIM_M3_MSCR_IA0S_POS                                11
  3269.         #define TIM_M3_MSCR_IA0S_MASK                                 (0x01U<<TIM_M3_MSCR_IA0S_POS)
  3270.         #define TIM_M3_MSCR_IA0S                                        TIM_M3_MSCR_IA0S_MASK

  3271.         //===从模式选择
  3272.         #define TIM_M3_MSCR_SMS_POS                                        8
  3273.         #define TIM_M3_MSCR_SMS_MASK                                (0x07U<<TIM_M3_MSCR_SMS_POS)
  3274.         #define TIM_M3_MSCR_SMS                                                TIM_M3_MSCR_SMS_MASK

  3275.         #define TIM_M3_MSCR_SMS_TCLK                                (0x00U<<TIM_M3_MSCR_SMS_POS)
  3276.         #define TIM_M3_MSCR_SMS_RESET                                (0x01U<<TIM_M3_MSCR_SMS_POS)
  3277.         #define TIM_M3_MSCR_SMS_TRIG                                (0x02U<<TIM_M3_MSCR_SMS_POS)
  3278.         #define TIM_M3_MSCR_SMS_ETR                                        (0x03U<<TIM_M3_MSCR_SMS_POS)
  3279.         #define TIM_M3_MSCR_SMS_ENCODE_MODE1                (0x04U<<TIM_M3_MSCR_SMS_POS)
  3280.         #define TIM_M3_MSCR_SMS_ENCODE_MODE2                (0x05U<<TIM_M3_MSCR_SMS_POS)
  3281.         #define TIM_M3_MSCR_SMS_ENCODE_MODE3                (0x06U<<TIM_M3_MSCR_SMS_POS)
  3282.         #define TIM_M3_MSCR_SMS_GATE                                (0x07U<<TIM_M3_MSCR_SMS_POS)

  3283.         //===触发模式选择
  3284.         #define TIM_M3_MSCR_TRIG_POS                                5
  3285.         #define TIM_M3_MSCR_TRIG_MASK                                (0x07U<<TIM_M3_MSCR_TRIG_POS)
  3286.         #define TIM_M3_MSCR_TRIG                                        TIM_M3_MSCR_TRIG_MASK

  3287.         #define TIM_M3_MSCR_TRIG_ETRP                                (0x00U<<TIM_M3_MSCR_TRIG_POS)
  3288.         #define TIM_M3_MSCR_TRIG_ITR0                                (0x01U<<TIM_M3_MSCR_TRIG_POS)
  3289.         #define TIM_M3_MSCR_TRIG_ITR1                                (0x02U<<TIM_M3_MSCR_TRIG_POS)
  3290.         #define TIM_M3_MSCR_TRIG_ITR2                                (0x03U<<TIM_M3_MSCR_TRIG_POS)
  3291.         #define TIM_M3_MSCR_TRIG_ITR3                                (0x04U<<TIM_M3_MSCR_TRIG_POS)
  3292.         #define TIM_M3_MSCR_TRIG_CH0A                                (0x05U<<TIM_M3_MSCR_TRIG_POS)
  3293.         #define TIM_M3_MSCR_TRIG_CH0AP                                (0x06U<<TIM_M3_MSCR_TRIG_POS)
  3294.         #define TIM_M3_MSCR_TRIG_CH0BP                                (0x07U<<TIM_M3_MSCR_TRIG_POS)

  3295.         //===主从模式选择
  3296.         #define TIM_M3_MSCR_MSM_POS                                        4
  3297.         #define TIM_M3_MSCR_MSM_MASK                                (0x07U<<TIM_M3_MSCR_MSM_POS)
  3298.         #define TIM_M3_MSCR_MSM                                                TIM_M3_MSCR_MSM_MASK

  3299.         //===比较模式下DMA比较触发选择
  3300.         #define TIM_M3_MSCR_CCDS_POS                                3
  3301.         #define TIM_M3_MSCR_CCDS_MASK                                (0x07U<<TIM_M3_MSCR_CCDS_POS)
  3302.         #define TIM_M3_MSCR_CCDS                                        TIM_M3_MSCR_CCDS_MASK

  3303.         //===主模式输出选择
  3304.         #define TIM_M3_MSCR_MMS_POS                                        0
  3305.         #define TIM_M3_MSCR_MMS_MASK                                (0x07UL<<TIM_M3_MSCR_MMS_POS)
  3306.         #define TIM_M3_MSCR_MMS                                                TIM_M3_MSCR_MMS_MASK

  3307.         #define TIM_M3_MSCR_MMS_UG                                        (0x00U<<TIM_M3_MSCR_MMS_POS)
  3308.         #define TIM_M3_MSCR_MMS_EN                                        (0x01U<<TIM_M3_MSCR_MMS_POS)
  3309.         #define TIM_M3_MSCR_MMS_UEV                                        (0x02U<<TIM_M3_MSCR_MMS_POS)
  3310.         #define TIM_M3_MSCR_MMS_CMPSO                                (0x03U<<TIM_M3_MSCR_MMS_POS)
  3311.         #define TIM_M3_MSCR_MMS_OCREF0A                                (0x04U<<TIM_M3_MSCR_MMS_POS)
  3312.         #define TIM_M3_MSCR_MMS_OCREF1A                                (0x05U<<TIM_M3_MSCR_MMS_POS)
  3313.         #define TIM_M3_MSCR_MMS_OCREF2A                                (0x06U<<TIM_M3_MSCR_MMS_POS)
  3314.         #define TIM_M3_MSCR_MMS_OCREF0B                                (0x07U<<TIM_M3_MSCR_MMS_POS)        

  3315.         //===滤波控制寄存器
  3316.         //===ETR输入相位
  3317.         #define TIM_M3_FLTR_ETP_POS                                        31
  3318.         #define TIM_M3_FLTR_ETP_MASK                                (0x01UL<<TIM_M3_FLTR_ETP_POS)
  3319.         #define TIM_M3_FLTR_ETP                                                TIM_M3_FLTR_ETP_MASK
  3320.         
  3321.         //===ETR滤波控制
  3322.         #define TIM_M3_FLTR_ETR_POS                                        28
  3323.         #define TIM_M3_FLTR_ETR_MASK                                (0x07UL<<TIM_M3_FLTR_ETR_POS)
  3324.         #define TIM_M3_FLTR_ETR                                                TIM_M3_FLTR_ETR_MASK

  3325.         #define TIM_M3_FLTR_ETR_NONE                                (0x00U<<TIM_M3_FLTR_ETR_POS)
  3326.         #define TIM_M3_FLTR_ETR_PCLK_DIV1                        (0x04U<<TIM_M3_FLTR_ETR_POS)
  3327.         #define TIM_M3_FLTR_ETR_PCLK_DIV4                        (0x05U<<TIM_M3_FLTR_ETR_POS)
  3328.         #define TIM_M3_FLTR_ETR_PCLK_DIV16                        (0x06U<<TIM_M3_FLTR_ETR_POS)
  3329.         #define TIM_M3_FLTR_ETR_PCLK_DIV64                        (0x07U<<TIM_M3_FLTR_ETR_POS)

  3330.         //===刹车BK输入相位选择
  3331.         #define TIM_M3_FLTR_BKP_POS                                        27
  3332.         #define TIM_M3_FLTR_BKP_MASK                                (0x01U<<TIM_M3_FLTR_BKP_POS)
  3333.         #define TIM_M3_FLTR_BKP                                                TIM_M3_FLTR_BKP_MASK

  3334.         //===刹车输入滤波控制
  3335.         #define TIM_M3_FLTR_BKR_POS                                        24
  3336.         #define TIM_M3_FLTR_BKR_MASK                                (0x07UL<<TIM_M3_FLTR_BKR_POS)
  3337.         #define TIM_M3_FLTR_BKR                                                TIM_M3_FLTR_BKR_MASK

  3338.         #define TIM_M3_FLTR_BKR_NONE                                (0x00UL<<TIM_M3_FLTR_BKR_POS)
  3339.         #define TIM_M3_FLTR_BKR_PCLK_DIV1                        (0x04UL<<TIM_M3_FLTR_BKR_POS)
  3340.         #define TIM_M3_FLTR_BKR_PCLK_DIV4                        (0x05UL<<TIM_M3_FLTR_BKR_POS)
  3341.         #define TIM_M3_FLTR_BKR_PCLK_DIV16                        (0x06UL<<TIM_M3_FLTR_BKR_POS)
  3342.         #define TIM_M3_FLTR_BKR_PCLK_DIV64                        (0x07UL<<TIM_M3_FLTR_BKR_POS)

  3343.         //===CH2B比较输出相位控制
  3344.         #define TIM_M3_FLTR_CCPB2_POS                                23
  3345.         #define TIM_M3_FLTR_CCPB2_MASK                                (0x01UL<<TIM_M3_FLTR_CCPB2_POS)
  3346.         #define TIM_M3_FLTR_CCPB2                                        TIM_M3_FLTR_CCPB2_MASK
  3347.         
  3348.         //==CH2B比较输出控制
  3349.         #define TIM_M3_FLTR_OCMB2_POS                                20
  3350.         #define TIM_M3_FLTR_OCMB2_MASK                                (0x07UL<<TIM_M3_FLTR_OCMB2_POS)
  3351.         #define TIM_M3_FLTR_OCMB2                                        TIM_M3_FLTR_OCMB2_MASK

  3352.         #define TIM_M3_FLTR_OCMB2_FORCE_LOW                        (0x00UL<<TIM_M3_FLTR_OCMB2_POS)
  3353.         #define TIM_M3_FLTR_OCMB2_FORCE_HIGH                (0x01UL<<TIM_M3_FLTR_OCMB2_POS)
  3354.         #define TIM_M3_FLTR_OCMB2_COMP_LOW                        (0x02UL<<TIM_M3_FLTR_OCMB2_POS)
  3355.         #define TIM_M3_FLTR_OCMB2_COMP_HIGH                        (0x03UL<<TIM_M3_FLTR_OCMB2_POS)
  3356.         #define TIM_M3_FLTR_OCMB2_COMP_TOGGLE                (0x04UL<<TIM_M3_FLTR_OCMB2_POS)
  3357.         #define TIM_M3_FLTR_OCMB2_COMP_KEEP_HIGH        (0x05UL<<TIM_M3_FLTR_OCMB2_POS)
  3358.         #define TIM_M3_FLTR_OCMB2_PWM_MODE1                        (0x06UL<<TIM_M3_FLTR_OCMB2_POS)
  3359.         #define TIM_M3_FLTR_OCMB2_PWM_MODE2                        (0x07UL<<TIM_M3_FLTR_OCMB2_POS)
  3360.         
  3361.         //==CH2B捕获输入滤波控制
  3362.         #define TIM_M3_FLTR_CH2B_POS                                20
  3363.         #define TIM_M3_FLTR_CH2B_MASK                                (0x07UL<<TIM_M3_FLTR_CH2B_POS)
  3364.         #define TIM_M3_FLTR_CH2B                                        TIM_M3_FLTR_CH2B_MASK

  3365.         #define TIM_M3_FLTR_CH2B_NONE                                (0x00U<<TIM_M3_FLTR_CH2B_POS)
  3366.         #define TIM_M3_FLTR_CH2B_PCLK_DIV1                        (0x04U<<TIM_M3_FLTR_CH2B_POS)
  3367.         #define TIM_M3_FLTR_CH2B_PCLK_DIV4                        (0x05U<<TIM_M3_FLTR_CH2B_POS)
  3368.         #define TIM_M3_FLTR_CH2B_PCLK_DIV16                        (0x06U<<TIM_M3_FLTR_CH2B_POS)
  3369.         #define TIM_M3_FLTR_CH2B_PCLK_DIV64                        (0x07U<<TIM_M3_FLTR_CH2B_POS)

  3370.         //===CH2A比较输出相位控制
  3371.         #define TIM_M3_FLTR_CCPA2_POS                                19
  3372.         #define TIM_M3_FLTR_CCPA2_MASK                                (0x01UL<<TIM_M3_FLTR_CCPA2_POS)
  3373.         #define TIM_M3_FLTR_CCPA2                                        TIM_M3_FLTR_CCPA2_MASK

  3374.         //==CH2A比较输出控制
  3375.         #define TIM_M3_FLTR_OCMA2_POS                                16
  3376.         #define TIM_M3_FLTR_OCMA2_MASK                                (0x07UL<<TIM_M3_FLTR_OCMA2_POS)
  3377.         #define TIM_M3_FLTR_OCMA2                                        TIM_M3_FLTR_OCMA2_MASK

  3378.         #define TIM_M3_FLTR_OCMA2_FORCE_LOW                        (0x00UL<<TIM_M3_FLTR_OCMA2_POS)
  3379.         #define TIM_M3_FLTR_OCMA2_FORCE_HIGH                (0x01UL<<TIM_M3_FLTR_OCMA2_POS)
  3380.         #define TIM_M3_FLTR_OCMA2_COMP_LOW                        (0x02UL<<TIM_M3_FLTR_OCMA2_POS)
  3381.         #define TIM_M3_FLTR_OCMA2_COMP_HIGH                        (0x03UL<<TIM_M3_FLTR_OCMA2_POS)
  3382.         #define TIM_M3_FLTR_OCMA2_COMP_TOGGLE                (0x04UL<<TIM_M3_FLTR_OCMA2_POS)
  3383.         #define TIM_M3_FLTR_OCMA2_COMP_KEEP_HIGH        (0x05UL<<TIM_M3_FLTR_OCMA2_POS)
  3384.         #define TIM_M3_FLTR_OCMA2_PWM_MODE1                        (0x06UL<<TIM_M3_FLTR_OCMA2_POS)
  3385.         #define TIM_M3_FLTR_OCMA2_PWM_MODE2                        (0x07UL<<TIM_M3_FLTR_OCMA2_POS)
  3386.         
  3387.         //==CH2A捕获输入滤波控制
  3388.         #define TIM_M3_FLTR_CH2A_POS                                16
  3389.         #define TIM_M3_FLTR_CH2A_MASK                                (0x07UL<<TIM_M3_FLTR_CH2A_POS)
  3390.         #define TIM_M3_FLTR_CH2A                                        TIM_M3_FLTR_CH2A_MASK

  3391.         #define TIM_M3_FLTR_CH2A_NONE                                (0x00UL<<TIM_M3_FLTR_CH2A_POS)
  3392.         #define TIM_M3_FLTR_CH2A_PCLK_DIV1                        (0x04UL<<TIM_M3_FLTR_CH2A_POS)
  3393.         #define TIM_M3_FLTR_CH2A_PCLK_DIV4                        (0x05UL<<TIM_M3_FLTR_CH2A_POS)
  3394.         #define TIM_M3_FLTR_CH2A_PCLK_DIV16                        (0x06UL<<TIM_M3_FLTR_CH2A_POS)
  3395.         #define TIM_M3_FLTR_CH2A_PCLK_DIV64                        (0x07UL<<TIM_M3_FLTR_CH2A_POS)

  3396.         //===CH1B比较输出相位控制
  3397.         #define TIM_M3_FLTR_CCPB1_POS                                15
  3398.         #define TIM_M3_FLTR_CCPB1_MASK                                (0x01UL<<TIM_M3_FLTR_CCPB1_POS)
  3399.         #define TIM_M3_FLTR_CCPB1                                        TIM_M3_FLTR_CCPB1_MASK
  3400.                
  3401.         //==CH1B比较输出控制
  3402.         #define TIM_M3_FLTR_OCMB1_POS                                12
  3403.         #define TIM_M3_FLTR_OCMB1_MASK                                (0x07UL<<TIM_M3_FLTR_OCMB1_POS)
  3404.         #define TIM_M3_FLTR_OCMB1                                        TIM_M3_FLTR_OCMB1_MASK

  3405.         #define TIM_M3_FLTR_OCMB1_FORCE_LOW                        (0x00UL<<TIM_M3_FLTR_OCMB1_POS)
  3406.         #define TIM_M3_FLTR_OCMB1_FORCE_HIGH                (0x01UL<<TIM_M3_FLTR_OCMB1_POS)
  3407.         #define TIM_M3_FLTR_OCMB1_COMP_LOW                        (0x02UL<<TIM_M3_FLTR_OCMB1_POS)
  3408.         #define TIM_M3_FLTR_OCMB1_COMP_HIGH                        (0x03UL<<TIM_M3_FLTR_OCMB1_POS)
  3409.         #define TIM_M3_FLTR_OCMB1_COMP_TOGGLE                (0x04UL<<TIM_M3_FLTR_OCMB1_POS)
  3410.         #define TIM_M3_FLTR_OCMB1_COMP_KEEP_HIGH        (0x05UL<<TIM_M3_FLTR_OCMB1_POS)
  3411.         #define TIM_M3_FLTR_OCMB1_PWM_MODE1                        (0x06UL<<TIM_M3_FLTR_OCMB1_POS)
  3412.         #define TIM_M3_FLTR_OCMB1_PWM_MODE2                        (0x07UL<<TIM_M3_FLTR_OCMB1_POS)        

  3413.         //==CH1B捕获输入滤波控制
  3414.         #define TIM_M3_FLTR_CH1B_POS                                12
  3415.         #define TIM_M3_FLTR_CH1B_MASK                                (0x07UL<<TIM_M3_FLTR_CH1B_POS)
  3416.         #define TIM_M3_FLTR_CH1B                                        TIM_M3_FLTR_CH1B_MASK

  3417.         #define TIM_M3_FLTR_CH1B_NONE                                (0x00UL<<TIM_M3_FLTR_CH1B_POS)
  3418.         #define TIM_M3_FLTR_CH1B_PCLK_DIV1                        (0x04UL<<TIM_M3_FLTR_CH1B_POS)
  3419.         #define TIM_M3_FLTR_CH1B_PCLK_DIV4                        (0x05UL<<TIM_M3_FLTR_CH1B_POS)
  3420.         #define TIM_M3_FLTR_CH1B_PCLK_DIV16                        (0x06UL<<TIM_M3_FLTR_CH1B_POS)
  3421.         #define TIM_M3_FLTR_CH1B_PCLK_DIV64                        (0x07UL<<TIM_M3_FLTR_CH1B_POS)

  3422.         //===CH1A比较输出相位控制
  3423.         #define TIM_M3_FLTR_CCPA1_POS                                11
  3424.         #define TIM_M3_FLTR_CCPA1_MASK                                (0x01UL<<TIM_M3_FLTR_CCPA1_POS)
  3425.         #define TIM_M3_FLTR_CCPA1                                        TIM_M3_FLTR_CCPA1_MASK

  3426.         //==CH1A比较输出控制
  3427.         #define TIM_M3_FLTR_OCMA1_POS                                8
  3428.         #define TIM_M3_FLTR_OCMA1_MASK                                (0x07UL<<TIM_M3_FLTR_OCMA1_POS)
  3429.         #define TIM_M3_FLTR_OCMA1                                        TIM_M3_FLTR_OCMA1_MASK
  3430.         
  3431.         #define TIM_M3_FLTR_OCMA1_FORCE_LOW                        (0x00UL<<TIM_M3_FLTR_OCMA1_POS)
  3432.         #define TIM_M3_FLTR_OCMA1_FORCE_HIGH                (0x01UL<<TIM_M3_FLTR_OCMA1_POS)
  3433.         #define TIM_M3_FLTR_OCMA1_COMP_LOW                        (0x02UL<<TIM_M3_FLTR_OCMA1_POS)
  3434.         #define TIM_M3_FLTR_OCMA1_COMP_HIGH                        (0x03UL<<TIM_M3_FLTR_OCMA1_POS)
  3435.         #define TIM_M3_FLTR_OCMA1_COMP_TOGGLE                (0x04UL<<TIM_M3_FLTR_OCMA1_POS)
  3436.         #define TIM_M3_FLTR_OCMA1_COMP_KEEP_HIGH        (0x05UL<<TIM_M3_FLTR_OCMA1_POS)
  3437.         #define TIM_M3_FLTR_OCMA1_PWM_MODE1                        (0x06UL<<TIM_M3_FLTR_OCMA1_POS)
  3438.         #define TIM_M3_FLTR_OCMA1_PWM_MODE2                        (0x07UL<<TIM_M3_FLTR_OCMA1_POS)        
  3439.         
  3440.         //==CH1A捕获输入滤波控制
  3441.         #define TIM_M3_FLTR_CH1A_POS                                8
  3442.         #define TIM_M3_FLTR_CH1A_MASK                                (0x07UL<<TIM_M3_FLTR_CH1A_POS)
  3443.         #define TIM_M3_FLTR_CH1A                                        TIM_M3_FLTR_CH1A_MASK

  3444.         #define TIM_M3_FLTR_CH1A_NONE                                (0x00UL<<TIM_M3_FLTR_CH1A_POS)
  3445.         #define TIM_M3_FLTR_CH1A_PCLK_DIV1                        (0x04UL<<TIM_M3_FLTR_CH1A_POS)
  3446.         #define TIM_M3_FLTR_CH1A_PCLK_DIV4                        (0x05UL<<TIM_M3_FLTR_CH1A_POS)
  3447.         #define TIM_M3_FLTR_CH1A_PCLK_DIV16                        (0x06UL<<TIM_M3_FLTR_CH1A_POS)
  3448.         #define TIM_M3_FLTR_CH1A_PCLK_DIV64                        (0x07UL<<TIM_M3_FLTR_CH1A_POS)

  3449.         //===CH0B比较输出相位控制
  3450.         #define TIM_M3_FLTR_CCPB0_POS                                7
  3451.         #define TIM_M3_FLTR_CCPB0_MASK                                (0x01UL<<TIM_M3_FLTR_CCPB0_POS)
  3452.         #define TIM_M3_FLTR_CCPB0                                        TIM_M3_FLTR_CCPB0_MASK

  3453.         //==CH0B捕获输入滤波控制
  3454.         #define TIM_M3_FLTR_OCMB0_POS                                4
  3455.         #define TIM_M3_FLTR_OCMB0_MASK                                (0x07UL<<TIM_M3_FLTR_OCMB0_POS)
  3456.         #define TIM_M3_FLTR_OCMB0                                        TIM_M3_FLTR_OCMB0_MASK

  3457.         #define TIM_M3_FLTR_OCMB0_FORCE_LOW                        (0x00UL<<TIM_M3_FLTR_OCMB0_POS)
  3458.         #define TIM_M3_FLTR_OCMB0_FORCE_HIGH                (0x01UL<<TIM_M3_FLTR_OCMB0_POS)
  3459.         #define TIM_M3_FLTR_OCMB0_COMP_LOW                        (0x02UL<<TIM_M3_FLTR_OCMB0_POS)
  3460.         #define TIM_M3_FLTR_OCMB0_COMP_HIGH                        (0x03UL<<TIM_M3_FLTR_OCMB0_POS)
  3461.         #define TIM_M3_FLTR_OCMB0_COMP_TOGGLE                (0x04UL<<TIM_M3_FLTR_OCMB0_POS)
  3462.         #define TIM_M3_FLTR_OCMB0_COMP_KEEP_HIGH        (0x05UL<<TIM_M3_FLTR_OCMB0_POS)
  3463.         #define TIM_M3_FLTR_OCMB0_PWM_MODE1                        (0x06UL<<TIM_M3_FLTR_OCMB0_POS)
  3464.         #define TIM_M3_FLTR_OCMB0_PWM_MODE2                        (0x07UL<<TIM_M3_FLTR_OCMB0_POS)        
  3465.         
  3466.         //==CH0B捕获输入滤波控制
  3467.         #define TIM_M3_FLTR_CH0B_POS                                4
  3468.         #define TIM_M3_FLTR_CH0B_MASK                                (0x07UL<<TIM_M3_FLTR_CH0B_POS)
  3469.         #define TIM_M3_FLTR_CH0B                                        TIM_M3_FLTR_CH0B_MASK

  3470.         #define TIM_M3_FLTR_CH0B_NONE                                (0x00UL<<TIM_M3_FLTR_CH0B_POS)
  3471.         #define TIM_M3_FLTR_CH0B_PCLK_DIV1                        (0x04UL<<TIM_M3_FLTR_CH0B_POS)
  3472.         #define TIM_M3_FLTR_CH0B_PCLK_DIV4                        (0x05UL<<TIM_M3_FLTR_CH0B_POS)
  3473.         #define TIM_M3_FLTR_CH0B_PCLK_DIV16                        (0x06UL<<TIM_M3_FLTR_CH0B_POS)
  3474.         #define TIM_M3_FLTR_CH0B_PCLK_DIV64                        (0x07UL<<TIM_M3_FLTR_CH0B_POS)

  3475.         //===CH0A比较输出相位控制
  3476.         #define TIM_M3_FLTR_CCPA0_POS                                3
  3477.         #define TIM_M3_FLTR_CCPA0_MASK                                (0x01UL<<TIM_M3_FLTR_CCPA0_POS)
  3478.         #define TIM_M3_FLTR_CCPA0                                        TIM_M3_FLTR_CCPA0_MASK

  3479.         //==CH0A比较输出控制
  3480.         #define TIM_M3_FLTR_OCMA0_POS                                0
  3481.         #define TIM_M3_FLTR_OCMA0_MASK                                (0x07UL<<TIM_M3_FLTR_OCMA0_POS)
  3482.         #define TIM_M3_FLTR_OCMA0                                        TIM_M3_FLTR_OCMA0_MASK

  3483.         #define TIM_M3_FLTR_OCMA0_FORCE_LOW                        (0x00UL<<TIM_M3_FLTR_OCMA0_POS)
  3484.         #define TIM_M3_FLTR_OCMA0_FORCE_HIGH                (0x01UL<<TIM_M3_FLTR_OCMA0_POS)
  3485.         #define TIM_M3_FLTR_OCMA0_COMP_LOW                        (0x02UL<<TIM_M3_FLTR_OCMA0_POS)
  3486.         #define TIM_M3_FLTR_OCMA0_COMP_HIGH                        (0x03UL<<TIM_M3_FLTR_OCMA0_POS)
  3487.         #define TIM_M3_FLTR_OCMA0_COMP_TOGGLE                (0x04UL<<TIM_M3_FLTR_OCMA0_POS)
  3488.         #define TIM_M3_FLTR_OCMA0_COMP_KEEP_HIGH        (0x05UL<<TIM_M3_FLTR_OCMA0_POS)
  3489.         #define TIM_M3_FLTR_OCMA0_PWM_MODE1                        (0x06UL<<TIM_M3_FLTR_OCMA0_POS)
  3490.         #define TIM_M3_FLTR_OCMA0_PWM_MODE2                        (0x07UL<<TIM_M3_FLTR_OCMA0_POS)        
  3491.         
  3492.         //==CH0A捕获输入滤波控制
  3493.         #define TIM_M3_FLTR_CH0A_POS                                0
  3494.         #define TIM_M3_FLTR_CH0A_MASK                                (0x07UL<<TIM_M3_FLTR_CH0A_POS)
  3495.         #define TIM_M3_FLTR_CH0A                                        TIM_M3_FLTR_CH0A_MASK

  3496.         #define TIM_M3_FLTR_CH0A_NONE                                (0x00UL<<TIM_M3_FLTR_CH0A_POS)
  3497.         #define TIM_M3_FLTR_CH0A_PCLK_DIV1                        (0x04UL<<TIM_M3_FLTR_CH0A_POS)
  3498.         #define TIM_M3_FLTR_CH0A_PCLK_DIV4                        (0x05UL<<TIM_M3_FLTR_CH0A_POS)
  3499.         #define TIM_M3_FLTR_CH0A_PCLK_DIV16                        (0x06UL<<TIM_M3_FLTR_CH0A_POS)
  3500.         #define TIM_M3_FLTR_CH0A_PCLK_DIV64                        (0x07UL<<TIM_M3_FLTR_CH0A_POS)
  3501.         
  3502.         //===ADC触发控制寄存器
  3503.         #define TIM_M3_ADTR_EN_POS                                        7
  3504.         #define TIM_M3_ADTR_EN_MASK                                        (0x01UL<<TIM_M3_ADTR_EN_POS)
  3505.         #define TIM_M3_ADTR_EN                                                TIM_M3_ADTR_EN_MASK

  3506.         //===CH2B比较匹配触发adc
  3507.         #define TIM_M3_ADTR_CMB2EN_POS                                6
  3508.         #define TIM_M3_ADTR_CMB2EN_MASK                                (0x01UL<<TIM_M3_ADTR_CMB2EN_POS)
  3509.         #define TIM_M3_ADTR_CMB2EN                                        TIM_M3_ADTR_CMB2EN_MASK

  3510.         //===CH1B比较匹配触发adc
  3511.         #define TIM_M3_ADTR_CMB1EN_POS                                5
  3512.         #define TIM_M3_ADTR_CMB1EN_MASK                                (0x01UL<<TIM_M3_ADTR_CMB1EN_POS)
  3513.         #define TIM_M3_ADTR_CMB1EN                                        TIM_M3_ADTR_CMB1EN_MASK

  3514.         //===CH0B比较匹配触发adc
  3515.         #define TIM_M3_ADTR_CMB0EN_POS                                4
  3516.         #define TIM_M3_ADTR_CMB0EN_MASK                                (0x01UL<<TIM_M3_ADTR_CMB0EN_POS)
  3517.         #define TIM_M3_ADTR_CMB0EN                                        TIM_M3_ADTR_CMB0EN_MASK

  3518.         //===CH2A比较匹配触发adc
  3519.         #define TIM_M3_ADTR_CMA2EN_POS                                3
  3520.         #define TIM_M3_ADTR_CMA2EN_MASK                                (0x01UL<<TIM_M3_ADTR_CMA2EN_POS)
  3521.         #define TIM_M3_ADTR_CMA2EN                                        TIM_M3_ADTR_CMA2EN_MASK
  3522.                         
  3523.         //===CH0A比较匹配触发adc
  3524.         #define TIM_M3_ADTR_CMA1EN_POS                                2
  3525.         #define TIM_M3_ADTR_CMA1EN_MASK                                (0x01UL<<TIM_M3_ADTR_CMA1EN_POS)
  3526.         #define TIM_M3_ADTR_CMA1EN                                        TIM_M3_ADTR_CMA1EN_MASK
  3527.                
  3528.         //===CH0A比较匹配触发adc
  3529.         #define TIM_M3_ADTR_CMA0EN_POS                                1
  3530.         #define TIM_M3_ADTR_CMA0EN_MASK                                (0x01UL<<TIM_M3_ADTR_CMA0EN_POS)
  3531.         #define TIM_M3_ADTR_CMA0EN                                        TIM_M3_ADTR_CMA0EN_MASK

  3532.         //===事件更新触发adc
  3533.         #define TIM_M3_ADTR_UEN_POS                                        0
  3534.         #define TIM_M3_ADTR_UEN_MASK                                (0x01UL<<TIM_M3_ADTR_UEN_POS)
  3535.         #define TIM_M3_ADTR_UEN                                                TIM_M3_ADTR_UEN_MASK

  3536.         //===通道0控制寄存器
  3537.         //===捕获比较B软件触发
  3538.         #define TIM_M3_CRCH0_CCGB_POS                                15
  3539.         #define TIM_M3_CRCH0_CCGB_MASK                                (0x01UL<<TIM_M3_CRCH0_CCGB_POS)
  3540.         #define TIM_M3_CRCH0_CCGB                                        TIM_M3_CRCH0_CCGB_MASK

  3541.         //===捕获比较A软件触发
  3542.         #define TIM_M3_CRCH0_CCGA_POS                                14
  3543.         #define TIM_M3_CRCH0_CCGA_MASK                                (0x01UL<<TIM_M3_CRCH0_CCGA_POS)
  3544.         #define TIM_M3_CRCH0_CCGA                                        TIM_M3_CRCH0_CCGA_MASK
  3545.         
  3546.         //===B比较模式中断
  3547.         #define TIM_M3_CRCH0_CISB_POS                                13
  3548.         #define TIM_M3_CRCH0_CISB_MASK                                (0x03UL<<TIM_M3_CRCH0_CISB_POS)
  3549.         #define TIM_M3_CRCH0_CISB                                        TIM_M3_CRCH0_CISB_MASK

  3550.         #define TIM_M3_CRCH0_CISB_EDGE_NONE                        (0x00UL<<TIM_M3_CRCH0_CISB_POS)
  3551.         #define TIM_M3_CRCH0_CISB_EDGE_RISE                        (0x01UL<<TIM_M3_CRCH0_CISB_POS)
  3552.         #define TIM_M3_CRCH0_CISB_EDGE_FAIL                        (0x02UL<<TIM_M3_CRCH0_CISB_POS)
  3553.         #define TIM_M3_CRCH0_CISB_EDGE_ALL                        (0x03UL<<TIM_M3_CRCH0_CISB_POS)

  3554.         //===B捕获比较触发DMA使能
  3555.         #define TIM_M3_CRCH0_CDMABEN_POS                        11
  3556.         #define TIM_M3_CRCH0_CDMABEN_MASK                        (0x01UL<<TIM_M3_CRCH0_CDMABEN_POS)
  3557.         #define TIM_M3_CRCH0_CDMABEN                                TIM_M3_CRCH0_CDMABEN_MASK

  3558.         //===A捕获比较触发DMA使能
  3559.         #define TIM_M3_CRCH0_CDMAAEN_POS                        10
  3560.         #define TIM_M3_CRCH0_CDMAAEN_MASK                        (0x01UL<<TIM_M3_CRCH0_CDMAAEN_POS)
  3561.         #define TIM_M3_CRCH0_CDMAAEN                                TIM_M3_CRCH0_CDMAAEN_MASK

  3562.         //===B捕获比较触发中断
  3563.         #define TIM_M3_CRCH0_CIEB_POS                                9
  3564.         #define TIM_M3_CRCH0_CIEB_MASK                                (0x01UL<<TIM_M3_CRCH0_CIEB_POS)
  3565.         #define TIM_M3_CRCH0_CIEB                                        TIM_M3_CRCH0_CIEB_MASK

  3566.         //===B捕获比较触发中断
  3567.         #define TIM_M3_CRCH0_CIEA_POS                                8
  3568.         #define TIM_M3_CRCH0_CIEA_MASK                                (0x01UL<<TIM_M3_CRCH0_CIEA_POS)
  3569.         #define TIM_M3_CRCH0_CIEA                                        TIM_M3_CRCH0_CIEA_MASK
  3570.         
  3571.         //===比较功能,B比较缓存使能控制
  3572.         #define TIM_M3_CRCH0_BUFEB_POS                                7
  3573.         #define TIM_M3_CRCH0_BUFEB_MASK                                (0x01UL<<TIM_M3_CRCH0_BUFEB_POS)
  3574.         #define TIM_M3_CRCH0_BUFEB                                        TIM_M3_CRCH0_BUFEB_MASK

  3575.         //===比较功能,B比较缓存使能控制
  3576.         #define TIM_M3_CRCH0_BUFEA_POS                                6
  3577.         #define TIM_M3_CRCH0_BUFEA_MASK                                (0x01UL<<TIM_M3_CRCH0_BUFEA_POS)
  3578.         #define TIM_M3_CRCH0_BUFEA                                        TIM_M3_CRCH0_BUFEA_MASK

  3579.         #define TIM_M3_CRCH0_CSB_POS                                5
  3580.         #define TIM_M3_CRCH0_CSB_MASK                                (0x01UL<<TIM_M3_CRCH0_CSB_POS)
  3581.         #define TIM_M3_CRCH0_CSB                                        TIM_M3_CRCH0_CSB_MASK

  3582.         #define TIM_M3_CRCH0_CSA_POS                                4
  3583.         #define TIM_M3_CRCH0_CSA_MASK                                (0x01UL<<TIM_M3_CRCH0_CSA_POS)
  3584.         #define TIM_M3_CRCH0_CSA                                        TIM_M3_CRCH0_CSA_MASK

  3585.         #define TIM_M3_CRCH0_CFB_POS                                3
  3586.         #define TIM_M3_CRCH0_CFB_MASK                                (0x01UL<<TIM_M3_CRCH0_CFB_POS)
  3587.         #define TIM_M3_CRCH0_CFB                                        TIM_M3_CRCH0_CFB_MASK

  3588.         #define TIM_M3_CRCH0_CRB_POS                                2
  3589.         #define TIM_M3_CRCH0_CRB_MASK                                (0x01UL<<TIM_M3_CRCH0_CRB_POS)
  3590.         #define TIM_M3_CRCH0_CRB                                        TIM_M3_CRCH0_CRB_MASK

  3591.         //===B通道比较输出刹车电平控制
  3592.         #define TIM_M3_CRCH0_BKSB_POS                                2
  3593.         #define TIM_M3_CRCH0_BKSB_MASK                                (0x03UL<<TIM_M3_CRCH0_BKSB_POS)
  3594.         #define TIM_M3_CRCH0_BKSB                                        TIM_M3_CRCH0_BKSB_MASK

  3595.         #define TIM_M3_CRCH0_BKSB_HZ                                (0x00UL<<TIM_M3_CRCH0_BKSB_POS)
  3596.         #define TIM_M3_CRCH0_BKSB_NONE                                (0x01UL<<TIM_M3_CRCH0_BKSB_POS)
  3597.         #define TIM_M3_CRCH0_BKSB_LOW                                (0x02UL<<TIM_M3_CRCH0_BKSB_POS)
  3598.         #define TIM_M3_CRCH0_BKSB_HIGHT                                (0x03UL<<TIM_M3_CRCH0_BKSB_POS)

  3599.         #define TIM_M3_CRCH0_CFA_POS                                1
  3600.         #define TIM_M3_CRCH0_CFA_MASK                                (0x01UL<<TIM_M3_CRCH0_CFA_POS)
  3601.         #define TIM_M3_CRCH0_CFA                                        TIM_M3_CRCH0_CFA_MASK

  3602.         #define TIM_M3_CRCH0_CRA_POS                                0
  3603.         #define TIM_M3_CRCH0_CRA_MASK                                (0x01UL<<TIM_M3_CRCH0_CRA_POS)
  3604.         #define TIM_M3_CRCH0_CRA                                        TIM_M3_CRCH0_CRA_MASK

  3605.         #define TIM_M3_CRCH0_BKSA_POS                                0
  3606.         #define TIM_M3_CRCH0_BKSA_MASK                                (0x03UL<<TIM_M3_CRCH0_BKSA_POS)
  3607.         #define TIM_M3_CRCH0_BKSA                                        TIM_M3_CRCH0_BKSA_MASK

  3608.         #define TIM_M3_CRCH0_BKSA_HZ                                (0x00UL<<TIM_M3_CRCH0_BKSA_POS)
  3609.         #define TIM_M3_CRCH0_BKSA_NONE                                (0x01UL<<TIM_M3_CRCH0_BKSA_POS)
  3610.         #define TIM_M3_CRCH0_BKSA_LOW                                (0x02UL<<TIM_M3_CRCH0_BKSA_POS)
  3611.         #define TIM_M3_CRCH0_BKSA_HIGHT                                (0x03UL<<TIM_M3_CRCH0_BKSA_POS)

  3612.         //===通道1控制寄存器
  3613.         //===捕获比较B软件触发
  3614.         #define TIM_M3_CRCH1_CCGB_POS                                15
  3615.         #define TIM_M3_CRCH1_CCGB_MASK                                (0x01UL<<TIM_M3_CRCH1_CCGB_POS)
  3616.         #define TIM_M3_CRCH1_CCGB                                        TIM_M3_CRCH1_CCGB_MASK

  3617.         //===捕获比较A软件触发
  3618.         #define TIM_M3_CRCH1_CCGA_POS                                14
  3619.         #define TIM_M3_CRCH1_CCGA_MASK                                (0x01UL<<TIM_M3_CRCH1_CCGA_POS)
  3620.         #define TIM_M3_CRCH1_CCGA                                        TIM_M3_CRCH1_CCGA_MASK
  3621.         
  3622.         //===B比较模式中断
  3623.         #define TIM_M3_CRCH1_CISB_POS                                13
  3624.         #define TIM_M3_CRCH1_CISB_MASK                                (0x03UL<<TIM_M3_CRCH1_CISB_POS)
  3625.         #define TIM_M3_CRCH1_CISB                                        TIM_M3_CRCH1_CISB_MASK

  3626.         #define TIM_M3_CRCH1_CISB_EDGE_NONE                        (0x00UL<<TIM_M3_CRCH1_CISB_POS)
  3627.         #define TIM_M3_CRCH1_CISB_EDGE_RISE                        (0x01UL<<TIM_M3_CRCH1_CISB_POS)
  3628.         #define TIM_M3_CRCH1_CISB_EDGE_FAIL                        (0x02UL<<TIM_M3_CRCH1_CISB_POS)
  3629.         #define TIM_M3_CRCH1_CISB_EDGE_ALL                        (0x03UL<<TIM_M3_CRCH1_CISB_POS)

  3630.         //===B捕获比较触发DMA使能
  3631.         #define TIM_M3_CRCH1_CDMABEN_POS                        11
  3632.         #define TIM_M3_CRCH1_CDMABEN_MASK                        (0x01UL<<TIM_M3_CRCH1_CDMABEN_POS)
  3633.         #define TIM_M3_CRCH1_CDMABEN                                TIM_M3_CRCH1_CDMABEN_MASK

  3634.         //===A捕获比较触发DMA使能
  3635.         #define TIM_M3_CRCH1_CDMAAEN_POS                        10
  3636.         #define TIM_M3_CRCH1_CDMAAEN_MASK                        (0x01UL<<TIM_M3_CRCH1_CDMAAEN_POS)
  3637.         #define TIM_M3_CRCH1_CDMAAEN                                TIM_M3_CRCH1_CDMAAEN_MASK

  3638.         //===B捕获比较触发中断
  3639.         #define TIM_M3_CRCH1_CIEB_POS                                9
  3640.         #define TIM_M3_CRCH1_CIEB_MASK                                (0x01UL<<TIM_M3_CRCH1_CIEB_POS)
  3641.         #define TIM_M3_CRCH1_CIEB                                        TIM_M3_CRCH1_CIEB_MASK

  3642.         //===B捕获比较触发中断
  3643.         #define TIM_M3_CRCH1_CIEA_POS                                8
  3644.         #define TIM_M3_CRCH1_CIEA_MASK                                (0x01UL<<TIM_M3_CRCH1_CIEA_POS)
  3645.         #define TIM_M3_CRCH1_CIEA                                        TIM_M3_CRCH1_CIEA_MASK
  3646.         
  3647.         //===比较功能,B比较缓存使能控制
  3648.         #define TIM_M3_CRCH1_BUFEB_POS                                7
  3649.         #define TIM_M3_CRCH1_BUFEB_MASK                                (0x01UL<<TIM_M3_CRCH1_BUFEB_POS)
  3650.         #define TIM_M3_CRCH1_BUFEB                                        TIM_M3_CRCH1_BUFEB_MASK

  3651.         //===比较功能,B比较缓存使能控制
  3652.         #define TIM_M3_CRCH1_BUFEA_POS                                6
  3653.         #define TIM_M3_CRCH1_BUFEA_MASK                                (0x01UL<<TIM_M3_CRCH1_BUFEA_POS)
  3654.         #define TIM_M3_CRCH1_BUFEA                                        TIM_M3_CRCH1_BUFEA_MASK

  3655.         #define TIM_M3_CRCH1_CSB_POS                                5
  3656.         #define TIM_M3_CRCH1_CSB_MASK                                (0x01UL<<TIM_M3_CRCH1_CSB_POS)
  3657.         #define TIM_M3_CRCH1_CSB                                        TIM_M3_CRCH1_CSB_MASK

  3658.         #define TIM_M3_CRCH1_CSA_POS                                4
  3659.         #define TIM_M3_CRCH1_CSA_MASK                                (0x01UL<<TIM_M3_CRCH1_CSA_POS)
  3660.         #define TIM_M3_CRCH1_CSA                                        TIM_M3_CRCH1_CSA_MASK

  3661.         #define TIM_M3_CRCH1_CFB_POS                                3
  3662.         #define TIM_M3_CRCH1_CFB_MASK                                (0x01UL<<TIM_M3_CRCH1_CFB_POS)
  3663.         #define TIM_M3_CRCH1_CFB                                        TIM_M3_CRCH1_CFB_MASK

  3664.         #define TIM_M3_CRCH1_CRB_POS                                2
  3665.         #define TIM_M3_CRCH1_CRB_MASK                                (0x01UL<<TIM_M3_CRCH1_CRB_POS)
  3666.         #define TIM_M3_CRCH1_CRB                                        TIM_M3_CRCH1_CRB_MASK

  3667.         //===B通道比较输出刹车电平控制
  3668.         #define TIM_M3_CRCH1_BKSB_POS                                2
  3669.         #define TIM_M3_CRCH1_BKSB_MASK                                (0x03UL<<TIM_M3_CRCH1_BKSB_POS)
  3670.         #define TIM_M3_CRCH1_BKSB                                        TIM_M3_CRCH1_BKSB_MASK

  3671.         #define TIM_M3_CRCH1_BKSB_HZ                                (0x00UL<<TIM_M3_CRCH1_BKSB_POS)
  3672.         #define TIM_M3_CRCH1_BKSB_NONE                                (0x01UL<<TIM_M3_CRCH1_BKSB_POS)
  3673.         #define TIM_M3_CRCH1_BKSB_LOW                                (0x02UL<<TIM_M3_CRCH1_BKSB_POS)
  3674.         #define TIM_M3_CRCH1_BKSB_HIGHT                                (0x03UL<<TIM_M3_CRCH1_BKSB_POS)

  3675.         #define TIM_M3_CRCH1_CFA_POS                                1
  3676.         #define TIM_M3_CRCH1_CFA_MASK                                (0x01UL<<TIM_M3_CRCH1_CFA_POS)
  3677.         #define TIM_M3_CRCH1_CFA                                        TIM_M3_CRCH1_CFA_MASK

  3678.         #define TIM_M3_CRCH1_CRA_POS                                0
  3679.         #define TIM_M3_CRCH1_CRA_MASK                                (0x01UL<<TIM_M3_CRCH1_CRA_POS)
  3680.         #define TIM_M3_CRCH1_CRA                                        TIM_M3_CRCH1_CRA_MASK

  3681.         #define TIM_M3_CRCH1_BKSA_POS                                0
  3682.         #define TIM_M3_CRCH1_BKSA_MASK                                (0x03UL<<TIM_M3_CRCH1_BKSA_POS)
  3683.         #define TIM_M3_CRCH1_BKSA                                        TIM_M3_CRCH1_BKSA_MASK

  3684.         #define TIM_M3_CRCH1_BKSA_HZ                                (0x00UL<<TIM_M3_CRCH1_BKSA_POS)
  3685.         #define TIM_M3_CRCH1_BKSA_NONE                                (0x01UL<<TIM_M3_CRCH1_BKSA_POS)
  3686.         #define TIM_M3_CRCH1_BKSA_LOW                                (0x02UL<<TIM_M3_CRCH1_BKSA_POS)
  3687.         #define TIM_M3_CRCH1_BKSA_HIGHT                                (0x03UL<<TIM_M3_CRCH1_BKSA_POS)

  3688.         //===通道2控制寄存器
  3689.         //===捕获比较B软件触发
  3690.         #define TIM_M3_CRCH2_CCGB_POS                                15
  3691.         #define TIM_M3_CRCH2_CCGB_MASK                                (0x01UL<<TIM_M3_CRCH2_CCGB_POS)
  3692.         #define TIM_M3_CRCH2_CCGB                                        TIM_M3_CRCH2_CCGB_MASK

  3693.         //===捕获比较A软件触发
  3694.         #define TIM_M3_CRCH2_CCGA_POS                                14
  3695.         #define TIM_M3_CRCH2_CCGA_MASK                                (0x01UL<<TIM_M3_CRCH2_CCGA_POS)
  3696.         #define TIM_M3_CRCH2_CCGA                                        TIM_M3_CRCH2_CCGA_MASK
  3697.         
  3698.         //===B比较模式中断
  3699.         #define TIM_M3_CRCH2_CISB_POS                                13
  3700.         #define TIM_M3_CRCH2_CISB_MASK                                (0x03UL<<TIM_M3_CRCH2_CISB_POS)
  3701.         #define TIM_M3_CRCH2_CISB                                        TIM_M3_CRCH2_CISB_MASK

  3702.         #define TIM_M3_CRCH2_CISB_EDGE_NONE                        (0x00UL<<TIM_M3_CRCH2_CISB_POS)
  3703.         #define TIM_M3_CRCH2_CISB_EDGE_RISE                        (0x01UL<<TIM_M3_CRCH2_CISB_POS)
  3704.         #define TIM_M3_CRCH2_CISB_EDGE_FAIL                        (0x02UL<<TIM_M3_CRCH2_CISB_POS)
  3705.         #define TIM_M3_CRCH2_CISB_EDGE_ALL                        (0x03UL<<TIM_M3_CRCH2_CISB_POS)

  3706.         //===B捕获比较触发DMA使能
  3707.         #define TIM_M3_CRCH2_CDMABEN_POS                        11
  3708.         #define TIM_M3_CRCH2_CDMABEN_MASK                        (0x01UL<<TIM_M3_CRCH2_CDMABEN_POS)
  3709.         #define TIM_M3_CRCH2_CDMABEN                                TIM_M3_CRCH2_CDMABEN_MASK

  3710.         //===A捕获比较触发DMA使能
  3711.         #define TIM_M3_CRCH2_CDMAAEN_POS                        10
  3712.         #define TIM_M3_CRCH2_CDMAAEN_MASK                        (0x01UL<<TIM_M3_CRCH2_CDMAAEN_POS)
  3713.         #define TIM_M3_CRCH2_CDMAAEN                                TIM_M3_CRCH2_CDMAAEN_MASK

  3714.         //===B捕获比较触发中断
  3715.         #define TIM_M3_CRCH2_CIEB_POS                                9
  3716.         #define TIM_M3_CRCH2_CIEB_MASK                                (0x01UL<<TIM_M3_CRCH2_CIEB_POS)
  3717.         #define TIM_M3_CRCH2_CIEB                                        TIM_M3_CRCH2_CIEB_MASK

  3718.         //===B捕获比较触发中断
  3719.         #define TIM_M3_CRCH2_CIEA_POS                                8
  3720.         #define TIM_M3_CRCH2_CIEA_MASK                                (0x01UL<<TIM_M3_CRCH2_CIEA_POS)
  3721.         #define TIM_M3_CRCH2_CIEA                                        TIM_M3_CRCH2_CIEA_MASK
  3722.         
  3723.         //===比较功能,B比较缓存使能控制
  3724.         #define TIM_M3_CRCH2_BUFEB_POS                                7
  3725.         #define TIM_M3_CRCH2_BUFEB_MASK                                (0x01UL<<TIM_M3_CRCH2_BUFEB_POS)
  3726.         #define TIM_M3_CRCH2_BUFEB                                        TIM_M3_CRCH2_BUFEB_MASK

  3727.         //===比较功能,B比较缓存使能控制
  3728.         #define TIM_M3_CRCH2_BUFEA_POS                                6
  3729.         #define TIM_M3_CRCH2_BUFEA_MASK                                (0x01UL<<TIM_M3_CRCH2_BUFEA_POS)
  3730.         #define TIM_M3_CRCH2_BUFEA                                        TIM_M3_CRCH2_BUFEA_MASK

  3731.         #define TIM_M3_CRCH2_CSB_POS                                5
  3732.         #define TIM_M3_CRCH2_CSB_MASK                                (0x01UL<<TIM_M3_CRCH2_CSB_POS)
  3733.         #define TIM_M3_CRCH2_CSB                                        TIM_M3_CRCH2_CSB_MASK

  3734.         #define TIM_M3_CRCH2_CSA_POS                                4
  3735.         #define TIM_M3_CRCH2_CSA_MASK                                (0x01UL<<TIM_M3_CRCH2_CSA_POS)
  3736.         #define TIM_M3_CRCH2_CSA                                        TIM_M3_CRCH2_CSA_MASK

  3737.         #define TIM_M3_CRCH2_CFB_POS                                3
  3738.         #define TIM_M3_CRCH2_CFB_MASK                                (0x01UL<<TIM_M3_CRCH2_CFB_POS)
  3739.         #define TIM_M3_CRCH2_CFB                                        TIM_M3_CRCH2_CFB_MASK

  3740.         #define TIM_M3_CRCH2_CRB_POS                                2
  3741.         #define TIM_M3_CRCH2_CRB_MASK                                (0x01UL<<TIM_M3_CRCH2_CRB_POS)
  3742.         #define TIM_M3_CRCH2_CRB                                        TIM_M3_CRCH2_CRB_MASK

  3743.         //===B通道比较输出刹车电平控制
  3744.         #define TIM_M3_CRCH2_BKSB_POS                                2
  3745.         #define TIM_M3_CRCH2_BKSB_MASK                                (0x03UL<<TIM_M3_CRCH2_BKSB_POS)
  3746.         #define TIM_M3_CRCH2_BKSB                                        TIM_M3_CRCH2_BKSB_MASK

  3747.         #define TIM_M3_CRCH2_BKSB_HZ                                (0x00UL<<TIM_M3_CRCH2_BKSB_POS)
  3748.         #define TIM_M3_CRCH2_BKSB_NONE                                (0x01UL<<TIM_M3_CRCH2_BKSB_POS)
  3749.         #define TIM_M3_CRCH2_BKSB_LOW                                (0x02UL<<TIM_M3_CRCH2_BKSB_POS)
  3750.         #define TIM_M3_CRCH2_BKSB_HIGHT                                (0x03UL<<TIM_M3_CRCH2_BKSB_POS)

  3751.         #define TIM_M3_CRCH2_CFA_POS                                1
  3752.         #define TIM_M3_CRCH2_CFA_MASK                                (0x01UL<<TIM_M3_CRCH2_CFA_POS)
  3753.         #define TIM_M3_CRCH2_CFA                                        TIM_M3_CRCH2_CFA_MASK

  3754.         #define TIM_M3_CRCH2_CRA_POS                                0
  3755.         #define TIM_M3_CRCH2_CRA_MASK                                (0x01UL<<TIM_M3_CRCH2_CRA_POS)
  3756.         #define TIM_M3_CRCH2_CRA                                        TIM_M3_CRCH2_CRA_MASK

  3757.         #define TIM_M3_CRCH2_BKSA_POS                                0
  3758.         #define TIM_M3_CRCH2_BKSA_MASK                                (0x03UL<<TIM_M3_CRCH2_BKSA_POS)
  3759.         #define TIM_M3_CRCH2_BKSA                                        TIM_M3_CRCH2_BKSA_MASK

  3760.         #define TIM_M3_CRCH2_BKSA_HZ                                (0x00UL<<TIM_M3_CRCH2_BKSA_POS)
  3761.         #define TIM_M3_CRCH2_BKSA_NONE                                (0x01UL<<TIM_M3_CRCH2_BKSA_POS)
  3762.         #define TIM_M3_CRCH2_BKSA_LOW                                (0x02UL<<TIM_M3_CRCH2_BKSA_POS)
  3763.         #define TIM_M3_CRCH2_BKSA_HIGHT                                (0x03UL<<TIM_M3_CRCH2_BKSA_POS)

  3764.         //===死区控制寄存器
  3765.         #define TIM_M3_DTR_VCEN_POS                                        14
  3766.         #define TIM_M3_DTR_VCEN_MASK                                (0x01UL<<TIM_M3_DTR_VCEN_POS)
  3767.         #define TIM_M3_DTR_VCEN                                                TIM_M3_DTR_VCEN_MASK

  3768.         //===Safety刹车控制使能
  3769.         #define TIM_M3_DTR_SAFETYEN_POS                                13
  3770.         #define TIM_M3_DTR_SAFETYEN_MASK                        (0x01UL<<TIM_M3_DTR_SAFETYEN_POS)
  3771.         #define TIM_M3_DTR_SAFETYEN                                        TIM_M3_DTR_SAFETYEN_MASK

  3772.         //===PWM输出控制使能
  3773.         #define TIM_M3_DTR_MOEN_POS                                        12
  3774.         #define TIM_M3_DTR_MOEN_MASK                                (0x01UL<<TIM_M3_DTR_MOEN_POS)
  3775.         #define TIM_M3_DTR_MOEN                                                TIM_M3_DTR_MOEN_MASK

  3776.         //===PWM输出自动控制使能
  3777.         #define TIM_M3_DTR_AOEN_POS                                        11
  3778.         #define TIM_M3_DTR_AOEN_MASK                                (0x01UL<<TIM_M3_DTR_AOEN_POS)
  3779.         #define TIM_M3_DTR_AOEN                                                TIM_M3_DTR_AOEN_MASK
  3780.         
  3781.         //===刹车控制使能
  3782.         #define TIM_M3_DTR_BKE_POS                                        10
  3783.         #define TIM_M3_DTR_BKE_MASK                                        (0x01UL<<TIM_M3_DTR_BKE_POS)
  3784.         #define TIM_M3_DTR_BKE                                                TIM_M3_DTR_BKE_MASK

  3785.         //===死区控制使能
  3786.         #define TIM_M3_DTR_DTEN_POS                                        9
  3787.         #define TIM_M3_DTR_DTEN_MASK                                (0x01UL<<TIM_M3_DTR_DTEN_POS)
  3788.         #define TIM_M3_DTR_DTEN                                                TIM_M3_DTR_DTEN_MASK

  3789.         //===刹车选择
  3790.         #define TIM_M3_DTR_BKSEL_POS                                8
  3791.         #define TIM_M3_DTR_BKSEL_MASK                                (0x01UL<<TIM_M3_DTR_BKSEL_POS)
  3792.         #define TIM_M3_DTR_BKSEL                                        TIM_M3_DTR_BKSEL_MASK
  3793.         
  3794.         //===死区控制
  3795.         #define TIM_M3_DTR_TIM_POS                                        0
  3796.         #define TIM_M3_DTR_TIM_MASK                                 (0xFFUL<<TIM_M3_DTR_TIM_POS)
  3797.         #define TIM_M3_DTR_TIM                                                TIM_M3_DTR_TIM_MASK

  3798.         //===死区时间
  3799.         #define TIM_M3_DTR_TIM_2                                        (0x00UL<<TIM_M3_DTR_TIM_POS)
  3800.         #define TIM_M3_DTR_TIM_3                                        (0x01UL<<TIM_M3_DTR_TIM_POS)
  3801.         #define TIM_M3_DTR_TIM_4                                        (0x02UL<<TIM_M3_DTR_TIM_POS)
  3802.         #define TIM_M3_DTR_TIM_5                                        (0x03UL<<TIM_M3_DTR_TIM_POS)
  3803.         #define TIM_M3_DTR_TIM_6                                        (0x04UL<<TIM_M3_DTR_TIM_POS)
  3804.         #define TIM_M3_DTR_TIM_7                                        (0x05UL<<TIM_M3_DTR_TIM_POS)
  3805.         #define TIM_M3_DTR_TIM_8                                        (0x06UL<<TIM_M3_DTR_TIM_POS)
  3806.         #define TIM_M3_DTR_TIM_9                                        (0x07UL<<TIM_M3_DTR_TIM_POS)
  3807.         #define TIM_M3_DTR_TIM_10                                        (0x08UL<<TIM_M3_DTR_TIM_POS)
  3808.         #define TIM_M3_DTR_TIM_11                                        (0x09UL<<TIM_M3_DTR_TIM_POS)
  3809.         #define TIM_M3_DTR_TIM_12                                        (0x0AUL<<TIM_M3_DTR_TIM_POS)
  3810.         #define TIM_M3_DTR_TIM_13                                        (0x0BUL<<TIM_M3_DTR_TIM_POS)
  3811.         #define TIM_M3_DTR_TIM_14                                        (0x0CUL<<TIM_M3_DTR_TIM_POS)
  3812.         #define TIM_M3_DTR_TIM_15                                        (0x0DUL<<TIM_M3_DTR_TIM_POS)
  3813.         #define TIM_M3_DTR_TIM_16                                        (0x0EUL<<TIM_M3_DTR_TIM_POS)
  3814.         #define TIM_M3_DTR_TIM_17                                        (0x0FUL<<TIM_M3_DTR_TIM_POS)
  3815.         #define TIM_M3_DTR_TIM_18                                        (0x10UL<<TIM_M3_DTR_TIM_POS)
  3816.         #define TIM_M3_DTR_TIM_19                                        (0x11UL<<TIM_M3_DTR_TIM_POS)
  3817.         #define TIM_M3_DTR_TIM_20                                        (0x12UL<<TIM_M3_DTR_TIM_POS)
  3818.         #define TIM_M3_DTR_TIM_21                                        (0x13UL<<TIM_M3_DTR_TIM_POS)
  3819.         #define TIM_M3_DTR_TIM_22                                        (0x14UL<<TIM_M3_DTR_TIM_POS)
  3820.         #define TIM_M3_DTR_TIM_23                                        (0x15UL<<TIM_M3_DTR_TIM_POS)
  3821.         #define TIM_M3_DTR_TIM_24                                        (0x16UL<<TIM_M3_DTR_TIM_POS)
  3822.         #define TIM_M3_DTR_TIM_25                                        (0x17UL<<TIM_M3_DTR_TIM_POS)
  3823.         #define TIM_M3_DTR_TIM_26                                        (0x18UL<<TIM_M3_DTR_TIM_POS)
  3824.         #define TIM_M3_DTR_TIM_27                                        (0x19UL<<TIM_M3_DTR_TIM_POS)
  3825.         #define TIM_M3_DTR_TIM_28                                        (0x1AUL<<TIM_M3_DTR_TIM_POS)
  3826.         #define TIM_M3_DTR_TIM_29                                        (0x1BUL<<TIM_M3_DTR_TIM_POS)
  3827.         #define TIM_M3_DTR_TIM_30                                        (0x1CUL<<TIM_M3_DTR_TIM_POS)
  3828.         #define TIM_M3_DTR_TIM_31                                        (0x1DUL<<TIM_M3_DTR_TIM_POS)
  3829.         #define TIM_M3_DTR_TIM_32                                        (0x1EUL<<TIM_M3_DTR_TIM_POS)
  3830.         #define TIM_M3_DTR_TIM_33                                        (0x1FUL<<TIM_M3_DTR_TIM_POS)
  3831.         #define TIM_M3_DTR_TIM_34                                        (0x20UL<<TIM_M3_DTR_TIM_POS)
  3832.         #define TIM_M3_DTR_TIM_35                                        (0x21UL<<TIM_M3_DTR_TIM_POS)
  3833.         #define TIM_M3_DTR_TIM_36                                        (0x22UL<<TIM_M3_DTR_TIM_POS)
  3834.         #define TIM_M3_DTR_TIM_37                                        (0x23UL<<TIM_M3_DTR_TIM_POS)
  3835.         #define TIM_M3_DTR_TIM_38                                        (0x24UL<<TIM_M3_DTR_TIM_POS)
  3836.         #define TIM_M3_DTR_TIM_39                                        (0x25UL<<TIM_M3_DTR_TIM_POS)
  3837.         #define TIM_M3_DTR_TIM_40                                        (0x26UL<<TIM_M3_DTR_TIM_POS)
  3838.         #define TIM_M3_DTR_TIM_41                                        (0x27UL<<TIM_M3_DTR_TIM_POS)
  3839.         #define TIM_M3_DTR_TIM_42                                        (0x28UL<<TIM_M3_DTR_TIM_POS)
  3840.         #define TIM_M3_DTR_TIM_43                                        (0x29UL<<TIM_M3_DTR_TIM_POS)
  3841.         #define TIM_M3_DTR_TIM_44                                        (0x2AUL<<TIM_M3_DTR_TIM_POS)
  3842.         #define TIM_M3_DTR_TIM_45                                        (0x2BUL<<TIM_M3_DTR_TIM_POS)
  3843.         #define TIM_M3_DTR_TIM_46                                        (0x2CUL<<TIM_M3_DTR_TIM_POS)
  3844.         #define TIM_M3_DTR_TIM_47                                        (0x2DUL<<TIM_M3_DTR_TIM_POS)
  3845.         #define TIM_M3_DTR_TIM_48                                        (0x2EUL<<TIM_M3_DTR_TIM_POS)
  3846.         #define TIM_M3_DTR_TIM_49                                        (0x2FUL<<TIM_M3_DTR_TIM_POS)
  3847.         #define TIM_M3_DTR_TIM_50                                        (0x30UL<<TIM_M3_DTR_TIM_POS)
  3848.         #define TIM_M3_DTR_TIM_51                                        (0x31UL<<TIM_M3_DTR_TIM_POS)
  3849.         #define TIM_M3_DTR_TIM_52                                        (0x32UL<<TIM_M3_DTR_TIM_POS)
  3850.         #define TIM_M3_DTR_TIM_53                                        (0x33UL<<TIM_M3_DTR_TIM_POS)
  3851.         #define TIM_M3_DTR_TIM_54                                        (0x34UL<<TIM_M3_DTR_TIM_POS)
  3852.         #define TIM_M3_DTR_TIM_55                                        (0x35UL<<TIM_M3_DTR_TIM_POS)
  3853.         #define TIM_M3_DTR_TIM_56                                        (0x36UL<<TIM_M3_DTR_TIM_POS)
  3854.         #define TIM_M3_DTR_TIM_57                                        (0x37UL<<TIM_M3_DTR_TIM_POS)
  3855.         #define TIM_M3_DTR_TIM_58                                        (0x38UL<<TIM_M3_DTR_TIM_POS)
  3856.         #define TIM_M3_DTR_TIM_59                                        (0x39UL<<TIM_M3_DTR_TIM_POS)
  3857.         #define TIM_M3_DTR_TIM_60                                        (0x3AUL<<TIM_M3_DTR_TIM_POS)
  3858.         #define TIM_M3_DTR_TIM_61                                        (0x3BUL<<TIM_M3_DTR_TIM_POS)
  3859.         #define TIM_M3_DTR_TIM_62                                        (0x3CUL<<TIM_M3_DTR_TIM_POS)
  3860.         #define TIM_M3_DTR_TIM_63                                        (0x3DUL<<TIM_M3_DTR_TIM_POS)
  3861.         #define TIM_M3_DTR_TIM_64                                        (0x3EUL<<TIM_M3_DTR_TIM_POS)
  3862.         #define TIM_M3_DTR_TIM_65                                        (0x3FUL<<TIM_M3_DTR_TIM_POS)
  3863.         #define TIM_M3_DTR_TIM_66                                        (0x40UL<<TIM_M3_DTR_TIM_POS)
  3864.         #define TIM_M3_DTR_TIM_67                                        (0x41UL<<TIM_M3_DTR_TIM_POS)
  3865.         #define TIM_M3_DTR_TIM_68                                        (0x42UL<<TIM_M3_DTR_TIM_POS)
  3866.         #define TIM_M3_DTR_TIM_69                                        (0x43UL<<TIM_M3_DTR_TIM_POS)
  3867.         #define TIM_M3_DTR_TIM_70                                        (0x44UL<<TIM_M3_DTR_TIM_POS)
  3868.         #define TIM_M3_DTR_TIM_71                                        (0x45UL<<TIM_M3_DTR_TIM_POS)
  3869.         #define TIM_M3_DTR_TIM_72                                        (0x46UL<<TIM_M3_DTR_TIM_POS)
  3870.         #define TIM_M3_DTR_TIM_73                                        (0x47UL<<TIM_M3_DTR_TIM_POS)
  3871.         #define TIM_M3_DTR_TIM_74                                        (0x48UL<<TIM_M3_DTR_TIM_POS)
  3872.         #define TIM_M3_DTR_TIM_75                                        (0x49UL<<TIM_M3_DTR_TIM_POS)
  3873.         #define TIM_M3_DTR_TIM_76                                        (0x4AUL<<TIM_M3_DTR_TIM_POS)
  3874.         #define TIM_M3_DTR_TIM_77                                        (0x4BUL<<TIM_M3_DTR_TIM_POS)
  3875.         #define TIM_M3_DTR_TIM_78                                        (0x4CUL<<TIM_M3_DTR_TIM_POS)
  3876.         #define TIM_M3_DTR_TIM_79                                        (0x4DUL<<TIM_M3_DTR_TIM_POS)
  3877.         #define TIM_M3_DTR_TIM_80                                        (0x4EUL<<TIM_M3_DTR_TIM_POS)
  3878.         #define TIM_M3_DTR_TIM_81                                        (0x4FUL<<TIM_M3_DTR_TIM_POS)
  3879.         #define TIM_M3_DTR_TIM_82                                        (0x50UL<<TIM_M3_DTR_TIM_POS)
  3880.         #define TIM_M3_DTR_TIM_83                                        (0x51UL<<TIM_M3_DTR_TIM_POS)
  3881.         #define TIM_M3_DTR_TIM_84                                        (0x52UL<<TIM_M3_DTR_TIM_POS)
  3882.         #define TIM_M3_DTR_TIM_85                                        (0x53UL<<TIM_M3_DTR_TIM_POS)
  3883.         #define TIM_M3_DTR_TIM_86                                        (0x54UL<<TIM_M3_DTR_TIM_POS)
  3884.         #define TIM_M3_DTR_TIM_87                                        (0x55UL<<TIM_M3_DTR_TIM_POS)
  3885.         #define TIM_M3_DTR_TIM_88                                        (0x56UL<<TIM_M3_DTR_TIM_POS)
  3886.         #define TIM_M3_DTR_TIM_89                                        (0x57UL<<TIM_M3_DTR_TIM_POS)
  3887.         #define TIM_M3_DTR_TIM_90                                        (0x58UL<<TIM_M3_DTR_TIM_POS)
  3888.         #define TIM_M3_DTR_TIM_91                                        (0x59UL<<TIM_M3_DTR_TIM_POS)
  3889.         #define TIM_M3_DTR_TIM_92                                        (0x5AUL<<TIM_M3_DTR_TIM_POS)
  3890.         #define TIM_M3_DTR_TIM_93                                        (0x5BUL<<TIM_M3_DTR_TIM_POS)
  3891.         #define TIM_M3_DTR_TIM_94                                        (0x5CUL<<TIM_M3_DTR_TIM_POS)
  3892.         #define TIM_M3_DTR_TIM_95                                        (0x5DUL<<TIM_M3_DTR_TIM_POS)
  3893.         #define TIM_M3_DTR_TIM_96                                        (0x5EUL<<TIM_M3_DTR_TIM_POS)
  3894.         #define TIM_M3_DTR_TIM_97                                        (0x5FUL<<TIM_M3_DTR_TIM_POS)
  3895.         #define TIM_M3_DTR_TIM_98                                        (0x60UL<<TIM_M3_DTR_TIM_POS)
  3896.         #define TIM_M3_DTR_TIM_99                                        (0x61UL<<TIM_M3_DTR_TIM_POS)
  3897.         #define TIM_M3_DTR_TIM_100                                        (0x62UL<<TIM_M3_DTR_TIM_POS)
  3898.         #define TIM_M3_DTR_TIM_101                                        (0x63UL<<TIM_M3_DTR_TIM_POS)
  3899.         #define TIM_M3_DTR_TIM_102                                        (0x64UL<<TIM_M3_DTR_TIM_POS)
  3900.         #define TIM_M3_DTR_TIM_103                                        (0x65UL<<TIM_M3_DTR_TIM_POS)
  3901.         #define TIM_M3_DTR_TIM_104                                        (0x66UL<<TIM_M3_DTR_TIM_POS)
  3902.         #define TIM_M3_DTR_TIM_105                                        (0x67UL<<TIM_M3_DTR_TIM_POS)
  3903.         #define TIM_M3_DTR_TIM_106                                        (0x68UL<<TIM_M3_DTR_TIM_POS)
  3904.         #define TIM_M3_DTR_TIM_107                                        (0x69UL<<TIM_M3_DTR_TIM_POS)
  3905.         #define TIM_M3_DTR_TIM_108                                        (0x6AUL<<TIM_M3_DTR_TIM_POS)
  3906.         #define TIM_M3_DTR_TIM_109                                        (0x6BUL<<TIM_M3_DTR_TIM_POS)
  3907.         #define TIM_M3_DTR_TIM_110                                        (0x6CUL<<TIM_M3_DTR_TIM_POS)
  3908.         #define TIM_M3_DTR_TIM_111                                        (0x6DUL<<TIM_M3_DTR_TIM_POS)
  3909.         #define TIM_M3_DTR_TIM_112                                        (0x6EUL<<TIM_M3_DTR_TIM_POS)
  3910.         #define TIM_M3_DTR_TIM_113                                        (0x6FUL<<TIM_M3_DTR_TIM_POS)
  3911.         #define TIM_M3_DTR_TIM_114                                        (0x70UL<<TIM_M3_DTR_TIM_POS)
  3912.         #define TIM_M3_DTR_TIM_115                                        (0x71UL<<TIM_M3_DTR_TIM_POS)
  3913.         #define TIM_M3_DTR_TIM_116                                        (0x72UL<<TIM_M3_DTR_TIM_POS)
  3914.         #define TIM_M3_DTR_TIM_117                                        (0x73UL<<TIM_M3_DTR_TIM_POS)
  3915.         #define TIM_M3_DTR_TIM_118                                        (0x74UL<<TIM_M3_DTR_TIM_POS)
  3916.         #define TIM_M3_DTR_TIM_119                                        (0x75UL<<TIM_M3_DTR_TIM_POS)
  3917.         #define TIM_M3_DTR_TIM_120                                        (0x76UL<<TIM_M3_DTR_TIM_POS)
  3918.         #define TIM_M3_DTR_TIM_121                                        (0x77UL<<TIM_M3_DTR_TIM_POS)
  3919.         #define TIM_M3_DTR_TIM_122                                        (0x78UL<<TIM_M3_DTR_TIM_POS)
  3920.         #define TIM_M3_DTR_TIM_123                                        (0x79UL<<TIM_M3_DTR_TIM_POS)
  3921.         #define TIM_M3_DTR_TIM_124                                        (0x7AUL<<TIM_M3_DTR_TIM_POS)
  3922.         #define TIM_M3_DTR_TIM_125                                        (0x7BUL<<TIM_M3_DTR_TIM_POS)
  3923.         #define TIM_M3_DTR_TIM_126                                        (0x7CUL<<TIM_M3_DTR_TIM_POS)
  3924.         #define TIM_M3_DTR_TIM_127                                        (0x7DUL<<TIM_M3_DTR_TIM_POS)
  3925.         #define TIM_M3_DTR_TIM_128                                        (0x7EUL<<TIM_M3_DTR_TIM_POS)
  3926.         #define TIM_M3_DTR_TIM_129                                        (0x7FUL<<TIM_M3_DTR_TIM_POS)
  3927. \
  3928.         #define TIM_M3_DTR_TIM_130                                        (0x80UL<<TIM_M3_DTR_TIM_POS)
  3929.         #define TIM_M3_DTR_TIM_132                                        (0x81UL<<TIM_M3_DTR_TIM_POS)
  3930.         #define TIM_M3_DTR_TIM_134                                        (0x82UL<<TIM_M3_DTR_TIM_POS)
  3931.         #define TIM_M3_DTR_TIM_136                                        (0x83UL<<TIM_M3_DTR_TIM_POS)
  3932.         #define TIM_M3_DTR_TIM_138                                        (0x84UL<<TIM_M3_DTR_TIM_POS)
  3933.         #define TIM_M3_DTR_TIM_140                                        (0x85UL<<TIM_M3_DTR_TIM_POS)
  3934.         #define TIM_M3_DTR_TIM_142                                        (0x86UL<<TIM_M3_DTR_TIM_POS)
  3935.         #define TIM_M3_DTR_TIM_144                                        (0x87UL<<TIM_M3_DTR_TIM_POS)
  3936.         #define TIM_M3_DTR_TIM_146                                        (0x88UL<<TIM_M3_DTR_TIM_POS)
  3937.         #define TIM_M3_DTR_TIM_148                                        (0x89UL<<TIM_M3_DTR_TIM_POS)
  3938.         #define TIM_M3_DTR_TIM_150                                        (0x8AUL<<TIM_M3_DTR_TIM_POS)
  3939.         #define TIM_M3_DTR_TIM_152                                        (0x8BUL<<TIM_M3_DTR_TIM_POS)
  3940.         #define TIM_M3_DTR_TIM_154                                        (0x8CUL<<TIM_M3_DTR_TIM_POS)
  3941.         #define TIM_M3_DTR_TIM_156                                        (0x8DUL<<TIM_M3_DTR_TIM_POS)
  3942.         #define TIM_M3_DTR_TIM_158                                        (0x8EUL<<TIM_M3_DTR_TIM_POS)
  3943.         #define TIM_M3_DTR_TIM_160                                        (0x8FUL<<TIM_M3_DTR_TIM_POS)
  3944.         #define TIM_M3_DTR_TIM_162                                        (0x90UL<<TIM_M3_DTR_TIM_POS)
  3945.         #define TIM_M3_DTR_TIM_164                                        (0x91UL<<TIM_M3_DTR_TIM_POS)
  3946.         #define TIM_M3_DTR_TIM_166                                        (0x92UL<<TIM_M3_DTR_TIM_POS)
  3947.         #define TIM_M3_DTR_TIM_168                                        (0x93UL<<TIM_M3_DTR_TIM_POS)
  3948.         #define TIM_M3_DTR_TIM_170                                        (0x94UL<<TIM_M3_DTR_TIM_POS)
  3949.         #define TIM_M3_DTR_TIM_172                                        (0x95UL<<TIM_M3_DTR_TIM_POS)
  3950.         #define TIM_M3_DTR_TIM_174                                        (0x96UL<<TIM_M3_DTR_TIM_POS)
  3951.         #define TIM_M3_DTR_TIM_176                                        (0x97UL<<TIM_M3_DTR_TIM_POS)
  3952.         #define TIM_M3_DTR_TIM_178                                        (0x98UL<<TIM_M3_DTR_TIM_POS)
  3953.         #define TIM_M3_DTR_TIM_180                                        (0x99UL<<TIM_M3_DTR_TIM_POS)
  3954.         #define TIM_M3_DTR_TIM_182                                        (0x9AUL<<TIM_M3_DTR_TIM_POS)
  3955.         #define TIM_M3_DTR_TIM_184                                        (0x9BUL<<TIM_M3_DTR_TIM_POS)
  3956.         #define TIM_M3_DTR_TIM_186                                        (0x9CUL<<TIM_M3_DTR_TIM_POS)
  3957.         #define TIM_M3_DTR_TIM_188                                        (0x9DUL<<TIM_M3_DTR_TIM_POS)
  3958.         #define TIM_M3_DTR_TIM_190                                        (0x9EUL<<TIM_M3_DTR_TIM_POS)
  3959.         #define TIM_M3_DTR_TIM_192                                        (0x9FUL<<TIM_M3_DTR_TIM_POS)
  3960.         #define TIM_M3_DTR_TIM_194                                        (0xA0UL<<TIM_M3_DTR_TIM_POS)
  3961.         #define TIM_M3_DTR_TIM_196                                        (0xA1UL<<TIM_M3_DTR_TIM_POS)
  3962.         #define TIM_M3_DTR_TIM_198                                        (0xA2UL<<TIM_M3_DTR_TIM_POS)
  3963.         #define TIM_M3_DTR_TIM_200                                        (0xA3UL<<TIM_M3_DTR_TIM_POS)
  3964.         #define TIM_M3_DTR_TIM_202                                        (0xA4UL<<TIM_M3_DTR_TIM_POS)
  3965.         #define TIM_M3_DTR_TIM_204                                        (0xA5UL<<TIM_M3_DTR_TIM_POS)
  3966.         #define TIM_M3_DTR_TIM_206                                        (0xA6UL<<TIM_M3_DTR_TIM_POS)
  3967.         #define TIM_M3_DTR_TIM_208                                        (0xA8UL<<TIM_M3_DTR_TIM_POS)
  3968.         #define TIM_M3_DTR_TIM_210                                        (0xA9UL<<TIM_M3_DTR_TIM_POS)
  3969.         #define TIM_M3_DTR_TIM_212                                        (0xAAUL<<TIM_M3_DTR_TIM_POS)
  3970.         #define TIM_M3_DTR_TIM_214                                        (0xABUL<<TIM_M3_DTR_TIM_POS)
  3971.         #define TIM_M3_DTR_TIM_216                                        (0xACUL<<TIM_M3_DTR_TIM_POS)
  3972.         #define TIM_M3_DTR_TIM_218                                        (0xADUL<<TIM_M3_DTR_TIM_POS)
  3973.         #define TIM_M3_DTR_TIM_220                                        (0xAEUL<<TIM_M3_DTR_TIM_POS)
  3974.         #define TIM_M3_DTR_TIM_222                                        (0xAFUL<<TIM_M3_DTR_TIM_POS)
  3975.         #define TIM_M3_DTR_TIM_224                                        (0xB0UL<<TIM_M3_DTR_TIM_POS)
  3976.         #define TIM_M3_DTR_TIM_226                                        (0xB1UL<<TIM_M3_DTR_TIM_POS)
  3977.         #define TIM_M3_DTR_TIM_228                                        (0xB2UL<<TIM_M3_DTR_TIM_POS)
  3978.         #define TIM_M3_DTR_TIM_230                                        (0xB3UL<<TIM_M3_DTR_TIM_POS)
  3979.         #define TIM_M3_DTR_TIM_232                                        (0xB4UL<<TIM_M3_DTR_TIM_POS)
  3980.         #define TIM_M3_DTR_TIM_234                                        (0xB5UL<<TIM_M3_DTR_TIM_POS)
  3981.         #define TIM_M3_DTR_TIM_236                                        (0xB6UL<<TIM_M3_DTR_TIM_POS)
  3982.         #define TIM_M3_DTR_TIM_238                                        (0xB7UL<<TIM_M3_DTR_TIM_POS)
  3983.         #define TIM_M3_DTR_TIM_240                                        (0xB8UL<<TIM_M3_DTR_TIM_POS)
  3984.         #define TIM_M3_DTR_TIM_242                                        (0xB9UL<<TIM_M3_DTR_TIM_POS)
  3985.         #define TIM_M3_DTR_TIM_246                                        (0xBAUL<<TIM_M3_DTR_TIM_POS)
  3986.         #define TIM_M3_DTR_TIM_248                                        (0xBBUL<<TIM_M3_DTR_TIM_POS)
  3987.         #define TIM_M3_DTR_TIM_250                                        (0xBCUL<<TIM_M3_DTR_TIM_POS)
  3988.         #define TIM_M3_DTR_TIM_252                                        (0xBDUL<<TIM_M3_DTR_TIM_POS)
  3989.         #define TIM_M3_DTR_TIM_254                                        (0xBEUL<<TIM_M3_DTR_TIM_POS)
  3990.         #define TIM_M3_DTR_TIM_256                                        (0xBFUL<<TIM_M3_DTR_TIM_POS)
  3991.         
  3992.         #define TIM_M3_DTR_TIM_258                                        (0xC0UL<<TIM_M3_DTR_TIM_POS)        
  3993.         #define TIM_M3_DTR_TIM_266                                        (0xC1UL<<TIM_M3_DTR_TIM_POS)        
  3994.         #define TIM_M3_DTR_TIM_274                                        (0xC2UL<<TIM_M3_DTR_TIM_POS)        
  3995.         #define TIM_M3_DTR_TIM_282                                        (0xC3UL<<TIM_M3_DTR_TIM_POS)        
  3996.         #define TIM_M3_DTR_TIM_290                                        (0xC4UL<<TIM_M3_DTR_TIM_POS)        
  3997.         #define TIM_M3_DTR_TIM_296                                        (0xC5UL<<TIM_M3_DTR_TIM_POS)        
  3998.         #define TIM_M3_DTR_TIM_302                                        (0xC6UL<<TIM_M3_DTR_TIM_POS)        
  3999.         #define TIM_M3_DTR_TIM_308                                        (0xC7UL<<TIM_M3_DTR_TIM_POS)        
  4000.         #define TIM_M3_DTR_TIM_314                                        (0xC8UL<<TIM_M3_DTR_TIM_POS)        
  4001.         #define TIM_M3_DTR_TIM_322                                        (0xC9UL<<TIM_M3_DTR_TIM_POS)        
  4002.         #define TIM_M3_DTR_TIM_330                                        (0xCAUL<<TIM_M3_DTR_TIM_POS)        
  4003.         #define TIM_M3_DTR_TIM_338                                        (0xCBUL<<TIM_M3_DTR_TIM_POS)        
  4004.         #define TIM_M3_DTR_TIM_346                                        (0xCCUL<<TIM_M3_DTR_TIM_POS)        
  4005.         #define TIM_M3_DTR_TIM_354                                        (0xCDUL<<TIM_M3_DTR_TIM_POS)        
  4006.         #define TIM_M3_DTR_TIM_362                                        (0xCEUL<<TIM_M3_DTR_TIM_POS)        
  4007.         #define TIM_M3_DTR_TIM_370                                        (0xCFUL<<TIM_M3_DTR_TIM_POS)        
  4008.         #define TIM_M3_DTR_TIM_378                                        (0xD0UL<<TIM_M3_DTR_TIM_POS)        
  4009.         #define TIM_M3_DTR_TIM_386                                        (0xD1UL<<TIM_M3_DTR_TIM_POS)        
  4010.         #define TIM_M3_DTR_TIM_394                                        (0xD2UL<<TIM_M3_DTR_TIM_POS)        
  4011.         #define TIM_M3_DTR_TIM_402                                        (0xD3UL<<TIM_M3_DTR_TIM_POS)        
  4012.         #define TIM_M3_DTR_TIM_410                                        (0xD4UL<<TIM_M3_DTR_TIM_POS)        
  4013.         #define TIM_M3_DTR_TIM_418                                        (0xD5UL<<TIM_M3_DTR_TIM_POS)        
  4014.         #define TIM_M3_DTR_TIM_426                                        (0xD6UL<<TIM_M3_DTR_TIM_POS)        
  4015.         #define TIM_M3_DTR_TIM_434                                        (0xD7UL<<TIM_M3_DTR_TIM_POS)        
  4016.         #define TIM_M3_DTR_TIM_442                                        (0xD8UL<<TIM_M3_DTR_TIM_POS)        
  4017.         #define TIM_M3_DTR_TIM_450                                        (0xD9UL<<TIM_M3_DTR_TIM_POS)        
  4018.         #define TIM_M3_DTR_TIM_458                                        (0xDAUL<<TIM_M3_DTR_TIM_POS)        
  4019.         #define TIM_M3_DTR_TIM_466                                        (0xDBUL<<TIM_M3_DTR_TIM_POS)        
  4020.         #define TIM_M3_DTR_TIM_474                                        (0xDCUL<<TIM_M3_DTR_TIM_POS)        
  4021.         #define TIM_M3_DTR_TIM_482                                        (0xDDUL<<TIM_M3_DTR_TIM_POS)        
  4022.         #define TIM_M3_DTR_TIM_490                                        (0xDEUL<<TIM_M3_DTR_TIM_POS)        
  4023.         #define TIM_M3_DTR_TIM_498                                        (0xDFUL<<TIM_M3_DTR_TIM_POS)

  4024.         #define TIM_M3_DTR_TIM_514                                        (0xE0UL<<TIM_M3_DTR_TIM_POS)
  4025.         #define TIM_M3_DTR_TIM_530                                        (0xE1UL<<TIM_M3_DTR_TIM_POS)
  4026.         #define TIM_M3_DTR_TIM_546                                        (0xE2UL<<TIM_M3_DTR_TIM_POS)
  4027.         #define TIM_M3_DTR_TIM_547                                        (0xE3UL<<TIM_M3_DTR_TIM_POS)
  4028.         #define TIM_M3_DTR_TIM_562                                        (0xE4UL<<TIM_M3_DTR_TIM_POS)
  4029.         #define TIM_M3_DTR_TIM_578                                        (0xE5UL<<TIM_M3_DTR_TIM_POS)
  4030.         #define TIM_M3_DTR_TIM_594                                        (0xE6UL<<TIM_M3_DTR_TIM_POS)
  4031.         #define TIM_M3_DTR_TIM_610                                        (0xE7UL<<TIM_M3_DTR_TIM_POS)
  4032.         #define TIM_M3_DTR_TIM_642                                        (0xE8UL<<TIM_M3_DTR_TIM_POS)
  4033.         #define TIM_M3_DTR_TIM_658                                        (0xE9UL<<TIM_M3_DTR_TIM_POS)
  4034.         #define TIM_M3_DTR_TIM_674                                        (0xEAUL<<TIM_M3_DTR_TIM_POS)
  4035.         #define TIM_M3_DTR_TIM_690                                        (0xEBUL<<TIM_M3_DTR_TIM_POS)
  4036.         #define TIM_M3_DTR_TIM_706                                        (0xECUL<<TIM_M3_DTR_TIM_POS)
  4037.         #define TIM_M3_DTR_TIM_722                                        (0xEDUL<<TIM_M3_DTR_TIM_POS)
  4038.         #define TIM_M3_DTR_TIM_738                                        (0xEEUL<<TIM_M3_DTR_TIM_POS)
  4039.         #define TIM_M3_DTR_TIM_754                                        (0xEFUL<<TIM_M3_DTR_TIM_POS)
  4040.         #define TIM_M3_DTR_TIM_770                                        (0xF0UL<<TIM_M3_DTR_TIM_POS)
  4041.         #define TIM_M3_DTR_TIM_786                                        (0xF1UL<<TIM_M3_DTR_TIM_POS)
  4042.         #define TIM_M3_DTR_TIM_802                                        (0xF2UL<<TIM_M3_DTR_TIM_POS)
  4043.         #define TIM_M3_DTR_TIM_818                                        (0xF3UL<<TIM_M3_DTR_TIM_POS)
  4044.         #define TIM_M3_DTR_TIM_834                                        (0xF4UL<<TIM_M3_DTR_TIM_POS)
  4045.         #define TIM_M3_DTR_TIM_850                                        (0xF5UL<<TIM_M3_DTR_TIM_POS)
  4046.         #define TIM_M3_DTR_TIM_866                                        (0xF6UL<<TIM_M3_DTR_TIM_POS)
  4047.         #define TIM_M3_DTR_TIM_882                                        (0xF7UL<<TIM_M3_DTR_TIM_POS)
  4048.         #define TIM_M3_DTR_TIM_898                                        (0xF8UL<<TIM_M3_DTR_TIM_POS)
  4049.         #define TIM_M3_DTR_TIM_914                                        (0xF9UL<<TIM_M3_DTR_TIM_POS)
  4050.         #define TIM_M3_DTR_TIM_930                                        (0xFAUL<<TIM_M3_DTR_TIM_POS)
  4051.         #define TIM_M3_DTR_TIM_946                                        (0xFBUL<<TIM_M3_DTR_TIM_POS)
  4052.         #define TIM_M3_DTR_TIM_962                                        (0xFCUL<<TIM_M3_DTR_TIM_POS)
  4053.         #define TIM_M3_DTR_TIM_978                                        (0xFDUL<<TIM_M3_DTR_TIM_POS)
  4054.         #define TIM_M3_DTR_TIM_994                                        (0xFEUL<<TIM_M3_DTR_TIM_POS)
  4055.         #define TIM_M3_DTR_TIM_1010                                        (0xFFUL<<TIM_M3_DTR_TIM_POS)
  4056.         
  4057.         //===重复周期设置值
  4058.         #define TIM_M3_RCR_RCR_POS                                        0
  4059.         #define TIM_M3_RCR_RCR_MASK                                 (0xFFUL<<TIM_M3_RCR_RCR_POS)
  4060.         #define TIM_M3_RCR_RCR                                                TIM_M3_RCR_RCR_MASK

  4061.         //===通道0比较捕获寄存器
  4062.         #define TIM_M3_CCR_CCR0A_POS                                0
  4063.         #define TIM_M3_CCR_CCR0A_MASK                                 (0xFFFFUL<<TIM_M3_CCR_CCR0A_POS)
  4064.         #define TIM_M3_CCR_CCR0A                                        TIM_M3_CCR_CCR0A_MASK

  4065.         #define TIM_M3_CCR_CCR0B_POS                                0
  4066.         #define TIM_M3_CCR_CCR0B_MASK                                 (0xFFFFUL<<TIM_M3_CCR_CCR0A_POS)
  4067.         #define TIM_M3_CCR_CCR0B                                        TIM_M3_CCR_CCR0B_MASK

  4068.         //===通道1比较捕获寄存器
  4069.         #define TIM_M3_CCR_CCR1A_POS                                0
  4070.         #define TIM_M3_CCR_CCR1A_MASK                                 (0xFFFFUL<<TIM_M3_CCR_CCR1A_POS)
  4071.         #define TIM_M3_CCR_CCR1A                                        TIM_M3_CCR_CCR1A_MASK

  4072.         #define TIM_M3_CCR_CCR1B_POS                                0
  4073.         #define TIM_M3_CCR_CCR1B_MASK                                 (0xFFFFUL<<TIM_M3_CCR_CCR1B_POS)
  4074.         #define TIM_M3_CCR_CCR1B                                        TIM_M3_CCR_CCR1B_MASK

  4075.         //===通道2比较捕获寄存器
  4076.         #define TIM_M3_CCR_CCR2A_POS                                0
  4077.         #define TIM_M3_CCR_CCR2A_MASK                                 (0xFFFFUL<<TIM_M3_CCR_CCR2A_POS)
  4078.         #define TIM_M3_CCR_CCR2A                                        TIM_M3_CCR_CCR2A_MASK

  4079.         #define TIM_M3_CCR_CCR2B_POS                                0
  4080.         #define TIM_M3_CCR_CCR2B_MASK                                 (0xFFFFUL<<TIM_M3_CCR_CCR2B_POS)
  4081.         #define TIM_M3_CCR_CCR2B                                        TIM_M3_CCR_CCR2B_MASK

  4082. #pragma endregion

  4083. #pragma endregion

  4084. #pragma region TIMP
  4085.         //===高级定时器
  4086.         typedef struct
  4087.         {
  4088.                 __IO uint32_t CNTER;                //---重载寄存器
  4089.                 __IO uint32_t PERAR;                //---16位模式计数寄存器
  4090.                 __IO uint32_t PERBR;                //---32位模式计数寄存器
  4091.                 uint32_t RESERVED1;                        //---保留字节
  4092.                 __IO uint32_t GCMAR;                //---控制寄存器
  4093.                 __IO uint32_t GCMBR;                //---中断标志
  4094.                 __IO uint32_t GCMCR;                //---中断标志清除
  4095.                 __IO uint32_t GCMDR;                //---中断标志
  4096.                 uint32_t RESERVED2[2];                //---保留字节
  4097.                 __IO uint32_t SCMAR;                //---主从模式控制
  4098.                 __IO uint32_t SCMBR;                //---滤波控制
  4099.                 uint32_t RESERVED3[4];                //---保留字节
  4100.                 __IO uint32_t DTUAR;                //---ADC触发控制
  4101.                 __IO uint32_t DTDAR;                //---比较单元0控制寄存器
  4102.                 uint32_t RESERVED4[2];                //---保留字节

  4103.                 __IO uint32_t GCONR;                //---比较单元1控制寄存器
  4104.                 __IO uint32_t ICONR;                //---比较单元2控制寄存器
  4105.                 __IO uint32_t PCONR;                //---死区寄存器
  4106.                 __IO uint32_t BCONR;                //---重复计数寄存器
  4107.                 __IO uint32_t DCONT;                //---控制寄存器1

  4108.                 __IO uint32_t FCONR;                //---比较0A寄存器
  4109.                 __IO uint32_t VPERR;                //---比较0B寄存器
  4110.                 __IO uint32_t STFLR;                //---比较1A寄存器
  4111.                 __IO uint32_t HSTAR;                //---比较1B寄存器
  4112.                 __IO uint32_t HSTPR;                //---比较2A寄存器
  4113.                 __IO uint32_t HCELR;                //---比较2B寄存器

  4114.                 __IO uint32_t HCPAR;                //---比较0A寄存器
  4115.                 __IO uint32_t HCPBR;                //---比较0B寄存器
  4116.                 __IO uint32_t HCUPR;                //---比较1A寄存器
  4117.                 __IO uint32_t HCDOR;                //---比较1B寄存器

  4118.                 uint32_t RESERVED5[28];                //---保留字节

  4119.                 __IO uint32_t SR;                        //---比较2A寄存器
  4120.                 __IO uint32_t CSR;                        //---比较2B寄存器
  4121.                 __IO uint32_t CR;                        //---比较2B寄存器
  4122.                 uint32_t RESERVED6;                        //---保留字节

  4123.                 __IO uint32_t AOSSR;                //---比较1B寄存器
  4124.                 __IO uint32_t AOSCL;                //---比较2A寄存器
  4125.                 __IO uint32_t PTBKS;                //---比较2B寄存器

  4126.                 __IO uint32_t TTRIG;                //---比较0A寄存器
  4127.                 __IO uint32_t ITRIG;                //---比较0B寄存器
  4128.                 __IO uint32_t PTBKP;                //---比较1A寄存器

  4129.                 uint32_t RESERVED7[179];        //---保留字节
  4130.                
  4131.                 __IO uint32_t SSTAR;                //---比较1B寄存器
  4132.                 __IO uint32_t SSTPR;                //---比较2A寄存器
  4133.                 __IO uint32_t SCLRR;                //---比较2B寄存器

  4134.         } TIMP_TypeDef;
  4135. #pragma endregion

  4136. #pragma region LPTIM
  4137.         //===端口通用功能配置寄存器
  4138.         typedef struct
  4139.         {
  4140.                 __IO uint32_t CNT;                        //---控制寄存器1
  4141.                 __IO uint32_t ARR;                        //---控制寄存器1
  4142.                 uint32_t RESERVED;                        //---保留字节
  4143.                 __IO uint32_t CR;                        //---控制寄存器1
  4144.                 __IO uint32_t SR;                        //---控制寄存器1
  4145.                 __IO uint32_t CSR;                        //---控制寄存器1
  4146.         } LPTIM_TypeDef;

  4147.         #define LPTIM_ARR_ARR_POS                0
  4148.         #define LPTIM_ARR_ARR_MASK                (0xFFFFUL<<LPTIM_ARR_ARR_POS)
  4149.         #define LPTIM_ARR_ARR                        LPTIM_ARR_ARR_MASK

  4150.         #define LPTIM_CNT_CNT_POS                0
  4151.         #define LPTIM_CNT_CNT_MASK                (0xFFFFUL<<LPTIM_CNT_CNT_POS)
  4152.         #define LPTIM_CNT_CNT                        LPTIM_CNT_CNT_MASK
  4153.         
  4154.         //===低功耗定时器控制模式
  4155.         #define LPTIM_CR_PRS_POS                11
  4156.         #define LPTIM_CR_PRS_MASK                (0x07UL<<LPTIM_CR_PRS_POS)
  4157.         #define LPTIM_CR_PRS                        LPTIM_CR_PRS_MASK

  4158.         #define LPTIM_CR_PRS_1                        (0x00UL<<LPTIM_CR_PRS_POS)
  4159.         #define LPTIM_CR_PRS_2                        (0x01UL<<LPTIM_CR_PRS_POS)
  4160.         #define LPTIM_CR_PRS_4                        (0x02UL<<LPTIM_CR_PRS_POS)
  4161.         #define LPTIM_CR_PRS_8                        (0x03UL<<LPTIM_CR_PRS_POS)
  4162.         #define LPTIM_CR_PRS_16                        (0x04UL<<LPTIM_CR_PRS_POS)
  4163.         #define LPTIM_CR_PRS_32                        (0x05UL<<LPTIM_CR_PRS_POS)
  4164.         #define LPTIM_CR_PRS_64                        (0x06UL<<LPTIM_CR_PRS_POS)
  4165.         #define LPTIM_CR_PRS_256                (0x07UL<<LPTIM_CR_PRS_POS)

  4166.         //===中断使能控制
  4167.         #define LPTIM_CR_IE_POS                        10               
  4168.         #define LPTIM_CR_IE_MASK                (0x01UL<<LPTIM_CR_IE_POS)
  4169.         #define LPTIM_CR_IE                                LPTIM_CR_IE_MASK

  4170.         //===门控端口极性
  4171.         #define LPTIM_CR_GATEP_POS                9               
  4172.         #define LPTIM_CR_GATEP_MASK                (0x01UL<<LPTIM_CR_GATEP_POS)
  4173.         #define LPTIM_CR_GATEP                        LPTIM_CR_GATEP_MASK

  4174.         //===定时器门控使能
  4175.         #define LPTIM_CR_GATEN_POS                8               
  4176.         #define LPTIM_CR_GATEN_MASK                (0x01UL<<LPTIM_CR_GATEN_POS)
  4177.         #define LPTIM_CR_GATEN                        LPTIM_CR_GATEN_MASK

  4178.         //===同步标志
  4179.         #define LPTIM_CR_WT_FLAG_POS        7               
  4180.         #define LPTIM_CR_WT_FLAG_MASK        (0x01UL<<LPTIM_CR_WT_FLAG_POS)
  4181.         #define LPTIM_CR_WT_FLAG                LPTIM_CR_WT_FLAG_MASK

  4182.         //===时钟选择
  4183.         #define LPTIM_CR_TCK_SEL_POS        4               
  4184.         #define LPTIM_CR_TCK_SEL_MASK        (0x03UL<<LPTIM_CR_TCK_SEL_POS)
  4185.         #define LPTIM_CR_TCK_SEL                LPTIM_CR_TCK_SEL_MASK

  4186.         #define LPTIM_CR_TCK_SEL_PCLK        (0x00UL<<LPTIM_CR_TCK_SEL_POS)        
  4187.         #define LPTIM_CR_TCK_SEL_XTL        (0x02UL<<LPTIM_CR_TCK_SEL_POS)
  4188.         #define LPTIM_CR_TCK_SEL_RCL        (0x03UL<<LPTIM_CR_TCK_SEL_POS)

  4189.         //===TOG使能控制
  4190.         #define LPTIM_CR_TOGEN_POS                3               
  4191.         #define LPTIM_CR_TOGEN_MASK                (0x01UL<<LPTIM_CR_TOGEN_POS)
  4192.         #define LPTIM_CR_TOGEN                        LPTIM_CR_TOGEN_MASK

  4193.         //===定时/计数模式选择
  4194.         #define LPTIM_CR_CT_POS                        2               
  4195.         #define LPTIM_CR_CT_MASK                (0x01UL<<LPTIM_CR_CT_POS)
  4196.         #define LPTIM_CR_CT                                LPTIM_CR_CT_MASK

  4197.         //===自由/自动重载模式选择
  4198.         #define LPTIM_CR_MD_POS                        1               
  4199.         #define LPTIM_CR_MD_MASK                (0x01UL<<LPTIM_CR_MD_POS)
  4200.         #define LPTIM_CR_MD                                LPTIM_CR_MD_MASK

  4201.         //===定时器使能
  4202.         #define LPTIM_CR_EN_POS                        0               
  4203.         #define LPTIM_CR_EN_MASK                (0x01UL<<LPTIM_CR_EN_POS)
  4204.         #define LPTIM_CR_EN                                LPTIM_CR_EN_MASK

  4205.         //===中断标志寄存器
  4206.         #define LPTIM_SR_IE_POS                        0
  4207.         #define LPTIM_SR_IE_MASK                 (0x01U<<LPTIM_SR_IE_POS)
  4208.         #define LPTIM_SR_IE                                LPTIM_SR_IE_MASK

  4209.         //===中断标志清除寄存器
  4210.         #define LPTIM_CSR_IE_POS                0
  4211.         #define LPTIM_CSR_IE_MASK                 (0x01U<<LPTIM_SR_IE_POS)
  4212.         #define LPTIM_CSR_IE                        LPTIM_SR_IE_MASK

  4213. #pragma endregion

  4214. #pragma region TRIM
  4215.         //===时钟校准模块
  4216.         typedef struct
  4217.         {
  4218.                 __IO uint32_t CR;                        //---配置寄存器
  4219.                 __IO uint32_t REFCON;                //---参考计数器初值配置寄存器
  4220.                 __IO uint32_t REFCNT;                //---参考计数器值
  4221.                 __IO uint32_t CALCNT;                //---校准计数器值
  4222.                 __IO uint32_t SR;                        //---中断标志位寄存器
  4223.                 __IO uint32_t CSR;                        //---中断标志位清除计数器
  4224.                 __IO uint32_t CALCON;                //---校准计数器溢出值配置寄存器
  4225.         } TRIM_TypeDef;

  4226.         //===待校准/监测时钟选择高位寄存器
  4227.         #define TRIM_CR_CALCLK_H_POS                        8
  4228.         #define TRIM_CR_CALCLK_H_MASK                        (0x01UL<<TRIM_CR_CALCLK_H_POS)
  4229.         #define TRIM_CR_CALCLK_H                                TRIM_CR_CALCLK_H_MASK

  4230.         #define TRIM_CR_CALCLK_L_POS                        4
  4231.         #define TRIM_CR_CALCLK_L_MASK                        (0x03UL<<TRIM_CR_CALCLK_L_POS)
  4232.         #define TRIM_CR_CALCLK_L                                TRIM_CR_CALCLK_L_MASK

  4233.         //===校准时钟选择
  4234.         #define TRIM_CR_CALCLK_MASK                                ((0x01UL<<TRIM_CR_CALCLK_H_POS)|(0x03UL<<TRIM_CR_CALCLK_L_POS))
  4235.         #define TRIM_CR_CALCLK_RCH                                ((0x00UL<<TRIM_CR_CALCLK_H_POS)|(0x00UL<<TRIM_CR_CALCLK_L_POS))
  4236.         #define TRIM_CR_CALCLK_XTH                                ((0x00UL<<TRIM_CR_CALCLK_H_POS)|(0x01UL<<TRIM_CR_CALCLK_L_POS))
  4237.         #define TRIM_CR_CALCLK_RCL                                ((0x00UL<<TRIM_CR_CALCLK_H_POS)|(0x02UL<<TRIM_CR_CALCLK_L_POS))
  4238.         #define TRIM_CR_CALCLK_XTL                                ((0x00UL<<TRIM_CR_CALCLK_H_POS)|(0x03UL<<TRIM_CR_CALCLK_L_POS))
  4239.         #define TRIM_CR_CALCLK_PLL                                ((0x01UL<<TRIM_CR_CALCLK_H_POS)|(0x00UL<<TRIM_CR_CALCLK_L_POS))

  4240.         //===校准中断使能位
  4241.         #define TRIM_CR_IE_POS                                        7
  4242.         #define TRIM_CR_IE_MASK                                        (0x01UL<<TRIM_CR_IE_POS)
  4243.         #define TRIM_CR_IE                                                TRIM_CR_IE_MASK

  4244.         //===监测模式使能位
  4245.         #define TRIM_CR_EN_POS                                        6
  4246.         #define TRIM_CR_EN_MASK                                        (0x01UL<<TRIM_CR_EN_POS)
  4247.         #define TRIM_CR_EN                                                TRIM_CR_EN_MASK

  4248.         //===参考时钟选择
  4249.         #define TRIM_CR_REFCLK_POS                                1
  4250.         #define TRIM_CR_REFCLK_MASK                                (0x07UL<<TRIM_CR_REFCLK_POS)
  4251.         #define TRIM_CR_REFCLK                                        TRIM_CR_REFCLK_MASK

  4252.         #define TRIM_CR_REFCLK_RCH                                (0x00UL<<TRIM_CR_REFCLK_POS)
  4253.         #define TRIM_CR_REFCLK_XTH                                (0x01UL<<TRIM_CR_REFCLK_POS)
  4254.         #define TRIM_CR_REFCLK_RCL                                (0x02UL<<TRIM_CR_REFCLK_POS)
  4255.         #define TRIM_CR_REFCLK_XTL                                (0x03UL<<TRIM_CR_REFCLK_POS)
  4256.         #define TRIM_CR_REFCLK_IRC10K                        (0x04UL<<TRIM_CR_REFCLK_POS)
  4257.         #define TRIM_CR_REFCLK_EXCLK                        (0x05UL<<TRIM_CR_REFCLK_POS)

  4258.         //===校准/监测开始寄存器
  4259.         #define TRIM_CR_START_POS                                0
  4260.         #define TRIM_CR_START_MASK                                (0x01UL<<TRIM_CR_START_POS)
  4261.         #define TRIM_CR_START                                        TRIM_CR_START_MASK

  4262.         //===PLL失效标注
  4263.         #define TRIM_SR_PLL_POS                                        4
  4264.         #define TRIM_SR_PLL_MASK                                (0x01UL<<TRIM_SR_PLL_POS)
  4265.         #define TRIM_SR_PLL                                                TRIM_SR_PLL_MASK

  4266.         //===XTH失效标志
  4267.         #define TRIM_SR_XTH_POS                                        3
  4268.         #define TRIM_SR_XTH_MASK                                (0x01UL<<TRIM_SR_XTH_POS)
  4269.         #define TRIM_SR_XTH                                                TRIM_SR_XTH_MASK

  4270.         //===XTL失效标志
  4271.         #define TRIM_SR_XTL_POS                                        2
  4272.         #define TRIM_SR_XTL_MASK                                (0x01UL<<TRIM_SR_XTL_POS)
  4273.         #define TRIM_SR_XTL                                                TRIM_SR_XTL_MASK

  4274.         //===校准溢出标志
  4275.         #define TRIM_SR_CALOF_POS                                1
  4276.         #define TRIM_SR_CALOF_MASK                                (0x01UL<<TRIM_SR_CALOF_POS)
  4277.         #define TRIM_SR_CALOF                                        TRIM_SR_CALOF_MASK

  4278.         //===参考计数器停止标志
  4279.         #define TRIM_SR_REFSTOP_POS                                0
  4280.         #define TRIM_SR_REFSTOP_MASK                        (0x01UL<<TRIM_SR_REFSTOP_POS)
  4281.         #define TRIM_SR_REFSTOP                                        TRIM_SR_REFSTOP_MASK

  4282.         //===清除PLL失效标注
  4283.         #define TRIM_CSR_PLL_POS                                4
  4284.         #define TRIM_CSR_PLL_MASK                                (0x01UL<<TRIM_CSR_PLL_POS)
  4285.         #define TRIM_CSR_PLL                                        TRIM_CSR_PLL_MASK

  4286.         //===清除XTH失效标志
  4287.         #define TRIM_CSR_XTH_POS                                3
  4288.         #define TRIM_CSR_XTH_MASK                                (0x01UL<<TRIM_CSR_XTH_POS)
  4289.         #define TRIM_CSR_XTH                                        TRIM_CSR_XTH_MASK

  4290.         //===清除XTL失效标志
  4291.         #define TRIM_CSR_XTL_POS                                2
  4292.         #define TRIM_CSR_XTL_MASK                                (0x01UL<<TRIM_CSR_XTL_POS)
  4293.         #define TRIM_CSR_XTL                                        TRIM_CSR_XTL_MASK

  4294. #pragma endregion

  4295. #pragma region OPA
  4296.         //===运算放大器
  4297.         typedef struct
  4298.         {
  4299.                 __IO uint32_t CR;                                         //---配置寄存器
  4300.         } OPA_TypeDef;

  4301.         #define OPA_CR_CH4_EN_POS                                6
  4302.         #define OPA_CR_CH4_EN_MASK                                (0x01UL<<OPA_CR_CH4_EN_POS)
  4303.         #define OPA_CR_CH4_EN                                        OPA_CR_CH4_EN_MASK

  4304.         #define OPA_CR_CH3_EN_POS                                5
  4305.         #define OPA_CR_CH3_EN_MASK                                (0x01UL<<OPA_CR_CH3_EN_POS)
  4306.         #define OPA_CR_CH3_EN                                        OPA_CR_CH3_EN_MASK

  4307.         #define OPA_CR_CH2_EN_POS                                4
  4308.         #define OPA_CR_CH2_EN_MASK                                (0x01UL<<OPA_CR_CH2_EN_POS)
  4309.         #define OPA_CR_CH2_EN                                        OPA_CR_CH2_EN_MASK

  4310.         #define OPA_CR_CH1_EN_POS                                3
  4311.         #define OPA_CR_CH1_EN_MASK                                (0x01UL<<OPA_CR_CH1_EN_POS)
  4312.         #define OPA_CR_CH1_EN                                        OPA_CR_CH1_EN_MASK

  4313.         #define OPA_CR_BUFFER_EN_POS                        2
  4314.         #define OPA_CR_BUFFER_EN_MASK                        (0x01UL<<OPA_CR_BUFFER_EN_POS)
  4315.         #define OPA_CR_BUFFER_EN                                OPA_CR_BUFFER_EN_MASK

  4316.         #define OPA_CR_EN_POS                                        0
  4317.         #define OPA_CR_EN_MASK                                        (0x01UL<<OPA_CR_EN_POS)
  4318.         #define OPA_CR_EN                                                OPA_CR_EN_MASK

  4319. #pragma endregion

  4320. #pragma region PCA
  4321.         //===端口通用功能配置寄存器
  4322.         typedef struct
  4323.         {
  4324.                 __IO uint32_t CCON;                        //---控制寄存器1
  4325.                 __IO uint32_t CMOD;                        //---控制寄存器1
  4326.                 __IO uint32_t CNT;                        //---控制寄存器1
  4327.                 __IO uint32_t CSR;                        //---控制寄存器1
  4328.                 __IO uint32_t CCAPM0;                //---控制寄存器1
  4329.                 __IO uint32_t CCAPM1;                //---控制寄存器1
  4330.                 __IO uint32_t CCAPM2;                //---控制寄存器1
  4331.                 __IO uint32_t CCAPM3;                //---控制寄存器1
  4332.                 __IO uint32_t CCAPM4;                //---控制寄存器1
  4333.                 __IO uint32_t CCAP0H;                //---控制寄存器1
  4334.                 __IO uint32_t CCAP0L;                //---控制寄存器1
  4335.                 __IO uint32_t CCAP1H;                //---控制寄存器1
  4336.                 __IO uint32_t CCAP1L;                //---控制寄存器1
  4337.                 __IO uint32_t CCAP2H;                //---控制寄存器1
  4338.                 __IO uint32_t CCAP2L;                //---控制寄存器1
  4339.                 __IO uint32_t CCAP3H;                //---控制寄存器1
  4340.                 __IO uint32_t CCAP3L;                //---控制寄存器1
  4341.                 __IO uint32_t CCAP4H;                //---控制寄存器1
  4342.                 __IO uint32_t CCAP4L;                //---控制寄存器1
  4343.                 __IO uint32_t CCAPO;                //---控制寄存器1
  4344.                 __IO uint32_t CCAP0;                //---控制寄存器1
  4345.                 __IO uint32_t CCAP1;                //---控制寄存器1
  4346.                 __IO uint32_t CCAP2;                //---控制寄存器1
  4347.                 __IO uint32_t CCAP3;                //---控制寄存器1
  4348.                 __IO uint32_t CCAP4;                //---控制寄存器1
  4349.                 __IO uint32_t CARR;                        //---控制寄存器1
  4350.                 __IO uint32_t EPWM;                        //---控制寄存器1
  4351.         } PCA_TypeDef;
  4352. #pragma endregion

  4353. #pragma region WDT
  4354.         //===端口通用功能配置寄存器
  4355.         typedef struct
  4356.         {
  4357.                 __IO uint32_t RST;                        //---控制寄存器1
  4358.                 __IO uint32_t CON;                        //---控制寄存器1
  4359.         } WDT_TypeDef;

  4360.         //===端口通用功能配置寄存器
  4361.         typedef struct
  4362.         {
  4363.                 __IO uint32_t RST;                        //---控制寄存器1
  4364.                 __IO uint32_t CON;                        //---控制寄存器1
  4365.         } IWDG_TypeDef;

  4366.         //===WDT中断标志
  4367.         #define IWDG_CON_INT_FLAG_POS        7
  4368.         #define IWDG_CON_INT_FLAG_MASK        (0x01UL<<IWDG_CON_INT_FLAG_POS)
  4369.         #define IWDG_CON_INT_FLAG                IWDG_CON_INT_FLAG_MASK

  4370.         //===WDT溢出后的工作配置
  4371.         #define IWDG_CON_INT_EN_POS                5
  4372.         #define IWDG_CON_INT_EN_MASK        (0x01UL<<IWDG_CON_INT_EN_POS)
  4373.         #define IWDG_CON_INT_EN                        IWDG_CON_INT_EN_MASK

  4374.         //===WDT运行标志
  4375.         #define IWDG_CON_READY_POS                4
  4376.         #define IWDG_CON_READY_MASK                (0x01UL<<IWDG_CON_READY_POS)
  4377.         #define IWDG_CON_READY                        IWDG_CON_READY_MASK

  4378.         //===WDT定时器的溢出时间配置
  4379.         #define IWDG_CON_WOV_POS                0
  4380.         #define IWDG_CON_WOV_MASK                (0x0FUL<<IWDG_CON_WOV_POS)
  4381.         #define IWDG_CON_WOV                        IWDG_CON_WOV_MASK

  4382.         //===看门狗溢出时间
  4383.         #define IWDG_CON_WOV_MS_1P6                (0x00UL<<IWDG_CON_WOV_POS)
  4384.         #define IWDG_CON_WOV_MS_3P2                (0x01UL<<IWDG_CON_WOV_POS)
  4385.         #define IWDG_CON_WOV_MS_6P4                (0x02UL<<IWDG_CON_WOV_POS)
  4386.         #define IWDG_CON_WOV_MS_13                (0x03UL<<IWDG_CON_WOV_POS)
  4387.         #define IWDG_CON_WOV_MS_26                (0x04UL<<IWDG_CON_WOV_POS)
  4388.         #define IWDG_CON_WOV_MS_51                (0x05UL<<IWDG_CON_WOV_POS)
  4389.         #define IWDG_CON_WOV_MS_102                (0x06UL<<IWDG_CON_WOV_POS)
  4390.         #define IWDG_CON_WOV_MS_205                (0x07UL<<IWDG_CON_WOV_POS)
  4391.         #define IWDG_CON_WOV_MS_500                (0x08UL<<IWDG_CON_WOV_POS)
  4392.         #define IWDG_CON_WOV_MS_820                (0x09UL<<IWDG_CON_WOV_POS)
  4393.         #define IWDG_CON_WOV_MS_1640        (0x0AUL<<IWDG_CON_WOV_POS)
  4394.         #define IWDG_CON_WOV_MS_3280        (0x0BUL<<IWDG_CON_WOV_POS)
  4395.         #define IWDG_CON_WOV_MS_6550        (0x0CUL<<IWDG_CON_WOV_POS)
  4396.         #define IWDG_CON_WOV_MS_13100        (0x0DUL<<IWDG_CON_WOV_POS)
  4397.         #define IWDG_CON_WOV_MS_26200        (0x0EUL<<IWDG_CON_WOV_POS)
  4398.         #define IWDG_CON_WOV_MS_52400        (0x0FUL<<IWDG_CON_WOV_POS)

  4399. #pragma endregion

  4400. #pragma region ADC
  4401.         //===端口通用功能配置寄存器
  4402.         typedef struct
  4403.         {
  4404.                 __IO uint32_t CR0;                        //---控制寄存器1
  4405.                 __IO uint32_t CR1;                        //---控制寄存器1                08
  4406.                 uint32_t RESERVED1[13];                //---保留字节
  4407.                 __IO uint32_t SQR[3];                //---顺序扫描转换通道配置寄存器
  4408.                 __IO uint32_t JQR;                        //---插队扫描转换通道配置寄存器
  4409.                 __IO uint32_t SQRDR[16];        //---顺序扫描装换结果配置寄存器
  4410.                 __IO uint32_t JQRDR[4];                //---插队扫描装换结果配置寄存器
  4411.                 __I  uint32_t DR;                        //---转换结果
  4412.                 __I  uint32_t DRACC;                //---转换累加结果
  4413.                 __IO uint32_t HT;                        //---比较上阈值
  4414.                 __IO uint32_t LT;                        //---比较下阈值
  4415.                 __IO uint32_t SR;                        //---标志寄存器
  4416.                 __IO uint32_t CSR;                        //---清除标志寄存器
  4417.                 __IO uint32_t EXTRIG0;                //---外部触发源0
  4418.                 __IO uint32_t EXTRIG1;                //---外部触发源1
  4419.                 __IO uint32_t SGLSTART;                //---单次转换开始
  4420.                 __IO uint32_t SQRSTART;                //---顺序转换开始
  4421.                 __IO uint32_t JQRSTART;                //---插队转换开始
  4422.                 __IO uint32_t ALLSTART;                //---全部转换开始
  4423.         } ADC_TypeDef;

  4424.         //===配置寄存器0
  4425.         #define ADC_CR0_IE_POS                                        15
  4426.         #define ADC_CR0_IE_MASK                                        (0x01UL<<ADC_CR0_IE_POS)
  4427.         #define ADC_CR0_IE                                                ADC_CR0_IE_MASK

  4428.         #define ADC_CR0_INREF_POS                                14
  4429.         #define ADC_CR0_INREF_MASK                                (0x01UL<<ADC_CR0_INREF_POS)
  4430.         #define ADC_CR0_INREF                                        ADC_CR0_INREF_MASK

  4431.         #define ADC_CR0_SAM_POS                                        12
  4432.         #define ADC_CR0_SAM_MASK                                (0x03UL<<ADC_CR0_SAM_POS)
  4433.         #define ADC_CR0_SAM                                                ADC_CR0_SAM_MASK

  4434.         #define ADC_CR0_SAM_CYCLE_4                                (0x00UL<<ADC_CR0_SAM_POS)
  4435.         #define ADC_CR0_SAM_CYCLE_6                                (0x01UL<<ADC_CR0_SAM_POS)
  4436.         #define ADC_CR0_SAM_CYCLE_8                                (0x02UL<<ADC_CR0_SAM_POS)
  4437.         #define ADC_CR0_SAM_CYCLE_12                        (0x03UL<<ADC_CR0_SAM_POS)

  4438.         #define ADC_CR0_BUFFER_POS                                11
  4439.         #define ADC_CR0_BUFFER_MASK                                (0x01UL<<ADC_CR0_BUFFER_POS)
  4440.         #define ADC_CR0_BUFFER                                        ADC_CR0_BUFFER_MASK

  4441.         #define ADC_CR0_REF_POS                                        9
  4442.         #define ADC_CR0_REF_MASK                                (0x03UL<<ADC_CR0_REF_POS)
  4443.         #define ADC_CR0_REF                                                ADC_CR0_REF_MASK

  4444.         #define ADC_CR0_REF_IN1P5                                (0x00UL<<ADC_CR0_REF_POS)
  4445.         #define ADC_CR0_REF_IN2P5                                (0x01UL<<ADC_CR0_REF_POS)
  4446.         #define ADC_CR0_REF_EXREF                                (0x02UL<<ADC_CR0_REF_POS)
  4447.         #define ADC_CR0_REF_AVCC                                (0x03UL<<ADC_CR0_REF_POS)

  4448.         #define ADC_CR0_CH_POS                                        4
  4449.         #define ADC_CR0_CH_MASK                                        (0x1FUL<<ADC_CR0_CH_POS)
  4450.         #define ADC_CR0_CH                                                ADC_CR0_CH_MASK

  4451.         #define ADC_CR0_CH_AIN0                                        (0x00UL<<ADC_CR0_CH_POS)
  4452.         #define ADC_CR0_CH_AIN1                                        (0x01UL<<ADC_CR0_CH_POS)
  4453.         #define ADC_CR0_CH_AIN2                                        (0x02UL<<ADC_CR0_CH_POS)
  4454.         #define ADC_CR0_CH_AIN3                                        (0x03UL<<ADC_CR0_CH_POS)
  4455.         #define ADC_CR0_CH_AIN4                                        (0x04UL<<ADC_CR0_CH_POS)
  4456.         #define ADC_CR0_CH_AIN5                                        (0x05UL<<ADC_CR0_CH_POS)
  4457.         #define ADC_CR0_CH_AIN6                                        (0x06UL<<ADC_CR0_CH_POS)
  4458.         #define ADC_CR0_CH_AIN7                                        (0x07UL<<ADC_CR0_CH_POS)
  4459.         #define ADC_CR0_CH_AIN8                                        (0x08UL<<ADC_CR0_CH_POS)
  4460.         #define ADC_CR0_CH_AIN9                                        (0x09UL<<ADC_CR0_CH_POS)
  4461.         #define ADC_CR0_CH_AIN10                                (0x0AUL<<ADC_CR0_CH_POS)
  4462.         #define ADC_CR0_CH_AIN11                                (0x0BUL<<ADC_CR0_CH_POS)
  4463.         #define ADC_CR0_CH_AIN12                                (0x0CUL<<ADC_CR0_CH_POS)
  4464.         #define ADC_CR0_CH_AIN13                                (0x0DUL<<ADC_CR0_CH_POS)
  4465.         #define ADC_CR0_CH_AIN14                                (0x0EUL<<ADC_CR0_CH_POS)
  4466.         #define ADC_CR0_CH_AIN15                                (0x0FUL<<ADC_CR0_CH_POS)
  4467.         #define ADC_CR0_CH_AIN16                                (0x10UL<<ADC_CR0_CH_POS)
  4468.         #define ADC_CR0_CH_AIN17                                (0x11UL<<ADC_CR0_CH_POS)
  4469.         #define ADC_CR0_CH_AIN18                                (0x12UL<<ADC_CR0_CH_POS)
  4470.         #define ADC_CR0_CH_AIN19                                (0x13UL<<ADC_CR0_CH_POS)
  4471.         #define ADC_CR0_CH_AIN20                                (0x14UL<<ADC_CR0_CH_POS)
  4472.         #define ADC_CR0_CH_AIN21                                (0x15UL<<ADC_CR0_CH_POS)
  4473.         #define ADC_CR0_CH_AIN22                                (0x16UL<<ADC_CR0_CH_POS)
  4474.         #define ADC_CR0_CH_AIN23                                (0x17UL<<ADC_CR0_CH_POS)
  4475.         #define ADC_CR0_CH_AIN24                                (0x18UL<<ADC_CR0_CH_POS)
  4476.         #define ADC_CR0_CH_AIN25                                (0x19UL<<ADC_CR0_CH_POS)

  4477.         #define ADC_CR0_CH_DAC                                        (0x1AUL<<ADC_CR0_CH_POS)
  4478.         #define ADC_CR0_CH_AVCC_P3                                (0x1BUL<<ADC_CR0_CH_POS)
  4479.         #define ADC_CR0_CH_TEMP                                        (0x1CUL<<ADC_CR0_CH_POS)
  4480.         #define ADC_CR0_CH_IN1P2                                (0x1DUL<<ADC_CR0_CH_POS)

  4481.         #define ADC_CR0_CLK_POS                                        2
  4482.         #define ADC_CR0_CLK_MASK                                (0x03UL<<ADC_CR0_CLK_POS)
  4483.         #define ADC_CR0_CLK                                                ADC_CR0_CLK_MASK

  4484.         #define ADC_CR0_CLK_DIV1                                (0x00UL<<ADC_CR0_CLK_POS)
  4485.         #define ADC_CR0_CLK_DIV2                                (0x01UL<<ADC_CR0_CLK_POS)
  4486.         #define ADC_CR0_CLK_DIV4                                (0x02UL<<ADC_CR0_CLK_POS)
  4487.         #define ADC_CR0_CLK_DIV8                                (0x03UL<<ADC_CR0_CLK_POS)
  4488.         
  4489.         #define ADC_CR0_EN_POS                                        0
  4490.         #define ADC_CR0_EN_MASK                                        (0x01UL<<ADC_CR0_EN_POS)
  4491.         #define ADC_CR0_EN                                                ADC_CR0_EN_MASK

  4492.         //===配置寄存器1
  4493.         #define ADC_CR1_ACC_CLR_POS                                15
  4494.         #define ADC_CR1_ACC_CLR_MASK                        (0x01UL<<ADC_CR1_ACC_CLR_POS)
  4495.         #define ADC_CR1_ACC_CLR                                        ADC_CR1_ACC_CLR_MASK

  4496.         #define ADC_CR1_REG_CMP_POS                                14
  4497.         #define ADC_CR1_REG_CMP_MASK                        (0x01UL<<ADC_CR1_REG_CMP_POS)
  4498.         #define ADC_CR1_REG_CMP                                        ADC_CR1_REG_CMP_MASK

  4499.         #define ADC_CR1_HT_CMP_POS                                13
  4500.         #define ADC_CR1_HT_CMP_MASK                                (0x01UL<<ADC_CR1_HT_CMP_POS)
  4501.         #define ADC_CR1_HT_CMP                                        ADC_CR1_HT_CMP_MASK

  4502.         #define ADC_CR1_LT_CMP_POS                                12
  4503.         #define ADC_CR1_LT_CMP_MASK                                (0x01UL<<ADC_CR1_LT_CMP_POS)
  4504.         #define ADC_CR1_LT_CMP                                        ADC_CR1_LT_CMP_MASK

  4505.         #define ADC_CR1_ACC_EN_POS                                11
  4506.         #define ADC_CR1_ACC_EN_MASK                                (0x01UL<<ADC_CR1_ACC_EN_POS)
  4507.         #define ADC_CR1_ACC_EN                                        ADC_CR1_ACC_EN_MASK

  4508.         #define ADC_CR1_MODE_POS                                10
  4509.         #define ADC_CR1_MODE_MASK                                (0x01UL<<ADC_CR1_MODE_POS)
  4510.         #define ADC_CR1_MODE                                        ADC_CR1_MODE_MASK

  4511.         #define ADC_CR1_DMA_JQR_POS                                9
  4512.         #define ADC_CR1_DMA_JQR_MASK                        (0x01UL<<ADC_CR1_DMA_JQR_POS)
  4513.         #define ADC_CR1_DMA_JQR                                        ADC_CR1_DMA_JQR_MASK

  4514.         #define ADC_CR1_DMA_SQR_POS                                8
  4515.         #define ADC_CR1_DMA_SQR_MASK                        (0x01UL<<ADC_CR1_DMA_SQR_POS)
  4516.         #define ADC_CR1_DMA_SQR                                        ADC_CR1_DMA_SQR_MASK
  4517.         
  4518.         #define ADC_CR1_TH_CH_POS                                3
  4519.         #define ADC_CR1_TH_CH_MASK                                (0x1FUL<<ADC_CR1_TH_CH_POS)
  4520.         #define ADC_CR1_TH_CH                                        ADC_CR1_TH_CH_MASK

  4521.         #define ADC_CR1_TH_CH_AIN0                                (0x00UL<<ADC_CR1_TH_CH_POS)
  4522.         #define ADC_CR1_TH_CH_AIN1                                (0x01UL<<ADC_CR1_TH_CH_POS)
  4523.         #define ADC_CR1_TH_CH_AIN2                                (0x02UL<<ADC_CR1_TH_CH_POS)
  4524.         #define ADC_CR1_TH_CH_AIN3                                (0x03UL<<ADC_CR1_TH_CH_POS)
  4525.         #define ADC_CR1_TH_CH_AIN4                                (0x04UL<<ADC_CR1_TH_CH_POS)
  4526.         #define ADC_CR1_TH_CH_AIN5                                (0x05UL<<ADC_CR1_TH_CH_POS)
  4527.         #define ADC_CR1_TH_CH_AIN6                                (0x06UL<<ADC_CR1_TH_CH_POS)
  4528.         #define ADC_CR1_TH_CH_AIN7                                (0x07UL<<ADC_CR1_TH_CH_POS)
  4529.         #define ADC_CR1_TH_CH_AIN8                                (0x08UL<<ADC_CR1_TH_CH_POS)
  4530.         #define ADC_CR1_TH_CH_AIN9                                (0x09UL<<ADC_CR1_TH_CH_POS)
  4531.         #define ADC_CR1_TH_CH_AIN10                                (0x0AUL<<ADC_CR1_TH_CH_POS)
  4532.         #define ADC_CR1_TH_CH_AIN11                                (0x0BUL<<ADC_CR1_TH_CH_POS)
  4533.         #define ADC_CR1_TH_CH_AIN12                                (0x0CUL<<ADC_CR1_TH_CH_POS)
  4534.         #define ADC_CR1_TH_CH_AIN13                                (0x0DUL<<ADC_CR1_TH_CH_POS)
  4535.         #define ADC_CR1_TH_CH_AIN14                                (0x0EUL<<ADC_CR1_TH_CH_POS)
  4536.         #define ADC_CR1_TH_CH_AIN15                                (0x0FUL<<ADC_CR1_TH_CH_POS)
  4537.         #define ADC_CR1_TH_CH_AIN16                                (0x10UL<<ADC_CR1_TH_CH_POS)
  4538.         #define ADC_CR1_TH_CH_AIN17                                (0x11UL<<ADC_CR1_TH_CH_POS)
  4539.         #define ADC_CR1_TH_CH_AIN18                                (0x12UL<<ADC_CR1_TH_CH_POS)
  4540.         #define ADC_CR1_TH_CH_AIN19                                (0x13UL<<ADC_CR1_TH_CH_POS)
  4541.         #define ADC_CR1_TH_CH_AIN20                                (0x14UL<<ADC_CR1_TH_CH_POS)
  4542.         #define ADC_CR1_TH_CH_AIN21                                (0x15UL<<ADC_CR1_TH_CH_POS)
  4543.         #define ADC_CR1_TH_CH_AIN22                                (0x16UL<<ADC_CR1_TH_CH_POS)
  4544.         #define ADC_CR1_TH_CH_AIN23                                (0x17UL<<ADC_CR1_TH_CH_POS)
  4545.         #define ADC_CR1_TH_CH_AIN24                                (0x18UL<<ADC_CR1_TH_CH_POS)
  4546.         #define ADC_CR1_TH_CH_AIN25                                (0x19UL<<ADC_CR1_TH_CH_POS)
  4547.         #define ADC_CR1_TH_CH_AIN26                                (0x11UL<<ADC_CR1_TH_CH_POS)
  4548.         #define ADC_CR1_TH_CH_AIN27                                (0x1BUL<<ADC_CR1_TH_CH_POS)
  4549.         #define ADC_CR1_TH_CH_AIN28                                (0x1CUL<<ADC_CR1_TH_CH_POS)
  4550.         #define ADC_CR1_TH_CH_AIN29                                (0x1DUL<<ADC_CR1_TH_CH_POS)

  4551.         #define ADC_CR1_ALIGN_POS                                2
  4552.         #define ADC_CR1_ALIGN_MASK                                (0x01UL<<ADC_CR1_ALIGN_POS)
  4553.         #define ADC_CR1_ALIGN                                        ADC_CR1_ALIGN_MASK
  4554.         
  4555.         //===转换通道配置寄存器
  4556.         #define ADC_SQR_MUX0_MASK                                (0x1FUL<<0)
  4557.         #define ADC_SQR_MUX0_POS                                0

  4558.         #define ADC_SQR_MUX1_MASK                                (0x1FUL<<5)
  4559.         #define ADC_SQR_MUX1_POS                                5

  4560.         #define ADC_SQR_MUX2_MASK                                (0x1FUL<<10)
  4561.         #define ADC_SQR_MUX2_POS                                10

  4562.         #define ADC_SQR_MUX3_MASK                                (0x1FUL<<15)
  4563.         #define ADC_SQR_MUX3_POS                                15

  4564.         #define ADC_SQR_MUX4_MASK                                (0x1FUL<<20)
  4565.         #define ADC_SQR_MUX4_POS                                20

  4566.         #define ADC_SQR_MUX5_MASK                                (0x1FUL<<25)
  4567.         #define ADC_SQR_MUX5_POS                                25
  4568.         
  4569.         #define ADC_SQR_CNT_MASK                                (0x0FUL<<20)
  4570.         #define ADC_SQR_CNT_POS                                        20

  4571.         #define ADC_JQR_MUX0_MASK                                (0x1FUL<<0)
  4572.         #define ADC_JQR_MUX0_POS                                0

  4573.         #define ADC_JQR_MUX1_MASK                                (0x1FUL<<5)
  4574.         #define ADC_JQR_MUX1_POS                                5

  4575.         #define ADC_JQR_MUX2_MASK                                (0x1FUL<<10)
  4576.         #define ADC_JQR_MUX2_POS                                10

  4577.         #define ADC_JQR_MUX3_MASK                                (0x1FUL<<15)
  4578.         #define ADC_JQR_MUX3_POS                                15

  4579.         #define ADC_JQR_CNT_MASK                                (0x03UL<<20)
  4580.         #define ADC_JQR_CNT_POS                                        20

  4581.         //===ADC转换结果
  4582.         #define ADC_DR_MASK                                                (0x0FFFUL<<0)
  4583.         #define ADC_DR_ACC_MASK                                        (0xFFFFFUL<<0)

  4584.         //===ADC上下阈值
  4585.         #define ADC_DR_HT_MASK                                        (0x0FFFUL<<0)
  4586.         #define ADC_DR_LT_ACC_MASK                                (0x0FFFUL<<0)

  4587.         //===中断标志
  4588.         #define ADC_SR_JQR_POS                                        5
  4589.         #define ADC_SR_JQR_MASK                                        (0x01UL<<ADC_SR_JQR_POS)
  4590.         #define ADC_SR_JQR                                                ADC_SR_JQR_MASK

  4591.         #define ADC_SR_SQR_POS                                        4
  4592.         #define ADC_SR_SQR_MASK                                        (0x01UL<<ADC_SR_SQR_POS)
  4593.         #define ADC_SR_SQR                                                ADC_SR_SQR_MASK

  4594.         #define ADC_SR_CMP_POS                                        3
  4595.         #define ADC_SR_CMP_MASK                                        (0x01UL<<ADC_SR_CMP_POS)
  4596.         #define ADC_SR_CMP                                                ADC_SR_CMP_MASK

  4597.         #define ADC_SR_HT_POS                                        2
  4598.         #define ADC_SR_HT_MASK                                        (0x01UL<<ADC_SR_HT_POS)
  4599.         #define ADC_SR_HT                                                ADC_SR_HT_MASK

  4600.         #define ADC_SR_LT_POS                                        1
  4601.         #define ADC_SR_LT_MASK                                        (0x01UL<<ADC_SR_LT_POS)
  4602.         #define ADC_SR_LT                                                ADC_SR_LT_MASK

  4603.         #define ADC_SR_SGL_POS                                        0
  4604.         #define ADC_SR_SGL_MASK                                        (0x01UL<<ADC_SR_SGL_POS)
  4605.         #define ADC_SR_SGL                                                ADC_SR_SGL_MASK

  4606.         //===清除中断标志
  4607.         #define ADC_CSR_JQR_POS                                        5
  4608.         #define ADC_CSR_JQR_MASK                                (0x01UL<<ADC_CSR_JQR_POS)
  4609.         #define ADC_CSR_JQR                                                ADC_CSR_JQR_MASK

  4610.         #define ADC_CSR_SQR_POS                                        4
  4611.         #define ADC_CSR_SQR_MASK                                (0x01UL<<ADC_CSR_SQR_POS)
  4612.         #define ADC_CSR_SQR                                                ADC_CSR_SQR_MASK

  4613.         #define ADC_CSR_CMP_POS                                        3
  4614.         #define ADC_CSR_CMP_MASK                                (0x01UL<<ADC_CSR_CMP_POS)
  4615.         #define ADC_CSR_CMP                                                ADC_CSR_CMP_MASK

  4616.         #define ADC_CSR_HT_POS                                        2
  4617.         #define ADC_CSR_HT_MASK                                        (0x01UL<<ADC_CSR_HT_POS)
  4618.         #define ADC_CSR_HT                                                ADC_CSR_HT_MASK

  4619.         #define ADC_CSR_LT_POS                                        1
  4620.         #define ADC_CSR_LT_MASK                                        (0x01UL<<ADC_CSR_LT_POS)
  4621.         #define ADC_CSR_LT                                                ADC_CSR_LT_MASK

  4622.         #define ADC_CSR_SGL_POS                                        0
  4623.         #define ADC_CSR_SGL_MASK                                (0x01UL<<ADC_CSR_SGL_POS)
  4624.         #define ADC_CSR_SGL                                                ADC_CSR_SGL_MASK

  4625.         //===单次转换启动
  4626.         #define ADC_SGL_START_POS                                0
  4627.         #define ADC_SGL_START_MASK                                (0x01UL<<ADC_SGL_START_POS)
  4628.         #define ADC_SGL_START                                        ADC_SGL_START_MASK

  4629.         //===顺序转换启动
  4630.         #define ADC_SQR_START_POS                                0
  4631.         #define ADC_SQR_START_MASK                                (0x01UL<<ADC_SQR_START_POS)
  4632.         #define ADC_SQR_START                                        ADC_SQR_START_MASK
  4633.         
  4634.         //===插队转换启动
  4635.         #define ADC_JQR_START_POS                                0
  4636.         #define ADC_JQR_START_MASK                                (0x01UL<<ADC_JQR_START_POS)
  4637.         #define ADC_JQR_START                                        ADC_JQR_START_MASK
  4638.         
  4639.         //===全部转换启动
  4640.         #define ADC_ALL_START_POS                                0
  4641.         #define ADC_ALL_START_MASK                                (0x01UL<<ADC_ALL_START_POS)
  4642.         #define ADC_ALL_START                                        ADC_ALL_START_MASK
  4643.         
  4644. #pragma endregion

  4645. #pragma region VC
  4646.         //===端口通用功能配置寄存器
  4647.         typedef struct
  4648.         {
  4649.                 __IO uint32_t CR;                        //---控制寄存器1
  4650.                 __IO uint32_t CR0;                        //---控制寄存器1
  4651.                 __IO uint32_t CR1;                        //---控制寄存器1
  4652.                 __IO uint32_t OUT0;                        //---控制寄存器1
  4653.                 __IO uint32_t OUT1;                        //---控制寄存器1
  4654.                 __IO uint32_t SR;                        //---控制寄存器1
  4655.                 uint32_t RESERVED[75];                //---保留字节
  4656.                 __IO uint32_t CR2;                        //---控制寄存器1
  4657.                 __IO uint32_t OUT2;                        //---控制寄存器1
  4658.         } VC_TypeDef;
  4659. #pragma endregion

  4660. #pragma region BGR
  4661.         //===端口通用功能配置寄存器
  4662.         typedef struct
  4663.         {
  4664.                 __IO uint32_t CR;                        //---配置寄存器
  4665.         } BGR_TypeDef;

  4666.         //===内部温度传感器使能控制
  4667.         #define BGR_TS_EN_POS                        1
  4668.         #define BGR_TS_EN_MASK                        (0x01UL<<BGR_TS_EN_POS)
  4669.         #define BGR_TS_EN                                BGR_TS_EN_MASK

  4670.         //===BGA使能控制
  4671.         #define BGR_CR_EN_POS                        0
  4672.         #define BGR_CR_EN_MASK                        (0x01UL<<BGR_CR_EN_POS)
  4673.         #define BGR_CR_EN                                BGR_CR_EN_MASK

  4674. #pragma endregion

  4675. #pragma region PCNT
  4676.         //===端口通用功能配置寄存器
  4677.         typedef struct
  4678.         {
  4679.                 __IO uint32_t RUN;                        //---控制寄存器1
  4680.                 __IO uint32_t CTRL;                        //---控制寄存器1
  4681.                 __IO uint32_t FLT;                        //---控制寄存器1
  4682.                 __IO uint32_t TOCR;                        //---控制寄存器1
  4683.                 __IO uint32_t CMD;                        //---控制寄存器1
  4684.                 __IO uint32_t SR1;                        //---控制寄存器1
  4685.                 __IO uint32_t CNT;                        //---控制寄存器1
  4686.                 __IO uint32_t TOP;                        //---控制寄存器1
  4687.                 __IO uint32_t BUF;                        //---控制寄存器1
  4688.                 __IO uint32_t SR;                        //---控制寄存器1
  4689.                 __IO uint32_t CSR;                        //---控制寄存器1
  4690.                 __IO uint32_t IEN;                        //---控制寄存器1
  4691.                 __IO uint32_t SR2;                        //---控制寄存器1
  4692.                 __IO uint32_t DBG;                        //---控制寄存器1
  4693.         } PCNT_TypeDef;
  4694. #pragma endregion

  4695. #pragma region LCD
  4696.         //===端口通用功能配置寄存器
  4697.         typedef struct
  4698.         {
  4699.                 __IO uint32_t CR0;                        //---控制寄存器1
  4700.                 __IO uint32_t CR1;                        //---控制寄存器1
  4701.                 __IO uint32_t CSR;                        //---控制寄存器1
  4702.                 __IO uint32_t P0EN0;                //---控制寄存器1
  4703.                 __IO uint32_t P0EN1;                //---控制寄存器1 10
  4704.                 uint32_t RESERVED2[11];                //---保留字节 14 18 1C 20 24 28 2C 30 34 38 3C
  4705.                 __IO uint32_t RAM0;                        //---控制寄存器1
  4706.                 __IO uint32_t RAM1;                        //---控制寄存器1
  4707.                 __IO uint32_t RAM2;                        //---控制寄存器1
  4708.                 __IO uint32_t RAM3;                        //---控制寄存器1

  4709.                 __IO uint32_t RAM4;                        //---控制寄存器1
  4710.                 __IO uint32_t RAM5;                        //---控制寄存器1
  4711.                 __IO uint32_t RAM6;                        //---控制寄存器1
  4712.                 __IO uint32_t RAM7;                        //---控制寄存器1

  4713.                 __IO uint32_t RAM8;                        //---控制寄存器1
  4714.                 __IO uint32_t RAM9;                        //---控制寄存器1
  4715.                 __IO uint32_t RAMA;                        //---控制寄存器1
  4716.                 __IO uint32_t RAMB;                        //---控制寄存器1

  4717.                 __IO uint32_t RAMC;                        //---控制寄存器1
  4718.                 __IO uint32_t RAMD;                        //---控制寄存器1
  4719.                 __IO uint32_t RAME;                        //---控制寄存器1
  4720.                 __IO uint32_t RAMF;                        //---控制寄存器1

  4721.         } LCD_TypeDef;
  4722. #pragma endregion

  4723. #pragma region AES
  4724.         //===端口通用功能配置寄存器
  4725.         typedef struct
  4726.         {
  4727.                 __IO uint32_t CR;                        //---控制寄存器 0x00
  4728.                 uint32_t RESERVED[3];                //---保留字节 04 08 0C
  4729.                 __IO uint32_t DR[4];                //---数据寄存器 10 14 18 1C
  4730.                 __IO uint32_t KEY[8];                //---秘钥寄存器 20 24 28 2C 30 34 38 3C
  4731.         } AES_TypeDef;

  4732.         #define AES_CR_KEYSIZE_POS                        3
  4733.         #define AES_CR_KEYSIZE_MASK         (0x03UL<<AES_CR_KEYSIZE_POS)
  4734.         #define AES_CR_KEYSIZE                                AES_CR_KEYSIZE_MASK

  4735.         #define AES_CR_KEYSIZE_128          (0x00UL<<AES_CR_KEYSIZE_POS)
  4736.         #define AES_CR_KEYSIZE_192          (0x01UL<<AES_CR_KEYSIZE_POS)
  4737.         #define AES_CR_KEYSIZE_256          (0x02UL<<AES_CR_KEYSIZE_POS)

  4738.         #define AES_CR_MODE_POS                                1
  4739.         #define AES_CR_MODE_MASK                        (0x01UL<<AES_CR_MODE_POS)
  4740.         #define AES_CR_MODE                                        AES_CR_MODE_MASK

  4741.         #define AES_CR_START_POS                        0
  4742.         #define AES_CR_START_MASK                        (0x01UL<<AES_CR_START_POS)
  4743.         #define AES_CR_START                                AES_CR_START_MASK

  4744.         #define AES_DR_DATA_POS                                0
  4745.         #define AES_DR_DATA_MASK                        (0xFFFFFFFFUL<<AES_DR_DATA_POS)
  4746.         #define AES_DR_DATA                                        AES_DR_DATA_MASK

  4747.         #define AES_KEY_KEY_POS                                0
  4748.         #define AES_KEY_KEY_MASK                        (0xFFFFFFFFUL<<AES_KEY_KEY_POS)
  4749.         #define AES_KEY_KEY                                        AES_KEY_KEY_MASK

  4750. #pragma endregion

  4751. #pragma region DAC
  4752.         //===端口通用功能配置寄存器
  4753.         typedef struct
  4754.         {
  4755.                 __IO uint32_t CR;                        //---控制寄存器1
  4756.                 __IO uint32_t SWTR;                        //---控制寄存器1
  4757.                 __IO uint32_t DHR12R0;                //---控制寄存器1
  4758.                 __IO uint32_t DHR12L0;                //---控制寄存器1
  4759.                 __IO uint32_t DHR8R0;                //---控制寄存器1                10 1C 18 1C 20 24 28
  4760.                 uint32_t RESERVED1[6];                //---保留字节                2C
  4761.                 __IO uint32_t DOR;                        //---控制寄存器1
  4762.                 uint32_t RESERVED2;                        //---保留字节
  4763.                 __IO uint32_t SR;                        //---控制寄存器1
  4764.                 __IO uint32_t ETRS;                        //---控制寄存器1
  4765.         } DAC_TypeDef;

  4766.         //===DAC参考电压选择
  4767.         #define DAC_CR_SREF_POS                        14
  4768.         #define DAC_CR_SREF_MASK                (0x03UL<<DAC_CR_SREF_POS)
  4769.         #define DAC_CR_SREF                                DAC_CR_SREF_MASK

  4770.         #define DAC_CR_DMAIE_POS                13
  4771.         #define DAC_CR_DMAIE_MASK                (0x01UL<<DAC_CR_DMAIE_POS)
  4772.         #define DAC_CR_DMAIE                        DAC_CR_DMAIE_MASK

  4773.         #define DAC_CR_DMAEN_POS                12
  4774.         #define DAC_CR_DMAEN_MASK                (0x01UL<<DAC_CR_DMAIE_POS)
  4775.         #define DAC_CR_DMAEN                        DAC_CR_DMAIE_MASK

  4776.         #define DAC_CR_WAVE_POS                        6
  4777.         #define DAC_CR_WAVE_MASK                (0x03UL<<DAC_CR_DMAIE_POS)
  4778.         #define DAC_CR_WAVE                                DAC_CR_DMAIE_MASK

  4779.         #define DAC_CR_TRIGSEL_POS                3
  4780.         #define DAC_CR_TRIGSEL_MASK                (0x07UL<<DAC_CR_DMAIE_POS)
  4781.         #define DAC_CR_TRIGSEL                        DAC_CR_DMAIE_MASK

  4782.         #define DAC_CR_TRIGEN_POS                2
  4783.         #define DAC_CR_TRIGEN_MASK                (0x07UL<<DAC_CR_DMAIE_POS)
  4784.         #define DAC_CR_TRIGEN                        DAC_CR_DMAIE_MASK

  4785.         #define DAC_CR_BUFFER_POS                1
  4786.         #define DAC_CR_BUFFER_MASK                (0x01UL<<DAC_CR_DMAIE_POS)
  4787.         #define DAC_CR_BUFFER                        DAC_CR_DMAIE_MASK

  4788.         #define DAC_CR_EN_POS                        0
  4789.         #define DAC_CR_EN_MASK                        (0x01UL<<DAC_CR_DMAIE_POS)
  4790.         #define DAC_CR_EN                                DAC_CR_DMAIE_MASK

  4791.         //===端口触发选择
  4792.         #define DAC_ETRS_TRIGSEL_POS        4
  4793.         #define DAC_ETRS_TRIGSEL_MASK        (0x07UL<<DAC_CR_DMAIE_POS)
  4794.         #define DAC_ETRS_TRIGSEL                DAC_CR_DMAIE_MASK

  4795. #pragma endregion

  4796. #pragma region LVD
  4797.         //===端口通用功能配置寄存器
  4798.         typedef struct
  4799.         {
  4800.                 __IO uint32_t CR;                        //---配置寄存器
  4801.                 __IO uint32_t SR;                        //---状态寄存器
  4802.         } LVD_TypeDef;

  4803.         //===LVD中断使能控制
  4804.         #define LVD_CR_IE_POS                        15
  4805.         #define LVD_CR_IE_MASK                        (0x01UL<<LVD_CR_IE_POS)
  4806.         #define LVD_CR_IE                                LVD_CR_IE_MASK

  4807.         //===LVD触发方式
  4808.         #define LVD_CR_HT_POS                        14
  4809.         #define LVD_CR_HT_MASK                        (0x01UL<<LVD_CR_HT_POS)
  4810.         #define LVD_CR_HT                                LVD_CR_HT_MASK

  4811.         //===LVD触发方式
  4812.         #define LVD_CR_RT_POS                        13
  4813.         #define LVD_CR_RT_MASK                        (0x01UL<<LVD_CR_RT_POS)
  4814.         #define LVD_CR_RT                                LVD_CR_RT_MASK

  4815.         //===LVD触发方式
  4816.         #define LVD_CR_FT_POS                        12
  4817.         #define LVD_CR_FT_MASK                        (0x01UL<<LVD_CR_FT_POS)
  4818.         #define LVD_CR_FT                                LVD_CR_FT_MASK

  4819.         //===LVD中断触发方式
  4820.         #define LVD_CR_IRQ_POS                        12
  4821.         #define LVD_CR_IRQ_MASK                        (0x07UL<<LVD_CR_IRQ_POS)
  4822.         #define LVD_CR_IRQ                                LVD_CR_IRQ_MASK

  4823.         //===数字滤波时间
  4824.         #define LVD_CR_FITLER_TIME_POS        9
  4825.         #define LVD_CR_FITLER_TIME_MASK        (0x07UL<<LVD_CR_FITLER_TIME_POS)
  4826.         #define LVD_CR_FITLER_TIME                LVD_CR_FITLER_TIME_MASK

  4827.         #define LVD_CR_FITLER_US_7                (0x00UL<<LVD_CR_FITLER_TIME_POS)
  4828.         #define LVD_CR_FITLER_US_14                (0x01UL<<LVD_CR_FITLER_TIME_POS)
  4829.         #define LVD_CR_FITLER_US_28                (0x02UL<<LVD_CR_FITLER_TIME_POS)
  4830.         #define LVD_CR_FITLER_US_112        (0x03UL<<LVD_CR_FITLER_TIME_POS)
  4831.         #define LVD_CR_FITLER_US_450        (0x04UL<<LVD_CR_FITLER_TIME_POS)
  4832.         #define LVD_CR_FITLER_US_1800        (0x05UL<<LVD_CR_FITLER_TIME_POS)
  4833.         #define LVD_CR_FITLER_US_7200        (0x06UL<<LVD_CR_FITLER_TIME_POS)
  4834.         #define LVD_CR_FITLER_US_28800        (0x07UL<<LVD_CR_FITLER_TIME_POS)
  4835.         
  4836.         //===数字滤波使能配置
  4837.         #define LVD_CR_FITLER_EN_POS        8
  4838.         #define LVD_CR_FITLER_EN_MASK        (0x07UL<<LVD_CR_FITLER_EN_POS)
  4839.         #define LVD_CR_FITLER_EN                LVD_CR_FITLER_EN_MASK

  4840.         //===LVD阈值电压选择
  4841.         #define LVD_CR_LVDS_POS                        4
  4842.         #define LVD_CR_LVDS_MASK                (0x0FUL<<LVD_CR_LVDS_POS)
  4843.         #define LVD_CR_LVDS                                LVD_CR_LVDS_MASK

  4844.         #define LVD_CR_LVDS_V_1P8                (0x00UL<<LVD_CR_LVDS_POS)
  4845.         #define LVD_CR_LVDS_V_1P9                (0x01UL<<LVD_CR_LVDS_POS)
  4846.         #define LVD_CR_LVDS_V_2P0                (0x02UL<<LVD_CR_LVDS_POS)
  4847.         #define LVD_CR_LVDS_V_2P1                (0x03UL<<LVD_CR_LVDS_POS)
  4848.         #define LVD_CR_LVDS_V_2P2                (0x04UL<<LVD_CR_LVDS_POS)
  4849.         #define LVD_CR_LVDS_V_2P3                (0x05UL<<LVD_CR_LVDS_POS)
  4850.         #define LVD_CR_LVDS_V_2P4                (0x06UL<<LVD_CR_LVDS_POS)
  4851.         #define LVD_CR_LVDS_V_2P5                (0x07UL<<LVD_CR_LVDS_POS)
  4852.         #define LVD_CR_LVDS_V_2P6                (0x08UL<<LVD_CR_LVDS_POS)
  4853.         #define LVD_CR_LVDS_V_2P7                (0x09UL<<LVD_CR_LVDS_POS)
  4854.         #define LVD_CR_LVDS_V_2P8                (0x0AUL<<LVD_CR_LVDS_POS)
  4855.         #define LVD_CR_LVDS_V_2P9                (0x0BUL<<LVD_CR_LVDS_POS)
  4856.         #define LVD_CR_LVDS_V_3P0                (0x0CUL<<LVD_CR_LVDS_POS)
  4857.         #define LVD_CR_LVDS_V_3P1                (0x0DUL<<LVD_CR_LVDS_POS)
  4858.         #define LVD_CR_LVDS_V_3P2                (0x0EUL<<LVD_CR_LVDS_POS)
  4859.         #define LVD_CR_LVDS_V_3P3                (0x0FUL<<LVD_CR_LVDS_POS)

  4860.         //===LVD监测来源
  4861.         #define LVD_CR_SOURCE_POS                2
  4862.         #define LVD_CR_SOURCE_MASK                (0x03UL<<LVD_CR_SOURCE_POS)
  4863.         #define LVD_CR_SOURCE                        LVD_CR_SOURCE_MASK

  4864.         #define LVD_CR_SOURCE_PB07                (0x03UL<<LVD_CR_SOURCE_POS)
  4865.         #define LVD_CR_SOURCE_PB08                (0x02UL<<LVD_CR_SOURCE_POS)
  4866.         #define LVD_CR_SOURCE_PC13                (0x01UL<<LVD_CR_SOURCE_POS)
  4867.         #define LVD_CR_SOURCE_AVCC                (0x00UL<<LVD_CR_SOURCE_POS)

  4868.         //===LVD触发动作选择
  4869.         #define LVD_CR_ACT_POS                        1
  4870.         #define LVD_CR_ACT_MASK                        (0x01UL<<LVD_CR_ACT_POS)
  4871.         #define LVD_CR_ACT                                LVD_CR_ACT_MASK

  4872.         #define LVD_CR_ACT_RESET                LVD_CR_ACT
  4873.         #define LVD_CR_ACT_NVIC                        (~LVD_CR_ACT)

  4874.         //===LVD使能控制
  4875.         #define LVD_CR_EN_POS                        0
  4876.         #define LVD_CR_EN_MASK                        (0x01UL<<LVD_CR_EN_POS)
  4877.         #define LVD_CR_EN                                LVD_CR_EN_MASK
  4878.         
  4879.         //===中断标志
  4880.         #define LVD_SR_INTF_POS                        0
  4881.         #define LVD_SR_INTF_MASK                (0x01UL<<LVD_SR_INTF_POS)
  4882.         #define LVD_SR_INTF                                LVD_SR_INTF_MASK

  4883. #pragma endregion

  4884. #pragma region DMA
  4885.         //===端口通用功能配置寄存器
  4886.         typedef struct
  4887.         {
  4888.                 __IO uint32_t CONF;                        //---配置寄存器
  4889.                 __IO uint32_t CONFA0;                //---状态寄存器
  4890.                 __IO uint32_t CONFB0;                //---状态寄存器
  4891.                 __IO uint32_t SRCADR0;                //---状态寄存器
  4892.                 __IO uint32_t DSTADR0;                //---状态寄存器
  4893.                
  4894.                 __IO uint32_t CONFA1;                //---状态寄存器
  4895.                 __IO uint32_t CONFB1;                //---状态寄存器
  4896.                 __IO uint32_t SRCADR1;                //---状态寄存器
  4897.                 __IO uint32_t DSTADR1;                //---状态寄存器
  4898.         } DMA_TypeDef;

  4899. #pragma endregion

  4900.         

  4901.         #define FLASH_BASE                                0x00000000U
  4902.         #define FLASH_END                                0x0001FFFFU
  4903.         #define FLASH_BANK1_END                        0x0001FFFFU
  4904.         #define SRAM_BASE                                0x20000000U
  4905.         #define SRAM_ENDsss                                0x20003FFFU
  4906.         #define PERIPH_BASE                                0x40000000U
  4907.         //#define SRAM_BB_BASE                        0x22000000U
  4908.         //#define PERIPH_BB_BASE                0x42000000U
  4909.         #define DBGMCU_BASE                                0x04002038U
  4910.         #define GPIO_SEL_OFFSET                        (0x100/4)

  4911.         //===产品身份标识
  4912.         #define UID_BASE                                0x00100E74U
  4913.         //===产品型号
  4914.         #define PID_BASE                                0x00100C60U
  4915.         //===Flash容量
  4916.         #define FLASH_SIZE_BASE                        0x00100C70U
  4917.         //===SRAM容量
  4918.         #define SRAM_SIZE_BASE                        0x00100C74U
  4919.         //===引脚数量
  4920.         #define PIN_NUM_BASE                        0x00100C7AU

  4921.         //===总线基地址
  4922.         #define APB0PERIPH_BASE                        PERIPH_BASE
  4923.         #define APB1PERIPH_BASE                        (PERIPH_BASE + 0x00004000U)
  4924.         #define AHBPERIPH_BASE                        (PERIPH_BASE + 0x00020000U)

  4925.         //===外设基地址
  4926.         #define UART0_BASE                                (APB0PERIPH_BASE + 0x00000000U)
  4927.         #define UART1_BASE                                (APB0PERIPH_BASE + 0x00000100U)
  4928.         #define LPUART0_BASE                        (APB0PERIPH_BASE + 0x00000200U)

  4929.         #define I2C0_BASE                                (APB0PERIPH_BASE + 0x00000400U)
  4930.         #define SPI0_BASE                                (APB0PERIPH_BASE + 0x00000800U)

  4931.         #define TIM0_BASE                                (APB0PERIPH_BASE + 0x00000C00U)
  4932.         #define TIM1_BASE                                (APB0PERIPH_BASE + 0x00000D00U)
  4933.         #define TIM2_BASE                                (APB0PERIPH_BASE + 0x00000E00U)
  4934.         #define LPTIM0_BASE                                (APB0PERIPH_BASE + 0x00000F00U)
  4935.         #define LPTIM1_BASE                                (APB0PERIPH_BASE + 0x00000F40U)
  4936.         #define WDT_BASE                                (APB0PERIPH_BASE + 0x00000F80U)
  4937.         #define PCA_BASE                                (APB0PERIPH_BASE + 0x00001000U)
  4938.         #define RTC_BASE                                (APB0PERIPH_BASE + 0x00001400U)

  4939.         //===时钟校准
  4940.         #define TRIM_BASE                                (APB0PERIPH_BASE + 0x00001800U)
  4941.         #define RCC_BASE                                (APB0PERIPH_BASE + 0x00002000U)
  4942.         #define BGR_BASE                                (APB0PERIPH_BASE + 0x00002400U)
  4943.         #define ADC0_BASE                                (APB0PERIPH_BASE + 0x00002404U)
  4944.         #define ADC_BASE                                (APB0PERIPH_BASE + 0x00002404U)
  4945.         #define VC_BASE                                        (APB0PERIPH_BASE + 0x00002410U)
  4946.         #define OPA_BASE                                (APB0PERIPH_BASE + 0x00002430U)
  4947.         #define LVD_BASE                                (APB0PERIPH_BASE + 0x00002428U)
  4948.         #define DAC0_BASE                                (APB0PERIPH_BASE + 0x00002500U)
  4949.         #define DAC_BASE                                (APB0PERIPH_BASE + 0x00002500U)
  4950.         #define TIMP4_BASE                                (APB0PERIPH_BASE + 0x00003000U)
  4951.         #define TIMP5_BASE                                (APB0PERIPH_BASE + 0x00003400U)
  4952.         #define TIMP6_BASE                                (APB0PERIPH_BASE + 0x00003800U)

  4953.         #define LPUART1_BASE                        (APB0PERIPH_BASE + 0x00004000U)
  4954.         #define I2C1_BASE                                (APB0PERIPH_BASE + 0x00004400U)
  4955.         #define SPI1_BASE                                (APB0PERIPH_BASE + 0x00004800U)
  4956.         #define RNG_BASE                                (APB0PERIPH_BASE + 0x00004C00U)
  4957.         #define PCNT_BASE                                (APB0PERIPH_BASE + 0x00005400U)
  4958.         #define TIM3_BASE                                (APB0PERIPH_BASE + 0x00005800U)
  4959.         #define LCD_BASE                                (APB0PERIPH_BASE + 0x00005C00U)
  4960.         #define UART2_BASE                                (APB0PERIPH_BASE + 0x00006000U)
  4961.         #define UART3_BASE                                (APB0PERIPH_BASE + 0x00006400U)

  4962.         #define FLASH_CTR_BASE                        (APB0PERIPH_BASE + 0x00020000U)
  4963.         #define RAM_CTR_BASE                        (APB0PERIPH_BASE + 0x00020400U)
  4964.         #define CRC_BASE                                (APB0PERIPH_BASE + 0x00020900U)
  4965.         #define DMAC_BASE                                (APB0PERIPH_BASE + 0x00021000U)
  4966.         #define AES_BASE                                (APB0PERIPH_BASE + 0x00021400U)

  4967.         //===端口功能选择寄存器
  4968.         #define GPIOA_AF_BASE                        (APB0PERIPH_BASE + 0x00020C00U)
  4969.         #define GPIOB_SEL_BASE                        (APB0PERIPH_BASE + 0x00020C40U)
  4970.         #define GPIOC_SEL_BASE                        (APB0PERIPH_BASE + 0x00020C80U)
  4971.         #define GPIOD_SEL_BASE                        (APB0PERIPH_BASE + 0x00020CC0U)

  4972.         #define GPIOE_SEL_BASE                        (APB0PERIPH_BASE + 0x00021C00U)
  4973.         #define GPIOF_SEL_BASE                        (APB0PERIPH_BASE + 0x00021C40U)

  4974.         //===端口特殊功能,辅助功能寄存器
  4975.         #define GPIO_AF_BASE                        (APB0PERIPH_BASE + 0x00020F04U)

  4976.         //===端口通用寄存器
  4977.         #define GPIOA_BASE                                (APB0PERIPH_BASE + 0x00020D00U)
  4978.         #define GPIOB_BASE                                (APB0PERIPH_BASE + 0x00020D40U)
  4979.         #define GPIOC_BASE                                (APB0PERIPH_BASE + 0x00020D80U)
  4980.         #define GPIOD_BASE                                (APB0PERIPH_BASE + 0x00020DC0U)

  4981.         #define GPIOE_BASE                                (APB0PERIPH_BASE + 0x00021D00U)
  4982.         #define GPIOF_BASE                                (APB0PERIPH_BASE + 0x00021D40U)

  4983.         #define GPIOA_AF_BASE                        (APB0PERIPH_BASE + 0x00020C00U)
  4984.         #define GPIOB_AF_BASE                        (APB0PERIPH_BASE + 0x00020C40U)
  4985.         #define GPIOC_AF_BASE                        (APB0PERIPH_BASE + 0x00020C80U)
  4986.         #define GPIOD_AF_BASE                        (APB0PERIPH_BASE + 0x00020CC0U)

  4987.         #define GPIOE_AF_BASE                        (APB0PERIPH_BASE + 0x00020CA0U)
  4988.         #define GPIOF_AF_BASE                        (APB0PERIPH_BASE + 0x00020CC0U)

  4989.         #define GPIO_SUB_BASE                        (APB0PERIPH_BASE + 0x00020F04U)

  4990.         //===端口中断配置寄存器
  4991.         #define EXITA_BASE                                (APB0PERIPH_BASE + 0x00020D30U)
  4992.         #define EXITB_BASE                                (APB0PERIPH_BASE + 0x00020D70U)
  4993.         #define EXITC_BASE                                (APB0PERIPH_BASE + 0x00020DB0U)
  4994.         #define EXITD_BASE                                (APB0PERIPH_BASE + 0x00020DF0U)

  4995.         #define EXITE_BASE                                (APB0PERIPH_BASE + 0x00021D30U)
  4996.         #define EXITF_BASE                                (APB0PERIPH_BASE + 0x00021D70U)
  4997.         
  4998.         //===定义端口功能
  4999.         #define GPIOA                                        ((GPIO_TypeDef *) GPIOA_BASE)
  5000.         #define GPIOB                                        ((GPIO_TypeDef *) GPIOB_BASE)
  5001.         #define GPIOC                                        ((GPIO_TypeDef *) GPIOC_BASE)
  5002.         #define GPIOD                                        ((GPIO_TypeDef *) GPIOD_BASE)
  5003.         #define GPIOE                                        ((GPIO_TypeDef *) GPIOE_BASE)
  5004.         #define GPIOF                                        ((GPIO_TypeDef *) GPIOF_BASE)

  5005.         #define GPIO_SELA                                ((GPIO_AF_TypeDef *) GPIOA_AF_BASE)
  5006.         #define GPIO_SELB                                ((GPIO_AF_TypeDef *) GPIOB_AF_BASE)
  5007.         #define GPIO_SELC                                ((GPIO_AF_TypeDef *) GPIOC_AF_BASE)
  5008.         #define GPIO_SELD                                ((GPIO_AF_TypeDef *) GPIOD_AF_BASE)
  5009.         #define GPIO_SELE                                ((GPIO_AF_TypeDef *) GPIOE_AF_BASE)
  5010.         #define GPIO_SELF                                ((GPIO_AF_TypeDef *) GPIOF_AF_BASE)

  5011.         #define GPIO_SUB                                ((GPIO_Sub_TypeDef *) GPIO_SUB_BASE)

  5012.         #define EXITA                                        ((EXIT_TypeDef *) EXITA_BASE)
  5013.         #define EXITB                                        ((EXIT_TypeDef *) EXITB_BASE)
  5014.         #define EXITC                                        ((EXIT_TypeDef *) EXITC_BASE)
  5015.         #define EXITD                                        ((EXIT_TypeDef *) EXITD_BASE)
  5016.         #define EXITE                                        ((EXIT_TypeDef *) EXITE_BASE)
  5017.         #define EXITF                                        ((EXIT_TypeDef *) EXITF_BASE)
  5018.         
  5019.         #define RCC                                                ((RCC_TypeDef *) RCC_BASE)
  5020.         #define FLASH                                        ((FLASH_TypeDef *) FLASH_CTR_BASE)
  5021.         #define RAM                                                ((RAM_TypeDef *) RAM_CTR_BASE)
  5022.         #define RNG                                                ((RNG_TypeDef *) RNG_BASE)
  5023.         #define CRC                                                ((CRC_TypeDef *) CRC_BASE)
  5024.         #define RTC                                                ((RTC_TypeDef *) RTC_BASE)
  5025.         
  5026.         #define I2C0                                        ((I2C_TypeDef *) I2C0_BASE)
  5027.         #define I2C1                                        ((I2C_TypeDef *) I2C1_BASE)

  5028.         #define SPI0                                        ((SPI_TypeDef *) SPI0_BASE)
  5029.         #define SPI1                                        ((SPI_TypeDef *) SPI1_BASE)

  5030.         #define UART0                                        ((USART_TypeDef *) UART0_BASE)
  5031.         #define UART1                                        ((USART_TypeDef *) UART1_BASE)
  5032.         #define UART2                                        ((USART_TypeDef *) UART2_BASE)
  5033.         #define UART3                                        ((USART_TypeDef *) UART3_BASE)

  5034.         #define LPUART0                                        ((LPUSART_TypeDef *) LPUART0_BASE)
  5035.         #define LPUART1                                        ((LPUSART_TypeDef *) LPUART1_BASE)

  5036.         #define LPTIM0                                        ((LPTIM_TypeDef *) LPTIM0_BASE)
  5037.         #define LPTIM1                                        ((LPTIM_TypeDef *) LPTIM1_BASE)
  5038.         #define TRIM                                        ((TRIM_TypeDef *) TRIM_BASE)

  5039.         #define TIM0                                        ((TIM_TypeDef *) TIM0_BASE)
  5040.         #define TIM1                                        ((TIM_TypeDef *) TIM1_BASE)
  5041.         #define TIM2                                        ((TIM_TypeDef *) TIM2_BASE)
  5042.         #define TIM3                                        ((TIM_TypeDef *) TIM3_BASE)

  5043.         #define TIM0_M0                                        ((TIM_M0_TypeDef *) TIM0_BASE)
  5044.         #define TIM1_M0                                        ((TIM_M0_TypeDef *) TIM1_BASE)
  5045.         #define TIM2_M0                                        ((TIM_M0_TypeDef *) TIM2_BASE)
  5046.         #define TIM3_M0                                        ((TIM_M0_TypeDef *) TIM3_BASE)

  5047.         #define TIM0_M1                                        ((TIM_M1_TypeDef *) TIM0_BASE)
  5048.         #define TIM1_M1                                        ((TIM_M1_TypeDef *) TIM1_BASE)
  5049.         #define TIM2_M1                                        ((TIM_M1_TypeDef *) TIM2_BASE)
  5050.         #define TIM3_M1                                        ((TIM_M1_TypeDef *) TIM3_BASE)

  5051.         #define TIM0_M2                                        ((TIM_M2_TypeDef *) TIM0_BASE)
  5052.         #define TIM1_M2                                        ((TIM_M2_TypeDef *) TIM1_BASE)
  5053.         #define TIM2_M2                                        ((TIM_M2_TypeDef *) TIM2_BASE)
  5054.         #define TIM3_M2                                        ((TIM_M2_TypeDef *) TIM3_BASE)        
  5055.         
  5056.         #define TIM0_M3                                        ((TIM_M3_TypeDef *) TIM0_BASE)
  5057.         #define TIM1_M3                                        ((TIM_M3_TypeDef *) TIM1_BASE)
  5058.         #define TIM2_M3                                        ((TIM_M3_TypeDef *) TIM2_BASE)
  5059.         #define TIM3_M3                                        ((TIM_M3_TypeDef *) TIM3_BASE)        

  5060.         #define TIMP4                                        ((TIMP_TypeDef *) TIMP4_BASE)
  5061.         #define TIMP5                                        ((TIMP_TypeDef *) TIMP5_BASE)
  5062.         #define TIMP6                                        ((TIMP_TypeDef *) TIMP6_BASE)

  5063.         #define OPA                                                ((OPA_TypeDef *) OPA_BASE)
  5064.         #define PCA                                                ((PCA_TypeDef *) PCA_BASE)
  5065.         #define WDT                                                ((WDT_TypeDef *) WDT_BASE)
  5066.         #define IWDG                                        ((IWDG_TypeDef *) WDT_BASE)
  5067.         #define BGR                                                ((BGR_TypeDef *)BGR_BASE)
  5068.         #define ADC0                                        ((ADC_TypeDef *) ADC0_BASE)
  5069.         #define ADC                                                ((ADC_TypeDef *) ADC_BASE)
  5070.         #define DAC0                                        ((DAC_TypeDef *) DAC0_BASE)
  5071.         #define DAC                                                ((DAC_TypeDef *) DAC_BASE)
  5072.         #define VC                                                ((VC_TypeDef *) VC_BASE)
  5073.         #define PCNT                                        ((PCNT_TypeDef *) PCNT_BASE)
  5074.         #define LCD                                                ((LCD_TypeDef *) LCD_BASE)
  5075.         #define AES                                                ((AES_TypeDef *) AES_BASE)
  5076.         #define LVD                                                ((LVD_TypeDef *) LVD_BASE)
  5077.         #define DMA                                                ((DMA_TypeDef *) DMAC_BASE)

  5078.         ///
  5079. #ifdef __cplusplus
  5080. }
  5081. #endif

  5082. #endif /* HC32L17XA_H */



chenjun89 发表于 2023-6-8 23:51 来自手机 | 显示全部楼层
国产也学ST,叫HAL库LL库了。
kjkujkj22 发表于 2023-6-19 18:57 | 显示全部楼层
这个库文件很棒的。
有何不可0365 发表于 2024-7-31 14:43 | 显示全部楼层
寄存器文件通常是以头文件的形式提供,文件中包含了每个外设的寄存器地址、位域以及相关的寄存器操作宏定义。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

134

主题

1382

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部