1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本次按键实验是采用了板载的两个按键分别对应的P1.1与P1.4口,具体迁移到其他IO口的外部中断请移步原理图。
实验现象:按下按键会翻转板载LED灯状态。 key.c #include "key.h" void Key_Init(void) { /* Configuring P1.1 as an input and enabling interrupts */ /*配置1.1口为上拉输入*/ MAP_GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P1, GPIO_PIN1); /*清除IO口的中断标志位*/ MAP_GPIO_clearInterruptFlag(GPIO_PORT_P1, GPIO_PIN1); /*使能P1.1的外部中断(这里只是一个引脚)*/ MAP_GPIO_enableInterrupt(GPIO_PORT_P1, GPIO_PIN1); /*使能P1端口的中断(这里是一个大端口,包括多个引脚)*/ MAP_Interrupt_enableInterrupt(INT_PORT1); /* Configuring P1.4 as an input and enabling interrupts */ MAP_GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P1, GPIO_PIN4); MAP_GPIO_clearInterruptFlag(GPIO_PORT_P1, GPIO_PIN4); MAP_GPIO_enableInterrupt(GPIO_PORT_P1, GPIO_PIN4); MAP_Interrupt_enableInterrupt(INT_PORT1); } /* GPIO ISR */ /*端口1中断处理函数*/ void PORT1_IRQHandler(void) { uint32_t status; status = MAP_GPIO_getEnabledInterruptStatus(GPIO_PORT_P1); MAP_GPIO_clearInterruptFlag(GPIO_PORT_P1, status); /* Toggling the output on the LED */ /*检测到P1.1产生外部中断的处理*/ if(status & GPIO_PIN1) { MAP_GPIO_toggleOutputOnPin(GPIO_PORT_P1, GPIO_PIN0); } if(status & GPIO_PIN4) { MAP_GPIO_toggleOutputOnPin(GPIO_PORT_P1, GPIO_PIN0); } } key.h #ifndef __KEY_H #define __KEY_H /* DriverLib Includes */ #include void Key_Init(void); #endif 需要注意的一点是,只有这几个端口能产生外部中断(查阅库函数手册) |
|
|
|
只有小组成员才能发言,加入小组>>
3310 浏览 9 评论
2991 浏览 16 评论
3492 浏览 1 评论
9055 浏览 16 评论
4086 浏览 18 评论
1175浏览 3评论
603浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
596浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2333浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1894浏览 2评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 01:23 , Processed in 1.108583 second(s), Total 78, Slave 59 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号