python单片编程,python编程单片机

dfnjsfkhak 28 0

大家好,今天小编关注到一个比较意思的话题,就是关于python单片编程问题,于是小编就整理了3个相关介绍Python单片编程的解答,让我们一起看看吧。

  1. 单片机执行python语言的程序吗?
  2. 单片机三大编程语言?
  3. JAVA、C、C++、Python同样是高级语言,为什么只有C和C++可以编写单片机程序?

单片机执行python语言程序吗?

单片机其实能执行的大概也是单片机本身能够执行的可执行文件,就像stm32,8051单片机可以执行HEX(16进制)文件一样,如果一个Python解释器能够解释成单片机能够认识并且可执行的文件时,那么Python是可以编写单片机程序的,同样也是可以控制硬件的,只不过现在已经有C语言可以编写此类文件了,所以很少人动手去编写此类解释器,或者编译器,因为编写解释器,或者编译器,还不如去学习C语言了,不过理论上是可以的

理论上可以,那是编译器的问题,编译器能够把他转为汇编就可以了,汇编再由单片机翻译成二进制,所有芯片最终处理命令都是二进制代码,0或1而已。所以说,你的单片机编译器支持这种写法的就可以,不过,就目前8位机市场没有这种编译器出现。

python单片编程,python编程单片机-第1张图片-芜湖力博教育咨询公司
图片来源网络,侵删)

单片机三大编程语言

单片机主流编程语言包括:汇编语言、C51、Python语言。

早期使用汇编语言比较多,现在最流行的C51,近几年开始出现使用Python语言。每种语言各有各的优点。

java、C、C++、Python同样是高级语言,为只有C和C++可以编写单片机程序?

并非不可以,而是芯片厂家没有提供底层支持。

python单片编程,python编程单片机-第2张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

例如Java程序的运行需要虚拟机来解释运行,如果厂家所设计的单片机,为其提供了虚拟机支持的话,就能运行JAVA编写的程序。同理Python也行。

但由于单片机对成本和效率要求较高,基于这些考虑,厂家一般都只提供C语言的支持(相关编译工具链、开发工具)

而稍微高阶一点,厂家为单片机提供了C++的工具链,支援了C++编程语言,所以这些芯片平台,也可以用C++来开发单片机程序

python单片编程,python编程单片机-第3张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

菜农从1981年开始就涉足与嵌入式领域的编程,开始是汇编语言和宏汇编语言,后来是C语言及C++语言,其他语言可能有,但很少且无大出路。

因为嵌入式领域的编程与硬件有关,特别是芯片里的中断向量函数指针,而C和C++被其他编程语言攻击和被抛弃的就是函数指针!

而嵌入式领域最需要的就是函数指针,它与结构和联合,可以构成“COM接口技术”,为芯片的中断向量或函数指针即地址加密

而其他编程语言大多没有函数指针,故无法满足嵌入式领域编程的特殊需要,故以后或永远不可能完全替代C或C++,除非他不想保护他的代码被篡改或产品的克隆。


单片机能否提供程序所需的运行环境决定了某种语言能否用于单片机程序的开发。单片机的总线宽度决定了单片机存储空间的大小。其中,拥有32位总线的单片机的存储空间可达4GB,装个Linux差不多可以跑各种程序了。这里我们只讨论总线宽度在16位以下的单片机。

单片机上没有I/O设备,只有I/O接口,程序要以机器码的形式随机存储器(就是PC的内存)。主流单片机的总线宽度一般是16位,比如,51单片机。存储器空间最大能做到64K。一些单片机的存储空间只有256个字节甚至更小。这么小的存储空间容不下操作系统,所以能在单片机上跑的程序都得是原生的机器码。C/C++都能直接编译成原生的机器码程序,因此,广泛用于单片机程序开发。J***a需要虚拟机,基本上不能在单片上运行(JVM有几百M)。Python可以编译成C语言的原生程序,有可能在单片机上运行。但是,Python的程序里一般都带着一庞大的标准库,简单移植到单片机上不太可行,需要做一些定制化改造才有可能。这类语言不能移植到单片机上的原因主要他们为了能在不同的操作系统上移植,使用了独立的运行环境,而这个环境的体量太大装不到单片机上。

最后科普一下高级语言的概念。机器码被称为第一代语言,汇编被称为第二代语言。其他语言都是高级语言。C/C++是第三代语言。J***a和Python被称为3.5代或者是第四代语言。主要是因为他们废除了内存操作指令。还有更高级的语言,SQL因为没有了变量[_a***_](准备内存空间)被称为第四代或第五代语言。

到此,以上就是小编对于python单片编程的问题就介绍到这了,希望介绍关于python单片编程的3点解答对大家有用

标签: 单片机 语言 C++