分享

请教开发Arduino与开发其他各类单片机的区别?

 zgclib 2013-10-20

请教开发Arduino与开发其他各类单片机的区别?

2012-10-25 13:39

为什么在问答里没有人理我... 在这里再发一遍好了
我刚刚开始自学单片机,不太清楚该如何上手。
看到网上各类单片机感觉好晕,也不清楚各类传感器是与单片机是以何种总线和协议通信的...

刚看到Arduino大概感觉是提供了一个统一的解决方案似的,具体也不太清楚。
请大牛们来指点一下它们的区别及我该如何上手单片机学习。谢啦。


玩过LEGO RCX和NXT(NXT用RobotC开发过一段时间),搞过信息学竞赛会C和Pascal及各类基本数据结构和算法。
我是正准备明年去美国读Computer Engineering的高三出国党一枚...

  •  1楼
    2012-10-25 13:42 Greeny 果壳视频编辑,实验党 ψ
    Arduino与开发其他各类单片机的最大区别是比较简单,外行容易上手。
    评论
  •  2楼
    2012-10-25 14:14 万色返空龙
    Arduino是将单片机操作的细节都包装起来了
    你只要知道 调用某个接口可以得到什么响应就可以了
    只要有简单的编程基础的人都可以进行开发
    适合入门
    评论
  •  3楼
    2012-11-18 12:51 明诺林电子
    学习Arduino 单片机可以完全不需要了解其内部硬件结构和寄存器设置,仅仅知道它的端口作用即可;可以不懂硬件知识,只要会简单的C语言,就可用Arduino 单片机变写程序。-->针对初学编程者
    评论
  •  4楼
    2012-11-18 12:54 爱抚
    嗯.连我这种忘光了所有电路学知识,只会做软件的都能上
  •  5楼
    2012-11-19 20:51 Stanso (楼主)
    引用@明诺林电子 的话:学习Arduino 单片机可以完全不需要了解其内部硬件结构和寄存器设置,仅仅知道它的端口作用即可;可以不懂硬件知识,只要会简单的C语言,就可用Arduino 单片机变写程序。-->针对初学编程者
    这似乎跟NXT和VEX区别不大了吧?只不过可以更自由的选择模块和机械结构吧?
    这么说的话其实我倒更喜欢去学一下硬件知识,接触下单片机。您有没有建议就是说我该具体从什么方面的书学起?各类专业书籍也都无所谓,我很热爱这方面的的,毕竟明年也要去学相关专业。到明年走之前有好几个月的时间,想多了解一些。
    评论
  •  6楼
    2012-11-20 18:51 明诺林电子
    引用@Stanso 的话:

    这似乎跟NXT和VEX区别不大了吧?只不过可以更自由的选择模块和机械结构吧?
    这么说的话其实我倒更喜欢去学一下硬件知识,接触下单片机。您有没有建议就是说我该具体从什么方面的书学起?各类专业书籍也都无所谓,我很热爱这方面的的,毕竟明年也要去学相关专业。到明年走之前有好几个月的时间,想多了解一些。

    如果不做深入了解单片机 学习一下ARDUION应该是个不错的选择 上手容易 通过控制各类传感器 或显示屏 就会知道IIC SPI UART等协议总线的工作原理 看你情况应该英语水平不错,教程就直接上ARDUINO官网查看
    评论
  •  7楼
    2012-11-20 18:59 ccyg8774
    玩过一点点Arduino,也玩过一点点mbed开发板,感觉Arduino比较容易。
    评论
  •  8楼
    2012-11-20 19:05 半死的猫
    arduino 有点架空底层的意思 ... ... 你只要能运用好接口函数就能完成开发 ....
    其他单片机/控制器 就有从底层开始设计 比较麻烦 还需要有电学的基础 ... 但是设计出来的部件 对项目的适应性好好一些 ... 毕竟是根据项目设计的部件 同时显得比较geek
    评论
  •  9楼
    2012-11-20 19:06 明诺林电子
    引用@ccyg8774 的话:玩过一点点Arduino,也玩过一点点mbed开发板,感觉Arduino比较容易。

    嗯 ARDUINO对于那些没有编程经验的人也很容易上手
    评论
  •  10楼
    2012-11-20 19:08 明诺林电子
    引用@半死的猫 的话:arduino 有点架空底层的意思 ... ... 你只要能运用好接口函数就能完成开发 ....
    其他单片机/控制器 就有从底层开始设计 比较麻烦 还需要有电学的基础 ... 但是设计出来的部件 对项目的适应性好好一些 ... 毕竟是根据项目设计的部件 同时显得比较geek

    所以 arduion比较适合DIY 但是如果想了解底层 也可以查看相应的代码 毕竟是开源的
    评论
  •  11楼
    2012-11-20 19:09 ccyg8774
    引用@明诺林电子 的话:


    嗯 ARDUINO对于那些没有编程经验的人也很容易上手
    mbed其实也挺好上手,但那个线上编译器用不惯。
    评论
  •  12楼
    2012-11-20 19:15 明诺林电子
    引用@ccyg8774 的话:

    mbed其实也挺好上手,但那个线上编译器用不惯。

    哦 是吗 没怎么玩过mbed 没有发言权 呵呵
    评论
  •  13楼
    2012-11-20 22:13 NetCharm
    没什么电子基础的话, 还是建议从Arduino开始, 毕竟板子/外围扩展模块和开发环境都比较成熟, 成品方案也很多, 从头开始学习基础知识比较不容易被打击, 否则市面上零零总总的几十上百种单片机, 各有各的适用面, 没有具体的设计目标很难选择, 今天学一种, 过几天又学一种, 基本上是学不出什么的. 从Arduino或者类似的基础开发板开始, 可以从了解端口工作模式开始逐步深入学习如何设置寄存器达到这样的功能, 以及外围电路为什么需要这么设计, 最终可以定制出自己的板子.
    通用型的MCU通常都相对比较复杂端口功能复用的厉害, 如果没有仔细阅读Datasheet以及有相关的比较扎实的模拟/数字电路基础, 很容易得不到预期的成果, 打击信心. 举个最简单的例子, MCU一般来说都需要设定MCLK, 简单的还好一点就几种模式单个寄存器设定搞定, 复杂一点的都要根据公式计算填充分频寄存器等一系列的寄存器, 以及与Boot Code配合, 这其中稍稍出点错板子运行就会出莫名其妙的错误.
    评论
  •  14楼
    2012-11-21 00:02 Stanso (楼主)
    引用@NetCharm 的话:没什么电子基础的话, 还是建议从Arduino开始, 毕竟板子/外围扩展模块和开发环境都比较成熟, 成品方案也很多, 从头开始学习基础知识比较不容易被打击, 否则市面上零零总总的几十上百种单片机, 各有各的适用面, 没有具体的设计目标很难选择, 今天学一种, 过几天又学一种, 基本上是学不出什么的. 从Arduino或者类似的基础开发板开始, 可以从了解端口工作模式开始逐步深入学习如何设置寄存器达到这样的功能, 以及外围电路为什么需要这么设计, 最终可以定制出自己的板子.
    通用型的MCU通常都相对比较复杂端口功能复用的厉害, 如果没有仔细阅读Datasheet以及有相关的比较扎实的模拟/数字电路基础, 很容易得不到预期的成果, 打击信心. 举个最简单的例子, MCU一般来说都需要设定MCLK, 简单的还好一点就几种模式单个寄存器设定搞定, 复杂一点的都要根据公式计算填充分频寄存器等一系列的寄存器, 以及与Boot Code配合, 这其中稍稍出点错板子运行就会出莫名其妙的错误.
    谢谢各位指点~~~ 看来我还是先从arduino学起吧。再请教下我该从哪种开发板搞起?对于arduino来说不同的开发板是不是只有性能和扩展性的差异?也就是就是只由我想做什么样的成品决定? @明诺林电子
    评论
  •  15楼
    2012-11-21 00:37 NetCharm
    引用@Stanso 的话:
    谢谢各位指点~~~ 看来我还是先从arduino学起吧。再请教下我该从哪种开发板搞起?对于arduino来说不同的开发板是不是只有性能和扩展性的差异?也就是就是只由我想做什么样的成品决定?
    Arduino的板子基本功能上没有太大区别, 只是有兼容5VIO与否, 体积, IO口数量的区别, 因为有的特殊扩展模块需要5V的IO, 或者外围电路需要很多IO才够用什么的. 其实这种板子一旦开始使用了, 基本上不可能只拥有一块, 一定在未来逐渐购入更多的, 所以一开始只需基础的板子, 例如UNO就够了.
    评论
  •  16楼
    2012-11-21 04:46 DjWong
    西安交大和清华出的数电模电的书比较好,推荐入门自学。扎实的电路基础可以提高开发效率,不然就真的跟玩积木一样了
    评论
  •  17楼
    2012-11-21 11:10 明诺林电子
    引用@Stanso 的话:

    谢谢各位指点~~~ 看来我还是先从arduino学起吧。再请教下我该从哪种开发板搞起?对于arduino来说不同的开发板是不是只有性能和扩展性的差异?也就是就是只由我想做什么样的成品决定?

    建议买ARDUINO UNO版本吧 这个相对而言硬件比较稳定一下 用于扩展显示屏 传感器 电机绰绰有余了
    评论
  •  18楼
    2012-11-25 00:48 慢慢菌
    引用@NetCharm 的话:没什么电子基础的话, 还是建议从Arduino开始, 毕竟板子/外围扩展模块和开发环境都比较成熟, 成品方案也很多, 从头开始学习基础知识比较不容易被打击, 否则市面上零零总总的几十上百种单片机, 各有各的适用面, 没有具体的设计目标很难选择, 今天学一种, 过几天又学一种, 基本上是学不出什么的. 从Arduino或者类似的基础开发板开始, 可以从了解端口工作模式开始逐步深入学习如何设置寄存器达到这样的功能, 以及外围电路为什么需要这么设计, 最终可以定制出自己的板子.
    通用型的MCU通常都相对比较复杂端口功能复用的厉害, 如果没有仔细阅读Datasheet以及有相关的比较扎实的模拟/数字电路基础, 很容易得不到预期的成果, 打击信心. 举个最简单的例子, MCU一般来说都需要设定MCLK, 简单的还好一点就几种模式单个寄存器设定搞定, 复杂一点的都要根据公式计算填充分频寄存器等一系列的寄存器, 以及与Boot Code配合, 这其中稍稍出点错板子运行就会出莫名其妙的错误.
    弱弱的说...为啥Arduino什么的我都木有听过...一直用的是最低端的51,然后ARM7...还有DSP...T^T...
    评论
  •  19楼
    2012-11-25 00:58 NetCharm
    引用@慢慢菌 的话:
    弱弱的说...为啥Arduino什么的我都木有听过...一直用的是最低端的51,然后ARM7...还有DSP...T^T...
    因为这玩意儿在国内流行也就最近两三年, 对硬件没啥兴趣的不太会了解这些的. 采用的是ATMEL的AVR MCU, 国内以前用的最多的也就是51系列了(10几年前做一个16Bits MCU+DSP+FPGA的项目, 当时觉得好高端, 兴奋的不得了, 学习劲头十足:P), 然后由于很多移动产品和嵌入式系统的使用, ARM系列就这么开始流行了, 看书店的书就知道了, 几乎全是ARM和51的书, 其实如果了解渠道稍多一点就会知道其他的MCU, 各有特色.
    评论
  •  20楼
    2012-11-25 09:46 慢慢菌
    引用@NetCharm 的话:

    因为这玩意儿在国内流行也就最近两三年, 对硬件没啥兴趣的不太会了解这些的. 采用的是ATMEL的AVR MCU, 国内以前用的最多的也就是51系列了(10几年前做一个16Bits MCU+DSP+FPGA的项目, 当时觉得好高端, 兴奋的不得了, 学习劲头十足:P), 然后由于很多移动产品和嵌入式系统的使用, ARM系列就这么开始流行了, 看书店的书就知道了, 几乎全是ARM和51的书, 其实如果了解渠道稍多一点就会知道其他的MCU, 各有特色.
    10年前...我估计还在地里玩泥巴o(╯□╰)o
    评论
  •  21楼
    2012-11-25 10:20 阴谋论者Water3
    我觉得编程语言更简单!更容易发展!就像简体字!
    评论
  •  22楼
    2012-11-25 13:05 Human_Augmentation
    引用@明诺林电子 的话:学习Arduino 单片机可以完全不需要了解其内部硬件结构和寄存器设置,仅仅知道它的端口作用即可;可以不懂硬件知识,只要会简单的C语言,就可用Arduino 单片机变写程序。-->针对初学编程者
    汗,现在大部分主流单片机都有C编译器,很多还有Object C编译器... 又不是只有Arduino才有。没觉得和别的有啥区别。实际上Arduino的优势是,它其实是一个开发板,而不只是单片机。一般的单片机开发板功能比较简单,而且产量小,因此比较贵。Arduino可以说是为模型设备定制的开发板了,包含了流行的各种外围设备,因此用户不需要太关心硬件设计,仅此而已。
    评论
  •  23楼
    2012-11-26 13:45 I老蔡
    Arduino本质上还是个单片机, 不过人家支撑软件做得很全面了, 你只需要调用它提供的接口就可以轻松访问和控制了, 免去了汇编的麻烦.
    说它是单片机, 其实更接近PLC了.

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多