본문 바로가기 주메뉴 바로가기

출간도서

목록으로

기초에서 응용까지 STM32Fx Cortex ARM 프로그래밍 활용편

출간일
2021-09-01
저자
홍봉조
분야
IT·컴퓨터
판형
46배판(188 X 257)
페이지
304
ISBN
979-11-392-0059-1
종이책 정가
27,000원
전자책 정가
19,000원
저자소개

홍봉조

홍봉조

〈이력〉
숭실대학교 전자공학과(학사)
숭실대학교 대학원 소프트웨어공학(석사)
숭실대학교 대학원 컴퓨터공학(공학박사)
LG정보통신 책임연구원
영동영보통신(주) 부사장
HPNRT(주) 연구위원
유한대학교 전자공학과 겸임교수

〈수상〉
장영실상(IWF)

〈개발경력〉
No.7, 이동통신 IWF, 무선키폰, PABX, ISDN 교환기,
비상통화장치, 엘리베이터 원격감시 시스템,
에스컬레이터 보조브레이크 제어기 등 국내 다수의 특허를 보유

〈관심분야〉
임베디드 시스템, 자율주행자동차, 인공지능 의료 분야,
ARM Processor, RTOS, CAN통신, 암호통신보안,
사물인터넷, 음성통신, 데이터통신

현재 많은 대학에서 8비트 AVR 수업을 하고 있습니다. 필자가 근무하고 있는 대학에서도 오래전부터 Atmega 128 MCU AVR 수업을 해왔습니다. 기술이 발전함에 따라 기업에서는 ARM MCU를 많이 사용하고 있습니다. 임베디드 AVR 수업을 하는 학교는 이어서 ARM Cotex 수업을 하는 것이 학생들에게 산업체로 갔을 때 많은 도움이 되리라 생각됩니다. 그 이유는 Cotex ARM 가격이 많이 저렴하고, 다양한 메모리 용량과 32비트의 고성능의 기능을 갖추고 있고, 선택의 폭이 아주 넓기 때문입니다. 필자는 어떻게 하면 최소의 예산으로 학부 학생들이 흥미롭게 배울 수 있을까 하는 고민에서 이 책을 쓰게 되었습니다.

 

학부 AVR 수업 관련 서적은 많이 있으나 ARM MCU 관련 대학교 실습교재는 많지 않습니다. ARM MCU 프로그래밍은 어려워서 대부분 대학원 과정에서 많이 다루는데 이 책은 아주 쉽게 배울 수 있는 것이 특징입니다. 이 책은 전문대학교, 4년제 대학 전자공학, 통신공학, 제어계측공학, 메카트로닉스, 전기공학, 정보보안과, 컴퓨터공학과 등에서 한 학기 실습수업용으로 활용할 수 있도록 짜여 있습니다. 뿐만 아니라 벤처기업, 중소기업에서 ARM MCU를 이용한 펌웨어 개발에도 유용하게 활용할 수 있도록 펌웨어 설계과정과 프로그램 개발방법 등을 제공하고 있습니다.

 

이 책의 구성

이 책은 크게 3부로 나누어져 있고 한 학기 15주 수업에 맞추어 15강으로 구성되어 있습니다.

1부에서는 SW개발방법 UMLSTM32 컴파일러 환경구축으로 전반적인 소프트웨어개발프로세서와 Nucleo 보드 설명, 컴파일러 설치과정, UML(Unified Modeling Language)로 설계하는 방법, STM32CubeMXSTM32CubeIDE 사용법과 프로젝터 생성하는 방법이 설명되어 있습니다.

2부에서는 FreeRTOS 환경에서의 실습으로 멀티 Task 환경에서 프로그래밍하는 방법이 설명되어 있고, FreeRTOS 환경에서 모니터 프로그램 개발방법과 모니터 환경하에서 GPIO, 타이머, DHT-11, RTC 등의 실습 예제가 포함되어 있습니다.

3부에서는 데이터 통신 관련된 실습으로 산업 현장에서 많이 사용하는 I2C 통신과 SPI, UART 통신, 자동차에서 많이 사용하고 있는 CAN 버스 통신, 마지막으로 TCP IP 서버와 클라이언트 실습 예제가 포함되어 있습니다.

 

이 책이 필요한 독자

대학교 전자공학, 정보통신공학, 컴퓨터공학, 제어 계측공학 실습 교재

마이크로프로세서 혹은 펌웨어 수업 수강을 하는 독자

32Bit Cortex-M ARM 프로세스에 관심이 많은 독자

ARM 프로세서로 펌웨어 개발 프로젝터를 수행하는 독자

FreeRTOS 환경에서 펌웨어 개발에 관심이 많은 독자

 

 

머리말

강의계획서 구성

 

 

Part I SW개발방법 UMLSTM 컴파일러 환경구축

 

1SW개발방법 및 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 보드 기능

 

2Cortex 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) CubeMXNUCLEO-F429Zi 선택한 후 Project 코드 만들기

2) 시험하기

 

3UML 소개와 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) 시험하기

 

4GPIO

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) 구현하기(CubeMXProject 만들기)

4) 시험하기

4.4 예제 2: 프린트문 사용하기

1) 사용자 요구사항 작성하기

2) UML Tool로 설계하기

3) CubeMXProject를 만들고 codegenerate 한다.

4) 구현하기

5) main.cmain(void) 함수에 다음과 같이 코딩한다.

6) 시험하기

 

5Analog 전압측정과 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) CubeMXProject 만들기

4) 구현하기

5) 시험하기

5.4 예제 2: scanf 기능 사용하기

1) 사용자 요구사항 작성하기

2) UML Tool로 설계하기

3) CubeMXProject 만들기

4) 구현하기

5) 시험하기

 

6장 인터럽트와 USART

6.1 선행학습

1) 인터럽트의 개념

2) STM32F4xx 인터럽트 Vector Table

6.2 학습도구 및 기자재

6.3 예제 1: Interrupt 방식으로 Switch 처리

1) 사용자 요구사항 작성하기

2) UML Tool을 이용하여 Activity Diagram 작성하기

3) CubeMX를 실행하여 Project를 만들어보라.

4) 구현하기

5) 시험하기

6.4 예제 2: USART를 인터럽트 방식으로 사용

1) 사용자 요구사항 작성하기

2) UML Tool로 설계하기

3) CubeMXProject 만들기

4) 구현하기

5) 시험하기

 

 

Part FreeRTOS 환경에서의 실습

 

7FreeRTOS

7.1 선행학습

1) RTOS의 개념

2) FreeRTOS?

3) RTOS의 특징

4) Multitasking

5) Message Queue

6) 상용 OSFreeRTOS

7.2 학습도구 및 기자재

7.3 예제 1: FreeRTOS TaskLED Blinking

1) 사용자 요구사항 작성하기

2) UML Tool로 설계하기

3) CubeMX 구성하기

4) 구현하기

5) 시험하기

7.4 예제 2: FreeRTOS상에서 2개의 LED On/Off

1) 사용자 요구사항 작성하기

2) UML 작성하기

3) 구현하기

4) 시험하기

 

8FreeRTOS Monitor

8.1 선행학습

1) Monitor에 대한 개념

2) (Queue)의 개념

8.2 학습도구 및 기자재

8.3 예제 1: FreeRTOS 환경에서 모니터 만들기

1) 사용자 요구사항 작성하기

2) UML Tool로 설계하기

3) 구현하기

4) Code Generate가 다 끝나면 Open Folder로 들어가보자.

5) 시험하기

 

9Monitor Display Memory, Change Memory 실습

9.1 선행학습

1) STM32F429Zi Memory Map

9.2 학습도구 및 기자재

9.3 예제 1: 모니터 Display Memory 만들기

1) 사용자 요구사항 작성하기

2) UML Tool로 설계하기

3) Display Memory Program 구현하기

4) 시험하기

9.4 예제 2: 모니터 Change Memory 만들기

1) 사용자 요구사항 작성하기

2) UML Tool로 설계하기

3) 구현하기

4) 시험하기

 

10Timer 실습

10.1 선행학습

1) STM32F429Zi CPU Timer

2) STM32F429Zi CPU Timer 관련 블록다이어그램

3) Advanced-control Timer(Timer 1, Timer 8)의 기능

4) CubeMX Timer 설정

10.2 학습도구 및 기자재

10.3 예제 1: 100ms Timer 만들기

1) 사용자 요구사항 작성하기

2) UML Tool로 구현하기

3) 구현하기

4) 시험하기

10.4 예제 2: Interrupt 모드로 타이머 사용

1) 사용자 요구사항 작성하기

2) UML Tool로 구현하기

3) 구현하기

4) 시험하기

10.5 예제 3: PWM 모드로 Timer 사용

1) 사용자 요구사항 작성하기

2) UML 작성하기

3) 구현하기

4) 시험하기

 

11DHT-11 온습도 센서와 RTC 실험

11.1 선행학습

1) DHT-11 프로토콜

11.2 부품 및 사용기기, 프로그램

11.3 예제 1: DHT-11 실험

1) 사용자 요구사항 작성하기

2) UML Tool로 설계하기

3) Project 만들기

4) 코딩하기

5) 시험하기

11.4 예제 2: RTC 실험

1) 사용자 요구사항 작성하기

2) UML Tool로 설계하기

3) RTC, Alarm 구현하기

4) 시험하기

 

 

Part 데이터 통신 관련된 실습

 

12I2C, SPI 통신과 I2C LCD

12.1 선행학습

1) I2C LCD

2) I2C 통신방법

3) SPI 통신

12.2 학습도구 및 기자재

12.3 예제 1: I2C Loop 시험

1) 사용자 요구사항 작성하기

2) UML Tool로 설계하기

3) I2C Loop 구현하기

4) 시험하기

12.4 예제 2: I2C LCD 실험

1) 사용자 요구사항 작성하기

2) UML Tool로 설계하기

3) I2C LCD 구현하기

4) 시험하기

12.5 예제 3: SPI Loop 시험

1) 사용자 요구사항 작성하기

2) UML 작성하기

3) SPI Loop 구현하기

4) 시험하기

 

13USART통신

13.1 선행학습

1) 시리얼 통신 개념

2) RS-232 통신

3) RS-422 통신

4) RS-485 통신

13.2 학습도구 및 기자재

13.3 예제 1: 시리얼 통신 Loop 실험

1) 사용자 요구사항 작성하기

2) UML Tool로 설계하기

3) CubeMXUSART 환경 구성하여 구현하기

4) 시험하기

13.4 예제 2: 시리얼과 스마트폰 블루투스 통신

1) 사용자 요구사항 작성하기

2) UML Tool로 설계하기

3) 구현하기

4) 시험하기

 

14CAN Bus 통신 실습

14.1 선행학습

1) 개요

2) CAN Bus 특징

3) CAN Bus 등장 배경

4) CAN BUS 네트워크 동작 원리

5) CAN 통신 프로토콜

14.2 학습도구 및 기자재

14.3 예제 1: CAN 통신 루프실험

1) 사용자 요구사항 작성하기

2) UML ToolActivity Diagram 설계하기

3) CAN 통신속도 250kbps 설정하기

4) 구현하기

5) 코딩하기

6) 시험하기

 

15TCP/IP ServerClient 구현하기

15.1 선행학습

1) TCP Protocol

2) TCP ServerClient

15.2 학습도구 및 기자재

15.3 예제 1: TCP-IP Lwip Ping 실습하기

1) 사용자 요구사항 작성하기

2) UML Tool로 설계하기

3) 구현하기

4) 시험하기

15.4 예제 2: TCP-IP Server 실습하기

1) 사용자 요구사항 작성하기

2) UML 설계하기

3) 구현하기

4) 시험하기

15.5 예제 3: TCP-IP Client 실습하기

1) 사용자 요구사항 작성하기

2) UML Tool로 설계하기

3) 구현하기

4) 시험하기

 

 

닫기

출판상담문의

오전 9시 ~ 오후 6시

070-4651-3730

세상과 책을 잇는
마중물같은 출판사
지식과감성#

고객센터 전화상담

070-4651-3730

평일 오전 9시 ~ 오후 6시
(점심시간 : 11시 25분 ~ 1시)

1:1 온라인 상담

지식과감성# 카카오플러스 친구 추가

메일 또는 카카오톡으로 상담 신청 가능

원고 및 파일전송

웹하드 접속하기
아이디 : ksbookup 비밀번호 : ksbook