距离写好第一个点灯程序已经过去一周多了,工作一直笔记忙,前天晚上才挤点时间出来继续研究一下K64开发板。 我学习一个东西喜欢先把它用起来,有了直观的感觉,然后再去慢慢深入学习,所以拿到这块开发板也是如此,先用起来,再在实践中去学习原理层次的东西。用起来的最好方法之一就是先用别人做好的东西,跟第一个程序一样,继续参考KSDK_1.2.0\examples\frdmk64f\driver_examples\gpio这个例程在这个帖子中学会了如何配置gpio输出,成功点亮了LED灯,现在涉及到按键,中断,就要把gpio设置为输入,好在这种简单的东西不缺乏例子,于是仿照例子,配置板子上按键接的输入引脚,由于有了库的存在,这个工作变得简单,只需要填充一个数组,调用初始化函数就行了:// Define gpio input pin config structure SW.
gpio_input_pin_user_config_t inputPin[] = {
{
.pinName = BOARD_SW_GPIO,
.config.isPullEnable = true,
#if FSL_FEATURE_PORT_HAS_PULL_SELECTION
.config.pullSelect = kPortPullUp,
#endif
#if FSL_FEATURE_PORT_HAS_PASSIVE_FILTER
.config.isPassiveFilterEnabled = false,
#endif
#if FSL_FEATURE_PORT_HAS_DIGITAL_FILTER
.config.isDigitalFilterEnabled = false,
#endif
.config.interrupt = kPortIntFallingEdge,
},
{
.pinName = kGpioSW3,
.config.isPullEnable = true,
#if FSL_FEATURE_PORT_HAS_PULL_SELECTION
.config.pullSelect = kPortPullUp,
#endif
#if FSL_FEATURE_PORT_HAS_PASSIVE_FILTER
.config.isPassiveFilterEnabled = false,
#endif
#if FSL_FEATURE_PORT_HAS_DIGITAL_FILTER
.config.isDigitalFilterEnabled = false,
#endif
.config.interrupt = kPortIntFallingEdge,
},
{
.pinName = GPIO_PINS_OUT_OF_RANGE,
}
};
写好这个数组后,调用void GPIO_DRV_Init(const gpio_input_pin_user_config_t * inputPins,const gpio_output_pin_user_config_t * outputPins)这个函数就把数组中的引脚配置为中断输入引脚了。按键SW2连接PC6,按键SW3连接PA4.
|