uart 로 1바이트씩 보내고 싶은데, 파이썬이 서툰 나로서는 아무리 생각해봐도 몰라 검색 해봤더니,
검색이 쉽지 않다.... 이놈의 라이브러리는 어디있는지도 모르겠고,,,ㅠㅠ
ser.write('HELLO')
라면 , HELLO 가 출력된다..
a=20
ser.write(a)
는 알수 없는 쓰레기 값이 출력된다.
제대로 출력하기 위해서 어떻게 해야할까?
ser.write(bytes(a))
라고 하면 20이 출력된다.
하지만,
a=25000
ser.write(bytes(a))
라면 a=25000 이 출력된다..... a 가 바이트가 아니다. ㅡ.ㅡ
c 언어라면 강제로 자료형을 만들수도 있고, 여러방법을 알겠지만,,
파이썬은 모르겠다. int() 라는 자료형을 정수로 바꾸는 방법은 있지만, 내가 못찾은 건지 char은 없다...
그래서 만들어 써야지 뭐 ㅡ.ㅡ
원래 만들고 목적은,,,, int a 를 0xffee 형식으로 상위, 하위 1바이트로 나눠서 a 를 2바이트로 전송 하는 것이다.
c를 참고 했다...
a_high = a >>8 #상위비트 1byte 만들기
a_low = a & 0x00ff #하위비트 1byte 만들기 , c랑 다르게, 상위비트를 0으로 바꿔줘야 한다....
ser.write(bytes(bytearry([a_high]))) #상위비트 보내기
ser.write(bytes(bytearry([b_high]))) #하위비트 보내기
import serial
ser = serial.Serial('/dev/ttyS0', 115200, timeout=3)
import serial
ser = serial.Serial('/dev/ttyS0', 115200, timeout=3)
import serial
ser = serial.Serial('/dev/ttyS0', 115200, timeout=3) import serial
ser = serial.Serial('/dev/ttyS0', 115200, timeout=3)
'기술팁 > 라즈베리파이(raspberry)' 카테고리의 다른 글
라즈베리파이 카메라 성능, motion 사용, 파이썬 소스 (0) | 2019.11.20 |
---|---|
라즈베리파이 파이썬 타이머 함수 (0) | 2019.09.25 |
라즈베리파이 usart 사용하기 (0) | 2019.09.23 |
라즈베리파이 파이캠 opencv 접근 (0) | 2019.09.11 |
라즈베리파이 opencv 3.4 설치하기(빌드) (4) | 2019.07.27 |