[技术问答] 初识GPIO

[复制链接]
909|5
 楼主| shen_hao 发表于 2017-7-16 18:34 | 显示全部楼层 |阅读模式
GPIO, pi, IO, gp, ce
本帖最后由 shen_hao 于 2017-7-16 21:34 编辑

在测试GPIO,发现自己想在程序中给某一个PIN赋值0/1并不能引起上升沿或者下降沿的中断,经过多次测试发现是使能了de-bounce,这个应该是10ms的消抖,在程序中加了10ms的延迟(只试了100和10),发现程序并没有恢复正常。只好把de-bounce 删掉了
 楼主| shen_hao 发表于 2017-7-16 18:48 | 显示全部楼层
本帖最后由 shen_hao 于 2017-7-16 21:42 编辑

在测试GPIO 外部中断时,用另一块板子,设置为output,给0,延迟100ms,再给1。而测试的板子没有跳入中断
 楼主| shen_hao 发表于 2017-7-16 18:51 | 显示全部楼层
本帖最后由 shen_hao 于 2017-7-16 21:54 编辑

这个是在一块板子上
如果不删掉de-bounce,在测试gpio int程序实验结果为:设为双IO,双向边沿触发均可触发中断。              
PA9=0;
                CLK_SysTickDelay(100000);
                PA9=1;
                CLK_SysTickDelay(100000);
                PA9=0;
                 CLK_SysTickDelay(100000);
                //PA9=1;

当前情况,可捕获一个下降沿,第一个上升沿捕获不到,延迟10ms,还是不加延迟都是一样的结果。
但如果把注释掉第二个PA9重新放上去,就没有中断发生。无论延迟多少也同样没有中断产生。
以个人的理解,是应该要加延迟的,毕竟有10ms的消抖。做这个无聊的实验,是有自己的意图,希望懂的人帮帮忙,解析一下。
bingkaiok 发表于 2017-7-16 19:05 | 显示全部楼层
看下手册,作输入用的,满足触发条件后进入中断函数
zhuotuzi 发表于 2017-7-17 15:11 | 显示全部楼层
你设置为输入了,你再通过输出寄存器配置成跳变,那是不接受的吧,必须的外部端口的电平变化才能引起中断。
zhuotuzi 发表于 2017-7-17 15:11 | 显示全部楼层
不过楼主的想法很新颖,哈哈,点个赞
您需要登录后才可以回帖 登录 | 注册

本版积分规则

79

主题

230

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部