分享

「话说嵌入式」攀上JavaScript大树之Espruino On STM32

 昵称38434767 2020-04-22
 本帖最后由 slotg 于 2017-12-26 15:42 编辑

都说搞嵌入式不如搞互联网,工资高,前途好,很光鲜!嵌入式呢不管是单片机还是嵌入式Linux,永远都是在默默地藏在幕后,低调得令人发指。就像是如火如荼的Android上,嵌入式也就搞搞驱动,搞一搞BSP,吃力却并不讨好。


相比直接使用高级语言,学习嵌入式更容易理解从芯片到产品产生的过程,今天呢阿圆就带大家撩一撩现在火得不行的JavaScript(好像现在在前端大家也不直接写JavaScript了,开始写TypeScript,阿圆表示,要跟上互联网发展的节奏还是得努力一点),今天的主角就是开源的嵌入式JavaScript解释器—Espruino.


Espruino除了支持Espruino自己开发的开发板外(其实也是STM32),还支持芯片为STM32F1/F4系列的其它厂商的开发板,还包括ESP8266,ESP32等。像是STM32F1系列STM32,基本人手一个吧!像阿圆手上就有自己打样出来的STM32F103RBT6开发板。不过如果使用自己的开发板就要看自己开发板的硬件支持不支持Espruino里提供的接口了,比如SD卡,WIFI,LED,Button等。


好了,打开Espruino的官网,

http://www.


根据官网的描述



可以发现OLIMEXINO-STM32使用的就是STM32F103RB的单片机,呆会我们就只要下这个单片机的binary烧录即可。


找到Espruino的官网,下载最新的Release v1.94,阿圆己经替大家找好下载链接啦

http://www./files/espruino_1v94.zip

关于烧录,如果用的是ST-Link V2那是比较简单,只要去官网下载最新的ST-Link Uitility就可以了

http://www./zh/development-tools/stsw-link004.html

阿圆用的是J-Link烧录起来还有点麻烦

首先要打开J-Link的 J-Flash,新建一个工程

然后在Options里打开Project Settings

点击Target Interface选择好烧录方式



在CPU里选择Device,再选择好所使用的STM32



设置好后点击Target Connect进行连接,如果连接成功会有提示。

打开File->Open Data File 选择espruino_1v94_olimexino_stm32.bin然后进行烧录即可。

烧录完后复位下正常就可以啦!


默认的Espruino使用的是STM32的USART1,波特率为9600 8N1


一切正常就可以进行到Espruino的Console啦

支持简单的Math库,字符串的拼接也是没有问题,再验证下函数的调用,也还不错,基本语法都是支持的。



让我们来试下复杂一点的JavaScript例子,尝试在Console不断地输出true/false




开始运行toggle函数,确实有按500ms的间隔打出来



如果想改变间隔可以用下面的命令

changeInterval(i, 200)

如果需要停止则执行下面的命令

clearInterval(i)

如果将演示用的print换成温度读取呀或者是传输数据到服务器,那就很有意义了。


用JavaScript搞单片机确实有点意思嘛~默认的Espruino内建函数也非常丰富,如以下

  • ·function acceleration()

  • ·function analogRead(pin)

  • ·function analogWrite(pin, value, options)

  • ·variable arguments

  • ·function atob(binaryData)

  • ·function btoa(binaryData)

  • ·function changeInterval(id, time)

  • ·function clearInterval(id)

  • ·function clearTimeout(id)

  • ·function clearWatch(id)

  • ·function compass()

  • ·function decodeURIComponent(str)

  • ·function digitalPulse(pin, value, time)

  • ·function digitalRead(pin)

  • ·function digitalWrite(pin, value)

  • ·function dump()


等等,还有许多没有列出来,队了自带的一些库,Espruino还支持使用require进行库的扩展,不过呢阿圆用的是自己的开发板,不能直接使用库函数。其支持的库函数还包括伺服电机控制,WIFI控制,SD卡文件系统,LCD显示屏等等,大家可以去购买一块官方的开发板来玩一玩或者根据现有的硬件对Espruino进行编译也未尝不可,因为他是完全免费开源的。不过一点要注意,销售出去的板子上默认是不能带Espruino的,记住了哟!


借此机会做嵌入式的小伙伴们也可以借机学习下JavaScript,同时呢还可以再了解下JavaScript是怎么跑起来的,是不是很不错?欢迎点选收藏关注!


转载原帖:http://www./internet/internet_233724.html


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多