OpenEdv-开源电子网

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

菜鸟开帖,持续更新90天,顺序学习开发板大部分实验,以此帖作为一个坚持的动力

  [复制链接]

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
发表于 2015-7-21 23:48:30 | 显示全部楼层 |阅读模式
开帖原因:毅力不足,三天打鱼两天晒网,经常制定目标,但执行力不够强,用此帖记录90天的历程,督促自己踏踏实实的学习
学习板  :探索者STM32F4
起始时间:2015年07月22日
更新时间:每晚23:45前完成更新

目    标:90天时间完成开发板的大部分实验,不求快但求稳

买开发版也有一段时间了,如果踏踏实实学习现在实验也应该测试过半了,但经常好高骛远,基础不扎实,导致来回往复,故此指定时间为90天,留有一定裕量,希望静下心来一步一步前进,踏实是最快的路径。
如果有哪位坛友也有此意,欢迎加入,互相交流,共同进步。Now,Fighting!

楼主总结:
更新过程中虽存在很多问题:
1.更新内容既非原创,内容深度又不足;
2.更新内容长短参差不齐,受心情、当天内容影响,更新内容所用时长差异较大,一般在两个小时左右,一部分时长低于一个半小时;
3.更新顺序、整体环节不够顺畅、调理等等。
但仍希望置酷,觉得有个酷帖是蛮酷的一件事~~~~~

附件为目录excel和txt格式。

Thank you for your encouragement!

90天目录--2015年10月25日.txt

4.47 KB, 下载次数: 3904

90天目录--2015年10月25日.xls

23 KB, 下载次数: 4637

以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

39

主题

598

帖子

0

精华

高级会员

Rank: 4

积分
875
金钱
875
注册时间
2013-12-18
在线时间
41 小时
发表于 2015-7-25 09:02:59 | 显示全部楼层
回复【28楼】龙之谷:
---------------------------------
看楼主的帐号的等级和回复数,应该实在不能说是菜鸟了把,太自谦了把,现在我想说一下我的个人看法,楼主这样坚持不懈大家都是鼓励和敬佩的,但是个人认为或者我开始学的时候也是请教过原子哥,怎么学STM32最快,原子哥的答复是找个题目,做项目,边做边学,哪不会学哪,项目做完,涉及到的东西就都差不多会了,有的可能不是特别透彻,但是也基本可以了。
不是说否定楼主的一个实验一个实验的做下去不好,不是的,这是最好最全面的路子,是很好的,但可能时间要久一点,比如说我原来也是学的原子哥的mini板子,后来画板子,做项目什么的,到现在为止也不会用DMA,因为没有遇到用的需求,但是我现在有信心遇到了,学一下,研究研究就差不多可以做了,最多多花点时间呗,比如我学会定时器的第一个项目是做智能车,定时采集赛道,学PWM是控制电机,AD,IIC,单总线这些都是接传感器学会的,SPI是接个RFID学会的等等,哦还有,AD我写了很多次,包括32,51,zigbee什么的,但是到现在为止真没有一次用过DA,说真的我现在也不会,但是现在要真的用,也未必就好久才能学会把。
实验都是原子哥精心编排的,我只要画板子,用32,就用原子哥开发板上用的CPU,为什么?编程序方便呀,原子哥的例子就是最好的。但是很多时候是需要变通的,不是稍微改改就好,我还记得我以前PWM那次用的是TIM1,是mini上我记得是高级定时器,原子哥的例子是TIM3把,配置不是很一样,我就卡了很长时间,最后才找到就是一个语句,或许你写的时候,你也会重新翻书学的。
我也不知道我说清楚我意思没有,我是看楼主是个热心帮别人的人,所以说了下我的经历,也不值得什么借鉴,总之我还是支持你,是最支持的,我写的长,对把?哈哈,一起加油。
回复 支持 13 反对 0

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
 楼主| 发表于 2015-10-7 13:27:02 | 显示全部楼层
国庆假期总结帖

基本按照预期的3天UCOSII+2天UI+2天UCOSII/UI的时间安排进行了学习,对UCOSII和EMWIN有了一些简单的认识了解。

UCOSII和UI一直是自己想要掌握的知识,张望数月之久,但由于自己的惰性以及基础的薄弱,每欲下手,总会绊在各种自找理由,时间不充足、例程需要知识点没有掌握等,通过此次国庆假期,终于对UCOSII和UI的基础有了一点学习,把比较耗时间的移植进行了了解,在此基础上以后的进一步学习应该会便利一些,心里一下子放松了很多。

假期即将结束之余,对于UCOSII好UI感觉:事情没有想象中的那么困难,事情也没有想象中的那么简单。

以前每逢假期,必然有个自己的小学习计划,但往往基本0实现,此次国庆假期感觉还算满意,完成了很多平时望之心畏的工作量(虽然远没有想象中的多),以前一直想有个长的比较闲的完全能够自己支配的假期把需要处理的事情处理一下,这次终于有了,以后应该也不会再有这样的时候了。

此次假期没有回家干最忙时的农活,让父母受累了,此后假期不再考虑任何关于学习的安排计划,工作、学习依然重要,但不再像以前那么分量重。

放下过去苦与乐,开启新的生活,从此笑对生活~~~~~
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复 支持 3 反对 0

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
 楼主| 发表于 2015-7-30 23:51:54 | 显示全部楼层
回复【78楼】正点原子:
---------------------------------
今晚回来巨困,稍睡了会,整理的时间晚了一个多小时,汗

今天发帖真够惊险的,点击发送,感觉网页有点卡住,赶紧复制粘贴到WORD,果然网速不给力发送失败,真险,哈哈
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复 支持 2 反对 0

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
 楼主| 发表于 2015-7-30 23:49:43 | 显示全部楼层

第〇九天  2015年07月30日  周四     例程:定时器中断实验


1.定时计数器分类:STM32F4定时器有TIME1和TIME8等高级定时器,也有TIME2~TIME5、TIME9~TIME14等通用定时器,还有TIME6和TIME7等基本定时器,总共有14个之多。

2.三种定时器区别



3.频率:物质在1s内周期变化的次数叫做频率。常用f表示,单位为Hz,与周期成倒数关系,即1Hz=1/s。为加深记忆,按部就班计算,1KHz即为1s变化1000次,即1ms变化1次1KHz = 1/ms,同理1MHz = 1/us。

4.溢出Tout时间计算公式:     Tout = ((arr+1)*(psc+1))/Tclk;
其中,arr为自动重装值;
          psc为时钟预分频数;
          Tclk为输入时钟频率,本例程TIME3为84Mhz。

根据例程,当psc为(8400-1)时,即进行8400分频,此时技术频率为84MHz/8400 = 10KHz,也就是1s计数10K次,每次计数需耗时1/10000(s)。计数arr次需耗时arr*(1/10000)(s),等效于arr*(1/10)(ms),所以,当arr为(5000-1)时,每次溢出需5000*(1/10)(ms),即500ms。

5.例程中,将两个指示灯分别用于主函数和中断中闪烁,可以在此基础上,通过定义一个全局标志变量flag来使两个指示灯几乎同步,观察延时函数和定时计数器两者是否吻合。
定义一个全局变量flag以后,进行如下调整:其一,在中断函数中添加flag

void TIM3_IRQHandler(void)

{

        if(TIM3->SR & 0X0001)

        {

               LED1 = !LED1;

               flag = 1;     //一旦进入中断则置位同步标志位

        }

        TIM3->SR &= ~(1 << 0);

}

其二,将主函数进行一些调整

        while(1)

        {

               while(flag == 0)     //等待同步标志位置位

               {

                   delay_us(2);

               }

               LED0 = !LED0;

               delay_ms(500);

        }

此时主函数小灯闪烁频率为1s,定时计数器溢出时间为500ms,定时计数器一旦中断则置位标志位,两个小灯几乎同步开始闪烁,两者误差不超过2us,实际测试可以观察到两个小灯同步进行闪烁。此时我们将主函数中delay_ms(500)改为delay_ms(400),则可以观察到LED0每闪烁5次的同时LED1恰好闪烁4次,与预期一致,说明定时计数器与延时函数两者之间是协调的,如果有秒表等设备进行监测,应该会发现它们都是准确的。



位段
1.信息的存取一般以字节为单位。实际上,有时存储一个信息不必用一个或多个字节,如真、假二值判断。在计算机用于过程控制、参数检测或数据通信领域时,控制信息只占一个字节中的一个或几个二进制位,常常可以在一个字节中放几个信息。

2.位段:C语言允许在一个结构中以位为单位来指定成员所占内存长度,这种以位为单位的成员成为位段或位域(bit field)。利用位段能够用较少位数存储数据。

3.位段变量与结构变量定义类似。位段示意图



4.注意事项
其一,位段成员类型必须指定为unsigned或int类型;
其二,若某一位段要从另一个字开始存放,可用以下形式定义
unsigned   a:1;
unsigned b:2;//一个存储单元       
unsigned:0;
unsigned c:3;//另一存储单元 
     a、b、c应连续存放在一个存储单元中,由于用了长度为0的位段,其作用是使下一个位段从下一个存储单元开始存放。因此,只将a、b存储在一个存储单元中,c另存在下一个单元(“存储单元”可能是一个字节,也可能是2个字节,视不同的编译系统而异)。  
其三, 一个位段必须存储在同一个存储单元中,不能跨两个单元,如果第一个单元空间不能容纳下一个位段,则该空间不用,而从下一个单元起存放该位段。
其四,位段的长度不能大于存储单元的长度,也不能定义位段数组。
其五,位段可以在数值表达式中引用,它会被系统自动地转换成整型数。

5.同结构一样,我们可以把工程中仅需要几位来表示且功能性质比较相似的变量统一放在一块,节省空间的同时也便于管理。例如,程序中可能需要很多标志位,我们把这些标志位统一放在一个位段中,根据需要可以不断添加和去除,使其整体统一,框架清晰明了。

以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复 支持 1 反对 0

使用道具 举报

4

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2015-1-19
在线时间
0 小时
发表于 2015-7-27 10:54:12 | 显示全部楼层
哈哈哈,好多人鼓励你啊。
我就是按原子哥的一步步学下来的
回复 支持 1 反对 0

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
 楼主| 发表于 2015-7-25 18:20:15 | 显示全部楼层
回复【31楼】w417074951:
---------------------------------
Thanks for sharing...

鉴于你是写的最长的,我由衷表示感谢,并计划写一个比较长的回复,哈哈

首先关于学习方法你说得很清楚也很有道理,我现在一步一步学习的一个主要原因是个人性格决定的吧,总感觉如果不走一遍感觉陌生不踏实,对掌握这款单片机的程度没有信心,一步步走完后心里有底,同时这样也是积累,以后有相关工作也能用到这些材料。另一方面,自己开发的一个小东西功能差不多了公司也不着急出成品,正好借着这段时间打打基础。看你的开发态度,阔达自信,希望完成实验后我能达到你的层面,赞一个。

关于菜鸟这个词,我感觉自己对STM32单片机的不了解是全方面的,提到一个点,理解都是含糊摩棱两可,也是认识到与老鸟、大神的巨大差距而写着玩的。

再次感谢你的支持,共同进步
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复 支持 1 反对 0

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2015-7-24 00:02:56 | 显示全部楼层
回复【17楼】龙之谷:
---------------------------------
鼓励下你啊
看你能坚持多久,呵呵。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 1 反对 0

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
 楼主| 发表于 2015-7-22 22:45:51 | 显示全部楼层
第〇一天:2015年07月22日  周三     例程:跑马灯实验

万事开头难,好在开发板前期的一部分实验难度不大,除了自身惰性,不会有太大阻力打击积极性。
跑马灯实验可谓开发板的迎宾人员,他帮我们打开芯片开发的大门。
探索者开发板跑马灯实验是操作两个指示灯,通过位带操作直接控制指示灯亮灭,今天在此例程基础上稍微迈进一步,使用函数将指示灯进行简单封装,一方面能够稍微简化以后的代码输入量,另一方面使程序模块化。添加函数如下
[mw_shl_code=c,true]/********************************************************************* 功能 :指示灯闪烁函数 //LedNum :动作小灯编号,0--LED0闪烁 1--LED1闪烁 2--LED0/LED1交替闪烁 3--据需扩展 //LightDelay:小灯点亮/交替闪烁 延时时长 //DarkDelay :小灯变暗/交替闪烁 延时时长 ********************************************************************************************/ void Led_Shine(uchar LedNum, uint LightDelay, uint DarkDelay) { if(LedNum == 0) { LED0 = 0; delay_ms(LightDelay); LED0 = 1; delay_ms(DarkDelay); } else if(LedNum == 1) { LED1 = 0; delay_ms(LightDelay); LED1 = 1; delay_ms(DarkDelay); } else if(LedNum == 2) { LED0 = 0; LED1 = 1; delay_ms(LightDelay); LED0 = 1; LED1 = 0; delay_ms(DarkDelay); LED0 = 1; //恢复默认状态小灯不亮,使显示达到预期 LED1 = 1; } else if(LedNum == 3) { ; //待扩展 } }[/mw_shl_code]

跑马灯实验主要知识点在于使能时钟后的GPIO口配置,故整理了一下原子哥配置函数中的参数表,见附件CheatSheet.txt

今日推荐:[分享]Keil编译后的Code,RO,RW,ZI分别表示什么以及和芯片Flash、SRAM的对应关系
坛友用简洁的语言把问题分析的清楚到位,很是佩服...

CheatSheet.txt

1.31 KB, 下载次数: 3614

以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复 支持 1 反对 0

使用道具 举报

8

主题

161

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
5186
金钱
5186
注册时间
2013-3-16
在线时间
610 小时
发表于 2015-7-22 15:36:20 | 显示全部楼层
坚持是成功它爸
回复 支持 1 反对 0

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2015-7-21 23:52:45 | 显示全部楼层
祝楼主早日登堂入室。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
 楼主| 发表于 2015-7-22 08:25:07 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
谢原子哥鼓励。这冒号我发表前记得是对齐的,发表后还是跑偏了,这个略蛋疼。。。
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复 支持 反对

使用道具 举报

39

主题

598

帖子

0

精华

高级会员

Rank: 4

积分
875
金钱
875
注册时间
2013-12-18
在线时间
41 小时
发表于 2015-7-22 08:46:39 | 显示全部楼层
加油

帮顶
回复 支持 反对

使用道具 举报

3

主题

41

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
224
金钱
224
注册时间
2014-9-2
在线时间
0 小时
发表于 2015-7-22 09:53:10 | 显示全部楼层
加油,哥们。持之以恒的努力,终究会获得成功
趁着年轻,追逐自己所爱的----单片机&&足球!
回复 支持 反对

使用道具 举报

6

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2015-7-17
在线时间
0 小时
发表于 2015-7-22 13:26:21 | 显示全部楼层
我也是  那我们一起交流
颠沛流离
回复 支持 反对

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
 楼主| 发表于 2015-7-22 18:46:40 | 显示全部楼层
回复【4楼】w417074951:
---------------------------------
回复【5楼】非洲小男孩:
---------------------------------
谢谢 w417074951 和 非洲小男孩 两位坛友的鼓励
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复 支持 反对

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
 楼主| 发表于 2015-7-22 18:48:34 | 显示全部楼层
回复【6楼】k_金先生:
---------------------------------
找到小伙伴了,握个手

希望共同进步,每天更新自己的进度,贵在坚持
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复 支持 反对

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
 楼主| 发表于 2015-7-22 18:50:21 | 显示全部楼层
回复【7楼】西点:
---------------------------------
这样的话,坚持和失败是两口子,一家三口关系确定了,哈哈
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2015-7-22 23:17:58 | 显示全部楼层
回复【11楼】龙之谷:
---------------------------------
不错
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
 楼主| 发表于 2015-7-23 23:09:08 | 显示全部楼层
第〇二天:2015年07月23日  周四     例程:蜂鸣器实验

1.硬件原理图


个人硬件基础不是很扎实,在此根据蜂鸣器配套视频及教程总结一下:R59与S8050构成电流放大电路,通过单片机引脚控制(大功率)蜂鸣器发声;R61则是为了避免IO口浮空状态导致蜂鸣器误发声,当有小电流时直接下拉到地,从而保证了蜂鸣器的稳定性。当IO口送高电平时三极管导通,蜂鸣器发声。

2.有源蜂鸣器与无源蜂鸣器主要区别


以前看书没注意到这段话,看书还是不够仔细,自省一下...


3.与指示灯相同,蜂鸣器也封装一下,但蜂鸣器在后续实验使用较少,代码量少封装起来意义不大,仅作为模块化的一种练习了
[mw_shl_code=c,true]/********************************************************************* 功能 :蜂鸣器模块控制模块 //SoundTime:发声延时时长 //QuietTime:静音延时时长 ********************************************************************************************/ void Beep_Play(uint SoundTime, uint QuietTime) { BEEP = 1; delay_ms(SoundTime); BEEP = 0; delay_ms(QuietTime); }[/mw_shl_code]

4.如果想进一步学习控制蜂鸣器,推荐
蜂鸣器基础知识及原理:http://www.hongyan-e.com/web/fmqyl.htm
蜂鸣器演奏及原理    :http://wenku.baidu.com/link?url=u8KN-1zyQ0_GpfGlMDDH5C_untMTnX6pMgroSU0g_J7SzpK0ubNPKa8nzb05geha_qA-ZfTKuvUx8uChAo_2FqfArNrhlPWg0lMDPiTYVB7
蜂鸣器音乐简谱转换工具:http://blog.163.com/likangbei@126/blog/static/141308394201311722922100/

今日推荐:STM32输入输出模式理解
文章对GPIO口的8中配置及用途进行了详细的讲解,对于困惑于此的人有很大帮助。
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复 支持 反对

使用道具 举报

70

主题

6697

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
12687
金钱
12687
注册时间
2012-11-26
在线时间
3710 小时
发表于 2015-7-23 23:15:33 | 显示全部楼层
其实楼主可以把蜂鸣器响几声,响的时间和不响的时间做成参数,封装起来
学无止境
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2015-7-23 23:25:16 | 显示全部楼层
mark...
回复 支持 反对

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
 楼主| 发表于 2015-7-23 23:31:30 | 显示全部楼层
回复【14楼】jermy_z:
---------------------------------
确实,这样更完善了,多谢指导


/*********************************************************************
  功能  :蜂鸣器模块控制模块
//Count :蜂鸣器发声次数
//SoundTime:发声延时时长
//QuietTime:静音延时时长
********************************************************************************************/
void Beep_Times(uchar Count, uint SoundTime, uint QuietTime)
{
    uchar i = 0;

    for(i=0; i<Count; i++)
    {
        BEEP = 1;
        delay_ms(SoundTime);
        BEEP = 0;
        delay_ms(QuietTime);
   }
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复 支持 反对

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
 楼主| 发表于 2015-7-23 23:33:49 | 显示全部楼层
回复【15楼】正点原子:
---------------------------------
原子哥,你mark什么啊,我这玩过家家的
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复 支持 反对

使用道具 举报

7

主题

69

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
240
金钱
240
注册时间
2014-12-23
在线时间
39 小时
发表于 2015-7-24 00:09:24 | 显示全部楼层
前排占楼,顺便支持一下
回复 支持 反对

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
 楼主| 发表于 2015-7-24 00:13:19 | 显示全部楼层
回复【18楼】正点原子:
---------------------------------
哈哈
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复 支持 反对

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
 楼主| 发表于 2015-7-24 00:14:27 | 显示全部楼层
回复【19楼】阿法尔大胡子:
---------------------------------
谢谢支持,前排板凳已摆好
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复 支持 反对

使用道具 举报

3

主题

14

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2015-6-30
在线时间
0 小时
发表于 2015-7-24 10:33:39 | 显示全部楼层
mark....
回复 支持 反对

使用道具 举报

3

主题

126

帖子

0

精华

高级会员

Rank: 4

积分
776
金钱
776
注册时间
2015-2-28
在线时间
251 小时
发表于 2015-7-24 15:21:45 | 显示全部楼层
mark >>>>
回复 支持 反对

使用道具 举报

3

主题

126

帖子

0

精华

高级会员

Rank: 4

积分
776
金钱
776
注册时间
2015-2-28
在线时间
251 小时
发表于 2015-7-24 15:41:15 | 显示全部楼层
mark 支持一下
回复 支持 反对

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
 楼主| 发表于 2015-7-24 16:12:35 | 显示全部楼层
回复【23楼】mingjie2015:
---------------------------------
回复【24楼】mingjie2015:
---------------------------------
这位mingjie2015朋友,连着mark两次是几个意思,哈哈

谢谢支持,祝好运
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复 支持 反对

使用道具 举报

1

主题

10

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2014-1-18
在线时间
0 小时
发表于 2015-7-24 17:07:43 | 显示全部楼层
必须给顶一下,支持,鼓励
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2015-7-7
在线时间
0 小时
发表于 2015-7-24 17:57:22 | 显示全部楼层
mark12345
回复 支持 反对

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
 楼主| 发表于 2015-7-24 19:36:12 | 显示全部楼层
回复【26楼】ch_1964:
---------------------------------
感谢支持...

回复【27楼】jackieit:
---------------------------------
678910,哈哈
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复 支持 反对

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
 楼主| 发表于 2015-7-24 22:06:20 | 显示全部楼层
第〇三天:2015年07月24日  周五     例程:按键实验

1.支持连按:在原子哥教程中的含义是指,保持按键按下状态(持续20ms以上),按键多次响应,也就是按键起作用超过一次。在按键实验可以发现连按状态下按键控制指示灯和蜂鸣器,当松开按键时指示灯和蜂鸣器的状态并不是确定的,因为期间延时过短,我们无法控制响应次数。分析到此,我们可以通过增加延时时长来相对准确控制响应次数,比如中间添加五分钟延时供我们控制响应次数。大部分手机是支持连按的,它应该就是通过添加合适的延时以符合人们的使用习惯。
不支持连按:(支持连按的反义词),就是长时间按下按键,只响应一次。

2.我们可以在原子哥例程中支持连按状态时添加一个100ms延时供我们轻松观察到连按时按键多次触发带来的变化。
[mw_shl_code=c,true]static uchar key_up = 1; if(mode == 1) { key_up = 1; delay_ms(100); }[/mw_shl_code]

3.按键程序使用了IO口内部上下拉,对IO口的配置进行了合理的使用,这一点需要研究学习,如我者,GPIO配置0X3、0X8,如果需要上下拉会通过外接电阻实现,对内部上下拉感觉陌生不放心,皆是不够熟悉内部配置、使用较少所致,以后会注意使用。


------------------------------------隔一下--------------------------------------
按剧情发展,写到这就该来个今日推荐然后发送了,恰恰相反,刚刚开始,今天的今日推荐是没有了,如果想看的朋友们绕行了。下面的主题时printf和sprintf简单介绍及使用,昨天搜了一个多小时资料,其中包括我们论坛的分享与求助,现在时间2015年07月24日 20:53:48开始整理。
------------------------------------隔一下--------------------------------------

1.几个相关名词

重定向-----用户能定义自己的C语言库函数,连接器在连接时自动使用这些新的功能函数的过程叫做重定向C语言函数库。如本来库函数fputs()是把字符输出到调试器控制窗口中去的,但用户把输出设备改成了UART端口,这样一来,所有基于fput()函数的printf()系列函数输出都被重定向到UART端口上去了。

半主机-----用于 ARM 目标的一种机制,可将来自应用程序代码的输入/输出请求传送至运行调试器的主机。 例如,使用此机制可以启用 库中的函数,如 printf() 和 scanf(),来使用主机的屏幕和键盘,而不是在目标系统上配备屏幕和键盘。
这种机制很有用,因为开发时使用的硬件通常没有最终系统的所有输入和输出设备。 半主机可让主机来提供这些设备。半主机是通过一组定义好的软件指令(如 SVC)来实现的,这些指令通过程序控制生成异常。 应用程序调用相应的半主机调用,然后调试代理处理该异常。 调试代理提供与主机之间的必需通信。(这是坛友帖子里的,理解起来还是陌生,先搁这)

__align(num) ----- 这个用于修改最高级别对象的字节边界。在汇编中使用LDRD或者STRD时, 就要用到此命令__align(8)进行修饰限制。来保证数据对象是相应对齐。 这个修饰对象的命令最大是8个字节限制,可以让2字节的对象进行4字节 对齐,但是不能让4字节的对象2字节对齐。__align是存储类修改,他只修饰最高级类型对象不能用于结构或者函数对象。ADS环境下,“ALIGN 、“__align(x) 、“__packed”关键字用于字节对齐处理。ALIGN用于汇编语言,__align(x)用于C语言,__packed用于一字节对齐。   (注:有时候使用printf时出现HardFault_Handler中断,可能是字节对齐问题,定义的打印变量添加__align(4)或__align(8)有可能能够解决问题



2.下边这段代码,使用原子哥例程的都应该多多少少见过几次面,上面的铺垫目的正在于此。
[mw_shl_code=c,true]//加入以下代码,支持printf函数,而不需要选择use MicroLIB #if 1 #pragma import(__use_no_semihosting) //标准库需要的支持函数 struct __FILE { int handle; /* Whatever you require here. If the only file you are using is */ /* standard output using printf() for debugging, no file handling */ /* is required. */ }; /* FILE is typedef’ d in stdio.h. */ FILE __stdout; //定义_sys_exit()以避免使用半主机模式 _sys_exit(int x) { x = x; } //重定义fputc函数 int fputc(int ch, FILE *f) { while((USART1->SR&0X40)==0);//循环发送,直到发送完毕 USART1->DR = (u8) ch; return ch; } #endif [/mw_shl_code]
为什么重定向fputc后就能使用printf呢?在上边重定向中有了原理介绍,为求个心里踏实,在网上找printf函数原型,可能个人能力有限,没找到MicroLib库函数,C标准函数实现中printf是调用了putc()函数,不过以下图片这段话倒是说明printf调用了fputc函数,这样的话,重定向fputc后通过printf可以通过串口打印数据也就顺理成章了。(如果哪位大神看到这里并有printf调用fputc的函数原型请指导告知



3.printf(摘自百度百科)-----开发指南中多次使用,如printf(“OK\r\n”);

printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。
printf()函数的调用格式为: printf("<格式化字符串>", <参量表>)。
通常意义上format的格式如下:%[flags][width][.prec][F|N|h|l]type,为方便观看或速查截图如下:
~~~~~

~~~~~


~~~~~


~~~~~


~~~~~


~~~~~




4.sprintf-----开发指南中原句有sprintf((char*)lcd_id,"LCD ID:%04X",lcddev.id);//将LCD ID打印到lcd_id数组
在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。通俗的说,sprintf只是把双引号里面的东西格式化以后放到   以第一个指针参数所指向的地址为起始位置   的字符串中。更通俗的说就是对一个数组进行了赋值。

如需了解更多,比如重定向常用的两种方法以及各个知识点的详细讲解,可参考一下网址(也是本次参考网址):
【1】http://blog.csdn.net/bruce0532/article/details/4719540
【2】http://www.openedv.com/posts/list/11229.htm
【3】http://www.openedv.com/posts/list/44609.htm
【4】http://infocenter.arm.com/help/topic/com.arm.doc.dui0349bc/DUI0349BC_rvct_libraries_guide.pdf
【5】http://www.360doc.com/content/11/0707/08/4384349_132051931.shtml
【6】http://wenku.baidu.com/view/d68e44d233d4b14e85246803.html?re=view
【7】http://wenku.baidu.com/view/8a7e03ee8762caaedc33d45a.html
【8】http://wenku.baidu.com/view/69ef1a68bed5b9f3f80f1c58.html
【9】http://wenku.baidu.com/view/3b71260471fe910ef12df8a5.html
【10】http://baike.baidu.com/link?url=UtPj_ad7DpXvDhbfqnsORinaLfE9c3t9-kPxIkyrsOrGAv7whURDeCvxxLO-3xreGiRz-FT1eatvkEfqrMXq0a
【11】http://blog.csdn.net/bruce0532/article/details/4716709


------------------------------------隔一下--------------------------------------
现在时间2015年07月24日 22:06:29,一会儿改一下楼主位的更新时间,定为每晚23:45前完成更新即可,不作其他时间约束,否则有时候会出现想更新的时候觉得时间早,玩会游戏,越到后面越不想写,有时候可能还会有其他事情影响,自己时间观念也不强,凡事能早十分钟别晚三十秒,就到这吧,有点小累。

以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复 支持 反对

使用道具 举报

39

主题

598

帖子

0

精华

高级会员

Rank: 4

积分
875
金钱
875
注册时间
2013-12-18
在线时间
41 小时
发表于 2015-7-25 08:43:52 | 显示全部楼层
回复【29楼】龙之谷:
---------------------------------
cool    ..
回复 支持 反对

使用道具 举报

4

主题

61

帖子

0

精华

初级会员

Rank: 2

积分
97
金钱
97
注册时间
2013-12-3
在线时间
0 小时
发表于 2015-7-25 09:40:48 | 显示全部楼层
回复【31楼】w417074951:
---------------------------------
赞同
帮助别人就是帮助自己!
回复 支持 反对

使用道具 举报

1

主题

10

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2014-1-18
在线时间
0 小时
发表于 2015-7-25 10:33:21 | 显示全部楼层
楼主,不觉得库函数延时有问题吗?还是我哪里弄错了,请教
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2015-7-25 11:07:27 | 显示全部楼层
回复【29楼】龙之谷:
---------------------------------
不错,第三篇了。。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
 楼主| 发表于 2015-7-25 18:20:26 | 显示全部楼层
回复【32楼】wn1900:
---------------------------------
赞同
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复 支持 反对

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
 楼主| 发表于 2015-7-25 18:23:52 | 显示全部楼层
回复【33楼】ch_1964:
---------------------------------
不觉得,因为我没用过库函数

这个建议你还是找自己这方面原因,原子哥程序多少人在用,经得起考验

尽信书不如无书,但在自己初级阶段还是要相信大家公认的经典
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复 支持 反对

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
 楼主| 发表于 2015-7-25 18:25:01 | 显示全部楼层
回复【34楼】正点原子:
---------------------------------
哈哈,离完成就剩下八十几天了
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复 支持 反对

使用道具 举报

39

主题

598

帖子

0

精华

高级会员

Rank: 4

积分
875
金钱
875
注册时间
2013-12-18
在线时间
41 小时
发表于 2015-7-25 19:04:19 | 显示全部楼层
回复【35楼】龙之谷:
---------------------------------
这么谦虚,你也太抬举我了,额,那我只有努力努力,一起努力。
回复 支持 反对

使用道具 举报

3

主题

41

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
224
金钱
224
注册时间
2014-9-2
在线时间
0 小时
发表于 2015-7-25 21:10:50 | 显示全部楼层
写的很好,龙兄!我认真看了一遍,学习了知识。放假了,别人回家了。我在学校准备国赛,随便再系统学学32,论坛里大神很多,都是学习的榜样,每晚再跟你学学
趁着年轻,追逐自己所爱的----单片机&&足球!
回复 支持 反对

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
 楼主| 发表于 2015-7-25 22:30:24 | 显示全部楼层
第〇四天:2015年07月25日  周六     例程:串口通信实验

感受:感觉今天写的东西有点傻,高手低手感觉无趣的尽快绕行,仅当写给自己备查的吧。

1.经常心里不踏实,每次需要配置某一功能时,都要拿起开发指南再对照参考手册一句一句更改,配置完成以后离开书本感觉空空的。今天分析一下原子哥串口配置,分解一下配置流程,先来个图


这是串口1的配置过程,细分的话有0~5一共六部分,之所以名为0部分是因为它仅仅是一个运算过程,单纯为第二部分使用作了相应运算。
第一部分:使能时钟、配置端口,这个不用说了,使用到端口都会进行的操作,基础操作。
第二部分:串口通信波特率很重要,通过参考手册波特率配置寄存器BRR的配置公式(第0部分进行了计算)进行配置即可,基础操作。
第三部分:配置控制寄存器,这个寄存器很重要,配置它提供了正常通信的基础,需要认真置位相关位,有些难度。
第四部分:配置优先级,一般涉及到中断都会配置优先级,使彼此按照重要程度排序,基础操作。
第五部分:使能,全部配置完成以后才能也必须使能,使其进入工作状态,基础操作。

这二十多行的代码本来感觉有一定难度,细分以后,除了需要对少寄存器研究注意一下认真配置赋值以外大部分都是基础性操作。

综上,配置某项功能的一般过程:使能时钟、配置端口-----查找相关寄存器,并按照需要配置。按照这简单暴力的思维模式进行外加开发指南等书籍辅助,寄存器配置没有想象中的那么难了。

2.XXX_IRQHandler与XXX_IRQn-----针对STM32F407等系列
前者XXX_IRQHandler:中断向量入口,中断函数名,定义于startup_stm32f40_41xxx.s
后者XXX_IRQn:中断号,中断时会产生中断请求信号,该信号告诉CPU是哪个中断请求,这个信号就叫做中断号,定义于stm32f4xx.h

3.对于开发指南里面定义的接收协议,如果初学看不懂建议多看几遍,不要轻易网络发问,网络上不大可能讲的比书上更详细到位,每看一遍都会慢慢理解,并逐渐感受到其精妙之处。同时,这个接收协议不是你以后开发必须的,甚至以后开发不会用到,但协议的思路是非常精妙的,值得深入研究。

------------------------------------隔一下--------------------------------------
现在时间:2015年07月25日 20:24:20,刚下班有点热,不想吃饭,现在有点饿,更到一半进退两难,买噶。先吃饭去,饿了没动力。
2015年07月25日 21:24:26,吃完饭了,这周是个小周末,按公司规定,每个月最后一周六天班,快下班的时候,老工程师说咱俩明天加班,...,老工程师人倒是挺好,不懂得地方耐心指导,只是自己底子薄,问不出高深的问题。
本来感觉有点累,想着怎么写省点事,但看到回复鼓励,静下心来按计划写吧,继续...
------------------------------------隔一下--------------------------------------

今日整理:(比较基础,自己经常混淆点,高手绕行)
1.RAM、ROM、FLASH、EEPROM
-----RAM(Ramdom Access Memory)随机存储记忆体,临时存储介质,可称为内存。可分为静态RAM(SRAM)和动态RAM(DRAM),SRAM速度非常快,是目前读写最快的存储设,DRAM则由于有较低单位容量价格,被大量采用作为主记忆。DRAM中比较知名的DDR RAM(Date-Rate RAM)也称作DDR SDRAM, 突出之处在于它可以在一个时钟读写两次数据, 这样就使得数据传输速度加倍了。
-----ROM(Read Only Memory)只读记忆体,用来存储和保存数据,掉电不丢失。缺点是不易更改。
-----FLASH MEMORY具有ROM掉电保存的优势,又可以在需要的时候任意更改,因此逐渐发展壮大。Flash主要有两种NOR Flash和NADN Flash。NOR Flash的读取和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NOR FLASH里面的代码,这样可以减少SRAM的容量从而节约了成本。NAND Flash没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。用户不能直接运行NAND Flash上的代码,因此好多使用NAND Flash的开发板除了使用NAND Flah以外,还作上了一块小的NOR Flash来运行启动代码。

由于FLSAH通信速度慢,所以上电后(部分)程序会被搬运到RAM中从其首地址开始运行。对于裸机(可能是电脑等非普通单片机)程序,如果代码量很小,代码并不是必须搬到RAM中,而是CPU根据它和ROM的通信协议,来ROM中按照(R15)地址顺序来逐个提取code来运行,但是很慢。所以一般会将向量表之类的需要快速响应的东西,放到ram中,其实ram够大,也可以将所有的代码放到RAM中。

2.idata, data, xdata, pdata-----主要涉及到51内核单片机,有些知识仍是学习其他单片机值得品味的

-----内部RAM的低128位,对应的C语言就是data
-----内部RAM的高128位,对应的C语言就是idata
-----外部RAM可以扩展到65536个,但是前面256个是一页,比较特殊,用pdata修饰,也可用xdata修饰
-----除了256这第一页的其他65280空间,自能用xdata来修饰

回过头来讨论pdata和xdata,这两个都能修饰外部Ram的第一页,但是,Pdata只能修饰第一页,即最前面的256个外部Ram,那么,这最前面的256个到底用Pdata还是Xdata好的呢?答案是Pdata,因为Xdata修饰的变量,用的是DPTR寻址,Pdata用的是R0和R1.DPTR因为是16位的,所以可以覆盖整个的64K外部Ram,R0和R1是8位,所以只能寻址最前面的256个,也就是外部Ram的第一页,但是,用R0寻址,比DPTR快一倍,代码也小的很多。

参考链接:(注:最后一个链接为  掉电瞬间将数据存入E2PROM的方法,未作引用,如有需要可借鉴其思路)
【1】http://blog.csdn.net/shenquanxi/article/details/6699563
【2】http://www.freescaleic.org/module/forum/thread-443287-1-1.html
【3】http://blog.csdn.net/zhang810413/article/details/2651106
【4】http://jingyan.baidu.com/article/1612d5004310ebe20e1eeed0.html
【5】http://zhidao.baidu.com/link?url=zNpGqBO1xNZbIbjvn09iAEc5gs-YEB2NkIrvzgbwEnaFHvtzRXK-GUhkaCUtZ6Ts2M7d8ZUHfozYa3AKuf85eK
【6】http://wenku.baidu.com/link?url=9jTSp0fO2DQrTYZKE0XIo945lIKhNfSwz6jGrsdZwnuBdr4m1Ccvdjl6x2BTUhGvYLLkY48v-8cF_mFgBLA2T9VYJ52I_kB1qYXTKG-dMBC

以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复 支持 反对

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
 楼主| 发表于 2015-7-25 22:37:19 | 显示全部楼层
回复【40楼】非洲小男孩:
---------------------------------
谢谢支持,上学的时候老羡慕你们这些参加比赛的了,加油,祝你国赛顺利
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复 支持 反对

使用道具 举报

3

主题

126

帖子

0

精华

高级会员

Rank: 4

积分
776
金钱
776
注册时间
2015-2-28
在线时间
251 小时
发表于 2015-7-26 11:27:18 | 显示全部楼层
希望能把每个工程上传一下
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2015-7-26 14:41:37 | 显示全部楼层
回复【41楼】龙之谷:
---------------------------------
不错,继续顶你
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
 楼主| 发表于 2015-7-26 16:15:00 | 显示全部楼层
回复【43楼】mingjie2015:
---------------------------------
上传工程没太大意义,有点画蛇添足的感觉,原子哥的例程很方便下载,也是经典,我的只是有一些稍微改动,如果后期改动稍大会上传对应.C/.H文件
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复 支持 反对

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
 楼主| 发表于 2015-7-26 16:17:49 | 显示全部楼层
回复【44楼】正点原子:
---------------------------------
Thank you,YuanZiGe
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复 支持 反对

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
 楼主| 发表于 2015-7-26 19:30:01 | 显示全部楼层
第〇五天  2015年07月26日  周日     例程:外部中断实验

题外话:现在时间2015年07月26日 17:50:41,加班回来就寻思赶紧写,九点以前必须完成,九点以后的极限挑战必须在线看直播啊,不能等,黄渤的幽默风趣、孙红雷的贪玩、黄磊的高智商、罗志祥的搞怪、王讯的实在,很久没追综艺了,跑男也追过,但从未这样迫切地想看一档节目,等不及啊等不及...

进入正题......


1.外部中断有一点需要大家注意,相信也会有很多人在此处产生过疑惑,直接上开发指南截图:


当进入多个中断共用服务函数时可以通过编写程序来判断识别到底是由哪个中断引起的。


2.抢占优先级、响应优先级-----中断优先级设置都会涉及


关于上图,第一,如果想知道抢占优先级和响应优先级什么意思请查看相关介绍书籍,有专门介绍;第二,如果是初学者不建议在此处浪费太多时间研究,知道如何使用即可,等掌握单片机到一定程度再回过头来弥补不足,效率会更高一些。那下面就是如何使用了


鉴于开发指南已经把NVIC封装起来,我们大可来个拿来主义,直接调用上图函数,上图的下半部分图表详细列出了不同中断分组下的抢占优先级、响应优先级的取值范围,调用此函数时不可超出其有效范围。一般情况下,建议中断分组设置为2,此时的抢占优先级和响应优先级取值范围都是0到3,设置时比较简单,也足够满足一般设计需求。


3.抢占优先级与响应优先级谁是霸道总裁?


而如果两个NVIC设置完全一样会有什么结果呢?据网络资料介绍,设置一样时会按照中断编号进行仲裁,同时产生中断则编号小的优先执行。








今日整理:KEIL编译常见问题整理
KIEL编译常见问题网上有一些人已经对常见问题进行了总结,在此进行整理(主要编辑了网文《吴鉴鹰总结的Keil编译常见问题》,其他或由于比较零散或由于无法下载没有整理,可通过下文相关链接查看),整理结果见附件,如遇到问题可优先检索一下,提高效率。


附件一:KEIL编译常见问题整理文档     附件二:常用函数的参数配置速查表

本文参考或相关链接:
【1】http://wenku.baidu.com/link?url=AbbDsAbu6sEAEq_iuL9LP4zHaSjC7aJpLYfbZe5jwBjfAv653aE6eh7IlOuOl0zNlwUqABfCAcJNQO15XkCVJt8xTRRPR22L7NdtyD3YGZm
【2】http://bbs.eetop.cn/thread-442371-1-1.html
【3】http://wenku.baidu.com/link?url=iXJZhuXBlTlg96xbNULSWXBPiJsNj0a4TGBTfYStVZJHKMnJZGiFaVaxcRjBpi8AoWfQmoi8Gwwm-Z9TjwhsS-bkbDL2o0OTW0GjWKO96Qy


PS:本来打算写几篇struct、enum等关键字的总结,既补充自己薄弱知识又比较容易组织材料,今天下午赫然发现站长Admin已经于一年前转发了一篇经典的总结,再看吧,自己肯定写不了那么好,倒打算参考借鉴后从基础层面去简单总结,满足一般需要。
刚开始总结,能力有限,不懂的地方非常多,但希望前期写一些基础的无需长篇大论分析的点,现在晚上写哪个知识点还需要白天上班思考寻找,最后还不一定满意,如果哪位坛友有相关点推荐,在此表示感谢,合适的话会尝试总结,谢谢!

KEIL编译常见问题.doc

41 KB, 下载次数: 4025

CheatSheet.txt

3.05 KB, 下载次数: 2938

以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2015-7-26 19:52:36 | 显示全部楼层
回复【47楼】龙之谷:
---------------------------------
不错,又来了,哈哈。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
 楼主| 发表于 2015-7-26 19:58:02 | 显示全部楼层
回复【48楼】正点原子:
---------------------------------
简直崩溃,越写越乱,写的也不是很满意,整体看起来简直不能忍,编辑了好几遍了,算了,吃饭缓解一下
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2015-7-26 20:51:24 | 显示全部楼层
回复【49楼】龙之谷:
---------------------------------
要耐心啊,呵呵
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 11:47

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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