From 15c5ebe6f3f4a58886e98253ed7379afa573d81d Mon Sep 17 00:00:00 2001 From: sakumisu <1203593632@qq.com> Date: Sat, 21 May 2022 16:50:01 +0800 Subject: [PATCH] add usb outline png --- README.md | 2 ++ README_zh.md | 2 ++ docs/asserts/usb_outline.png | Bin 0 -> 30563 bytes 3 files changed, 4 insertions(+) create mode 100644 docs/asserts/usb_outline.png diff --git a/README.md b/README.md index 878a53ed..7103615a 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,8 @@ CherryUSB is a tiny, beautiful and portable USB host and device stack for embedded system. +![CherryUSB](./docs/asserts/usb_outline.png) + ## CherryUSB Directoy Structure ``` diff --git a/README_zh.md b/README_zh.md index cced0248..405abecf 100644 --- a/README_zh.md +++ b/README_zh.md @@ -4,6 +4,8 @@ CherryUSB 是一个小而美的、可移植性高的、用于嵌入式系统的 USB 主从协议栈。 +![CherryUSB](./docs/asserts/usb_outline.png) + ## CherryUSB 目录结构 ``` diff --git a/docs/asserts/usb_outline.png b/docs/asserts/usb_outline.png new file mode 100644 index 0000000000000000000000000000000000000000..1a5d26b3571fac18450ea7ff8856accac8df4f43 GIT binary patch literal 30563 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�!`z1c^)JaM*5*uLt%VJ^9|p^z{ust=5bA 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 ZCj8{V`YEyex_#|ERM)*%e#bWQe*unvX1V|X literal 0 HcmV?d00001