完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
8个回答
|
|
云汉达人
是靠寄存器来控制硬件动作的,寄存器其实就是个接口,根据传进来的参数再决定做什么工作。并不是只有C语言能控制,汇编、pascal等能编译成二进制的语言都可以控制。其他的高级语言、托管、解释性的语言,由于需要运行时库不能直接控制,而需要转义后才能控制。 |
|
|
|
云汉达人
C 语言应该算是高级语言,在使用单片机的C语言进行编程时,只是由于增强了程序的可读性,对于逻辑设计比较方便才使用C语言的,一开始学习51时,一定是学习的汇编的,而汇编也不是单片机可以识别的,单片机可以识别的是机器语言,而机器语言的执行又与单片机或是CPU的架构有关,同样的机器语言,在ARM、X86或是51上是不同的含义,大多数情况下是不能通用执行的。单片机C语言到机器码的过程就是编译了,一般使用集成IDE如Keil,或是使用gcc. java、python、go等等也可以控制硬件,但是其底层是C语言写的,这些高级语言只是在调用。 |
|
|
|
云汉达人
这个其实是通过 编译器来实现的 C语言并没有控制硬件的功能,编译器会把C语言编译成cpu可识别的汇编指令 cpu通过这些指令实现硬件的控制, cpu外部的ic都是通过时序电路或者组合电路来实现的,cpu控制器其IO输出输入 完成对外部IC 寄存器等操作 |
|
|
|
|
|
|
|
Java和Python也可以和底層溝通喔,只是多半都會包成Library並提供API使用,這好比Andorid中的HAL層一樣
而C/C++多半就是底層直接描述的語言,這是因為C提供了Pointer的這項強大的功能使得C/C++更直覺地可以和底層溝通 也因此眾多系統也從C/C++改寫,例如UNIX,方便移植到其他系統和硬體架構,提供了較佳的彈性 Java和Python的優點則是只需要安裝對應的直譯器,例如JVM,就可以完成跨平台的移植,所以各有優缺點 以上我的見解 |
|
|
|
这个只能说Java一类的是调用的底层的驱动,没有底层的驱动他也是什么都做不了的,如果你自己弄个51的底层驱动库,然后最后你也可以不用和硬件打交道了!不过51这类的不是那么的复杂不用底层了!直接驱动就可以了!我个人是这么理解的!所有的语言都是在开发环境下最后变成0和1的码。
|
|
|
|
云汉达人
有个本质区别,java必须运行在java虚拟机上,python是解释性语言,而控制硬件必须是编译成的二进制,确定的语言,而不是运行一句执行一句像python那样。 所以,换句话说,如果java,python要来控制硬件,必须是专门重新做的库,底层还是C,只不过语法是java和python的语法罢了,不能完全算是python,java,因为他们二者强大的功能完全丢失了 |
|
|
|
没有任何一种高级语言是可以直接控制硬件的,C也是编译成机器语言之后才可以的,其实任何语言都能够控制硬件
|
|
|
|
只有小组成员才能发言,加入小组>>
791 浏览 0 评论
1151 浏览 1 评论
2527 浏览 5 评论
2860 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2710 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1070浏览 3评论
193浏览 2评论
455浏览 2评论
368浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
453浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 14:18 , Processed in 1.193134 second(s), Total 91, Slave 72 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号