STM32WL3x 소프트웨어 패키지

명세서
- 제품 이름: STM32CubeWL3 소프트웨어 패키지
- 호환성: STM32WL3x 마이크로컨트롤러
- 주요 특징:
- 하위 계층(LL) 및 하드웨어 추상화 계층(HAL) API
- SigfoxTM, FatFS 및 FreeRTOSTM 커널 미들웨어 구성 요소
- 응용 프로그램 및 데모
제품 사용 지침
시작하기
STM32CubeWL3 소프트웨어 패키지를 사용하려면 다음 단계를 따르세요.
- 공식 사이트에서 소프트웨어 패키지를 다운로드하세요. web대지.
- 필요한 개발 환경을 설치합니다(예: STM32CubeIDE, EWARM, MDK-ARM).
- 전을 참조하세요amp지침으로 제공되는 파일과 응용 프로그램입니다.
STM32CubeWL3 아키텍처 오버view
STM32CubeWL3 소프트웨어 패키지는 XNUMX가지 주요 수준을 중심으로 구축됩니다.
- 레벨 0: 하드웨어 추상화 계층(HAL) 및 BSP 드라이버.
- 레벨 1: 애플리케이션, 라이브러리 및 프로토콜 기반 구성 요소.
자주 묻는 질문(FAQ)
질문: STM32CubeWL3 소프트웨어 패키지의 주요 기능은 무엇입니까?
A: 주요 기능으로는 저계층 및 HAL API, SigfoxTM, FatFS, FreeRTOSTM 커널과 같은 미들웨어 구성 요소, 애플리케이션 및 데모가 있습니다.
소개
STM32Cube는 개발 노력, 시간, 비용을 줄여 설계자의 생산성을 크게 향상시키기 위한 STMicroelectronics의 독창적인 이니셔티브입니다. STM32Cube는 전체 STM32 포트폴리오를 포괄합니다.
STM32Cube에는 다음이 포함됩니다.
- 프로젝트 개발을 구상에서 실현까지 포괄하는 사용자 친화적 소프트웨어 개발 도구 세트는 다음과 같습니다.
- 그래픽 마법사를 사용하여 C 초기화 코드를 자동으로 생성할 수 있는 그래픽 소프트웨어 구성 도구인 STM32CubeMX
- STM32CubeIDE, 주변 장치 구성, 코드 생성, 코드 컴파일 및 디버그 기능을 갖춘 올인원 개발 도구
- 코드 컴파일, 보드 프로그래밍 및 디버그 기능을 갖춘 올인원 명령줄 개발 도구 세트인 STM32CubeCLT
- 그래픽 및 명령줄 버전에서 사용할 수 있는 프로그래밍 도구인 STM32CubeProgrammer(STM32CubeProg)
- STM32CubeMonitor(STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD)는 STM32 애플리케이션의 동작과 성능을 실시간으로 미세 조정하는 강력한 모니터링 도구입니다.
- STM32Cube MCU 및 MPU 패키지는 각 마이크로컨트롤러 및 마이크로프로세서 시리즈(예: STM32WL3x 제품군용 STM32CubeWL3)에 특화된 포괄적인 임베디드 소프트웨어 플랫폼으로, 여기에는 다음이 포함됩니다.
- STM32Cube 하드웨어 추상화 계층(HAL), STM32 포트폴리오 전반에 걸쳐 극대화된 이식성 보장
- STM32Cube 하위 계층 API는 하드웨어에 대한 높은 수준의 사용자 제어를 통해 최고의 성능과 풋프린트를 보장합니다.
- FreeRTOS™ 커널, FatFS, Sigfox™와 같은 일관된 미들웨어 구성 요소 세트
- 주변 장치 및 응용 프로그램의 전체 세트가 포함된 모든 임베디드 소프트웨어 유틸리티amp레
- 다음을 통해 STM32Cube MCU 및 MPU 패키지의 기능을 보완하는 임베디드 소프트웨어 구성 요소가 포함된 STM32Cube 확장 패키지:
-
- 미들웨어 확장 및 적용 계층
- Examp일부 특정 STMicroelectronics 개발 보드에서 실행되는 파일
이 사용자 매뉴얼에서는 STM32CubeWL3 MCU 패키지를 시작하는 방법을 설명합니다.
섹션 2에서는 STM32CubeWL3의 주요 기능을 설명하고 섹션 3에서는 이에 대한 전반적인 내용을 제공합니다.view MCU의 아키텍처와 패키지 구조에 대해 설명합니다.
일반 정보
STM32CubeWL3는 Arm® Cortex®‑M32+ 프로세서를 기반으로 하는 STM3WL0x 제품군 마이크로컨트롤러에서 Sigfox™ 바이너리를 포함한 하위 GHz 데모 애플리케이션을 실행합니다.
STM32WL3x 마이크로컨트롤러는 STMicroelectronics의 최첨단 Sub-GHz 호환 RF 무선 주변 장치를 내장하고 있어 초저전력 소모와 탁월한 무선 성능에 최적화되어 있어 비교할 수 없을 만큼 긴 배터리 수명을 제공합니다.
메모: Arm은 Arm Limited(또는 그 자회사)의 미국 및/또는 기타 지역에서 등록 상표입니다.
STM32CubeWL3 주요 기능
- STM32CubeWL3 MCU 패키지는 Arm® Cortex®‑M32+ 프로세서를 기반으로 하는 STM32 0비트 마이크로컨트롤러에서 실행됩니다. STM32WL3x 제품군 마이크로컨트롤러용 애플리케이션을 개발하는 데 필요한 모든 일반 임베디드 소프트웨어 구성 요소를 단일 패키지에 모았습니다.
- 패키지에는 마이크로컨트롤러 하드웨어를 포괄하는 하위 계층(LL) 및 하드웨어 추상화 계층(HAL) API와 광범위한 ex 세트가 포함되어 있습니다.ampSTMicroelectronics 보드에서 실행되는 les입니다. HAL 및 LL API는 사용자 편의를 위해 오픈 소스 BSD 라이선스로 제공됩니다. 또한 Sigfox™, FatFS 및 FreeRTOS™ 커널 미들웨어 구성 요소도 포함됩니다.
- STM32CubeWL3 MCU 패키지는 또한 모든 미들웨어 구성 요소를 구현하는 여러 가지 애플리케이션과 데모를 제공합니다.
- STM32CubeWL3 MCU 패키지 구성 요소 레이아웃은 그림 1에 표시되어 있습니다.
그림 1. STM32CubeWL3 MCU 패키지 구성 요소

STM32CubeWL3 아키텍처view
STM32CubeWL3 MCU 패키지 솔루션은 그림 2에 설명된 대로 쉽게 상호 작용하는 세 개의 독립적인 레벨을 중심으로 구성됩니다.
레벨 0
이 수준은 세 가지 하위 계층으로 나뉩니다.
- 보드 지원 패키지(BSP).
- 하드웨어 추상화 계층(HAL):
- HAL 주변 장치 드라이버
- 낮은 계층 드라이버
- 기본 주변기기 사용법 예시amp레.
보드 지원 패키지(BSP)
이 계층은 하드웨어 보드의 하드웨어 구성 요소(예: LED, 버튼 및 COM 드라이버)와 관련된 API 세트를 제공합니다. 두 부분으로 구성됩니다.
- 요소:
이것은 보드의 외부 장치에 대한 드라이버이며 STM32에 대한 드라이버가 아닙니다. 구성 요소 드라이버는 BSP 드라이버 외부 구성 요소에 특정 API를 제공하며 다른 보드에서 이식할 수 있습니다. - BSP 드라이버:
이를 통해 구성 요소 드라이버를 특정 보드에 연결할 수 있으며 사용자에게 친숙한 API 세트를 제공합니다. API 명명 규칙은 BSP_FUNCT_Action()입니다.
Examp파일: BSP_LED_Init(), BSP_LED_On()
BSP는 낮은 수준의 루틴을 구현함으로써 모든 하드웨어에 쉽게 포팅할 수 있는 모듈식 아키텍처를 기반으로 합니다.
HAL(하드웨어 추상화 계층) 및 LL(하위 계층)
STM32CubeWL3 HAL 및 LL은 상호 보완적이며 광범위한 애플리케이션 요구 사항을 포괄합니다.
- HAL 드라이버는 높은 수준의 기능 중심, 이식성이 뛰어난 API를 제공합니다. 이는 최종 사용자에게 MCU 및 주변 장치의 복잡성을 숨깁니다.
HAL 드라이버는 일반 다중 인스턴스 기능 지향 API를 제공하며, 이는 사용 가능한 프로세스를 제공하여 사용자 애플리케이션 구현을 단순화합니다. 예를 들어ample, 통신 주변 장치(I2C, UART 등)의 경우 주변 장치를 초기화하고 구성하고, 폴링, 인터럽트 또는 DMA 프로세스를 기반으로 데이터 전송을 관리하고, 통신 중에 발생할 수 있는 통신 오류를 처리할 수 있는 API를 제공합니다. HAL 드라이버 API는 두 가지 범주로 나뉩니다.
- 모든 STM32 시리즈 마이크로컨트롤러에 공통적이고 일반적인 기능을 제공하는 일반 API입니다.
- 특정 제품군 또는 특정 부품 번호에 대해 구체적이고 사용자 정의된 기능을 제공하는 확장 API입니다.
- 하위 계층 API는 레지스터 수준에서 하위 수준 API를 제공하며, 최적화는 더 좋지만 이식성은 떨어집니다. MCU 및 주변 장치 사양에 대한 심층적인 지식이 필요합니다.
LL 드라이버는 HAL보다 하드웨어에 더 가까운 빠르고 가벼운 전문가 중심 레이어를 제공하도록 설계되었습니다. HAL과 달리 LL API는 최적화된 액세스가 핵심 기능이 아닌 주변 장치나 무거운 소프트웨어 구성 또는 복잡한 상위 수준 스택이 필요한 주변 장치에는 제공되지 않습니다.
LL 드라이버 기능:
- 데이터 구조에 지정된 매개변수에 따라 주변 주요 기능을 초기화하는 기능 세트입니다.
- 각 필드에 해당하는 재설정 값으로 초기화 데이터 구조를 채우는 함수 세트입니다.
- 주변 장치 초기화 해제(주변 장치 레지스터를 기본값으로 복원) 기능입니다.
- 직접 및 원자 레지스터 액세스를 위한 인라인 함수 세트입니다.
- HAL로부터 완전히 독립되어 있으며 독립형 모드(HAL 드라이버 없이)에서 사용할 수 있습니다.
- 지원되는 주변 장치 기능을 모두 포괄합니다.
기본 주변기기 사용법 예시amp레
이 레이어는 ex를 포함합니다.ampHAL 및 BSP 리소스만 사용하여 STM32 주변 장치에 구축된 파일입니다.
데모 예amp더 복잡한 예를 보여주는 les도 제공됩니다.ampMRSUBG 및 LPAWUR와 같은 특정 주변 장치를 사용한 시나리오.
레벨 1
이 수준은 두 개의 하위 계층으로 나뉩니다.
- 미들웨어 구성요소
- Examp미들웨어 구성 요소를 기반으로 하는 파일
미들웨어 구성요소
미들웨어는 FreeRTOS™ 커널, FatFS, Sigfox™ 프로토콜 라이브러리를 포괄하는 라이브러리 세트입니다. 이 계층의 구성 요소 간의 수평적 상호 작용은 특집 API를 호출하여 수행됩니다.
하위 계층 드라이버와의 수직 상호 작용은 라이브러리 시스템 호출 인터페이스에 구현된 특정 콜백 및 정적 매크로를 통해 수행됩니다.
각 미들웨어 구성요소의 주요 기능은 다음과 같습니다.
- FreeRTOS™ 커널: 임베디드 시스템용으로 설계된 실시간 운영 체제(RTOS)를 구현합니다.
- Sigfox™: Sigfox™ 프로토콜 네트워크와 호환되는 Sigfox™ 프로토콜 라이브러리를 구현하고 RF Sigfox™ 도구에 대한 테스트를 위한 RF 테스트 프로토콜 라이브러리를 포함합니다.
- FatFS: 일반 FAT를 구현합니다. file 시스템 모듈.
Examp미들웨어 구성 요소를 기반으로 하는 파일
각 미들웨어 구성요소에는 하나 이상의 ex가 포함되어 있습니다.amples, 애플리케이션이라고도 하며 사용 방법을 보여줍니다. 통합 examp여러 미들웨어 구성 요소를 사용하는 파일도 제공됩니다.
STM32CubeWL3 펌웨어 패키지가 끝났습니다view
지원되는 STM32WL3x 장치 및 하드웨어
STM32Cube는 일반 아키텍처를 기반으로 구축된 매우 이식성 있는 하드웨어 추상화 계층(HAL)을 제공합니다. 이를 통해 미들웨어 계층을 사용하여 MCU가 무엇인지 자세히 알지 않고도 기능을 구현하는 것과 같은 빌드온 계층 원칙을 허용합니다. 이를 통해 라이브러리 코드 재사용성이 향상되고 다른 장치로 쉽게 이식할 수 있습니다.
- 또한 STM32CubeWL3는 계층화된 아키텍처를 통해 모든 STM32WL3x 제품군을 완벽하게 지원합니다.
- 사용자는 stm32wl3x.h에서만 올바른 매크로를 정의해야 합니다.
표 1은 사용된 STM32WL3x 제품군 디바이스에 따라 정의할 매크로를 보여줍니다. 이 매크로는 컴파일러 전처리기에서도 정의해야 합니다.
표 1. STM32WL3x 제품군의 매크로
| 다음에 정의된 매크로 stm32wl3x.h | STM32WL3x 제품군 장치 |
| stm32wl33 | STM32WL33xx 마이크로컨트롤러 |
STM32CubeWL3에는 다양한 ex가 포함되어 있습니다.amp모든 레벨에서 파일과 애플리케이션을 제공하여 모든 HAL 드라이버나 미들웨어 구성 요소를 쉽게 이해하고 사용할 수 있습니다. 이러한 전amp파일은 표 2에 나열된 STMicroelectronics 보드에서 실행됩니다.
| 판자 | STM32WL3x 보드 지원 장치 |
| 뉴클레오-WL33CC1 | STM32WL33CC |
| 뉴클레오-WL33CC2 | STM32WL33CC |
STM32CubeWL3 MCU 패키지는 모든 호환 하드웨어에서 실행할 수 있습니다. 사용자는 제공된 ex를 포팅하기 위해 BSP 드라이버를 업데이트하기만 하면 됩니다.amp해당 보드에 동일한 하드웨어 기능(예: LED 또는 버튼)이 있는 경우 해당 보드와 호환됩니다.
펌웨어 패키지 종료view
STM32CubeWL3 MCU 패키지 솔루션은 그림 3에 표시된 구조의 단일 Zip 패키지로 제공됩니다.
그림 3. STM32CubeWL3 펌웨어 패키지 구조

주의:
사용자는 구성요소를 수정해서는 안됩니다. files. 사용자는 \Projects 소스만 편집할 수 있습니다.
각 보드에 대해 ex 세트amples에는 EWARM, MDK-ARM 및 STM32CubeIDE 툴체인에 대한 사전 구성된 프로젝트가 제공됩니다.
그림 4는 NUCLEO-WL33CCx 보드의 프로젝트 구조를 보여줍니다. 
전직amples는 적용되는 STM32CubeWL3 수준에 따라 분류됩니다. 다음과 같이 명명됩니다.
- 레벨 0 예amples는 Ex라고 불려요amp레, 엑스amples_LL 및 Examples_MIX. 이들은 각각 HAL 드라이버, LL 드라이버, 그리고 미들웨어 구성 요소 없이 HAL과 LL 드라이버의 혼합을 사용합니다. 데모 examples도 이용 가능합니다.
- 레벨 1 예amples는 Applications라고 불립니다. 이들은 각 미들웨어 구성 요소의 일반적인 사용 사례를 제공합니다.
Templates 및 Templates_LL 디렉토리에서 제공되는 템플릿 프로젝트를 사용하면 특정 보드에 대한 모든 펌웨어 애플리케이션을 빠르게 빌드할 수 있습니다.
Examp레, 엑스amples_LL 및 Examples_MIX는 동일한 구조를 가지고 있습니다:
- 헤더 전체를 포함하는 \Inc 폴더 files.
- 소스 코드가 들어 있는 \Src 폴더.
- 각 툴체인에 대해 사전 구성된 프로젝트가 포함된 \EWARM, \MDK-ARM 및 \STM32CubeIDE 폴더입니다.
- ex를 설명하는 readme.md 및 readme.htmlamp행동과 그것이 작동하도록 하는 데 필요한 환경.
STM32CubeWL3 시작하기
첫 번째 전 애인을 만나다ample
이 섹션에서는 첫 번째 ex를 실행하는 것이 얼마나 간단한지 설명합니다.ampSTM32CubeWL3 내의 le입니다. NUCLEO-WL33CC1 보드에서 실행되는 간단한 LED 토글 생성을 예로 들어 설명합니다.
- STM32CubeWL3 MCU 패키지를 다운로드하세요.
- 압축을 풀거나, 제공된 설치 프로그램을 실행하여 원하는 디렉토리에 저장하세요.
- 그림 3에 표시된 패키지 구조를 수정하지 않도록 주의하세요. STM32CubeWL3 펌웨어 패키지 구조. 일부 IDE는 경로가 너무 길 때 문제가 발생하므로 루트 볼륨(C:\ST 또는 G:\Tests)에 가까운 위치에 패키지를 복사하는 것도 좋습니다.
HAL ex를 실행하는 방법ample
ex를 로드하고 실행하기 전에ample, ex를 읽는 것이 강력히 권장됩니다.amp읽어보기 file 특정 구성에 대해서.
- \Projects\NUCLEO-WL33CC\Ex로 이동amp레.
- \GPIO를 연 다음 \GPIO_EXTI 폴더를 엽니다.
- 선호하는 툴체인으로 프로젝트를 엽니다. 빠른 오버view ex를 열고, 빌드하고, 실행하는 방법에 대해 알아보세요.amp지원되는 툴체인이 포함된 파일은 아래와 같습니다.
- 모두 재 구축 files를 실행하고 이미지를 대상 메모리에 로드합니다.
- 전을 실행amp자세한 내용은 ex를 참조하세요.amp읽어보기 file.
전직을 열고, 구축하고, 운영하려면amp지원되는 각 툴체인을 사용하려면 아래 단계를 따르세요.
- EWARM:
- Ex 아래amples 폴더에서 \EWARM 하위 폴더를 엽니다.
- Project.eww 작업공간을 시작합니다(작업공간 이름은 하나에서 다른 것으로 변경될 수 있음)amp다른 사람에게).
- 모두 재 구축 files: [프로젝트]>[모두 다시 빌드].
- 프로젝트 이미지를 로드합니다: [프로젝트]>[디버그].
- 프로그램을 실행합니다: [디버그]>[이동(F5)].
- MDK-ARM:
- Ex 아래amples 폴더에서 \MDK-ARM 하위 폴더를 엽니다.
- Project.uvproj 작업 공간을 엽니다(작업 공간 이름은 하나에서 다른 것으로 변경될 수 있음)amp다른 사람에게).
- 모두 재 구축 files: [프로젝트]>[모든 대상 다시 빌드 fileNS].
- 프로젝트 이미지를 로드합니다: [디버그]>[디버그 세션 시작/중지].
- 프로그램을 실행합니다: [디버그]>[실행(F5)].
- STM32큐브IDE:
- STM32CubeIDE 툴체인을 엽니다.
- 클릭 [File]>[작업 공간 전환]>[기타]를 선택하고 STM32CubeIDE 작업 공간 디렉터리를 찾습니다.
- 클릭 [File]>[가져오기]를 선택하고 [일반]>[기존 프로젝트를 작업 공간으로]를 선택한 후 [다음]을 클릭합니다.
- STM32CubeIDE 작업 공간 디렉터리로 이동하여 프로젝트를 선택합니다.
- 모든 프로젝트를 다시 빌드 files: 프로젝트 탐색기 창에서 프로젝트를 선택한 다음
[프로젝트]>[프로젝트 빌드] 메뉴. - 프로그램을 실행합니다: [실행]>[디버그(F11)].
맞춤형 애플리케이션 개발
STM32CubeMX를 사용하여 애플리케이션 개발 또는 업데이트
STM32Cube MCU 패키지에서는 거의 모든 프로젝트가amp파일은 STM32CubeMX 도구를 사용하여 생성되어 시스템, 주변 장치 및 미들웨어를 초기화합니다.
기존 프로젝트를 직접 사용ampSTM32CubeMX 도구의 파일에는 STM32CubeMX 6.12.0 이상이 필요합니다.
- STM32CubeMX를 설치한 후 제안된 프로젝트를 열고 필요한 경우 업데이트합니다.
기존 프로젝트를 여는 가장 간단한 방법은 *.ioc를 두 번 클릭하는 것입니다. file STM32CubeMX가 자동으로 프로젝트와 소스를 열도록 files. STM32CubeMX는 이러한 프로젝트의 초기화 소스 코드를 생성합니다. - 메인 애플리케이션 소스 코드는 주석 “USER CODE BEGIN” 및 “USER CODE END”에 포함되어 있습니다. 주변 장치 선택 및 설정이 수정되면 STM32CubeMX는 메인 애플리케이션 소스 코드를 보존하면서 코드의 초기화 부분을 업데이트합니다.
STM32CubeMX로 사용자 정의 프로젝트를 개발하려면 단계별 프로세스를 따르세요.
- 핀아웃 충돌 해결기, 클록 트리 설정 도우미, 전력 소비 계산기, MCU 주변 장치 구성을 수행하는 유틸리티(GPIO 또는 USART 등)를 사용하여 필요한 모든 임베디드 소프트웨어를 구성합니다.
- 선택한 구성을 기반으로 초기화 C 코드를 생성합니다. 이 코드는 여러 개발 환경에서 사용할 준비가 되었습니다. 사용자 코드는 다음 코드 생성 시 유지됩니다.
STM32CubeMX에 대한 자세한 내용은 STM32 구성 및 초기화 C 코드 생성(UM32)을 위한 STM1718CubeMX 사용 설명서를 참조하세요.
드라이버 애플리케이션
HAL 애플리케이션
이 섹션에서는 STM32CubeWL3를 사용하여 사용자 정의 HAL 애플리케이션을 만드는 데 필요한 단계를 설명합니다.
- 프로젝트 만들기
새 프로젝트를 만들려면 \Projects\<STM32xxx_yyy>\Templates>에 제공된 각 보드용 템플릿 프로젝트나 \Projects\에 있는 사용 가능한 프로젝트에서 시작하세요. \전ampl es 또는 \Projects\ \응용 프로그램 (어디에 보드 이름을 말합니다). Template 프로젝트는 빈 메인 루프 함수를 제공합니다. 그러나 STM32CubeWL32 프로젝트 설정을 이해하기에 좋은 시작점입니다. 템플릿에는 다음과 같은 특징이 있습니다.- 여기에는 특정 보드에서 코드를 개발하는 데 필요한 최소 구성 요소 세트인 HAL 소스 코드, CMSIS 및 BSP 드라이버가 포함되어 있습니다.
- 여기에는 모든 펌웨어 구성 요소에 대한 포함된 경로가 포함되어 있습니다.
- 지원되는 STM32WL3x 제품군 장치를 정의하여 CMSIS 및 HAL 드라이버를 올바르게 구성할 수 있습니다.
- 바로 사용할 수 있는 사용자 제공 file아래와 같이 사전 구성되어 있습니다.
- HAL은 Arm® 코어 SysTick을 사용하여 기본 시간 기준으로 초기화되었습니다.
- HAL_Delay() 목적으로 구현된 SysTick ISR입니다.
참고: 기존 프로젝트를 다른 위치로 복사할 때 포함된 모든 경로가 업데이트되었는지 확인하세요.
- 펌웨어 구성요소 구성
HAL 및 미들웨어 구성요소는 헤더에 선언된 #define 매크로를 사용하여 일련의 빌드 시간 구성 옵션을 제공합니다. file. 템플릿 구성 file 각 구성 요소 내에 제공되며 프로젝트 폴더(일반적으로 구성)에 복사해야 합니다. file xxx_conf_template.h라는 이름이 지정되어 있으며 프로젝트 폴더에 복사할 때 조각 _template을 제거해야 합니다. 구성 file 각 구성 옵션의 영향을 이해하는 데 충분한 정보를 제공합니다. 자세한 내용은 각 구성 요소에 대해 제공되는 설명서에서 확인할 수 있습니다. - HAL 라이브러리 시작
기본 프로그램으로 점프한 후 애플리케이션 코드는 HAL_Init() API를 호출하여 다음 작업을 수행하는 HAL 라이브러리를 초기화해야 합니다.- 플래시 메모리 프리페치 및 SysTick 인터럽트 우선순위 구성(stm3 2wl3x_hal_conf.h에 정의된 매크로를 통해).
- stm32wl3x_hal_conf.h에 정의된 SysTick 인터럽트 우선 순위 TICK_INT_PRIO로 밀리초마다 인터럽트를 생성하도록 SysTick을 구성합니다.
- NVIC 그룹 우선순위를 0으로 설정합니다.
- stm32wl3x_hal_msp.c 사용자에 정의된 HAL_MspInit() 콜백 함수 호출 file 전역 하위 수준 하드웨어 초기화를 수행합니다.
- 시스템 시계 구성
시스템 시계 구성은 아래 설명된 두 가지 API를 호출하여 수행됩니다.- HAL_RCC_OscConfig(): 이 API는 내부 및 외부 오실레이터를 구성합니다. 사용자는 하나 또는 모든 오실레이터를 구성하도록 선택합니다.
- HAL_RCC_ClockConfig(): 이 API는 시스템 클록 소스, 플래시 메모리 지연 시간, AHB 및 APB 프리스케일러를 구성합니다.
- 주변기기 초기화
- 먼저 주변 초기화 함수를 작성합니다. 다음과 같이 진행하세요.
- 주변장치 시계를 활성화합니다.
- 주변 GPIO를 구성합니다.
- DMA 채널을 구성하고 DMA 인터럽트를 활성화합니다(필요한 경우).
- 필요한 경우 주변 장치 인터럽트를 활성화합니다.
- 필요한 경우 stm32xxx_it.c를 편집하여 필요한 인터럽트 핸들러(주변 장치 및 DMA)를 호출하십시오.
- 주변 장치 인터럽트나 DMA를 사용하려는 경우 프로세스 완료 콜백 함수를 작성합니다.
- 사용자 main.c에서 file주변 장치 핸들 구조를 초기화한 다음 주변 장치 초기화 함수를 호출하여 주변 장치를 초기화합니다.
- 애플리케이션 개발
이 s에서tag즉, 시스템이 준비되었으며 사용자 애플리케이션 코드 개발을 시작할 수 있습니다.
HAL은 주변기기를 구성하기 위해 직관적이고 즉시 사용 가능한 API를 제공합니다. 모든 애플리케이션 요구 사항을 수용하기 위해 폴링, 인터럽트 및 DMA 프로그래밍 모델을 지원합니다. 각 주변기기의 자세한 사용법은 리치엑스를 참고하세요.ampSTM32CubeWL3 MCU 패키지에 제공된 세트입니다.
주의:
기본 HAL 구현에서 SysTick 타이머는 타임베이스로 사용됩니다. 즉, 정기적인 시간 간격으로 인터럽트를 생성합니다. 주변 ISR 프로세스에서 HAL_Delay()가 호출되는 경우 SysTick 인터럽트가 주변 인터럽트보다 우선순위가 더 높은지(숫적으로 더 낮음) 확인하십시오. 그렇지 않으면 호출자 ISR 프로세스는
차단됨. 타임베이스 구성에 영향을 미치는 함수는 사용자 정의 구현의 다른 경우 재정의가 가능하도록 __weak로 선언됩니다. file (예를 들어 범용 타이머 사용)ample 또는 다른 시간 소스).
자세한 내용은 HAL_TimeBase 예제를 참조하세요.amp르.
LL 지원
이 섹션에서는 STM32CubeWL3를 사용하여 사용자 정의 LL 애플리케이션을 만드는 데 필요한 단계를 설명합니다.
- 프로젝트 만들기
새 프로젝트를 만들려면 \Projects\ 아래 각 보드에 제공된 Templates_LL 프로젝트에서 시작하세요. \Templates_LL 또는 \Projects\ 아래의 사용 가능한 프로젝트에서 \전amples_LL ( (NUCLEO-WL32CC33 등) 보드 이름을 말합니다.
템플릿 프로젝트는 빈 메인 루프 기능을 제공하는데, 이는 STM32CubeWL3의 프로젝트 설정을 이해하기에 좋은 시작점입니다. 템플릿의 주요 특징은 다음과 같습니다.- 여기에는 LL 및 CMSIS 드라이버의 소스 코드가 포함되어 있으며, 이는 주어진 보드에서 코드를 개발하는 데 필요한 최소한의 구성 요소 집합입니다.
- 여기에는 필요한 모든 펌웨어 구성 요소에 대한 포함된 경로가 포함되어 있습니다.
- 지원되는 STM32WL3x 제품군 장치를 선택하고 CMSIS 및 LL 드라이버를 올바르게 구성할 수 있습니다.
- 바로 사용할 수 있는 사용자를 제공합니다. file다음과 같이 사전 구성되어 있습니다.
- main.h: LED 및 USER_BUTTON 정의 추상화 계층.
- main.c: 최대 주파수를 위한 시스템 클럭 구성.
- LL ex 포팅amp르 :
- 초기 소스를 유지하려면 Templates_LL 폴더를 복사/붙여넣기하거나 기존 Templates_LL 프로젝트를 직접 업데이트하세요.
- 그런 다음 포팅은 주로 Templates_LL을 교체하는 것으로 구성됩니다. fileEx의 이름이야amples_LL 대상 프로젝트.
- 모든 보드 특정 부품을 유지하십시오. 명확성을 위해 보드 특정 부품에는 특정 플래그가 지정되어 있습니다. tags:

따라서 주요 포팅 단계는 다음과 같습니다.
- stm32wl3x_it.h를 교체하세요 file.
- stm32wl3x_it.c를 교체하세요 file.
- main.h를 교체하세요. file 업데이트합니다. BOARD SPECIFIC CONFIGURATION 아래에 LL 템플릿의 LED 및 사용자 버튼 정의를 유지합니다. tags.
- main.c를 교체하세요. file 업데이트하세요.
- BOARD SPECIFIC CONFIGURATION에서 SystemClock_Config() LL 템플릿 함수의 클럭 구성을 유지합니다. tags.
- LED 정의에 따라 각 LDx 발생을 사용 가능한 다른 LDy로 교체합니다. file 메인.h.
이러한 수정을 통해 example는 대상 보드에서 실행됩니다.
RF 애플리케이션, 데모 및 examp레
다양한 유형의 RF 애플리케이션, 데모 및 예amples는 STM32CubeWL3 패키지에서 사용할 수 있습니다. 아래 두 섹션에 나열되어 있습니다.
Sub-GHz 전amp레와 데모
이들 전amples는 MRSUBG 및 LPAWUR 무선 주변 장치의 주요 기능을 보여줍니다. 이러한amp다음에서 파일을 사용할 수 있습니다:
- 프로젝트\NUCLEO-WL33CC\Examples\MRSUBG
- 프로젝트\NUCLEO-WL33CC\Examples\LPAWUR
- 프로젝트\NUCLEO-WL33CC\데모\MRSUBG
- 프로젝트\NUCLEO-WL33CC\데모\LPAWUR
각 전amp데모는 일반적으로 송신기와 수신기 역할을 하는 Tx와 Rx라는 두 개의 프로그램으로 구성됩니다.
- Examples/MRSUBG
- MRSUBG_802_15_4: 표준 802.15.4에서 정의한 물리 계층의 구현입니다. 802.15.4 패킷을 전송하거나 수신하도록 무선을 구성하는 방법을 보여줍니다.
- MRSUBG_BasicGeneric: STM32WL3x MR_SUBG 기본 패킷을 교환합니다.
- MRSUBG_Chat: 동일한 장치에서 Tx와 Rx를 사용하는 방법을 보여주는 간단한 애플리케이션입니다.
- MRSUBG_DatabufferHandler: 전직ampDatabuffer 0과 1을 어떻게 바꾸는지 보여주는 파일입니다.
- MRSUBG_Sequencer AutoAck: 전직amp패킷 확인(ACK)을 자동으로 송수신하는 파일입니다.
- MRSUBG_WMBusSTD: WM-Bus 메시지 교환.
- WakeupRadio: 전ampLPAWUR 라디오 주변 장치를 테스트합니다.
- 데모/MRSUBG
- MRSUBG_RTC_Button_TX: 이 전ample는 SoC를 딥 스톱 모드로 설정하는 방법과 PB2를 눌러 프레임을 보내거나 RTC 타이머가 만료된 후 SoC를 깨우도록 MRSUBG를 구성하는 방법을 보여줍니다.
- MRSUBG_Sequencer_Sniff: 이 전ample는 MRSUBG 시퀀서를 스니프 모드에서 작동하도록 설정하는 방법을 보여줍니다. 이 example는 수신기 측을 보여주고 송신기로서 다른 장치가 필요합니다.
- MRSUBG_Timer: 애플리케이션은 서로 다른 시간 간격으로 MRSUBG 타이머(자동 재로드 포함)의 여러 인스턴스를 예약합니다.
- MRSUBG_WakeupRadio_Tx: 이 전ample는 SoC를 딥 스톱 모드로 설정하고 PB2를 눌러 프레임을 보내 SoC를 깨우도록 MRSUBG를 구성하는 방법을 설명합니다. 이 example는 송신기 측면을 보여주고 LPAWUR 수신기로서 다른 장치가 필요합니다. 수신기 example는 NUCLEO-WL33CC\Demonstrations\LPAWUR\LPAWUR_WakeupRad io_Rx 폴더 아래에 있습니다.
- 시위/LPAWUR
- LPAWUR_WakeupRadio_Rx: 이 전ample는 SoC를 딥 스톱 모드로 설정하고 프레임이 도착하고 올바르게 수신될 때 SoC를 깨우도록 LPAWUR을 구성하는 방법을 설명합니다. 이 example는 수신기 측을 보여주고 송신기로서 다른 장치를 필요로 합니다. 송신기 example는 NUCLEO-WL33CC\Demonstrations\MRSUBG\MRSUBG_WakeupRad io_Tx 폴더 아래에 있습니다.
Sigfox™ 애플리케이션
이러한 애플리케이션은 Sigfox™ 시나리오를 구현하고 사용 가능한 Sigfox™ API를 사용하는 방법을 보여줍니다. 프로젝트 경로 Projects\NUCLEO-WL33CC\Applications\Sigfox\에서 사용할 수 있습니다.
- Sigfox_CLI: 이 애플리케이션은 명령줄 인터페이스(CLI)를 사용하여 Sigfox™ 프로토콜을 사용하여 메시지를 보내고 사전 인증 테스트를 수행하는 명령을 보내는 방법을 보여줍니다.
- Sigfox_PushButton: 이 애플리케이션은 STM32WL33xx Sigfox™ 장치 무선 기능을 평가할 수 있게 해줍니다. PB1을 누르면 테스트 Sigfox™ 프레임이 전송됩니다.
자주 묻는 질문
- LL 드라이버 대신 HAL을 언제 사용해야 합니까?
HAL 드라이버는 높은 수준의 이식성과 함께 높은 수준의 기능 지향 API를 제공합니다. 최종 사용자에게는 제품 또는 주변 장치의 복잡성이 숨겨집니다.
LL 드라이버는 최적화가 더 뛰어나지만 이식성이 떨어지는 낮은 계층 레지스터 수준 API를 제공합니다. 제품이나 IP 사양에 대한 심층적인 지식이 필요합니다. - HAL과 LL 드라이버를 함께 사용할 수 있나요? 그렇다면 제약 사항은 무엇인가요?
HAL과 LL 드라이버를 모두 사용할 수 있습니다. 주변 장치 초기화 단계에 HAL을 사용한 다음 LL 드라이버로 I/O 작업을 관리합니다.
HAL과 LL의 주요 차이점은 HAL 드라이버는 작업 관리를 위해 핸들을 생성하고 사용해야 하는 반면 LL 드라이버는 주변 레지스터에서 직접 작동한다는 것입니다. HAL과 LL을 혼합하는 것은 Ex에서 설명합니다.amples_MIX 예amp레. - LL 초기화 API는 어떻게 활성화되나요?
LL 초기화 API와 관련 리소스(구조체, 리터럴, 프로토타입)의 정의는 USE_FULL_LL_DRIVER 컴파일 스위치에 의해 결정됩니다.
LL 초기화 API를 사용하려면 툴체인 컴파일러 전처리기에 이 스위치를 추가하세요. - MRSUBG/LPAWUR 주변 장치에 대한 템플릿 프로젝트가 있습니까?amp레?
새로운 MRSUBG 또는 LPAWUR ex를 생성하려면ample 프로젝트는 \Projects\NUCLEO-WL33CC\Ex에서 제공되는 스켈레톤 프로젝트에서 시작하거나amples\MRSUBG 또는 \Projects\NUCLEO-WL33CC\Examples\LPAWUR 또는 이 같은 디렉토리에 있는 사용 가능한 프로젝트에서 찾을 수 있습니다. - STM32CubeMX는 임베디드 소프트웨어를 기반으로 코드를 어떻게 생성할 수 있나요?
STM32CubeMX는 주변 장치 및 소프트웨어를 포함한 STM32 마이크로컨트롤러에 대한 기본 지식을 갖추고 있어 사용자에게 그래픽 표현을 제공하고 *.h 또는 *.c를 생성할 수 있습니다. file사용자의 구성에 따라 다릅니다.
개정 내역
표 3. 문서 개정 내역
| 날짜 | 개정 | 변화 |
| 29년 2024월 XNUMX일 | 1 | 최초 출시. |
| 30년 2024월 XNUMX일 | 2 | 완전한 통합 STM32큐브WL3 in STM32큐브. 업데이트됨:
제거됨:
|
문서 / 리소스
![]() |
ST STM32WL3x 소프트웨어 패키지 [PDF 파일] 지침 STM32WL3x 소프트웨어 패키지, STM32WL3x, 소프트웨어 패키지, 패키지 |





