שְׁאֵלָה:
מדוע הפעלת המסך הסדרתי מפעילה מחדש את הסקיצה?
Cybergibbons
2014-02-26 04:51:03 UTC
view on stackexchange narkive permalink

אם אני מעלה סקיצה כלשהי ששולחת נתונים סדרתיים, אני רואה מיד את נוריות ה- TX / RX מהבהבות לאחר העלאת השרטוט. אם אז מפעיל את המסך הסדרתי, נראה שהסקיצה מופעלת מחדש.

סקיצה מינימאלית המציגה התנהגות זו:

  setup void () {Serial.begin (9600 ); Serial.println ("התקנה");} loop loop () {Serial.println ("Loop"); עיכוב (1000);}  

נבדק עם כמה לוחות וגרסאות ה- Mac ו- Windows של ה- IDE.

פלט לדוגמא - הוא חוזר ל"התקנה "כשאני פותח המסך הטורי:

Restart

מדוע זה?

מעולם לא ראיתי סקיצה שמשתמשת בסידרה לא עושה את זה, אז ממש כל סקיצה.
קשור: * [איפוס יציאה טורית של Arduino בצג וסידורי פייתון] (http://arduino.stackexchange.com/questions/640) *
שכפול: * [מדוע נראה שהארדואינו מתחיל לאתחל בכל פעם שאני פותח את המסך הסידורי?] (Http://arduino.stackexchange.com/questions/4078) *
יש לי בעיה נפרדת. ליוסטיק הארדואינו (ואחרים) כבר לא מאפס אוטומטי. כיצד ניתן לשנות את האפשרות?
שְׁלוֹשָׁה תשובות:
#1
+35
sachleen
2014-02-26 06:02:20 UTC
view on stackexchange narkive permalink

ה- Arduino משתמש באותות RTS (בקשה לשליחה) (ואני חושב ש DTR (מוכן למסוף נתונים)) לאיפוס אוטומטי. אם אתה מקבל מסוף טורי המאפשר לך לשנות את הגדרות בקרת הזרימה אתה יכול לשנות את הפונקציונליות הזו.

מסוף Arduino לא נותן לך הרבה אפשרויות וזה ברירת המחדל. אחרים יאפשרו לך להגדיר הרבה יותר. הגדרת בקרת הזרימה לאף אחת תאפשר לך להתחבר / להתנתק מהטורי מבלי לאפס את הלוח שלך. זה די שימושי לצורך איתור באגים כאשר אתה רוצה להיות מסוגל פשוט לחבר את המחבר ולראות את הפלט מבלי להתחיל את הרישום מחדש.

דרך נוספת להשבית את האיפוס האוטומטי היא לשים נגד למשוך למעלה על סיכת האיפוס.

השבתת איפוס אוטומטי בחיבור סידורי

ניתן לתקן את Arduino Unos עם קבלים של 10 µF על פני RESET ו- GND. זה עובד על ההתקנה היחידה בה השתמשתי, עד כה ...
ניסיתי להשתמש ב- [PuTTY] (http://en.wikipedia.org/wiki/PuTTY), להתחבר ליציאת ה- COM בה מופיע Arduino (COM16 במקרה שלי). זה עדיין מאפס את הארדואינו אם "בקרת זרימה" בחיבור / סידורי מוגדרת כ"אין "(האפשרויות האחרות הן" XON / XOFF "," RTS / CTS "ו-" DSR / DTR "). השתמשתי בגרסה 0.60 של PuTTY.
-cont: זה נוסה על Arduino Uno R3.
ל- Duemilanove ו- Uno יש מעקב שכותרתו "EN RESET" השולט בהתנהגות זו. גרד את המעקב כדי להשבית את האיפוס האוטומטי. הלחמו חוט על פני הרפידות כדי להפעיל אותו מחדש.
#2
+13
zmo
2014-03-02 04:24:13 UTC
view on stackexchange narkive permalink

האמת היא תמיד בגליונות הנתונים, בתרשימים ובקוד:

Arduino UNO למעשה משתמש בשורה / DTR כדי להפעיל איפוס, כפי שניתן לראות ב גליון הנתונים הבא:

reset schematic

הקישור לתמונה הסכמטית שלך נשבר.
תודה, תיקנתי! למעשה חשבתי ש- SO מטמון תמונות, אבל נראה כאילו לא, אז אני אדאג לשמור את זה תמיד.
שוב, זה שבור. אולי תוכל להוסיף אותו כתמונה באמצעות אפשרות imgur של StackExchange? פשוט לחץ על האפשרות 'תמונה' בסרגל הכלים של העורך.
עשיתי, תודה על הטיפ (למעשה היה לי אתר משלי למשך 10 ימים כי עשיתי קצת תחזוקה, שהייתה פשוט זמנית)
כן, אבל מה קורה בפועל? האם זה נובע מהאופן שתוכנת ATmega16U2 (טוען כי PD7 נמוך כאשר יציאת COM נפתחת על ידי תוכנית?)? או לעקוב אחר תקן DTR כלשהו?). ומה המשמעות של C5? - האם הוא יאפס את המעבד הראשי לשני המעברים (נמוך לגבוה וגבוה לנמוך)? מהו רוחב הדופק המשוער (במיקרו-שניות) בסיכת האיפוס של המעבד הראשי ואיך זה נראה?
בסדר, הקלטתי את הדופק ב- RESET בחיבור סדרתי: [https://i.stack.imgur.com/KV4Oa.png ](https://i.stack.imgur.com/KV4Oa.png). אתם מוזמנים להשתמש בו בתשובתכם.
איך זו תשובה? מה אנו מניחים לעשות עם המידע הזה ????
היי חבר'ה זה אומר שאני צריך לחתוך את החוט הזה?
אם זה מה שאתה רוצה, כן :)
מה יכול RESET-EN לעשות? למה זה שם? נראה שזה לא מסוגל להשפיע (נראה כמעגל קצר). או שזו שגיאה בסכמה? מה ההסבר? האם תוכל לפרט בתשובתך (נקודות אלו ואחרות)?
זה בעצם לא עושה כלום, כפי שניתן לראות מהתרשימים. הסיבה לכך היא שאתה יכול לחתוך את קו DTR בין רגלי RESET-EN כדי להשבית את האיפוס האוטומטי, ואם אתה רוצה להפעיל אותו מחדש, תוכל להלחין יחד את שתי רפידות RESET-EN.
#3
  0
Julian Lewis
2016-05-13 23:17:18 UTC
view on stackexchange narkive permalink

זה פותר את הבעיה

  ייבא osimport sysimport termiosimport fcntl self.fd = sys.stdin.fileno () # עצור איפוס הארדואינו בחיבור סדרתי self.newattr = termios.tcgetattr (עצמי .fd) self.newattr [2] = self.newattr [2] & ~ termios.HUPCL termios.tcsetattr (self.fd, termios.TCSANOW, self.newattr)  


שאלה ותשובה זו תורגמה אוטומטית מהשפה האנגלית.התוכן המקורי זמין ב- stackexchange, ואנו מודים לו על רישיון cc by-sa 3.0 עליו הוא מופץ.
Loading...