单片机除了可以用汇编和c语言编程,还有其他什么编程语言吗
除了C和汇编,超子还接触过使用Arduino、Labview、Python以及Lua对单片机进行程序开发。不过这些相对比较小众,没有普适性。
Arduino应该算是一种对C和C++语言高度延伸的特有编程语言吧,因为其核心库是基于C和C++混合编写而成,提供给用户高度封装过的API接口。
其通常只针对于特定的Arduino环境的硬件开发板,通常是ATMEL公司的ATMEGA系列的8位或是32位的单片机。还有就是ESP8266也可以使用Arduino进行开发。
LabVIEW是由美国国家仪器(NI)公司研制开发的一种编程语言。它不同于C这种基于文本的编程语言,而是采用图形化编辑语言G编写程序。通过拖动控件,使用连接线连接各个控件,所有的数据都要基于数据流的模式。
使用LabVIEW可以对STM32单片机进行编程,当然这种方式还是比较小众,适合有一定Labview基础的人群。
现在主要还是c语言和汇编语言,这两个是当前底层系统必须的。未来可能会出现新的语言,现在也有在单片机上跑Python解释器然后用Python编写应用程序的,如micropython。也有JavaScript虚拟机的,然后使用JavaScript编写应用。这两个在单片机软件开发中还没成气候。
以一个业内近15年工作经验的人来解答:单片机派系众多,美系、日系、韩系、台系,还有现在的大陆系,各家使用的IDE各不相同。
对于非公版MCU来说,只有原厂对自家底层最熟悉,各种指令架构各种坑,只有自家的编译器才能正确解释,当然自家的汇编指令集是最高效的,各种停产各种升级,想要移植换片子,想起来就头大!
对于公版的如8051、ARM架构,繁衍出很多能够适配的第三方编译环境,如Keil、IAR等,使用C语言编辑,能够完全不用理会各种“bit宽度、BANK、Page”,不太了解指令架构也可以越过各种沟各种坑!
只要给的起钱,这些第三方的编译器都会尽量满足你,想要用什么语言来写,只要你高兴就好。未来Python、JavaScript流行开来,这些也能免费适配。
总之不管用什么语言来编辑,能够简单高效的解析出硬件需求,实现产品所规划的功能才是一个程序员的价值所在。