//由gpio编号求中断号码;
int irq = gpio_to_irq(gpio_btn_info**.gpio);
printk("gpio irq %d ++++++++\n",irq);
ret = gpio_request(gpio_btn_info**.gpio,gpio_btn_info**.name);
printk("gpio_request %d ++++++++\n",ret);
ret = request_irq(irq,
gpio_btn_isr,
IRQF_TRIGGER_FALLING|IRQF_TRIGGER_RISING,
gpio_btn_info**.name,
&gpio_btn_info**);
printk("request_irq %d ++++++++\n",ret);
gpio_to_irq 传入参数为109. 109 = GPIO组编号+组内编号得来的。 返回值为-22.
请问是不是不能直接写值,这个地方应该怎么填。
gpio_request返回值0 也是填109就没有问题。
小白提问。感谢大佬帮助
离线
查了半天,跟到源码里面。发现他这个功能就没实现。默认给我回复-22.心里很崩溃
离线
PD13 = 32*('D' - 'A') + 13 = 109
PD没有外部中断
那我只能用定时器的方式轮询了吗?
离线
@givemefive
我问了demo板的厂家了,说是需要在数据手册里面看当前GPIO组是否支持中断。不然后会返回-22
离线