본문 바로가기

전체 글293

STM32 CubeMx Code Generation 상세분석 STM CubeMX Cube MX 매뉴얼 : UM1718 STM32CubeMX for STM32 configuration and initialization C code generation MCU의 다양한 페리펄럴과 관련된 셋팅을 GUI 툴로 Setting 하고, Code gen을 하면 셋팅된 내용을 기준으로 관련된 SW Code를 자동으로 만들어주는 툴이다. Ex) clock설정, Uart 설정, SPI 통신 설정, GPIO 설정 , 인터럽트 설정 등등 - Uart의 경우 : 각각의 Uart 채널에 대해서 BaudRate, WordLength, FIFO 사용 여부 , 해당 채널에 연결해서 사용할 Pin 셋팅, 인터럽트 사용 여부 등등을 GUI로 셋팅 - GPIO의 경우: 각 핀마다 Output/Input.. 2021. 12. 12.
STM32 공부시작. MCU 정보, 보드 정보, 툴 정보 등 사용 보드 : B-L4S5I-IOT01A 적용 MCU : stm32l4s5vit6 (120Mhz) 디버거 인터페이스 : SWD 방식 IDE : STM32 Cube IDE 사용 Cube IDE에서 제공하는 Codegen 기능과 HAL Driver 사용 예정 ※ SW 다운로드 받을 때 CUBE IDE가 있고, CubeMx가 있는데 CUBE IDE 받으면 된다. Cube Mx는 GUI로 설정해서 Code Gen하는 용도의 툴인데 Cube IDE에 이미 Cube MX도 같이 포함돼있음 보드 데이터시트 ,유저매뉴얼 MCU Reference Manual: RM0432 -Reference manual -STM32L4+ Series advanced Arm®-based 32-bit MCUs 파일 용량이 커서 업로드가 안.. 2021. 12. 12.
GPS 모듈 NEO-6M 간단히.그리고 상세하게 알아보기 초간단 요약 1)VCC.Gnd 연결하고 Mcu의 Uart Rx 핀에 연결 (Default Badurate은 9600 bps) 2)모듈이 위성으로 부터 받은 gps 정보들을 uart로 보내줌. 3)mcu는 해당정보 rx로 받아서 적절하게 파싱해서 사용. 4)gps 신호가 위성으로부터 정상적으로 수신되면 빨긴불이 깜빡깜빡한다. 5) 실내에선 잘 안된다. 경우에 따라 창가에서도 잘 안되기도 함.근데 위성정보 수신 가능한 탁트인곳이라 할지라도.. 위성정보 처음 받을때 생각보다 많이 오래걸린다 . 밖에서 전원켜도 불 안들어오면 적어도 5~10분은 기다려보자. 난 몇분 기다려도 불 안들어오길래 처음엔 고장인줄 알았는데 한참 기다리니까 켜지더라. ——— 아두이노 GPS 모듈이라고 검색하니까 NEO-6M 이라는게 많이.. 2021. 12. 11.
PyQt gui 경고창 띄우기 Qmessagebox QMessageBox().about("창이름" ,"메세지 내용") 2021. 12. 7.
PyQt 혼자 공부 할 때 알아둬야 할 팁들 요약: 1.VsCode의 자동완성 기능 사용하자 (클래스이름,메소드이름,멤버변수 이름) 2.VSCode의 Definition 기능 활용하자 3,정확한 내용은 구글링 및 QT 라이브러리 홈페이지 참고하자 ※ QT 라이브러리 홈피 : Search Results (qt.io) 4. PyQt 의 클래스들은 대부분 상속에 상속에 상속을.. 받는 형태로 구성돼있다는 걸 참고로 알아두자. 1. VsCode를 반드시 사용하자 VsCode 없이는 PyQt 솔직히 공부 못했을 것 같다. VsCode 자동완성 기능이 매우 편리해서 이걸 꼭 활용해야 한다. 1-1) 사용하려는 클래스의 이름을 찾은 후, 에디터 상에 일단 객체를 선언해본다. 예를 들어 내가 QTableWidget 클래스와 관련된 작업을 한다고 가정하면 from.. 2021. 12. 5.
PyQt 사용시 from, import 관련 알아 둘 것 PyQt 모듈에 정의된 클래스 들을 사용하려면 from 또는 import 명령을 사용해야한다. 인터넷에 있는 PyQt 관련 자료, 교재에서 가끔씩 앞에 from, import 부분을 생략하고 소스코드를 올려주는 경우가 있어서 종종 동작이 안될때가 있으니 아래 개념을 꼭 알아두자. 예시1) QTableWidget 클래스를 사용하고 싶은 경우 해당 클래스는 QtWidgets.pyi 안에 정의가 되어있다. QTableWidget 클래스를 사용하려면 방법이 2가지가 있다. 방법1) from PyQt5.QtWidgets import * self.ta1 = QTableWidget(self) 방법2) from PyQt5 import QtWidgets self.ta1 = QtWidgets.QTableWidget(sel.. 2021. 12. 5.
PyQt QLineEdit 키보드 입력값 받기. 입력값 제한하기 (숫자만 넣기,문자만 넣기 등등) 개요 Text Edit 활성화/비활성화/읽기전용 셋팅 관련 메소드들 입력 제한 하기 QLineEdit 관련 이벤트 처리하기(텍스트 변경시 이벤트 발생 등등) 개요 마우스 클릭하면 커서 깜박 거리면서 키보드로 데이터 입력할 수 있는 창 그것을 QLineEidt라고 한다. setText(str) 메소드를 사용해서 text edit에 내용을 유저가 임의로 지정할 수도 있다. text() 메소드를 사용하면 현재 textedit에 입력된 문자열을 출력하고 import sys from PyQt5.QtWidgets import * class MyWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("Test") self.setG.. 2021. 12. 4.
PyQt TableWidget (심화2) table pushbutton,combobox 등등 넣기 테이블의 셀에 PushButton, ComboBox,LineEdit 등등 넣기(기본) 테이블의 특정 셀에 존재하는 아이템에 접근 테이블의 셀에 PushButton 넣어서 사용하기(응용,심화) Table에 유저가 데이터 입력할 때, 입력값 제한하기 테이블의 셀에 PushButton, ComboBox,LineEdit 등등 넣기(기본) 여태까지는 셀에 문자열 데이터만 넣어봤는데 셀에다 버튼 등도 넣을 수가 있다. 아래 메소드를 사용하면 된다. def setCellWidget(self, row: int, column: int, widget: QWidget) -> None: ... 참고로, 테이블의 특정 셀에 존재하는 아이템에 접근 할 때 사용하는 메소드가 2개 있는데 def item(self, row: int,.. 2021. 12. 3.
PyQt TableWidget (심화1) Selection Mode에 대하여 현재 선택된 셀의 행번호 혹은 열번호 파악하기 특정 셀 선택해서 삭제하기(문제점 설명) 특정 셀 선택해서 삭제하기(해결책) 특정 셀의 속성 지정하기 (수정불가, 사용불가, 선택불가,drag&drop 불가 등등) (flag와 연관됨) Selection Mode에 대하여 마우스로 테이블을 선택했을 때, 선택되는 대상을 무엇으로 할지 고를 수 있다. 셀을 고르거나, 행을 고르거나, 열을 고르거나 할 수 있다. 아래 보면 이해 될거라 믿는다. def selectionBehavior(self) -> 'QAbstractItemView.SelectionBehavior': ... class SelectionBehavior(int): SelectItems = ... # type: QA.. 2021. 12. 3.