Arduino代码机制-main.cpp

打开ArduinoIDE,会看到只有setup和loop函数,还有几句注释,提示我们把运行一遍的程序放在setup中,把重复运行的部分放在loop中。但是,main函数呢?程序运行入口就是main函数,怎么可能没有main函数呢?

原来,Arduino将main函数写好了,放在main.cpp文件中。为什么不让用户自己写main函数呢?

main

在main函数中还做了一些重要的初始化工作,初始化之后有些函数才能正常工作,比如millis,PWM输出等。

int main(void)
{
    init();
    initVariant();

#if defined(USBCON)
    USBDevice.attach();
#endif

    setup();

    for (;;) {
        loop();
        if (serialEventRun) serialEventRun();
    }

    return 0;
}

进入main函数之后,先进行了两项初始化工作。init和initVariant。开发者将所有单片机共同的初始化部分放在init中,将不同型号单片机的初始化部分放在initVariant中,目前initVariant函数是空函数,是为以后可能的升级预留的。

init

init函数初始化了所有定时计数器,还初始化了AD转换模块,最后将串口0于bootloader断开,这样0,1号引脚能作为普通数字引脚使用。

init函数中代码量太多,还包含了大量的预编译命令来判断设备中是否有某个硬件,从而决定是否初始化。

在init函数中,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值