Bonjour,
je suis en train de réaliser un robot sumo. Celui-ci doit pouvoir dialoguer avec un PC afin de signaler certains événements comme un problème de capteur, un niveau de batterie faible, etc. Le robot est commandé par un micro-contrôleur PIC16F877A, qui communique en série (RS-232) avec le PC en question. J'ai testé le programme du PIC grâce au terminal intégré à mikroC, que j'utilise pour programmer le PIC. Celui-ci fonctionne parfaitement.
Le problème est que je dois réaliser un programme sur PC qui soit plus "convivial" qu'un simple terminal, et donc qui doit afficher du français intelligible au lieu des valeurs en hexadécimal... Le programme est fait, mais je bloque sur la partie essentielle : la gestion de la liaison série. En effet, le micro-contrôleur n'envoie et ne reçoit que des nombres bruts (binaire, hexa ou décimal) qui prennent moins d'un octet. Par exemple, pour établir la connexion et démarrer le robot, le PC doit envoyer le nombre 0b11111111 (soit 0xff en hexa ou 255 en décimal), et le PIC doit lui répondre de façon analogue. Pour réaliser ce programme en C, j'utilise Code::Blocks.
J'ai trouvé quelques exemples qui permettent d'envoyer des données grâce au port série, mais elles sont toujours codées en ASCII ... J'arrive donc à ouvrir et fermer le port, configurer la vitesse de connexion et autres paramètres (9600 bauds, 8 bits de données, pas de parité, etc.), mais pas à envoyer ni recevoir des nombres. N'existe-t-il pas une fonction simple à utiliser pour ce faire, à l'image de Usart_Read et Usart_Write sur mikroC (ou même un bout de code salvateur) ?
Merci d'avance pour vos lumières.
-----