• 已解决 33890 个问题
  • 已帮助 5814 位优秀工程师

【问丨道】一周优质问答 2019/11W4 总第18期

电子芯吧客 2019-11-28 浏览量:4222

ESP8266STM32小系统板等免费送!点击领取https://www.icxbk.com/ask/detail/31744.html

        让我们一起来看看上周的优质回答吧!

1Q: 12V电机正负极是否要接续流二极管?

很多人说电机断电会产生一个反向高压,因此需要接二极管保护电机

  提问人mingming

 

A:

   这个也不完全正确。

   如果你的电机只按照一个方向转动,那么,加这么一个二极管可以有效放置电机突然停止的时候,产生反向电动势。这个二极管可以提供一个反向电流的释放通道。

   但是如果你的电机是正向和反向都要运动,这个就需要特殊的电路才行,市面上有那种反向电压的抑制模块。


答题人:川楠

 

https://www.icxbk.com/ask/detail/33286.html

2Q: 单片机可以控制针脚为什么一般cpu不可以?

                                                                                                                                 提问人:bfe3bae07c474650

   A:

  这个和架构没有什么因果关系的

  MCU  CPU都可以直接控制IO啊,即使是超级计算机也能独立使用某一个IO高低电平啊,这不是芯片的基本操作吗!但是CPU能做更“高级”的事情,所以控制某个IO就不是一种值得用来吹嘘的事情了!

  打个比方,狗能分辨人话做出不同的动作,人也可以听懂人话做出不同的动作。但是狗听话是值得吹嘘的事,人听话就会被说傻,因为人更聪明,这是应该的,并且人可以做更高级的事情!

 

答题人:米饭米饭吖

 

 

https://www.icxbk.com/ask/detail/33259.html

3Q: 哪位大神能科普一下分拣传送带的控制的原理机制?

                   提问人frappe

 

   A:

     这个看需要分拣的是规范的还是不规范的,如果是规范的(大小差不多的),则想多说要简单一点,因为走带速度是匀速的,扫描位置和投递间距离就 是确定的,这样周到合适的位置(因为条码在物品上,可以确定一个最大物品分拣取,保证物品在合适的时间绝对唯一在上面来方便投递)。

     如果不是,其实也可以按类似的处理,就是确定一个合适的均匀物件区域,在这个区域中物件只有一个,这样可以以此来定位投递分拣范围。


   答题人:xdsnet

 

 https://www.icxbk.com/ask/detail/33300.html

4Q: HAL库函数版本和库函数版本、寄存器版本之间是什么关系?

                                                                                                     提问人:0ff23a3c967f6c7e

 

   A:

最原始的操作芯片的方式是:直接操作地址,在地址的基础上,芯片厂家一般都会封装一层寄存器,寄存器本质就是基地址+偏移地址的形势来进行封装,方便用户操作。然而使用寄存器方便了操作,即使是寄存器的名字起得比较通俗易懂,但碰到比较复杂的功能,要同时操作好多个寄存器配合,才能使用这个功能的话,寄存器就又有些麻烦了,于是就诞生了库,最开始ST推出的是标准库,也就是你所说的库函数版本,库的出现就大大简化了配置过程,让用户可以更快进行配置,只需要学习用那个函数就可以了,而且库函数的名字可以起得非常直接,按照功能起名字就可以。

在近年来,ST专注于把生态做好,也就是说整个ST芯片的生态环境,为了提高可移植性,以及方便用户更加脱离硬件,更专注与软件开发,HAL库与CUBEMX应运而生,用户可以通过CUBEMX软件来直接进行图形化的配置,然后直接生成HAL库的程序,大大简化了芯片的初始化过程。当然,HAL库的臃肿也是无可避免的,因为HAL库首先的目标就是可移植性与脱离硬件,因此HAL库在一些地方上会比标准库更多一层封装,比如中断回调函数,HAL库把同类型的中断都全部归类到一起,调用一个回调函数,也就是又多了一层封装。

由于HAL库的臃肿,ST又想办法开发了LL库,在CUBEMX5.0以上版本已经可以直接选择HAL库或者LL库,LL库的操作更加接近寄存器操作,而且与HAL库是可以同时存在的。当然HAL库与LL库还是有bug的,HAL经过这么多版本的更新,bug已经稍微少了点,LL库还是有待完善的。

目前,ST已经明说了,以后不会再更新标准库,专注于HAL库,CUBEMX,因此,如果后续会经常使用ST的芯片,HAL库是有必要熟悉一下的。

说到这,应该就会明白,在代码的执行效率上大致是这样的,直接操作地址无疑是最快的,其次是寄存器操作,其次是LL库操作,然后是标准库,然后是HAL库。

针对于开发效率与执行效率,当然也是可以兼得的,HAL库的优势在于可以使用CUBEMX进行图形化配置,那么用这个进行功能初始化操作就会很快,很方便,在程序功能实现方面,使用寄存器或LL库,程序执行效率会更高,不过LL库还不是很完善,慎用吧  

  

       答题人:KVIN

  

 

 https://www.icxbk.com/ask/detail/33152.html

 

 

欢迎大家遇到问题添加芯吧客讨论Q 群:261316471多多骚扰管理员,大家一起学习进步!

 

   我们对优质内容的定义,不只是在专业知识中有很深的研究,也包含着有创新、扩展性、对普通甚至入门层次用户有启发引导等的问答讨论。

【往期内容看这里!】一周优质问答集合贴

https://www.icxbk.com/ask/detail/30859.html

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
所有亮答 数量:15
  • 我不会骚扰管理员的,真的,假管都有主了,骚扰什么丫,还是我的镏镏漂亮

  • 在标准模式(流水线规范标准有物品标准<需要一个标准的度量仪器>下按照定制的标准执行。

    在非标准模式(抛弃物品标准<重量、尺寸、属性>)下,按照需求(对标准的更多抽象)定制分拣原理,这部分就需要辅助设备(传感器)配合需求程序代码实现。

xdsnet 回复了 53007fce63fa9a72:其实不必这样,虽然大多数时候是非标模式,比如飞机安检分配,但有一个上限尺寸,这个就可以作为一个标准啦,超标的走单独的通道(分配流程)就好。这样可以很好的简化设计。 回复

  • 学习一下优秀的回答,提高答题质量

【问丨道】一周优质问答 2019/11W4 总第18期