多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] > # 说明 有时候设计会使用`arduino`辅助FPGA进行开发,习惯了`linux`的命令行模式,更习惯了`fish`自动命令填充的快捷和配置的方便,所以研究了一下在cygwin坏境下使用命令行下载`qrduino`代码到开发板。 > # 配置说明 ## 工具准备 * arduino工具windows版本 * cygwin(需要安装好fish解释器) * vscode (作为代码编辑器-可以不需要) **1.cygwin环境安装** [windows安装cygwin运行linux指令](https://www.kancloud.cn/dlover/note/1848680) **2.安装arduino和vscode** 注意安装`arduino`后将安装路径添加到环境变量,或者添加到cygwin的环境变量中,如果只在fish中配置环境变量,可以在`fish`的`config.fish`文件中添加填以下代码: ``` set -x PATH $PATH /cygdrive/D/yhpsoft/arduino/arduino-1.8.1/ #arduino路径 ``` 如果想要配置一次后在cygwin环境所有shell下都可以使用,可以将路径添加到windows的环境变量中,或者在`cygwin的根目录/etc/profile`文件中配置,如下: ```bash PATH=$PATH:/cygdrive/D/yhpsoft/arduino/arduino-1.8.1/ #在cygwin的profile中配置ardunio环境变量 fish #将启动的中断解释器切换到 fish ,相当于配置启动cygwin的默认解释器 ``` ## 配置vscode 为了实现在`windows`环境下使用`cygwin`的终端解释器,需要进行简单的配置。 **1.首先打开文件设置,搜索框搜索term,选定终端,配置windows下的shell路径** ![](https://img.kancloud.cn/d7/be/d7bec6e2cabad46b44611fe4e771c891_1848x782.png) 将`fish`解释器的路径填入,这里的`fish`解释器是`cygwin`下的,请先按工具准备中的说明安装好该环境! ![](https://img.kancloud.cn/86/f9/86f9d7a6e7a23d77aac9df690778c6f6_1015x546.png) 根据自己的fish安装路径来! **2. 其他的配置和1的方式类似,但是为方便我们可以直接在1的settings.json文件中直接配置** ![](https://img.kancloud.cn/72/8a/728aa8c9d60559fcf7588b5830987516_1253x473.png) 为了之后配置放方便,直接在此记下这个文件! ```json { "python.pythonPath": "D:\\cygwin64\\bin\\python3.8.exe", "explorer.confirmDelete": false, "terminal.integrated.shell.windows": "D:\\cygwin64\\bin\\fish.exe", "files.autoSave": "onFocusChange", "files.autoGuessEncoding": true, "editor.mouseWheelZoom": true, "files.associations": { }, "markdown-image.coding.path": "./image", "qiniu.localPath": "${Root}/image", "files.exclude": { "**/.*": true }, "arduino.commandPath": "D:\\yhpsoft\\arduino\\arduino-1.8.1" } ``` 配置好后我们打开vscode下的终端,样子就是这样的了! ![](https://img.kancloud.cn/54/0a/540afbe7875c9047088b130dff67cd91_1545x281.png) ## 编写一段程序测试一下 ![](https://img.kancloud.cn/5d/ee/5dee0be7a87b66bf04512fe702c027b5_442x643.png) 将下面的代码拷贝到`main.ino`文件 ```c++ int potpin=0;//指定模拟端口A0 int ledpin=13;//指定LED端口 13 int val=0;//声明临时变量 float v=0; void setup() { pinMode(ledpin,OUTPUT);//设置端口13为输出模式 Serial.begin(115200);//设置串口波特率为9600 } void loop() { digitalWrite(ledpin,HIGH);//拉高端口13,LED点亮 delay(1000);//延时0.05秒 digitalWrite(ledpin,LOW);//拉低端口13,关闭LED delay(1000);//延时0.05 秒 val=analogRead(potpin);//读取A0口的电压值并赋值到val v=5.0/1023*val; Serial.println(v);//串口发送val值 } ``` 连接UNO开发板,然在vscode的终端使用命令向开发板上载程序! ``` heer@FPGA-Use ~/ardunio-demo [1]# arduino_debug --board arduino:avr:uno --port COM29 --upload ./template/main.ino ``` 操作成功会显示: ``` DPI detection failed, fallback to 96 dpi 正在加载配置... 正在初始化包... 正在准备开发板... 正在验证... 项目使用了 3492 字节,占用了 (10%) 程序存储空间。最大为 32256 字节。 全局变量使用了204字节,(9%)的动态内存,余留1844字节局部变量。最大为2048字节。 上传... ``` ![](https://img.kancloud.cn/4e/2b/4e2b0cc43839a75755da75cfab242af7_1548x274.png) 稍微解释一下命令:![](https://img.kancloud.cn/66/8a/668a56ad9742fbf8e0643876aa372a4f_1276x412.png)