在过去的几十年中,单片机的规格变化不大,但是语言和支持软件的扩展为应用程序开发开辟了许多途径。多年来,对单片机进行编程涉及到两种语言的选择:C语言和汇编语言。但是随着现在可用于微处理器的新语言,用户在应用程序设计中面临更多选择。
单片机开发用哪种语言最好?
金沙js5线路单片机开发工程师表示,这个问题没有明确的答案,因为这取决于你正在处理的应用程序。
(1)C语言与汇编语言
在单片机可以使用新语言之前,可用的两个选择是C和Assembly。在深入探讨新语言之前,让我们简要地看一下它们。 即使C语言是在1970年代初期开发的,它也是一种流行的单片机语言。对于与单片机一起使用,C可以很好地运行,因为C具有处理内存分配的能力,同时还可以执行诸如if语句,循环和数学表达式之类的复杂功能。
汇编提供了C的替代方法,具有一些优点。汇编是一种较旧的语言,通常使用特定于设备的代码,并使用汇编程序实用程序对其进行转换。使用这种语言,用户可以直接访问CPU,在其中可以仔细调整例程以实现精确的计时应用。汇编提供了更好的CPU使用率,以及C不支持的其他指令集,例如使用特定的BIT指令进行位操作。
(2)MicroPython
Python是一种功能丰富的解释语言,以其简单,清晰和通用用途而着称。这些功能也使该语言对于微处理器来说太大了。但是,在2013年的Kickstarter活动的帮助下,物理学家Damien George能够将Python改编成适用于单片机的较小版本MicroPython。
MicroPython代码在MIT许可下是开源的。该语言使用标准Python库的一小部分在微处理器的裸机上运行。它只能使用256k的空间和16k的RAM进行操作,但是它被设计为与常规Python完全兼容。
它最初设计为可在基于ARM的系统上运行,包括BBC micro :bit,Adafruit Circuit Playground Express和MicroPython PyBoard,现在也可用于其他处理器,包括ESP8266和ESP32。
MicroPython在复杂项目的原型设计方面大放异彩。例如,在ESP8266上,可以通过几个简单的函数调用来创建IoT项目,以将MicroPython项目连接到本地Wi-Fi点,然后开始将信息流传输到MQTT代理。
(3)Blockly
Blockly是Google支持的开放源代码编程库,旨在通过使用拖放块使代码在视觉上具有逻辑性。
用户无需依赖正常对话中没有意义的单词和短语,而是将块放置到环境中并将它们连接在一起以定义程序的运行方式。例如,用户无需编写IF语句,而是将IF块拖到工作区中,并且将所得到的操作也拖到IF语句块内。
构建块后,用户可以使用多种语言(包括JavaScript,Python,PHP,Lua和Dart)导出其Blockly代码。Blockly系统的优点之一是几乎不可能发生错误(不是bug或错误,只是普通的旧错误),因为块需要特定的连接并且不允许不兼容的块进行连接。
尽管此编程方法可在包括Micro Bit和Adafruit Circuit Playground Express在内的许多平台上使用,但并非设计用于最终的商业产品。但是,它在原型设计阶段非常有用,尤其是在需要概念验证且学习设备详细信息会花费太长时间(例如寄存器,配置位和IDE配置)的情况下。
(4)Arduino C++
尽管将其称为“Arduino编程语言”,但Arduino实际上是使用良好的旧C++进行编程的,并使用特定于Arduino的库的子集。
Arduino C++与常规C++的区别包括单片机的通用例程,因为标准库C++函数无法在其有限的功能和内存上运行。使用这种较小版本的C++使该语言具有很高的可访问性,因为许多设计人员已经熟悉常规C++。实际上,通过使用编译器,代码可以用C++编写,然后解释为Arduino可用的代码。
使用Arduino C++的优势在于它适用于商业环境,比诸如Python之类的较大语言更快,并且具有高度可移植性。库使用通用函数自动处理最初为Uno在ARM内核上编译代码。
(5)BASIC
BASIC是一种语言,最早出现于60年代,随着80年代个人计算机的兴起而进入了鼎盛时期。由于其简单性和解释性,BASIC(初学者通用符号指令代码的首字母缩写)至今仍在使用,这使设计人员可以将更多的精力放在硬件上,而将精力放在软件上。
单片机上使用的BASIC的两个示例是PICAXE生产的并使用Microchip PIC单片机的BASIC Stamp(由Parallax生产)和PICAXE。BASIC是用于原型甚至硬件开发的好语言,但由于其速度慢和能耗低,在商业产品中应避免使用BASIC。
当在单片机上使用时,会解释BASIC,这会导致性能下降。但是,该语言的优势在于高度可移植。用BASIC编写的任何代码都可以在具有BASIC解释器的任何设备上使用。 过去使用单片机时,设计人员必须选择其首选平台,然后学习其使用的语言。随着语言和软件的发展,如今,语言可以决定设计师使用哪个平台。如果设计人员正在寻找特定功能,例如GPIO支持、网络,通过SSH进行通信的能力或其他,那么语言和系统的选择可能是寻找最佳开发路径的重要因素。
以上就是金沙js5线路单片机开发工程师分享的单片机开发用哪种语言的知识。金沙js5线路专注单片机应用方案设计与开发,提供8位单片机、16位单片机、32位单片机、运放芯片和模拟开关。