中易网

Arduino为什么只有loop和setup函数,揭开Arduino的神秘面纱

答案:2  悬赏:80  
解决时间 2021-02-27 07:36
Arduino为什么只有loop和setup函数,揭开Arduino的神秘面纱
最佳答案
arduino标准程序必须包含setup函数和loop函数,loop函数其实是一个循环,因为这个程序很简单没循环做的事情,所以循环函数为空,但必须要保留,这是arduino的语法规范。
全部回答
arduino工程源码分析 本次分析基于arduino 1.0.6 一、我相信大家第一次打开一个arduino例子的时候,肯定跟我一样,有一种疑惑, 按以往经验,一般会有一个main函数,可是这里却只有一个loop()函数和setup()函数, 为什么呢???????? 看到这里,没有main函数怎么运行下去。。。。。。。。。。。。。。。。。。? 运行机制是怎么样?? 一系列问题。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 然后咱们揭开它神秘的面纱----- 首先大家可以用代码浏览神器source insight来建立一个工程,方便查看 明确自己arduino的安装目录,这里我的是d:\program files\arduino 建立工程后添加源码d:\program files\arduino\hardware\arduino\cores\arduino ok!!!建立工程完成后,开始分析--------- 在工程浏览搜索mian 看到出现main.cpp 看到上面代码 , 是不是恍然大悟了~_~ 这里告诉大家,为什么arduino里面的loop()函数是执行完一次,再执行,也就是无限次执行loop,for循环,大家都知道 如果大家想要只执行一次loop()的话,可以考虑来个while(1) 继续。。。。。。。。。 看到mian函数里面的init()没有,跟进去,一探究竟 里面第一句注释:这个函数必须在setup之前执行,否则很多功能将无法工作 这个初始化函数里面sei().打开所有的中断什么的,还有其他就是些寄存器初始化 回到mian函数往下看 _attribute_的weak属性,这里的作用是弱符号:若两个或两个以上全局符号(函数或变量名)名字一样,而其中之一声明为weak symbol(弱符号),则这些全局符号不会引发重定义错误。链接器会忽略弱符号,去使用普通的全局符号来解析所有对这些符号的引用,但当普通的全局符号不可用时,链接器会使用弱符号。 也就是防止定义的一样产生冲突。 继续往下是usb功能的使能usbdevice.attch() 然后是for循环里面的串口 二、看完后知道了运行机制了吧 看下面的点灯程序 跟进pinmode()函数,基本上都是寄存器和另一些函数的操作 跟进digitalwrite()函数,还是寄存器和另一些函数的一些操作 终于明白,原来arduino只是把底层封装了,让新手远离寄存器的复杂操作
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
金海内衣在什么地方啊,我要过去处理事情
WOW逃离吉尔尼斯废墟任务放弃后找不到接任务
外地学生去金华芙蓉外国语学校有什么要求
中企动力科技股份有限公司汕头分公司怎么样?
苏大车辆工程专业正常毕业生都去哪里工作 工
河南太阳花生态农业有限公司地址在什么地方,
今年江苏理科293分能上什么学校
外地(省)的焊工操作证,在厦门可以年检吗?
vivox6如何设置自己制作的铃声
Volunteer experiences often put you in a d
点刷和瑞银信是一个公司的吗
绝味鸭脖长武店我想知道这个在什么地方
快递日结工作都干些什么?累么?
三友小厨在哪里啊,我有事要去这个地方
在韩68一1人员回国几年可以解除不良纪录?
推荐资讯
树木移栽多长时间可以生根
我大学交了个男朋友,男朋友家买不起房子,妈
诺基亚红白相间滑盖的那部手机是什么型号啊
江铃宝典超值版的493发动机是不是五十铃的4JB
格力NO.川A10002在什么地方啊,我要过去处理
空间好友亲密度是什么意思?比方我对一个好友
接吻舌头麻了
沈阳 大型家居有哪些 像宜家这类的
无线座机电话能否装拨号上网
南京盛景华庭南苑生活服务中心这个地址在什么
汽车仪表盘上的ibs是什么意思
兴泰家装1站怎么去啊,有知道地址的么
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?