专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
请问LPC11系列的IO口怎么设置中断
2019-03-25 20:23
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
NXP MCU
14064
1
1711
我现在想把一根引脚设置为中断源,请问这个要怎么做呢? 此帖出自
小平头技术问答
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
zhaojun_xf
1楼-- · 2019-03-25 23:15
_NXP LPC1000_ /**************************************************************************************
* FunctionName : GPIOSetInterrupt()
* Description : 设置管脚中断:0-边沿触发;1-电平触发
* EntryParameter : port num, bit position, sense, single/doube, polarity
* ReturnValue : None
**************************************************************************************/
void GPIOSetInterrupt(uint8 portNum, uint8 bitPosi, uint8 sense, uint8 single, uint8 event)
{
if (sense == 0) // 触发模式: 0-边沿触发;1-电平触发
{
LPC_GPIO[portNum]->IS &= ~(0x1<<bitPosi); // 边沿触发
/* single or double only applies when sense is 0(edge trigger). */
if (single == 0) // 双边沿触设置
{
LPC_GPIO[portNum]->IBE &= ~(0x1<<bitPosi); // 通过寄存器GPIOnlEV控制管脚PIOn_x上的中断
}
else
{
LPC_GPIO[portNum]->IBE |= (0x1<<bitPosi); // 双边沿触发
}
}
else
{
LPC_GPIO[portNum]->IS |= (0x1<<bitPosi); // 电平触发
}
if (event == 0) // 触发电平设置
{
LPC_GPIO[portNum]->IEV &= ~(0x1<<bitPosi); // 0-低电平/下降沿
}
else
{
LPC_GPIO[portNum]->IEV |= (0x1<<bitPosi); // 1-高电平/上升沿,
}
}
加载中...
一周热门
更多
>
相关问题
相关文章
IMX6UL定时器按键消抖实验
0个评论
IMX6UL 裸机C语言IO 输入中断编程
0个评论
Cortex-A7 IO 输入中断系统分析
0个评论
IMX6UL裸机实现C语言按键输入实验
0个评论
IMX6UL裸机实现C语言蜂鸣器实验
0个评论
通过结构体的方式来定义和使用寄存器地址
0个评论
IMX6UL裸机实现C语言LED点亮与闪烁
0个评论
I.MX6U处理器LED灯点亮汇编程序之命令行方式编译与链接
0个评论
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
* FunctionName : GPIOSetInterrupt()
* Description : 设置管脚中断:0-边沿触发;1-电平触发
* EntryParameter : port num, bit position, sense, single/doube, polarity
* ReturnValue : None
**************************************************************************************/
void GPIOSetInterrupt(uint8 portNum, uint8 bitPosi, uint8 sense, uint8 single, uint8 event)
{
if (sense == 0) // 触发模式: 0-边沿触发;1-电平触发
{
LPC_GPIO[portNum]->IS &= ~(0x1<<bitPosi); // 边沿触发
/* single or double only applies when sense is 0(edge trigger). */
if (single == 0) // 双边沿触设置
{
LPC_GPIO[portNum]->IBE &= ~(0x1<<bitPosi); // 通过寄存器GPIOnlEV控制管脚PIOn_x上的中断
}
else
{
LPC_GPIO[portNum]->IBE |= (0x1<<bitPosi); // 双边沿触发
}
}
else
{
LPC_GPIO[portNum]->IS |= (0x1<<bitPosi); // 电平触发
}
if (event == 0) // 触发电平设置
{
LPC_GPIO[portNum]->IEV &= ~(0x1<<bitPosi); // 0-低电平/下降沿
}
else
{
LPC_GPIO[portNum]->IEV |= (0x1<<bitPosi); // 1-高电平/上升沿,
}
}
一周热门 更多>