今年参加电赛,去年一年里学了 51,和stm32,对k210,openmv,esp32也接触了一些。加上今年电赛需要使用ti芯片。当时就跟着教程学习,但现在有了自己思考,而且网上搜索了好多新的概念还有app,感觉特别混乱。希望有人能帮忙解答
这几款有什么区别?(不讨论软件的操作方法)
同时,同一款app又可以用来开发多个芯片但为什么不能是所有芯片?(是这些芯片之间有什么联系,还是仅仅因为类似版权的问题)
用python开发openmv和用c开发stm32在流程上有什么不同?(为什么k210和openmv要给板子刷固件)
openmv,k210两者开发环境类似。
为什么这两款要用python开发,而不是c?
取决于其功能,功能上越处于上层越不适宜用底层语言写,比如简单功能你可以用汇编完成,复杂点就得用C了,再复杂点就JAVA,c#,
后面得没用过,就不清楚了
C语言是低级语言,不适用于做图像处理这些工作,效率不高,python是脚本语言,解释语言,高级语言,做神经网络 AI 等很方便,至于说用python开发单片机,这个跟IDE有关,IDE的编译器不支持python开发,而不支持的原因我想有可能是单片机内部容量限制了,脚本语言占用的资源要大于C/C++
【stm32,和msp430 原来都可以用好几款app开发(比如keil,ccs, iar,arduino,avr),那么为什么会有好几款?】
APP可还行,电脑上的一般叫IDE(集成开发环境)。
IDE这玩意帮你解决大部分开发上的问题,代码补全,debug,编译,打包仿真之类的,你要是足够硬核记事本也能写代码,然后手动编译呗,
【同时,同一款app又可以用来开发多个芯片但为什么不能是所有芯片?(是这些芯片之间有什么联系,还是仅仅因为类似版权的问题)】
芯片不同,功能,性能,各种体征都不一样,编出来的二进制码不能通用,人还有高矮胖搜之分,同一件衣服我穿得,你穿着大不合适,就是这么个道理
至于使用哪种语言那是编译器的事,有的只认C,有的只认汇编,有的只认python,有的认C#,有的是lua,无论什么语言,能编译出适合芯片的二进制码就能烧录进去,最终结果全是01机器码
比如80C51的0x000123是mov(我瞎写的)stm32f103zet6的0x000123是put(还是瞎写的)都是二进制码,意思不一样,当然不能通用
【用python开发openmv和用c开发stm32在流程上有什么不同?(为什么k210和openmv要给板子刷固件)】
至于这个,属于成品,有别人开发的代码,组装到板子上就能用那种,属于调用别人的类库,我用过一个luat的cat1的模块,就是属于这种二次开发的,
而stm32是需要你自己从头做起,自己写业务实现逻辑,简单的驱动led闪烁,红绿灯,复杂点的驱动屏幕播放视频,驱动TF卡,驱动USB之类的,这东西的板子设计,功能扩充,都是可以随意更改的,这是成品模块办不到的
app:因为他们是不同的厂家所以出的不一样,有官方的,也有专门做集成编译的如(keil)
python开发是因为快,你可以用c去开发,官方也有c开发的文档
k210刷固件就是人家开发好了一个库,你用python只是调用的人家的apl
你如果用c开发k210就跟开发stm32一样了