Si vous définissez une broche gpio comme broche d'entrée dans l'arborescence des périphériques et appelez cette broche dans le code du pilote

Après avoir défini le code PIN GPIO dans l'arborescence des périphériques, vous pouvez utiliser le code PIN dans le pilote du noyau Linux en suivant les étapes suivantes :

  1. Utilisez des fonctions telles que ou pour obtenir le nœud dans l'arborescence des périphériques où se trouve la broche GPIO of_find_node_by_path.of_find_node_by_name

  2. Utilisez des fonctions comme ou pour obtenir le numéro de la broche GPIO of_get_named_gpio.of_get_named_gpio_flags

  3. Utilisez gpio_requestune fonction comme appliquer pour l'utilisation de cette broche GPIO.

  4. Utilisez gpio_direction_inputpour définir la broche GPIO en mode d’entrée.

  5. gpio_get_valueUtilisez -le pour lire la valeur de la broche GPIO en cas de besoin .

Voici un exemple de code :

struct device_node *np;
int gpio_num;
/* 通过节点名称或路径获取节点 */
np = of_find_node_by_name(NULL, "your_node_name");
/* 获取引脚编号 */
gpio_num = of_get_named_gpio(np, "your_gpio_property", 0);
if (!gpio_is_valid(gpio_num)) {
    
    
    printk("The gpio number is not valid\n");
    return;
}

/* 申请 GPIO */
if (gpio_request(gpio_num, "your_gpio_label") < 0) {
    
    
    printk("Fail to request GPIO\n");
    return;
}

/* 设为输入模式 */
gpio_direction_input(gpio_num);

/* 读取 GPIO 值 */
int value = gpio_get_value(gpio_num);

N'oubliez pas d'utiliser la fonction pour libérer la broche GPIO lorsque le pilote est désinstallé ou n'a plus besoin de l'utiliser gpio_freepour éviter une fuite de ressources.

Je suppose que tu aimes

Origine blog.csdn.net/qq_41483419/article/details/133273111
conseillé
Classement