Connection serie PI PICO avec FT991

Bonjour à tous et à toutes je vous souhaite d'abord une agréable année

je suis un peu sec, j'essai de communiquer entre mon raspberry PI pico et mon transceiver FT991A de chez YEASU afin de recuperer la frequence en cours sur le transceiver

Pour cela, j'utiliser le coeur 1 du pico avec j'utilise le serial1

declaration des variables

unsigned int caract;                                            // Caractère reçu sur le port Serie
unsigned int rx_data[15];                                       // Chaîne de caractères reçus sur le port Serie
//const char rx_data[15] ;
unsigned int byte_pos = 0;                                      // Position du caractère lu sur la chaîne de caractères
const char tx_data[] = "FA;";                                   // La syntaxe du message de requête de fréquence
// Fonction d'initialisation du deuxième coeur du Pico, style Arduino, exécutée une seule fois à la mise sous tension
void setup1()
{
  
  //  Serial.begin(9600);                                   // Port debug USB. Activer seulement pour déboguer
  Serial1.begin(4800, SERIAL_8N2);                                    // Port série connecté au transceiver (protocole CI-V)
  Serial1.write(tx_data, sizeof(tx_data));                // Envoi du message
           
  
}
// Cette boucle du deuxième coeur monitore la fréquence du transceiver et signale au premier coeur un changement de fréquence
void loop1()
{
// Gestion des messages CI-V de fréquence courante du transceiver. Signale lorsque les MHz de la fréquence changent
  //if (Serial1.available())                      // Octet(s) disponible en tampon du port CI-V?
  //{
    // Envoi d'une requête initiale de fréquence. Si pas de réponse obtenue, les antennes en EEPROM seront applicables.
    //const char tx_data[] = "FA;"; // La syntaxe du message de requête de fréquence
    //const char freq_recu;
            
  if (Serial1.available())                      // Octet(s) disponible en tampon du port CI-V?
  {
    rx_data[byte_pos] = Serial1.read();         // Oui, le(s) lire
            Serial.print(" valeur de byte_pos : " );
            Serial.println(byte_pos);
            Serial.println(" ");
           Serial.print(" valeur du bit dans le tampon : " );
           Serial.println(rx_data[byte_pos]);    // Afficher les octets reçus pour fins de déboggage
           Serial.println(" ");
       
       if (byte_pos <11)
       {
          byte_pos++;
          Serial1.write(tx_data, sizeof(tx_data));                // Envoi du message
       }
       else
       {
          byte_pos = 0;
          Serial1.write(tx_data, sizeof(tx_data));                // Envoi du message
     
       }
  }

j'essai deja de recuperer la valeur renvoyée avant de lire la fréquence et cela ne fonctionne pas

voici un imprim ecran de la commande à envoyer pour interroger la frequence "FA;"
le transceiver répond "FA28074000;"

Merci de votre aide

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.