[KDS-IDE]NXP开发板K64F之点亮LED

使用飞思卡尔官方的开发环境KDS编写简单的LED点亮测试,学习KSDK的GPIO驱动。
K64F快速入门
首先安装好mbed驱动,可以参考这个开发板初识更新mbed固件
下载KSDK
下载对应版本的KDS IDE

1.新建工程

  • 打开KDS:File>>New>>Kinetis SDK 2.X Project
  • 填写Project Name:K64F_RGB_LED
  • 导入KSDK:点击Browse选择你下载好的KSDK的位置
  • 选好KSDK后,点next,选择对应的板卡FRDM-K64F,
  • Select dirvers选择驱动,all dirvers会加上所有的驱动,Minimal set只会加一些常用的GPIO,UART之类的。不知道用啥,选all就好了。
  • 最后点Finish

2.目录结构

K64F_RGB_LED
boards 是官方写的基于FRDM_K64F板子的一些底层
CMSIS 编译下载要用到的一些吧
dirvers 官方的底层驱动,GPIO,IIC,SPI,UART之类的
source 是用户自己的文件
startup
utilities 是官方的一些调试文件底层,使用串口PRINTF输出时需要用到

3.看看main函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include "board.h" //官方定义的一些LED引脚,函数(如LED_RED_INIT()红灯初始化函数,调用dirver里的fsl_gpioD的一个方法)
#include "pin_mux.h" //初始化板子的硬件,时钟使能,引脚复用。main函数调用的BOARD_InitPins();
#include "clock_config.h" //系统时钟的一些配置
/*
* Delay();延时函数
*/
void Delay(void){
volatile uint32_t i=0;
for(i;i<2000000;i++){
__asm("NOP");
__asm("NOP");
}
}
/*!
* @brief Application entry point.
*/
int main(void) {
/* Init board hardware. */
BOARD_InitPins();
BOARD_BootClockRUN();
BOARD_InitDebugConsole();
LED_RED_INIT(1);
LED_BLUE_INIT(1);
LED_GREEN_INIT(1);
// LED_RED_ON();
// LED_RED_TOGGLE();

/* Add your code here */
for (;;) { /* Infinite loop to avoid leaving the main function */
LED_RED_ON();
LED_GREEN_OFF();
LED_BLUE_OFF();
Delay();
LED_RED_OFF();
LED_GREEN_ON();
LED_BLUE_OFF();
Delay();
LED_RED_OFF();
LED_GREEN_OFF();
LED_BLUE_ON();
Delay();
}
}

4.在pin_mux.c的BOARD_InitPins()里面加上

1
2
3
4
5
6
/* Affects PORTB_PCR21 register */
PORT_SetPinMux(PORTB, 21u, kPORT_MuxAsGpio);
/* Ungate the port clock */
CLOCK_EnableClock(kCLOCK_PortE);
/* Affects PORTE_PCR26 register */
PORT_SetPinMux(PORTE, 26u, kPORT_MuxAsGpio);

5.eclipse快捷键

  • Ctrl+Shift+f 格式化代码
  • Ctrl+/ 注释代码
  • Alt+/ 补全代码