본문 바로가기

개발환경/STM32CubeMX

(8)
GPIO(스위치) 설정 - STM32F030F4P6 MCU는 STM32F030F4P6을 사용하였고 관련 데이터 시트는 아래 첨부했습니다. GPIO mode - Input mode 스위치이므로 핀을 Input mode로 설정한다. GPIO Pull-up/Pull-down – No pull-up and no pull-down/Pull-up/Pull-down 1. Floating 디지털 신호는 High(1) 또는 Low(0)이지만 실제는 그렇지 않은 경우가 많다. Floating은 0과 1이 명확하지 않게 펄럭거리는 상황을 말하며 정전기, 잡음에 의해서 오류가 생기는 것이 가능하다. 위의 그림은 Floating 상태를 보여준다. Input을 1로 받을지 0으로 받을지 모르기 때문이다. 즉, 확실한 전압차이가 나지 않아서 전류가 흐르는지 아닌지도 불명확하기 때문..
GPIO(LED) 설정 - STM32F030F4P6 MCU는 STM32F030F4P6을 사용하였고 관련 데이터 시트는 아래 첨부했습니다. GPIO output level - Low/High GPIO 내장 주변장치의 레지스터 설정의 초기화가 끝난 이후에 해당 GPIO 핀의 출력 상태를 지정할 수 있는 속성이다. 위의 회로는 GPIO 핀이 논리값 High 일 때 점등이 되고, 논리값 Low일 때 소등되는 구조로 동작한다. 만약 여기서 GPIO output level을 Low로 설정한다면, GPIO 내장 주변장치의 레지스터 설정의 초기화가 끝난 이후에 해당 GPIO 핀의 출력 상태가 Low가 되어 LED가 소등되어 있는 상태가 된다. 하지만 High로 설정한다면 해당 GPIO 핀의 출력 상태가 High이므로 LED가 점등되어 있는 상태가 된다. 정리하면, Lo..
Debug 설정 - STM32F030F4P6 MCU는 STM32F030F4P6을 사용하였고 관련 데이터 시트는 아래 첨부했습니다. 개념 - JTAG과 SWD JTAG(Joint Test Action Group)과 SWD(Serial Wire Debug)는 MCU에서 주로 활용되는 디버깅 통신 방식으로 디버깅과 플래시 프로그래밍을 가능하게 해주는 인터페이스이다. JTAG과 SWD는 서로 다른 프로토콜이며, JTAG은 여러 디바이스에 널리 사용된다는 장점이 있고 SWD는 비교적 간단한 구성을 가지고 있다는 장점이 있다. VCC와 GND 제외 필수 연결 핀은 다음과 같다. 설정 Pinout & Configuration 탭에서 SYS를 선택한다. 그리고 Mode에서 Debug Serial Wire를 체크한다. Debug Serial Wire를 체크하면 위..
ADC 설정 - STM32F030F4P6 MCU는 STM32F030F4P6을 사용하였고 관련 데이터 시트는 아래 첨부했습니다. ADC 설정 개념 1. Mode ADC 하나에는 여러 채널이 있다. 위 그림을 보면 9개의 채널과 내부적으로 연결된 2개의 채널이 있는 것을 확인할 수 있다. EXTI Conversion Trigger는 ADC의 값이 변환되면 Trigger를 발생시키겠다는 것이다. 2. Configuration - Parameter Settings ① ADCs_Common_Settings Mode: Independent Mode ADC1, ADC2가 독립적으로 작동할 경우 사용되는 모드 ② ADC_Settings ⓐ Clock Prescaler 사용하려는 ADC peripheral의 최대속도(fADC)와 어느 clock 도메인(APB1..
UART(RS-485) 설정 - STM32F030F4P6 MCU는 STM32F030F4P6을 사용하였고 관련 데이터 시트는 아래 첨부했습니다. 1. 모드 선택 여기서는 Asynchronous(비동기 방식)을 선택했다. https://powerdeng.tistory.com/204 동기(Synchronous)와 비동기(Asynchronous) 방식 비동기(Asynchronous) 방식 송신 측과 수신 측의 clock에 상관없이 시간을 쪼개서 서로 송수신 속도를 Baud rate을 정해서 맞춘다. 이때 한 번에 한 문자씩 송수신하며 아래 그림1과 같이 데이터 길이, 시 powerdeng.tistory.com 2. Parameters 설정 1) Baud Rate 초당 전송하는 심볼(의미있는 데이터 묶음)의 수 https://powerdeng.tistory.com/20..
타이머 설정 - STM32F030F4P6 MCU는 STM32F030F4P6을 사용하였고 관련 데이터 시트는 아래 첨부했습니다. STM32CubeMX 설정 1) 타이머 선택 및 활성화 범용 타이머인 TIM14를 선택한 뒤 Activated를 체크한다. 2) Prescaler(PSC) 타이머에 공급하는 입력 클럭의 속도를 조절한다. 분주기라고도 하는데 분주기라는 말 자체가 의미하듯이 클럭을 쪼갠다는, 즉 속도를 느리게 한다는 의미이다. 위 그림1처럼 1000을 나누려고 한다면 -1을 해줘야 한다. 그 이유는 0부터 시작이기 때문이다(0~999). 그리고 이 말은 클럭을 1000번 보내면 카운터를 1개 올리겠다는 뜻이 된다. 3) Counter Mode 여기서는 카운터의 값이 증가하면서 카운팅을 하는 업 카운팅 모드를 선택했다. 범용 카운터의 모드 ..
Clock 설정 - STM32F030F4P6 MCU는 STM32F030F4P6을 사용하였고 관련 데이터 시트는 아래 첨부했습니다. 1. 핀 설정 1) 회로도 확인 회로도에서 외부에 8MHz의 crystal oscillator가 있는 것을 확인한다. 그리고 PF0, PF1핀에 XIN, XOUT으로 연결되는 것을 확인한다. 2) 데이터 시트 확인 위 그림에서 표시된 clock source 중 빨간색으로 표시된 clock source를 사용한다. ※ 용어 정리 HSI RC(8 MHz): High Speed Internal RC oscillator HSE OSC(4~32 MHz): High Speed External OSCillator LSE OSC(32.168 kHz): Low Speed External OSCillator LSI RC(40 kHz): ..
STM32CubeMX에서 STM32CubeIDE로 코드 생성하기 1. STM32CubeIDE, STM32CubeMX 설치한다. 여기서는 STM32CubeIDE 1.13.2, STM32CubeMX 6.9.2를 설치하였다. 2. 프로젝트를 저장할 폴더를 생성한다. 여기서는 D:\project에 ITTH 폴더를 생성했다. 3. STM32CubeMX에서 작업한 파일을 위에서 생성한 폴더에 저장한다. 여기서는 ITTH라는 이름으로 저장했다. 여기까지 하면 아래 그림과 같이 D:\project\ITTH\ITTH에 ITTH.ioc 파일이 있다. 4. STM32CubeMX로 ITTH_CT.ioc 파일을 열고 Project Manager를 선택한다. Toolchain / IDE 에서 STM32CubeIDE로 변경한다. 5. GENERATE CODE를 누른다. 6. 생성이 되면 아래와..