很多人说:有51基础的人很容易入门ARM。我想说,坑爹啊,我就是51走过来的,看ARM几个月了,一点进展都没有,也不太知道从何入手,下面说下我的问题吧,我想也有很多人跟我一样遇上这些问题,所以希望大家仔细看看,并回复我一下,指条明道。
51都是有地址映射的(即SFR,特殊功能寄存器),在头文件reg52.h里面,不知道ARM有没有,且不知道如何调用。以STM32为例,官方有提供个固件库,也就是好几个文件夹和几十个文件,里面有会汇编写的,也有用C写的,貌似也有地址映射,貌似里面的地址映射语句不是像51里面用sfr来表示的,貌似是用#define来定义的,这边搞糊涂了。固件库中还包含了很多打包好的程序,比如说各种传输协议要用到的程序。但我的思维还停留在51,并且我不知道停留在51的这种思维是否是正确的:那就是,完全自己编码,除了sfr定义,包括很多包装好的函数,自己写出来才算学会。这种思维,不知道在ARM学习上是否同等适用,难道学ARM时上了个层次,就直接在别人打包好程序的基础上做产品了吗?必须强调,在上位机,PC软件方面,是得调用操作系统的很多函数、库,这个没办法,因为强大的PC界面及功能,如果底层驱动什么的都自己写的话会累死,而且不一定有成效。但ARM不同,不同在他比PC低一层次,但同时又高51一个层次,所以我纠结了。并且我现在不知何从入手,就算是将固件库搞明白也得花不少时间。但我觉得,如果让ARM点亮一个小LED,应该用不上那么多固件库或函数,只要能点亮个LED就行,这么低的要求,应该是用到很少的语句及配置程序,但网上所有的教程基本上首先就教你:如何调用所有的官方库。这无疑让初学者陷入泥潭,晕。
说得很乱,初学者就这样,我现在回头看看我之前学51时问的问题,也觉得那些问题很没逻辑。但请理解,如果有什么问得无厘头的地方,多多包含!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
几年前,本版有个骂STM32的手册是高中生写的烂手册的贴,挺多人抱怨STM32手册没有MICROSHIP和ATMEL公司的好,记得有人调侃说"之所以做MCU公司都喜欢把DATASHEET写得晦涩难懂 枯燥乏味,就是为了显示嵌入式这个工种有技术含量,因为电子工程师都喜欢啃晦涩的大部头资料"
这句戏言让人觉得好笑之余,也有几丝无奈,STM32提供了库,可以说方便了很多人,至少在点灯时,可以直观地看到具体的代码
不过,我觉得,STM32可以百尺杆头更进一步,就拿启动操作来讲,如果在提供SystemInit()函数的同时,直观地说明:STM32芯片在启动时,主要是只涉及到"RCC_CFGR和RCC_CR"这两个寄存器,将两个寄存器的XX位设置成0或1,可以实现XX功能...如果这样做了,就会更通俗易懂,否则,真正想弄懂STM32,则的确要求使用者"不能浮躁",否则,就不会有耐心一点一点地花时间去弄清楚STM32的具体启动过程
我一直觉得,STM32的手册即使看了又看,也很难让人抓住重点,且很容易让人觉得迷糊
如果大学里的课程能真正改良一下,会让学生少很多障碍,当然了,这是系统工程,有很多时候是积重难返
我现在超级不喜欢LQFP的0.5mm间距的芯片,感觉一旦打PCB的公司做出来的PCB质量不佳,就会很容易出现硬件问题,而且很多是怪病
比如下面这个贴的问题,就曾困扰我很长时间
http://www.ourdev.cn/forum.php?mod=viewthread&tid=5431755&highlight=STM32%E5%A4%8D%E4%BD%8D
STM32复位电路
希望包括本贴楼主在内的刚接触ARM的朋友们,一定不要算计几十元几百元的小钱,不要用串口往STM32里面烧程序,在淘宝上买山寨的ULINK2和JLINK V8,我建议各买一个,而且要买别人焊好的开发板,用串口烧程序所浪费的时间,非常不值得,接上ULINK2,就可以实现类似AVR的ISP那样的即烧即运行和仿真
一周热门 更多>