Arduino命令(zhuang)行(B)开发方法-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 15349|回复: 15

Arduino命令(zhuang)行(B)开发方法

[复制链接]
发表于 2016-8-2 21:23 | 显示全部楼层 |阅读模式
对大数人而言,开发Arduino的时候都会在Arduino的IDE中编辑,编译,烧写;有些专业的可能会使用Atmel Studio这类IDE;也有些习惯了以往的IDE或者编辑器的朋友会使用Visual Stduio或者Sublime Text这些通过安装插件的方法来开发Arduino;当然也会有一些“装逼”的,通过命令行来开发Arduino(就像我在C语言上机的时候不用VC6++用gcc一样= =)...


设置环境变量

既然是命令行,首先我们就要把arduino这个命令设置到环境变量里,这样才能在所有的位置都是用arduino这个命令了。

windows左下角的标志右键单击,选择系统,然后找到高级系统设置;
1.png
最下面的环境变量

2.png

找到一个PATH变量,然后选择编辑...

3.png
在变量值一栏加上一个英文分号之后,加上你的arduino目录(类似于D:\Projects\Tools\arduino-1.6.9-windows\arduino-1.6.9)

4.png

然后确定,确定就行了

然后windows+R,输入cmd回车,打开命令提示符(也就是黑框),敲入arduino回车,就会打开arduino的IDE了,也就是说设置成功了。(有些电脑可能需要重启之后才能生效环境变量,如果重启也不行的话,那就再看看上面的步骤有没有漏下的)

5.png

几种命令用法

可以实现打开文件,编译,烧写,安装库文件等操作

[mw_shl_code=cpp,true]arduino [FILE.ino…​]

arduino [--verify|--upload] [--board package:arch:board[:parameters]] [--port portname] [--pref name=value] [-v|--verbose] [--preserve-temp-files] [FILE.ino]

arduino [--get-pref [preference]]

arduino [--install-boards package name:platform architecture[:version]]

arduino [--install-library library name[:version][,library name[:version],library name[:version]][/mw_shl_code]

在windows环境下,如果没有任何参数,在cmd命令提示符里面敲arduino加回车就会和常规的打开IDE窗口的效果,同时这种命令行方法在windows下有个问题,使用arduino这个命令的话,会触发他的GUI界面,即使是只想arduino --verify Blink.ino也会出现那个IDE初始化界面闪一下,而且命令提示符界面里什么反馈都没有,这里就要用到arduino_debug这个同样在arduino的安装目录里的exe文件,使用它就不会出现GUI闪过,而且会有很多正常的编译或者烧写反馈。

这里我还是使用最简单的Blink来做演示。

[mw_shl_code=c,true]arduino [FILE.ino…​][/mw_shl_code]
arduino后面加一个文件名的参数,就是打开IDE并打开这个文件,这在arduino命令行开发中没什么用处。。

[mw_shl_code=cpp,true]arduino_debug [--verify] [FILE.ino][/mw_shl_code]

编译这个ino文件,例如
[mw_shl_code=cpp,true]arduino_debug --verify Blink.ino[/mw_shl_code]

6.png

假如我语法有点小错误,就会直接在下面提示出来。
7.png
[mw_shl_code=cpp,true]arduino_debug [--upload] [FILE.ino][/mw_shl_code]

编译并上传,开发板和串口默认是上次的选择


比较通用常规的用法
[mw_shl_code=cpp,true]arduino_debug --board arduino:avr:uno:cpu --port COM5 --upload Blink.ino[/mw_shl_code]

选择板子,串口和相应的文件来编译烧写
8.png


这么一来我们就完全可以用自己喜欢的编辑器来写arduino代码,然后用命令行提示符来进行相应的编译烧写,达到我们的装B效果。

比如我用习惯的sublimetext3来开发arduino,这个编辑器虽然有人写过arduino的插件,但是我不喜欢用(其实是想自己写),有了上面的方法之后,sublimetext有一个build机制,如图新建build文件,

屏幕截图(20).png

输入以下代码

9.png
[mw_shl_code=javascript,true]
{
        "cmd": ["arduino_debug", "--upload","$file"],
        "selector": "source.arduino",
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
}[/mw_shl_code]

保存之后,在sublimetext里编辑arduino文件时,就能通过按ctrl+B来直接上传了。


参考资料:https://github.com/arduino/Arduino/blob/master/build/shared/manpage.adoc

发表于 2016-12-28 13:08 | 显示全部楼层
本帖最后由 2806880 于 2016-12-28 13:10 编辑

你好,我是一个小白,看到你的文章后还是有好多不明白的地方,网上相关资料太少了,无奈只能在这里向你询问。

“--board arduino:avr:uno:cpu ” 这句“arduino”指的是库文件吗?如果需要加载第三方库应该如何做?

“avr”是指平台吗?如果是不常用的板卡平台是要更换这句吗?我如何得知“arduino”支持哪些平台?

“uno”是板卡型号吧?感觉是对应“arduino-1.6.11\hardware\arduino\avr\boards.txt”中的“uno.name=Arduino/Genuino Uno” 可以知道板卡的简写名称。但是我将“uno”替换成“nano”时编译出现了错误“avr-g++: error: missing device or architecture after '-mmcu=' exit status 1
为开发板 Arduino nano 编译时出错。”

“cpu”这句只要加上就出错提示我“cpu:选项错误,应该为 name=value 形式”
 楼主| 发表于 2016-12-28 13:31 | 显示全部楼层
2806880 发表于 2016-12-28 13:08
你好,我是一个小白,看到你的文章后还是有好多不明白的地方,网上相关资料太少了,无奈只能在这里向你询问 ...

不好意思,是我没有在帖子里说清楚
--board 后面的参数指定的是板子型号,因为现在有越来越多的板子开始支持Arduino的开发方式和语法,比如esp8266和Intel Edison,假如你使用过开发板管理器的话,就知道我的意思。
所以使用其他板子的时候,就要修改这个相应的参数,以你的这里的nano和官方例程中的Blink.ino为例:
arduino --verify --board arduino:avr:nano:cpu=atmega328 Blink.ino
这句语法是正确的,我在我的电脑上是运行成功的,那么怎么知道怎么写这个语法呢。
首先参考帖子正文最下面的那个github参考资料,其次关于板卡的信息就是你所说的boards.txt文件,期中这个文件本身的路径包含了很多信息,arduino是package参数,avr是arch参数,然后的nano是avr这一系列的board型号,指定cpu是因为官方支持两种cpu的nano,所以我们需要指定cpu=atmega328
希望对你有所帮助
发表于 2016-12-28 15:17 | 显示全部楼层
楼主的回复速度让人惊讶,没想到Arduino中文社区有这样良好的交流氛围

使用“ --board arduino:avr:nano:cpu=atmega328”编译通过了。
查看了“https://github.com/arduino/Arduino/blob/master/build/shared/manpage.adoc”
感觉编译时的参数设置还是交给arduino IDE 比较方便,自己使用“ --verify ”与“ --upload ”就能应付我现在的问题了。

谢谢你,你帮我解决了一个大问题!
 楼主| 发表于 2016-12-28 15:31 | 显示全部楼层
2806880 发表于 2016-12-28 15:17
楼主的回复速度让人惊讶,没想到Arduino中文社区有这样良好的交流氛围

使用“ --board arduino:avr:nano:c ...

论坛新开了邮件提醒功能  ,所以回复快了点

觉得有帮助的话 可以给我打赏呢
发表于 2017-1-10 06:27 | 显示全部楼层
吹口琴的钢铁侠 发表于 2016-12-28 15:31
论坛新开了邮件提醒功能  ,所以回复快了点

觉得有帮助的话 可以给我打赏呢 ...

我竟然不能使用打赏功能Σ( ° △ °|||)︴
发表于 2017-3-19 23:12 | 显示全部楼层
实在不明白cpu型号到底如何更改?Arduino/Genuino Mega or Mega 2560该怎么搞

 楼主| 发表于 2017-3-19 23:55 | 显示全部楼层
毒药哥哥 发表于 2017-3-19 23:12
实在不明白cpu型号到底如何更改?Arduino/Genuino Mega or Mega 2560该怎么搞

看一看这个文件可能就知道了arduino-1.6.11\hardware\arduino\avr\boards.txt
发表于 2017-3-20 08:10 来自手机 | 显示全部楼层
吹口琴的钢铁侠 发表于 2017-3-19 23:55
看一看这个文件可能就知道了arduino-1.6.11\hardware\arduino\avr\boards.txt

我更改了没有说cpu不对但是说
必须制定一个文件!什么意思?
 楼主| 发表于 2017-3-20 10:15 | 显示全部楼层
毒药哥哥 发表于 2017-3-20 08:10
我更改了没有说cpu不对但是说
必须制定一个文件!什么意思?

你能截个图或者发一下他的具体错误提示吗
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 11:58 , Processed in 0.084887 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表