기초에서 응용까지 STM32Fx Cortex ARM 프로그래밍 활용편
현재 많은 대학에서 8비트 AVR 수업을 하고 있습니다. 필자가 근무하고 있는 대학에서도 오래전부터 Atmega 128 MCU AVR 수업을 해왔습니다. 기술이 발전함에 따라 기업에서는 ARM MCU를 많이 사용하고 있습니다. 임베디드 AVR 수업을 하는 학교는 이어서 ARM Cotex 수업을 하는 것이 학생들에게 산업체로 갔을 때 많은 도움이 되리라 생각됩니다. 그 이유는 Cotex ARM 가격이 많이 저렴하고, 다양한 메모리 용량과 32비트의 고성능의 기능을 갖추고 있고, 선택의 폭이 아주 넓기 때문입니다. 필자는 어떻게 하면 최소의 예산으로 학부 학생들이 흥미롭게 배울 수 있을까 하는 고민에서 이 책을 쓰게 되었습니다.
저자 : 홍봉조
저자 : 홍봉조
〈이력〉
숭실대학교 전자공학과(학사)
숭실대학교 대학원 소프트웨어공학(석사)
숭실대학교 대학원 컴퓨터공학(공학박사)
LG정보통신 책임연구원
영동영보통신(주) 부사장
HPNRT(주) 연구위원
유한대학교 전자공학과 겸임교수
〈수상〉
장영실상(IWF)
〈개발경력〉
No.7, 이동통신 IWF, 무선키폰, PABX, ISDN 교환기,
비상통화장치, 엘리베이터 원격감시 시스템,
에스컬레이터 보조브레이크 제어기 등 국내 다수의 특허를 보유
〈관심분야〉
임베디드 시스템, 자율주행자동차, 인공지능 의료 분야,
ARM Processor, RTOS, CAN통신, 암호통신보안,
사물인터넷, 음성통신, 데이터통신
머리말
강의계획서 구성
Part I SW개발방법 UML과 STM 컴파일러 환경구축
1장 SW개발방법 및 ARM Processor
1.1 소프트웨어 개발방법
1) 소프트웨어란?
2) 소프트웨어의 특징
3) 소프트웨어 개발의 기본적인 활동
4) 개발 작업의 특징
5) 소프트웨어의 개발 프로세스
6) 단계적 프로세서
7) 단계적 프로세서와 산출물
8) 소프트웨어 개발비용 비중
1.2 ARM CPU 및 NUCLEO 보드
1) 마이크로프로세서와 마이크로컨트롤러
2) ARM(Advanced RISC Machines)이란?
3) RISC(Reduced Instruction Set Computer) 프로세스란?
4) STM32F429(144Pin)
5) STM32F429Zi ARM MCU 기능
6) NUCLEO 보드 소개
7) NUCLEO-F429Zi/F439Zi 보드 기능
2장 Cortex ARM IDE 환경구축
2.1 선행학습
1) STM32CubeMX 개요
2) STM32CubeIDE
2.2 학습도구 및 기자재
2.3 CubeMX 설치
1) CubeMX 개요
2) CubeMX 설치
3) CubeMX를 실행하고 사용법 익히기
2.4 STM32CubeIDE 설치
2.5 Debugging
2.6 부품 및 사용기기, 프로그램
2.7 예제 1: Project File 만들기 실습
1) CubeMX로 NUCLEO-F429Zi 선택한 후 Project 코드 만들기
2) 시험하기
3장 UML 소개와 LED Blinking
3.1 선행학습
1) UML의 개요
2) UML의 역사와 버전
3) UML 다이어그램
4) UML 모델링 절차
5) USE 케이스
6) 시퀀스 다이어그램
7) 상태 다이어그램
8) Activity Diagram
9) StarUML
3.2 학습도구 및 기자재
3.3 예제 1: LED Blinking
1) 사용자 요구사항 작성하기
2) UML Tool을 이용하여 Activity Diagram 작성하기
3) 구현하기
3.4 예제 2: Digital Input
1) 사용자 요구사항 작성하기
2) UML Tool로 설계하기
3) 구현하기
4) 시험하기
4장 GPIO
4.1 선행학습
1) STM32 펌웨어 구성
2) HAL(Hardware Abstraction Layer) 드라이브
3) GPIO(General Purpose Input Output)
4) GPIO 설정용 구조체
5) GPIO Mode
6) Pull
7) Speed
8) GPIO 구동용 함수
9) 인터럽트 처리용 함수
10) GPIO 관련 함수
4.2 학습도구 및 기자재
4.3 예제 1: Switch 입력에 따른 LED 제어
1) 사용자 요구사항 작성하기
2) UML Tool로 설계하기
3) 구현하기(CubeMX로 Project 만들기)
4) 시험하기
4.4 예제 2: 프린트문 사용하기
1) 사용자 요구사항 작성하기
2) UML Tool로 설계하기
3) CubeMX로 Project를 만들고 code를 generate 한다.
4) 구현하기
5) main.c의 main(void) 함수에 다음과 같이 코딩한다.
6) 시험하기
5장 Analog 전압측정과 scanf
5.1 선행학습
1) ADC 블록다이어그램
2) STM32 ADC 기능
3) ADC 클럭
4) 단일변환모드
5) 연속변환모드
6) STM32CubeMX에서의 ADC 설정
5.2 학습도구 및 기자재
5.3 예제 1: ADC로 전압 표시하기
1) 사용자 요구사항 작성하기
2) UML Tool로 설계하기
3) CubeMX로 Project 만들기
4) 구현하기
5) 시험하기
5.4 예제 2: scanf 기능 사용하기
1) 사용자 요구사항 작성하기
2) UML Tool로 설계하기
3) CubeMX로 Project 만들기
4) 구현하기
5) 시험하기
6장 인터럽트와 USART
6.1 선행학습
1) 인터럽트의 개념
2) STM32F4xx 인터럽트 Vector Table
6.2 학습도구 및 기자재
6.3 예제 1: Interrupt 방식으로 Switch 처리
1) 사용자 요구사