# open_usb_power_supply #### 介绍 基于AT32F415开发的USB便携式移动电压源 - 支持USB PD3.0/PD2.0,BC1.2协议,支持5V~20V输入 - 输出电压从2.7V ~ 20V可调,3A的输出电流带载能力,可满足日常实验使用 - 从100mA~3A的限流可调 - 电源输入电压,电流实时监测 - 电源输出电压,电流实时监测 - 电压检测分辨率8mV,电流检测分辨率40uV/10mR=4uA - 320x240 TFT屏实时显示用电情况,可做为一个简易功率计使用,监测用电设备的用电能力 - 可通过BLE与上位机进行通信,实现更多应用的拓展开发 - 外围器件少,实现原理简单,非常方便DIY - 小巧方便,不依赖特定电源,只要是USB适配器都可以使用 - 软硬件全部开源 #### 软件架构 - 本项目使用的软件架构为本人自行开发,此软件架构的核心是所有的功能模块被独立分开,模块与模块之间以消息的方式进行数据耦合,各种模块维护各自模块的状态,本着以功能内聚大,以数据耦合为主,尽量不使用逻辑耦合,或者直接修改对方数据的方式。 - 如下是程序框架图,下面对部分模块进行简要说明,详细的大家可以看看源代码,如有不明白的地方欢迎大家留言讨论: ![软件框图](docs/prgram_flowchart.png) - **mcu_os:**   核心是mcu_os部分,这部分实现了消息处理,任务调度,内存管理等功能,本项目中的usr_main_app、usr_input_task、   usr_display_task几个功能任务模块就是居于此基础之上进行消息传递,实现系统UI的各个功能需求。 - **usr_display_task:**   负责接收来自usr_main_app发来的一些状态信息,在LCD屏幕上实现各种界面显示。 - **usr_main_app:**   负责接收来自usr_input_task发出的用户输入事件,对用户输入事件进行响应,并把一些状态信息发送给usr_display_task - **usr_input_task:**   负责调用驱动层的io_key,读取io_key状态信息,生成按键事件并把按键事件发送给usr_main_app #### 安装教程 1. xxxx 2. xxxx 3. xxxx #### 使用说明 1. xxxx 2. xxxx 3. xxxx #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)