# up_middleware_examples **Repository Path**: genkipi/up_middleware_examples ## Basic Information - **Project Name**: up_middleware_examples - **Description**: UP_Middleware 即 Universal Peripheral Middleware,通用外设中间件。 目的是将市面上主流的芯片(例如STM32、STC8、C51等)的通讯协议进行封装,以方便用户以相同的形式(统一的.h头文件)调用不同的芯片通信协议(例如SPI、I2C、DMA、PWM等),或者是设备驱动。 - **Primary Language**: C - **License**: LGPL-3.0 - **Default Branch**: master - **Homepage**: https://www.yuque.com/icheima - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 1 - **Created**: 2023-05-10 - **Last Updated**: 2025-07-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # UP_Middleware 通用外设中间件 UP_Middleware即 `Universal Peripheral Middleware` 通用外设中间件。 > 目的是将市面上主流的芯片(例如`STM32、STC8、ESP32、Hi3861`等)的主流芯片的外设通讯协议进行封装,以方便用户以相同的形式(统一的.h头文件)调用不同的芯片外设通信协议(例如`SPI、I2C、DMA、PWM`等),或者是设备驱动。 - 封装不同芯片和通信协议的差异性,让用户可以使用统一的`.h`头文件调用不同芯片和通信协议。 - 接口尽可能地简洁、易用,同时保证足够的灵活性。 - 逐步实现不同芯片和通信协议的接口封装,并编写测试代码进行验证。 - 根据不同芯片和通信协议的差异性,确保封装的接口能够覆盖所有可能的使用场景,并保证稳定可靠。 本工程是使用了中间件库的示例工程,如果想直接在工程中使用中间件库,可以移步这个库工程,包含库介绍和使用手册: [UP_Middleware 通用外设中间件](https://gitee.com/genkipi/up_middleware) ## 外设协议 | | GPIO | USART | EXTI | TIMER | PWM | I2C | SPI | DMA | ADC | DAC | 待补充 | | ---------- | :--: | :---: | :--: | :---: | :--: | :--: | :--: | :--: | :--: | :--: | :----: | | **GD32F4** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | | **STC8H** | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | | | **ESP32** | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | | | **Hi3861** | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | | | 待补充 | | | | | | | | | | | | ## 使用文档 ### 克隆仓库 ``` git clone https://gitee.com/genkipi/up_middleware_example.git ``` ### 初始化&更新子模块 > 以下命令均在工程根目录执行 初始化所有子模块 ``` git submodule init ``` 更新所有子模块 ``` git submodule update ``` 初始化指定子模块 ``` git submodule init git submodule init GD32F4xx_Example/Middleware # 举例:初始化GD32的子模块 ``` 更新指定子模块 ``` git submodule update git submodule update GD32F4xx_Example/Middleware # 举例:更新GD32的子模块 ``` ## 设备驱动 **电源模块** **显示模块** **传感器模块** - [ ] 陀螺仪 **电机驱动模块** **物联网模块** - [ ] 蓝牙/蓝牙mesh - [ ] 射频/2.4G - [ ] GPRS ## 支持芯片 - [x] C51 - [x] GD32 - [x] Hi3861 - [x] ESP8266/32 - [ ] ARM芯片 - [ ] 全志系列 - [ ] STM32 ## 支持单片机 - [ ] AVR单片机 - [ ] MM单片机 - [ ] HK单片机 - [ ] Arduino - [ ] RA单片机 - [ ] DSP - [ ] CH单片机 - [ ] CW32单片机 - [ ] N32单片机 - [ ] AIR32 - [ ] 树莓派