[STM32 MCU 학습] Lesson 1 : STM32 알아야 할 사항

[Mr. Zhu의 과정 요약 침입]

첫 번째 부분, 장 목록

3.1.1. STM32 및 STC51 개발

3.1.2_3.STM32의 기원과 배경

3.1.4. STM32 간단한 중국어 설명서 (읽기 포함)

3.1.5 STM32의 다양한 에뮬레이터 디버거는 무엇입니까?

3.1.6. STM32 표준 주변 라이브러리, HAL 라이브러리, LL 라이브러리

3.1.7이 과정에서 사용되는 개발 보드 소개


두 번째 부분, 장 소개

3.1.1
    STM32 및 STC51 개발 이 섹션에서는 STM32 관련 과정의 3 개 시즌에 대해 전반적으로 소개하고 STM32 학습과 51 개의 단일 칩 마이크로 컴퓨터 간의 차이점에 대한 일반적인 요약을 제공합니다.
3.1.2
    STM32 1의 기원과 배경 이 섹션에서는 STM32 마이크로 컨트롤러의 특성, 제조업체 정보, 공식 웹 사이트, 선택 사항 등을 설명하므로 모든 사람이 STM32에 대한 개요를 알 수 있습니다. 이러한 것들을 과소 평가하지 마십시오. 많은 사람들이 몇 년 동안 공부를 해왔지만 여전히 기본적인 정보를 어디서 찾을 수 있는지 모릅니다.
3.1.3
    STM32 2의 기원과 배경 이 섹션에서는 STM32 마이크로 컨트롤러의 특성, 제조업체 정보, 공식 웹 사이트, 선택 사항 등을 설명하여 모든 사람이 STM32에 대한 개요를 볼 수 있도록합니다. 이러한 것들을 과소 평가하지 마십시오. 많은 사람들이 몇 년 동안 공부를 해왔지만 여전히 기본적인 정보를 어디서 찾을 수 있는지 모릅니다.
3.1.4. STM32 간단한 중국어 책
    은이 섹션의 시작 과 함께 제공되는 케이프 매뉴얼에서 간단한 칩 개발 보드의 중국어 버전의 STM32 공식 버전을 읽고 칩 매뉴얼을 통해 특정 STM32에 대한보다 포괄적 인 이해를 가질 수 있습니다. .
3.1.5 STM32의 다양한 에뮬레이터 디버거는 무엇입니까?
    이 섹션에서는 에뮬레이터와 디버거의 두 가지 개념에 대해 설명하고이 과정에 포함될 몇 가지 디버거를 소개합니다.
3.1.6
    STM32 표준 라이브러리와 HAL (cubeMX) 라이브러리 란 무엇입니까? 이 섹션에서는 STM32의 두 가지 라이브러리 기능 개발 모드 인 표준 라이브러리와 HAL 라이브러리에 초점을 맞추고 있으며 후속 학습을 배열하는 개념이 명확합니다.
3.1.7이 과정에서 사용되는 개발 보드를 소개합니다.이
    섹션에서는 과정에 포함 된 세 가지 개발 보드를 소개합니다. 과정 설명에서는 세 가지 개발 보드의 차이점을 설명합니다. 어떤 개발 보드를 가지고 있더라도 과정을 배울 수 있습니다. 영향을받지 않았다.    

3 부, 교실 기록

3.1.1. STM32 및 STC51 개발

3.1.1.2, 차이

  • STM32 클럭을 구성해야하며 STC51은 구성 할 필요가 없습니다.
  • GPIO 제어 : STC51은 핀이나 포트에 값을 할당하기 위해 비트 변수 만 사용하면되고 STM32는 레지스터를 프로그래밍해야합니다!
  • 그리고 이러한 주변 장치는 기본적으로 동일하므로 먼저 STC51 마이크로 컨트롤러를 배우고 그다음에 STM32를 배우는 것이 더 쉬울 것입니다!
  • STM32의 주요 주파수는 72MHz에 도달 할 수 있습니다.

3.1.2_3.STM32의 기원과 배경

3.1.2.1. 51 STM32로
(1)가 등 STM32, AVR, 51과 같은 단일 칩 과정에 대해 언급 한 바와 같이 단일 칩 마이크로 컴퓨터의 여러 가지가있다
(2) STM32 이상의 각 20 년과 현재 주류 32 비트 고성능의 단일 칩 마이크로 컴퓨터이고, 1 억 개의
(3) STM32 ARM 프로세서 코어 의 양은 ARM STM32 [NXP (philips), TI, Atmel , OKI, ST, Samsung, Huawei, ARM 코어 포함 Huawei의 HiSilicon ]
(4) STM32 기능 과 같은 고유 한 기술을 갖춘 32 비트 MCU가 있습니다. 높은 비용 성능, 풍부한 내부 주변 장치, 높은 MIPS (MIPS는 CPU 성능의 척도 임) 및 광범위한 질량 기반

3.1.2.2
STM32의 출처 는 어디입니까? (1) STM32는 32 비트 ARMv7 아키텍처를 기반으로 ARM에서 설계 한 ARM Cortex-M3 코어 프로세서를 사용 하므로 ARMv7-M 이라고도 할 수 있습니다 . ARM의 역사와 관련하여, CM3의 권위있는 가이드를 볼 수 있습니다

(2) STM32는 ST에서  설계, 구현 및 생산 합니다 ( ST 공식 웹 사이트    STM32 공식 웹 사이트 )

(3) ST는 STM32를 생산하는 것 외에도 자체 설계된 8 비트 마이크로 컨트롤러 STM8s
(4) STM32를 생산합니다. 다양한 Cortex-M 시리즈, M0, M0 +, M3, M4, M7 등을 포괄하는 다양한 모델이 있습니다. 공식 웹 사이트에서 간단하게 볼 수 있습니다!

3.1.2.3.STM32 공식 웹 사이트 데이터 브라우징
(1) 다양한 다이어그램 브라우징

(2) 그냥 들어갈 하나를 찾아서 자세한 선택 정보
링크를보십시오.
(3) 모델 코딩 규칙 (예를 들어 개발 보드에 구성된 STM32F103C8을 사용하십시오)

3.1.4. STM32 간단한 중국어 설명서 (읽기 포함)

수동 다운로드 링크

3.1.4.1, 기능 소개

  • 기억
  • 시계
  • ADC
  • 디버그 모드
  • DMA : DMA의 영어 철자는 "Direct Memory Access"입니다. 중국어는 CPU를 통하지 않고 메모리에서 데이터에 직접 액세스하는 데이터 교환 모드 인 직접 메모리 액세스를 의미합니다. DMA 정보
  • 주변기기 : USART, 타이머, ADC, SPI, I2C
  • I / O 포트의
    인터럽트 소스는 바인딩되지 않으며 매핑을 위해 소프트웨어로 설정할 수 있습니다!
  • 시간제 노동자
  • 통신 연 구

3.1.4.2, 사양

1. 장치 목록

2. 개요

  • NVIC (Nested Vectored Interrupt Controller)
    51에도 인터럽트 제어 기능이 있지만 인터럽트 제어 레지스터를 조작하여 직접 구현됩니다 .STC51에는 8 개의 터미널 소스 + 4 개의 우선 순위 레벨이 있습니다.
  • 외부 인터럽트 / 이벤트 컨트롤러 (EXTI)
  • 클럭
    시스템 클럭의 선택은 시작시 수행됩니다. 리셋시 내부 8MHz RC 오실레이터를 기본 CPU 클럭으로 선택한 다음 장애 모니터링 기능이있는 외부 4 ~ 16MHz 클럭을 선택할 수 있습니다. 외부 클럭이 실패하면 격리되고 해당
    중단 이 동시에 발생합니다 . 유사하게, PLL 클록의 완전한 인터럽트 관리는 필요할 때 (예 : 외부 발진기가 실패 할 때) 취할 수 있습니다. AHB 주파수, 고속 APB (APB2) 및 저속 APB (APB1) 영역을 구성하기위한 여러 프리스케일러가 있습니다. AHB 및 고속 APB의 최고 주파수는 72MHz이고 저속 APB의 최고 주파수는 36MHz입니다.
  • 부팅 모드 (시작 모드)
  • 전원 공급 장치 구성
    도를 참조하여 VDD, VSSA 및 VBAT가 다른 전원 공급 장치 구성을 어떻게 제공하는지 확인할 수 있습니다!
  • 저전력 소비 모드
    절전 모드, 종료 모드, 대기 모드
  • DMA의
    유연한 7 채널 범용 DMA는 메모리에서 메모리로, 장치에서 메모리로, 메모리에서 장치로 데이터 전송을 관리 할 수 ​​있습니다 .DMA 컨트롤러는 링 버퍼 관리를 지원하여 컨트롤러 전송이 버퍼 끝에 도달 할 때 발생하는 인터럽트를 방지합니다.
    DMA는 SPI, I2C, USART, 일반 및 고급 타이머 TIMx 및 ADC와 같은 주요 주변 장치에 사용할 수 있습니다.
  • RTC (실시간 클록) 및 백업 레지스터
    RTC 및 백업 레지스터는 스위치에 의해 전원이 공급됩니다 .VDD가 유효하면 스위치는 전원 공급 장치로 VDD를 선택하고 그렇지 않으면 VBAT 핀에 의해 전원을 공급받습니다
    . 백업 레지스터 (16 비트 레지스터 10 개)는 VDD가 사라질 때 데이터를 저장하는 데 사용할 수 있습니다.
  • 독립적 인 감시
  • 윈도우 워치 독
  • 시스템 시간축 타이머
  • 범용 타이머 ( TIMx )
  • 고급 제어 타이머 ( TIM1 )
  • 통신 인터페이스 : USART, I2C, SPI, CAN, USB, GPIO
  • ADC (아날로그 / 디지털 컨버터)

다음 과정에서는 다음 내용을 자세히 설명합니다!


3.1.5 STM32의 다양한 에뮬레이터 디버거는 무엇입니까?

3.1.5.1, 에뮬레이터와 디버거의 차이점과 연결

  • 시뮬레이터
     단일 칩 시뮬레이터는 단일 칩 마이크로 컴퓨터의 소프트웨어 디버깅을 위해 특별히 설계 및 제조 된 전용 하드웨어 장치 세트를 의미합니다. 소프트웨어 시뮬레이션과 마찬가지로 중단 점, 단일 단계 실행 및 최고 속도로 실행할 수 있지만 모든 단일 칩 마이크로 컴퓨터에는 에뮬레이터가 있어야하며 비용은 여전히 ​​높습니다!
  • 디버거
       도 에뮬레이터이지만 디버깅 인터페이스가 동일하면 디버거는 다양한 유형의 단일 칩 마이크로 컴퓨터를 시뮬레이션 할 수 있습니다 .STC51을 학습 할 때 코드 조각의 실행 시간 측정은 디버거 기능입니다!

3.1.5.2 STM32 디버깅 인터페이스
(1) JTAG 프로토콜 : 표준 JTAG 인터페이스는 각각 모드 선택, 클럭, 데이터 입력 및 데이터 출력 라인 인 TMS, TCLK, TDI, TDO의 4 개 와이어입니다. 관련 JTAG 핀의 정의는 다음과 같습니다.

  • TMS : 테스트 모드 선택, TMS는 특정 테스트 모드에서 JTAG 인터페이스를 설정하는 데 사용됩니다.
  • TCLK : 테스트 클럭 입력;
  • TDI : 테스트 데이터 입력, 데이터는 TDI 핀을 통해 JTAG 인터페이스에 입력됩니다.
  • TDO : 테스트 데이터 출력, 데이터는 TDO 핀을 통해 JTAG 인터페이스에서 출력됩니다.

JTAG에도 자체 JTAG 디버거가 있지만 아래 그림과 같이 JTAG에는 병렬 포트가 필요하며 현재 대부분은 USB 포트이므로 JTAG 디버거는 단계를 벗어 났으며 JTAG 프로토콜은 여전히 ​​널리 사용됩니다!
여기에 사진 설명 쓰기

(2) SWD : Serial Wire Debug, JTAG와 다른 디버깅 모드로 간주되어야하며 사용되는 디버깅 프로토콜도 달라야하므로 20 JTAG와 동일한 디버깅 인터페이스에 가장 직접적으로 반영됩니다. SWD는 핀에 비해 구조가 단순하지만 JTAG만큼 널리 사용되지 않는 4 (또는 5) 개의 핀만 필요합니다. 주류 디버거는 나중에 추가 된 SWD 디버깅 모드이기도합니다. 가장 큰 특징은 더 적은 GPIO 핀이 필요하다는 것입니다!
다음은 JTAG 및 SWD의 인터페이스 다이어그램입니다.


3.1.5.3, STM32 일반적으로 사용되는 디버거
(1) JLINK V9 V11
J-Link는 독일 SEGGER 회사에서 출시 한 JTAG 기반 에뮬레이터입니다. 간단히 말해서 JTAG 프로토콜 변환 상자, 즉 JTAG 병렬 포트를 USB 포트로 변환하는 작은 USB에서 JTAG 변환 상자입니다!
JLINK는 KEIL, IAR 및 ADS와 같은 플랫폼에서 사용할 수있는 일반 개발 도구입니다. 속도, 효율성 및 기능이 모두 매우 우수하며 많은 에뮬레이터 중에서 가장 강력한 것으로 알려져 있습니다. 인터넷은 해적판이며 수천 개의 정품입니다!
소스 이미지보기
(2) STLINK
ST-LINK는 STMicroelectronics STM8 및 STM32 시리즈 칩 전용 에뮬레이터입니다.
여기에 사진 설명 쓰기
(3) 일반 ARM 시뮬레이터

(4) 지금 STM32cubeprogrammer 있습니다 : 소개 링크

3.1.5.4, 씨 Zhu의 디버거에 대해 할 말이있다
(1) 디버거를하고 디버깅 아이디어 학습 및 개발에 도움이됩니다
( 2) 디버거에 대해별로 신경 쓰지 마라.
(3) 더 넓게 가고 싶다면 디버거를 사용하지 않는 법을 배워라


3.1.6. STM32 표준 주변 라이브러리, HAL 라이브러리, LL 라이브러리

3.1.6.1. STM32를위한 3 가지 프로그래밍 방법
(1) 레지스터 동작
(2) 표준 라이브러리 (표준 주변 라이브러리)

  • STM32 표준 주변 장치 라이브러리는 마이크로 컨트롤러의 모든 주변 장치의 성능 특성을 포함하여 프로그램, 데이터 구조 및 매크로로 구성된 펌웨어 기능 패키지입니다.
  • 또한 기능 라이브러리에는 각 주변 장치의 드라이버 설명과 응용 프로그램 예제가 포함되어 있으며 개발자가 기본 하드웨어에 액세스 할 수있는 중간 API를 제공합니다. 펌웨어 기능 라이브러리를 사용하면 개발자가 기본 하드웨어의 세부 정보를 마스터하지 않고도 각 외부 하드웨어를 쉽게 적용 할 수 있습니다. 취하다.

(3) STM32Cube (HAL 라이브러리 / LL 라이브러리)

  • HAL 라이브러리 는 이전 표준 주변 장치 라이브러리를 대체하는 데 사용됩니다. 표준 주변 장치 라이브러리와 비교하여 STM32Cube HAL 라이브러리는 더 높은 수준의 추상화 및 통합을 보여줍니다. HAL API는 각 주변 장치의 공통 기능 기능에 중점을 둡니다.이를 통해 쉽게 구현할 수있는 범용 사용자 친화적 인 API 기능 인터페이스 세트를 쉽게 정의 할 수 있습니다. 하나의 STM32 제품이 다른 STM32 시리즈 제품에 이식됩니다.
  • 현재 ST는 주로 HAL 라이브러리를 홍보하고 있으며 현재 HAL 라이브러리는 STM32 제품의 전체 범위를 지원합니다.
  • ST는이를 위해 특별히 지원하는 데스크톱 소프트웨어 인 STMCubeMX를 개발했으며, 개발자는 시각적 구성에 소프트웨어를 직접 사용할 수있어 개발 시간을 크게 절약 할 수 있습니다. ( 내일 보여 드릴게요! )

도서관
3.1.6.2 ST 공식 웹 사이트 링크 에서 라이브러리는 어디에서 왔습니까?


3.1.7이 과정에서 사용되는 개발 보드 소개

3.1.7.1. 개발 보드 선택 원칙
(1) 새롭고 하이 엔드를 너무 많이 추구하지 마십시오.
(2) 비용 성능 (성능 / 가격)
(3) 비교 및 ​​참조를위한 특정 필요성이 있습니다.

  • 선생님에게 배우고 싶다면 그와 다른 개발 보드를 사용하는 것이 가장 좋기 때문에 가장 쉽게 향상시킬 수 있습니다!

3.1.7.2, 내가 가지고있는 현재 개발 보드

(1) STM32F103C8

(2) STM32F407VET6

(3 )
STM32 학습의 핵심 인 Puzhong Science and Technology Development Board 3.1.7.3
(1) 기초 : C 언어를 아는 한 SCM을 아는 것이 가장 좋습니다!
(2) 좋은 코스
(3) 학습과 연습의 결합 + 일정한 인내 = 필연적 인 학습

이 레슨은 끝났습니다!


 

추천

출처blog.csdn.net/qq_27148893/article/details/111321089