diff --git a/.gitee/ISSUE_TEMPLATE.zh-CN.md b/.gitee/ISSUE_TEMPLATE.zh-CN.md new file mode 100644 index 0000000000000000000000000000000000000000..8499252c5c6b703ccb3a5d95c8bac173a7e50005 --- /dev/null +++ b/.gitee/ISSUE_TEMPLATE.zh-CN.md @@ -0,0 +1,10 @@ +### 该问题是怎么引起的? + + + +### 重现步骤 + + + +### 报错信息 + diff --git a/.gitee/PULL_REQUEST_TEMPLATE.zh-CN.md b/.gitee/PULL_REQUEST_TEMPLATE.zh-CN.md new file mode 100644 index 0000000000000000000000000000000000000000..74b447005dda6d3d41be36c5eb913eea6dfe606d --- /dev/null +++ b/.gitee/PULL_REQUEST_TEMPLATE.zh-CN.md @@ -0,0 +1,22 @@ +**注意:提交PR,如果没有关联Issue问题,请先提issue,在关联PR** + +### IssueNO:(如#I56EH7,管理issue信息,关联问题等) + + + +### Description:描述问题(描述修改变更内容) + + + +### Sig:Sig-sample(Sig统一使用sig-samples) + + + +### Feature or Bugfix:Bugfix(如果需求选择Feature, 问题选择Bugfix) + + + + +### Signed-off-by:xxx (注明开发者账号和邮箱) + +​ diff --git a/README.md b/README.md index 1c3637ff4f6f2b7e2cfb014df42393ea0ca2e320..ec080bb9131406ffc259106190e5693957a9902b 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,28 @@ -# 3061M/3065H通用生态板嵌入式应用 +# open_mcu开发指南 -## 3061M介绍 +## 介绍 + + open_mcu代码仓为支持3061M和3065M解决方案SDK。 + +## 支持的开发板 + +| 开发板名称 | 硬件资料 | 软件资料 | 购买链接 | 开发板介绍 | +| :--------: | ------------------------------------------------------------ | :----------- | :----------------------------------------------------------- | :------------ | +| 3061M | [开发板硬件原理图](https://gitee.com/HiSpark/open_mcu/tree/master/docs/hardware/3061M) | 参考示例教程 | [开发板购买链接](https://m.tb.cn/h.gMEbHlepTLs5DNB?tk=aKIe356U3bY) | 参考3061M介绍 | +| 3065H | [开发板硬件原理图](https://gitee.com/HiSpark/open_mcu/tree/master/docs/hardware/3065H) | 参考示例教程 | [开发板购买链接](https://m.tb.cn/h.gMEbHlepTLs5DNB?tk=aKIe356U3bY) | 参考3065H介绍 | + +## 目录介绍 + +| 目录 | 介绍 | +| ------ | ---------------------- | +| docs | 硬件原理图 | +| src | SDK源码目录 | +| tools | 开发工具及环境搭建指南 | +| vendor | 存放对应开发板案例 | + +## 硬件介绍 + +### 3061M介绍 3061M系列 生态板由 ECBMCU201MPC(核心板)和 ECBMOTORA(电机驱动板组成)。 @@ -10,17 +32,17 @@ ECBMOTORA是电机驱动扩展板,支持一个 BLDC或 PMSM电机控制。该 核心板电机驱动扩展板的常用组装方式是电机驱动板通过两个40pin连接器扣接到核心板,如下图所示。 -![image-20240715162059747](./pic/image-20240715162059747.png) +![image-20240715162059747](docs/pic/tools/image-20240715162059747.png) ### 3061M硬件说明 3061M通用生态板通过 ECBMCU201MPC核心板实现控制、 ECBMOTORA 扩展板实现接口扩展以及电源接口,同时提供USB TypeC线进行调试 / 供电、12V电源适配器和一个电机。 -![image-20240715162244103](./pic/image-20240715162244103.png) +![image-20240715162244103](docs/pic/tools/image-20240715162244103.png) 3061M通用生态板用户手册详细内容请查阅:Hi3061M系列 通用生态板用户手册 00B01 -## 3065H介绍 +### 3065H介绍 3065H 通用生态板由 ECBMCU105H (核心板)和 ECBMOTORA (电机驱动板)组成。 @@ -30,123 +52,19 @@ ECBMOTORA是电机驱动扩展板,支持一个 BLDC 或 PMSM 电机控制。 核心板电机驱动扩展板的常用组装方式是电机驱动板通过两个40pin 连接器扣接到核心板,如下图所示。 -image-20240530173305431 +image-20240530173305431 ### 3065H硬件说明 3065H通用生态板通过ECBMCU105H 核心板实现控制、 ECBMOTORA 扩展板实现接口扩展以及电源接口,同时提供USB TypeC线进行调试 / 供电、12V电源适配器和一个电机。 -![image-20240527103127826](./pic/image-20240527103127826.png) +![image-20240527103127826](docs/pic/tools/image-20240527103127826.png) 3065H通用生态板用户手册详细内容请查阅:Hi3065H通用生态板用户手册 V03 -## 快速上手 - -目前支持在Windows环境下使用本项目的代码。 - -### Windows IDE环境搭建 - -在Windows下搭建编译开发环境, 我们推荐Windows 10 64位系统或以上版本, 简要步骤如下(详细内容参考tools目录下): - -#### 新建工程 - -1.下载 Hispark Studio IDE及独立工具: - -Hispark Studio IDE 版本下载链接(推荐使用):HisparkStudio - -Hispark Studio 独立工具下载链接:SolarA2IDE,具体包括如下独立工具: - -| 文件名 | 描述 | -| ------------------------------------ | ------------------ | -| VariableTrace-1.0.1.7.tar.gz | 实时变量监控工具。 | -| Programmer-1.0.0.1.tar.gz | 烧录工具。 | -| MotorControlWorkbench-1.0.0.0.tar.gz | 电机工具。 | - -Hispark Studio IDE 版本下载链接(历史归档版本):HiSparkStudio_beta - -2.打开 HiSpark Studio IDE,进入欢迎页面,单击“新建工程”,进入新建工程页面。 - -![img](./pic/clip_image002.png) - -3.后续弹窗中,根据所使用的开发板,"芯片"选择"3061MNPICA"或"3065HRPIRZ", 工程名由用户自定义,工程路径选择”用户自定义“,软件包选择工程使用的软件开发驱动包(SDK)文件夹根目录。 - -image-20240711142216428 - -![img](./pic/clip_image002-1719217272703-2.png) - -4.查看工程创建结果。HiSpark-Studio会自动打开新创建的工程,并进入芯片配置器界面(Chip Config界面),自动生成工程代码。 - -![image-20240711145131065](./pic/image-20240711145131065.png) - -#### 导入工程 - -1.打开HiSpark Studio,进入到欢迎页面,单击“导入工程”,进入导入工程页面。 - -![image-20240711142554419](./pic/image-20240711142554419.png) - -2.选择导入的路径,即可查找该路径下所有的工程,勾选需要导入的工程,单击“完成”。 - -![image-20240711145327804](./pic/image-20240711145327804.png) - -3.导入工程完成后,会在工程区展示出工程的文件夹,并在欢迎界面的工程列表中记录所导入的工程。 - -![image-20240711145349624](./pic/image-20240711145349624.png) - -#### 打开工程 - -1.打开HiSpark Studio,进入到欢迎页面,单击![image-20240528171519107](./pic/image-20240528171519107.png),进入打开工程页面。 - -![image-20240624162435476](./pic/image-20240624162435476.png) - -2.选择目标工程打开。 - -![image-20240624162440830](./pic/image-20240624162440830.png) - -①:选择目标工程所在的路径。 -②:选择导入类型为“Project Files(*.hiproj)”。 -③:选择目标文件,例如“demo.hiproj”。 - -④:单击“打开(O)”。 - -3.工作台视图中展示工程下面的文件夹,且在工程列表中出现当前打开的工程,表示打开工程成功。 - -![image-20240624163650613](./pic/image-20240624163650613.png) - -4.工程编译,以3061M与3065H在IDE中的操作步骤相同。下列步骤以3065H使用I2C 驱动模块为例: - -①:打开工程后,单击工具栏中的“芯片配置器”选项,如下图所示。 - -![image-20240624165203521](./pic/image-20240624165203521.png) - -②:使能I2C驱动模块,在配置界面配置I2C驱动模块。 - -![image-20240624165221921](./pic/image-20240624165221921.png)③:修改I2C驱动模块参数配置。 - -![image-20240624165232705](./pic/image-20240624165232705.png) - -④:生成I2C驱动模块代码。 - -![image-20240624165238779](./pic/image-20240624165238779.png) - -⑤:点击编译按钮![image-20240528173107958](./pic/image-20240528173107958.png),编译成功后终端窗口输出如下图所示。 - -![image-20240624165330284](./pic/image-20240624165330284.png) - -#### 工程烧录 - -1.将调试器连接主机端,将开发板接上电源线,连接好调试器与开发板,目前支持的调试器有两种:HiSpark-Trace和HiSpark-Link。下图使用HiSpark-Trace调试器烧录。 - -> 注:HiSpark-Trace调试器有多个连接口,连接错误会导致烧录失败,注意检查。 - -![image-20240624161626814](./pic/image-20240624161626814.png) - -2.进入工程配置界面。打开要烧录的工程后,单击顶部![image-20240624154427635](./pic/image-20240624154427635.png)的图标,进入工程配置界面->进入程序加载。选择传输方式为“swd”或者“jtag”并配置其他参数。 - -![image-20240624161948091](./pic/image-20240624161948091.png) - -3.单击“烧录”![image-20240624162016190](./pic/image-20240624162016190.png) 按钮,开始烧录。烧录成功后终端窗口输出如下图所示。 +## 开发环境搭建 -![image-20240624162037834](./pic/image-20240624162037834.png) +[参考tools目录README搭建环境](https://gitee.com/HiSpark/open_mcu/tree/master/tools) ## Demo diff --git a/docs/README.md b/docs/README.md deleted file mode 100644 index bd03001878bcfc3cfe7c2763d4c3f1411b0f6ac3..0000000000000000000000000000000000000000 --- a/docs/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# open_mcu - -#### 介绍 -{**以下是 Gitee 平台说明,您可以替换此简介** -Gitee 是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN)。专为开发者提供稳定、高效、安全的云端软件开发协作平台 -无论是个人、团队、或是企业,都能够用 Gitee 实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)} - -#### 软件架构 -软件架构说明 - - -#### 安装教程 - -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/) diff --git a/docs/hardware/3061M/ECBMCU201MPC_VER_C_QN01.pdf b/docs/hardware/3061M/ECBMCU201MPC_VER_C_QN01.pdf new file mode 100644 index 0000000000000000000000000000000000000000..00f9374af90b1cd77be71b404bd530cb2339bb72 Binary files /dev/null and b/docs/hardware/3061M/ECBMCU201MPC_VER_C_QN01.pdf differ diff --git a/docs/hardware/3065H/ECBMCU105H_VER_C_QN01.pdf b/docs/hardware/3065H/ECBMCU105H_VER_C_QN01.pdf new file mode 100644 index 0000000000000000000000000000000000000000..dfd5255344b6630e4b9396584f7dcc11a4f4c525 Binary files /dev/null and b/docs/hardware/3065H/ECBMCU105H_VER_C_QN01.pdf differ diff --git a/pic/image-20240528171519107.png b/docs/pic/sample_gpio_key/image-20240528171519107.png similarity index 100% rename from pic/image-20240528171519107.png rename to docs/pic/sample_gpio_key/image-20240528171519107.png diff --git a/pic/image-20240528171425878.png b/docs/pic/sample_gpio_key/image-20240528173107958-17249242848691.png similarity index 100% rename from pic/image-20240528171425878.png rename to docs/pic/sample_gpio_key/image-20240528173107958-17249242848691.png diff --git a/pic/image-20240528173107958.png b/docs/pic/sample_gpio_key/image-20240528173107958.png similarity index 100% rename from pic/image-20240528173107958.png rename to docs/pic/sample_gpio_key/image-20240528173107958.png diff --git a/pic/image-20240528174620708.png b/docs/pic/sample_gpio_key/image-20240624154427635-17249243742892.png similarity index 100% rename from pic/image-20240528174620708.png rename to docs/pic/sample_gpio_key/image-20240624154427635-17249243742892.png diff --git a/pic/image-20240624154427635.png b/docs/pic/sample_gpio_key/image-20240624154427635-17249245356582.png similarity index 100% rename from pic/image-20240624154427635.png rename to docs/pic/sample_gpio_key/image-20240624154427635-17249245356582.png diff --git a/docs/pic/sample_gpio_key/image-20240624154427635.png b/docs/pic/sample_gpio_key/image-20240624154427635.png new file mode 100644 index 0000000000000000000000000000000000000000..b473f47eb45298a2b90d2ed1a9824d251d4db524 Binary files /dev/null and b/docs/pic/sample_gpio_key/image-20240624154427635.png differ diff --git a/pic/image-20240624161948091.png b/docs/pic/sample_gpio_key/image-20240624161948091-17249244849033.png similarity index 100% rename from pic/image-20240624161948091.png rename to docs/pic/sample_gpio_key/image-20240624161948091-17249244849033.png diff --git a/pic/image-20240624162016190.png b/docs/pic/sample_gpio_key/image-20240624162016190-17249245189081.png similarity index 100% rename from pic/image-20240624162016190.png rename to docs/pic/sample_gpio_key/image-20240624162016190-17249245189081.png diff --git a/docs/pic/sample_gpio_key/image-20240624162016190.png b/docs/pic/sample_gpio_key/image-20240624162016190.png new file mode 100644 index 0000000000000000000000000000000000000000..cf79b604c169c300954c310d359d2c25d589606f Binary files /dev/null and b/docs/pic/sample_gpio_key/image-20240624162016190.png differ diff --git a/pic/image-20240624162037834.png b/docs/pic/sample_gpio_key/image-20240624162037834-17249245112874.png similarity index 100% rename from pic/image-20240624162037834.png rename to docs/pic/sample_gpio_key/image-20240624162037834-17249245112874.png diff --git a/docs/pic/sample_gpio_key/image-20240624162037834.png b/docs/pic/sample_gpio_key/image-20240624162037834.png new file mode 100644 index 0000000000000000000000000000000000000000..01d19a26151b5ca7b280d1dab9a150cb030a2ffd Binary files /dev/null and b/docs/pic/sample_gpio_key/image-20240624162037834.png differ diff --git a/docs/pic/sample_gpio_key/image-20240829172606786.png b/docs/pic/sample_gpio_key/image-20240829172606786.png new file mode 100644 index 0000000000000000000000000000000000000000..d491a77a310c3d2accee2eccfbe155644f502ba6 Binary files /dev/null and b/docs/pic/sample_gpio_key/image-20240829172606786.png differ diff --git a/docs/pic/sample_gpio_key/image-20240829174750105.png b/docs/pic/sample_gpio_key/image-20240829174750105.png new file mode 100644 index 0000000000000000000000000000000000000000..b067a256d7614ce055c95f0f715d82c60851404e Binary files /dev/null and b/docs/pic/sample_gpio_key/image-20240829174750105.png differ diff --git a/docs/pic/sample_gpio_key/image-20240829174913995.png b/docs/pic/sample_gpio_key/image-20240829174913995.png new file mode 100644 index 0000000000000000000000000000000000000000..93e42bfb38ee25bf3d10dc9dc869c8c0a58bc611 Binary files /dev/null and b/docs/pic/sample_gpio_key/image-20240829174913995.png differ diff --git a/pic/clip_image002-1719217272703-2.png b/docs/pic/tools/clip_image002-1719217272703-2.png similarity index 100% rename from pic/clip_image002-1719217272703-2.png rename to docs/pic/tools/clip_image002-1719217272703-2.png diff --git a/pic/clip_image002-1719217289279-4.png b/docs/pic/tools/clip_image002-1719217289279-4.png similarity index 100% rename from pic/clip_image002-1719217289279-4.png rename to docs/pic/tools/clip_image002-1719217289279-4.png diff --git a/pic/clip_image002.png b/docs/pic/tools/clip_image002.png similarity index 100% rename from pic/clip_image002.png rename to docs/pic/tools/clip_image002.png diff --git a/pic/confounded-5b25cbac2ee56674794066b189e1fc99.png b/docs/pic/tools/confounded-5b25cbac2ee56674794066b189e1fc99.png similarity index 100% rename from pic/confounded-5b25cbac2ee56674794066b189e1fc99.png rename to docs/pic/tools/confounded-5b25cbac2ee56674794066b189e1fc99.png diff --git a/pic/image-20240527103127826.png b/docs/pic/tools/image-20240527103127826.png similarity index 100% rename from pic/image-20240527103127826.png rename to docs/pic/tools/image-20240527103127826.png diff --git a/docs/pic/tools/image-20240528171425878.png b/docs/pic/tools/image-20240528171425878.png new file mode 100644 index 0000000000000000000000000000000000000000..2464629e8bd518ed5203662406316e8b7e12331a Binary files /dev/null and b/docs/pic/tools/image-20240528171425878.png differ diff --git a/docs/pic/tools/image-20240528171519107.png b/docs/pic/tools/image-20240528171519107.png new file mode 100644 index 0000000000000000000000000000000000000000..de3cb6f806ffa3b224197993c96e9f86a8431752 Binary files /dev/null and b/docs/pic/tools/image-20240528171519107.png differ diff --git a/docs/pic/tools/image-20240528173107958.png b/docs/pic/tools/image-20240528173107958.png new file mode 100644 index 0000000000000000000000000000000000000000..2464629e8bd518ed5203662406316e8b7e12331a Binary files /dev/null and b/docs/pic/tools/image-20240528173107958.png differ diff --git a/docs/pic/tools/image-20240528174620708.png b/docs/pic/tools/image-20240528174620708.png new file mode 100644 index 0000000000000000000000000000000000000000..b473f47eb45298a2b90d2ed1a9824d251d4db524 Binary files /dev/null and b/docs/pic/tools/image-20240528174620708.png differ diff --git a/pic/image-20240528174657797.png b/docs/pic/tools/image-20240528174657797.png similarity index 100% rename from pic/image-20240528174657797.png rename to docs/pic/tools/image-20240528174657797.png diff --git a/pic/image-20240530173305431.png b/docs/pic/tools/image-20240530173305431.png similarity index 100% rename from pic/image-20240530173305431.png rename to docs/pic/tools/image-20240530173305431.png diff --git a/docs/pic/tools/image-20240624154427635.png b/docs/pic/tools/image-20240624154427635.png new file mode 100644 index 0000000000000000000000000000000000000000..b473f47eb45298a2b90d2ed1a9824d251d4db524 Binary files /dev/null and b/docs/pic/tools/image-20240624154427635.png differ diff --git a/pic/image-20240624161626814.png b/docs/pic/tools/image-20240624161626814.png similarity index 100% rename from pic/image-20240624161626814.png rename to docs/pic/tools/image-20240624161626814.png diff --git a/docs/pic/tools/image-20240624161948091.png b/docs/pic/tools/image-20240624161948091.png new file mode 100644 index 0000000000000000000000000000000000000000..be648d02fb4125cceadf38df2e49543f3ba0e387 Binary files /dev/null and b/docs/pic/tools/image-20240624161948091.png differ diff --git a/docs/pic/tools/image-20240624162016190.png b/docs/pic/tools/image-20240624162016190.png new file mode 100644 index 0000000000000000000000000000000000000000..cf79b604c169c300954c310d359d2c25d589606f Binary files /dev/null and b/docs/pic/tools/image-20240624162016190.png differ diff --git a/docs/pic/tools/image-20240624162037834.png b/docs/pic/tools/image-20240624162037834.png new file mode 100644 index 0000000000000000000000000000000000000000..01d19a26151b5ca7b280d1dab9a150cb030a2ffd Binary files /dev/null and b/docs/pic/tools/image-20240624162037834.png differ diff --git a/pic/image-20240624162435476.png b/docs/pic/tools/image-20240624162435476.png similarity index 100% rename from pic/image-20240624162435476.png rename to docs/pic/tools/image-20240624162435476.png diff --git a/pic/image-20240624162440830.png b/docs/pic/tools/image-20240624162440830.png similarity index 100% rename from pic/image-20240624162440830.png rename to docs/pic/tools/image-20240624162440830.png diff --git a/pic/image-20240624163517861.png b/docs/pic/tools/image-20240624163517861.png similarity index 100% rename from pic/image-20240624163517861.png rename to docs/pic/tools/image-20240624163517861.png diff --git a/pic/image-20240624163650613.png b/docs/pic/tools/image-20240624163650613.png similarity index 100% rename from pic/image-20240624163650613.png rename to docs/pic/tools/image-20240624163650613.png diff --git a/pic/image-20240624165203521.png b/docs/pic/tools/image-20240624165203521.png similarity index 100% rename from pic/image-20240624165203521.png rename to docs/pic/tools/image-20240624165203521.png diff --git a/pic/image-20240624165221921.png b/docs/pic/tools/image-20240624165221921.png similarity index 100% rename from pic/image-20240624165221921.png rename to docs/pic/tools/image-20240624165221921.png diff --git a/pic/image-20240624165232705.png b/docs/pic/tools/image-20240624165232705.png similarity index 100% rename from pic/image-20240624165232705.png rename to docs/pic/tools/image-20240624165232705.png diff --git a/pic/image-20240624165238779.png b/docs/pic/tools/image-20240624165238779.png similarity index 100% rename from pic/image-20240624165238779.png rename to docs/pic/tools/image-20240624165238779.png diff --git a/pic/image-20240624165330284.png b/docs/pic/tools/image-20240624165330284.png similarity index 100% rename from pic/image-20240624165330284.png rename to docs/pic/tools/image-20240624165330284.png diff --git a/pic/image-20240711141744727.png b/docs/pic/tools/image-20240711141744727.png similarity index 100% rename from pic/image-20240711141744727.png rename to docs/pic/tools/image-20240711141744727.png diff --git a/pic/image-20240711142159502.png b/docs/pic/tools/image-20240711142159502.png similarity index 100% rename from pic/image-20240711142159502.png rename to docs/pic/tools/image-20240711142159502.png diff --git a/pic/image-20240711142216428.png b/docs/pic/tools/image-20240711142216428.png similarity index 100% rename from pic/image-20240711142216428.png rename to docs/pic/tools/image-20240711142216428.png diff --git a/pic/image-20240711142554419.png b/docs/pic/tools/image-20240711142554419.png similarity index 100% rename from pic/image-20240711142554419.png rename to docs/pic/tools/image-20240711142554419.png diff --git a/pic/image-20240711145131065.png b/docs/pic/tools/image-20240711145131065.png similarity index 100% rename from pic/image-20240711145131065.png rename to docs/pic/tools/image-20240711145131065.png diff --git a/pic/image-20240711145327804.png b/docs/pic/tools/image-20240711145327804.png similarity index 100% rename from pic/image-20240711145327804.png rename to docs/pic/tools/image-20240711145327804.png diff --git a/pic/image-20240711145349624.png b/docs/pic/tools/image-20240711145349624.png similarity index 100% rename from pic/image-20240711145349624.png rename to docs/pic/tools/image-20240711145349624.png diff --git a/pic/image-20240715162059747.png b/docs/pic/tools/image-20240715162059747.png similarity index 100% rename from pic/image-20240715162059747.png rename to docs/pic/tools/image-20240715162059747.png diff --git a/pic/image-20240715162244103.png b/docs/pic/tools/image-20240715162244103.png similarity index 100% rename from pic/image-20240715162244103.png rename to docs/pic/tools/image-20240715162244103.png diff --git a/docs/pic/tools/image-20240808155329000.png b/docs/pic/tools/image-20240808155329000.png new file mode 100644 index 0000000000000000000000000000000000000000..e9694c5343410b450f0eeb3ef9e4a58b8db64a98 Binary files /dev/null and b/docs/pic/tools/image-20240808155329000.png differ diff --git a/docs/pic/tools/image-20240829113635598.png b/docs/pic/tools/image-20240829113635598.png new file mode 100644 index 0000000000000000000000000000000000000000..254ba7cb301e77a60d95c5d0132d16f519a38ab6 Binary files /dev/null and b/docs/pic/tools/image-20240829113635598.png differ diff --git a/docs/pic/tools/image-20240829113816226.png b/docs/pic/tools/image-20240829113816226.png new file mode 100644 index 0000000000000000000000000000000000000000..975a0c63687dc53ae87122f45aef31082b7aa134 Binary files /dev/null and b/docs/pic/tools/image-20240829113816226.png differ diff --git a/docs/pic/tools/image-20240829114051262.png b/docs/pic/tools/image-20240829114051262.png new file mode 100644 index 0000000000000000000000000000000000000000..b40a5f045fe9d5641832761ac307404949534872 Binary files /dev/null and b/docs/pic/tools/image-20240829114051262.png differ diff --git a/docs/pic/tools/image-20240829114141942.png b/docs/pic/tools/image-20240829114141942.png new file mode 100644 index 0000000000000000000000000000000000000000..42f26dd5cbfb1b6d037fa3e7d393ccc557366289 Binary files /dev/null and b/docs/pic/tools/image-20240829114141942.png differ diff --git a/docs/pic/tools/image-20240829114235125.png b/docs/pic/tools/image-20240829114235125.png new file mode 100644 index 0000000000000000000000000000000000000000..903cf5d7cc35f1babb66a5928b10b4bc10954e44 Binary files /dev/null and b/docs/pic/tools/image-20240829114235125.png differ diff --git a/docs/pic/tools/image-20240829165503766.png b/docs/pic/tools/image-20240829165503766.png new file mode 100644 index 0000000000000000000000000000000000000000..c2c00cdad4083ad23ebe36683cacdd4c3c1a5162 Binary files /dev/null and b/docs/pic/tools/image-20240829165503766.png differ diff --git a/docs/pic/tools/image-20240829165506140.png b/docs/pic/tools/image-20240829165506140.png new file mode 100644 index 0000000000000000000000000000000000000000..c2c00cdad4083ad23ebe36683cacdd4c3c1a5162 Binary files /dev/null and b/docs/pic/tools/image-20240829165506140.png differ diff --git a/docs/pic/tools/image-20240829165616356.png b/docs/pic/tools/image-20240829165616356.png new file mode 100644 index 0000000000000000000000000000000000000000..999d9e571fca4fabec1e82927d6d2f6c21c36330 Binary files /dev/null and b/docs/pic/tools/image-20240829165616356.png differ diff --git a/pic/image.png b/docs/pic/tools/image.png similarity index 100% rename from pic/image.png rename to docs/pic/tools/image.png diff --git a/pic/rainbow-b25bbd91676fbfbd55bbf26d2e731ca1.png b/docs/pic/tools/rainbow-b25bbd91676fbfbd55bbf26d2e731ca1.png similarity index 100% rename from pic/rainbow-b25bbd91676fbfbd55bbf26d2e731ca1.png rename to docs/pic/tools/rainbow-b25bbd91676fbfbd55bbf26d2e731ca1.png diff --git a/tools/README.md b/tools/README.md index e715b41a96efa224b513e30faa4954757590d6b8..36247f17e628957f1161143f463d4f3734531c83 100644 --- a/tools/README.md +++ b/tools/README.md @@ -1,14 +1,153 @@ -Hispark Studio IDE 版本下载链接(推荐使用): -https://hispark-obs.obs.cn-east-3.myhuaweicloud.com/HiSparkStudio.exe +# Windows IDE环境搭建 -Hispark Studio 独立工具下载链接 -https://hispark-obs.obs.cn-east-3.myhuaweicloud.com/SolarA2IDE.zip +在Windows下搭建编译开发环境, 我们推荐Windows 10 64位系统或以上版本: -|文件名|描述| -|--|--| -|VariableTrace-1.0.1.7.tar.gz|实时变量监控工具。| -|Programmer-1.0.0.1.tar.gz|烧录工具。| -|MotorControlWorkbench-1.0.0.0.tar.gz|电机工具。| +## 文档介绍 -Hispark Studio IDE 版本下载链接(历史归档版本): -https://hispark-obs.obs.cn-east-3.myhuaweicloud.com/HiSparkStudio_beta.zip \ No newline at end of file +| 文件 | 描述 | +| ------------------------------------- | ------------------------ | +| HiSparkStudio 使用指南 V00B05.pdf | IDE工具安装以及使用 | +| HiSpark调试器系列 使用指南 V00B03.pdf | 调试器使用 | +| VariableTrace 使用指南 V00B04.pdf | 实时变量监控工具使用指南 | + +## 工具介绍 + +Hispark Studio IDE 版本下载链接(推荐使用):HisparkStudio + +Hispark Studio 独立工具下载链接:SolarA2IDE,具体包括如下独立工具: + +| 文件名 | 描述 | +| ------------------------------------ | ------------------ | +| VariableTrace-1.0.1.7.tar.gz | 实时变量监控工具。 | +| Programmer-1.0.0.1.tar.gz | 烧录工具。 | +| MotorControlWorkbench-1.0.0.0.tar.gz | 电机工具。 | + +Hispark Studio IDE 版本下载链接(历史归档版本):HiSparkStudio_beta + +## 工具安装及新建工程 + +1.下载 HisparkStudio IDE及独立工具,并安装。 + +![image-20240808155329000](../docs/pic/tools/image-20240808155329000.png) + +2.打开 HiSpark Studio IDE,进入欢迎页面,单击“新建工程”,进入新建工程页面。 + +![img](../docs/pic/tools/clip_image002.png) + +3.后续弹窗中,根据所使用的开发板,"芯片"选择"3061MNPICA"或"3065HRPIRZ"(根据开发板型号决定,如果是3061M则选择"3061MNPICA",如果是3065H则选择"3065HRPIRZ"), 工程名由用户自定义,工程路径选择”用户自定义“,软件包选择工程使用的软件开发驱动包(SDK)文件夹根目录。 + +image-20240711142216428 + +![img](../docs/pic/tools/clip_image002-1719217272703-2.png) + +4.查看工程创建结果。HiSpark-Studio会自动打开新创建的工程,并进入芯片配置器界面(Chip Config界面),自动生成工程代码。 + +![image-20240711145131065](../docs/pic/tools/image-20240711145131065.png) + +## 导入工程 + +1.打开HiSpark Studio,进入到欢迎页面,单击“导入工程”,进入导入工程页面。 + +![image-20240711142554419](../docs/pic/tools/image-20240711142554419.png) + +2.选择导入的路径,即可查找该路径下所有的工程,勾选需要导入的工程,单击“完成”。 + +![image-20240711145327804](../docs/pic/tools/image-20240711145327804.png) + +3.导入工程完成后,会在工程区展示出工程的文件夹,并在欢迎界面的工程列表中记录所导入的工程。 + +![image-20240711145349624](../docs/pic/tools/image-20240711145349624.png) + +## 打开工程 + +1.打开HiSpark Studio,进入到欢迎页面,单击![image-20240528171519107](../docs/pic/tools/image-20240528171519107.png),进入打开工程页面。 + +![image-20240624162435476](../docs/pic/tools/image-20240624162435476.png) + +2.选择目标工程打开。 + +![image-20240624162440830](../docs/pic/tools/image-20240624162440830.png) + +①:选择目标工程所在的路径。 +②:选择导入类型为“Project Files(*.hiproj)”。 +③:选择目标文件,例如“demo.hiproj”。 + +④:单击“打开(O)”。 + +3.工作台视图中展示工程下面的文件夹,且在工程列表中出现当前打开的工程,表示打开工程成功。 + +![image-20240624163650613](../docs/pic/tools/image-20240624163650613.png) + +4.工程编译,以3061M与3065H在IDE中的操作步骤相同。下列步骤以3065H使用I2C 驱动模块为例: + +①:打开工程后,单击工具栏中的“芯片配置器”选项,如下图所示。 + +![image-20240624165203521](../docs/pic/tools/image-20240624165203521.png) + +②:使能I2C驱动模块,在配置界面配置I2C驱动模块。 + +![image-20240624165221921](../docs/pic/tools/image-20240624165221921.png)③:修改I2C驱动模块参数配置。 + +![image-20240624165232705](../docs/pic/tools/image-20240624165232705.png) + +④:生成I2C驱动模块代码。 + +![image-20240624165238779](../docs/pic/tools/image-20240624165238779.png) + +⑤:点击编译按钮![image-20240528173107958](../docs/pic/sample_gpio_key/image-20240528173107958.png),编译成功后终端窗口输出如下图所示。 + +![image-20240624165330284](../docs/pic/tools/image-20240624165330284.png) + +## 工程烧录 + +目前支持的烧录调试器有两种:HiSpark-Trace和HiSpark-Link,推荐使用HiSpark-Link。 + +### HiSpark-Link烧录 + +- 步骤1:HiSpark-Link需要先安装FTDI驱动,该驱动需要通过zadig.exe转换为WinUSB才可被 Windows操作系统识别,将HiSpark-Link调试器通过USB连接电脑上电(如果是Typec供电,则将跳线帽跳到5V USB,如果是12V供电,则跳线帽跳到5N_IN)。 + + ![image-20240829165616356](../docs/pic/tools/image-20240829165616356.png) + +- 步骤2:下载FTDI官方驱动并安装。 下载地址:FTDI官网。 https://ftdichip.com/drivers/d2xx-drivers/ ,电机官方驱动 “setup executable”即可下载; 解压下载的文件并默认安装即可,安装完成后需要重启计算机。 + + ![image-20240829113635598](../docs/pic/tools/image-20240829113635598.png) + +- 步骤3:下载USB驱动程序zadig.exe,无需安装。 下载地址:https://zadig.akeo.ie/。 + +- 步骤4: 驱动替换, 操作流程: 1. HiSpark-Link调试器通过USB连接上电。 2. 打开 zadig.exe 应用程序(无需安装)。 3. 单击菜单“Options”->选中“list All Devices”->选中“Dual RS232- HS(Interface 0)”。 + + ![image-20240829113816226](../docs/pic/tools/image-20240829113816226.png) + +- 步骤4:单击“Replace Driver”按钮,即可将Dual RS232-HS(Interface 0) 转化为 WinUSB(WinUSB实际版本与zadig.exe驱动版本有关。 + + ![image-20240829114051262](../docs/pic/tools/image-20240829114051262.png) + +- 步骤五:耐心等待替换完成,出现提示即替换成功,可通过检查“设备管理器”-> “通用串行总线设备”中出现Dual RS232-HS设备判断驱动替换成功。 + + ![image-20240829114141942](../docs/pic/tools/image-20240829114141942.png) + + ![image-20240829114235125](../docs/pic/tools/image-20240829114235125.png) + +- 步骤六:进入工程配置界面。打开要烧录的工程后,单击顶部![image-20240624154427635](../docs/pic/sample_gpio_key/image-20240624154427635.png)的图标,进入工程配置界面->进入程序加载。选择传输方式为“swd”,并配置其他参数。 + + ![image-20240829174913995](../docs/pic/sample_gpio_key/image-20240829174913995.png) + +- 步骤七:单击“烧录”![image-20240624162016190](../docs/pic/sample_gpio_key/image-20240624162016190.png) 按钮,开始烧录。烧录成功后终端窗口输出如下图所示。 + + ![image-20240624162037834](../docs/pic/tools/image-20240624162037834.png) + +### HiSpark-Trace烧录 + +- 步骤一:将调试器连接主机端,将开发板接上电源线,连接好调试器与开发板。 + +> HiSpark-Trac烧录:注:HiSpark-Trace调试器有多个连接口,连接错误会导致烧录失败,注意检查。 + +![image-20240624161626814](../docs/pic/tools/image-20240624161626814.png) + +- 步骤二:进入工程配置界面。打开要烧录的工程后,单击顶部![image-20240624154427635](../docs/pic/sample_gpio_key/image-20240624154427635-17249245356582.png)的图标,进入工程配置界面->进入程序加载。选择传输方式为“swd”或者“jtag”并配置其他参数。 + +![image-20240624161948091](../docs/pic/tools/image-20240624161948091.png) + +- 步骤三:单击“烧录” ![image-20240624162016190](../docs/pic/sample_gpio_key/image-20240624162016190.png)按钮,开始烧录。烧录成功后终端窗口输出如下图所示。 + +![image-20240624162037834](../docs/pic/tools/image-20240624162037834.png) \ No newline at end of file diff --git a/vendor/README.md b/vendor/README.md deleted file mode 100644 index bd03001878bcfc3cfe7c2763d4c3f1411b0f6ac3..0000000000000000000000000000000000000000 --- a/vendor/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# open_mcu - -#### 介绍 -{**以下是 Gitee 平台说明,您可以替换此简介** -Gitee 是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN)。专为开发者提供稳定、高效、安全的云端软件开发协作平台 -无论是个人、团队、或是企业,都能够用 Gitee 实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)} - -#### 软件架构 -软件架构说明 - - -#### 安装教程 - -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/) diff --git a/vendor/yibaina_3061M/demo/sample_gpio_key/generatecode/feature.h b/vendor/yibaina_3061M/demo/sample_gpio_key/generatecode/feature.h new file mode 100644 index 0000000000000000000000000000000000000000..a1f9eb276a05eee970c2b38cac5d189c83d50342 --- /dev/null +++ b/vendor/yibaina_3061M/demo/sample_gpio_key/generatecode/feature.h @@ -0,0 +1,93 @@ +/** + * @copyright Copyright (c) 2022, HiSilicon (Shanghai) Technologies Co., Ltd. All rights reserved. + * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the + * following conditions are met: + * 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following + * disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the + * following disclaimer in the documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote + * products derived from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE + * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * @file feature.h + * @author MCU Driver Team + * @brief This file contains macro configurations related to the project. This file is generated by the IDE tool. + */ + +#ifndef McuMagicTag_FEATURE_H +#define McuMagicTag_FEATURE_H + +/* Macro definitions --------------------------------------------------------- */ +#define CHIP_3061MNPICA MACRO_ENABLE + +#define MACRO_ENABLE 1 +#define MACRO_DISABLE 0 + +/* Macro switch */ +#define BASE_DEFINE_USE_ASSERT MACRO_ENABLE +#ifndef FLASH_CRC_CONFIG +#define FLASH_CRC_CONFIG +#endif /* #ifndef FLASH_CRC_CONFIG */ +#define BASE_MATH_SINCOS_MIDDLE_TABLE MACRO_ENABLE /**< This macro is used to control the table type when the + BASE_MATH_GetSinCos() queries the table. When the value of + this macro is MACRO_ENABLE, the error value obtained by the + BASE_MATH_GetSinCos() is relatively small, and the return + value of the function may be greater than or less than the + actual value. When the value of this macro is MACRO_DISABLE, + the error value obtained by the BASE_MATH_GetSinCos() is + relatively large. However, in the range [0°, 180°) and + [180°, 360°), the return value of the function is either + greater than or less than the actual value. */ + +/* Peripheral module macro switch--------------------------------------------- */ +#define BOARD_DIM_NUM 1 /**< Number of dimming handle arrays. */ + +#define BOARD_KEY_NUM 10 /**< Number of key handle arrays. */ +#define BOARD_KEY_PRESS_ON GPIO_HIGH_LEVEL /**< GPIO status corresponding to long press valid. */ +#define BOARD_KEY_PRESS_OFF GPIO_LOW_LEVEL /**< GPIO status corresponding to short press valid. */ + +#define BOARD_LED_SEG_NUM 4 /**< Number of segments. */ +#define BOARD_LED_SEGMENT_ON GPIO_HIGH_LEVEL /**< GPIO level status corresponding to valid segments. */ +#define BOARD_LED_SEGMENT_OFF GPIO_LOW_LEVEL /**< GPIO level status corresponding to invalid segments. */ + +#define BOARD_MKEY_SCHEME_NUMBER BOARD_MKEY_SCHEME_NUMBER_ONE /**< Define the scheme to be adopted. */ +#define BOARD_MKEY_OUT_NUM 4 /**< Number of GPIO pins used as output during scanning. */ +#define BOARD_MKEY_IN_NUM 4 /**< Number of GPIO pins used as input during scanning. */ +#define BOARD_MKEY_OUT_PIN_VALID GPIO_LOW_LEVEL /**< GPIO level status corresponding to the valid \ + status of the output GPIO in the key matrix. */ +#define BOARD_MKEY_OUT_PIN_INVALID GPIO_HIGH_LEVEL /**< GPIO level status corresponding to the \ + invalid status of the output GPIO in the key matrix. */ +#define BOARD_MKEY_IN_PIN_VALID GPIO_LOW_LEVEL /**< Indicates the GPIO level corresponding to the \ + valid status of the input GPIO in the key matrix. */ +#define BOARD_MKEY_IN_PIN_INVALID GPIO_HIGH_LEVEL /**< Indicates the GPIO level corresponding to the \ + invalid status of the input GPIO in the key matrix. */ + +#define BOARD_PULSES_NUM 2 /**< Number of pulse handles. */ + +#define BASE_DEFINE_SLIPAVERAGE_NUM 2 /**< Sliding average array length. */ + +#define LISTNODE_MAX 20 + +#define BASE_DEFINE_DMA_QUICKSTART + +#define XTRAIL_FREQ 30000000U + +#define DBG_USE_NO_PRINTF 0U +#define DBG_USE_UART_PRINTF 1U + +#define DBG_PRINTF_USE DBG_USE_UART_PRINTF +#if (DBG_PRINTF_USE == DBG_USE_UART_PRINTF) +#define DBG_PRINTF_UART_PORT UART0 +#endif + +/* USER CODE BEGIN 0 */ +/* USER CODE 区域内代码不会被覆盖,区域外会被生成的默认代码覆盖(其余USER CODE 区域同理) */ +/* USER CODE END 0 */ + +#endif /* McuMagicTag_FEATURE_H */ \ No newline at end of file diff --git a/vendor/yibaina_3061M/demo/sample_gpio_key/generatecode/main.h b/vendor/yibaina_3061M/demo/sample_gpio_key/generatecode/main.h new file mode 100644 index 0000000000000000000000000000000000000000..c77e0f2ece54dd83d99b719c2dccffc08d908aeb --- /dev/null +++ b/vendor/yibaina_3061M/demo/sample_gpio_key/generatecode/main.h @@ -0,0 +1,59 @@ +/** + * @copyright Copyright (c) 2022, HiSilicon (Shanghai) Technologies Co., Ltd. All rights reserved. + * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the + * following conditions are met: + * 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following + * disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the + * following disclaimer in the documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote + * products derived from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE + * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * @file main.h + * @author MCU Driver Team + * @brief This file contains driver init functions. + */ + +/* Define to prevent recursive inclusion ------------------------------------- */ +#ifndef McuMagicTag_SYSTEM_INIT_H +#define McuMagicTag_SYSTEM_INIT_H + +#include "uart.h" +#include "uart_ex.h" +#include "gpio.h" +#include "crg.h" +#include "iocmg.h" + +#define IO_SPEED_FAST 0x00U +#define IO_SPEED_SLOW 0x01U + +#define IO_DRV_LEVEL4 0x00U +#define IO_DRV_LEVEL3 0x01U +#define IO_DRV_LEVEL2 0x02U +#define IO_DRV_LEVEL1 0x03U + +#define XTAL_DRV_LEVEL4 0x03U +#define XTAL_DRV_LEVEL3 0x02U +#define XTAL_DRV_LEVEL2 0x01U +#define XTAL_DRV_LEVEL1 0x00U + +extern UART_Handle g_uart0; + +extern GPIO_Handle g_gpio2; + +BASE_StatusType CRG_Config(CRG_CoreClkSelect *coreClkSelect); +void SystemInit(void); + +void GPIO_CallBackFunc(void *param); + +/* USER CODE BEGIN 0 */ +/* USER CODE 区域内代码不会被覆盖,区域外会被生成的默认代码覆盖(其余USER CODE 区域同理) */ +/* USER CODE END 0 */ + +#endif /* McuMagicTag_SYSTEM_INIT_H */ \ No newline at end of file diff --git a/vendor/yibaina_3061M/demo/sample_gpio_key/generatecode/system_init.c b/vendor/yibaina_3061M/demo/sample_gpio_key/generatecode/system_init.c new file mode 100644 index 0000000000000000000000000000000000000000..24a14c9c158800a66611c267cc0c417694a461fc --- /dev/null +++ b/vendor/yibaina_3061M/demo/sample_gpio_key/generatecode/system_init.c @@ -0,0 +1,124 @@ +/** + * @copyright Copyright (c) 2022, HiSilicon (Shanghai) Technologies Co., Ltd. All rights reserved. + * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the + * following conditions are met: + * 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following + * disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the + * following disclaimer in the documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote + * products derived from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE + * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * @file system_init.c + * @author MCU Driver Team + * @brief This file contains driver init functions. + */ + +#include "main.h" +#include "ioconfig.h" +#include "iocmg_ip.h" + +#define UART0_BAND_RATE 115200 + +BASE_StatusType CRG_Config(CRG_CoreClkSelect *coreClkSelect) +{ + CRG_Handle crg; + crg.baseAddress = CRG; + crg.pllRefClkSelect = CRG_PLL_REF_CLK_SELECT_HOSC; + crg.pllPreDiv = CRG_PLL_PREDIV_4; + crg.pllFbDiv = 48; /* PLL Multiplier 48 */ + crg.pllPostDiv = CRG_PLL_POSTDIV_2; + crg.coreClkSelect = CRG_CORE_CLK_SELECT_PLL; + crg.handleEx.pllPostDiv2 = CRG_PLL_POSTDIV2_3; + crg.handleEx.clk1MSelect = CRG_1M_CLK_SELECT_HOSC; + crg.handleEx.clk1MDiv = (25 - 1); /* The 1 MHz freq is equal to the input clock frequency / (clk_1m_div + 1). 25 is the div of the clk_1m in CLOCK. */ + + if (HAL_CRG_Init(&crg) != BASE_STATUS_OK) { + return BASE_STATUS_ERROR; + } + *coreClkSelect = crg.coreClkSelect; + return BASE_STATUS_OK; +} + +__weak void GPIO_CallBackFunc(void *param) +{ + GPIO_Handle *handle = (GPIO_Handle *)param; + BASE_FUNC_UNUSED(handle); +} + +static void GPIO_Init(void) +{ + HAL_CRG_IpEnableSet(GPIO2_BASE, IP_CLK_ENABLE); + g_gpio2.baseAddress = GPIO2; + + g_gpio2.pins = GPIO_PIN_4; + HAL_GPIO_Init(&g_gpio2); + HAL_GPIO_SetDirection(&g_gpio2, g_gpio2.pins, GPIO_INPUT_MODE); + HAL_GPIO_SetValue(&g_gpio2, g_gpio2.pins, GPIO_LOW_LEVEL); + HAL_GPIO_SetIrqType(&g_gpio2, g_gpio2.pins, GPIO_INT_TYPE_RISE_EDGE); + + HAL_GPIO_RegisterCallBack(&g_gpio2, GPIO_PIN_4, GPIO_CallBackFunc); + IRQ_Register(IRQ_GPIO2, HAL_GPIO_IrqHandler, &g_gpio2); + IRQ_SetPriority(IRQ_GPIO2, 1); /* set gpio1 interrupt priority to 1, 1~15. 1 is priority value */ + IRQ_EnableN(IRQ_GPIO2); /* gpio interrupt enable */ + + return; +} + +static void UART0_Init(void) +{ + HAL_CRG_IpEnableSet(UART0_BASE, IP_CLK_ENABLE); /* UART0 clock enable. */ + g_uart0.baseAddress = UART0; + + g_uart0.baudRate = UART0_BAND_RATE; + g_uart0.dataLength = UART_DATALENGTH_8BIT; + g_uart0.stopBits = UART_STOPBITS_ONE; + g_uart0.parity = UART_PARITY_NONE; + g_uart0.txMode = UART_MODE_BLOCKING; + g_uart0.rxMode = UART_MODE_BLOCKING; + g_uart0.fifoMode = BASE_CFG_ENABLE; + g_uart0.fifoTxThr = UART_FIFODEPTH_SIZE8; + g_uart0.fifoRxThr = UART_FIFODEPTH_SIZE8; + g_uart0.hwFlowCtr = BASE_CFG_DISABLE; + g_uart0.handleEx.overSampleMultiple = UART_OVERSAMPLING_16X; + g_uart0.handleEx.msbFirst = BASE_CFG_DISABLE; + HAL_UART_Init(&g_uart0); +} + +static void IOConfig(void) +{ + /* Config PIN21 */ + HAL_IOCMG_SetPinAltFuncMode(GPIO2_4_AS_GPIO2_4); /* Check function selection */ + HAL_IOCMG_SetPinPullMode(GPIO2_4_AS_GPIO2_4, PULL_NONE); /* Pull-up and Pull-down */ + HAL_IOCMG_SetPinSchmidtMode(GPIO2_4_AS_GPIO2_4, SCHMIDT_DISABLE); /* Schmitt input on/off */ + HAL_IOCMG_SetPinLevelShiftRate(GPIO2_4_AS_GPIO2_4, LEVEL_SHIFT_RATE_SLOW); /* Output drive capability */ + HAL_IOCMG_SetPinDriveRate(GPIO2_4_AS_GPIO2_4, DRIVER_RATE_2); /* Output signal edge fast/slow */ + /* Config PIN39 */ + HAL_IOCMG_SetPinAltFuncMode(GPIO0_3_AS_UART0_TXD); /* Check function selection */ + HAL_IOCMG_SetPinPullMode(GPIO0_3_AS_UART0_TXD, PULL_NONE); /* Pull-up and Pull-down */ + HAL_IOCMG_SetPinSchmidtMode(GPIO0_3_AS_UART0_TXD, SCHMIDT_DISABLE); /* Schmitt input on/off */ + HAL_IOCMG_SetPinLevelShiftRate(GPIO0_3_AS_UART0_TXD, LEVEL_SHIFT_RATE_SLOW); /* Output drive capability */ + HAL_IOCMG_SetPinDriveRate(GPIO0_3_AS_UART0_TXD, DRIVER_RATE_2); /* Output signal edge fast/slow */ + /* Config PIN40 */ + HAL_IOCMG_SetPinAltFuncMode(GPIO0_4_AS_UART0_RXD); /* Check function selection */ + HAL_IOCMG_SetPinPullMode(GPIO0_4_AS_UART0_RXD, PULL_UP); /* Pull-up and Pull-down, UART RX recommend PULL_UP */ + HAL_IOCMG_SetPinSchmidtMode(GPIO0_4_AS_UART0_RXD, SCHMIDT_DISABLE); /* Schmitt input on/off */ + HAL_IOCMG_SetPinLevelShiftRate(GPIO0_4_AS_UART0_RXD, LEVEL_SHIFT_RATE_SLOW); /* Output drive capability */ + HAL_IOCMG_SetPinDriveRate(GPIO0_4_AS_UART0_RXD, DRIVER_RATE_2); /* Output signal edge fast/slow */ +} + +void SystemInit(void) +{ + IOConfig(); + UART0_Init(); + GPIO_Init(); + + /* USER CODE BEGIN system_init */ + /* USER CODE END system_init */ +} \ No newline at end of file diff --git a/vendor/yibaina_3061M/demo/sample_gpio_key/gpio_key_sample.c b/vendor/yibaina_3061M/demo/sample_gpio_key/gpio_key_sample.c new file mode 100644 index 0000000000000000000000000000000000000000..83fc35d9c5af63bfa3c3f3d20e59a10d8f819ab0 --- /dev/null +++ b/vendor/yibaina_3061M/demo/sample_gpio_key/gpio_key_sample.c @@ -0,0 +1,65 @@ +/** + * @copyright Copyright (c) 2022, HiSilicon (Shanghai) Technologies Co., Ltd. All rights reserved. + * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the + * following conditions are met: + * 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following + * disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the + * following disclaimer in the documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote + * products derived from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE + * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * @file gpio_key_sample.c + * @author MCU Driver Team + * @brief GPIO module realize a key function sample + * @details GPIO Capturing Key Triggered Interrupt Service Function. If the hardware environment does \ + * not support this function, you need to set up an environment for verification. + */ + +/* Includes ------------------------------------------------------------------*/ +#include "debug.h" +#include "gpio.h" +#include "main.h" +#include "gpio_key_sample.h" + +#define PREVENT_SWIPE_SCREEN_TIME 50 +#define CYCLE_INTERVAL_TIME 500 + +/* prototype functions -------------------------------------------------------*/ +void GPIO_CallBackFunc(void *param); + +/* ---------------------------------- Sample Parameters ---------------------- */ +/** + * @brief GPIO key test sample. + * @param None + * @retval Value of @ref BASE_StatusType. + */ +BASE_StatusType GPIO_KeySample(void) +{ + SystemInit(); + /* Waiting for the key to come. */ + while (1) { + DBG_PRINTF("Wait key \r\n"); + BASE_FUNC_DELAY_MS(CYCLE_INTERVAL_TIME); + } + + return BASE_STATUS_OK; +} + +/** + * @brief GPIO register interrupt callback function. + * @param param Value of @ref GPIO_Handle. + * @retval None + */ +void GPIO_CallBackFunc(void *param) +{ + BASE_FUNC_UNUSED(param); + DBG_PRINTF("in GPIO Key Handler \r\n"); + BASE_FUNC_DELAY_MS(PREVENT_SWIPE_SCREEN_TIME); +} \ No newline at end of file diff --git a/vendor/yibaina_3061M/demo/sample_gpio_key/gpio_key_sample.h b/vendor/yibaina_3061M/demo/sample_gpio_key/gpio_key_sample.h new file mode 100644 index 0000000000000000000000000000000000000000..17ff5146931f2a3e009ca4ae8363316a4d240653 --- /dev/null +++ b/vendor/yibaina_3061M/demo/sample_gpio_key/gpio_key_sample.h @@ -0,0 +1,30 @@ +/** + * @copyright Copyright (c) 2022, HiSilicon (Shanghai) Technologies Co., Ltd. All rights reserved. + * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the + * following conditions are met: + * 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following + * disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the + * following disclaimer in the documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote + * products derived from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE + * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * @file gpio_key_sample.h + * @author MCU Driver Team + * @brief GPIO module sample + * @details This file provides sample code for users to help use + * the trigger an interrupt based on the key connected to the GPIO. + */ + +#ifndef GPIO_KEY_SAMPLE_H +#define GPIO_KEY_SAMPLE_H + +BASE_StatusType GPIO_KeySample(void); + +#endif /* GPIO_KEY_SAMPLE_H */ \ No newline at end of file diff --git a/vendor/yibaina_3061M/demo/sample_gpio_key/main.c b/vendor/yibaina_3061M/demo/sample_gpio_key/main.c new file mode 100644 index 0000000000000000000000000000000000000000..10f82fbe10df696360782732d64fa1acb993e5a2 --- /dev/null +++ b/vendor/yibaina_3061M/demo/sample_gpio_key/main.c @@ -0,0 +1,59 @@ +/** + * @copyright Copyright (c) 2022, HiSilicon (Shanghai) Technologies Co., Ltd. All rights reserved. + * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the + * following conditions are met: + * 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following + * disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the + * following disclaimer in the documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote + * products derived from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE + * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * @file main.c + * @author MCU Driver Team + * @brief Main program body. + */ + +#include "typedefs.h" +#include "feature.h" +#include "gpio_key_sample.h" +#include "main.h" +/* USER CODE BEGIN 0 */ +/* USER CODE 区域内代码不会被覆盖,区域外会被生成的默认代码覆盖(其余USER CODE 区域同理) */ +/* 建议用户放置头文件 */ +/* USER CODE END 0 */ +UART_Handle g_uart0; +GPIO_Handle g_gpio2; +/* USER CODE BEGIN 1 */ +/* 建议用户定义全局变量、结构体、宏定义或函数声明等 */ +/* USER CODE END 1 */ + +int main(void) +{ + /* USER CODE BEGIN 2 */ + /* 建议用户放置初始化代码或启动代码等 */ + /* USER CODE END 2 */ + GPIO_KeySample(); + /* USER CODE BEGIN 3 */ + /* 建议用户放置初始配置代码 */ + /* USER CODE END 3 */ + while (1) { + /* USER CODE BEGIN 4 */ + /* 建议用户放置周期性执行代码 */ + /* USER CODE END 4 */ + } + /* USER CODE BEGIN 5 */ + /* 建议用户放置代码流程 */ + /* USER CODE END 5 */ + return BASE_STATUS_OK; +} + +/* USER CODE BEGIN 6 */ +/* 建议用户放置自定义函数 */ +/* USER CODE END 6 */ \ No newline at end of file diff --git a/vendor/yibaina_3061M/demo/sample_gpio_key/readme.md b/vendor/yibaina_3061M/demo/sample_gpio_key/readme.md new file mode 100644 index 0000000000000000000000000000000000000000..fb6ae9362f7aa6348ad188aae099a3671f0333bc --- /dev/null +++ b/vendor/yibaina_3061M/demo/sample_gpio_key/readme.md @@ -0,0 +1,78 @@ +# sample_gpio_key + +## 1.1 介绍 + +**功能介绍:** 基于HAL接口完成时钟、GPIO控制器初始化和功能配置。在示例代码中通过中断的方式实现对S2按键的检测。 + +**软件概述:** 使用中断方式实现按键功能。 + +**硬件概述:** 核心板。通过板端丝印可以看出S2按键的GPIO对应GPIO2_4。硬件搭建要求如图所示: + + + +![image-20240829165616356](../../../../docs/pic/tools/image-20240829165616356.png) + +## 1.2 约束与限制 + +### 1.2.1 支持应用运行的芯片和开发板 + + 本示例支持开发板:3061M + +### 1.2.2 支持API版本、SDK版本 + + 本示例支持版本号:SolarA2_1.0.1.2 + +### 1.2.3 支持IDE版本 + + 本示例支持IDE版本号:1.0.0.6; + +## 1.3 效果预览 + + 当用户烧录编译后的示例代码后,初始化和配置完成后,示例代码中在按键没有按下时Debug串口会一直打印等待按键的log信息,当连接的按键按下时功能正常时Debug串口打印成功log信息;功能异常时按下按键时Debug串口还是会一直打印等待按键的log信息。 + +![image-20240829172606786](../../../../docs/pic/sample_gpio_key/image-20240829172606786.png) + +## 1.4 接口介绍 + +#### 1.4.1 HAL_GPIO_Init() + +| **定义:** | void HAL_GPIO_Init(GPIO_Handle *handle); | +| ------------ | ----------------------------------------- | +| **功能:** | 初始化GPIO寄存器值 | +| **参数:** | handle:GPIO_Handle的值 | +| **返回值:** | None | +| **依赖:** | drivers\gpio\common\inc\gpio.h | + +## 1.5 具体实现 + + 步骤一:GPIO管脚选择:示例代码中选择GPIO管脚用于通过中断方式进行按键检测。也可以选择其他GPIO管脚用于按键检测功能测试,在"GPIO_Init()"接口中的"g_gpiox.baseAddress"可以配置其它GPIOX,g_gpiox.pins可以配置“GPIO_PIN_0-GPIO_PIN_7”中的任意一个。 + + 步骤二:GPIO管脚初始化:调用接口"HAL_GPIO_Init()”完成对示例代码中GPIO管脚的方向、电平、中断模式配置。 + +## 1.6 实验流程 + +- 步骤一:在xxx\vendor\yibaina_3061M\demo\sample_gpio_key/文件夹里面内容复制替换到xxx/user/目录下。 + + ![image-20240829174750105](../../../../docs/pic/sample_gpio_key/image-20240829174750105.png) + + +- 步骤二:点击编译按钮![image-20240528173107958](../../../../docs/pic/sample_gpio_key/image-20240528173107958-17249242848691.png),编译成功后终端窗口输出如下图所示。 + ![image-20240624165330284](../../../../docs/pic/tools/image-20240624165330284.png) + + + +- 步骤三:进入工程配置界面。打开要烧录的工程后,单击顶部![image-20240624154427635](../../../../docs/pic/sample_gpio_key/image-20240624154427635-17249243742892.png)的图标,进入工程配置界面->进入程序加载。选择传输方式为“swd”,并配置其他参数。(具体[参考tools目录README搭建环境](https://gitee.com/HiSpark/open_mcu/tree/master/tools)) + + ![image-20240829174913995](../../../../docs/pic/sample_gpio_key/image-20240829174913995.png) + +- 步骤四:单击“烧录”![image-20240624162016190](../../../../docs/pic/tools/image-20240624162016190.png) 按钮,开始烧录。烧录成功后终端窗口输出如下图所示。 + + ![image-20240624162037834](../../../../docs/pic/sample_gpio_key/image-20240624162037834-17249245112874.png) + +* 步骤五 : 当用户烧录编译后的示例代码后,初始化和配置完成后,示例代码中在按键没有按下时Debug串口会一直打印等待按键的log信息,当连接的按键按下时功能正常时Debug串口打印成功log信息;功能异常时按下按键时Debug串口还是会一直打印等待按键的log信息。 + + ![image-20240829172606786](../../../../docs/pic/sample_gpio_key/image-20240829172606786.png) + + + + \ No newline at end of file