Найти - Пользователи
Полная версия: Помогите с COM port
Начало » Центр помощи » Помогите с COM port
1
MiMarch
Вот код, я передаю это на Arduino, можно ли как то избежать аски, или как мне потом перевести в int из ASCII, помогите нигде помочь не могут
import os
import sys
import serial
import datetime
ser = serial.Serial('COM4', 9600)
print(ser.name)
print(datetime.datetime.now())
date_string = str(datetime.datetime.now())
date_string = date_string[5:7] + date_string[8:10] + date_string[11:13] + date_string[14:16] + date_string[17:19]
DATE = date_string[:4]
TIME = date_string[4:8]
SEC = date_string[8:]
TIME_bytes = TIME.encode('ascii')
DATE_bytes = DATE.encode('ascii')
SEC_bytes = SEC.encode('ascii')
print(DATE)
print(TIME)
print(SEC)
print(date_string)
date_bytes = date_string.encode('ascii')
ser.write(TIME_bytes)
ser.write(DATE_bytes)
ser.write(SEC_bytes)
print('OK')
print(date_bytes)
print(len(date_bytes))
ser.close
Вот Arduino код
#include <TFT.h>
#include <SPI.h>
#define cs   10
#define dc   9
#define rst  8
TFT TFTscreen = TFT(cs, dc, rst);
char DATETIME[26];
void setup() {
  TFTscreen.begin();
  Serial.begin(9600);
}
void loop() {
  String ComData = String(Serial.parseInt());
  ComData.toCharArray(DATETIME, 4);
  
  delay(1000);
  TFTscreen.background(0, 0, 0);
  TFTscreen.stroke(255, 255, 255);
  TFTscreen.setTextSize(2);
  TFTscreen.text(DATETIME, 0, 20);
  delay(8000);
  if(Serial.available() > 0){
    Serial.print(DATETIME);
  }
}
JOHN_16
MiMarch
мда…я просто хочу спросить, а к чему вот эта вот конструкция?
MiMarch
TIME.encode('ascii')
как по вашему, какой тут смысл заложен?
MiMarch
нигде помочь не могут
кажется догадываюсь почему
MiMarch
JOHN_16
MiMarchмда…я просто хочу спросить, а к чему вот эта вот конструкция?
Ну да я передаю только в ASCII на другое он ругается, так вот arduino на выходе получает b'1503', вместо 1503, как это исправить?
JOHN_16
MiMarch
b'1503', вместо 1503,
нет, передает он то что нужно. А после print() выглядит это именно так потому что Питон 3 акцентирует внимание что это набор байтов (т.е. тип данных bytes), а не unicode объект (строка).
Поэтому это исправлять не нужно, потому что нечего исправлять.
MiMarch
Ну да я передаю только в ASCII на другое он ругается
тут не в ascii дело, а в том что вы должны передать не строку,а набор байтов, в аспекте терминологии Python3
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB