距离写好第一个点灯程序已经过去一周多了,工作一直笔记忙,前天晚上才挤点时间出来继续研究一下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.
|