Page 1 of 1

Problème ttyS0

Posted: Mon May 25, 2020 10:20 am
by wizzy15
Bonjour,

Je souhaite envoyer un message à partir du GPIO14 vers mon GPIO 15 avec le code suivant :

Code: Select all

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include </usr/include/wiringPi.h>
#include </usr/include/wiringSerial.h>
#include <termios.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>

int main()
{
    int fd ;
    
    if ((fd = serialOpen ("/dev/ttyS0", 4800)) < 0)
    {
      fprintf (stderr, "Unable to open serial device: %s\n", strerror (errno)) ;
      return 1 ;
    }

    if (wiringPiSetup () == -1)
    {
      fprintf (stdout, "Unable to start wiringPi: %s\n", strerror (errno)) ;
      return 1 ;
    }

    while(1)
    {
	serialPuts(fd,"bonjour");
	delay(1000);
	serialGetchar(fd);
    }
      

    printf ("\n") ;
    return 0 ;
}
mais je reçois un code d'erreur "Unable to open serial device: Permission denied"
Je suis allé voir plusieurs forum et j'ai bien ajouté la fonctionnalité dialout mais sans succès...
Quelqu'un pourrait éclairer ma lanterne svp ?

Merci d'avance

Re: Problème ttyS0

Posted: Mon May 25, 2020 6:54 pm
by JumpZero
Essaies déjà de lancer ton programme en tant que root: en mettant "sudo" avant.

Re: Problème ttyS0

Posted: Tue May 26, 2020 8:52 am
by wizzy15
J'ai essayé mais ça n'avait pas fonctionné non plus...

Re: Problème ttyS0

Posted: Tue May 26, 2020 9:27 am
by jelopo
Bonjour,

Est-ce que /dev/ttyS0 existe sur le PI ?

faire ceci pour voir les ports série définis

Code: Select all

ls -l /dev/serial*
A+

Re: Problème ttyS0

Posted: Tue May 26, 2020 12:44 pm
by wizzy15
Oui, il est présent, je m'en suis assuré, c'est d'ailleurs sur un post ici que j'ai appris que l'AMA0 était "réservé" désormais pour le bluetooth et que le S0 était pour les GPIO.
Mais j'ai "trouvé" une solution en désactivant le shell de mon serial... Je ne saurais dire pourquoi :lol:
Merci de vous être arrêté sur mon post

Re: Problème ttyS0

Posted: Tue May 26, 2020 3:59 pm
by JumpZero
wizzy15 wrote:
Tue May 26, 2020 12:44 pm
Mais j'ai "trouvé" une solution en désactivant le shell de mon serial... Je ne saurais dire pourquoi
Logique! Tu ne peux pas avoir 2 processus (programmes) qui utilisent la même ressource (le port série). Quand un process (le shell dans ton cas) utilise un port série l'OS pose un lock dessus interdisant à d'autres de l'utiliser!
Normal imagine que plusieurs process dialoguent en même temps sur un unique port, quel joyeux bordel!

Re: Problème ttyS0

Posted: Wed May 27, 2020 7:16 am
by wizzy15
Ah oui d'accord! Je comprends mieux, merci de me l'avoir expliqué, c'est très gentil :)

Re: Problème ttyS0

Posted: Wed May 27, 2020 8:41 am
by wizzy15
J'aurais encore une question xD

Maintenant que je "maîtrise" les GPIO avec les fonctions alternatives standard je me suis amusé à changer les fonctions alternatives en mettant tous mes GPIO en alt4 en rentrant la commande "gpio=0-27=a2" dans mon fichier config.txt.

Après mon reboot je tape la commande "gpio readall" et je vois bien que chaque broche à changé de fonctions. Mais impossible de refaire fonctionner mon programme...

J'ai alors pensé que ça devait venir de mon chemin pour accéder aux ports GPIO ("/dev/ttyS0") mais non...

Quelqu'un aurait une idée ? :?