OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9358|回复: 32

一个新手的迷茫

[复制链接]

9

主题

111

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
299
金钱
299
注册时间
2013-5-28
在线时间
24 小时
发表于 2013-6-16 17:04:44 | 显示全部楼层 |阅读模式
买了原子哥的开发板有几天了,可是感觉有点不知道怎么学,拿到板子,看着上面本来用51很容易就能实现的模块,可是自己对STM32的芯片却变得很无奈,面对的是一大堆的寄存器,和库函数,感觉用起来没有像51那种得心应手的感觉。想看一看它的地址,发现也是一大堆定义,结构体,感觉我开始有点迷茫了,想通过看原子哥的视频入门,可是发现视频周围环境比较吵,而且讲得比较快。听起来我好吃力。在此真挚地希望已经入门的童鞋能够给些建议和经验,讲一讲当初您是如何入门STM32的,在这过程中又有什么好的经验,万分谢谢每位前人的留言,您的献言也许可以让我少走很多弯路,也让很多像我这样的新手少走很多弯路,在此先谢谢了。希望大家的总结能这让帖子帮到很多的新手。
学习单片机编程贵在坚持,无论多难的问题都有不轻易放弃的原则,坚持着去解决它,相信你总会找到解决方法的。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2013-3-24
在线时间
11 小时
发表于 2013-6-16 17:21:07 | 显示全部楼层
新手慢慢来,我感觉现在还是新手,多看看多练练,就熟悉了,可以先照着原子的例程照着敲一遍,不是复制粘贴哦!在这个过程中,加入自己的代码,从小工程开始,然后慢慢的组织成大点的工程。多调试代码,应该会有帮助。话说,结构体是个好东西啊。多用用就知道了
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-6-16 17:53:15 | 显示全部楼层
先学会建工程!
下载一个跑马灯
俗话说,万事开头难.
开头搞好了,后面就容易了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

59

主题

189

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
451
金钱
451
注册时间
2012-4-11
在线时间
1 小时
发表于 2013-6-16 18:07:44 | 显示全部楼层
告诉你把  你先看不完全手册  再练习  遇到不会的查STM32的技术手册 资料     然后还不懂得发帖子!!!我感觉这是最好的过程!!
回复 支持 反对

使用道具 举报

38

主题

2061

帖子

6

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3273
金钱
3273
注册时间
2012-1-16
在线时间
37 小时
发表于 2013-6-16 18:17:05 | 显示全部楼层
加油!贵在坚持。可以暂时把注意力放在功能上,而不要纠结于是怎么实现的。
站在巨人的肩膀上不断的前进。。。
回复 支持 反对

使用道具 举报

2

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2013-5-21
在线时间
0 小时
发表于 2013-6-16 18:34:01 | 显示全部楼层
我习惯是看人家的代码,然后一边翻手册看寄存器,这样理解很快的。视频的话有点稍慢而且记不住
回复 支持 反对

使用道具 举报

86

主题

984

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1850
金钱
1850
注册时间
2013-4-15
在线时间
163 小时
发表于 2013-6-17 15:17:49 | 显示全部楼层
我刚开始学STM32时和你一样的感觉,想看视频,发现太吵,想看地址映射 不知道看什么,51单片机头文件里面一个sbit 0=0x80;多清楚,,,呵呵,告诉你怎么学STM32,第一步:忘掉你的51。第二步:看看C语言的结构体、指针的定义及简单使用。第三步:从头看看STM32不完全手册。然后你就会发现原来如此,其实很简单,简单到你觉得学了这个有用吗,就是这样的,千万不要把你的51思想带进来,不知道你是不是看郭天祥的视频学的51单片机,如果是,请连郭天祥一起忘记,你就学会了…………
合肥-文盲
回复 支持 反对

使用道具 举报

86

主题

984

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1850
金钱
1850
注册时间
2013-4-15
在线时间
163 小时
发表于 2013-6-17 15:24:48 | 显示全部楼层
我贴一个在其它论坛里面看到的如何从51到ARM过渡,楼主提问的原话如下:

很多人说:有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时问的问题,也觉得那些问题很没逻辑。但请理解,如果有什么问得无厘头的地方,多多包含!
合肥-文盲
回复 支持 反对

使用道具 举报

86

主题

984

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1850
金钱
1850
注册时间
2013-4-15
在线时间
163 小时
发表于 2013-6-17 15:25:30 | 显示全部楼层
精华回贴如下:本来只是路过,写详细一点。

我看楼主浮躁得不得了。现在什么都不要做了,先去看几遍《不要做浮躁的嵌入式工程师》这篇文章,想清楚了,
再动手吧。

我做了个实例,不用ST的库来点LED,解答你的问题

我的 KeilMDK 3.5
我的STM32板子奋斗版是 ,IC 是 STM32F103VET6
调试工具 JTAG V8
LED 接在 B5 ,高电平点亮

既然楼主说一定懂C语言了,那么对于下面我的问题,不查百度,完全靠自己,懂多少?然后查了百度之后又能懂多少?

(一)新建 keil 工程,IC选择 ST 公司的 STM32F103VE,keil提示是否copy 启动文件,选择是。

这里有问题问楼主,
你有没有读过这个启动头文件? 51 也是同样的启动文件,51的那个启动文件有没有读过?你知道
头文件里面做了什么吗? C语言真的从 main 函数开始吗?运行时库是什么?这些资料从
什么地方知道?keil编译器的行为?
(如果你说头文件是汇编的,没有必要看,那我当我没说)

例如启动文件里面有这么一句,我的问题是 __main 这个标号在哪里实现的,注意,这里肯定不是 main 函数
这里跳到哪里去了?还有个问题 [WEAK] 这里是什么意思?有什么用????

Reset_Handler   ROC
                EXPORT  Reset_Handler             [WEAK]
                IMPORT  __main
                LDR     R0, =__main
                BX      R0


(二)新建一个 main.c 并且写一个 main函数,什么都不做,这和51一样了。

void main(void)
{
        while (1)
        {

        }
}

然后因为我需要调试,则设置jtag调试器,在项目属性里面 Debug 标签,Use JTAG/J-TRACE ,然后到 
utilities 标签,同样选择JTAG /J-TRACK ,并且选择 Setting 按钮,里面的 rogramming Algorithm 
还是空的,表示keil 不知道目标是什么,我添加一个 STM32F10X High-density Flash ,问题,为什么是 
High-desity ?依据是什么???
全部确认返回。

这个时候已经可以编译,开发板上电,已经可以下载仿真的,虽然程序什么都没有写

(三)既然硬件,仿真器,调试都准备好了,接着就开始写程序了。
我一直推荐新手花钱买学习板和仿真器,因为可以排除硬件的问题,让初学者集中精力去写程序,而不用怀疑
硬件有问题,这点很重要。

这阶段主要是看书,了解这个IC 的架构,了解指令集,了解寄存器(别跟我说你找不到这些资料? .....)
Cortex-M3权威指南CnR2(电子书).pdf 
STM3210x参考手册.pdf
学习板原理图
博客,论坛等多个帖子,务必要对整个IC有个初步的了解。这个过程有点痛苦,但是值得花这个时间。

(四)开始写 LED
既然我们要操作 IO 口,当然就要看IO口相关的知识。打开 STM3210x参考手册.pdf ,我的目的只是操作 GPIO 
所以我只需要将第五章看完就OK了。章节比较多,懒得看,根据一般的经验(楼主,你缺经验了吧?),不说多
就AVR 和 IC 而已。操作IO一般是两个步骤,第一,操作IO控制寄存器,设置IO为输出,第二就是送数据。

那么很明显,只可能是 GPIOx_CRL  GPIOx_CRH , GPIOx_ODR 三个寄存器会有想要
仔细阅读这几个寄存器的介绍后知道,GPIOx_CRL 是控制 IN 0-7 的属性的,GPIOx_CRH 控制PIN 8-15,ODR寄存器
当然就是输出数据了,将数据送到这里就行了。

然后,这几个寄存器的地址是多少?首先看 stm32f103ve.pdf 这个是官方的datasheet、,看第四章, Mmeory Mapping
为什么看这章?会英文都能猜到吧?,看 ORTB 的地址是 0x40010C00 - 0x40010FFF ,这个就是基地址了。基地址
加上偏移量就能找到具体的寄存器。 

例如我需要操作 GPIOB_CRL 的偏移为 00H ,(看STM3210x参考手册.pdf) ODR 寄存器的偏移为 0CH 
那么很自然得出
GPIOB_CRL = 0x40010C00
GPIOB_ODR = 0x40010C0C

怎么验证我的结论正确?先看 keil 给的头文件 \Keil\ARM\INC\ST\STM32F10x\stm32f10x_map.h
#define ERIPH_BASE           ((u32)0x40000000)
#define APB2PERIPH_BASE       (PERIPH_BASE + 0x10000)
#define GPIOB_BASE            (APB2PERIPH_BASE + 0x0C00)

这样怎么算都能算出 0x40010C00 出来吧??ODR 寄存器同理

为了点亮 LED ,我需要将 B5 (也就是 GPIOB5)设置为输出,并且ODR相应的位写入 1 ,看资料得出 MODE5 是
bit 20 21 控制的,CNF5 是bit 22,23
MODE5应该设置 10(0x2) 选择 2MHZ 输出,CNF5 选择00(0x0),通用推挽模式,于是将这个值写入

(*volatile unsigned long)0x40010C00 = (2<<20) | (0<<22);  // 为简单起见,不管其他位了

楼主你是否能看懂这句C语言??volatile 什么意思什么用?指针的本质是什么?为什么能这样用?2<<20 是什么
意思,为什么能这样用?楼主我真的不是为难你,嵌入式都这么写的,ST的头文件也是这么定义

同理,设置 ODR 寄存器
*(volatile unsigned long *)0x40010C0C = 1<<5;
*(volatile unsigned long *)0x40010C0C = 0;

STM32 没有SFR ,没有bit,没有sbit 的概念的了。是不是就不如 51 了?


下载运行,还不行,因为GPIOB 的CLK 没有使能,这时其实 GPIOB 是不能工作的,这是 STM32 特殊的地方,上电
默认外设的时钟都是关的,初学者没有注意这里,是可以原谅的,多看看书,多实践,多问问就是了。

找到问题的原因,则再 RCC_APB2ENR 设置,其中 BIT 3 就是 IOPBEN 是时钟使能位,同上,先找到 RCC_APB2ENR
的地址 
#define ERIPH_BASE           ((u32)0x40000000)
#define AHBPERIPH_BASE        (PERIPH_BASE + 0x20000)
#define RCC_BASE              (AHBPERIPH_BASE + 0x1000)
RCC_APB2ENR 的偏移是 18H ,所以最终得到地址为 0x40021018,操作方法同上

*(volatile unsigned long *)0x40021018 |= 1<<3;


最终的点LED的程序就完成了。
void main(void)
{
        *(volatile unsigned long *)0x40021018 |= 1<<3;
        *(volatile unsigned long *)0x40010C00 = (2<<20) | (0<<22); 
        *(volatile unsigned long *)0x40010C0C = 1<<5;
        while (1)
        {

        }
}
如果将寄存器做一个定义,则程序变成如下

#define RCC_APB2ENR *(volatile unsigned long *)0x40021018
#define GPIOB_CRL  *(volatile unsigned long *)0x40010C00
#define GPIOB_ODR *(volatile unsigned long *)0x40010C0C

void main(void)
{
        RCC_APB2ENR |= 1<<3;
        GPIOB_CRL = (2<<20) | (0<<22); 
        GPIOB_ODR = 1<<5;
        while (1)
        {

        }
}

RCC_APB2ENR  RCC 是时钟寄存器 , APB2 是外设2 ,ENR ,可以理解为 enable
GPIOB_CRL  GPIO B control 控制寄存器
GPIOB_ODR  GPIO(general purpose input output) B output data register 输出数据寄存器

都是有意义的名字,哪里难记了??而且名字都来自 ST 的官方 datasheet、这个程序跟你用 51 写的程序我还真的
没看出差别有很大 .....

加入刚才的 GPIOB 寄存器,看看 ST 的官方库是怎么定义的,
\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h
用 UltraEdit 打开,搜索 GPIOB

#define ERIPH_BASE           ((uint32_t)0x40000000)
#define APB2PERIPH_BASE       (PERIPH_BASE + 0x10000)
#define GPIOB_BASE            (APB2PERIPH_BASE + 0x0C00)

没错,和keil 里面是一模一样的。


typedef struct
{
  __IO uint32_t CRL;
  __IO uint32_t CRH;
  __IO uint32_t IDR;
  __IO uint32_t ODR;
  __IO uint32_t BSRR;
  __IO uint32_t BRR;
  __IO uint32_t LCKR;
} GPIO_TypeDef;

其中 __IO  的定义在 \Libraries\CMSIS\CM3\CoreSupport\core_cm3.h 为什么我知道在这个文件里面,因为我会
用 source insight ...

#define     __IO    volatile 

__IO uint32_t CRL 其实就是 volatile uint32_t CRL

为什么用结构体?因为结构体的成员的地址分配(RAM中)是连续(不知道楼主是否懂得,这还是C语言的问题),
而 STM32 的一个模块的功能寄存器都是连续的,每个寄存器都是相当于 基地址加偏移,跟上面的理论一致

于是就有了结构体指针的用法 
跟踪库函数的源代码,例如 GPIO 的 初始化函数
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)

以结构体指针的形式传递 IO 口 GPIO_TypeDef* GPIOx

访问 CRL 寄存器则用成员的形式 GPIOx->CRL;

不需要担心这样做的效率,因为都是地址,也就是指针,最终的效率是直接寄存器操作,效率是非常高的。

看不懂库函数,归根究底就是C语言功底不行。不要以为写过几行51就懂C语言了,远的很呢。

还有,STM 的库下载的时候包含了很多很多例子,库函数怎么使用在例子里面有很详细的介绍,不用写几行代码,
都是复制例子做实验,也很很容易的。

总结楼主的几个问题
1,ARM 没有SFR,也不需要,SFR 是51的关键字,没有理由 51 有 ARM 就要有。例如ACC,ARM 就没有,但是有 
R0-R15 ,这些就是架构(architecture 的区别了)
2,STM32 的寄存器在官方头文件上面已经全部有定义了,上面已经阐述了。(你看不懂不代表没有吧?)
3,不带库函数的LED程序已经实现了。

想进步唯一的办法是多看书,多看代码,多写,多思考,少说话,楼主太浮躁了,反省一下吧。
合肥-文盲
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-6-17 15:45:09 | 显示全部楼层
回复【9楼】合肥-文盲:
---------------------------------
精彩.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

25

主题

683

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1351
金钱
1351
注册时间
2012-4-25
在线时间
195 小时
发表于 2013-6-17 17:20:56 | 显示全部楼层
ARM学不好,主要是 C语言没过关 问题,对有软件 基础的人来说,基本不用怎么了解底层寄存器,直接用 库 就能 开发了
1-1
回复 支持 反对

使用道具 举报

9

主题

111

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
299
金钱
299
注册时间
2013-5-28
在线时间
24 小时
 楼主| 发表于 2013-6-17 18:58:54 | 显示全部楼层
回复【7楼】合肥-文盲:
---------------------------------
嗯嗯,谢谢这位大哥,我确实是看着郭天祥老师的视频学51的,谢谢您的指点了。我会记住并去努力实现的。谢谢!
学习单片机编程贵在坚持,无论多难的问题都有不轻易放弃的原则,坚持着去解决它,相信你总会找到解决方法的。
回复 支持 反对

使用道具 举报

9

主题

111

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
299
金钱
299
注册时间
2013-5-28
在线时间
24 小时
 楼主| 发表于 2013-6-17 19:21:55 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
嗯嗯,谢谢原子哥了
学习单片机编程贵在坚持,无论多难的问题都有不轻易放弃的原则,坚持着去解决它,相信你总会找到解决方法的。
回复 支持 反对

使用道具 举报

38

主题

2061

帖子

6

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3273
金钱
3273
注册时间
2012-1-16
在线时间
37 小时
发表于 2013-6-17 19:37:02 | 显示全部楼层
回复【9楼】合肥-文盲:
---------------------------------
受教了。。
站在巨人的肩膀上不断的前进。。。
回复 支持 反对

使用道具 举报

9

主题

111

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
299
金钱
299
注册时间
2013-5-28
在线时间
24 小时
 楼主| 发表于 2013-6-17 19:48:12 | 显示全部楼层
回复【9楼】合肥-文盲:
---------------------------------
嗯嗯,很谢谢您这么长的留言,还有问了我那么多的问题,老实说您问的问题,在不百度的情况下我能回答上的还没有三分之一,而且这三分之一也不一定是您觉得对的,看了您的留言以后,我才深深地感受到自己的不足和急躁,是真的要好好反省反省了,有人说心急吃不了热豆腐,现在深有体会了,因为一直听我们部门一个同事说硬件功能模块调试几天就能搞定,比较难的是算法,所以学了几天感觉自己进步很慢,所以真的有点急躁了,。您的留言我看了三遍才给的回复,觉得还要继续研究您的留言,在此在深深地对你的热情回复表示感谢!谢谢您!
学习单片机编程贵在坚持,无论多难的问题都有不轻易放弃的原则,坚持着去解决它,相信你总会找到解决方法的。
回复 支持 反对

使用道具 举报

头像被屏蔽

6168

主题

7036

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
19705
金钱
19705
注册时间
2012-12-27
在线时间
25 小时
发表于 2013-6-17 21:12:24 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

9

主题

111

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
299
金钱
299
注册时间
2013-5-28
在线时间
24 小时
 楼主| 发表于 2013-6-17 23:51:58 | 显示全部楼层
回复【16楼】xouou_53320:
---------------------------------
没有啊,你搞错了。
学习单片机编程贵在坚持,无论多难的问题都有不轻易放弃的原则,坚持着去解决它,相信你总会找到解决方法的。
回复 支持 反对

使用道具 举报

48

主题

376

帖子

0

精华

高级会员

Rank: 4

积分
621
金钱
621
注册时间
2011-3-18
在线时间
7 小时
发表于 2013-6-18 10:33:08 | 显示全部楼层
楼主,我也是玩51的,你玩不了m3的主因,
一:学51,也不是好深入
,玩了8255吗?自己写时序,玩了你就已可玩好m3的gpio了,
     因为也要设定,从中学习io设定,事实上8255还难玩过m3 的gpio,一口气玩上十多粒,你就知道8255是多么困难了,
    asm学好了吗?51的asm是最好学了,书本多,学好asm本来就有必要,只要学好一种己可以,主要知道原理,
   有mcu原理的好底子,m3一定不难了

二:想快速学成
,你想一下原子花了多少时间?原子之前已玩avr好久,已做了很多project了,那你用51做了什么project呢?
玩什么xxx的十天学成,事实上只是了解一下,就好像学英文的az一样,同西方人讲英文,还非常远

三.没有好好看原子的手册
, m3有一样不同51之处,就是功能要启动,手册已写得好好,如真压玩好51,看完己可入门自学了.

四:多点思考自己不足之处,做mcu就要如此了
回复 支持 反对

使用道具 举报

7

主题

165

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
213
金钱
213
注册时间
2013-6-18
在线时间
0 小时
发表于 2013-6-18 14:21:59 | 显示全部楼层
回复【9楼】合肥-文盲:
---------------------------------
感谢啊,我也是一个很浮躁的人,虽然花了不少时间才看完,但值得    获益良多啊。。。
只求每天都能把小事做好。
回复 支持 反对

使用道具 举报

6

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2013-6-17
在线时间
0 小时
发表于 2013-6-18 16:54:08 | 显示全部楼层
8楼的分析好强大
回复 支持 反对

使用道具 举报

3

主题

43

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
373
金钱
373
注册时间
2013-6-1
在线时间
54 小时
发表于 2013-6-18 20:12:09 | 显示全部楼层
回复【6楼】小枫:
---------------------------------
同感啊!哈哈~~~~~
回复 支持 反对

使用道具 举报

7

主题

57

帖子

0

精华

初级会员

Rank: 2

积分
146
金钱
146
注册时间
2012-11-13
在线时间
12 小时
发表于 2013-6-18 21:38:00 | 显示全部楼层
回复【9楼】合肥-文盲:
---------------------------------
好贴,做个记号
回复 支持 反对

使用道具 举报

9

主题

111

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
299
金钱
299
注册时间
2013-5-28
在线时间
24 小时
 楼主| 发表于 2013-6-21 22:30:24 | 显示全部楼层
回复【18楼】mbass51:
---------------------------------非常谢谢您的回复,我之前也用51做过一些小项目,这两天用了新唐的NUC120LE3AN单片机做了一个WIFI控制灯具的项目,不过我是在别人指点下直接调用函数,绕开了寄存器这些了。感觉要学好ARM还是先把函数调用过来开发项目得了,然后用到了再慢慢学寄存器,边用边学,哎,新手,只能边走弯路变学乖,只是尽量让自己少走点弯路就少走点了,我会把您讲的一些对我有帮助的好好记下并实现的,再次谢谢!
学习单片机编程贵在坚持,无论多难的问题都有不轻易放弃的原则,坚持着去解决它,相信你总会找到解决方法的。
回复 支持 反对

使用道具 举报

9

主题

111

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
299
金钱
299
注册时间
2013-5-28
在线时间
24 小时
 楼主| 发表于 2013-6-21 22:34:47 | 显示全部楼层
回复【5楼】xiaoyan:
---------------------------------
嗯嗯。谢谢您
学习单片机编程贵在坚持,无论多难的问题都有不轻易放弃的原则,坚持着去解决它,相信你总会找到解决方法的。
回复 支持 反对

使用道具 举报

9

主题

111

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
299
金钱
299
注册时间
2013-5-28
在线时间
24 小时
 楼主| 发表于 2013-6-21 22:35:18 | 显示全部楼层
回复【6楼】小枫:
---------------------------------
谢谢
学习单片机编程贵在坚持,无论多难的问题都有不轻易放弃的原则,坚持着去解决它,相信你总会找到解决方法的。
回复 支持 反对

使用道具 举报

4

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2013-6-23
在线时间
11 小时
发表于 2013-6-23 17:48:22 | 显示全部楼层
我也是STM32的新手,我在我学校实验室待了两年。今年大三啦。我实验室里的人这个暑假都出去找实习啦。而且还很容易找着了。其实我也想出去的,有好几个机会的。可是感觉还不够。所以准备暑假在实验室好好的奋斗一下STM32,希望能得出一点结果。。。
回复 支持 反对

使用道具 举报

16

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
119
金钱
119
注册时间
2013-5-12
在线时间
0 小时
发表于 2013-6-23 21:42:05 | 显示全部楼层
      我也是新手,学STM32有几个月了,一开始摸不到头脑。后来看了李想的视频,其实后面的都没怎么看,主要是搞懂了时钟系统,这是STM32的一个最重要的入口,然后看数据手册,有很多不懂的地方,不要紧,最好能把每个字过一篇,其实手册里分的很多模块都是类似的,只要搞懂了这个时钟部分,以后的各个部分都可以用这样的方法各个击破的,每个模块都有很多寄存器,开始不必都记住,大概了解有印象就行了。先不急着写程序,多看一下实例,库函数的名称都是很好理解的,库函数里有不认识的单词可以用金山词霸查下,比如IT就是中断的意思,至于C语言我想既然学过51都是有基础的,只是个别地方不是很清楚,遇到问题百度一下补补就好了,遇到很多宏定义不要怕,这时就要看看硬件手册了,比如学SPI实验时,就有很多的命令宏定义,你得看W25Q64的数据手册,了解一下这些命令,说来说去就是一定要耐着性子看手册,了解原理才是王道,我是个业余爱好者,还在STM32的道上匍匐前进着,我不晓得为什么别人学的即快又好,反正我一直按着我的计划进行着,我想就算慢总比学不会要好吧,所以别太着急,慢点不要紧,就是要坚持!
回复 支持 反对

使用道具 举报

9

主题

111

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
299
金钱
299
注册时间
2013-5-28
在线时间
24 小时
 楼主| 发表于 2013-6-25 00:46:07 | 显示全部楼层
回复【27楼】50330102:
---------------------------------
嗯嗯,非常谢谢你的回复,真的很中肯,对我特别地有帮助,相信你的贴对很多新手会有很大帮助。我昨天也下载了李想老师的视频在看。现在看到了第五课。今天在没有看数据手册,什么都不看的情况下,默写了LED灯的点亮,虽然中间还是出现了各种各样的问题,但是现在对一些问题却很深刻,相信能学好51(当然这个好对我而言只是能做些小东西,用词可能不太对)也能学好STM32的,只要能找到适合自己的方法并坚持下去,一定可以学好的,前些天发现自己真的很浮躁,感觉有点眼高手低了,以为要入门STM32硬件可以很容易,所以当没有进步找不到方法的时候就急躁了,呵呵,在各位网友的指点下受益菲浅啊,谢谢你,你的回复给我很大启示和帮助。
学习单片机编程贵在坚持,无论多难的问题都有不轻易放弃的原则,坚持着去解决它,相信你总会找到解决方法的。
回复 支持 反对

使用道具 举报

9

主题

111

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
299
金钱
299
注册时间
2013-5-28
在线时间
24 小时
 楼主| 发表于 2013-6-25 00:50:41 | 显示全部楼层
在8楼楼主的建议下看了一下《不要做浮躁的嵌入式系统工程师》这篇文章,感觉讲得很有道理,在此转贴给有需要的朋友看,此文转自百度文档:不要做浮躁的嵌入式系统工程师  1、不要看到别人的回复,第一句话就说:给个代码吧!你应该想想为什么。当你自己想出来再参考别人的提示,就会知道自己和别人思路的差异。  2、初学者请不要看太多的书,那会误人子弟的,先找一本好书系统的学习。很多人用了很久都是只对部分功能熟悉而已,不系统还是不够的。  3、看帮助。不要因为很难,而自己又是初学者所以就不看。帮助永远是最好的参考手册,虽然帮助的文字有时候很难看懂,或不够直观。 4、不要被一些专用词汇所迷惑,最根本的是先了解最基础知识。 5、不要放过任何一个看上去很简单的小问题--它们往往并不那么简单,或者可以引申出很多知识点,不会举一反三你就永远学不会。 6、知道一点东西,并不能说明你会用,会用是需要实践经验和时间积累的。  7、入门并不难,难的是长期坚持实践和不遗余力的学习和实践。 8、看再多的书是学不会用的,要多实践,多动手。 9、把时髦的技术挂在嘴边,还不如把基本的技术记在心里。 
10、在任何时刻都不要认为自己手中的书已经足够了。 11、看得懂的书,请仔细看;看不懂的书,请硬着头皮看。 12、别指望看第一遍书就能记住和掌握什么--请看第二遍、第三遍。。。  13、请把书上的例子亲手去实践一下。  14、把在书中看到的有意义的例子进行扩充,并将其运用到自己的设计中。  15、不要漏掉书中任何一个练习和实践--请全部做完并记录下思路。  16、别心急,应用确实不容易,水平是在不断的实践中完善和发展的。 17、每学到一个知识点的时候,尝试着对别人讲解这个知识点并让他理解--你能讲清楚才说明你真的理解了。  18、记录下在和别人交流时发现的自己忽视或不理解的知识点。 19、保存好你做过的所有的源文件----那是你最好的积累之一。 20、对于网络,还是希望大家能多利用一下。很多问题不是非要到论坛来问的,首先你要学会自己找答案,比如google、百度都是很好的
搜索引擎,你只要输入关键字就能找到很多相关资料,别老是等待别人给你答案,看的出你平时一定也很懒!  21、到一个论坛,你要学会去看以前的帖子,不要什么都不看就发帖子问,也许你的问题早就有人问过了,你再问,别人已经不想再重复了,做为初学者,谁也不希望自己的帖子没人回的。  22、虽然不是打击初学者,但是这句话还是要说:论坛论坛,就是大家讨论的地方,如果你总期望有高手无偿指点你,除非他是你亲戚!!!讨论者,起码是水平相当的才有讨论的说法,如果水平真差距太远了,连基本操作都需要别人给解答,谁还跟你讨论呢。
学习单片机编程贵在坚持,无论多难的问题都有不轻易放弃的原则,坚持着去解决它,相信你总会找到解决方法的。
回复 支持 反对

使用道具 举报

1

主题

4

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2013-8-23
在线时间
3 小时
发表于 2013-8-25 21:05:42 | 显示全部楼层
回复【9楼】合肥-文盲:
---------------------------------
受教了,精彩!
努力总会有回报!!!
回复 支持 反对

使用道具 举报

6

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2013-8-23
在线时间
5 小时
发表于 2013-8-25 21:36:29 | 显示全部楼层
新手,连扳都没买呢!家里穷,想学又没钱。下星期就有钱买了,我想这贴我还会看几遍的。
我即狂澜,且无法被力挽
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2013-8-13
在线时间
0 小时
发表于 2013-9-15 11:23:59 | 显示全部楼层
好贴,顶一下
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2012-11-7
在线时间
1 小时
发表于 2013-9-15 21:05:52 | 显示全部楼层
受教育了!!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-13 07:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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