智能车制作
标题: 【2016.4.8更新】超核K60/K64/K22 经典入门资料 固件库V2.6发布 -全面支持IAR Keil [打印本页]
作者: yandld 时间: 2013-9-14 21:28
标题: 【2016.4.8更新】超核K60/K64/K22 经典入门资料 固件库V2.6发布 -全面支持IAR Keil
本帖最后由 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多路脉冲计数等等,全部做成例程共大家快捷使用
资源列表:
[attach]70865[/attach]
【12.12日更新内容】
【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 欢迎您及时沟通联系我们,大家的反馈、鼓励和支持是固件库发展的最好动力!
欢迎大家加入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输出高低电平:
- 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
复制代码这样,就完成了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_48M
复制代码4调智能车的重头戏: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拉! 只要调用下初始化:
然后就可以用SysTick 实现精准延时拉:
- DelayMs(300); //延时300MS
- DelayUs(500); //延时500US
复制代码 V2.4配套的 评估硬件---原子核 核心板-可作为智能车核心板之用
V2.4固件库中文使用手册
V2.4固件库 例程截图
在Keil下使用 V2.4版本固件库
在IAR下使用 V2.4版本固件库
在CW下使用 V2.4版本固件库
[attach]50714[/attach]
作者: jinweidi 时间: 2013-9-15 08:37
2.4的库用了一段时间了,学习中
作者: yunxiang1017 时间: 2013-9-15 08:52
很详细的资料,容易上手,楼主好人
作者: yi377798509 时间: 2013-9-15 09:03
好好,我一直都在用超核的底层,赶脚很好用哦哦:victory::victory::victory:
作者: kanwoe 时间: 2013-9-15 09:55
作者: j715473086 时间: 2013-9-15 11:20
给杨哥顶起来!好用,谁用谁知道!
作者: 蓝水双鱼 时间: 2013-9-15 11:43
正在学习中,比较之前的版本的却很好用,顶杨哥
作者: Obarong 时间: 2013-9-15 17:41
在Q群看到了,来帮顶
作者: beichen 时间: 2013-9-15 20:49
帮顶
作者: §☆☆§ 时间: 2013-9-15 21:43
靠。。看了一下,果然强大,秒杀LPLD和野火啊。。 不过操作比较复杂,玩过STM32的玩这个轻松了!。下面居然有视频教程!!!!顶!
作者: 小布的梦 时间: 2013-9-17 16:15
看着不错呐!!!:):):P:P:P:P:P:P
作者: Aresxhhl 时间: 2013-9-19 10:06
很好!很强大!谢谢!
作者: 智能车007 时间: 2013-9-21 13:13
顶! 一直在用超核 今天才看到 V2.4终于出了。 你们的固件库堪称大厂作品! 很好很强大 ! 顶了!
作者: luohongfu 时间: 2013-9-24 17:35
顶一个!!!!!
作者: 1047953424 时间: 2013-9-25 19:53
准备学习,收了。。。。。。。。。。
作者: 智能车007 时间: 2013-10-1 10:46
KEIL 的 模板已经熟了~~~IAR下的模板 用IAR 啥版本打开?
作者: yandld 时间: 2013-10-1 15:51
IAR6.5 版本打开。 另外我发现 用 6.6 建立的工程,用6.5打开有问题。。
作者: 智能车007 时间: 2013-10-6 17:17
神级帖, 这个要顶!!
作者: 智能车007 时间: 2013-10-8 14:03
我的IAR模板打不开,提示 不能打开EWW 工作间,怎么办 大神?
作者: 智能车007 时间: 2013-10-9 20:38
我发现 IAR 貌似有问题,6.6新建的工程 6.5就打不开, 官方的 和 其他家的IAR都这样!。靠 太坑爹了。还是KEIL好用
作者: yangguangyu 时间: 2013-10-9 22:19
顶顶顶啊!yandld 很给力啊!一直用超核的库,有什么问题都在群里及时的解决了,支持!!!!!!
作者: yangguangyu 时间: 2013-10-10 13:36
人气有点不行啊!今天在来顶一下
作者: 学海方舟 时间: 2013-10-11 10:39
能支持K10吗?
作者: yandld 时间: 2013-10-11 10:40
支持,!
作者: 智能车007 时间: 2013-10-12 16:26
上次群里讨论还有点问题:
Bootloeader 我试过了,没问题,下载很快,也不用担心锁片子。但是 Bootoader 下只能用Keil吗?
IAR要怎么设置, 我对Bootloader 原理还是不太清楚。
作者: 雨点路人 时间: 2013-10-12 17:16
不错,感觉例程很好!
作者: yandld 时间: 2013-10-13 12:03
Bootloader一句话概括就是:利用芯片中固件程序(出厂前就固化在芯片里或者 后面烧进去),引导外面的通讯数据进到单片机里,然后再把数据烧到单片机FLASH上,这个“数据” 就是用户程序代码。
作者: jiangyancn 时间: 2013-10-13 13:27
新手,学习飞思卡尔,求带哦。。
作者: 智能车007 时间: 2013-10-15 19:03
呵呵 我也是新手。不过有老大的教程,
作者: 胡天天 时间: 2013-10-15 19:39
很给力!!!!!!!!
作者: 胡天天 时间: 2013-10-15 20:02
不错哦!!!!!!!
作者: 执着追梦 时间: 2013-10-15 22:55
必须顶啊~
作者: 青龙00 时间: 2013-10-17 14:40
作者: 智能车007 时间: 2013-10-18 19:21
还要问一下, 固件库有FlexBus例程吗
作者: 雨点路人 时间: 2013-10-19 10:08
楼主分享的资料挺不错的,对于我这种青睐于keil编译器的飞思卡尔迷,很有帮助!感谢!
作者: Goritcly 时间: 2013-10-19 10:36
刚接触飞思卡尔,多谢分享!
作者: Speok 时间: 2013-10-19 19:54
很好的资料啊,顶
作者: 第九届新手 时间: 2013-10-21 20:46
非常不错,适合新手,顶一个!!!!!
作者: 只丶牵n1手_┓ 时间: 2013-10-21 22:39
回复来看看
作者: yi377798509 时间: 2013-10-21 23:11
实验室一直都用超核的库,很好,很强大:victory::victory::victory:
作者: kinggst 时间: 2013-10-22 13:31
absfk jbgasbgvfk
作者: 1874548238 时间: 2013-10-22 16:54
顶 顶顶
作者: 第九届新手 时间: 2013-10-23 14:42
请问大神, IAR版本的模板用哪个版本打开?
作者: yandld 时间: 2013-10-23 16:57
建议用IAR6.6 , IAR6.5 对上不兼容了。 6,6建的工程6,5打开时候有问题。 当然你也可以等6.7 我们目前正在做 Enable Supoort
作者: 第九届新手 时间: 2013-10-24 17:10
谢谢! 已经在学习中!
作者: yunlong1402 时间: 2013-10-24 21:18
今天遇到了 cannot open file “MK60DZ10。h”的问题,多亏你帮我 谢谢楼主!!!原来是keil 软件连接不上自带的文件。需要添加到工程里面。欢迎大家支持 超核电子!
作者: a_样品 时间: 2013-10-24 23:15
:lol:lol:lol
作者: 第九届新手 时间: 2013-10-26 08:03
很不错!!!!
作者: 助焊剂 时间: 2013-10-26 08:09
看起来不错,我现在 ,准备买一个试试
作者: 王光荣 时间: 2013-10-27 20:26
强大,帮顶
作者: 智能车007 时间: 2013-10-29 12:36
老大,我用一台电脑的IAR6.6 就能打开,另外一台电脑的IAR 6.6就提示 什么 Unknown Tool怎么回事??
作者: yandld 时间: 2013-10-29 19:56
你用盗版了呗。。。
作者: yandld 时间: 2013-10-29 19:58
本帖最后由 yandld 于 2013-10-29 21:05 编辑
另外: 飞思卡尔 是会出官方固件库的。水平非常之高,跟他比 ST的那个固件库 基本就弱爆了。我们争取大家在 这届比赛之前就能用上官方固件库。
作者: ゛|.life﹖ 时间: 2013-10-30 09:35
顶
作者: yandld 时间: 2013-11-1 10:03
目前这个东西并不是特完善。有空我会逐渐完善的。我其实对ucGUI并无爱。。最近会更新我的V2.4代码库,库本身函数暂不变。但会增加很多的外设驱动连接。还有类似uCGUI的简单GUI,Shell,SofewareTimer.RTOS抽象接口等等,仿照Linux的驱动模式。 最大限度的做到code 复用性和移植性。如果以后我们的程序还是像51时代一样,不讲架构。那样大部分工程师并不是做项目,而是研究寄存器怎么怎么配(甚至目前还有很多人把配置寄存器当做学习嵌入式的全部。。!)。这样话无疑陷入误区,在这个领域,中国会被国外甩的越来越远。
作者: Mr、Z° 时间: 2013-11-1 21:59
楼主真是个大好人啊 谢谢楼主
作者: kunder 时间: 2013-11-2 18:58
顶
作者: 丈二和尚 时间: 2013-11-3 15:26
顶起!!
作者: 空相救心 时间: 2013-11-4 13:42
作者: BMN李 时间: 2013-11-4 19:58
可以移植到L系列不哦?L系列好恼火,没啥中文资料。
作者: Element. 时间: 2013-11-4 20:58
看看有没有光盘资料啊
作者: ゛.χIиg墜 时间: 2013-11-5 10:58
用过 老板人很好 资料很给力
作者: BMN李 时间: 2013-11-5 19:17
顶!不错!!
作者: 爱可死/X 时间: 2013-11-5 21:07
支持超核!stm32学习者必须支持! 绝对碾压野火……
作者: 爱可死/X 时间: 2013-11-5 21:08
大家可以尝试一下!真的不错,用了一个月,感觉非常好
作者: 智能车007 时间: 2013-11-6 21:45
V2.41什么时候发布? 等不了啦!
作者: 飞翔的火焰 时间: 2013-11-7 12:30
看一下{:soso_e100:}
作者: Element. 时间: 2013-11-8 21:57
感谢楼主提供如此给力的库!
作者: lyxoo1 时间: 2013-11-9 13:11
库的书写规范严格按照CMSIS标准,且更改了严格的ANSI C 标准书写规范,具备很好的可移植性,比较众多更改的面目全非的库而言,这种库方便新手入门,提供了很好的指导作用!推荐使用
作者: 旅立ゞ 时间: 2013-11-10 11:30
蜘蛛侠
作者: ZHENTIANDADI 时间: 2013-11-10 11:54
钱钱钱钱钱钱钱钱钱钱钱钱钱钱钱钱钱钱钱钱钱钱钱钱钱钱钱钱钱钱钱钱钱钱钱钱
作者: 532902675 时间: 2013-11-10 15:32
不得不说,将32的库移植的很好
作者: yandld 时间: 2013-11-11 21:05
呵呵。。这个只能说形似。。 不得不说。STM32比我的这个库要专业很多。毕竟是原厂 的 全球Team做的。而且既然是原厂出品,质量肯定要保证。
我们的库可能会更 “中国特色” 一些。如果初学的话,甚至比STM32收入还简单。比如集成了Pinmux配置。时钟波特率自动集成计算等等。并且我和STM32的库都比较好的遵循了 ANSI C 和MISRA标准。这也是未来官方库的目标定位。
最后~~ 我们的目标不是模仿STM32固件库,而是超越他~~
作者: 1215328729 时间: 2013-11-12 21:59
楼主太棒了,谢了
作者: Mr、Z° 时间: 2013-11-13 15:56
超核的库不是盖的的啊
作者: 箫剑酒仙 时间: 2013-11-13 21:19
顶!顶!!顶!!!
作者: 瞬身止水 时间: 2013-11-14 14:26
没什么好说的,顶
作者: a858594504 时间: 2013-11-14 16:44
太好了
作者: make1573 时间: 2013-11-14 17:07
好给力,顶一个
作者: _圆的_ 时间: 2013-11-14 17:29
谢谢楼主,支持一下
作者: Merliang 时间: 2013-11-14 18:02
作者: 新建文件夹(22) 时间: 2013-11-15 12:23
作者: 新建文件夹(22) 时间: 2013-11-15 13:45
非常不错
作者: 邂逅忘记 时间: 2013-11-15 18:20
我一直都在用超核的底层,赶脚很好用
作者: 奥尔 时间: 2013-11-15 18:54
果断赞
作者: 古戈 时间: 2013-11-15 21:02
作者: 金兰都 时间: 2013-11-16 10:28
V587!!!
作者: 曲終、朲散场 时间: 2013-11-16 11:26
支持超核
作者: MLDWXX 时间: 2013-11-16 20:05
真的这么神奇。先看看再说
作者: a588878600 时间: 2013-11-17 11:24
楼主威武霸气!
作者: Tonywuke 时间: 2013-11-18 16:39
学习中,看看
作者: ldq 时间: 2013-11-18 19:56
希望能有帮助,学了好久还是没有头绪‘
作者: yandld 时间: 2013-11-18 22:33
哪里没有头绪? 说出来 分享下
作者: a588878600 时间: 2013-11-19 14:09
作者: jinsihou19 时间: 2013-11-21 18:15
挺好用的,支持楼主!!!
作者: yandld 时间: 2013-11-23 15:45
资料 11.23更新,修复一些小BUG
作者: marspioneer 时间: 2013-11-24 00:19
果断顶起呀。。。。。。
作者: 星雨心语 时间: 2013-11-24 08:03
太好了谢谢啦。。。。
作者: 星雨心语 时间: 2013-11-24 08:05
感谢分享,太好了:-D
作者: 小橙子 时间: 2013-11-24 15:38
hao
欢迎光临 智能车制作 (http://111.231.132.190/) |
Powered by Discuz! X3.2 |