本期将介绍如何利用工具软件编写代码。

启动软件:





使用USB线连接HexRuino板,板上的LED1(绿色)灯会快速闪一下。此时,打开系统的设备管理器,可以看到多出一个USB串口设备:



在主界面中,点击左上角的连接图标:



可以看到软件会自动列出所有的串口设备,找到Espruino board对应的端口。



如果连接正常,会显示板子的信息:



主窗口右侧代码编辑区已经有一个默认的示例程序,让LED1闪动(500ms亮500ms灭),在此编辑区可以编写,修改,粘贴自己的代码。然后,点击主窗口中3处的按钮,将程序发送到HexRuino板上控制器中的RAM中运行。你应该可以看到HexRuino板上LED1开始闪动了。

在JS解释器窗口编程:

按照上节步骤,首先用USB线将HexRuino连接到PC机,打开Espruino IDE工具,点击左上角连接HexRuino开发板。

在主界面左侧的解释器窗口也可以直接输入命令或Javascript程序,所有在解释器窗口输入的命令或Javascript语句会被立即解释执行。比如,我们前面举得例子,在解释器中输入:"3+2"回车后会得到"=5"的结果。现在,在解释器窗口输入IO输出命令用来控制HexRuino板上的LED1的状态:



以及:




可以直观的看到HexRuino开发板上LED1的状态改变。这是单行语句的输入,下面我们要使用一个变量来记录当前LED1的状态,并且写一个名为toggle()的函数,每次调用这个函数,就会根据记录的状态,切换到另一个状态,如同电灯开关一样。程序源码如下:



显然,这里的函数定义并非单行语句,不过不用担心,JS解释器会自动识别这样的情况,不会去执行函数中的语句的:



可以看到,JS解释器在输入函数的第一行后,输入提示符更改为":",这意味着解释器知道你没有输入完成,等待你继续输入,现在将后续代码输入完成:



在我们输入完函数后,解释器返回的结果告诉我们这是一个函数function(){...}。现在就可以随时调用toggle()函数了,试验一下效果:



观察HexRuino板上的LED1的状态变化。如果输入没有错误的话,应该可以看到结果。接下来,创建一个周期定时器,每500ms调用一次这个toggle()函数,这样就能看到LED1不停的闪动了,源码很简单:




只要输入没有错误,就应该看到LED1每秒钟亮一次。现在,我们将定时器间隔改为200ms一次:



输入完上面的语句,可以立刻看到LED1的闪动频率加快了。那么如果我们想修改前面输入的toggle()函数怎么办?下面我们在toggle()函数中再增加一个LED2,让LED2的状态和LED1的状态正好相反,要想修改前面已经输入的函数,使用如下语句:




在解释器中,相关的函数被显示出来,并停留在未输入完成状态,使用方向键移动光标到要修改的地方进行修改,之后将光标移动到最后按回车键完成修改。



函数输入完成后,HexRuino板上LED灯的显示会立刻发生变化。这就是JS解释器的优点,程序的执行结果会立刻反应出来。

如果想停止闪动,则需要清除创建的周期定时器:



在解释器输入的程序都在RAM中,如果想清除之前输入过的所有内容,则键入:



这样,解释器就恢复到刚开启时的状态了。当然也可以打开快捷菜单,直接点选Reset命令。

请注意,我们在JS解释器中输入的所有内容都保存在RAM中,程序的执行也在RAM中,因此,只要HexRuino断电,就会全部丢失。如果,我们需要长久保存我们已经输入的程序,在每次上电时依然执行的话,可使用:




注意,这个save()命令是将当前的RAM中的所有内容(包括程序,数据,程序运行的状态,引脚的状态等)压缩打包成一个镜像文件保存到FLASH中,在每次上电后从FLASH将镜像恢复到RAM中继续运行因此,上电后恢复的程序运行状态总是save()命令执行时的运行状态,这类似于PC机的休眠模式。

如果想从FLASH中清除save()命令保存的镜像文件,则执行如下命令:



小技巧:

可将清除命令,在项目管理菜单中加入到快捷菜单中:



打开快捷菜单,点选刚加入的CleanSave命令:



执行结果:



关于HexRuino的保存代码的方法有两种,细讲起来牵扯的内容很多,将会在后续教程中单独讲解。