OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3695|回复: 4

第三十一章 Linux 中断实验,设单边沿触发,但上升沿下降沿都触发

[复制链接]

4

主题

7

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2022-4-4
在线时间
11 小时
发表于 2022-11-30 14:46:09 | 显示全部楼层 |阅读模式
11金钱
修改【正点原子】STM32MP1嵌入式Linux驱动开发指南V2.0.pdf 第三十一章 Linux 中断实验的触发类型为上升沿触发,但不管是上升沿还是下降沿都触发,为啥。
除了修改设备树的触发类型外还要做什么。
key {
                compatible = "alientek,key";
                status = "okay";
                key-gpio = <&gpiog 3 GPIO_ACTIVE_LOW>;
                interrupt-parent = <&gpiog>;
                interrupts = <3 IRQ_TYPE_EDGE_RISING>;
        };

最佳答案

查看完整内容[请看2#楼]

按键吗?按键按的时候,本来就是会抖动,同时存在上升沿和下降沿的啊。除非你是外部给了纯粹的信号
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

70

主题

6757

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
12988
金钱
12988
注册时间
2012-11-26
在线时间
3788 小时
发表于 2022-11-30 14:46:10 | 显示全部楼层
按键吗?按键按的时候,本来就是会抖动,同时存在上升沿和下降沿的啊。除非你是外部给了纯粹的信号
学无止境
回复

使用道具 举报

4

主题

67

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1011
金钱
1011
注册时间
2021-5-25
在线时间
185 小时
发表于 2022-12-1 09:37:06 | 显示全部楼层
有没有可能你驱动默认的触发类型就是双边沿触发?
回复

使用道具 举报

4

主题

7

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2022-4-4
在线时间
11 小时
 楼主| 发表于 2022-12-1 13:25:05 | 显示全部楼层
lgs鸽 发表于 2022-12-1 09:37
有没有可能你驱动默认的触发类型就是双边沿触发?

    irq_flags = irq_get_trigger_type(key.irq_num);/* 获取设备树中指定的中断触发类型 */
    if (IRQF_TRIGGER_NONE == irq_flags) irq_flags = IRQF_TRIGGER_FALLING;
    ret = request_irq(key.irq_num, key_interrupt, irq_flags,"Key0_IRQ", NULL);/* 申请中断 */
    if (ret) {
        gpio_free(key.key_gpio);
        return ret;
    }
回复

使用道具 举报

4

主题

67

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1011
金钱
1011
注册时间
2021-5-25
在线时间
185 小时
发表于 2022-12-5 09:12:43 | 显示全部楼层
你试试设备树不加中断,在驱动中默认为上升沿看看
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-25 13:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表