这一节主要看下如何对ESP8266的程序进行编译和下载,首先打开 AiThinker_IDE.exe。如下图所示,咱们选中其中一个现有的工程文件进行编译:
工程选择:esp8266_helloworld,依次打开包含的文件夹:user,以及user下面的user_main.c文件。
这里的user_main.c文件,就相当于单片机工程里的main.c文件;而文件里的user_init(void)函数,就相当于单片机程序里的main函数。理解了这两点,剩下的就好理解了。
user_init(void)函数里面只包含了三行代码:第一行通过串口打印当前SDK的版本,第二行打印当前程序的编译时间。
第三行稍微麻烦一点,它是在注册系统初始化完成的回调函数。如果是搞单片机的,估计大部分是第一次听说回调函数。关于回调函数,这里摘抄一段网上讲的比较好的说明:
对普通函数的调用:
调用程序发出对普通函数的调用后,程序执行立即转向被调用函数执行,直到被调用函数执行完毕后,再返回调用程序继续执行。从发出调用的程序的角度看,这个过程为“调用-->等待被调用函数执行完毕-->继续执行”
对回调函数调用:
调用程序发出对回调函数的调用后,不等函数执行完毕,立即返回并继续执行。这样,调用程序和被调用函数同时在执行。当被调函数执行完毕后,被调函数会反过来调用某个事先指定函数,以通知调用程序:函数调用结束。这个过程称为回调(Callback),这正是回调函数名称的由来。
回调函数与普通函数的区别在于调用者不同。普通函数的调用是直接或者间接由main函数发起的。回调函数由系统发起调用,与main函数无关。
也就是说,官方提供的SDK,是内含一个系统的,