목차 일부
제1부 ARM Cortex-M3 프로세서
제1장 ARM Cortex-M3 프로세서의 개요 = 2
1.1 ARM Cortex-M3 기반의 마이크로컨트롤러 = 2
1.1.1 ARM 프로세서의 발전 단계 = 2
1.1.2 Cortex 프로세서 = 9
1.1.3 Cortex-M3 프로세서의 명령어 세트 = 15
...
더보기
목차 전체
제1부 ARM Cortex-M3 프로세서
제1장 ARM Cortex-M3 프로세서의 개요 = 2
1.1 ARM Cortex-M3 기반의 마이크로컨트롤러 = 2
1.1.1 ARM 프로세서의 발전 단계 = 2
1.1.2 Cortex 프로세서 = 9
1.1.3 Cortex-M3 프로세서의 명령어 세트 = 15
1.1.4 Cortex-M3 프로세서 v.s. Cortex-M3 기반의 마이크로컨트롤러 = 17
1.1.5 [참고] 마이크로프로세서와 마이크로컨트롤러 = 18
1.2 ARM Cortex-M3 프로세서 = 20
1.2.1 Cortex-M3 프로세서의 특징 = 20
1.2.2 Cortex-M3 프로세서의 구성 = 21
1.2.3 프로세서 코어 = 23
1.2.4 메모리 맫(Memory map) = 30
1.2.5 버스 인터페이스 = 33
1.2.6 인터럽트 및 예외 = 35
제2장 STM32F1 마이크로컨트롤러의 구조 = 39
2.1 ST사의 Cortex-M 기반 마이크로컨트롤러 = 39
2.1.1 ST사의 Cortex-M 기반 마이크로컨트롤러의 종류 = 39
2.1.2 STM32F1 시리즈의 제품 구성 = 46
2.2 STM32F103의 개요 및 구성 = 49
2.2.1 STM32F103의 개요 = 49
2.2.2 STM32F103의 구성도 = 52
2.2.3 STM32F103의 핀 구성 = 55
2.3 STM32F107의 개요 및 구성 = 62
2.3.1 STM32F107의 개요 = 62
2.3.2 STM32F107의 구성도 = 66
2.3.3 STM32F107의 핀 구성 = 70
2.3.4 핀 별 기능 = 70
2.4 메모리 및 버스의 구조 = 75
2.4.1 버스의 구조 = 75
2.4.2 메모리 맵 = 78
2.4.3 부트 모드(Boot mode) = 83
2.5 전원 제어 = 85
2.5.1 전원공급 = 85
2.5.2 전원공급 감시부 = 85
2.5.3 저전력 모드 = 86
2.6 리셋 및 클럭 제어 = 87
2.6.1 리셋(Reset) = 87
2.6.2 클럭 제어 = 88
2.7 인터럽트 및 예외 = 89
2.7.1 인터럽트 벡터 테이블 = 89
2.7.2 NVIC(Nested Vectored Interrupt Controller : 중첩 벡터 인터럽트 컨트롤러) = 94
제2부 STM32F1 실습 보드
제3장 Cortex-M3 STM32F1 실습 보드의 소개 = 96
3.1 실습 보드의 구성 = 96
3.2 Nucleo-F103 보드 = 97
3.2.1 Nucleo-F103 보드의 구성 = 97
3.2.2 Nucleo-F103 보드의 회로도 = 102
3.3 STM32F107 보드 = 104
3.3.1 F107 MCU 보드 = 104
3.3.2 I/O 보드 = 113
제4장 실습 보드를 이용한 프로그램 작성방법 = 118
4.1 개발 환경 구축 = 118
4.1.1 Keil MDK의 설치 = 118
4.1.2 STM32CubeF1 펌웨어 및 예제 파일의 설치 = 133
4.1.3 ST-LINK/V2-1 드라이버의 설치 = 140
4.2 예제 프로그램의 실행 : Nucleo-F103 보드 이용 = 142
4.2.1 PC와 실습 보드의 연결 = 142
4.2.2 예제 프로그램의 실행 : Nucleo-F103 보드 이용 = 145
4.3 예제 프로그램의 실행 : STM32F107 보드 이용 = 150
4.3.1 PC와 실습 보드의 연결 = 150
4.3.2 예제 프로그램의 실행 : STM32F107 보드 이용 = 154
4.4 [심화학습] Keil MDK의 사용 방법 및 mbed 소개 = 159
4.4.1 타겟의 옵션(Options for Target) 설정방법 = 160
4.4.2 mbed(엠베드)의 개요 = 165
제5장 HAL 드라이버 = 167
5.1 STM32Cube 펌웨어 = 167
5.1.1 STM32Cube 펌웨어의 구성 = 167
5.1.2 [심화학습] STM32CubeMX와 CMSIS = 169
5.2 HAL(Hardware Abstraction Layer) 드라이버 = 173
5.2.1 HAL 드라이버의 개요 = 173
5.2.2 HAL API의 종류 = 178
5.2.3 시스템 주변장치 구동용 HAL API 함수 = 179
5.2.4 HAL 드라이버의 사용방법 = 182
5.3 HAL 시스템 드라이버 및 제어용 함수 = 190
5.3.1 초기화(Initialization) 및 초기화 해제(de-initialization)용 함수 = 190
5.3.2 HAL 제어(Control)용 함수 = 190
5.4 HAL RCC 드라이버 = 191
5.4.1 RCC 설정용 구조체 = 191
5.4.2 RCC 구동용 HAL 함수 = 192
5.5 HAL CORTEX 드라이버 = 194
5.5.1 CORTEX 구동용 HAL 함수 = 194
5.5.2 주요 함수의 상세 설명 = 195
제3부 프로그래밍 실습 : 주변장치 응용 제어
제6장 GPIO를 이용한 입출력 = 200
6.1 GPIO의 구조 및 기능 = 200
6.1.1 GPIO의 구조 = 200
6.1.2 주요 기능 = 201
6.2 GPIO 구동용 HAL 드라이버 = 202
6.2.1 GPIO 설정용 구조체 = 202
6.2.2 GPIO 구동용 함수 = 204
6.2.3 함수의 상세설명 = 205
6.3 GPIO 응용 예제 = 207
6.3.0 GPIO 예제 관련 회로도 = 207
6.3.1 GPIO 예제 1 : LED를 깜빡이기 = 209
6.3.2 GPIO 예제 2 : LED를 순차적으로 점멸 = 224
6.3.3 GPIO 예제 3 : 스위치 입력을 받아 LED를 켜주기 = 227
6.3.4 [심화학습] GPIO 입출력과 관련된 HAL 드라이버 자세히 알아보기 = 230
제7장 외부 인터럽트(EXTI)를 이용한 입출력 제어 = 234
7.1 외부 인터럽트의 구조 및 기능 = 234
7.1.1 외부 인터럽트(EXTI)의 구조 = 234
7.1.2 EXTI와 인터럽트 벡터 테이블 = 235
7.2 외부 인터럽트 관련 HAL 드라이버 = 236
7.2.1 외부 인터럽트 구동용 함수 = 236
7.3 외부 인터럽트 응용 예제 = 236
7.3.0 인터럽트 예제 관련 회로도 = 236
7.3.1 EXTI 예제 1 : 외부 인터럽트를 이용한 LED의 On/Off = 236
7.3.2 EXTI 예제 2 : 외부 인터럽트를 이용한 LED 이동 점멸 = 245
7.3.3 EXTI 예제 3 : 4개의 외부 인터럽트를 이용한 LED의 On/Off (1) = 249
7.3.4 EXTI 예제 4 : 4개의 외부 인터럽트를 이용한 LED의 On/Off (2) = 252
7.3.5 [심화학습] 인터럽트 관련 HAL 드라이버 자세히 알아보기 = 255
제8장 타이머를 이용한 입출력 제어 = 261
8.1 범용 타이머의 구조 및 기능 = 261
8.1.1 STM32F 타이머의 개요 = 261
8.1.2 범용 타이머의 구조 = 263
8.1.3 범용 타이머의 주요 기능 = 266
8.2 고급제어 타이머(Advanced-control timer)의 구조 및 기능 = 275
8.2.1 고급제어 타이머의 구조 = 275
8.2.2 고급제어 타이머의 주요 기능 = 277
8.3 기본 타이머(Basic timer)의 구조 및 기능 = 279
8.3.1 기본 타이머의 구조 = 279
8.3.2 기본 타이머의 주요 기능 = 280
8.4 타이머 관련 HAL 드라이버 = 280
8.4.1 타이머 설정용 구조체 = 280
8.4.2 타이머 구동용 HAL 함수 = 284
8.4.3 주요 함수의 상세 설명 = 291
8.5 타이머 응용 예제 = 299
8.5.0 타이머 예제 관련 회로도 = 299
8.5.1 TIM 예제 1 : 다운 카운터(Down Counter)를 이용하여 LED를 1초 간격으로 On/Off = 299
8.5.2 [참고 예제] TIM 예제 2 : 시간 지연 함수 HAL_Delay( )를 이용하여 LED를 1초 간격으로 On/Off = 306
8.5.3 TIM 예제 3 : 업 카운터와 OC(출력 비교) 모드를 이용한 LED의 On/Off = 309
8.5.4 TIM 예제 4 : 업 카운터와 OC 모드(출력 펄스 폭 변경) = 315
8.5.5 TIM 예제 5 : 업 카운터와 OC 모드(2 채널 사용, 출력 펄스 폭 변경) = 321
8.5.6 TIM 예제 6 : PWM 출력 모드를 이용한 LED의 밝기 제어(PWM 출력핀을 직접 이용) = 325
8.5.7 TIM 예제 7 : PWM 출력 모드를 이용한 LED의 밝기 제어(PWM 출력핀이 없는 경우 - PWM 인터럽트를 이용하여 GPIO 핀을 On/Off) = 330
제9장 AD 변환기를 이용한 가변 저항값 읽어오기 = 336
9.1 AD 변환기의 구조 및 기능 = 336
9.1.1 AD 변환기의 구조 = 336
9.1.2 주요 기능 = 338
9.2 AD 변환기 관련 HAL 드라이버 = 341
9.2.1 ADC 설정용 구조체 = 341
9.2.2 ADC 구동용 HAL 함수 = 344
9.2.3 주요 함수의 상세 설명 = 348
9.3 ADC 응용 예제 = 351
9.3.0 ADC 예제 관련 회로도 = 351
9.3.1 ADC 예제 1 : ADC 출력 값에 따른 LED의 On/Off 주기 변경(폴링 방식) = 352
9.3.2 ADC 예제 2 : ADC 출력 값에 따른 LED의 On/Off 주기 변경(인터럽트 방식) = 355
제10장 DA 변환기를 이용한 LED 밝기 제어 = 359
10.1 DA 변환기의 구조 및 기능 = 359
10.1.1 DA 변환기의 구조 = 359
10.1.2 주요 기능 = 361
10.2 DA 변환기 관련 HAL 드라이버 = 364
10.2.1 DAC 설정용 구조체 = 364
10.2.2 DAC 구동용 HAL 함수 = 366
10.2.3 주요 함수의 상세 설명 = 367
10.3 DAC 응용 예제 = 369
10.3.0 DAC 예제 관련 회로도 = 369
10.3.1 DAC 예제 1 : DAC 출력 값의 변화에 따른 LED 밝기 제어 = 370
제4부 프로그래밍 실습 : UART, USB, TCP/IP 통신
제11장 UART를 이용한 PC와의 통신 = 376
11.1 직렬 통신 및 UART = 376
11.1.1 직렬 통신(Serial communication) = 376
11.1.2 UART/USART = 378
11.2 USART의 구조 및 기능 = 380
11.2.1 USART의 구조 = 380
11.2.2 주요 기능 = 383
11.3 UART 관련 HAL 드라이버 = 384
11.3.1 UART 설정용 구조체 = 385
11.3.2 UART 구동용 HAL 함수 = 387
11.3.3 주요 함수의 상세 설명 = 390
11.4 UART 활용 예제 = 394
11.4.0 UART 예제 관련 회로도 = 394
11.4.1 UART 예제 1 : UART를 이용하여 PC에 메시지 보내기 = 396
11.4.2 UART 예제 2 : 스위치를 누르면 PC로 메시지 보내기 = 407
11.4.3 UART 예제 3 : UART를 이용하여 PC와 통신하기(폴링 방식) = 413
11.4.4 UART 예제 4 : UART를 이용하여 PC와 통신하기(인터럽트 방식) = 419
제12장 USB를 이용한 PC와의 통신 = 425
12.1 USB 통신의 개요 = 425
12.1.1 USB의 개요 = 425
12.1.2 USB 통신 시스템 = 427
12.1.3 디바이스 클래스(Device class) = 432
12.2 USB의 구성 및 기능 = 434
12.2.1 STM32F1의 USB의 특징 = 434
12.3 STM32Cube USB 디바이스 라이브러리 = 435
12.3.1 STM32Cube USB 디바이스 라이브러리의 구성 = 435
12.3.2 USB 디바이스 관련 구조체 = 437
12.3.3 USB 디바이스 관련 함수 = 442
12.4 USB 응용 예제 = 446
12.4.0 USB 예제 관련 회로도 = 446
12.4.1 USB 예제 1 : HID 클래스를 이용한 마우스 제어 = 448
12.4.2 USB 예제 2 : CDC 클래스를 이용한 통신 = 460
12.4.3 USB 예제 3 : CDC 클래스를 이용한 USB-to-RS232 bridge 보드 = 478
제13장 이더넷 포트를 이용한 TCP/IP 통신 = 494
13.1 TCP/IP 통신의 개요 = 494
13.1.1 인터넷(Internet) : 컴퓨터 네트워크 = 494
13.1.2 OSI 7계층 모델 = 495
13.1.3 TCP/IP의 구조 = 496
13.1.4 TCP(Transport Control Protocol) = 499
13.1.5 IP(Internet Protocol) = 503
13.1.6 이더넷(Ethernet) = 504
13.1.7 TCP/IP 통신 = 507
13.2 STM32F107의 이더넷 구성 및 기능 = 511
13.2.1 마이크로컨트롤러에서 이더넷의 구현 = 511
13.2.2 STM32F107의 이더넷 구성 = 512
13.3 LwIP : 임베디드 시스템용 TCP/IP 스택 = 512
13.3.1 LwIP(lightweight IP) 개요 = 512
13.3.2 LwIP 구동용 API 함수의 종류 = 515
13.3.3 LwIP 구동용 구조체 및 함수 = 518
13.3.4 Raw API를 이용한 단독 수행(standalone) 모드의 동작 순서 = 525
13.4 Ethernet 응용 예제 = 526
13.4.0 Ethernet 예제 관련 회로도 = 526
13.4.1 Ethernet 예제 1 : TCP/IP 통신 - 클라이언트 프로그램 = 528
13.4.2 Ethernet 예제 2 : TCP/IP 통신 - 서버 프로그램 = 555
참고문헌 = 579
찾아보기 = 580
더보기 닫기