ShermannBoy
Posts: 6
Joined: Sat Mar 29, 2014 9:54 am

Language C, WiringPi et liaison Série

Sat Mar 29, 2014 10:07 am

Bonjour,

Alors voila, je suis en Terminale STI2D, option SIN, et j'ai un petit problème pour mon projet.
Je m'explique:
Je dois créer une liaison série entre ma carte Raspberry et une Carte programmable ( De type PIC 16f877A) et physiquement, toutes les liaisons sont faites, mais sur ma carte Raspberry, je ne trouve pas de Code C qui me permette de mettre les Pins RxD et TxD comme liaison série par défaut... La liaison série par défaut étant le Terminal sur la Raspberry... De plus, la solution de changer les ".txt" sur la Raspberry ne me convient pas, car c'est la Raspberry de mon lycée, donc je ne peux pas changer sa config'...

Merci pour vos réponses prochaines !

danjperron
Posts: 3502
Joined: Thu Dec 27, 2012 4:05 am
Location: Québec, Canada

Re: Language C, WiringPi et liaison Série

Sat Mar 29, 2014 2:34 pm

Salut ,


par défaux /dev/ttyAMA0 est disponible.

Le hic avec le système par défaux est que la console debug l'utilise.

Tu modifies déja la carte SD sur le PI, je ne vois pas pourquoi changer /boot/cmdline.txt est un problème?

Il faut aussi enlever , ou mettre en remarque, la dernière ligne de /etc/inittab
#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
Le reste est simple ouvre /dev/ttyAMA0 et voila. Beaucoup de tutoriel sur le port série.


Ultimement achète ta propre carte SD et fais la modification dessus. Tu n'auras qu'a faire un "swap" avec ta carte et le tour est joué.

Daniel

ShermannBoy
Posts: 6
Joined: Sat Mar 29, 2014 9:54 am

Re: Language C, WiringPi et liaison Série

Mon Mar 31, 2014 2:18 pm

Salut !

Tout d'abord, merci pour la reponse si rapide !

Alors je me suis acheté une carte, et j'ai donc modifié le ".txt".
Mais je n'arrive toujours pas a emettre sur TxD... Voici le code en C:

Code: Select all

#include <stdlib.h>

int ventilation;

void main()
   {
    //Si on ne trouve pas la librairie wiringPI, on arrête l'execution
    if(wiringPiSetup() == -1)
        exit (1) ;
   while(1)
      {
      putchar ("a");
      }
   }
Mais cela n'envoie rien sur TxD, je ne sais pas quoi faire, sa va faire 9 heures de projet que je cherche comment envoyer.. :(


Tadi
Posts: 2
Joined: Sat Apr 05, 2014 11:03 am

Re: Language C, WiringPi et liaison Série

Sat Apr 05, 2014 11:10 am

Salut tout le monde
je viens de faire une application on utilisant la carte RPI et PIC16F877
SVP quel type de liaison faut il faire entre ces deux cartes
é merci beaucoup :)

jareczek
Posts: 170
Joined: Tue Jul 23, 2013 2:45 pm
Location: Auvergne

Re: Language C, WiringPi et liaison Série

Sun Apr 20, 2014 12:14 pm

Tadi wrote:Salut tout le monde
je viens de faire une application on utilisant la carte RPI et PIC16F877
SVP quel type de liaison faut il faire entre ces deux cartes
é merci beaucoup :)
Le 877 sait faire du série synchrone UART, SPI, IIC et asynchrone UART (de tête)
Et des échanges parallèle en mode esclave
Le choix est vaste . . .
Sauf erreur ou omission . . .

Julo_du_59
Posts: 37
Joined: Fri Jan 24, 2014 1:36 pm

Re: Language C, WiringPi et liaison Série

Wed Apr 30, 2014 9:03 am

Dommage, j'aurai pu t'aider en Java, j'ai les librairies pour discuter avec le Raspberry en liaison série.

Mais par défaut le port série /dev/ttyAMA0 est "la propriété du système" dira-t-on, pour pouvoir s'en servir il faut :

Modifier /boot/cmdline.txt :

Tu as ça normalement :

Code: Select all

dwc_otg.lpm_enable=0 rpitestmode=1[b] console=ttyAMA0,115200 kgdboc=ttyAMA0,115200[/b] console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait
Tu ne dois laisser que ça (enlève ce qui est en gras) :

Code: Select all

dwc_otg.lpm_enable=0 rpitestmode=1 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait
Puis tu modifies /etc/inittab :

Tu viens commenter la ligne (ajoute # devant la ligne) :
2:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
Je te conseille un petit redémarrage et tu n'as plus qu'à écrire ton programme qui utilise le port série /dev/ttyAMA0

ShermannBoy
Posts: 6
Joined: Sat Mar 29, 2014 9:54 am

Re: Language C, WiringPi et liaison Série

Sat May 24, 2014 10:45 am

C'est bon j'ai trouvé, il faut WiringPi simplement :

Code: Select all

#include <stdio.h>
#include <string.h>
#include <errno.h>

#include <wiringSerial.h>


void main()
{
  int fd ;

  if ((fd = serialOpen ("/dev/ttyAMA0", 9600)) < 0)
  {
    fprintf (stderr, "Impossible d'ouvrir le port serie: %s\n", strerror (errno$
    return ;
  }

// Loop, getting and printing characters

   while (1==1)
   {
   char c;
   c = 'a';
   serialPutchar  (fd, c);
   sleep(1);
    //printf ("\nLettre: %c.", serialGetchar (fd)) ;
   }
}
Et l'envoie marche

Return to “Français”