前一篇分享《【老杜甩干货】使用WSL搭建鸿蒙 IOT最方便的编译环境》中,我介绍了如何使用WSL搭建一个编译环境(下图中的Linux compile server)。这次完成在windows上搭建代码的开发调试环境,Wiofi iot的开发环境终于完整了。 我整理了需要下载的所有软件包,方便大家批量下载。如下表:
内容 | 要求 | 链接 |
VSCode | | https://vscode.cdn.azure.cn/stable/d2e414d9e4239a252d1ab117bd7067f125afd80a/VSCodeUserSetup-x64-1.50.1.exe |
HUAWEI DevEco Device Tool | | https://device.harmonyos.com/cn/ide#download |
NodeJs | | https://nodejs.org/dist/v12.19.0/node-v12.19.0-x64.msi |
Python3.7+ | 版本>=3.7 | Windows上不需要单独安装 |
终端工具 | 能连接串口就行 | 个人比较喜欢MobaXterm,https://mobaxterm.mobatek.net/ |
Ch340串口驱动 | | http://www.wch.cn/search?q=ch340g&t=downloads |
1.开发环境搭建&使用原本打算详细记录一下,实际操作中发现根本不需要。官方的文档写的比较详细。
这里只记录我遇到的问题及处理方法。估计大家也会遇到,遇到问题的时候回来查看一下就好
问题1:使用IDE 烧写时报错IDE控制台报错如下:
- hpm : 无法加载文件 C:Users用户名AppDataRoamingnpmhpm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中
- 的 about_Execution_Policies。
- 所在位置 行:1 字符: 1
- + hpm run 'upload'
- + ~~~
- + CategoryInfo : SecurityError: (:) [],PSSecurityException
- + FullyQualifiedErrorId : UnauthorizedAccess
- The terminal process "C:WINDOWSSystem32WindowsPowerShellv1.0powershell.exe -Command hpm run 'upload'" terminated with exit code: 1.
复制代码
- 管理员运行PowerShell
- 输入set-ExecutionPolicy RemoteSigned
问题2:IDE无法刷新出串口号,不断要求安装串口组件- IDE不断弹出需要安装serialport的窗口
- Burn设置中无法选择串口端口号
终定位发现是node-gyp有一个库不对。 能直接确认这个问题的现象是,当你卸载serialport重新安装时报错:
- PS C:WINDOWSsystem32> npm uninstall -g serialport
- ...
- PS C:WINDOWSsystem32> npm install -g serialport
- > @serialport/bindings@9.0.2 install C:UsersdxbAppDataRoamingnpmnode_modulesserialportnode_modules@serialportbindings
- > prebuild-install --tag-prefix @serialport/bindings@ || node-gyp rebuild
- prebuild-install WARN install No prebuilt binaries found (target=12.19.0 runtime=node arch=x64 libc= platform=win32)
- C:Users用户名AppDataRoamingnpmnode_modulesserialportnode_modules@serialportbindings>if not defined npm_config_node_gyp (node "C:Program Filesnodejsnode_modulesnpmnode_modulesnpm-lifecyclenode-gyp-bin\....node_modulesnode-gypbinnode-gyp.js" rebuild ) else (node "C:Program Filesnodejsnode_modulesnpmnode_modulesnode-gypbinnode-gyp.js" rebuild )
- 在此解决方案中一次生成一个项目。若要启用并行生成,请添加“/m”开关。
- serialport.cpp
- serialport_win.cpp
- win_delay_load_hook.cc
- C:\Users\用户名\AppData\Local\node-gyp\Cache\12.19.0\x64\node.lib : fatal error LNK1107: 文件无效或损坏: 无法在 0x541B04 处读
- 取 [C:UsersdxbAppDataRoamingnpmnode_modulesserialportnode_modules@serialportbindingsbuildbindings.vcxproj]
复制代码
上面报错中提到,如下文件被损坏了: C:Users用户名AppDataLocalnode-gypCache12.19.0x64node.lib在node官网下载正确的lib库,替换到你的环境中。下载地址https://nodejs.org/dist/v12.19.0/win-x64/
注意12.19.0是nodejs的版本,你需要找自己对应的版本
替换后重新安装serialport就可以了。
问题3:烧写时报错MODULE_NOT_FOUND启动烧写后控制台报错
- > Executing task: hpm run 'upload' <
- internal/modules/cjs/loader.js:834
- throw err;
- ^
- Error: Cannot find module 'D:HarmonyOSWorkspace%UPLOAD_SCRIPT%'
- at Function.Module._resolveFilename (internal/modules/cjs/loader.js:831:15)
- at Function.Module._load (internal/modules/cjs/loader.js:687:27)
- at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:60:12)
- at internal/main/run_main_module.js:17:47 {
- code: 'MODULE_NOT_FOUND',
- requireStack: []
- }
- The terminal process "C:WINDOWSSystem32WindowsPowerShellv1.0powershell.exe -Command hpm run 'upload'" terminated with exit code: 1.
复制代码
用文本编辑器打开文件C:Users用户名.hpmhpmrc
可能显示如下,注意第二行,这里多了一个空行
- registry = https://hpm.harmonyos.com
- globalRepo = C:Usersdxb.hpmglobal
- strictSsl = true
- shellPath = C:WINDOWSsystem32cmd.exe
复制代码
删除掉其中多余的空行、保存、然后重新启动IDE。