刚学M3同纸的一点心得,内附上API函数大全极品上手资料

[复制链接]
13227|21
手机看帖
扫描二维码
随时随地手机跟帖
dsl1784|  楼主 | 2011-11-17 09:04 | 显示全部楼层 |阅读模式
本帖最后由 dsl1784 于 2011-11-18 11:45 编辑

额图片不知道怎么看不见了。这样,我把WORD文档上传了。希望对大家有点帮助。
  首先我也是一个新手,1110号才拿到板子,心里那个高兴的。我以前学过51,会点AVR。拿到M3我首先就去找资料了。说实话没想到自己会得到,相信各位也得到的大大们也是这样吧。
M3编程给我第一感觉就是上手太容易了。关键是学会编写第一个程序,并且能运行。我的第一个程序费了我好半天,没得法。那我就分享下我的第一个程序,给大家入门的一点我的提示。

1 新建工程我就不说了哈,会KIE的都会。关键就是ARM系列的单片机都要有一个启动文件Startup.s。这个文件在创建的时候会问你添加否。如图
建立.jpg
你直接点是。
2 接着会出现如下图画面
工程2.jpg

Kiel提供了一个非常好的工程管理方法。你接着点
按键.jpg
将出现窗口,改为如下图。当然你也可以改为你喜欢的方式。Startup放启动文件。User放你的个人程序。DriverLib放库文件。按Add File分别添加。
窗口一.jpg
关于DriverLib这个文件在这个位置x\Keil\ARM\RV31\LIB\Luminary 其中X为你的安装盘符。这个文件是编译器自带的API函数的库。

3 说完工程文件的管理了,那么再来说说这一个程序要运行起来,还要怎么做。
首先是初始化:(1)时钟初始化。(2)各个模块的使能,功能配置初始化初始化。
初始化建议用模块化,便于以后程序的移植。我用的是一个 Systeminit.c来保存各种初始化的函数的。初始化基本全部用的API函数。我在这里说也很不方便,我直接把我的第一个工程发上来,给那些第一次接触的看。
初始化完了,就是用户的程序了。跟其他单片机的写法一样。


说了这么多我来稍微谈下对M3的感受。
M3与其他单片机程序的操作不同就只有一点。对单片机的操作全可以用官方写好的函数来使用。你初始化也好,你引脚高低电平的控制也好,都是用这些接口函数。你再也不用与底层的各个控制寄存器打交道了。你可以直接用完全语言理解的方式来控制各种资源。比如GPIOPinWrite(GPIO_PORTD_BASE,GPIO_PIN_0,GPIO_PIN_0)。你要设置PD0为高就可以这样了。当然大家风格各异,写法可以自己来。如果要反转引脚电平你可以 GPIOPinWrite(GPIO_PORTC_BASE,GPIO_PIN_5,~GPIOPinRead(GPIO_PORTC_BASE,GPIO_PIN_5));或者你抑或当前引脚电平再写。所以一切你都可以更直观的来编写自己的程序。

那么这么多API函数怎么记得住?首先,API函数有官方介绍,我这有资料,网上可以下很多。或者你可以自己看各种头文件。这些头文件包含了你要用到的外设的API封装。这些头文件的操作在Driverlib中,你看不到。但是你可以看到各种API的声明形式。在这些头文件中:
#include  <hw_types.h>//一些类型的宏定义
#include  <hw_memmap.h> //定义内存的地址,如寄存器,程序,数据段
#include  <hw_ints.h>     //中断序列号的宏定义
#include  <interrupt.h>   //中断向量表的操作函数
#include  <sysctl.h>       //系统各寄存器的操作宏定义(设置项)
#include  <gpio.h>         //GPIO的操作(宏定义+函数)
//#include <debug.h>   //调试
#include <systick.h>    //时钟节拍的各种设置
//#include <adc.h>     //AD
//#include <lm3s811.h> //LM3S811的各种寄存器设置
//#include <timer.h>     //定时器
在这些头文件里你都可以找到对应的API。你要用到某些功能的时候你就要包含这些头文件了。

Startup.s是个汇编文件,我其他作用不知道。但是我看见在这里面可以中断程序入口设置。具体就是,你在里面找到对应的地方
extern 你的中断程序名字;
DCD  你的中断程序名字;
如下图 将时钟节拍的中断注册
中断.jpg
ARM系列还有一个不同就是volatile变量的声明,以及在中断中的应用。大家可以去看看,这个百度比我说得好。我这只是一个刚刚接触者的感受。

这里是我的第一个工程。献给各位刚刚上手的同纸。
各位大大。加油呀。
我邮箱djc80s@qq.com。欢迎资源共享。


  昨天看了下小3的定时器。有点小郁闷,16位定时器周期捕获的时钟不能分频。定时器只能16位溢出能分频。定时器PWM不能分频倒无所谓了,因为有更强大的PWM模块。
  说到这个不得不说说PWM,这个绝对是个极品。首先自带死区延时哟。以前用AVR做逆变,那个痛苦的,用硬件延时的,加了一堆。现在这家伙直接自带死区延时。3个PWM可以调节同时基,同时启动,装载匹配值同步启动。还有PWM自带很多中断类型,不如计数0,装载完成,计数上升或下降匹配。有了这些如果你是做逆变的你就会明白强大了。不论是单极性双极性逆变你都可以做出来。

6_API函数介绍.rar

2.35 MB, 阅读权限: 1

每个函数的功能,使用详细讲解,还有例子介绍。这是我同学在武汉TI培训师带回来的。 ... ... ... ... ... . ...

一点心得.rar

85.49 KB, 阅读权限: 1

GPIO_LED.rar

75.46 KB

相关帖子

lixiaoxu2meng| | 2011-11-17 12:45 | 显示全部楼层
好东西

使用特权

评论回复
windjpg| | 2011-11-28 15:28 | 显示全部楼层
楼主这个新手不是很新嘛:lol

使用特权

评论回复
cooran| | 2011-11-28 16:48 | 显示全部楼层
很详细。感谢分享

使用特权

评论回复
xust_cyy| | 2011-12-4 22:58 | 显示全部楼层
谢谢分享   好东西呀

使用特权

评论回复
tianm| | 2011-12-4 23:23 | 显示全部楼层
嗯 不错有总结 就会有进步

使用特权

评论回复
sqcumt123| | 2011-12-5 15:14 | 显示全部楼层
楼主的这个态度很快就是一个资深人士了,嘻嘻,加油

使用特权

评论回复
大江东去| | 2011-12-6 13:05 | 显示全部楼层
楼主很有心

使用特权

评论回复
heartthrob| | 2012-3-12 00:24 | 显示全部楼层
好东西哦,非常感谢!

使用特权

评论回复
julien| | 2012-3-12 10:38 | 显示全部楼层
学习一下

使用特权

评论回复
julien| | 2012-3-12 10:39 | 显示全部楼层
:)裸主多分享点

使用特权

评论回复
dq8259| | 2013-3-22 10:26 | 显示全部楼层
楼主是个好人。

使用特权

评论回复
zmr1985| | 2013-3-22 10:28 | 显示全部楼层
M3初学者,感谢楼主。

使用特权

评论回复
lnhjsdf| | 2013-3-22 12:20 | 显示全部楼层
定时器中,TIM_TimeBaseStructure.TIM_ClockDivision,   什么意思啊,有些资料上说是采样分频???

使用特权

评论回复
royroyyy| | 2013-3-22 13:59 | 显示全部楼层
很好,共勉一个!

使用特权

评论回复
home1123abc| | 2013-6-5 13:18 | 显示全部楼层

使用特权

评论回复
艾丝凡啊| | 2014-4-29 15:13 | 显示全部楼层
楼主 100000000000000000000000000000000000000000000个赞  你咋不早点出现在我的世界里呢  我都想和你谈恋爱了 你太贴心了

使用特权

评论回复
猥琐致胜| | 2014-9-13 15:19 | 显示全部楼层
楼主你好,我也刚开始学习这款板子,希望与您共同交流

使用特权

评论回复
ilikerome| | 2015-3-7 10:46 | 显示全部楼层
收藏,谢谢了

使用特权

评论回复
shenmu2012| | 2015-3-8 15:50 | 显示全部楼层
头文件包含了你要用到的外设的API封装。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

16

帖子

1

粉丝