完善资料让更多小伙伴认识你,还能领取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 需要注意的一点是,只有这几个端口能产生外部中断(查阅库函数手册) |
|
|
|
只有小组成员才能发言,加入小组>>
3227 浏览 9 评论
2910 浏览 16 评论
3417 浏览 1 评论
8876 浏览 16 评论
4011 浏览 18 评论
9645浏览 3评论
1030浏览 3评论
536浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
536浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2267浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-10-16 03:05 , Processed in 1.132074 second(s), Total 79, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号