RadioLib
Universal wireless communication library for Arduino
Loading...
Searching...
No Matches
STM32WLx.h
1/*
2Copyright (c) 2018 Jan Gromeš
3Copyright (c) 2022 STMicroelectronics
4
5This file is licensed under the MIT License: https://opensource.org/licenses/MIT
6*/
7
8#if !defined(_RADIOLIB_STM32WLx_H)
9#define _RADIOLIB_STM32WLx_H
10
11#include "../../TypeDef.h"
12
13#if !RADIOLIB_EXCLUDE_STM32WLX
14
15#include "../../Module.h"
16#include "SX1262.h"
17
18#if defined(ARDUINO_ARCH_STM32) && defined(STM32WLxx)
19#include "hal/Stm32duino/Stm32wlHal.h"
20#endif
21
36class STM32WLx : public SX1262 {
37 // NOTE: This class could not be named STM32WL (or STM32WLxx), since
38 // those are macros defined by
39 // system/Drivers/CMSIS/Device/ST/STM32WLxxx/Include/stm32wlxx.h
40 public:
45 STM32WLx(Module* mod); // cppcheck-suppress noExplicitConstructor
46
66
67 // basic methods
68
72 int16_t begin(const ConfigLoRa_t& config) override;
73
77 int16_t beginFSK(const ConfigFSK_t& config) override;
78
79 // configuration methods
80
95 int16_t setOutputPower(int8_t power) override;
96
112 // Note: This explicitly inherits this method only to override docs
114
115 #if defined(ARDUINO_ARCH_STM32)
120 void setDio1Action(void (*func)(void)) override;
121
125 void clearDio1Action() override;
126 #endif // ARDUINO_ARCH_STM32
127
128#if !RADIOLIB_GODMODE
129 protected:
130#endif
131 virtual int16_t clearIrqStatus(uint16_t clearIrqParams) override;
132
133#if !RADIOLIB_GODMODE
134 private:
135#endif
136};
137
138#endif
139
140#endif
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition Module.h:74
@ MODE_TX
Transmission mode.
Definition Module.h:120
@ MODE_IDLE
Idle mode.
Definition Module.h:114
@ MODE_RX
Receive mode.
Definition Module.h:117
@ MODE_END_OF_TABLE
End of table marker, use END_OF_MODE_TABLE constant instead. Value is zero to ensure zero-initialized...
Definition Module.h:111
int16_t setOutputPower(int8_t power) override
Sets output power. Allowed values are in range from -17 to 22 dBm.
Definition STM32WLx.cpp:53
int16_t beginFSK(const ConfigFSK_t &config) override
Initialization method for FSK modem.
Definition STM32WLx.cpp:39
int16_t begin(const ConfigLoRa_t &config) override
Initialization method for LoRa modem.
Definition STM32WLx.cpp:25
OpMode_t
Custom operation modes for STMWLx.
Definition STM32WLx.h:54
@ MODE_END_OF_TABLE
Definition STM32WLx.h:56
@ MODE_TX_LP
Definition STM32WLx.h:62
@ MODE_TX_HP
Definition STM32WLx.h:64
@ MODE_RX
Definition STM32WLx.h:60
@ MODE_IDLE
Definition STM32WLx.h:58
STM32WLx(Module *mod)
Default constructor.
Definition STM32WLx.cpp:19
SX1262(Module *mod)
Default constructor.
Definition SX1262.cpp:44
virtual void setDio1Action(void(*func)(void))
Sets interrupt service routine to call when DIO1 activates.
Definition SX126x_config.cpp:12
void setRfSwitchTable(const uint32_t(&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[])
Some modules contain external RF switch controlled by pins. This function gives RadioLib control over...
Definition SX126x_config.cpp:524
virtual void clearDio1Action()
Clears interrupt service routine to call when DIO1 activates.
Definition SX126x_config.cpp:16
Definition PhysicalLayer.h:310
Definition PhysicalLayer.h:292