智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 26919|回复: 84
打印 上一主题 下一主题

KL25终于有了自己的库,KL25库开源公布

  [复制链接]

141

主题

8906

帖子

6

精华

杰出人士

蓝宙电子科技有限公司

Rank: 12Rank: 12Rank: 12

积分
18725
QQ
威望
5859
贡献
5686
兑换币
3557
注册时间
2008-8-1
在线时间
3590 小时
跳转到指定楼层
1#
发表于 2014-11-6 18:33:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 bydes 于 2014-11-6 18:45 编辑

KL25终于有了自己的库,KL25库开源公布


一、库文件公布原由:对众多飞思卡尔智能车的学习爱好者而言,大家都知道一个芯片底层函数库的作用,对于一个新的芯片,如果没有封装好的底层函数库,我们就必须参考芯片的技术手册,一步步的来配置相应的寄存器,而这些寄存器的配置都是相当晦涩难懂与枯燥无味的。如果让一个初学者从这里开始学习智能车程序的编写,是相当艰难的,不是有相当大毅力的学习者可能在这步就停止了,大浪淘沙这里就滤掉了一大批。为了降低KL25学习的台阶,使更多飞思卡尔智能车的车友能迅速入门和使用这款cortex-m0+内核的控制芯片,我们耗费心力封装了专属于KL25的底层函数库,让车友们零基础也能很快的熟悉使用这款芯片。做过底层函数封装的开发者可能知道开发一个底层函数库的艰辛之处,但对于好多人来说可能不知道这其中是一个怎样的过程。每推出一款新的芯片,飞思卡尔官方其实都已经封装了相应的芯片底层库(图1-1),但是通常我们没有直接使用其官方的库,之所以有这种现象出现的原因,一则是因为官方给的库封装不是很完善和完整,二则是因为官方给的库不是很方便大家使用。

1-1 飞思卡尔官方KL25底层库

二、库文件参考及感谢相应开发者1、感谢王宜怀老师。在这次封装KL25的过程中我们参考了很多资料(图1-2),这其中首先要感谢王宜怀老师,因此我们在征求了王老师的意见后,我们的部分外设库都是参考借鉴的王宜怀老师开源给我们的资料(图1-3),



1-2 王宜怀老师提供的资料



1-3 苏州大学王宜怀老师关于KL25的底层库

但有点美中不足的是,王宜怀老师封装的库都是用飞思卡尔的官方的CW编译器编译的(图1-4),但是相信大部分智能车的车友还是倾向于使用IAR编译器,所以我们把王宜怀老师所有的CW外设都移植到了IAR编译器中。


1-4 CW编译环境下的库


为了保证KL25函数库的完整性,在王宜怀老师已有的外设库基础上,我们又添加了很多其他智能车制作必须的外设库(图1-5),务求保证我们的KL25函数库完善和完整,在一般单片机GPIOADCPIT等功能外设模块的基础上,我们还添加了CCD、陀螺仪、舵机驱动、电机驱动、速度采集、OLED显示、捕食者摄像头、按键输入等必须外设的驱动代码,使用时用户只需要根据自己对引脚进行相应修改就好了。这样做的目的就是让智能车爱好者,可以直接调用相应的库,极大的方便了智能车爱好者对于底层的苦恼。



1-5 蓝宙kl25完整封装库

2、感谢野火团队。为了保证使用的方便性,加之目前K60芯片在智能车制作过程中的广泛应用,因此我们库按照原来的K60函数库的形式进行封装,在K60底层函数库的封装过程中,我们参考了野火的《三天入门K60》,此次KL25函数库的封装过程我们也借鉴了一些野火封装K60库的方法来封装KL25,从而使KL25的使用和K60一样方便,为了感谢野火的开源精神,我们在库文件引用野火相关例程都做了引用野火的注释,大家可以例程中看见,再次感谢野火团队和火哥!同时蓝宙KL25封装后也第一时间进行了开源,大家一起来分享,希望更多的人参与到开源,一起将飞思卡尔做的更加简单方便!(图1-6)。


1-6 蓝宙封装库

3、感谢飞思卡尔技术人员。基于蓝宙和飞思卡尔的合作关系,为了保证代码的正确性,我们还就KL25库封装过程中遇到的很多问题和飞思卡尔的工程师进行了多次交流和沟通(图1-7),感谢飞思卡尔工程师对我们提供的大力支持






1-7 与飞思卡尔技术工程师邮件

本着库文件能够形成一个风格,让广大智能爱好者,能够进行良好的程序移植的原则。故按照野火K60的风格进行KL25代码的整理和梳理。因为都是ARM系列单片机,故有许多地方可以借鉴和参考。站在巨人的肩膀成长的更快。故有一些代码是在K60上做的修改,但是相信各位深入了解代码的人都知道。芯片变化比较大,故需要对照数据手册进行一一对照和勘误,中间我们向飞思卡尔公司的技术支持和王宜怀老师都多次进行咨询。才形成目前版本的KL25库。后续我们按照这个风格整理出更改的ARM系列单片机库,当然更希望飞思卡尔能出相关的库文件,这样对广大爱好者是更改的帮助。下面这些代码是参照野火K60代码:




  该文件中部分元文件是参考飞思卡尔CW10.3例程、野火K60的底层库、王宜怀老师库文件,当然中间的大多数是直接在苏州大学王宜怀老师的相关资料中进行修改得到了,因为文件较多,这里就不一一列举,比如是参考野火进行更改是参考苏州大学王老师的。
底层库标准较多,还有部分程序是参考飞思卡尔原文件,这里面就不列出来了。三、模块封装举例-捕食者摄像头库详解尽管在开源代码中添加了好多我们蓝宙特有的外设库,但是对于初学者而言,仍然存在看不懂我们写的代码的情况,为了使大家能更加透彻的理解我们的代码,后面我们将陆续讲解我们添加外设库的代码,以方便初学者更加方便和快捷的学习和使用我们的函数库,首先我以捕食者摄像头为例来说明。对于摄像头而言,最重要的几个信号脚莫过于行信号、场信号和数据引脚Y0~Y7了。但对于捕食者摄像头而言,我们添加了两根IIC的信号脚SCLSDA,用于对捕食者摄像头的寄存器进行配置,我们之所以把捕食者摄像头寄存器的配置代码也开源出来是为了使我们的使用者能更灵活的配置和使用我们的摄像头,用户可以根据我们给出的捕食者摄像头的数据手册对捕食者摄像头的寄存器进行详细的配置以达到自己想要的效果。但灵活和复杂好像一直存在着互斥关系,我们给大家提供的灵活度越高,就意味着大家书写代码的任务量就会越大。KL25的捕食者摄像头代码中,我们首先要关注的是捕食者摄像头的IIC配置部分(图1-8),我们代码中默认使用的是模拟IIC的程序,默认引脚为SDA----PTC11SCL----PTC10,因为KL25输出和输入的寄存器不同,所以SDA的输出和输入我们分别配置为PTC的输出和输入寄存器。用户如果自己定义了其他的引脚可以在这里进行相应的修改。



1-8 捕食者摄像头寄存器IIC配置

摄像头的寄存器配置完成后,我们就可以看到捕食者摄像头的行、场信号输出。程序中我们默认的行、场信号脚分别为PTA14PTA17,如果大家定义的默认引脚与我们的默认程序与我们的不一致,需要更改引脚的的地方主要有三处(图1-9),首先是在main.c中修改行场中断的引脚,其次在landzopredator.c中修改行场信号的初始化引脚,最后需要在中断函数isr.c中修改中断的触发引脚号,如果需要定义的引脚没有事先进行中断定义,我们还需要重新再映射一下中断服务函数。




1-9 捕食者摄像头行场信号脚

调整好行场信号脚,接下来我们可以调整摄像头的数据采集引脚,我们的KL开源例程采用DMA传输摄像头采集的数据,默认的数据传输引脚为PTD0~7DMA触发引脚为PTA16(图1-10),如果大家需要改变数据传输的引脚只需调整PTD_BYTE0_IN即可,调整DMA的触发引脚则需要改变PTA16






1-10 捕食者摄像头Y0~Y7数据引脚

后续我们还会一一介绍其他外设的模块的代码例程。 本着开源的原则,埋头干事的原则,蓝宙公布一款单片机的库函数,让大家学习一款单片机更容易。热烈欢迎大家在该库上进行修改和发挥,进一步完善该库。蓝宙本次不但开源了KL25封装库,还同时开源了KL25系统板的相应资料。开源,让技术更加简单,希望能够为广大车友服务好,由于是第一版库资料,如果不足之处,或者大家有什么疑问或者建议,有问题欢迎通过站内信或联系蓝宙人员欢迎致电我司0553-5841830,我们将不断对库进行完善,给大家提供完整的飞思卡尔KL25开源库资料!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

29

主题

777

帖子

0

精华

常驻嘉宾

简单的算法+完美的机械结构

Rank: 8Rank: 8

积分
4688

优秀会员奖章活跃会员奖章在线王奖章论坛元老奖章

QQ
威望
2219
贡献
1497
兑换币
1390
注册时间
2013-11-8
在线时间
486 小时
2#
发表于 2014-11-6 18:33:49 | 只看该作者
O(∩_∩)O哈哈~,沙发是我的啦
我们一起走过 于 2014-11-7 08:56 使用 抢沙发 抢夺本帖沙发
回复 支持 反对

使用道具 举报

141

主题

8906

帖子

6

精华

杰出人士

蓝宙电子科技有限公司

Rank: 12Rank: 12Rank: 12

积分
18725
QQ
威望
5859
贡献
5686
兑换币
3557
注册时间
2008-8-1
在线时间
3590 小时
3#
 楼主| 发表于 2014-11-6 18:49:53 | 只看该作者
希望我们整理并编辑的KL25库对使用KL25的同学和老师有帮助!谢谢大家的支持!
回复 支持 反对

使用道具 举报

5

主题

83

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1948
威望
955
贡献
567
兑换币
602
注册时间
2013-11-19
在线时间
213 小时
毕业学校
广东工业大学华立学院
4#
发表于 2014-11-6 18:50:27 | 只看该作者
沙发是我的。。。。哈哈哈。。。好多新技术啊
回复 支持 反对

使用道具 举报

141

主题

8906

帖子

6

精华

杰出人士

蓝宙电子科技有限公司

Rank: 12Rank: 12Rank: 12

积分
18725
QQ
威望
5859
贡献
5686
兑换币
3557
注册时间
2008-8-1
在线时间
3590 小时
5#
 楼主| 发表于 2014-11-6 18:52:18 | 只看该作者
再次感谢王宜怀老师资料,野火团队MK60库以及飞思卡尔技术人员的支持才帮助我们完成了这次KL25库的整理,希望我们的开源行动利于大家更快的学习KL25单片机,让大家更快入门智能车比赛!
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

注册会员

Rank: 2

积分
39
威望
31
贡献
6
兑换币
8
注册时间
2014-11-3
在线时间
1 小时
毕业学校
宣城职业技术学院
6#
发表于 2014-11-6 18:52:19 | 只看该作者
没抢到,伤心
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

注册会员

Rank: 2

积分
170
QQ
威望
90
贡献
56
兑换币
57
注册时间
2014-5-13
在线时间
12 小时
毕业学校
三墩职业技术学院
7#
发表于 2014-11-6 19:08:18 | 只看该作者
顶顶顶!支持蓝宙
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

Rank: 1

积分
9
QQ
威望
5
贡献
4
兑换币
-1
注册时间
2014-11-6
在线时间
0 小时
8#
发表于 2014-11-6 19:08:28 | 只看该作者
KL25资料这么多啊,赶紧dowm一下,感谢蓝宙分享,新手,今年想用KL25,正愁没资料呢,谢谢蓝宙开源,赞一个!
回复 支持 反对

使用道具 举报

10

主题

1514

帖子

0

精华

金牌会员

智能车,首选泰庆

Rank: 6Rank: 6

积分
1715

活跃会员奖章在线王奖章

QQ
威望
427
贡献
400
兑换币
497
注册时间
2014-11-4
在线时间
444 小时
9#
发表于 2014-11-6 19:08:29 | 只看该作者
赞!
回复 支持 反对

使用道具 举报

141

主题

8906

帖子

6

精华

杰出人士

蓝宙电子科技有限公司

Rank: 12Rank: 12Rank: 12

积分
18725
QQ
威望
5859
贡献
5686
兑换币
3557
注册时间
2008-8-1
在线时间
3590 小时
10#
 楼主| 发表于 2014-11-6 19:09:07 | 只看该作者
浅醉 发表于 2014-11-6 18:50
沙发是我的。。。。哈哈哈。。。好多新技术啊

谢谢,我们将开源更多资料,方便大家学习!
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|亿加合和智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-5-5 15:07 , Processed in 0.075145 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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