wizzy15
Posts: 13
Joined: Fri Mar 27, 2020 11:05 am
Location: Rennes, FRANCE

Problème ttyS0

Mon May 25, 2020 10:20 am

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

JumpZero
Posts: 1128
Joined: Thu Mar 28, 2013 7:35 pm
Location: 127.0.0.1

Re: Problème ttyS0

Mon May 25, 2020 6:54 pm

Essaies déjà de lancer ton programme en tant que root: en mettant "sudo" avant.

wizzy15
Posts: 13
Joined: Fri Mar 27, 2020 11:05 am
Location: Rennes, FRANCE

Re: Problème ttyS0

Tue May 26, 2020 8:52 am

J'ai essayé mais ça n'avait pas fonctionné non plus...

jelopo
Posts: 1601
Joined: Wed Oct 17, 2012 7:53 pm

Re: Problème ttyS0

Tue May 26, 2020 9:27 am

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+

wizzy15
Posts: 13
Joined: Fri Mar 27, 2020 11:05 am
Location: Rennes, FRANCE

Re: Problème ttyS0

Tue May 26, 2020 12:44 pm

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

JumpZero
Posts: 1128
Joined: Thu Mar 28, 2013 7:35 pm
Location: 127.0.0.1

Re: Problème ttyS0

Tue May 26, 2020 3:59 pm

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!

wizzy15
Posts: 13
Joined: Fri Mar 27, 2020 11:05 am
Location: Rennes, FRANCE

Re: Problème ttyS0

Wed May 27, 2020 7:16 am

Ah oui d'accord! Je comprends mieux, merci de me l'avoir expliqué, c'est très gentil :)

wizzy15
Posts: 13
Joined: Fri Mar 27, 2020 11:05 am
Location: Rennes, FRANCE

Re: Problème ttyS0

Wed May 27, 2020 8:41 am

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 ? :?

Return to “Français”