在线时间1312 小时
UID3124330
注册时间2015-11-26
NXP金币2828
TA的每日心情 | 开心 2019-3-5 08:47 |
---|
签到天数: 1 天 连续签到: 1 天 [LV.1]初来乍到
金牌会员
 
- 积分
- 9002
- 最后登录
- 2025-7-17
|
本帖最后由 jundao721 于 2016-3-30 20:38 编辑
好几天没更新了,再更新一篇基础篇,来说说SDK1.3完成板子上的按键中断。沿袭一贯的环境配置作风,具体可参考上一篇文章。这里我们来分析一下代码。这里增加的按键对于MCU来说属于输入设备,所以需要在gpio_pins.h里面定义引脚,然后在gpio_pins.c里面增加配置输出引脚及使能中断,在main函数里配置也行,如代码:- gpio_input_pin_user_config_t inputPin[] = {
- {
- .pinName = kGpioSW1,
- .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,
- }
- };
复制代码- enum _gpio_pins_pinNames{
- kGpioSW1 = GPIO_MAKE_PIN(GPIOB_IDX, 0U),
- // kGpioSW3 = GPIO_MAKE_PIN(GPIOC_IDX, 1U),
- kGpioLED1 = GPIO_MAKE_PIN(GPIOA_IDX, 1U),
- kGpioLED2 = GPIO_MAKE_PIN(GPIOE_IDX, 0U),
- kGpioLED3 = GPIO_MAKE_PIN(GPIOA_IDX, 2U),
- };
复制代码- GPIO_DRV_Init(inputPin, outputPin);
- // GPIO_DRV_OutputPinInit(outputPin);
- // Turn LED1 on.
- GPIO_DRV_ClearPinOutput(kGpioLED1);
复制代码 然后就是配置中断函数了。清中断标志位,完成功能。- void PORTBCDE_IRQHandler (void)
- {
- // Clear external interrupt flag.
- GPIO_DRV_ClearPinIntFlag(kGpioSW1);
- GPIO_DRV_TogglePinOutput(kGpioLED1);
- Delay_nms(100);
- }
复制代码 功能比较简单,就是入门篇。
|
评分
-
查看全部评分
|