Starting with ESP8266(3) — Touch to control Relay-Programming & PCB design

ESP8266 SDK开发入坑3 — 触摸控制继电器通断-软件、PCB制作

Brief:  Here I will show the code developing with the ESP8266 NONOS SDK. Mainly about how to config the GPIO Pins and choose their functions correctly when initializing, and how to deal with the GPIO interruption in the handler.

入坑1】http://www.straka.cn/blog/starting-with-esp8266-light-a-led/

入坑2】http://www.straka.cn/blog/starting-with-esp8266-touch-relay/

里简单说了下软件,这里还是贴上代码

其实就这一个文件,写完感觉比较简单,但是没写的时候也是困惑的很,反复看了代码和官方文档才慢慢明白。

尤其开始不是很习惯官方搞了这么这么这么多的宏还不怎么解释清楚,一下子没看明白,思维没有跟上,比如GPIO相关的宏就很多,PIN_FUNC_SELECT这个宏,开始的时候怎么都没想明白是干啥的,同一个GPIO有多种引用方式,GPIO_ID_PN(*),PERIPHS_IO_MUX_****_U,而层层溯源才能看到这些宏的真正含义,其中GPIO_ID_PIN 是通过GPIO标号(注意不是引脚号)得到对应的GPIO,,,ID?,反正宏定义这个转换不明白啥意思,名字上也看不出来

还有这些定义在eagle_soc.h里,

PIN_FUNC_SELECT宏:

就是根据PIN_NAME选择GPIO功能寄存器PERIPHS_IO_MUX对应于该管脚的寄存器字节,而用FUNC选择对应字节的位,具体宏实现就是根据FUNC将对应位清除并置位。而do{}while(0)是常用的宏代码的隔离方法,防止宏代码被误用导致出错。

所以呢,PIN_FUNC_SELECT宏的参数 PIN_NAME 和 FUNC也并不一定要对应,只需要FUNC所代表的值是对应的就行。

类似的很多宏都只能慢慢去啃代码了,我是啃不下了,就做个探路者看看罢了。

写完代码自然是画PCB了???。。。心太急,刚学PCB画板还比较兴奋,还没测试就先把板子拿去打样了,结果提交完就发现画的有问题,没办法了。。。。

等板子期间烧录然后在面包板上测试,结果又发现了上篇说的选型上的小问题。

自己还是默默的焊上了错的板子。

本来应该是这样

结果只能这么用:

恩,主要问题就是一时兴奋,覆了个铜,导致220AC的安全电气距离、爬电距离不够了。。。

不过当低压电路使还是没问题的。

话说有没有需要的。。。板子打样有多的。。。联系邮箱straka@qq.com

 

发表评论