在嵌入式系统或 STM32 平台中常见的 外设芯片 或 模块名称 ,包括:
📺 显示驱动(如 ST7735、OTM8009A、NT35510) 📷 摄像头模组(如 OV5640、OV9655、S5K5CAG) 💾 Flash 存储器(如 W25Q128J、MX25L512、N25Q512A) 👆 触摸屏控制器(如 FT6X06、FT5336、STMPE811) 🌐 网络芯片(如 DP83848、LAN8742) 🎵 音频芯片(如 WM8994) 📐 IO 控制扩展(如 MFXSTM32L152) 🧠 多功能芯片/平台控制器(如 STMPE811)
下面我按照功能对这些芯片进行分类和简要解释:
📺 显示相关名称 简介 ST7735 1.8寸/1.44寸 常见 SPI 接口的 TFT-LCD 控制器 ST7789H2 高分辨率 SPI TFT 控制器,320x240 常见 NT35510 高分屏驱动 IC,MIPI/并口接口 OTM8009A 800x480 分辨率 TFT 控制器,常用于 4.3 寸屏 RK043FN48H 4.3寸 480x272 TFT 显示模块(带电容触控) TS3510 触摸屏控制器,有时用于电阻屏 Ampire480272 / Ampire640480 Ampire 是屏幕品牌,代表分辨率的型号
👆 触摸屏控制器(I²C / SPI)名称 简介 FT6X06 / FT5336 / FT3X67 FocalTech 电容触控芯片(支持多点触控) STMPE811 ST 出的电阻触摸 + IO 扩展控制器 EXC7200 EETI 出的电容触摸控制器 MFXSTM32L152 ST 的 IO 扩展芯片,支持触摸/按键检测等功能
📷 摄像头模块名称 简介 OV5640 500 万像素摄像头模块,常见于 STM32 DCMI 示例 OV9655 130 万像素,较老的摄像头模组 S5K5CAG Samsung 500 万像素摄像头模组,高端应用常见
💾 Flash 存储器(SPI/QSPI/NOR)名称 简介 W25Q128J Winbond SPI NOR Flash,128Mbit(16MB) MX25L512 Macronix 512Kbit(64KB) NOR Flash N25Q128A / N25Q512A Micron QSPI Flash,支持 XIP 执行 Common 可能指的是“通用 Flash”类型或分区名称
🌐 网络接口芯片名称 简介 DP83848 TI 的 10/100 Mbps 以太网 PHY(MII 接口) LAN8742 Microchip 的 10/100 Mbps PHY,常用于 STM32F7/H7 Eval 板 FT6X06 同时也被用于 I²C 触控器命名(可能你列重了)
🔊 音频/语音相关名称 简介 WM8994 Wolfson 出的音频编解码器,常用于 STM32 开发板音频播放
🧩 IO 扩展/特殊控制器名称 简介 MFXSTM32L152 ST 出的多功能控制扩展器(GPIO、ADC、温度传感、触控检测等)
🧠 说明/使用建议
这些芯片大多被用于 STM32 的评估板(如 STM32F7/H7 Discovery/Eval)、工业 UI 屏、机器视觉、语音控制等复杂项目。 ST 的 STM32CubeMX
/ TouchGFX
/ STM32Cube FW
中经常包含这些芯片的驱动支持。 比如 OV5640
可用于 DCMI 摄像头应用,OTM8009A
是用于 MIPI 接口的触摸屏显示器。
STM32 系统(尤其是 ST 官方评估板、开发板)常用的 外设器件 ,涵盖:
📺 显示屏和触控控制器 📷 摄像头模组 💾 Flash 存储器 🧭 IMU、加速度计、陀螺仪、磁力计 🎵 音频芯片 🌐 以太网 PHY 🔘 IO 扩展与控制器
我将它们再 分类简明解释 一下(不重复前面介绍过的):
📺 显示屏相关名称 简介 Ampire480272 / Ampire640480 Ampire 品牌的 TFT 屏幕,分辨率 480×272 或 640×480 ILI9341 / ILI9325 SPI / 并口 TFT 控制器,常用于 2.4~2.8寸彩屏 NT35510 / OTM8009A MIPI/并口 高分辨率 TFT 控制器(用于手机屏) LS016B8UY Sharp Memory LCD,低功耗显示屏(反射型) ST7735 / ST7789H2 小尺寸彩屏驱动 IC(SPI 接口)
👆 电容/电阻触摸屏控制器名称 简介 FT3X67 / FT6X06 FocalTech 电容触摸屏控制器(I²C 接口) EXC7200 电容触摸控制器(EETI 出品) STMPE811 ST 出的触摸控制 + ADC + IO 扩展器 MFXSTM32L152 ST 多功能扩展器(IO+触摸+ADC) TS3510 电阻屏控制器(ST 或第三方)
📷 摄像头模组名称 简介 OV2640 200 万像素,JPEG 输出,常用于 ESP32-CAM OV5640 500 万像素,支持 RAW/YUV/JPEG,常用于 STM32 DCMI S5K5CAG Samsung 500 万像素,高端摄像头模组
💾 Flash / 存储器名称 简介 N25Q128A / N25Q256A / N25Q512A Micron QSPI/NOR Flash,常用于 XIP 启动 S25FL512S Cypress(原 Spansion)出品的 SPI Flash(512Mbit) Common CubeMX 中常作为通用 Flash 芯片占位符用
🧭 传感器类(IMU/陀螺仪/加速度/磁力)名称 类型 简介 L3GD20 陀螺仪 ST 三轴角速度传感器(SPI/I2C) I3G4250D 陀螺仪 ST 陀螺仪,温漂性能优于 L3GD20 LIS3DSH 加速度 高性能加速度计(内置 FIFO 和中断) LIS302DL 加速度 STM32F4Discovery 板默认加速度计 LSM303DLHC / LSM303AGR 加速度 + 磁力计二合一 ST常用组合传感器
🌐 网络芯片名称 简介 LAN8742 ST 官方推荐的 PHY(RMII) DP83848 TI 出品的工业级 PHY(MII / RMII)
🎵 音频编解码器名称 简介 CS43L22 Cirrus Logic 音频编解码器,STM32F4 Disco 默认搭载 WM8994 Wolfson 高级音频 Codec(输入输出均支持)
🔘 IO 控制与扩展器名称 简介 STMPE1600 IO 扩展芯片(16bit GPIO,I²C 控制) STMPE811 IO + 触控 + ADC 多合一扩展芯片 MFXSTM32L152 ST 多功能控制器,CubeMX支持,具备 IO / ADC / RTC 等功能
✅ 应用场景示例场景 典型芯片 显示屏 UI(TouchGFX) ILI9341 + FT6X06、OTM8009A + EXC7200 摄像头 DCMI OV5640 / OV2640 数据记录 + 存储 N25Qxxx、S25FLxxx 网络通信 LAN8742 / DP83848 + STM32F7/H7 MAC 传感器 IMU LSM303AGR + L3GD20 音频播放 CS43L22 / WM8994 教育/开发板 STMPE811、MFXSTM32L152、LIS302DL
💡 开发建议
使用 STM32CubeMX 时,大多数上述芯片已经集成在 BSP(Board Support Package) 中,配置自动生成初始化代码。 TouchGFX 工程、STM32F7/H7 示例、摄像头 Demo 等都广泛用到这些芯片。 建议查阅各芯片的 datasheet + ST 提供的 example(比如 STM32Cube_FW_H7/Projects/.../Applications/...
)。
你贴出的这个路径是:
~/STM32Cube/Repository/STM32Cube_FW_F4_V1.28.2/Drivers/BSP/Components/Common/
里面的文件是 ST 提供的 通用 BSP 外设抽象层接口头文件 ,用于统一封装常见外设(如陀螺仪、加速度计、温度传感器、LCD、触摸屏等),这样不同芯片或不同模块之间调用接口保持一致。
📂 每个文件的作用简析:文件名 作用 accelero.h
加速度传感器统一接口 gyro.h
陀螺仪传感器统一接口 magneto.h
磁力计传感器统一接口 camera.h
摄像头(如 OV5640)统一接口 audio.h
音频(如 WM8994)编解码器统一接口 epd.h
电子墨水屏 (E-Paper Display) 接口 idd.h
电流消耗测量(IDD 功耗测量模块) io.h
I/O 扩展器(如 STMPE1600、MFXSTM32L152)统一接口 lcd.h
LCD 屏幕接口(包括 OTM8009A、ILI9341 等) ts.h
电阻式/电容式触摸屏统一接口(如 FT6X06) tsensor.h
温度传感器统一接口 Release_Notes.html
版本说明文档
✅ 举例说明(以 lcd.h
为例)
lcd.h
是 ST 官方封装的一层抽象 API,你不需要关心底层用的是哪块屏(如 ILI9341、OTM8009A、ST7789),只要使用通用 API:
BSP_LCD_Init ( ) ;
BSP_LCD_Clear ( LCD_COLOR_WHITE) ;
BSP_LCD_DisplayStringAt ( 0 , LINE ( 5 ) , ( uint8_t * ) "Hello, LCD!" , CENTER_MODE) ;
而具体实现会通过 BSP/Components/<驱动芯片>
中的 .c/.h
文件决定(例如 ili9341.c
、otm8009a.c
)。
💡 为何要用这套结构?
这是一种 面向平台抽象(Platform Abstraction) 的设计方式。好处是:
多块不同芯片/模块只要注册自己的驱动实现,接口不变; BSP 层代码复用性高; 示例代码不依赖具体硬件,适配更快。