मैं नियमित रूप cat
से धारावाहिक कनेक्शन पर अपने FPGA विकास बोर्ड से कंसोल में डिबगिंग जानकारी देखने के लिए उपयोग करता हूं, लेकिन मुझे कभी भी यह बताने की ज़रूरत नहीं है कि बॉड दर क्या है। बिल्ली कैसे जानती है कि सीरियल कनेक्शन की बॉड दर क्या है?
मैं नियमित रूप cat
से धारावाहिक कनेक्शन पर अपने FPGA विकास बोर्ड से कंसोल में डिबगिंग जानकारी देखने के लिए उपयोग करता हूं, लेकिन मुझे कभी भी यह बताने की ज़रूरत नहीं है कि बॉड दर क्या है। बिल्ली कैसे जानती है कि सीरियल कनेक्शन की बॉड दर क्या है?
जवाबों:
stty
उपयोगिता सेट या डिवाइस अपने मानक इनपुट है कि के लिए टर्मिनल आई / ओ विशेषताओं पर रिपोर्ट। इन विशेषताओं का उपयोग उस विशेष माध्यम पर संबंध स्थापित करते समय किया जाता है। cat
बॉड दर को इस तरह से नहीं जानता है, बल्कि यह विशेष कनेक्शन से प्राप्त स्क्रीन जानकारी पर प्रिंट करता है।
एक उदाहरण के रूप stty -F /dev/ttyACM0
में ttyACM0 डिवाइस के लिए वर्तमान बॉड दर देता है।
stty
)
cat
पोर्ट के लिए पहले से ही कॉन्फ़िगर की गई सभी सेटिंग्स का उपयोग करता है। इस छोटे से सी स्निपेट से आप बॉड दर को किसी विशेष धारावाहिक पोर्ट के लिए वर्तमान में देख सकते हैं:
मिल-बॉड-rate.c
#include <termios.h>
#include <unistd.h>
#include <stdio.h>
int main() {
struct termios tios;
tcgetattr(0, &tios);
speed_t ispeed = cfgetispeed(&tios);
speed_t ospeed = cfgetospeed(&tios);
printf("baud rate in: 0%o\n", ispeed);
printf("baud rate out: 0%o\n", ospeed);
return 0;
}
चलाओ:
./get-baud-rate < /dev/ttyS0 # or whatever your serial port is
आपके द्वारा प्राप्त किए गए नंबरों को ऊपर देखा जा सकता है /usr/include/asm-generic/termios.h
, जहां #define
इस तरह के B9600
आदि हैं। ध्यान दें कि हेडर फ़ाइल और get-baud-rate
आउटपुट में संख्याएँ ऑक्टल में हैं।
शायद आप प्रयोग कर सकते हैं और देख सकते हैं कि ताजा बूट पर ये संख्याएं क्या हैं और क्या वे बाद में बदलते हैं।
stty
कमांड मिली, जो सिर्फ यही करती है। उदाहरण के लिए, stty -F /dev/ttyACM0
मुझे वर्तमान बॉड दर देता है, जो मेरे डिवाइस के लिए सही है।
minicom
पहले की तरह पोर्ट सेट नहीं किया है ? यह यहाँ काम नहीं करता है। सीरियल पोर्ट पैरामीटर सेट करने के बाद ही मैं उपयोग कर सकता हूंcat
।