yandld11 发表于 2013-9-19 13:00:51

飞思卡尔Kinetis K60 入门 超核固件库V2.4 源码-例程-视频 手册

本帖最后由 yandld11 于 2013-9-19 13:13 编辑

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

我相信这是库是目前网上 最全最好用的固件库及底层驱动,希望我们一起把它发扬光大,让他成为在官方的PlatformSDK(涵盖Kinetis所有系列的官方库)出来之前,最好用的库(透露个内部消息,PlatformSDK 一时半会出不来的。。)!

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

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

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


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

特点一: 资料完善丰富
1. 配有完善中文库函数使用手册
2. Coding Style(代码风格): 类似STM32固件库 但是有所改进配合Keil CW IAR 模板程序
3.个例程应用例程涵盖 固件库几乎所有函数使用
4.Keil IAR CW下的工程模板 以及大量使用资料
5.详情请见最后下载列表
特点二: 包含的模块增加。具体包含:
1 模拟: ADCDAC
2 FTM灵活定时器(产生PWM,定时中断,或者脉冲捕获 及 正交解码)
3 TSI    触摸感应按键
4 通讯接口模块UARTSPI    I2CUART CANSD(最后的封装形式类似STM32固件库)
5 PIT 周期性定时器最简单的定时器 用于产生周期性中断
6 RTC 实时时钟
7 DMA最好用的DMA构件 支持所有通讯外设
8 SD   SDIO构件 目前只支持SD卡
9 WDOG看门狗
10 GPIO这么没有还怎么玩!。。。封装形式类似STM32
11 LPTM:可产生定时中断 在智能车比赛里通常用作 编码器计数
12 FLASH 内部FLASH操作函数
13SYS(倍频 NVIC配置 等)
14DELAY(使用M4内核SysTick做成的精准延时模块,从此不必for延时~)1 模拟: ADCDAC

特点三   规范了所有外设的模块接口,命名方式和初始化方式类似STM32固件库
1. 比如想让一个GPIO输出高低电平:   GPIO_InitTypeDef GPIO_InitStruct1;   //先定义一个GPIO初始化结构体
   GPIO_InitStruct1.GPIO_Pin = GPIO_Pin_15;
   GPIO_InitStruct1.GPIO_InitState = Bit_RESET;               //设为输出是 输出低电平
   GPIO_InitStruct1.GPIO_IRQMode = GPIO_IT_DISABLE;   //禁止引脚外部中断
   GPIO_InitStruct1.GPIO_Mode = GPIO_Mode_OPP;            //推挽输出
   GPIO_InitStruct1.GPIOx = PTA;
   GPIO_Init(&GPIO_InitStruct1);               //最后传入初始化结构地址 完成初始化这样PTA15就输出低电平了,其他模块都是类似的方法,先定义XXXX_InitTypeDef 然后赋参数,然后XXXX_Init(&XXXX_InitTypeStruct1); 调用
怎么样,是不是和STM32固件库神似呀 哈哈! 玩过STM32的上手没难度。
2 再比如 想让一个串口初始化,就更简单了:UART_DebugInitStruct1.UART_BaudRate = 115200;                     //定义波特率
UART_DebugInitStruct1.UARTxMAP = UART4_RX_E24_TX_E25; // 使用UART4 RxE24 引脚 Tx E25引脚
UART_Init(&UART_DebugInitStruct1); //所有模块都是这样 XXXX_Init(&XXX_InitStruct1);其中 UART4_RX_E24_TX_E25 是预先定义好的宏,在 uart.h 里 如下,只要选择其中一个就行了,省去了PinMux配置#define UART0_RX_PA1_TX_PA2       (0x00004410U)
#define UART0_RX_PA14_TX_PA15   (0x00039E18U)
#define UART0_RX_PB16_TX_PB17(0x00042258U)
#define UART0_RX_PD6_TX_PD7      (0x00018ED8U)
#define UART1_RX_PE0_TX_PE1       (0x00000319U)
#define UART1_RX_C3_TX_C4         (0x0000C899U)
#define UART2_RX_D2_TX_D3         (0x000086DAU)
#define UART3_RX_B10_TX_B11       (0x0002965BU)
#define UART3_RX_C16_TX_C17      (0x0004229BU)
#define UART3_RX_E4_TX_E5         (0x00010B1BU)
#define UART4_RX_E24_TX_E25      (0x0006331CU)
#define UART4_RX_C14_TX_C15   (0x00039E9CU)还有,固件库中弱化了 系统时钟的表现,不必考虑系统有多少时钟,每个外设都是由什么时钟驱动的。多少分频 。这些都不需要管,固件库已经帮你做好了。比如你使用SYS构件的SystemClockUpdate 修改主频。然后再调用一次串口初始化、串口波特率只要输入的还是115200.   那最后肯定还是115200的波特率。时钟在构件中已经被重新计算过了。
3 再说一个困扰做智能车小朋友很久的问题,倍频问题:
使用固件库,只需要调用SystemClockSetup(ClockSource_IRC,CoreClock_96M);//使用内部RC时钟,倍频到96M还有,固件库中弱化了 系统时钟的表现,不必考虑系统有多少时钟,每个外设都是由什么时钟驱动的。多少分频 。这些都不需要管,固件库已经帮你做好了。比如你使用SYS构件的SystemClockUpdate 修改主频。然后再调用一次串口初始化、串口波特率只要输入的还是115200.   那最后肯定还是115200的波特率。时钟在构件中已经被重新计算过了。
3 再说一个困扰做智能车小朋友很久的问题,倍频问题:
使用固件库,只需要调用
SystemClockSetup(ClockSource_IRC,CoreClock_96M);//使用内部RC时钟,倍频到96M
复制代码

这样,就完成了PLL倍频,其中ClockSource_IRC 和 CoreClock_96M 都是可以选择的宏他们在sys.h中,具体见参考手册。比如CoreClock就有以下选择#define CoreClock_200M   
#define CoreClock_100M   
#define CoreClock_96M   
#define CoreClock_72M   
#define CoreClock_64M   
#define CoreClock_48M4调智能车的重头戏:PWM产生
PWM可以去驱动电机和 舵机无论在智能车的哪个组,PWM波产生都是必不可少的。FTM_InitStruct1.Frequency = 1000;               // 设定频率1KHZ
FTM_InitStruct1.FTMxMAP = FTM0_CH0_PC1;          //使用FTM0 CH0 模块, 引脚是PC1
FTM_InitStruct1.FTM_Mode = FTM_Mode_EdgeAligned; //边沿对齐模式,大家做这多半用这个模式
FTM_InitStruct1.InitalDuty = 4000;                            //占空比为40%
FTM_Init(&FTM_InitStruct1);其中 引脚和通道的选择也是宏定义,大家选择就行了:#define FTM0_CH0_PC1    (0x00108100U)
#define FTM0_CH0_PA3                (0x000c0300U)   //与JTAG冲突,慎用
#define FTM0_CH1_PC2    (0x00108210U)
#define FTM0_CH1_PA4    (0x000c0410U)
#define FTM0_CH2_PC3    (0x00108320U)
#define FTM0_CH2_PA5    (0x000c0520U) //与JTAG冲突,慎用
#define FTM0_CH3_PC4    (0x00108430U)
#define FTM0_CH4_PD4    (0x0010c440U)
#define FTM0_CH5_PD5    (0x0010c550U)
#define FTM0_CH5_PA0    (0x000c0050U) //与JTAG冲突,慎用
#define FTM0_CH6_PD6    (0x0010c660U)
#define FTM0_CH6_PA1    (0x000c0160U) //与JTAG冲突,慎用
#define FTM0_CH7_PD7    (0x0010c770U)
#define FTM0_CH7_PA2    (0x000c0270U) //与JTAG冲突,慎用
#define FTM1_CH0_PA12   (0x000c0c01U)
#define FTM1_CH0_PB0    (0x000c4001U)
#define FTM1_CH1_PA13   (0x000c0d11U)
#define FTM1_CH1_PB1    (0x000c4111U)
#define FTM2_CH0_PB18   (0x000c5202U)
#define FTM2_CH1_PB19   (0x000c5312U)想要改变占空比,只需要调用FTM_PWM_ChangeDuty(FTM0_CH0_PC1,6000);//占空比60%这样,占空比就从初始化的40% 上升到60% 了
4 再来一个easy的问题,延时: 延时是任何程序都用到的模块,你还在用for延时吗?太out拉! 只要调用下初始化://初始化延时模块
      DelayInit();然后就可以用SysTick 实现精准延时拉:DelayMs(300); //延时300MS
DelayUs(500); //延时500US特点三   跨IDE支持。Keil,IAR和CW之前互相移植没难度。 我已经做好了3个IDE下的模板

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

2.Keil 2.4固件库工程模板

3.IAR下 2.4固件库工程模板


6.部分视频教程:
http://v.youku.com/v_show/id_XNTk4NzM2NjA4.html?f=19297897
http://v.youku.com/v_show/id_XNTk4NzM2NjA4.html?f=19297897

http://v.youku.com/v_show/id_XNjA1MTg4ODY4.html?f=19297897
http://v.youku.com/v_show/id_XNjA1MTg4ODY4.html?f=19297897

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

yandld11 发表于 2013-9-19 18:01:47

自己顶下

ljt80158015 发表于 2013-9-19 18:05:50

K60 目前还是比较冷门吧

yandld11 发表于 2013-9-22 22:16:17

请删除此贴

NewKing 发表于 2013-11-1 16:11:36

先下载下来,留着!

Yanise 发表于 2013-11-1 23:02:55

顶你们!!!

Rainfieldwood 发表于 2013-11-2 01:29:05

mark先~~~

661球 发表于 2013-11-2 09:44:58

好东西啊···

木君之上 发表于 2013-11-2 18:33:18

这个必须支持,固件库真是个好东西。,

lipengjian 发表于 2013-11-14 21:58:36

好东西当然要顶下

木君之上 发表于 2013-12-5 20:16:56

必须要回复啊,这太强大了,支持啊!

motodefy 发表于 2013-12-7 14:21:51

这个也不错啊···{:lol:}

yandld11 发表于 2013-12-28 22:34:07

账号验证成功了。。。自己顶下。。~~~

yandld11 发表于 2013-12-28 22:34:23


最新版本在github上 : www.github.com/yandld/CH-K-Lib
我也搞了论坛:www.beyondcore.net

sblpp 发表于 2013-12-29 09:31:45

本帖最后由 sblpp 于 2013-12-29 09:41 编辑

看风格很像STM32的啊!
谢谢楼主分享!

yandld11 发表于 2013-12-29 11:15:09

虽然张的挺像的,但是。基本不是一回事。。

huhang 发表于 2014-1-6 17:00:53

顶下,支持

gameboyplus 发表于 2014-1-9 14:08:23

非常的有用,很是方便

FSL_TICS_ZJJ 发表于 2014-2-11 10:09:34

好贴,感谢楼主的分享!

busterace 发表于 2014-2-11 21:45:21

mark            

xinyinxing 发表于 2014-2-12 16:14:55

顶楼主!

weizuokai 发表于 2014-7-21 10:47:08

这个资料和你们超核网站公布的一样么

FSL_TICS_Robin 发表于 2014-7-21 10:55:27

weizuokai 发表于 2014-7-21 10:47
这个资料和你们超核网站公布的一样么

这个帖子还是2013年最后编辑的了,所以建议大家以他们网站信息为准。

Ai_evan 发表于 2014-7-24 09:50:04

感谢分享!!

jiang887786 发表于 2014-9-4 09:48:27

楼主很忙,生意也不错。
页: [1]
查看完整版本: 飞思卡尔Kinetis K60 入门 超核固件库V2.4 源码-例程-视频 手册