搜索
bottom↓
楼主: raxfeer

从51到ARM,这路怎么走?(精华在23楼)

  [复制链接]

出0入0汤圆

发表于 2012-3-29 09:13:22 | 显示全部楼层
如梦初醒,收益多多,淡定的看书吧还是

出0入0汤圆

发表于 2012-3-29 09:17:07 | 显示全部楼层
顶23楼!

出0入4汤圆

发表于 2012-3-29 09:22:00 | 显示全部楼层
这样的帖子,积分是怎样分配的?

出0入0汤圆

发表于 2012-3-29 10:06:49 | 显示全部楼层
建议楼主看正点原子的《不完全手册》,因为这个是基于寄存器操作的,特别适合51到ARM的过渡,而且这个资料特别简洁,力荐!

出0入0汤圆

发表于 2012-3-29 10:19:27 | 显示全部楼层
拿个例程跑一下 ,不懂就就一步一步跟踪一下,我就是这样的,从来没去专门去学它,用到那个外设了就运行那个例程在上面改,再就多看芯片资料,

出0入0汤圆

发表于 2012-3-29 10:34:53 | 显示全部楼层
顶LZ,确实是用过51的人都会问的问题,这才是想学好ARM,就像用51一样,把它的内部结构都了解清楚,写程序那才叫胸有成竹,
就像如果点个灯都要跳用别人写的函数,是很不爽的,顶各位高手的回贴,值得好好去体会。

出0入0汤圆

发表于 2012-3-29 10:37:36 | 显示全部楼层
还记得之前用1.0时库时,就这一步一步找出库的bug然后改过来,现在JLink便宜.仿真很方便.比起AT,STC的51,调试起來真的方便很多.记得以前买个51仿真器2k+啊,JLink差不多四百.现在你们学这个成本低例子多.別钻牛角尖.起码楼主现在懂C,而我的C就这一步一步跑例程自学回来的

出0入0汤圆

发表于 2012-3-29 10:46:00 | 显示全部楼层
23写的很好

出0入0汤圆

 楼主| 发表于 2012-3-29 10:55:11 | 显示全部楼层
xizi 发表于 2012-3-29 00:57
楼主用词不当,精华贴应该用推荐,而不是举报。垃圾贴才需举报。

阿莫论坛就是举报->建议置顶的,呵呵

出0入0汤圆

发表于 2012-3-29 10:55:34 | 显示全部楼层
顶,23楼,我也仔细看完了

出0入0汤圆

发表于 2012-3-29 11:02:05 | 显示全部楼层
23#果然牛逼,对核心了解很深入
业余的我直接用库函数,因为自己马虎,地址总是搞偏,所以呢,要求不高就直接上库函数吧。

出0入0汤圆

 楼主| 发表于 2012-3-29 11:02:06 | 显示全部楼层
Etual 发表于 2012-3-29 00:58
额,昨天情绪有点问题,帖子里如果语气重了的,也敬请见谅  
帖子本身是意义不是很大,只是你反 ...

谢谢了,23L爆发出来的智慧够我研究很久呢~

出0入0汤圆

 楼主| 发表于 2012-3-29 11:06:52 | 显示全部楼层
xizi 发表于 2012-3-29 01:06
23L精华,但我还是不太清楚他想要表达的,是支持学习库用库呢,还是支持自己写函数呢,抑或是糊里糊涂地 ...

我现在知道了,初学者还是先用库再说。
用Etual的话来说,先用库->学习库->最终做开发还是用库->修改库让它适合自己(最后这个是我自己加的,不知道正确与否?)

出0入0汤圆

发表于 2012-3-29 11:08:53 | 显示全部楼层
23楼很精彩,我也浮躁了

出0入0汤圆

发表于 2012-3-29 11:09:34 | 显示全部楼层
23楼说得虽然不客气,但确实让我学到了很多东西,看来我也是太浮躁了

出0入0汤圆

发表于 2012-3-29 11:46:36 | 显示全部楼层
顶23楼!
不过有些观点不太赞同,我用STM32做过几个项目了,但是也没有研究过启动文件。不知道里面到底干了些什么,只知道,它一定会跳到我的main函数里。
与所学专业可能也有关系,我学的是应用电子技术,一开始,老师就讲,先能熟练的应用,再去研究原理。
所以,学STM32,最好抛开学51的那种思想,具体到每个寄存器的每个位都要搞得一清二楚,学ARM如果也这样的话,很累的。
可以先用库,先做应用,等你能够熟练的用库做东西的时候,再回头来看看库里面到底干了些什么,会很容易明白的,当然还是得要一些C语言功底。
再上升一个高度,如果你用的不是STM32,而是ARM9,或者ARM11,那么你基本不可能去看寄存器的,因为那不是你的工作,那是厂家要做的事。

出0入0汤圆

发表于 2012-3-29 11:49:08 | 显示全部楼层
好文,顶一个!

出0入0汤圆

发表于 2012-3-29 11:53:15 | 显示全部楼层
正在學習STM32,23L解釋的太好了!

出0入0汤圆

发表于 2012-3-29 13:44:11 | 显示全部楼层
Etual 发表于 2012-3-28 02:12
本来只是路过,写详细一点。

我看楼主浮躁得不得了。现在什么都不要做了,先去看几遍《不要做浮躁的嵌入式 ...

厉害

Etual 在哪里工作,小弟投奔你去算了

出0入0汤圆

发表于 2012-3-29 14:20:52 | 显示全部楼层
23L很好很给力啊!!!

出0入0汤圆

发表于 2012-3-29 14:26:43 | 显示全部楼层
新人来学习,我也是,还是先从用固件库开始吧

出0入0汤圆

发表于 2012-3-29 14:34:06 | 显示全部楼层
23L很好很给力啊!!!

出0入10汤圆

发表于 2012-3-29 14:45:40 | 显示全部楼层
我一直以为我会C语言了,看了23楼的,我决定,晚上回去仔细看C语言。主要是我C语言指针用得实在不怎么样,真的不得不得好好学习

出0入0汤圆

发表于 2012-3-29 14:46:49 | 显示全部楼层
对照一下,我也是一个浮躁的技术员。
当时拿到万利199元学习板,左看右看,想一下学会片上的功能,定时器、ADC、I2C,
USB 什么的。最后板子也扔到一边了。
1年多过去了,GPIO都不会配置,点亮板上的LED都是例程的工程代,悲哀。

出0入0汤圆

发表于 2012-3-29 14:52:01 | 显示全部楼层
我也是开始做51后来用STM,还在学习,感觉其实有固件库真的是方便了不少

出0入0汤圆

发表于 2012-3-29 15:01:25 | 显示全部楼层
楼主过于浮躁,c是基础

不要什么都拿来和51比,现在的单片机和51都不一样,何况arm和51?多接触些就好了,莫浮躁

出0入0汤圆

发表于 2012-3-29 15:02:11 | 显示全部楼层
先顶再看,慢慢研究

出0入16汤圆

发表于 2012-3-29 15:06:55 | 显示全部楼层
23l分析很到位,若是想学好,必须去除浮躁,也不能三天打鱼,两天晒网,一定要坚持下去!

出0入0汤圆

发表于 2012-3-29 15:19:27 | 显示全部楼层
非常佩服23L啊,我认为c51(代指单片机吧)和ARM的区别从某种角度来说是汇编和C语言的区别,虽然现在用c51的人也开始用c了,但是基本上就是把c用作高级汇编而已,我见过长我一辈的技术员写的汇编风格的C代码,很多感慨……应该要把C学好。

出0入0汤圆

发表于 2012-3-29 16:01:57 | 显示全部楼层
看了23L,受益了!!!!

出0入0汤圆

发表于 2012-3-29 16:18:17 | 显示全部楼层
23楼写的真不错呀,佩服

出0入0汤圆

发表于 2012-3-29 16:23:30 | 显示全部楼层
写的还不错。

出0入0汤圆

发表于 2012-3-29 16:34:30 来自手机 | 显示全部楼层
23楼强大,看到题目就直奔23楼来了

出0入0汤圆

发表于 2012-3-29 16:36:16 | 显示全部楼层
受教

出0入0汤圆

发表于 2012-3-29 16:37:39 | 显示全部楼层
mark 一下

出0入0汤圆

发表于 2012-3-29 16:38:15 | 显示全部楼层
好文章顶一下。

出0入0汤圆

发表于 2012-3-29 16:42:24 | 显示全部楼层
总觉得23楼骂的还不够狠…

不会自主去学习的工程师,很难成功

是我带的早就打了…当年让个女的不吃不睡点灯,

一点就是十几个小时,很多时候比的真的是心境,要有这种意识才能做得更好。

出0入0汤圆

发表于 2012-3-29 20:06:39 | 显示全部楼层
受教了。。真的很有感触

出0入0汤圆

 楼主| 发表于 2012-3-29 20:21:11 | 显示全部楼层
ju748 发表于 2012-3-29 16:42
总觉得23楼骂的还不够狠…

不会自主去学习的工程师,很难成功

嗯,这帖子里的很多人的教诲都很犀利,我一定谨记于心。
顺便弱弱地问一下,你现在还带人吗?我毕业后想到个人带……

出0入0汤圆

发表于 2012-3-29 21:53:57 | 显示全部楼层
路过

出0入0汤圆

发表于 2012-3-29 22:02:06 | 显示全部楼层
23L,务实派,good!!!

出0入0汤圆

发表于 2012-3-29 22:04:59 | 显示全部楼层
顶23楼,好人

出0入0汤圆

发表于 2012-3-29 22:50:11 | 显示全部楼层
很有启发,还是好好的学51先

出0入0汤圆

发表于 2012-3-29 23:07:52 | 显示全部楼层
好东西,谢谢指点

出0入0汤圆

发表于 2012-3-29 23:09:05 | 显示全部楼层
Etual 发表于 2012-3-28 02:12
本来只是路过,写详细一点。

我看楼主浮躁得不得了。现在什么都不要做了,先去看几遍《不要做浮躁的嵌入式 ...

感触颇深,戒骄戒躁!!

出0入0汤圆

发表于 2012-3-29 23:22:23 | 显示全部楼层
"很多人说:有51基础的人很容易入门ARM。我想说,坑爹啊,我就是51走过来的,看ARM几个月了,一点进展都没有,也不太知道从何入手"

有51基础的人很容易入门ARM,
这句话是没有错的,你有这样的误解,只不过是因为你对51太不熟练罢了,
不少学习51的,甚至连自己用的单片机的datasheet都没看过,就说自己会51了,
结果到了ARM,又到处去跪求教程...

我也是从51到ARM的,虽然我不敢说我对51有多熟练,至少我看过我用的片子的datasheet上的大部分内容,
所以到了STM32,只要学会了下载程序,后面的内容,都是可以自己解决的。
IO配置,定时器,串口,外部中断,这些51上做过的基本的东西,仔细看看STM32的参考手册就会发现,其实和51差不多,
只不过寄存器名字变了,配置的流程不同,加上STM32的功能更强大些罢了,
用C语言开发STM32和开发51真的天壤之别吗?不见得。

出0入0汤圆

发表于 2012-3-29 23:31:57 | 显示全部楼层
我先学的STM32,后看的51,我觉得STM32太简单了,很容易,当初照着例子改,一天基本上外设就都搞懂了,当然深入后,还得看汇编。后来看51,连个库函数都没,还得看寄存器,不过好在寄存器很少。所以软件出身的会觉得STM32更容易学。我觉的不能跑linux的ARM,不算真的ARM,最少要会操作系统,否则只能是大号的单片机。

出0入0汤圆

发表于 2012-3-29 23:37:06 | 显示全部楼层
"但我觉得,如果让ARM点亮一个小LED,应该用不上那么多固件库或函数,只要能点亮个LED就行,这么低的要求,应该是用到很少的语句及配置程序,但网上所有的教程基本上首先就教你:如何调用所有的官方库。这无疑让初学者陷入泥潭,晕。"

对于这个,自己看参考手册就可以解决。
或者,你也可以参考正点原子的《STM32不完全手册》,里面的例程都是寄存器操作。

出0入0汤圆

发表于 2012-3-29 23:38:53 | 显示全部楼层
反省反省。

出0入0汤圆

发表于 2012-3-30 00:14:07 | 显示全部楼层
本帖最后由 ken_zq 于 2012-3-30 00:16 编辑

楼主学习要举一反三啊,而且要发现细节问题,我从51到STM32没什么大的阻碍。
从51入门STM32不是把STM32套入51去学,而是对比两个的不同之处,STM32的IO口配置要比51的配置多很多内容,51的IO口操作一般不用配置IO口,但STM32就不同,你得先配置IO口,为什么要先配置再使用?IO口这些年都有什么发展?51的特殊寄存器可以使用sfr关键字定义,但是STM32没有这样的关键字,在程序中是怎么实现的?51单片机的中断机制是怎么样的,STM32的中断机制是怎样的?51单片机的定时计数器是怎样的,而STM32的定时计数器是怎样的,这些年定时计数器到底有什么发展,为什么会出现这样的发展?51单片机的时钟是怎么的,STM32的时钟是怎样的,STM32的时钟为什么是这样的,这些年时钟到底发生了什么变化,为什么会发生这样的变化?搞通了这些问题,你就会发现,哦,原来是这样的啊,原来单片机的发展历程是这样的啊,最后再抛给自己一个问题,是我玩了单片机还是单片机玩了我?

出0入0汤圆

 楼主| 发表于 2012-3-30 02:08:18 | 显示全部楼层
Pony279 发表于 2012-3-29 23:22
"很多人说:有51基础的人很容易入门ARM。我想说,坑爹啊,我就是51走过来的,看ARM几个月了,一点进展都没 ...

IO配置:
话说,我从来没配置过51的IO,我用的是89S52,也用过C2051,要如何配置IO??
定时器:
51的中断系统(包括定时器),只要通过SFR来配置就行了,弱弱地问一下,STM32的SFR地址分别是多少?(随便说一个中断的地址就行了,我依此查下去)
串口:
这个也算是包含在中断系统里面,只是进入中断后要进行判断是接收中断还是发送中断。
外部中断:
如上。
连自己用的单片机的datasheet都没看过:
说实话,我对“学会”的定义是,能够不看任何资料(包括datasheet)空手画出电路、写出程序(或者说尽量不看),显然我在复杂的设计中不太做得到,但是,写一个诸如“数字时钟”类的百行内程序,我可以完全不用看任何资料写出,而且通常是一次编译一个警告都没有(当然这也不是每次都称心如意),上次帮朋友做一个设计,从一个空的Keil,到写满程序,一次编译通过。(这不算什么,估计很多人都能做到,但我觉得能做到这些,起码能证明我看过Datasheet,并且把重要的信息背了下来)
我在想,也许正是我在51里面养成的习惯让我很难适应STM32,在学51时,我除了坚持上面说的尽量不看着资料编程,另外还坚持另一个想法:不调用别人写的模块、程序。51通信中只有一个串口(89S52),其它通信协议都要通过模拟出来,我第一个模拟的作品是18B20温度检测。网上有很多诸如18B20.h,1602.h、DS1302.h等等(或.c),我都没去调用它们,我认为,如果不能自己写出最底层的时序逻辑控制程序,就没算学会,所以在STM32里,我对头文件不太适应,也总是不想调用头文件,不知道这算不算强迫症。
可能是因为我不了解、没深入研究STM32的固件库,所以没发现它的美妙之处吧。
上面所说的所有观点,可能都局限于我现在的认识,如果有说错或理解错的地方,高手们多多包涵。
更希望各路高手对我的这些想法做一些点评。

出0入0汤圆

 楼主| 发表于 2012-3-30 02:18:43 | 显示全部楼层
first_blood 发表于 2012-3-29 23:31
我先学的STM32,后看的51,我觉得STM32太简单了,很容易,当初照着例子改,一天基本上外设就都搞懂了,当然 ...

已举报置酷,虽然才短短的几句话。
我想说,这短短的几句话,却说明了一个重要的问题:51偏硬、STM32偏软。
这里说的偏硬偏软是局限的说法,如果STM32要深度研究底层也可,但估计没几个能像23L的高手一样,而且估计深入研究的意义也不大(只能说可能不太大,新手说话很小心~)。
最后那句话很经典:我觉的不能跑linux的ARM,不算真的ARM,最少要会操作系统,否则只能是大号的单片机。
我觉得很多新手在看了first_blood的这个帖子后会豁然开朗,原来是这么回事:先学哪个就会觉得哪个简单。
虽然很短,却是让人回味无穷的帖子~

出0入0汤圆

 楼主| 发表于 2012-3-30 02:23:04 | 显示全部楼层
Pony279 发表于 2012-3-29 23:37
"但我觉得,如果让ARM点亮一个小LED,应该用不上那么多固件库或函数,只要能点亮个LED就行,这么低的要求, ...

我必须得承认,我看的资料不多,呵呵。
感谢指点,已经下载了《不完全手册》,每天看一点,呵呵。

出0入0汤圆

 楼主| 发表于 2012-3-30 02:28:19 | 显示全部楼层
ken_zq 发表于 2012-3-30 00:14
楼主学习要举一反三啊,而且要发现细节问题,我从51到STM32没什么大的阻碍。
从51入门STM32不是把STM32套入 ...

你给新手们(包括我)指明了方向,非常感谢精彩的回答。
如果你能略微地回答下你提出的问题,就又一个酷帖出来了。(论坛有修改回复的功能)
当然,即使你没回答,我自己也会找到答案的,至少不能辜负你码的这些字呀,呵呵。

出0入0汤圆

发表于 2012-3-30 08:15:29 | 显示全部楼层
支持一下,写的不错

出0入0汤圆

发表于 2012-3-30 08:30:01 | 显示全部楼层

仔细看完了Etual的帖子,确实很收益,看来我要努力了。

出425入0汤圆

发表于 2012-3-30 09:18:03 | 显示全部楼层
值得收藏,再次研读

出0入0汤圆

发表于 2012-3-30 09:56:06 | 显示全部楼层
我以前说过十条,也被很多人转载过,搬过来分享下,

1.既然选了电子这行当,就一心一意做下去,不因为别的,就因为你选了它。
2.既然选了电子这行当,你势必比别人会累一些,不要怕,你乐在其中。
3.既然选了电子这行当,你必须不停的学,但不是不断的追新,因为摩尔定律告诉你
你是学不过来的。
4.技术储备很重要,资料是我们学习和进步的首要保证。
5.人际交往很重要,项目的来源、技术的问答是必要的。
6.尽善尽美很重要,细节往往能够直接左右我们的成败。
7.私藏是恶习,因为你有所保留的那个人在进步,而你却止步不前,请记住:教学相长
的道理。
8.德行是关键,做技术实际上做的是人品,世界上有两种“属于你”,一个是“拿来主义,得过且过”,另一个是“潜心问学,融会贯通”。
9.思路是至宝,好的思路让你事半功倍,水到渠成。
10.不要说你不行,除非你已经尽力去试过!

出0入0汤圆

发表于 2012-3-30 09:57:18 | 显示全部楼层
戒骄戒躁,谦以待人,持诚求真。

出0入0汤圆

发表于 2012-3-30 10:18:39 | 显示全部楼层
学习再学习,还是觉得自己肤浅得很

出0入0汤圆

发表于 2012-3-30 10:25:38 | 显示全部楼层
23楼果然精华啊。我学STM32直接从例程开始的。底层的寄存器都不怎么懂,以后果断踏踏实实的学。

出0入0汤圆

发表于 2012-3-30 10:33:34 | 显示全部楼层
准备使用stm32了,深有感触。

出0入0汤圆

发表于 2012-3-30 13:27:50 | 显示全部楼层
raxfeer 发表于 2012-3-30 02:08
IO配置:
话说,我从来没配置过51的IO,我用的是89S52,也用过C2051,要如何配置IO??
定时器:

IO配置:
这个不好意思,我用的是STC的单片机。用过STC90,STC12和STC15系列的,STC12和STC15都是有这个配置的。

sfr 也是寄存器,51的寄存器定义在reg51里,不同的51芯片的寄存器都会有些不同,一般卖芯片的厂家都会有提供头文件,
仔细看看就知道,地址全写在那里面,STM32的寄存器也定义在官方给的头文件里,地址也写得清清楚楚,用起来有什么不同吗?

“说实话,我对“学会”的定义是,能够不看任何资料(包括datasheet)空手画出电路、写出程序(或者说尽量不看)”

对于这个观点,我觉得太过肤浅,我打个比方,
你的公司现在要求设计一个新产品,而你现在掌握的MCU都不能满足这个产品的要求(成本?速度?内部集成的外设?等等),
所以必须找一款新的MCU来用,那么你是不是也打算把你用的这款MUC的寄存器都背熟了,才开发呢?竞争对手的产品估计早就已经在市场上卖得很火了。
所谓学习,更重要的是接受新事物的能力,学会了51,并不是这辈子只会用51,而是当接受到一个新的片子的时候,我会利用现有的知识和经验,快速的获取我所需要的东西。
再比如,WIN32编程有成千上万的API,有人会去背吗?除非是要考试,要不然,谁会去背这些?其实查多了help文档,写多了代码,该记住的,自然也就记住了。


“上次帮朋友做一个设计,从一个空的Keil,到写满程序,一次编译通过。(这不算什么,估计很多人都能做到,但我觉得能做到这些,起码能证明我看过Datasheet,并且把重要的信息背了下来)”

也许你会以为这样编程很牛逼,我在最初学习编程的时候也是这样想的,最好可以显摆给周围的人看,我写程序,可以一次搞定!
但是我要很诚恳的告诉你,这是一种很不好的编程风格!你可以继续保持这种习惯,以后就慢慢有体会了



“不调用别人写的模块、程序。51通信中只有一个串口(89S52),其它通信协议都要通过模拟出来,我第一个模拟的作品是18B20温度检测。网上有很多诸如18B20.h,1602.h、DS1302.h等等(或.c),我都没去调用它们,我认为,如果不能自己写出最底层的时序逻辑控制程序,就没算学会,所以在STM32里,我对头文件不太适应,也总是不想调用头文件,不知道这算不算强迫症。”

个人玩的时候很多时候都是这样的,我也喜欢这样,但是什么都自己做,想做的东西大了,有些东西,是要花时间的,有时候,甚至不是一个月两个月能搞定的。
你不适应头文件大可不调用库函数,保留寄存器定义的相关内容即可。



对于上面跑不了linux的ARM不算ARM的观点我不敢苟同,也不想过多评论,
ARM一定要和linux挂钩吗?应用来自需求,STM32不跑linux又怎么了,现在还不是一样很火
stm32也可以跑很多的RTOS,用起来一样很爽

出0入0汤圆

 楼主| 发表于 2012-3-30 14:02:15 | 显示全部楼层
Pony279 发表于 2012-3-30 13:27
IO配置:
这个不好意思,我用的是STC的单片机。用过STC90,STC12和STC15系列的,STC12和STC15都是有这个 ...

//仔细看看就知道,地址全写在那里面,STM32的寄存器也定义在官方给的头文件里,地址也写得清清楚楚,用起来有什么不同吗?
STM32还真有SFR啊,因为之前有人跟我说过没有,或者说是不一样的东西,所以我一直以为STM32没有SFR或者说它的SFR不太一样。
//所以必须找一款新的MCU来用,那么你是不是也打算把你用的这款MUC的寄存器都背熟了,才开发呢?竞争对手的产品估计早就已经在市场上卖得很火了。
额……这个,因为还是学生,所以没有什么竞争,只能是尽量往深里研究。
//WIN32编程有成千上万的API,有人会去背吗?除非是要考试,要不然,谁会去背这些?其实查多了help文档,写多了代码,该记住的,自然也就记住了。
我有了解过Win32的编程,估计那个没几个人能背下来,太多了。所以微软官方才提供一个MSDN。弱弱地问一下,STM32也有类似MSDN的东东吗?
//也许你会以为这样编程很牛逼,我在最初学习编程的时候也是这样想的,最好可以显摆给周围的人看,我写程序,可以一次搞定!
没有没有,仅仅作为证明,我对51的了解程度,不像你说的,连Datasheet都没看过。能一次通过一个数字时钟级别的百行内的程序,很多人都没问题吧。
//个人玩的时候很多时候都是这样的,我也喜欢这样,但是什么都自己做,想做的东西大了,有些东西,是要花时间的,有时候,甚至不是一个月两个月能搞定的。
嗯,我承认,我做的都是些小东西,小打小闹,到做大项目时肯定不能这么搞,学STM32应该能让我慢慢转变。

出0入0汤圆

发表于 2012-3-30 14:15:41 | 显示全部楼层
"STM32也有类似MSDN的东东吗?"

STM32也有文档, 比如
Cortex-M3 Technical Reference Manual
STM32F10xxx Cortex-M3 programming manual
stm32 reference manual
还有datasheet
, 直接到官方网站上基本都能找到,那个就不相当于help文档吗?

对于官方的库,到官方网站上下载下来的代码,里面也是有文档的,就连MDK下的模板工程也是有的,人家就怕你不会用。

出0入0汤圆

发表于 2012-3-30 14:20:13 | 显示全部楼层
Etual 发表于 2012-3-28 02:12
本来只是路过,写详细一点。

我看楼主浮躁得不得了。现在什么都不要做了,先去看几遍《不要做浮躁的嵌入式 ...

说的挺好,不过有点抠细节、偏低层。现在开发单片机的软件,完全可以不懂汇编。

出0入0汤圆

发表于 2012-3-30 14:21:42 | 显示全部楼层
前途光明,道路曲折

出0入0汤圆

 楼主| 发表于 2012-3-30 14:53:43 | 显示全部楼层
Pony279 发表于 2012-3-30 14:15
"STM32也有类似MSDN的东东吗?"

STM32也有文档, 比如

我刚找到了,叫做STM32F10x Standard Peripherals Library
这个东西跟MSDN很类似,也有索引、搜索等功能,呵呵。

出0入0汤圆

发表于 2012-3-30 18:17:02 | 显示全部楼层
我开始用的51,写了没几个代码,然后因为比赛,学习了ARM7 LM3S1138,也就是周立功的ARM1138。当然还得感谢周立功给的例子比较多,两三天就入门,三天比赛时间期间用ARM无障碍。觉得楼主还是没有真的理解单片机和C语言

出0入0汤圆

发表于 2012-3-30 18:32:05 | 显示全部楼层
mark,有点浮躁了。

出10入10汤圆

发表于 2012-3-30 19:27:17 | 显示全部楼层
固件库看懂了,基本就入门了

出0入0汤圆

发表于 2012-3-30 20:09:29 | 显示全部楼层
Etual 发表于 2012-3-28 02:12
本来只是路过,写详细一点。

我看楼主浮躁得不得了。现在什么都不要做了,先去看几遍《不要做浮躁的嵌入式 ...

呵呵,讲的很好啊,最近也要开始入手学习32了,尽管51还没学好。
不过有一个问题,是先看 cm3权威手册 好呢,还是先看一个具体芯片的 手册 好?

也是有点手足无措的感觉呢~~

出0入0汤圆

发表于 2012-3-30 20:24:30 | 显示全部楼层
值得学习

出0入0汤圆

发表于 2012-3-30 20:41:21 | 显示全部楼层
好文

出0入0汤圆

发表于 2012-3-30 22:03:00 | 显示全部楼层
记得当初点亮LED灯是一个多月后的事情,前面一直在找资料文档什么的

出0入0汤圆

发表于 2012-3-30 22:17:30 | 显示全部楼层
raxfeer 发表于 2012-3-30 02:28
你给新手们(包括我)指明了方向,非常感谢精彩的回答。
如果你能略微地回答下你提出的问题,就又一个酷 ...

我会把这个考虑进我未来的计划的,但是现在还不够成熟。

出0入0汤圆

发表于 2012-3-30 22:26:34 | 显示全部楼层
看了23楼的解释,真是豁然开朗啊!有很多知识都是一知半解,看来要静下心来多多看看C 和 库~

出0入0汤圆

发表于 2012-3-31 09:09:51 | 显示全部楼层
虽然我还没有正式入门STM,但是我觉得我能学的很快,我用的方法是顺藤摸瓜……就是下个源码,先让他运行起来。然后从main看,遇到函数,去找定义,遇到地址去手册找……效率还是挺高的……

出0入0汤圆

发表于 2012-3-31 10:05:15 | 显示全部楼层
一定要Mark一下,好好学习

出0入0汤圆

发表于 2012-3-31 11:16:39 | 显示全部楼层
收藏了,回家看那

出0入0汤圆

发表于 2012-3-31 11:40:53 | 显示全部楼层
呵呵,听教,不错,刚刚从51过来的确实要好好听了~~

出0入0汤圆

发表于 2012-3-31 14:07:38 | 显示全部楼层
受教了,正在学STM32,感觉也是停留在以前AVR的习惯。
比如位带区的操作,我想定义一个标志位,感觉有点迷茫。
还要再学习C啊。

出0入0汤圆

发表于 2012-3-31 22:24:05 | 显示全部楼层
精华23楼,佩服。

出0入0汤圆

发表于 2012-3-31 22:25:59 | 显示全部楼层
膜拜23楼

出0入0汤圆

发表于 2012-3-31 22:42:34 | 显示全部楼层
lcofjp 发表于 2012-3-27 08:31
匿名结构体是发展趋势,稍复杂点的MCU都是这种形式,多个相同外设使用同一个结构体即可,只是起始地址不同 ...

请问“匿名结构体”这种说法是官方给出的吗?

出0入0汤圆

发表于 2012-3-31 22:47:41 | 显示全部楼层
yiltoncentwr 发表于 2012-3-31 22:42
请问“匿名结构体”这种说法是官方给出的吗?

哪个官方?叫法有什么错误吗?

出0入0汤圆

发表于 2012-3-31 22:49:47 | 显示全部楼层
Etual 发表于 2012-3-28 02:12
本来只是路过,写详细一点。

我看楼主浮躁得不得了。现在什么都不要做了,先去看几遍《不要做浮躁的嵌入式 ...

V5的回击,确实需要静下心来搞技术。

出0入0汤圆

发表于 2012-3-31 22:51:42 | 显示全部楼层
lcofjp 发表于 2012-3-31 22:47
哪个官方?叫法有什么错误吗?

你误会了,只是觉得这个词非常贴切,我平时想和别人说明这种用法时候,发现很难讲清楚,这个词还是很形象的,匿名,然后挂上谁的名字就代表谁,呵呵

出0入0汤圆

发表于 2012-4-1 07:33:23 | 显示全部楼层
不错呀不错。我也是51到stm32的,也有楼主的这些问题,不过现在好些了。我得承认我的C是从c51开始的,之前一直用VB,而且水平也很一般。
楼主遇到的问题我一个不剩全有过。操作IO是第一步,我才发现这些端口叫GPIOx了,不再是Px.x,更麻烦的是不能直接px.x=x了!
我也试图先sfr这些IO,起一个好名字然后直接操作之,折腾了俩星期都不行,和楼主一样,也不知道地址在哪,挫败感是巨大的。最后我就硬抄例程,看书,发现要开启时钟,我这还是头一次知道GPIOx的操作还要先使能时钟……设置GPIO模式,推挽开漏什么的还是很好理解,最后也找到了IDR和ODR,到此为止我才能点亮LED。
说到这里我想说,我虽然承认我的C不行,但这些问题还真不是C带来的,是51的经历给我带来的思维定势, 再直白一点,井底之蛙,只会像51那么思考,只会那么去解决问题。所以先转变思路才是第一步。
接下来我的stm32几乎没什么进展,我外接了一个320240的液晶屏,调试触摸屏。这段经历与其说在玩stm32不如说是在玩一个超级51,内存大,速度快的超级51.我完全没用到stm32的特性,当然我也不知道stm32有什么现成的硬件模块,以及如何去用。看书上dma、fsmc的概念完全不懂,不知道能做什么,也就缺乏学习的动力。也许还是没有一个具体的项目作为原动力吧。
我不是做嵌入式系统的,在大多数场合,51已经能够满足我的使用要求。有的时候我也会感到51的爆发力不够,实时密集型运算完全无力。这时我才会用到超级51——stm32.也许在市场定位上,我就是st公司从8位机市场挖来的用户吧,哈哈哈开个玩笑。

出0入0汤圆

发表于 2012-4-1 08:27:39 | 显示全部楼层
rclong 发表于 2012-3-27 12:50
TI的C2000系列DSC也是差不多这样的结构给出各个寄存器的操作办法

我觉得挺好的 反而51的教材应该改改了 把 ...

在8位MCU上吃不是太吃力了?

出0入0汤圆

发表于 2012-4-1 08:52:12 | 显示全部楼层
yiltoncentwr 发表于 2012-3-31 22:51
你误会了,只是觉得这个词非常贴切,我平时想和别人说明这种用法时候,发现很难讲清楚,这个词还是很形象 ...

不好意思,其实是我搞错了,STM32用的不是匿名的。是有名字的。
430的才是匿名的,形如这样的:
  1. __no_init volatile union
  2. {
  3.   unsigned char P3OUT;   /* Port 3 Output */

  4.   struct
  5.   {
  6.     unsigned char P0              : 1; /*  */
  7.     unsigned char P1              : 1; /*  */
  8.     unsigned char P2              : 1; /*  */
  9.     unsigned char P3              : 1; /*  */
  10.     unsigned char P4              : 1; /*  */
  11.     unsigned char P5              : 1; /*  */
  12.     unsigned char P6              : 1; /*  */
  13.     unsigned char P7              : 1; /*  */
  14.   }P3OUT_bit;
  15. } @0x0019;
复制代码
不用给出名字,直接定位在某个地址上。

出0入0汤圆

发表于 2012-4-1 09:46:19 | 显示全部楼层
滔滔江水,滔滔江水啊。

出0入0汤圆

发表于 2012-4-1 09:50:11 | 显示全部楼层
这么好的帖子必须顶!

出0入0汤圆

发表于 2012-4-1 10:07:42 | 显示全部楼层
先去把《不要做浮躁的嵌入式工程师》看几遍

出0入0汤圆

发表于 2012-4-1 10:25:41 | 显示全部楼层
受益匪浅

出0入0汤圆

发表于 2012-4-1 10:43:53 | 显示全部楼层
新手顶一个。 刚入门STM32 。

出50入0汤圆

发表于 2012-4-1 11:10:12 | 显示全部楼层
23楼的确是精华啊!

出0入0汤圆

发表于 2012-4-1 11:23:48 | 显示全部楼层
本帖最后由 Maurice 于 2012-4-1 11:24 编辑

mark!还没好好研究过ARM,先收藏!

出0入0汤圆

 楼主| 发表于 2012-4-1 12:28:21 | 显示全部楼层
yurinacn 发表于 2012-3-30 18:17
我开始用的51,写了没几个代码,然后因为比赛,学习了ARM7 LM3S1138,也就是周立功的ARM1138。当然还得感谢 ...

两三天,你所谓的入门是指何种级别的?

出0入0汤圆

 楼主| 发表于 2012-4-1 12:31:30 | 显示全部楼层
yiltoncentwr 发表于 2012-3-31 22:51
你误会了,只是觉得这个词非常贴切,我平时想和别人说明这种用法时候,发现很难讲清楚,这个词还是很形象 ...

怎么说呢?匿名结构体?不太听得懂你们两说的意思……
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-11 06:04

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表