当前位置: 首页 > news >正文

STM32 面向对象外设驱动

  • 本项目为个人编写的一套 STM32 外设驱动集合,采用 C 语言实现“结构体+函数指针”的面向对象编程思想,可大幅度提高代码的模块化与可复用性。
  • 代码链接:https://github.com/903257958/stm32_oop_driver (如果对你有帮助,请给仓库点个 ⭐ 吧,感谢支持,让我更有动力继续更新。)

项目特点

  • 提供 STM32 与 GD32 部分型号标准外设库的测试例程;
  • 驱动文件高度可移植:无需修改初始化函数内部代码,只需参考所提供例程的 app 目录内文件,通过结构体在初始化阶段传入自定义的引脚接口与配置信息(部分驱动还需根据实际硬件修改 xxx.h 中的”用户配置“部分),即可快速适配任意开发板
  • 驱动兼容多型号:所有芯片都使用相同的驱动代码,也可通过修改驱动文件 xxx.c 中的“硬件抽象层”来适配其他型号 MCU,甚至迁移至 HAL 库;
  • 本仓库专注于驱动,所以 app 目录只是对驱动的使用做最简单直接的演示,你在项目中完全可以用更规范的形式使用驱动(例如用接口函数将 bsp 层的设备结构体指针提供给其他层);
  • 适配 VSCode 插件 EIDE,如果不使用 VSCode 开发,eide文件夹可直接删除。

驱动列表

驱动模块 简要说明
xxx_gpio GPIO 基础输入输出控制
xxx_led_and_delay LED 驱动与 SysTick /定时器延时函数
xxx_exti 外部中断
xxx_exti_encoder 外部中断控制旋转编码器
xxx_timer_irq 定时器中断
xxx_timer_oc_pwm_servo 定时器输出比较 PWM 驱动舵机
xxx_timer_oc_pwm_tb6612 定时器输出比较 PWM 驱动 TB6612(直流电机驱动)
xxx_timer_oc_pwm_rgb 定时器输出比较 PWM 驱动 RGB 灯
xxx_timer_oc_pwm_dma_ws2812b 定时器输出比较 PWM + DMA 驱动 WS2812B 灯带
xxx_timer_ic_sr04 定时器输入捕获驱动 SR04 超声波测距模块
xxx_key 按键扫描+延时消抖
xxx_key_fifo 按键环形缓冲区+定时器中断消抖
xxx_key_fifo_event 支持双击/长按的按键事件处理(基于 xxx_key_fifo
xxx_adc ADC采集
xxx_uart 串口发送+空闲中断+ DMA 接收
xxx_esp8266 ESP8266 AT指令(时间天气获取/TCP透传)
xxx_i2c_soft_aht21 软件 I2C 驱动 AHT21(温湿度)
xxx_i2c_soft_ap3216c 软件 I2C 驱动 AP3216C(光照/距离/红外)
xxx_i2c_soft_bmp280 软件 I2C 驱动 BMP280(温度/气压)
xxx_i2c_soft_eeprom 软件 I2C 读写 EEPROM(AT24C02)
xxx_i2c_soft_mpu6050 软件 I2C 驱动 MPU6050(陀螺仪)
xxx_i2c_soft_max30102 软件 I2C 驱动 MAX30102(心率/血氧)
xxx_i2c_soft_ssd1306 软件 I2C 驱动 0.96 寸 OLED(SSD1306, 128×64)
xxx_spi_dma_ssd1306 硬件 SPI + DMA 驱动 0.96 寸 OLED(SSD1306, 128×64)
xxx_spi_dma_st7735 硬件 SPI + DMA 驱动 1.8 寸 LCD(ST7735, 128×160)
xxx_spi_dma_st7789v 硬件 SPI + DMA 驱动 1.69 寸 LCD(ST7789V, 240×280)
(+软件 I2C 驱动 CST816T 触摸屏)
xxx_spi_w25qx 硬件 SPI 读写外部 Flash(W25QX)
xxx_spi_soft_w25qx 软件 SPI 读写外部 Flash(W25QX)
xxx_fsmc_ili9341 FSMC 驱动2.8寸LCD(ILI9341, 240×320)
xxx_can CAN 通信
xxx_flash 内部 Flash 读写
xxx_rtc RTC 实时时钟
xxx_dht11 DHT11 驱动(温湿度)
xxx_ds18b20 DS18B20 驱动(温度)
xxx_stepper_motor 步进电机驱动
xxx_vibration_motor 振动马达驱动
http://www.zskr.cn/news/73315.html

相关文章:

  • CH584 CH585 CH592 LLCP_LE Power Control Request命令解析
  • 2025年下半年北京央国企就业辅导机构综合评测:中嘉裕福科技领跑行业
  • 详细介绍:【Nginx】怎样清除 Nginx 的缓存?
  • 2025年江苏保冷柜生产厂家精选Top 5推荐指南
  • 2025年重庆地区五大烹饪学校排行榜,学烹饪哪家好?
  • 习题解析之:统计文本中单词数
  • 基于西城微科SIC8833芯片的口袋电子秤方案解析
  • 习题解析之:罗马数字转换
  • HR如何做好招聘、考勤、绩效管理?2025年12月人力资源SaaS系统功能详解及推荐
  • 2025年12月北京遗产继承律师律所综合推荐与选择指南
  • 2025年12月人力资源管理系统最新排行榜单权威发布:人力资源SaaS、HR管理、人才招聘管理系统
  • 在AI时代,寻找新需求是开发者面临的真正挑战——以某知名近似最近邻搜索库为例
  • AI-ITSM的时代正在到来:深度解读Gartner最新报告
  • Redis 内存淘汰策略(8 种)
  • 小米汽车在智能座舱使用消费级芯片,你怎么看
  • 大雪将至,码上围炉 | Copdigger邀你共赴一场静默的「深度更新」
  • rust语言常用属性
  • AI一周资讯 251129-251205
  • 高性价比家政服务公司推荐,广州喜相缘家政实力上榜
  • 2025年AI知识库本地化部署厂商全景扫描:如何把大模型装进企业“保险箱”
  • 从结构化到多模态,AI 时代如何利用多模态数据智能中台激活业务价值?
  • 2025年苏州地区信誉好的西餐培训学院推荐TOP5,专业西餐
  • 2025年泥浆土压变送器工厂权威推荐榜单:泥浆油脂压力变送器‌/盾构机土压变送器‌/盾构油压变送器‌‌源头工厂精选
  • 2025年知识库本地化部署厂商:企业智能安全升级的核心路径
  • 阵列信号处理中的自适应波束形成技术
  • Flutter部件出场即动画,不显示时不占用空间不占内存
  • C# 深浅拷贝、值类型、引用类型浅析
  • 2025 美国 EOR 名义雇主推荐:Safeguard Global人力资源服务专家
  • 交通事故法律服务口碑排名 2026:权威解析专业机构选择指南
  • 【GitHub】安装以及配置远程仓库 - zhiao