Existe-t-il un code que je peux utiliser pour savoir à quelle vitesse le port série choisi s'exécute?
serial
arduino-mega
Hayden Thring
la source
la source
Réponses:
Il n'y a pas de moyen de haut niveau facile à utiliser. Désolé. Il est probablement plus facile de simplement stocker le débit en bauds choisi dans une variable lorsque vous configurez le port série.
Quoi qu'il en soit, ce que vous pouvez essayer de faire pour les UART matériels basés sur AVR est de défaire ce qui
Serial.begin
permet de configurer un débit en bauds particulier, mais c'est un peu pénible. Voici le code pour régler le débit en bauds:Vous pouvez trouver les résultats de cela en lisant les registres UCSRA, UBRRH et UBRRL appropriés. Sur un un, ce sont les noms de registre corrects, sur un méga son UCSR0A, UBRR0H, UBRR0L pour Serial, UCRS1A ... pour serial1 et ainsi de suite. Les planches non-avr (et
Serial
sur un leonardo) seront totalement différentes.Il y aura un seul état pour ces trois registres sur un port série matériel AVR pour une carte particulière (et la fréquence de cette carte) à chaque débit en bauds. Vous pouvez essayer de faire une équation pour obtenir le débit en bauds d'origine, mais je recommande simplement de comparer les valeurs directes avec une recherche quelconque, car les erreurs d'arrondi arithmétiques entières en feront un énorme gâchis.
Par exemple, sur mes méga UBBR0H, UBBR0L et UCSR0A, il y a 0, 207, 2 à 9600 bauds, mais ils sont 0, 51, 2 à 38400 bauds et 0, 16, 0 à 57600 bauds.
la source