मैं सीरियल पर सी ++ और अरुडिनो संचार के साथ काम कर रहा हूं। मैं बाइट्स लिखने में सक्षम हूं, लेकिन मैंने देखा कि जब मैं अपनी DCB सेटिंग्स सेट करता हूं और SetCommState(m_hComm, &m_dcb) का उपयोग करता हूं, तो यह तीन बाइट्स लिखता है, विशेष रूप से 11110000 11110000 11110000 Arduino को। ये क्यों हो रहा है?

यह मेरा कोड है जिसका उपयोग मैं DCB सेट करने के लिए करता हूं:

HANDLE m_hComm = CreateFile("COM4", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
m_dcb.DCBlength = sizeof(m_dcb);
m_dcb.BaudRate = CBR_115200;
m_dcb.ByteSize = 8;
m_dcb.StopBits = ONESTOPBIT;
m_dcb.Parity = NOPARITY;
SetCommState(m_hComm, &m_dcb);

SetCommState के दस्तावेज़ माइक्रोसॉफ्ट की वेबसाइट:

0
Dylan Meiners 26 मार्च 2020, 03:36

1 उत्तर

सबसे बढ़िया उत्तर

मुझे पता चला कि ऐसा तब होता है जब baudRate का मान ~50,000 से अधिक हो। मुझे कुछ और लोग मिले जिनके पास यह समस्या थी, और उनके लिए कोई जवाब नहीं है। एक ने सुझाव दिया कि यह एक अलग बॉड दर पर भेजा या प्राप्त किया गया प्रारंभ बाइट हो सकता है।

भले ही, मैंने बॉड दर को ५०,००० से कम पर सेट करके इसे ठीक किया।

0
Dylan Meiners 1 अप्रैल 2020, 23:07