Skip to content

Instantly share code, notes, and snippets.

@nickfox-taterli
Created December 26, 2024 11:11
Show Gist options
  • Save nickfox-taterli/054b6c9bfb30aeebb4395e4407ec7154 to your computer and use it in GitHub Desktop.
Save nickfox-taterli/054b6c9bfb30aeebb4395e4407ec7154 to your computer and use it in GitHub Desktop.
STM32 DISCO MFX REG MAP

MFXSTM32L152 寄存器映射表

内容可能存在问题,对此不负责.

通用寄存器

寄存器名称 地址 (十六进制) 描述 访问类型
MFXSTM32L152_REG_ADR_ID 0x00 芯片ID 只读 (R)
MFXSTM32L152_REG_ADR_FW_VERSION_MSB 0x01 芯片固件版本高字节 只读 (R)
MFXSTM32L152_REG_ADR_FW_VERSION_LSB 0x00 芯片固件版本低字节(注意:与 REG_ADR_ID 地址相同) 只读 (R)
MFXSTM32L152_REG_ADR_SYS_CTRL 0x40 系统控制寄存器 读/写 (R/W)
MFXSTM32L152_REG_ADR_VDD_REF_MSB 0x06 Vdd 监控高字节 只读 (R)
MFXSTM32L152_REG_ADR_VDD_REF_LSB 0x07 Vdd 监控低字节 只读 (R)
MFXSTM32L152_REG_ADR_ERROR_SRC 0x03 错误来源寄存器 只读 (R)
MFXSTM32L152_REG_ADR_ERROR_MSG 0x04 错误信息寄存器 只读 (R)

中断寄存器

寄存器名称 地址 (十六进制) 描述 访问类型
MFXSTM32L152_REG_ADR_MFX_IRQ_OUT 0x41 中断输出配置寄存器 读/写 (R/W)
MFXSTM32L152_REG_ADR_IRQ_SRC_EN 0x42 中断源使能寄存器 读/写 (R/W)
MFXSTM32L152_REG_ADR_IRQ_PENDING 0x08 中断挂起寄存器 只读 (R)
MFXSTM32L152_REG_ADR_IRQ_ACK 0x44 中断确认寄存器 写入 (W)

GPIO 中断寄存器

寄存器名称 地址 (十六进制) 描述 访问类型
MFXSTM32L152_REG_ADR_IRQ_GPI_SRC1 0x48 GPIO 中断源使能 [0:7] 读/写 (R/W)
MFXSTM32L152_REG_ADR_IRQ_GPI_SRC2 0x49 GPIO 中断源使能 [8:15] 读/写 (R/W)
MFXSTM32L152_REG_ADR_IRQ_GPI_SRC3 0x4A AGPIO 中断源使能 [0:7] 读/写 (R/W)
MFXSTM32L152_REG_ADR_IRQ_GPI_EVT1 0x4C GPIO 中断事件 [0:7] 读/写 (R/W)
MFXSTM32L152_REG_ADR_IRQ_GPI_EVT2 0x4D GPIO 中断事件 [8:15] 读/写 (R/W)
MFXSTM32L152_REG_ADR_IRQ_GPI_EVT3 0x4E AGPIO 中断事件 [0:7] 读/写 (R/W)
MFXSTM32L152_REG_ADR_IRQ_GPI_TYPE1 0x50 GPIO 中断类型 [0:7] 读/写 (R/W)
MFXSTM32L152_REG_ADR_IRQ_GPI_TYPE2 0x51 GPIO 中断类型 [8:15] 读/写 (R/W)
MFXSTM32L152_REG_ADR_IRQ_GPI_TYPE3 0x52 AGPIO 中断类型 [0:7] 读/写 (R/W)
MFXSTM32L152_REG_ADR_IRQ_GPI_PENDING1 0x0C GPIO 中断挂起 [0:7] 只读 (R)
MFXSTM32L152_REG_ADR_IRQ_GPI_PENDING2 0x0D GPIO 中断挂起 [8:15] 只读 (R)
MFXSTM32L152_REG_ADR_IRQ_GPI_PENDING3 0x0E AGPIO 中断挂起 [0:7] 只读 (R)
MFXSTM32L152_REG_ADR_IRQ_GPI_ACK1 0x54 GPIO 中断确认 [0:7] 写入 (W)
MFXSTM32L152_REG_ADR_IRQ_GPI_ACK2 0x55 GPIO 中断确认 [8:15] 写入 (W)
MFXSTM32L152_REG_ADR_IRQ_GPI_ACK3 0x56 AGPIO 中断确认 [0:7] 写入 (W)

GPIO 寄存器

寄存器名称 地址 (十六进制) 描述 访问类型
MFXSTM32L152_REG_ADR_GPIO_DIR1 0x60 GPIO 方向寄存器1 [0:7]: 0 = 输入, 1 = 输出 读/写 (R/W)
MFXSTM32L152_REG_ADR_GPIO_DIR2 0x61 GPIO 方向寄存器2 [8:15]: 0 = 输入, 1 = 输出 读/写 (R/W)
MFXSTM32L152_REG_ADR_GPIO_DIR3 0x62 AGPIO 方向寄存器 [0:7]: 0 = 输入, 1 = 输出 读/写 (R/W)
MFXSTM32L152_REG_ADR_GPIO_TYPE1 0x64 GPIO 类型寄存器1 [0:7]: 输出类型或输入上拉/下拉电阻 读/写 (R/W)
MFXSTM32L152_REG_ADR_GPIO_TYPE2 0x65 GPIO 类型寄存器2 [8:15]: 输出类型或输入上拉/下拉电阻 读/写 (R/W)
MFXSTM32L152_REG_ADR_GPIO_TYPE3 0x66 AGPIO 类型寄存器 [0:7]: 输出类型或输入上拉/下拉电阻 读/写 (R/W)
MFXSTM32L152_REG_ADR_GPIO_PUPD1 0x68 GPIO 上拉/下拉寄存器1 [0:7] 读/写 (R/W)
MFXSTM32L152_REG_ADR_GPIO_PUPD2 0x69 GPIO 上拉/下拉寄存器2 [8:15] 读/写 (R/W)
MFXSTM32L152_REG_ADR_GPIO_PUPD3 0x6A AGPIO 上拉/下拉寄存器 [0:7] 读/写 (R/W)
MFXSTM32L152_REG_ADR_GPO_SET1 0x6C GPIO 设置寄存器1 [0:7]: 输出模式下设置GPO为高电平 写入 (W)
MFXSTM32L152_REG_ADR_GPO_SET2 0x6D GPIO 设置寄存器2 [8:15]: 输出模式下设置GPO为高电平 写入 (W)
MFXSTM32L152_REG_ADR_GPO_SET3 0x6E AGPIO 设置寄存器 [0:7]: 输出模式下设置GPO为高电平 写入 (W)
MFXSTM32L152_REG_ADR_GPO_CLR1 0x70 GPIO 清除寄存器1 [0:7]: 输出模式下设置GPO为低电平 写入 (W)
MFXSTM32L152_REG_ADR_GPO_CLR2 0x71 GPIO 清除寄存器2 [8:15]: 输出模式下设置GPO为低电平 写入 (W)
MFXSTM32L152_REG_ADR_GPO_CLR3 0x72 AGPIO 清除寄存器 [0:7]: 输出模式下设置GPO为低电平 写入 (W)
MFXSTM32L152_REG_ADR_GPIO_STATE1 0x10 GPIO 状态寄存器1 [0:7]: 当前GPIO引脚状态 只读 (R)
MFXSTM32L152_REG_ADR_GPIO_STATE2 0x11 GPIO 状态寄存器2 [8:15]: 当前GPIO引脚状态 只读 (R)
MFXSTM32L152_REG_ADR_GPIO_STATE3 0x12 AGPIO 状态寄存器 [0:7]: 当前AGPIO引脚状态 只读 (R)

触摸屏寄存器

寄存器名称 地址 (十六进制) 描述 访问类型
MFXSTM32L152_TS_SETTLING 0xA0 触摸屏稳定时间设置 读/写 (R/W)
MFXSTM32L152_TS_TOUCH_DET_DELAY 0xA1 触摸检测延迟 读/写 (R/W)
MFXSTM32L152_TS_AVE 0xA2 触摸屏平均值设置 读/写 (R/W)
MFXSTM32L152_TS_TRACK 0xA3 触摸屏跟踪设置 读/写 (R/W)
MFXSTM32L152_TS_FIFO_TH 0xA4 触摸屏FIFO阈值设置 读/写 (R/W)
MFXSTM32L152_TS_FIFO_STA 0x20 触摸屏FIFO状态 只读 (R)
MFXSTM32L152_TS_FIFO_LEVEL 0x21 触摸屏FIFO等级 只读 (R)
MFXSTM32L152_TS_XY_DATA 0x24 触摸屏XY数据 只读 (R)

Idd(电流检测)寄存器

寄存器名称 地址 (十六进制) 描述 访问类型
MFXSTM32L152_REG_ADR_IDD_CTRL 0x80 Idd 控制寄存器 读/写 (R/W)
MFXSTM32L152_REG_ADR_IDD_PRE_DELAY 0x81 Idd 预延迟寄存器 读/写 (R/W)
MFXSTM32L152_REG_ADR_IDD_SHUNT0_MSB 0x82 Idd Shunt0 高字节寄存器 读/写 (R/W)
MFXSTM32L152_REG_ADR_IDD_SHUNT0_LSB 0x83 Idd Shunt0 低字节寄存器 读/写 (R/W)
MFXSTM32L152_REG_ADR_IDD_SHUNT1_MSB 0x84 Idd Shunt1 高字节寄存器 读/写 (R/W)
MFXSTM32L152_REG_ADR_IDD_SHUNT1_LSB 0x85 Idd Shunt1 低字节寄存器 读/写 (R/W)
MFXSTM32L152_REG_ADR_IDD_SHUNT2_MSB 0x86 Idd Shunt2 高字节寄存器 读/写 (R/W)
MFXSTM32L152_REG_ADR_IDD_SHUNT2_LSB 0x87 Idd Shunt2 低字节寄存器 读/写 (R/W)
MFXSTM32L152_REG_ADR_IDD_SHUNT3_MSB 0x88 Idd Shunt3 高字节寄存器 读/写 (R/W)
MFXSTM32L152_REG_ADR_IDD_SHUNT3_LSB 0x89 Idd Shunt3 低字节寄存器 读/写 (R/W)
MFXSTM32L152_REG_ADR_IDD_SHUNT4_MSB 0x8A Idd Shunt4 高字节寄存器 读/写 (R/W)
MFXSTM32L152_REG_ADR_IDD_SHUNT4_LSB 0x8B Idd Shunt4 低字节寄存器 读/写 (R/W)
MFXSTM32L152_REG_ADR_IDD_GAIN_MSB 0x8C Idd 放大器增益高字节寄存器 读/写 (R/W)
MFXSTM32L152_REG_ADR_IDD_GAIN_LSB 0x8D Idd 放大器增益低字节寄存器 读/写 (R/W)
MFXSTM32L152_REG_ADR_IDD_VDD_MIN_MSB 0x8E Idd VDD 最小值高字节寄存器 读/写 (R/W)
MFXSTM32L152_REG_ADR_IDD_VDD_MIN_LSB 0x8F Idd VDD 最小值低字节寄存器 读/写 (R/W)
MFXSTM32L152_REG_ADR_IDD_VALUE_MSB 0x14 Idd 值高字节寄存器 只读 (R)
MFXSTM32L152_REG_ADR_IDD_VALUE_MID 0x15 Idd 值中字节寄存器 只读 (R)
MFXSTM32L152_REG_ADR_IDD_VALUE_LSB 0x16 Idd 值低字节寄存器 只读 (R)
MFXSTM32L152_REG_ADR_IDD_CAL_OFFSET_MSB 0x18 Idd 校准偏移高字节寄存器 只读 (R)
MFXSTM32L152_REG_ADR_IDD_CAL_OFFSET_LSB 0x19 Idd 校准偏移低字节寄存器 只读 (R)
MFXSTM32L152_REG_ADR_IDD_SHUNT_USED 0x1A Idd 使用的分流电阻寄存器 只读 (R)
MFXSTM32L152_REG_ADR_IDD_SH0_STABILIZATION 0x90 Idd Shunt0 稳定延迟寄存器 读/写 (R/W)
MFXSTM32L152_REG_ADR_IDD_SH1_STABILIZATION 0x91 Idd Shunt1 稳定延迟寄存器 读/写 (R/W)
MFXSTM32L152_REG_ADR_IDD_SH2_STABILIZATION 0x92 Idd Shunt2 稳定延迟寄存器 读/写 (R/W)
MFXSTM32L152_REG_ADR_IDD_SH3_STABILIZATION 0x93 Idd Shunt3 稳定延迟寄存器 读/写 (R/W)
MFXSTM32L152_REG_ADR_IDD_SH4_STABILIZATION 0x94 Idd Shunt4 稳定延迟寄存器 读/写 (R/W)
MFXSTM32L152_REG_ADR_IDD_NBR_OF_MEAS 0x96 Idd 测量次数寄存器 读/写 (R/W)
MFXSTM32L152_REG_ADR_IDD_MEAS_DELTA_DELAY 0x97 Idd 测量间隔延迟寄存器 读/写 (R/W)
MFXSTM32L152_REG_ADR_IDD_SHUNTS_ON_BOARD 0x98 Idd 板载分流电阻数量寄存器 读/写 (R/W)

GPIO 引脚定义

引脚名称 位掩码 (十六进制)
MFXSTM32L152_GPIO_PIN_0 0x000001
MFXSTM32L152_GPIO_PIN_1 0x000002
MFXSTM32L152_GPIO_PIN_2 0x000004
MFXSTM32L152_GPIO_PIN_3 0x000008
MFXSTM32L152_GPIO_PIN_4 0x000010
MFXSTM32L152_GPIO_PIN_5 0x000020
MFXSTM32L152_GPIO_PIN_6 0x000040
MFXSTM32L152_GPIO_PIN_7 0x000080
MFXSTM32L152_GPIO_PIN_8 0x000100
MFXSTM32L152_GPIO_PIN_9 0x000200
MFXSTM32L152_GPIO_PIN_10 0x000400
MFXSTM32L152_GPIO_PIN_11 0x000800
MFXSTM32L152_GPIO_PIN_12 0x001000
MFXSTM32L152_GPIO_PIN_13 0x002000
MFXSTM32L152_GPIO_PIN_14 0x004000
MFXSTM32L152_GPIO_PIN_15 0x008000
MFXSTM32L152_GPIO_PIN_16 0x010000
MFXSTM32L152_GPIO_PIN_17 0x020000
MFXSTM32L152_GPIO_PIN_18 0x040000
MFXSTM32L152_GPIO_PIN_19 0x080000
MFXSTM32L152_GPIO_PIN_20 0x100000
MFXSTM32L152_GPIO_PIN_21 0x200000
MFXSTM32L152_GPIO_PIN_22 0x400000
MFXSTM32L152_GPIO_PIN_23 0x800000

AGPIO 引脚定义

引脚名称 位掩码 (十六进制)
MFXSTM32L152_AGPIO_PIN_0 0x010000
MFXSTM32L152_AGPIO_PIN_1 0x020000
MFXSTM32L152_AGPIO_PIN_2 0x040000
MFXSTM32L152_AGPIO_PIN_3 0x080000
MFXSTM32L152_AGPIO_PIN_4 0x100000
MFXSTM32L152_AGPIO_PIN_5 0x200000
MFXSTM32L152_AGPIO_PIN_6 0x400000
MFXSTM32L152_AGPIO_PIN_7 0x800000

触摸屏寄存器值掩码

宏定义名称 值 (十六进制) 描述
MFXSTM32L152_TS_CTRL_STATUS 0x08 触摸屏控制状态
MFXSTM32L152_TS_CLEAR_FIFO 0x80 清除触摸屏FIFO

Idd 控制寄存器定义

Idd 控制寄存器掩码

宏定义名称 值 (十六进制) 描述
MFXSTM32L152_IDD_CTRL_REQ 0x01 请求Idd测量
MFXSTM32L152_IDD_CTRL_SHUNT_NB 0x0E 选择使用的分流电阻数量
MFXSTM32L152_IDD_CTRL_VREF_DIS 0x40 禁用Vref测量
MFXSTM32L152_IDD_CTRL_CAL_DIS 0x80 禁用校准功能

Idd 分流电阻数量

宏定义名称 值 (十六进制) 描述
MFXSTM32L152_IDD_SHUNT_NB_1 0x01 使用1个分流电阻
MFXSTM32L152_IDD_SHUNT_NB_2 0x02 使用2个分流电阻
MFXSTM32L152_IDD_SHUNT_NB_3 0x03 使用3个分流电阻
MFXSTM32L152_IDD_SHUNT_NB_4 0x04 使用4个分流电阻
MFXSTM32L152_IDD_SHUNT_NB_5 0x05 使用5个分流电阻

Vref 测量

宏定义名称 值 (十六进制) 描述
MFXSTM32L152_IDD_VREF_AUTO_MEASUREMENT_ENABLE 0x00 启用自动Vref测量
MFXSTM32L152_IDD_VREF_AUTO_MEASUREMENT_DISABLE 0x70 禁用自动Vref测量

Idd 校准

宏定义名称 值 (十六进制) 描述
MFXSTM32L152_IDD_AUTO_CALIBRATION_ENABLE 0x00 启用自动校准
MFXSTM32L152_IDD_AUTO_CALIBRATION_DISABLE 0x80 禁用自动校准

其他常量

GPIO 方向

宏定义名称 值 (十六进制) 描述
MFXSTM32L152_GPIO_DIR_IN 0x0 GPIO 方向设置为输入
MFXSTM32L152_GPIO_DIR_OUT 0x1 GPIO 方向设置为输出

GPIO 类型

宏定义名称 值 (十六进制) 描述
MFXSTM32L152_GPO_PUSH_PULL 0x0 GPIO 输出推挽模式
MFXSTM32L152_GPO_OPEN_DRAIN 0x1 GPIO 输出开漏模式

GPIO 上拉/下拉

宏定义名称 值 (十六进制) 描述
MFXSTM32L152_GPIO_PULL_DOWN 0x0 GPIO 下拉电阻
MFXSTM32L152_GPIO_PULL_UP 0x1 GPIO 上拉电阻
MFXSTM32L152_GPIO_NOPULL 0x0 无上拉或下拉电阻激活
MFXSTM32L152_GPIO_PULLUP 0x1 启用上拉电阻
MFXSTM32L152_GPIO_PULLDOWN 0x2 启用下拉电阻

GPIO 模式

宏定义名称 值 (十六进制) 描述
MFXSTM32L152_GPIO_MODE_OFF 0x0 引脚未使用
MFXSTM32L152_GPIO_MODE_ANALOG 0x1 模拟模式
MFXSTM32L152_GPIO_MODE_INPUT 0x2 浮空输入
MFXSTM32L152_GPIO_MODE_OUTPUT_OD 0x3 开漏输出,无内部电阻
MFXSTM32L152_GPIO_MODE_OUTPUT_PP 0x4 推挽输出,无内部电阻
MFXSTM32L152_GPIO_MODE_IT_RISING_EDGE 0x5 浮空输入,中断检测上升沿
MFXSTM32L152_GPIO_MODE_IT_FALLING_EDGE 0x6 浮空输入,中断检测下降沿
MFXSTM32L152_GPIO_MODE_IT_LOW_LEVEL 0x7 浮空输入,中断检测低电平
MFXSTM32L152_GPIO_MODE_IT_HIGH_LEVEL 0x8 浮空输入,中断检测高电平

寄存器值定义

ID寄存器值

宏定义名称 值 (十六进制) 描述
MFXSTM32L152_ID 0x7B 设备ID
MFXSTM32L152_ID_2 0x79 设备ID 2

系统控制寄存器值

宏定义名称 值 (十六进制) 描述
MFXSTM32L152_SWRST 0x80 软件复位
MFXSTM32L152_STANDBY 0x40 进入待机模式
MFXSTM32L152_ALTERNATE_GPIO_EN 0x08 启用备用GPIO功能(IDD和TS启用时自动使用AF引脚)
MFXSTM32L152_IDD_EN 0x04 启用IDD功能
MFXSTM32L152_TS_EN 0x02 启用触摸屏功能
MFXSTM32L152_GPIO_EN 0x01 启用GPIO功能

错误来源寄存器值

宏定义名称 值 (十六进制) 描述
MFXSTM32L152_IDD_ERROR_SRC 0x04 由IDD引发的错误
MFXSTM32L152_TS_ERROR_SRC 0x02 由触摸屏引发的错误
MFXSTM32L152_GPIO_ERROR_SRC 0x01 由GPIO引发的错误

中断输出寄存器值

宏定义名称 值 (十六进制) 描述
MFXSTM32L152_OUT_PIN_TYPE_OPENDRAIN 0x00 输出引脚类型:开漏
MFXSTM32L152_OUT_PIN_TYPE_PUSHPULL 0x01 输出引脚类型:推挽
MFXSTM32L152_OUT_PIN_POLARITY_LOW 0x00 输出引脚极性:低电平
MFXSTM32L152_OUT_PIN_POLARITY_HIGH 0x02 输出引脚极性:高电平

IRQ 源使能、挂起与确认寄存器值

宏定义名称 值 (十六进制) 描述
MFXSTM32L152_IRQ_TS_OVF 0x80 触摸屏FIFO溢出中断
MFXSTM32L152_IRQ_TS_FULL 0x40 触摸屏FIFO满中断
MFXSTM32L152_IRQ_TS_TH 0x20 触摸屏FIFO阈值触发中断
MFXSTM32L152_IRQ_TS_NE 0x10 触摸屏FIFO非空中断
MFXSTM32L152_IRQ_TS_DET 0x08 触摸屏检测中断
MFXSTM32L152_IRQ_ERROR 0x04 来自固件的错误信息中断
MFXSTM32L152_IRQ_IDD 0x02 IDD功能中断
MFXSTM32L152_IRQ_GPIO 0x01 通用GPIO中断(仅适用于源使能和挂起寄存器)
MFXSTM32L152_IRQ_ALL 0xFF 所有全局中断
MFXSTM32L152_IRQ_TS 0xF8 组合触摸屏中断(DET

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment