查看: 3998|回复: 4

Arduino程序main函数结构解析

[复制链接]
  • TA的每日心情
    奋斗
    2018-8-17 09:12
  • 签到天数: 47 天

    [LV.5]常住居民I

    发表于 2017-7-27 23:52 | 显示全部楼层 |阅读模式
    在进行Arduino开发时,没有像传统C/C++程序使用入口函数main。实际上main函数存在于Arduino核心库中,且仍然是程序的入口。在Arduino核心库中可见main.cpp文件,其内容如下:

    #include <Arduino.h> // Declared weak in Arduino.h to allow user redefinitions. int atexit(void (* /*func*/ )()) { return 0; } // Weak empty variant initialization function. // May be redefined by variant files. void initVariant() __attribute__((weak)); void initVariant() { } void setupUSB() __attribute__((weak)); void setupUSB() { } int main(void) {         init();         initVariant(); #if defined(USBCON)         USBDevice.attach(); #endif                 setup();         for (;;) {                 loop();                 if (serialEventRun) serialEventRun();         }         return 0; }

    通过以上程序可见,Arduino程序中编写的setup和loop函数,都在main函数中调用了。loop的循环执行,是通过for循环实现的,且每次loop结束后,都会进行串口事件判断,也正是因为这种设计,串口事件不能实时响应。


    如果以上内容对你有帮助,你可以通过打赏支持作者

    该用户从未签到

    发表于 2017-8-27 11:23 | 显示全部楼层
    399/1回复惨案
  • TA的每日心情
    开心
    2017-12-12 08:49
  • 签到天数: 20 天

    [LV.4]偶尔看看III

    发表于 2017-11-21 11:05 | 显示全部楼层
    谢谢,给新人解惑了
  • TA的每日心情
    郁闷
    2018-6-25 23:22
  • 签到天数: 39 天

    [LV.5]常住居民I

    发表于 2018-4-2 22:11 | 显示全部楼层
    谢谢,给新人解惑了
    高级模式  
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表