复旦微魔方FM33FR0xx——FL库笔记-定义

2023-11-11

fm33fr0xx.h的定义

一、时钟定义

#define __RCHF_INITIAL_CLOCK        (8000000)      //内部RC高频震荡器:8M
#define __RCMF_CLOCK                (4000000)      //内部RC 4M振荡器
#define __LPOSC_CLOCK               (32000)        //内部RC低频震荡器
#define __XTHF_CLOCK                (8000000)      //外部高频振荡器:4M
#define __XTLF_CLOCK                (32768)        //外部低频振荡器

二、中断定义

typedef enum {
/* -------------------  FM33FR0XX Processor Exceptions Numbers  -------------------*/
  Reset_IRQn                    = -15,              /*!<   1  复位向量 */
  NMI_IRQn                      = -14,              /*!<   2  WKUPx中断
                                                              低功耗模式错误中断
                                                              存储器非法访问中断
Flash ECC检错中断 */
  HardFault_IRQn                = -13,              /*!<   3  HardFault中断向量 */
  SVC_IRQn                      = -5,               /*!<  11  SVCall系统服务请求 */
  PendSV_IRQn                   = -2,               /*!<  14  可挂起系统服务请求 */
  SysTick_IRQn                  = -1,               /*!<  15  内部定时器中断向量 */

/* --------------------  Cortex-M0 Specific Interrupt Numbers  --------------------*/
  WDT_IRQn                      = 0,                /*!<   0  窗口看门狗或独立看门狗中断 */
  SVD_IRQn                      = 1,                /*!<   1  电源监测报警中断 */
  RTC_IRQn                      = 2,                /*!<   2  实时时钟中断 */
  MUX0_IRQn                     = 3,                /*!<   3  可配置多路中断 */
  TSI_IRQn                      = 4,                /*!<   4  按键触摸检测中断 */
  ADC_IRQn                      = 5,                /*!<   5  ADC转换完成中断 */
  CAN0_IRQn                     = 6,                /*!<   6  CAN0中断 */
  MUX1_IRQn                     = 7,                /*!<   7  可配置多路中断 */
  MUX2_IRQn                     = 8,                /*!<   8  可配置多路中断 */
  MUX3_IRQn                     = 9,                /*!<   9  可配置多路中断 */
  MUX4_IRQn                     = 10,               /*!<  10  可配置多路中断 */
  MUX5_IRQn                     = 11,               /*!<  11  可配置多路中断 */
  MUX6_IRQn                     = 12,               /*!<  12  可配置多路中断 */
  MUX7_IRQn                     = 13,               /*!<  13  可配置多路中断 */
  MUX8_IRQn                     = 14,               /*!<  14  可配置多路中断 */
  I2CMX_IRQn                    = 15,               /*!<  15  I2C master中断 */
  LPUART1_IRQn                  = 16,               /*!<  16  LPUART1中断 */
  I2C_SMBX_IRQn                 = 17,               /*!<  17  I2C SMBUS中断 */
  MUX9_IRQn                     = 18,               /*!<  18  可配置多路中断 */
  AES_IRQn                      = 19,               /*!<  19  AES中断 */
  LPTIM_IRQn                    = 20,               /*!<  20  LPTIM16中断 */
  DMA_IRQn                      = 21,               /*!<  21  DMA中断 */
  WKUPX_IRQn                    = 22,               /*!<  22  WKUP引脚中断 */
  MUX10_IRQn                    = 23,               /*!<  23  可配置多路中断 */
  BSTIM_IRQn                    = 24,               /*!<  24  BSTIM16中断 */
  COMPX_IRQn                    = 25,               /*!<  25  COMPx中断 */
  MUX11_IRQn                    = 26,               /*!<  26  可配置多路中断 */
  MUX12_IRQn                    = 27,               /*!<  27  可配置多路中断 */
  ATIM_IRQn                     = 28,               /*!<  28  高级定时器中断 */
  MUX13_IRQn                    = 29,               /*!<  29  可配置多路中断 */
  GPIO_IRQn                     = 30,               /*!<  30  外部引脚中断 */
  ECCC_RAMP_FDET_IRQn           = 31,               /*!<  31  Flash ECC纠错中断/RAM奇偶校
                                                              验错误中断/XTLF或XTHF停振检测
                                                              中断 */
} IRQn_Type;

三、FLASH、PMU、SCU、INTMUX、RMU、IWDT、WWDT、CMU、SVD、AES、RNG、COMP、DIVAS、I2CSMBx、I2Cx、UART、UARTx、LPUARTx、SPIx、CANx、DMA、CRC、ATIM、TAU、TAU0、TAU1、BSTIM16 、LPTIM16、RTC、LCD、ADC、PGL、TSI、SFU、DBG、GPIO定义

        具体内容请查看fm33fr0xx.h

其中GPIOx如下:

typedef struct
{
  __IO uint32_t INEN;  /*!<GPIOx Input Enable Register,           Address offset: 0x00 */
  __IO uint32_t PUDEN; /*!<GPIOx Pull-Up Pull-Down Enable Register,Address offset:0x04 */
  __IO uint32_t ODEN;  /*!<GPIOx Open-Drain Enable Register,      Address offset: 0x08 */
  __IO uint32_t FCR;   /*!<GPIOx Function Control Register,       Address offset: 0x0C */
  __IO uint32_t DO;    /*!<GPIOx Data Output Register,            Address offset: 0x10 */
  __O  uint32_t DSET;  /*!<GPIOx Data Set Register,               Address offset: 0x14 */
  __O  uint32_t DRST;  /*!<GPIOx Data Reset Register,             Address offset: 0x18 */
  __I  uint32_t DIN;   /*!<GPIOx Data Input Register,             Address offset: 0x1C */
  __IO uint32_t DFS;   /*!<GPIOx Digital Function Select,         Address offset: 0x20 */
  __IO uint32_t RSV1;  /*!<RESERVED REGISTER,                     Address offset: 0x24 */
  __IO uint32_t ANEN;  /*!<GPIOx Analog channel Enable Register,  Address offset: 0x28 */
  __IO uint32_t DSR;   /*!<GPIOx Driver Strength Register,        Address offset: 0x2C */
  __IO uint32_t TMUXR; /*!<GPIOC Timer Mux Register,Address offset: 0x30 */
}GPIO_Type;

四、内存映射

1、CPU内存映射

#define FLASH_BASE            ((     uint32_t)0x00000000)
#define SRAM_BASE             ((     uint32_t)0x20000000)
#define PERIPH_BASE           ((     uint32_t)0x40000000)

2、外设内存映射

#define FLS_BASE                        (PERIPH_BASE        +0x00001000)
#define PMU_BASE                        (PERIPH_BASE        +0x00002000)
#define VREFP_BASE                      (PERIPH_BASE        +0x00002040)
#define SCU_BASE                        (PERIPH_BASE        +0x00000000)
#define INTMUX_BASE                     (PERIPH_BASE        +0x00016000)
#define RMU_BASE                        (PERIPH_BASE        +0x00002800)
#define IWDT_BASE                       (PERIPH_BASE        +0x00011400)
#define WWDT_BASE                       (PERIPH_BASE        +0x00011800)
#define CMU_BASE                        (PERIPH_BASE        +0x00002400)
#define SVD_BASE                        (PERIPH_BASE        +0x0001A800)
#define AES_BASE                        (PERIPH_BASE        +0x0001B800)
#define RNG_BASE                        (PERIPH_BASE        +0x0001BC00)
#define COMP1_BASE                      (PERIPH_BASE        +0x00019C00)
#define COMP2_BASE                      (PERIPH_BASE        +0x00019C04)
#define COMP_COMMON_BASE                (PERIPH_BASE        +0x00019C0C)
#define DIVAS_BASE                      (PERIPH_BASE        +0x00013000)
#define I2CSMB0_BASE                    (PERIPH_BASE        +0x00012400)
#define I2CSMB1_BASE                    (PERIPH_BASE        +0x00012800)
#define I2C0_BASE                       (PERIPH_BASE        +0x00015000)
#define I2C1_BASE                       (PERIPH_BASE        +0x00015400)
#define I2C2_BASE                       (PERIPH_BASE        +0x00015800)
#define I2C3_BASE                       (PERIPH_BASE        +0x00015C00)
#define UART_COMMON_BASE                (PERIPH_BASE        +0x00017C00)
#define UART0_BASE                      (PERIPH_BASE        +0x00011C00)
#define UART1_BASE                      (PERIPH_BASE        +0x00012000)
#define UART2_BASE                      (PERIPH_BASE        +0x00017400)
#define UART3_BASE                      (PERIPH_BASE        +0x00017800)
#define UART4_BASE                      (PERIPH_BASE        +0x0001A000)
#define UART5_BASE                      (PERIPH_BASE        +0x0001A400)
#define LPUART1_BASE                    (PERIPH_BASE        +0x00010400)
#define SPI0_BASE                       (PERIPH_BASE        +0x00019000)
#define SPI1_BASE                       (PERIPH_BASE        +0x00018C00)
#define SPI2_BASE                       (PERIPH_BASE        +0x00010800)
#define SPI3_BASE                       (PERIPH_BASE        +0x00014000)
#define CAN0_BASE                       (PERIPH_BASE        +0x00019400)
#define CAN1_BASE                       (PERIPH_BASE        +0x00018800)
#define DMA_BASE                        (PERIPH_BASE        +0x00000400)
#define CRC_BASE                        (PERIPH_BASE        +0x00018000)
#define ATIM_BASE                       (PERIPH_BASE        +0x0001B000)
#define TAU_COMMON_BASE                 (PERIPH_BASE        +0x00013C00)
#define TAU0_BASE                       (PERIPH_BASE        +0x00013C10)
#define TAU1_BASE                       (PERIPH_BASE        +0x00013CF0)
#define BSTIM16_BASE                    (PERIPH_BASE        +0x0001B400)
#define LPTIM16_BASE                    (PERIPH_BASE        +0x00013400)
#define RTC_BASE                        (PERIPH_BASE        +0x00011000)
#define LCD_BASE                        (PERIPH_BASE        +0x00010C00)
#define ADC_BASE                        (PERIPH_BASE        +0x0001AC00)
#define PGL_BASE                        (PERIPH_BASE        +0x00013800)
#define TSI_BASE                        (PERIPH_BASE        +0x00010000)
#define GPIOA_BASE                      (PERIPH_BASE        +0x00000C00)
#define GPIOB_BASE                      (PERIPH_BASE        +0x00000C40)
#define GPIOC_BASE                      (PERIPH_BASE        +0x00000C80)
#define GPIOD_BASE                      (PERIPH_BASE        +0x00000CC0)
#define GPIOE_BASE                      (PERIPH_BASE        +0x00000D00)
#define GPIOF_BASE                      (PERIPH_BASE        +0x00000D40)
#define GPIO_BASE                       (PERIPH_BASE        +0x00000DC0)
#define SFU_BASE                        (PERIPH_BASE        +0x00001C00)
#define DBG_BASE                        (PERIPH_BASE        +0x00000000)

3、对外声明

#define FLASH                           ((FLASH_Type        *) FLS_BASE         )
#define PMU                             ((PMU_Type          *) PMU_BASE         )
#define VREFP                           ((VREFP_Type        *) VREFP_BASE       )
#define SCU                             ((SCU_Type          *) SCU_BASE         )
#define INTMUX                          ((INTMUX_Type       *) INTMUX_BASE      )
#define RMU                             ((RMU_Type          *) RMU_BASE         )
#define IWDT                            ((IWDT_Type         *) IWDT_BASE        )
#define WWDT                            ((WWDT_Type         *) WWDT_BASE        )
#define CMU                             ((CMU_Type          *) CMU_BASE         )
#define SVD                             ((SVD_Type          *) SVD_BASE         )
#define AES                             ((AES_Type          *) AES_BASE         )
#define RNG                             ((RNG_Type          *) RNG_BASE         )
#define COMP1                           ((COMP_Type         *) COMP1_BASE       )
#define COMP2                           ((COMP_Type         *) COMP2_BASE       )
#define COMP                            ((COMP_COMMON_Type  *) COMP_COMMON_BASE )
#define DIVAS                           ((DIVAS_Type        *) DIVAS_BASE       )
#define I2CSMB0                         ((I2CSMB_Type       *) I2CSMB0_BASE     )
#define I2CSMB1                         ((I2CSMB_Type       *) I2CSMB1_BASE     )
#define I2C0                            ((I2C_Type          *) I2C0_BASE        )
#define I2C1                            ((I2C_Type          *) I2C1_BASE        )
#define I2C2                            ((I2C_Type          *) I2C2_BASE        )
#define I2C3                            ((I2C_Type          *) I2C3_BASE        )
#define UART                            ((UART_COMMON_Type  *) UART_COMMON_BASE )
#define UART0                           ((UART_Type         *) UART0_BASE       )
#define UART1                           ((UART_Type         *) UART1_BASE       )
#define UART2                           ((UART_Type         *) UART2_BASE       )
#define UART3                           ((UART_Type         *) UART3_BASE       )
#define UART4                           ((UART_Type         *) UART4_BASE       )
#define UART5                           ((UART_Type         *) UART5_BASE       )
#define LPUART1                         ((LPUART_Type       *) LPUART1_BASE     )
#define SPI0                            ((SPI_Type          *) SPI0_BASE        )
#define SPI1                            ((SPI_Type          *) SPI1_BASE        )
#define SPI2                            ((SPI_Type          *) SPI2_BASE        )
#define SPI3                            ((SPI_Type          *) SPI3_BASE        )
#define CAN0                            ((CAN_Type          *) CAN0_BASE        )
#define CAN1                            ((CAN_Type          *) CAN1_BASE        )
#define DMA                             ((DMA_Type          *) DMA_BASE         )
#define CRC                             ((CRC_Type          *) CRC_BASE         )
#define ATIM                            ((ATIM_Type         *) ATIM_BASE        )
#define TAU                             ((TAU_COMMON_Type   *) TAU_COMMON_BASE  )
#define TAU0                            ((TAU0_Type         *) TAU0_BASE        )
#define TAU1                            ((TAU1_Type         *) TAU1_BASE        )
#define BSTIM16                         ((BSTIM16_Type      *) BSTIM16_BASE     )
#define LPTIM16                         ((LPTIM16_Type      *) LPTIM16_BASE     )
#define RTC                             ((RTC_Type          *) RTC_BASE         )
#define LCD                             ((LCD_Type          *) LCD_BASE         )
#define ADC                             ((ADC_Type          *) ADC_BASE         )
#define PGL                             ((PGL_Type          *) PGL_BASE         )
#define TSI                             ((TSI_Type          *) TSI_BASE         )
#define GPIOA                           ((GPIO_Type         *) GPIOA_BASE       )
#define GPIOB                           ((GPIO_Type         *) GPIOB_BASE       )
#define GPIOC                           ((GPIO_Type         *) GPIOC_BASE       )
#define GPIOD                           ((GPIO_Type         *) GPIOD_BASE       )
#define GPIOE                           ((GPIO_Type         *) GPIOE_BASE       )
#define GPIOF                           ((GPIO_Type         *) GPIOF_BASE       )
#define GPIO                            ((GPIO_COMMON_Type  *) GPIO_BASE        )
#define SFU                             ((SFU_Type          *) SFU_BASE         )
#define DBG                             ((DBG_Type          *) DBG_BASE         )

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

复旦微魔方FM33FR0xx——FL库笔记-定义 的相关文章

随机推荐

  • java 相关知识点梳理(包含项目中实际应用) 一 ~持续更新

    最全java知识点梳理 1
  • 【自用】云服务器 docker 环境下 HomeAssistant 安装 HACS 教程

    一 进入 docker 中的 HomeAssistant 1 查找 HomeAssistant 的 CONTAINER ID 连接上云服务器 宿主机 后 终端内进入 root 输入 docker ps 找到了 docker 的 contai
  • source /build/envsetup.sh和lunch)

    提醒 想要研究安卓编译系统 必须对bash shell和GUN make非常熟悉 不然会看的云里雾里 没有这个背景的可以先补充知识 1 source build envsetup sh 主要是加载device vendor目录下面的vend
  • sqlsum多个字段求和_条件求和函数Sumif、Sumifs超级实用技巧解读!

    提起求和 有点儿老生常谈的感觉 不就是用Sum函数而已吗 如果附加条件 你还认为是用Sum函数吗 这是我们是否应该考虑用Sumif或Sumifs函数呢 详情请阅读下文 一 Sumif函数 单条件求和 1 功能及语法结构 功能 对符合条件的单
  • 华为传输服务器系统类型,服务器操作系统平台类型

    服务器操作系统平台类型 内容精选 换一换 云硬盘挂载至云服务器时 无法挂载 以下排查思路根据原因的出现概率进行排序 建议您从高频率原因往低频率原因排查 从而帮助您快速找到问题的原因 如果解决完某个可能原因仍未解决问题 请继续排查其他可能原因
  • 2022 年全国硕士研究生入学统一考试英语(二)试题

    2022年全国硕士研究生入学统一考试英语 二 试题 Section Use of English Directions Read the following text Choose the best word s for each numb
  • MySQL自学笔记详细版(从安装到入门)

    MySQL学习目录 前言 一 MySQL是什么 二 MySQL的好处 三 数据库的概念 1 DB database 2 DBMS Database Management System DBMS分为两类 3 SQL Structure Que
  • TypeError: unsupported operand type(s) for /: ‘NoneType‘ and ‘float‘

    可能有的小伙伴在使用opencv的时候会出现以下错误 这个错误的原因可能是图片读取失败 导致 img 变量为 NoneType 类型 在变量上执行除法运算时出现了 TypeError 所以就加了一个 if 条件判断 判断 img 是否为 N
  • VC++ UI布局管理器

    程序从codeproject上下载的 功能类似QT的QLayout 有了它界面缩放再也不会乱套了 具体使用方法可参考源码示例 资源下载链接地址 https download csdn net download u012156872 1926
  • PyTorch学习日志_20201031_数据并行处理

    日期 2020 10 31 主题 PyTorch入门 内容 根据PyTorch官方教程文档 学习如何使用数据并行 DataParallel 来使用多GPU 根据自己的理解和试验 为代码添加少量注解 具体代码如下 数据并行处理 导入和参数 i
  • c++——复制构造函数

    一 概述 复制构造函数作用 使用一个已经存在的对象去初始化同类的一个新对象 其形参是本类对象的引用 如果没有定义复制构造函数 编译器会在必要时自动生成一个隐含的复制构造函数 声明和实现复制构造函数 class 类名 public 类名 形参
  • Netty实战(八)引导

    引导 一 引导 1 1 什么是引导 1 2 Bootstrap 类 1 3 引导客户端和无连接协议 1 4 引导客户端 1 5 Channel 和 EventLoopGroup 的兼容性 二 引导服务器 2 1 ServerBootstra
  • Python:小数、百分比相互转化

    简介 实现小数和百分比相互转换 相关攻略 Python内置库 数据计算相关 math random 类型 主要分为以下5种情况处理 1 百分比转小数 2 小数转百分比 直接转可能存在尾数不足的情况 3 小数转百分比 注意是两个 4 小数转百
  • MySQL 中 MyISAM 与 InnoDB 引擎的区别

    分析 回答 区别很多 大家说出下面几点 面试就应该 OK 了 1 事务支持 MyISAM不支持事务 而InnoDB支持 InnoDB的AUTOCOMMIT默认是打开的 即每条SQL语句会默认被封装成一个事务 自动提交 这样会影响速度 所以最
  • KiCad使用笔记(03)-原理图绘制

    绘图过程 放置元件 绘制导线 编号元件 检查原理图 关联封装 生成网表 标题栏设置 相关视频教程 绘图过程 放置元件 放置元件可以点击右侧工具栏中放置元件 然后在工作区鼠标左键单击 在弹出的选项框中通过关键词搜索或是直接在下方列表中选择 可
  • ctf misc之MP3隐写

    2022 4 9 第一次写mp3隐写 走了好多坑记录一下 题目得到一个MP3文件和一个压缩包 然后听一遍这个歌发现最后面有一段非常违和的 用Audacity打开这个mp3 查找了一下MP3的隐写方法有以下几种 MP3编码隐写将数据隐藏在MP
  • 【Seata】00 - Seata Server 部署(Windows、Docker 基于 Jpom)

    文章目录 前言 参考目录 版本说明 Windows 部署 seata server 1 下载压缩包 2 文件存储模式 3 db 存储模式 3 1 建表 3 2 修改配置文件 3 3 启动脚本 4 源码部署 Docker 部署 seata s
  • Android MVP 框架搭建

    前言 本文主要根据自身项目的使用和对MVP的理解 搭建符合自身项目情况的MVP架构 关于MVP M Model 负责数据的请求 解析 过滤等数据操作 V View 负责处理UI 通常以Activity Fragment的形式出现 P Pre
  • 华为OD机试真题-打印文件

    题目描述 有5台打印机打印文件 每台打印机有自己的待打印队列 因为打印的文件内容有轻重缓急之分 所以队列中的文件有1 10不同的优先级一 其中数字越大优先级越高 打印机会从自己的待打印队列中选择优先级最高的文件来打印 如果存在两个优先级一样
  • 复旦微魔方FM33FR0xx——FL库笔记-定义

    fm33fr0xx h的定义 一 时钟定义 define RCHF INITIAL CLOCK 8000000 内部RC高频震荡器 8M define RCMF CLOCK 4000000 内部RC 4M振荡器 define LPOSC C