[转载] 点灯是个“大”项目!
555 查看
2 回复
 楼主 | 发布于 2018-11-20 | 只看楼主
分享到:

一说点灯,大家都不以为然,认为是一个最简单的GPIO外设控制例程,然而,在这一个小小的LED闪烁的背后,有着很多不为人知的秘密。


一、验证PCB制作正确性

这里出问题的可能性是比较小的,但是也会有个万一。

在PCB制作过程中,也会有很多问题,比如短路、断线等等。

本人就在某网上打样时,内层给我断了线,找了几天的问题才发现,是板子的问题。

虽然,点个灯,也只能是验证这部分的PCB,没有办法验证所有的PCB问题,但至少可以确定PCB的大体的质量。



二、验证电源正确性

电源这里是最主要的了,一般的单片机,你用个1117就可以了,这电路也简单,没有必要验证么?不然,你焊接就不会有问题么,就不会短路么?这些问题都是影响点灯的。有一个问题存在,你的灯就不会亮,或是不会闪。

对于复杂的电路或是芯片,上电的时序是有要求的,电源也不仅仅只有一路3.3V,而是5V、3.3V、1.8V、1.2V、1.0V的多路电源,这其中有一路出问题,你的灯也是点不起来的。还有可能把电路、芯片烧掉。


如下,就是一个要使用三路电源的芯片电源电路,使用了三路DCDC转换出三路电源。





以及一个芯片的上电时序图,可以看到,芯片的上电的时序还是很重要的,如果不是这个上电时序,那么芯片是无法正常工作的。当然,灯也是点不亮的。



三、验证主控芯片是否工作正常

主控芯片的工作,电源是前提,前面已经提到了。

还有就是芯片外设的电路,复位电路,是RC,是看门狗,是其他芯片控制,都要进行一一的验证,否则,芯片一直复位,怎么点灯?

芯片启动方式配置电路,是不是正确,上拉、下拉配置是不是正确。



四、配置开发环境

开发环境不仅仅是Keil、IAR这些,在Linxu的下的开发环境,要安装对应的gcc工具,配置依赖关系,配置并编译支持的函数库等等,当然是不同的芯片有不同的开发环境配置步骤与要求的。



五、搭建基本程序工程

这一节,不要跟我说什么STM32CubeMx,难道你这辈子只使用STM32么?

如果是STM32、51之类的,最多是启动文件,库文件两个方面,库文件中又有很多类,一一添加到工程中,配置好头文件路径,如果是DSP类的,还有要Memory的配置文件。这里只是工程建好了,能不能编译,有没有错,还要看下一步。如果是Linux下的,makefile,config之类的也不可少了。




六、代码开发工具配置与编译


如果是使用IDE,那么,不用说,点点鼠标就编译好了,但有时,也要进行一下配置吧。

比如仿真器配置,烧写算法,头文件路径等等。



在Linux下,就要使用gcc与makefile了,简单的,只有几个源文件的,可以手动使用gcc,要是比较庞大的工作,使用makefile是必然的了。




当以上的所有工作都是正常的情况下,恭喜你,你的LED可能会亮起来的了。为什么是可能而不是肯定呢,在电子开发过程中,总是会有一些很奇葩的bug,就是怕会遇到,所以,还是小心为妙。


所以,要点一个LED,所要做的工作是很多的,并不是几行代码就可以搞定的。如果你只是在一块现成的开发板上进行LED点灯,那么就不用管理那么多了。如果你点LED灯是在一个开发板上的一个例程中,那么还真就是几行代码了事儿了。

(0 ) (0 )
回复 举报

回复于 2018-11-21 沙发

这个好像重复了。
(0 )
评论 (0) 举报

回复于 2019-02-09 2#

谢谢分享
(0 )
评论 (0) 举报
  • 发表回复
    0/3000





    举报

    请选择举报类别

    • 广告垃圾
    • 违规内容
    • 恶意灌水
    • 重复发帖

    全部板块

    返回顶部