智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 140854|回复: 394
打印 上一主题 下一主题

[Kinetis ARM微控制器] 【2016.4.8更新】超核K60/K64/K22 经典入门资料 固件库V2.6发布 -全面支持IAR Keil

    [复制链接]

68

主题

439

帖子

2

精华

版主

Rank: 9Rank: 9Rank: 9

积分
4618
QQ
威望
2342
贡献
1290
兑换币
1175
注册时间
2009-12-24
在线时间
493 小时
跳转到指定楼层
1#
发表于 2013-9-14 21:28:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yandld 于 2016-4-25 21:47 编辑

【2016.4.8日更新】超核K60DN/K60FX/K64/ 经典入门资料 V2.6开发包发布 42源码+中文手册+入门视频教程 支持IAR KEIL
正式升级V2.6 ~~!

最新代码: http://git.oschina.net/yandld/CH-K-Lib/repository/archive/master (需要注册下 码云会员)


  • 修改了大量函数接口,代码风格更加统一,注释也更加清晰。
  • 修复了V2.4x版本中大量BUG和不明确的地方。
  • 希望这个版本能给大家呈现出一份非常好的Kinetis学习资料~~ 大家一起努力~~
  • 并且继续延续CMSIS驱动文件风格 启动文件不再乱七八糟。只会有startup_MKxxxx.s  和 system_MKxxx.c这2个文件 IAR和Keil下都是这样。
  • 同时支持IAR 和KEIL
  • 这次把小车所需要的事例 比如 单路PWM 互补PWM ADC 正交解码 LPTMR单路脉冲计数 DMA多路脉冲计数等等,全部做成例程共大家快捷使用


资源列表:







【12.12日更新内容】
  • 修复MiniShell的一些小BUG 重新上传附件
  • 增加 FTM正交解码功能 在原子核历程(Atom Examples) 增加正交解码demo
  • Readme.txt中增加 论坛资料地址
  • 【最新固件库下载1】:   (此版本不更新,尽量用 下面的github下载)
  • 最新固件库下载2】: https://github.com/yandld/CH-K-Lib-V2.5-/archive/master.zip (github下载实时更新 推荐)
  • 其他资源(系列入门指南 中文手册 视频教程) :   www.beyondcore.net
  
  




【11.9日更新内容】

  超核V2.41版本正式发布:
  兼容所有V2.40API接口  全面支持IAR ,Keil 和 IAR 下代码完全相同。 IDE只是个工具。代码应该是在任何IDE及平台的都能跑的。否则。。不会是一套好代码  增加超核自己的CHGUI组件 相当于一个微型uCGUI
  增加MiniShell组件(类似Windows命令行)
  所有外设驱动采用结构体传参形式编写。移植性更高
  提供应用程序模板 无需新建工程
  核心板例程42个 包含MMA845x加速度传感器 OV7620等等外设  立足于智能车比赛
  开发板例程43个 包含uCGUI cCOS移植TCPIP等复杂实验 立足于深入开发Kinetis
【github代码下载及源代码在线浏览】:https://github.com/yandld/CH-Kinetis
【视频教程下载】: <地址回帖可见>
【相关软件下载 MDK4.53 IAR6.6等】:http://pan.baidu.com/s/1vdUWi
【BUG及意见反馈邮箱,固件库讨论QQ群:】 yandld@126.com  QQ群:247160311


【原帖内容】


超核K60 V2.4固件库发布 源码+中文手册+入门视频


我相信这是库是目前网上 最全最好用的固件库及底层驱动,希望我们一起把它发扬光大

超核K60固件库 为飞思卡尔Kinetis系列的开发者提供了丰富的底层驱动函数,接口形式类似STM32固件库。由于KinetisK系列的向下兼容性,所以固件库 只需更改启动文件就可以适用于K10

同时,驱动库代码全部开源,提供35个例程,包括PWM,ADC OV7620等等。还提供Keil IAR  CW的固件库模板程序。自从2012年发布该固件库第一个版本后,受到广大智能车车友和公司工程师的支持!

如果遇到使用难题或者BUG 欢迎您及时沟通联系我们,大家的反馈、鼓励和支持是固件库发展的最好动力!
联系方式: email: yandld@126.com
欢迎大家加入QQ群讨论:247160311

首先要说明的是: 次本版和之前版本 区别很大!全面的改进升级!


特点一: 资料完善丰富
1. 配有完善中文库函数使用手册
2. Coding Style(代码风格): 类似STM32固件库 但是有所改进  配合  Keil CW IAR 模板程序
3.个例程应用例程  涵盖 固件库几乎所有函数使用
4.Keil IAR CW下的工程模板 以及大量使用资料
5.详情请见最后下载列表

特点二: 包含的模块增加。具体包含:
1 模拟: ADC  DAC
2 FTM  灵活定时器(产生PWM,定时中断,或者脉冲捕获 及 正交解码)
3 TSI    触摸感应按键
4 通讯接口模块  UART  SPI    I2C  UART CAN  SD(最后的封装形式类似STM32固件库)
5 PIT 周期性定时器  最简单的定时器 用于产生周期性中断
6 RTC 实时时钟
7 DMA  最好用的DMA构件 支持所有通讯外设
8 SD     SDIO构件 目前只支持SD卡
9 WDOG看门狗
10 GPIO  这么没有还怎么玩!。。。封装形式类似STM32
11 LPTM:可产生定时中断 在智能车比赛里通常用作 编码器计数
12 FLASH 内部FLASH操作函数
13  SYS(倍频 NVIC配置 等)
14  DELAY(使用M4内核SysTick做成的精准延时模块,从此不必for延时~)1 模拟: ADC  DAC

特点三   规范了所有外设的模块接口,命名方式和初始化方式类似STM32固件库
1. 比如想让一个GPIO输出高低电平:

  1. GPIO_InitTypeDef GPIO_InitStruct1;   //先定义一个GPIO初始化结构体
  2.    GPIO_InitStruct1.GPIO_Pin = GPIO_Pin_15;
  3.    GPIO_InitStruct1.GPIO_InitState = Bit_RESET;                 //设为输出是 输出低电平
  4.    GPIO_InitStruct1.GPIO_IRQMode = GPIO_IT_DISABLE;     //禁止引脚外部中断
  5.    GPIO_InitStruct1.GPIO_Mode = GPIO_Mode_OPP;              //推挽输出
  6.    GPIO_InitStruct1.GPIOx = PTA;
  7.    GPIO_Init(&GPIO_InitStruct1);               //最后传入初始化结构地址 完成初始化
复制代码
这样PTA15就输出低电平了,其他模块都是类似的方法,先定义XXXX_InitTypeDef 然后赋参数,然后XXXX_Init(&XXXX_InitTypeStruct1); 调用
怎么样,是不是和STM32固件库神似呀 哈哈! 玩过STM32的上手没难度。
2 再比如 想让一个串口初始化,就更简单了:
  1. UART_DebugInitStruct1.UART_BaudRate = 115200;                       //定义波特率
  2. UART_DebugInitStruct1.UARTxMAP = UART4_RX_E24_TX_E25; // 使用UART4 RxE24 引脚 Tx E25引脚
  3. UART_Init(&UART_DebugInitStruct1); //所有模块都是这样 XXXX_Init(&XXX_InitStruct1);
复制代码
其中 UART4_RX_E24_TX_E25 是预先定义好的宏,在 uart.h 里 如下,只要选择其中一个就行了,省去了PinMux配置
  1. #define UART0_RX_PA1_TX_PA2       (0x00004410U)
  2. #define UART0_RX_PA14_TX_PA15   (0x00039E18U)
  3. #define UART0_RX_PB16_TX_PB17  (0x00042258U)
  4. #define UART0_RX_PD6_TX_PD7      (0x00018ED8U)
  5. #define UART1_RX_PE0_TX_PE1       (0x00000319U)
  6. #define UART1_RX_C3_TX_C4           (0x0000C899U)
  7. #define UART2_RX_D2_TX_D3           (0x000086DAU)
  8. #define UART3_RX_B10_TX_B11       (0x0002965BU)
  9. #define UART3_RX_C16_TX_C17      (0x0004229BU)
  10. #define UART3_RX_E4_TX_E5           (0x00010B1BU)
  11. #define UART4_RX_E24_TX_E25      (0x0006331CU)
  12. #define UART4_RX_C14_TX_C15     (0x00039E9CU)
复制代码
还有,固件库中弱化了 系统时钟的表现,不必考虑系统有多少时钟,每个外设都是由什么时钟驱动的。多少分频 。这些都不需要管,固件库已经帮你做好了。比如你使用SYS构件的SystemClockUpdate 修改主频。然后再调用一次串口初始化、串口波特率只要输入的还是115200.     那最后肯定还是115200的波特率。时钟在构件中已经被重新计算过了。
3 再说一个困扰做智能车小朋友很久的问题,倍频问题:
使用固件库,只需要调用
  1. SystemClockSetup(ClockSource_IRC,CoreClock_96M);//使用内部RC时钟,倍频到96M
复制代码
这样,就完成了PLL倍频,其中ClockSource_IRC 和 CoreClock_96M 都是可以选择的宏他们在sys.h中,具体见参考手册。比如CoreClock就有以下选择
  1. #define CoreClock_200M   
  2. #define CoreClock_100M   
  3. #define CoreClock_96M   
  4. #define CoreClock_72M   
  5. #define CoreClock_64M   
  6. #define CoreClock_48M  
复制代码
4调智能车的重头戏:PWM产生
PWM可以去驱动电机和 舵机无论在智能车的哪个组,PWM波产生都是必不可少的。
  1. FTM_InitStruct1.Frequency = 1000;               // 设定频率1KHZ
  2. FTM_InitStruct1.FTMxMAP = FTM0_CH0_PC1;          //使用FTM0 CH0 模块, 引脚是PC1
  3. FTM_InitStruct1.FTM_Mode = FTM_Mode_EdgeAligned; //边沿对齐模式,大家做这多半用这个模式
  4. FTM_InitStruct1.InitalDuty = 4000;                            //占空比为40%
  5. FTM_Init(&FTM_InitStruct1);
复制代码
其中 引脚和通道的选择也是宏定义,大家选择就行了:
  1. #define FTM0_CH0_PC1    (0x00108100U)
  2. #define FTM0_CH0_PA3                (0x000c0300U)   //与JTAG冲突,慎用
  3. #define FTM0_CH1_PC2    (0x00108210U)
  4. #define FTM0_CH1_PA4    (0x000c0410U)
  5. #define FTM0_CH2_PC3    (0x00108320U)
  6. #define FTM0_CH2_PA5    (0x000c0520U) //与JTAG冲突,慎用
  7. #define FTM0_CH3_PC4    (0x00108430U)
  8. #define FTM0_CH4_PD4    (0x0010c440U)
  9. #define FTM0_CH5_PD5    (0x0010c550U)
  10. #define FTM0_CH5_PA0    (0x000c0050U) //与JTAG冲突,慎用
  11. #define FTM0_CH6_PD6    (0x0010c660U)
  12. #define FTM0_CH6_PA1    (0x000c0160U) //与JTAG冲突,慎用
  13. #define FTM0_CH7_PD7    (0x0010c770U)
  14. #define FTM0_CH7_PA2    (0x000c0270U) //与JTAG冲突,慎用
  15. #define FTM1_CH0_PA12   (0x000c0c01U)
  16. #define FTM1_CH0_PB0    (0x000c4001U)
  17. #define FTM1_CH1_PA13   (0x000c0d11U)
  18. #define FTM1_CH1_PB1    (0x000c4111U)
  19. #define FTM2_CH0_PB18   (0x000c5202U)
  20. #define FTM2_CH1_PB19   (0x000c5312U)
复制代码
想要改变占空比,只需要调用      
  1. FTM_PWM_ChangeDuty(FTM0_CH0_PC1,6000);//占空比60%
复制代码
这样,占空比就从初始化的40% 上升到60% 了
4 再来一个easy的问题,延时: 延时是任何程序都用到的模块,你还在用for延时吗?  太out拉! 只要调用下初始化:

  1. //初始化延时模块
  2.         DelayInit();
复制代码
然后就可以用SysTick 实现精准延时拉:

  1. DelayMs(300); //延时300MS
  2. DelayUs(500); //延时500US
复制代码
特点三   跨IDE支持。Keil,IAR和CW之前互相移植没难度。 我已经做好了3个IDE下的模板

资料下载列表 <部分附件回帖可见> 支持下我们吧~~
0.网盘打包下载地址:
http://pan.baidu.com/share/home?uk=2870907047
1.超核固件库V2.4 中文使用手册

2.固件库源码(包含IAR Keil 和 CodeWarrior 模板)


5.超核固件库V2.4  示例程序(一共34个) 下载地址:

6.视频教程:
入门视频教程1   (如无法观看请点击我)
入门视频教程2    (如无法观看请点击我)
入门视频教程3    (如无法观看请点击我)
入门视频教程4    (如无法观看请点击我)
入门视频教程5    (如无法观看请点击我)
入门视频教程6    (如无法观看请点击我)
门视频教程7    (如无法观看请点击我)
门视频教程8    (如无法观看请点击我)

固件库会不定期更新,建议大家收藏附件中的网盘地址,有事没事就来Check update 吧·~

7 部分截图欣赏 <部分附件回帖可见>
   V2.4配套的 评估硬件---原子核 核心板-可作为智能车核心板之用

V2.4固件库中文使用手册

V2.4固件库 例程截图
在Keil下使用 V2.4版本固件库


在IAR下使用 V2.4版本固件库

在CW下使用 V2.4版本固件库










本帖子中包含更多资源

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

x

0

主题

1

帖子

0

精华

注册会员

Rank: 2

积分
14
威望
9
贡献
5
兑换币
3
注册时间
2013-9-15
在线时间
0 小时
毕业学校
中国石油大学(华东)
2#
发表于 2013-9-15 08:37:52 | 只看该作者

回帖奖励 +1

2.4的库用了一段时间了,学习中
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

注册会员

Rank: 2

积分
25
威望
13
贡献
10
兑换币
6
注册时间
2013-9-15
在线时间
1 小时
毕业学校
中国石油大学
3#
发表于 2013-9-15 08:52:48 | 只看该作者
很详细的资料,容易上手,楼主好人
回复 支持 反对

使用道具 举报

0

主题

25

帖子

0

精华

高级会员

Rank: 4

积分
620
威望
324
贡献
234
兑换币
162
注册时间
2012-3-28
在线时间
31 小时
毕业学校
信阳四高
4#
发表于 2013-9-15 09:03:59 | 只看该作者
好好,我一直都在用超核的底层,赶脚很好用哦哦:victory::victory::victory:
回复 支持 反对

使用道具 举报

17

主题

950

帖子

1

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4892

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

威望
3047
贡献
817
兑换币
1947
注册时间
2013-1-28
在线时间
514 小时
5#
发表于 2013-9-15 09:55:16 | 只看该作者
回复 支持 反对

使用道具 举报

24

主题

448

帖子

1

精华

跨届大侠

I AM IRON MAN’S FAN

Rank: 10Rank: 10Rank: 10

积分
7066
威望
3447
贡献
1949
兑换币
1903
注册时间
2011-7-23
在线时间
835 小时
6#
发表于 2013-9-15 11:20:34 | 只看该作者
给杨哥顶起来!好用,谁用谁知道!
回复 支持 反对

使用道具 举报

9

主题

137

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2905
QQ
威望
1421
贡献
914
兑换币
775
注册时间
2011-12-12
在线时间
285 小时
7#
发表于 2013-9-15 11:43:08 | 只看该作者
正在学习中,比较之前的版本的却很好用,顶杨哥
回复 支持 反对

使用道具 举报

0

主题

8

帖子

0

精华

注册会员

Rank: 2

积分
97
威望
57
贡献
20
兑换币
27
注册时间
2013-9-1
在线时间
10 小时
毕业学校
wyu
8#
发表于 2013-9-15 17:41:33 | 只看该作者
在Q群看到了,来帮顶
回复 支持 反对

使用道具 举报

3

主题

126

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2203
威望
1139
贡献
684
兑换币
712
注册时间
2012-11-12
在线时间
190 小时
9#
发表于 2013-9-15 20:49:53 | 只看该作者
帮顶
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

注册会员

Rank: 2

积分
93
威望
59
贡献
24
兑换币
27
注册时间
2013-8-24
在线时间
6 小时
毕业学校
河北科技
10#
发表于 2013-9-15 21:43:59 | 只看该作者
靠。。看了一下,果然强大,秒杀LPLD和野火啊。。 不过操作比较复杂,玩过STM32的玩这个轻松了!。下面居然有视频教程!!!!顶!

回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-27 19:04 , Processed in 0.097445 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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