本帖最后由 燕七13 于 2016-7-13 18:38 编辑
最近一直在研究MDK下KSDK的使用。
可能是我没找到正确的资料,所以一直在摸索。
下面将我的经验分享下。我做的工作很简单,就是按照API reference 调通了ftm。
1、KSDK 2.0下载
http://www.nxp.com/zh-Hans/products/software-and-tools/hardware-development-tools/freedom-development-boards/freedom-development-platform-for-kinetis-k64-k63-and-k24-mcus:FRDM-K64F?tab=In-Depth_Tab#
进入页面点击获取SDK即可,该页面还有许多关于FRDM-K64F的资料,都是快速上手很有用的。
2、阅读Kinetis SDK v.2.0 API Reference Manual
下载KSDK后,其目录如下:
其中docs里面为各种软件设计参考文档,boards里面为可在FRDM-K64F上运行的各种例程。
打开docs,其目录如下:
其中Kinetis SDK v.2.0 API Reference Manual为编写程序所必需参考的。
其目录如下:
最快速上手的捷径,就是边阅读例程边参考API Reference。文档中应最先看的部分有:PORT,GPIO,CLOCK driver等。
3、改写例程
在例程和API Reference看的差不多,掌握了程序的框架后,就可以改写例程了。我改写了...\boards\frdmk64f\driver_examples\gpio\led_output下的例程。
主要改写了该目录下的pin_mux.c和gpio_led_output.c。在pin_mux.c中将端口复用为所需外设复用功能,开启外设时钟。在gpio_led_output.c中改写main函数,参考API Reference,根据库函数配置外设寄存器,完成初始化。
在本例中为完成对FTM的配置,在pin_mux.c中添加的代码如下:
- port_pin_config_t pinConfig = {0};
- pinConfig.pullSelect = kPORT_PullUp;
- pinConfig.mux= kPORT_MuxAlt4;
-
- CLOCK_EnableClock(kCLOCK_Ftm3);
- CLOCK_EnableClock(kCLOCK_PortD);
- PORT_SetPinConfig(PORTD, 0U, &pinConfig);
- PORT_SetPinConfig(PORTD, 1U, &pinConfig);
- PORT_SetPinConfig(PORTD, 2U, &pinConfig);
- PORT_SetPinConfig(PORTD, 3U, &pinConfig);
复制代码
main函数如下:
- <blockquote>int main(void)
复制代码 最后输出波形如图所示:
|