1 /**
2 ******************************************************************************
3 * @file stm32wb0x_ll_radio.h
4 * @author GPM WBL Application Team
5 * @brief Header file of RADIO module.
6 ******************************************************************************
7 * @attention
8 *
9 * Copyright (c) 2024 STMicroelectronics.
10 * All rights reserved.
11 *
12 * This software is licensed under terms that can be found in the LICENSE file
13 * in the root directory of this software component.
14 * If no LICENSE file comes with this software, it is provided AS-IS.
15 *
16 ******************************************************************************
17 */
18
19 /* Define to prevent recursive inclusion -------------------------------------*/
20 #ifndef STM32WB0x_LL_RADIO_H
21 #define STM32WB0x_LL_RADIO_H
22
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26
27 /* Includes ------------------------------------------------------------------*/
28 #include "stm32wb0x.h"
29
30 /** @addtogroup STM32WB0x_LL_Driver
31 * @{
32 */
33
34 /** @addtogroup RADIO
35 * @{
36 */
37
38
39 /** @defgroup RADIO_Exported_Macros RADIO Exported Macros
40 * @{
41 */
42
43 #define BLUEGLOB_BASE (_MEMORY_RAM_BEGIN_ + 0xC0U)
44 #define BLUEGLOB ((GLOBALSTATMACH_TypeDef*) BLUEGLOB_BASE)
45 #define BLUEGLOBWORD ((GLOBALSTATMACH_WORD_TypeDef*) BLUEGLOB_BASE)
46 #define bluedata ((STATMACH_TypeDef*) (BLUEGLOB_BASE+sizeof(GLOBALSTATMACH_TypeDef)))
47 #define BLUEDATAWORD ((STATMACH_WORD_TypeDef*) (BLUEGLOB_BASE+sizeof(GLOBALSTATMACH_WORD_TypeDef)))
48 #define BlueTransStruct TXRXPACK_TypeDef
49
50 #define BLUE_DATA_PTR_CAST(PTR) (((uint32_t)(uintptr_t)(PTR)))
51 #define BLUE_STRUCT_PTR_CAST(PTR) (((uint32_t)(uintptr_t)(PTR)))
52
53 /**
54 * @}
55 */
56
57
58 /** @defgroup RADIO_Exported_Constants RADIO Exported Constants
59 *@{
60 */
61
62 /* Hot table size */
63 #if defined(STM32WB05) || defined(STM32WB09)
64 #define HOT_TABLE_SIZE 37
65 #endif /* defined(STM32WB05) || defined(STM32WB09) */
66 #if defined(STM32WB06) || defined (STM32WB07)
67 #define HOT_TABLE_SIZE 31
68 #endif /* defined(STM32WB06) || defined (STM32WB07) */
69
70 /* RRM register address for the hot table */
71 #define RRM_CBIAS1_ANA_ENG (0x5E)
72 #define RRM_CBIAS0_ANA_ENG (0x5D)
73 #define RRM_RXADC_ANA_USR (0x52)
74 #define RRM_AFC1_DIG_ENG (0x12)
75 #define RRM_CR0_DIG_ENG (0x15)
76 #define RRM_CR0_LR (0x1A)
77 #define RRM_LR_RSSI_THR_DIG_ENG (0x22)
78 #define RRM_LR_PD_THR_DIG_ENG (0x21)
79 #define RRM_LR_AAC_THR_DIG_ENG (0x23)
80 #define RRM_VIT_CONF_DIG_ENG (0x1B)
81 #define RRM_ANTSW_DIG0_USR (0x90)
82 #define RRM_ANTSW_DIG1_USR (0x91)
83
84
85 /** @defgroup GlobalStatmach_Masks GlobalStatmach Masks
86 * @{
87 */
88 #define GLOBAL_WORD0_RADIOCONFIGPTR_Pos (0UL)
89 #define GLOBAL_WORD0_RADIOCONFIGPTR_Msk (0xffffffffUL)
90 #define GLOBAL_WORD0_RADIOCONFIGPTR GLOBAL_WORD0_RADIOCONFIGPTR_Msk
91 #define GLOBAL_WORD1_CURSTMACHNUM_Pos (0UL)
92 #define GLOBAL_WORD1_CURSTMACHNUM_Msk (0x7fUL)
93 #define GLOBAL_WORD1_CURSTMACHNUM GLOBAL_WORD1_CURSTMACHNUM_Msk
94 #define GLOBAL_WORD1_ACTIVE_Pos (7UL)
95 #define GLOBAL_WORD1_ACTIVE_Msk (0x80UL)
96 #define GLOBAL_WORD1_ACTIVE GLOBAL_WORD1_ACTIVE_Msk
97 #define GLOBAL_WORD1_WAKEUPINITDELAY_Pos (8UL)
98 #define GLOBAL_WORD1_WAKEUPINITDELAY_Msk (0xff00UL)
99 #define GLOBAL_WORD1_WAKEUPINITDELAY GLOBAL_WORD1_WAKEUPINITDELAY_Msk
100 #define GLOBAL_WORD1_TIMER12INITDELAYCAL_Pos (16UL)
101 #define GLOBAL_WORD1_TIMER12INITDELAYCAL_Msk (0xff0000UL)
102 #define GLOBAL_WORD1_TIMER12INITDELAYCAL GLOBAL_WORD1_TIMER12INITDELAYCAL_Msk
103 #define GLOBAL_WORD1_TIMER2INITDELAYNOCAL_Pos (24UL)
104 #define GLOBAL_WORD1_TIMER2INITDELAYNOCAL_Msk (0xff000000UL)
105 #define GLOBAL_WORD1_TIMER2INITDELAYNOCAL GLOBAL_WORD1_TIMER2INITDELAYNOCAL_Msk
106 #define GLOBAL_WORD2_TRANSMITCALDELAYCHK_Pos (0UL)
107 #define GLOBAL_WORD2_TRANSMITCALDELAYCHK_Msk (0xffUL)
108 #define GLOBAL_WORD2_TRANSMITCALDELAYCHK GLOBAL_WORD2_TRANSMITCALDELAYCHK_Msk
109 #define GLOBAL_WORD2_TRANSMITNOCALDELAYCHK_Pos (8UL)
110 #define GLOBAL_WORD2_TRANSMITNOCALDELAYCHK_Msk (0xff00UL)
111 #define GLOBAL_WORD2_TRANSMITNOCALDELAYCHK GLOBAL_WORD2_TRANSMITNOCALDELAYCHK_Msk
112 #define GLOBAL_WORD2_RECEIVECALDELAYCHK_Pos (16UL)
113 #define GLOBAL_WORD2_RECEIVECALDELAYCHK_Msk (0xff0000UL)
114 #define GLOBAL_WORD2_RECEIVECALDELAYCHK GLOBAL_WORD2_RECEIVECALDELAYCHK_Msk
115 #define GLOBAL_WORD2_RECEIVENOCALDELAYCHK_Pos (24UL)
116 #define GLOBAL_WORD2_RECEIVENOCALDELAYCHK_Msk (0xff000000UL)
117 #define GLOBAL_WORD2_RECEIVENOCALDELAYCHK GLOBAL_WORD2_RECEIVENOCALDELAYCHK_Msk
118 #define GLOBAL_WORD3_CONFIGENDDURATION_Pos (0UL)
119 #define GLOBAL_WORD3_CONFIGENDDURATION_Msk (0xffUL)
120 #define GLOBAL_WORD3_CONFIGENDDURATION GLOBAL_WORD3_CONFIGENDDURATION_Msk
121 #define GLOBAL_WORD3_TXDATAREADYCHECK_Pos (8UL)
122 #define GLOBAL_WORD3_TXDATAREADYCHECK_Msk (0xff00UL)
123 #define GLOBAL_WORD3_TXDATAREADYCHECK GLOBAL_WORD3_TXDATAREADYCHECK_Msk
124 #define GLOBAL_WORD3_TXDELAYSTART_Pos (16UL)
125 #define GLOBAL_WORD3_TXDELAYSTART_Msk (0xff0000UL)
126 #define GLOBAL_WORD3_TXDELAYSTART GLOBAL_WORD3_TXDELAYSTART_Msk
127 #define GLOBAL_WORD3_TXDELAYEND_Pos (24UL)
128 #define GLOBAL_WORD3_TXDELAYEND_Msk (0x3f000000UL)
129 #define GLOBAL_WORD3_TXDELAYEND GLOBAL_WORD3_TXDELAYEND_Msk
130 #define GLOBAL_WORD3_TIMECAPTURESEL_Pos (30UL)
131 #define GLOBAL_WORD3_TIMECAPTURESEL_Msk (0x40000000UL)
132 #define GLOBAL_WORD3_TIMECAPTURESEL GLOBAL_WORD3_TIMECAPTURESEL_Msk
133 #define GLOBAL_WORD3_TIMECAPTURE_Pos (31UL)
134 #define GLOBAL_WORD3_TIMECAPTURE_Msk (0x80000000UL)
135 #define GLOBAL_WORD3_TIMECAPTURE GLOBAL_WORD3_TIMECAPTURE_Msk
136 #define GLOBAL_WORD4_TXREADYTIMEOUT_Pos (0UL)
137 #define GLOBAL_WORD4_TXREADYTIMEOUT_Msk (0xffUL)
138 #define GLOBAL_WORD4_TXREADYTIMEOUT GLOBAL_WORD4_TXREADYTIMEOUT_Msk
139 #define GLOBAL_WORD4_RCVTIMEOUT_Pos (8UL)
140 #define GLOBAL_WORD4_RCVTIMEOUT_Msk (0xfffff00UL)
141 #define GLOBAL_WORD4_RCVTIMEOUT GLOBAL_WORD4_RCVTIMEOUT_Msk
142 #define GLOBAL_WORD5_CHKFLAGAUTOCLEARENA_Pos (2UL)
143 #define GLOBAL_WORD5_CHKFLAGAUTOCLEARENA_Msk (0x4UL)
144 #define GLOBAL_WORD5_CHKFLAGAUTOCLEARENA GLOBAL_WORD5_CHKFLAGAUTOCLEARENA_Msk
145 #define GLOBAL_WORD5_INTNOACTIVELERROR_Pos (23UL)
146 #define GLOBAL_WORD5_INTNOACTIVELERROR_Msk (0x800000UL)
147 #define GLOBAL_WORD5_INTNOACTIVELERROR GLOBAL_WORD5_INTNOACTIVELERROR_Msk
148 #define GLOBAL_WORD5_INTTXRXSKIP_Pos (29UL)
149 #define GLOBAL_WORD5_INTTXRXSKIP_Msk (0x20000000UL)
150 #define GLOBAL_WORD5_INTTXRXSKIP GLOBAL_WORD5_INTTXRXSKIP_Msk
151 #define GLOBAL_WORD5_INTACTIVE2ERR_Pos (30UL)
152 #define GLOBAL_WORD5_INTACTIVE2ERR_Msk (0x40000000UL)
153 #define GLOBAL_WORD5_INTACTIVE2ERR GLOBAL_WORD5_INTACTIVE2ERR_Msk
154 #if defined(STM32WB05) || defined(STM32WB09)
155 #define GLOBAL_WORD6_DEFAULTANTENNAID_Pos (0UL)
156 #define GLOBAL_WORD6_DEFAULTANTENNAID_Msk (0x7fUL)
157 #define GLOBAL_WORD6_DEFAULTANTENNAID GLOBAL_WORD6_DEFAULTANTENNAID_Msk
158 #endif /* defined(STM32WB05) || defined(STM32WB09) */
159
160 #define GLOBAL_BYTE4_CURSTMACHNUM_Msk (0x7F)
161 #define GLOBAL_BYTE4_ACTIVE_Msk (0x80)
162
163 #define GLOBAL_BYTE15_TXDELAYEND_Msk (0x3F)
164 #define GLOBAL_BYTE15_TIMECAPTURESEL_Msk (0x40)
165 #define GLOBAL_BYTE15_TIMECAPTURE_Msk (0x80)
166
167 #define GLOBAL_BYTE20_AUTOTXRXSKIPEN_Msk (0x01)
168 #define GLOBAL_BYTE20_CHKFLAGAUTOCLEARENA_Msk (0x04)
169
170 #define GLOBAL_BYTE21_INTSEQERROR_Msk (0x3F)
171
172 #define GLOBAL_BYTE22_INTADDPOINTERROR_Msk (0x10)
173 #define GLOBAL_BYTE22_INTALLTABLEREADYERROR_Msk (0x20)
174 #define GLOBAL_BYTE22_INTTXDATAREADYERROR_Msk (0x40)
175 #define GLOBAL_BYTE22_INTNOACTIVELERROR_Msk (0x80)
176
177 #define GLOBAL_BYTE23_INTRCVLENGTHERROR_Msk (0x02)
178 #define GLOBAL_BYTE23_INTSEMATIMEOUTERROR_Msk (0x04)
179 #define GLOBAL_BYTE23_INTSEMAWASPREEMPT_Msk (0x08)
180 #define GLOBAL_BYTE23_INTSEQDONE_Msk (0x10)
181 #define GLOBAL_BYTE23_INTTXRXSKIP_Msk (0x20)
182 #define GLOBAL_BYTE23_INTACTIVE2ERR_Msk (0x40)
183 #define GLOBAL_BYTE23_INTCONFIGERROR_Msk (0x80)
184
185 #if defined(STM32WB05) || defined(STM32WB09)
186 #define GLOBAL_BYTE24_DEFAULTANTENNAID_Msk (0x7F)
187 #endif /* defined(STM32WB05) || defined(STM32WB09) */
188
189 /**
190 * @}
191 */
192
193
194 /** @defgroup Statmach_Masks Statmach Masks
195 * @{
196 */
197 #define STATEMACH_WORD0_UCHAN_Pos (0UL)
198 #define STATEMACH_WORD0_UCHAN_Msk (0x3fUL)
199 #define STATEMACH_WORD0_UCHAN STATEMACH_WORD0_UCHAN_Msk
200 #define STATEMACH_WORD0_RADIOCOMLISTENA_Pos (6UL)
201 #define STATEMACH_WORD0_RADIOCOMLISTENA_Msk (0x40UL)
202 #define STATEMACH_WORD0_RADIOCOMLISTENA STATEMACH_WORD0_RADIOCOMLISTENA_Msk
203 #define STATEMACH_WORD0_TXMODE_Pos (7UL)
204 #define STATEMACH_WORD0_TXMODE_Msk (0x80UL)
205 #define STATEMACH_WORD0_TXMODE STATEMACH_WORD0_TXMODE_Msk
206 #define STATEMACH_WORD0_REMAP_CHAN_Pos (8UL)
207 #define STATEMACH_WORD0_REMAP_CHAN_Msk (0x3f00UL)
208 #define STATEMACH_WORD0_REMAP_CHAN STATEMACH_WORD0_REMAP_CHAN_Msk
209 #define STATEMACH_WORD0_SN_Pos (14UL)
210 #define STATEMACH_WORD0_SN_Msk (0x4000UL)
211 #define STATEMACH_WORD0_SN STATEMACH_WORD0_SN_Msk
212 #define STATEMACH_WORD0_NESN_Pos (15UL)
213 #define STATEMACH_WORD0_NESN_Msk (0x8000UL)
214 #define STATEMACH_WORD0_NESN STATEMACH_WORD0_NESN_Msk
215 #if defined(STM32WB09)
216 #define STATEMACH_WORD0_PHYSCHANPDUTYPE_Pos (16UL)
217 #define STATEMACH_WORD0_PHYSCHANPDUTYPE_Msk (0x30000UL)
218 #define STATEMACH_WORD0_PHYSCHANPDUTYPE STATEMACH_WORD0_PHYSCHANPDUTYPE_Msk
219 #endif /* defined(STM32WB09) */
220 #define STATEMACH_WORD0_ENCRYPTON_Pos (21UL)
221 #define STATEMACH_WORD0_ENCRYPTON_Msk (0x200000UL)
222 #define STATEMACH_WORD0_ENCRYPTON STATEMACH_WORD0_ENCRYPTON_Msk
223 #define STATEMACH_WORD0_TXPHY_Pos (24UL)
224 #define STATEMACH_WORD0_TXPHY_Msk (0x7000000UL)
225 #define STATEMACH_WORD0_TXPHY STATEMACH_WORD0_TXPHY_Msk
226 #if defined(STM32WB05) || defined(STM32WB09)
227 #define STATEMACH_WORD0_CTEDISABLE_Pos (27UL)
228 #define STATEMACH_WORD0_CTEDISABLE_Msk (0x8000000UL)
229 #define STATEMACH_WORD0_CTEDISABLE STATEMACH_WORD0_CTEDISABLE_Msk
230 #endif /* defined(STM32WB05) || defined(STM32WB09) */
231 #define STATEMACH_WORD0_RXPHY_Pos (28UL)
232 #define STATEMACH_WORD0_RXPHY_Msk (0x70000000UL)
233 #define STATEMACH_WORD0_RXPHY STATEMACH_WORD0_RXPHY_Msk
234 #define STATEMACH_WORD1_TXPOINT_Pos (0UL)
235 #define STATEMACH_WORD1_TXPOINT_Msk (0xffffffffUL)
236 #define STATEMACH_WORD1_TXPOINT STATEMACH_WORD1_TXPOINT_Msk
237 #define STATEMACH_WORD2_RCVPOINT_Pos (0UL)
238 #define STATEMACH_WORD2_RCVPOINT_Msk (0xffffffffUL)
239 #define STATEMACH_WORD2_RCVPOINT STATEMACH_WORD2_RCVPOINT_Msk
240 #define STATEMACH_WORD3_TXPOINTPREV_Pos (0UL)
241 #define STATEMACH_WORD3_TXPOINTPREV_Msk (0xffffffffUL)
242 #define STATEMACH_WORD3_TXPOINTPREV STATEMACH_WORD3_TXPOINTPREV_Msk
243 #define STATEMACH_WORD4_RCVPOINTPREV_Pos (0UL)
244 #define STATEMACH_WORD4_RCVPOINTPREV_Msk (0xffffffffUL)
245 #define STATEMACH_WORD4_RCVPOINTPREV STATEMACH_WORD4_RCVPOINTPREV_Msk
246 #define STATEMACH_WORD6_PCNTTX_31_0_Pos (0UL)
247 #define STATEMACH_WORD6_PCNTTX_31_0_Msk (0xffffffffUL)
248 #define STATEMACH_WORD6_PCNTTX_31_0 STATEMACH_WORD6_PCNTTX_31_0_Msk
249 #define STATEMACH_WORD7_PCNTTX_39_32_Pos (0UL)
250 #define STATEMACH_WORD7_PCNTTX_39_32_Msk (0xffUL)
251 #define STATEMACH_WORD7_PCNTTX_39_32 STATEMACH_WORD7_PCNTTX_39_32_Msk
252 #define STATEMACH_WORD7_PCNTRCV_23_0_Pos (8UL)
253 #define STATEMACH_WORD7_PCNTRCV_23_0_Msk (0xffffff00UL)
254 #define STATEMACH_WORD7_PCNTRCV_23_0 STATEMACH_WORD7_PCNTRCV_23_0_Msk
255 #define STATEMACH_WORD8_PCNTRCV_39_24_Pos (0UL)
256 #define STATEMACH_WORD8_PCNTRCV_39_24_Msk (0xffffUL)
257 #define STATEMACH_WORD8_PCNTRCV_39_24 STATEMACH_WORD8_PCNTRCV_39_24_Msk
258 #define STATEMACH_WORD8_INTENCERROR_Pos (29UL)
259 #define STATEMACH_WORD8_INTENCERROR_Msk (0x20000000UL)
260 #define STATEMACH_WORD8_INTENCERROR STATEMACH_WORD8_INTENCERROR_Msk
261 #define STATEMACH_WORD9_ACCADDR_Pos (0UL)
262 #define STATEMACH_WORD9_ACCADDR_Msk (0xffffffffUL)
263 #define STATEMACH_WORD9_ACCADDR STATEMACH_WORD9_ACCADDR_Msk
264 #define STATEMACH_WORDA_CRCINIT_Pos (0UL)
265 #define STATEMACH_WORDA_CRCINIT_Msk (0xffffffUL)
266 #define STATEMACH_WORDA_CRCINIT STATEMACH_WORDA_CRCINIT_Msk
267 #define STATEMACH_WORDA_MAXRECEIVEDLENGTH_Pos (24UL)
268 #define STATEMACH_WORDA_MAXRECEIVEDLENGTH_Msk (0xff000000UL)
269 #define STATEMACH_WORDA_MAXRECEIVEDLENGTH STATEMACH_WORDA_MAXRECEIVEDLENGTH_Msk
270 #define STATEMACH_WORDB_PAPOWER_Pos (0UL)
271 #define STATEMACH_WORDB_PAPOWER_Msk (0x1fUL)
272 #define STATEMACH_WORDB_PAPOWER STATEMACH_WORDB_PAPOWER_Msk
273 #if defined(STM32WB09)
274 #define STATEMACH_WORDB_TXHP_Pos (7UL)
275 #define STATEMACH_WORDB_TXHP_Msk (0x80UL)
276 #define STATEMACH_WORDB_TXHP STATEMACH_WORDB_TXHP_Msk
277 #endif /* defined(STM32WB09) */
278 #define STATEMACH_WORDB_HOPINCR_Pos (8UL)
279 #define STATEMACH_WORDB_HOPINCR_Msk (0x3f00UL)
280 #define STATEMACH_WORDB_HOPINCR STATEMACH_WORDB_HOPINCR_Msk
281 #define STATEMACH_WORDB_USEDCHANNELFLAGS_15_0_Pos (16UL)
282 #define STATEMACH_WORDB_USEDCHANNELFLAGS_15_0_Msk (0xffff0000UL)
283 #define STATEMACH_WORDB_USEDCHANNELFLAGS_15_0 STATEMACH_WORDB_USEDCHANNELFLAGS_15_0_Msk
284 #define STATEMACH_WORDC_USEDCHANNELFLAGS_36_16_Pos (0UL)
285 #define STATEMACH_WORDC_USEDCHANNELFLAGS_36_16_Msk (0x3fffffUL)
286 #define STATEMACH_WORDC_USEDCHANNELFLAGS_36_16 STATEMACH_WORDC_USEDCHANNELFLAGS_36_16_Msk
287 #define STATEMACH_WORDE_ENCRYPTIV_0_31_Pos (0UL)
288 #define STATEMACH_WORDE_ENCRYPTIV_0_31_Msk (0xffffffffUL)
289 #define STATEMACH_WORDE_ENCRYPTIV_0_31 STATEMACH_WORDE_ENCRYPTIV_0_31_Msk
290 #if defined(STM32WB05) || defined(STM32WB09)
291 #define STATEMACH_WORD14_AOD_NAOA_Pos (0UL)
292 #define STATEMACH_WORD14_AOD_NAOA_Msk (0x1UL)
293 #define STATEMACH_WORD14_AOD_NAOA STATEMACH_WORD14_AOD_NAOA_Msk
294 #define STATEMACH_WORD14_CTESLOTWIDTH_Pos (1UL)
295 #define STATEMACH_WORD14_CTESLOTWIDTH_Msk (0x2UL)
296 #define STATEMACH_WORD14_CTESLOTWIDTH STATEMACH_WORD14_CTESLOTWIDTH_Msk
297 #define STATEMACH_WORD14_CTETIME_Pos (2UL)
298 #define STATEMACH_WORD14_CTETIME_Msk (0x7cUL)
299 #define STATEMACH_WORD14_CTETIME STATEMACH_WORD14_CTETIME_Msk
300 #define STATEMACH_WORD14_MAXIMUMIQSAMPLESNUMBER_Pos (8UL)
301 #define STATEMACH_WORD14_MAXIMUMIQSAMPLESNUMBER_Msk (0x7f00UL)
302 #define STATEMACH_WORD14_MAXIMUMIQSAMPLESNUMBER STATEMACH_WORD14_MAXIMUMIQSAMPLESNUMBER_Msk
303 #define STATEMACH_WORD14_ANTENNAPATTERNLENGTH_Pos (16UL)
304 #define STATEMACH_WORD14_ANTENNAPATTERNLENGTH_Msk (0xff0000UL)
305 #define STATEMACH_WORD14_ANTENNAPATTERNLENGTH STATEMACH_WORD14_ANTENNAPATTERNLENGTH_Msk
306 #define STATEMACH_WORD15_IQSAMPLESPTR_Pos (0UL)
307 #define STATEMACH_WORD15_IQSAMPLESPTR_Msk (0xffffffffUL)
308 #define STATEMACH_WORD15_IQSAMPLESPTR STATEMACH_WORD15_IQSAMPLESPTR_Msk
309 #define STATEMACH_WORD16_ANTENNAPATTERNPTR_Pos (0UL)
310 #define STATEMACH_WORD16_ANTENNAPATTERNPTR_Msk (0xffffffffUL)
311 #define STATEMACH_WORD16_ANTENNAPATTERNPTR STATEMACH_WORD16_ANTENNAPATTERNPTR_Msk
312 #endif /* defined(STM32WB05) || defined(STM32WB09) */
313
314
315 #define STATEMACH_BYTE0_UCHAN_Msk (0x3F)
316 #define STATEMACH_BYTE0_RADIOCOMLISTENA_Msk (0x40)
317 #define STATEMACH_BYTE0_TXMODE_Msk (0x80)
318
319 #define STATEMACH_BYTE1_REMAP_CHAN_Msk (0x3F)
320 #define STATEMACH_BYTE1_SN_Msk (0x40)
321 #define STATEMACH_BYTE1_NESN_Msk (0x80)
322
323 #define STATEMACH_BYTE2_SEMAPRIO_Msk (0x07)
324 #define STATEMACH_BYTE2_SEMAPREEMPT_Msk (0x08)
325 #define STATEMACH_BYTE2_BUFFER_FULL_Msk (0x10)
326 #define STATEMACH_BYTE2_ENCRYPTON_Msk (0x20)
327 #define STATEMACH_BYTE2_TXENC_Msk (0x40)
328 #define STATEMACH_BYTE2_RCVENC_Msk (0x80)
329
330 #define STATEMACH_BYTE3_TXPHY_Msk (0x07)
331
332 #if defined(STM32WB05) || defined(STM32WB09)
333 #define STATEMACH_BYTE3_CTEDISABLE_Msk (0x08)
334 #endif /* defined(STM32WB05) || defined(STM32WB09) */
335
336 #define STATEMACH_BYTE3_RXPHY_Msk (0x70)
337
338 #define STATEMACH_BYTE34_PREAMBLEREP_Msk (0x0F)
339 #define STATEMACH_BYTE34_ENAPREAMBLEREP_Msk (0x10)
340 #define STATEMACH_BYTE34_DISABLECRC_Msk (0x20)
341 #define STATEMACH_BYTE34_MSBFIRST_Msk (0x40)
342 #define STATEMACH_BYTE34_RXMICDBG_Msk (0x80)
343
344 #define STATEMACH_BYTE35_INTTXERROR_Msk (0x1F)
345 #define STATEMACH_BYTE35_INTENCERROR_Msk (0x20)
346 #define STATEMACH_BYTE35_INTRXOVERFLOWERROR_Msk (0x40)
347 #define STATEMACH_BYTE35_RXDEBUGCRC_Msk (0x80)
348
349 #if defined(STM32WB05) || defined(STM32WB09)
350 #define STATEMACH_BYTE80_AOD_NAOA_Msk (0x01)
351 #define STATEMACH_BYTE80_CTESLOTWIDTH_Msk (0x02)
352 #define STATEMACH_BYTE80_AOD_CTETIME_Msk (0x7C)
353 #endif /* defined(STM32WB05) || defined(STM32WB09) */
354
355 /**
356 * @}
357 */
358
359 /** @defgroup TxRxPack_Masks TxRxPack Masks
360 * @{
361 */
362
363 #define TXRXPACK_WORD0_NEXTPTR_Pos (0UL)
364 #define TXRXPACK_WORD0_NEXTPTR_Msk (0xffffffffUL)
365 #define TXRXPACK_WORD0_NEXTPTR TXRXPACK_WORD0_NEXTPTR_Msk
366 #define TXRXPACK_WORD1_CALREQ_Pos (0UL)
367 #define TXRXPACK_WORD1_CALREQ_Msk (0x1UL)
368 #define TXRXPACK_WORD1_CALREQ TXRXPACK_WORD1_CALREQ_Msk
369 #define TXRXPACK_WORD1_KEEPSEMAREQ_Pos (2UL)
370 #define TXRXPACK_WORD1_KEEPSEMAREQ_Msk (0x4UL)
371 #define TXRXPACK_WORD1_KEEPSEMAREQ TXRXPACK_WORD1_KEEPSEMAREQ_Msk
372 #if defined (STM32WB06) || defined (STM32WB07)
373 #define TXRXPACK_WORD1_SUPPENA_Pos (3UL)
374 #define TXRXPACK_WORD1_SUPPENA_Msk (0x8UL)
375 #define TXRXPACK_WORD1_SUPPENA TXRXPACK_WORD1_SUPPENA_Msk
376 #endif /* defined (STM32WB06) || defined (STM32WB07) */
377 #if defined(STM32WB05) || defined(STM32WB09)
378 #define TXRXPACK_WORD1_CTEANDSAMPLINGENABLE_Pos (3UL)
379 #define TXRXPACK_WORD1_CTEANDSAMPLINGENABLE_Msk (0x8UL)
380 #define TXRXPACK_WORD1_CTEANDSAMPLINGENABLE TXRXPACK_WORD1_CTEANDSAMPLINGENABLE_Msk
381 #endif /* defined(STM32WB05) || defined(STM32WB09) */
382 #define TXRXPACK_WORD1_CRCINITSEL_Pos (4UL)
383 #define TXRXPACK_WORD1_CRCINITSEL_Msk (0x10UL)
384 #define TXRXPACK_WORD1_CRCINITSEL TXRXPACK_WORD1_CRCINITSEL_Msk
385 #define TXRXPACK_WORD1_ADVERTISE_Pos (5UL)
386 #define TXRXPACK_WORD1_ADVERTISE_Msk (0x20UL)
387 #define TXRXPACK_WORD1_ADVERTISE TXRXPACK_WORD1_ADVERTISE_Msk
388 #define TXRXPACK_WORD1_SN_EN_Pos (6UL)
389 #define TXRXPACK_WORD1_SN_EN_Msk (0x40UL)
390 #define TXRXPACK_WORD1_SN_EN TXRXPACK_WORD1_SN_EN_Msk
391 #define TXRXPACK_WORD1_INCCHAN_Pos (7UL)
392 #define TXRXPACK_WORD1_INCCHAN_Msk (0x80UL)
393 #define TXRXPACK_WORD1_INCCHAN TXRXPACK_WORD1_INCCHAN_Msk
394 #define TXRXPACK_WORD1_NEXTTXMODE_Pos (8UL)
395 #define TXRXPACK_WORD1_NEXTTXMODE_Msk (0x100UL)
396 #define TXRXPACK_WORD1_NEXTTXMODE TXRXPACK_WORD1_NEXTTXMODE_Msk
397 #define TXRXPACK_WORD1_ALLTABLEREADY_Pos (9UL)
398 #define TXRXPACK_WORD1_ALLTABLEREADY_Msk (0x200UL)
399 #define TXRXPACK_WORD1_ALLTABLEREADY TXRXPACK_WORD1_ALLTABLEREADY_Msk
400 #define TXRXPACK_WORD1_TXDATAREADY_Pos (10UL)
401 #define TXRXPACK_WORD1_TXDATAREADY_Msk (0x400UL)
402 #define TXRXPACK_WORD1_TXDATAREADY TXRXPACK_WORD1_TXDATAREADY_Msk
403 #define TXRXPACK_WORD1_DISABLEWHITENING_Pos (12UL)
404 #define TXRXPACK_WORD1_DISABLEWHITENING_Msk (0x1000UL)
405 #define TXRXPACK_WORD1_DISABLEWHITENING TXRXPACK_WORD1_DISABLEWHITENING_Msk
406 #define TXRXPACK_WORD2_DATAPTR_Pos (0UL)
407 #define TXRXPACK_WORD2_DATAPTR_Msk (0xffffffffUL)
408 #define TXRXPACK_WORD2_DATAPTR TXRXPACK_WORD2_DATAPTR_Msk
409 #define TXRXPACK_WORD3_TIMER2_Pos (0UL)
410 #define TXRXPACK_WORD3_TIMER2_Msk (0xfffffUL)
411 #define TXRXPACK_WORD3_TIMER2 TXRXPACK_WORD3_TIMER2_Msk
412 #define TXRXPACK_WORD3_TIMER2EN_Pos (20UL)
413 #define TXRXPACK_WORD3_TIMER2EN_Msk (0x100000UL)
414 #define TXRXPACK_WORD3_TIMER2EN TXRXPACK_WORD3_TIMER2EN_Msk
415 #define TXRXPACK_WORD3_TRIGRCV_Pos (22UL)
416 #define TXRXPACK_WORD3_TRIGRCV_Msk (0x400000UL)
417 #define TXRXPACK_WORD3_TRIGRCV TXRXPACK_WORD3_TRIGRCV_Msk
418 #define TXRXPACK_WORD3_TRIGDONE_Pos (23UL)
419 #define TXRXPACK_WORD3_TRIGDONE_Msk (0x800000UL)
420 #define TXRXPACK_WORD3_TRIGDONE TXRXPACK_WORD3_TRIGDONE_Msk
421 #define TXRXPACK_WORD3_INTTXOK_Pos (24UL)
422 #define TXRXPACK_WORD3_INTTXOK_Msk (0x1000000UL)
423 #define TXRXPACK_WORD3_INTTXOK TXRXPACK_WORD3_INTTXOK_Msk
424 #define TXRXPACK_WORD3_INTDONE_Pos (25UL)
425 #define TXRXPACK_WORD3_INTDONE_Msk (0x2000000UL)
426 #define TXRXPACK_WORD3_INTDONE TXRXPACK_WORD3_INTDONE_Msk
427 #define TXRXPACK_WORD3_INTRCVTIMEOUT_Pos (26UL)
428 #define TXRXPACK_WORD3_INTRCVTIMEOUT_Msk (0x4000000UL)
429 #define TXRXPACK_WORD3_INTRCVTIMEOUT TXRXPACK_WORD3_INTRCVTIMEOUT_Msk
430 #define TXRXPACK_WORD3_INTTIMECAPTURE_Pos (29UL)
431 #define TXRXPACK_WORD3_INTTIMECAPTURE_Msk (0x20000000UL)
432 #define TXRXPACK_WORD3_INTTIMECAPTURE TXRXPACK_WORD3_INTTIMECAPTURE_Msk
433 #define TXRXPACK_WORD3_INTRCVCRCERR_Pos (30UL)
434 #define TXRXPACK_WORD3_INTRCVCRCERR_Msk (0x40000000UL)
435 #define TXRXPACK_WORD3_INTRCVCRCERR TXRXPACK_WORD3_INTRCVCRCERR_Msk
436 #define TXRXPACK_WORD3_INTRCVOK_Pos (31UL)
437 #define TXRXPACK_WORD3_INTRCVOK_Msk (0x80000000UL)
438 #define TXRXPACK_WORD3_INTRCVOK TXRXPACK_WORD3_INTRCVOK_Msk
439
440 #define TXRXPACK_BYTE4_CALREQ_Msk (0x01)
441 #define TXRXPACK_BYTE4_CHANALGO2SEL_Msk (0x02)
442 #define TXRXPACK_BYTE4_KEEPSEMAREQ_Msk (0x04)
443 #if defined(STM32WB05) || defined(STM32WB09)
444 #define TXRXPACK_BYTE4_CTEANDSAMPLINGENABLE_Msk (0x08)
445 #endif /* defined(STM32WB05) || defined(STM32WB09) */
446 #if defined(STM32WB06) || defined (STM32WB07)
447 #define TXRXPACK_BYTE4_SUPPENA_Msk (0x08)
448 #endif /* defined(STM32WB06) || defined (STM32WB07) */
449 #define TXRXPACK_BYTE4_CRCINITSEL_Msk (0x10)
450 #define TXRXPACK_BYTE4_ADVERTISE_Msk (0x20)
451 #define TXRXPACK_BYTE4_SN_EN_Msk (0x40)
452 #define TXRXPACK_BYTE4_INCCHAN_Msk (0x80)
453
454 #define TXRXPACK_BYTE5_NEXTTXMODE_Msk (0x01)
455 #define TXRXPACK_BYTE5_ALLTABLEREADY_Msk (0x02)
456 #define TXRXPACK_BYTE5_TXDATAREADY_Msk (0x04)
457 #define TXRXPACK_BYTE5_DATAREADYSEL_Msk (0x08)
458 #define TXRXPACK_BYTE5_DISABLEWHITENING_Msk (0x10)
459 #define TXRXPACK_BYTE5_TESTPACKET_Msk (0x20)
460
461 #if defined(STM32WB05) || defined(STM32WB09)
462 #define TXRXPACK_BYTE5_RTTPACKET_Msk (0x40)
463 #define TXRXPACK_BYTE5_SQTEPACKET_Msk (0x80)
464 #endif /* defined(STM32WB05) || defined(STM32WB09) */
465
466 #define TXRXPACK_BYTE14_TIMER2_19_16_Msk (0x0F)
467 #define TXRXPACK_BYTE14_TIMER2EN_Msk (0x10)
468 #define TXRXPACK_BYTE14_TRIGRCV_Msk (0x40)
469 #define TXRXPACK_BYTE14_TRIGDONE_Msk (0x80)
470
471 #define TXRXPACK_BYTE15_INTTXOK_Msk (0x01)
472 #define TXRXPACK_BYTE15_INTDONE_Msk (0x02)
473 #define TXRXPACK_BYTE15_INTRCVTIMEOUT_Msk (0x04)
474 #define TXRXPACK_BYTE15_INTRCVNOMD_Msk (0x08)
475 #define TXRXPACK_BYTE15_INTRCVCMD_Msk (0x10)
476 #define TXRXPACK_BYTE15_INTRCVTRIG_Msk (0x20)
477 #define TXRXPACK_BYTE15_INTRCVCRCERR_Msk (0x40)
478 #define TXRXPACK_BYTE15_INTRCVOK_Msk (0x80)
479 #define TXRXPACK_BYTE15_INT_EN_Msk (0xFF)
480
481 /**
482 * @}
483 */
484
485
486 #define MAX_LL_PACKET_LENGTH 255 /* Maximum Link Layer Packet Length (user_payload + MIC)*/
487 #define MAX_OUTPUT_RF_POWER 0x1F
488
489 #define HEADER_LENGTH 2
490 #define MAX_PACKET_LENGTH (MAX_LL_PACKET_LENGTH+HEADER_LENGTH)
491 #define MIC_FIELD_LENGTH 4
492 #define SUCCESS_0 0
493 #define INVALID_PARAMETER_C0 0xC0
494 #define RADIO_BUSY_C4 0xC4
495 #define NULL_0 0
496 #define BLUE_IDLE_0 0
497 #define TIMESTAMP_POSITION_ACCESSADDRESS 0x40
498 #define TIMESTAMP_POSITION_LASTBIT 0x80
499 #define BACK_TO_BACK_TIME 150 /* BLE IFS equal to 150 micro second */
500
501
502 /** @defgroup PHY PHY selection
503 * @{
504 */
505
506 #define PHY_1M 0x00
507 #define PHY_2M 0x01
508 #define PHY_CODED_S_8 0x04
509 #define PHY_CODED_S_2 0x06
510
511 /**
512 * @}
513 */
514
515
516 /** @defgroup ActionTag_BitMask ActionTag BitMask
517 * @{
518 */
519
520 /* This bit activates the radio frequency PLL calibration.
521 * 0: Radio frequency calibration disabled.
522 * 1: Radio frequency calibration enabled.
523 */
524 #define PLL_TRIG 0x01
525
526 /* This bit determines if the action is an RX action or a TX action.
527 * 1: TX
528 * 0: RX
529 */
530 #define TXRX 0x02
531
532 /* The bit determines if the action (RX or TX) is going to be executed based on the back-to-back time or based on the WakeupTime.
533 * 0: Based on the back-to-back time (default 150 us).
534 * 1: Based on the WakeupTime.
535 */
536 #define TIMER_WAKEUP 0x04
537
538 /* The bit determines if whitening is disabled or not.
539 *0: The whitening is enabled in the transmit block and in the receive block.
540 *1: The whitening is disabled in the transmit block and in the receive block.
541 */
542 #define WHITENING_DISABLE 0x10
543
544 /* It determines if the WakeupTime field of the ActionPacket is considered as absolute time or relative time to the current.
545 * 0: Absolute
546 * 1: Relative
547 */
548 #define RELATIVE 0x20
549
550 /* This bit sets where the position of time stamp is taken, the beginning of the packet or the end of it. RX only.
551 * 0: End of the Packet
552 * 1: Beginning of the packet
553 */
554 #define TIMESTAMP_POSITION 0x40
555
556 /* This bit activates automatic channel increment. The API HAL_RADIO_SetChannel sets the value of the increment.
557 * 0: No increment
558 * 1: Automatic increment
559 */
560 #define INC_CHAN 0x80
561
562
563 /**
564 * @}
565 */
566
567 /**
568 * @}
569 */
570
571 /** @defgroup RADIO_Exported_Types RADIO Exported Types
572 * @{
573 */
574
575 /**
576 * @brief Radio Global State Machine Word oriented description
577 */
578
579 typedef struct
580 {
581 volatile uint32_t WORD0;
582 volatile uint32_t WORD1;
583 volatile uint32_t WORD2;
584 volatile uint32_t WORD3;
585 volatile uint32_t WORD4;
586 volatile uint32_t WORD5;
587 volatile uint32_t WORD6;
588 } GLOBALSTATMACH_WORD_TypeDef;
589
590
591 /**
592 * @brief Radio Link State Machine Word oriented description
593 */
594 #if defined(STM32WB05) || defined(STM32WB09)
595 typedef struct
596 {
597 volatile uint32_t WORD0;
598 volatile uint32_t WORD1;
599 volatile uint32_t WORD2;
600 volatile uint32_t WORD3;
601 volatile uint32_t WORD4;
602 volatile uint32_t WORD5;
603 volatile uint32_t WORD6;
604 volatile uint32_t WORD7;
605 volatile uint32_t WORD8;
606 volatile uint32_t WORD9;
607 volatile uint32_t WORDA;
608 volatile uint32_t WORDB;
609 volatile uint32_t WORDC;
610 volatile uint32_t WORDD;
611 volatile uint32_t WORDE;
612 volatile uint32_t WORDF;
613 volatile uint32_t WORD10;
614 volatile uint32_t WORD11;
615 volatile uint32_t WORD12;
616 volatile uint32_t WORD13;
617 volatile uint32_t WORD14;
618 volatile uint32_t WORD15;
619 volatile uint32_t WORD16;
620 } STATMACH_WORD_TypeDef;
621 #endif /* defined(STM32WB05) || defined(STM32WB09) */
622 #if defined (STM32WB06) || defined (STM32WB07)
623 typedef struct
624 {
625 volatile uint32_t WORD0;
626 volatile uint32_t WORD1;
627 volatile uint32_t WORD2;
628 volatile uint32_t WORD3;
629 volatile uint32_t WORD4;
630 volatile uint32_t WORD5;
631 volatile uint32_t WORD6;
632 volatile uint32_t WORD7;
633 volatile uint32_t WORD8;
634 volatile uint32_t WORD9;
635 volatile uint32_t WORDA;
636 volatile uint32_t WORDB;
637 volatile uint32_t WORDC;
638 volatile uint32_t WORDD;
639 volatile uint32_t WORDE;
640 volatile uint32_t WORDF;
641 volatile uint32_t WORD10;
642 volatile uint32_t WORD11;
643 volatile uint32_t WORD12;
644 volatile uint32_t WORD13;
645 } STATMACH_WORD_TypeDef;
646 #endif /* defined (STM32WB06) || defined (STM32WB07) */
647
648
649 /**
650 * @brief Radio TxRxPack Word oriented description
651 */
652 #if defined(STM32WB05) || defined(STM32WB09)
653 typedef struct
654 {
655 volatile uint32_t WORD0;
656 volatile uint32_t WORD1;
657 volatile uint32_t WORD2;
658 volatile uint32_t WORD3;
659 } TXRXPACK_WORD_TypeDef;
660 #endif /* defined(STM32WB05) || defined(STM32WB09) */
661 #if defined (STM32WB06) || defined (STM32WB07)
662 typedef struct
663 {
664 volatile uint32_t WORD0;
665 volatile uint32_t WORD1;
666 volatile uint32_t WORD2;
667 volatile uint32_t WORD3;
668 volatile uint32_t WORD4;
669 } TXRXPACK_WORD_TypeDef;
670 #endif /* defined (STM32WB06) || defined (STM32WB07) */
671
672
673 #if defined(STM32WB05) || defined(STM32WB09)
674
675 /**
676 * @brief Radio Global State Machine description
677 */
678
679 typedef struct
680 {
681 volatile uint32_t RADIOCONFIGPTR;
682 volatile uint8_t BYTE4;
683 volatile uint8_t WAKEUPINITDELAY;
684 volatile uint8_t TIMER12INITDELAYCAL;
685 volatile uint8_t TIMER2INITDELAYNOCAL;
686 volatile uint8_t TRANSMITCALDELAYCHK;
687 volatile uint8_t TRANSMITNOCALDELAYCHK;
688 volatile uint8_t RECEIVECALDELAYCHK;
689 volatile uint8_t RECEIVENOCALDELAYCHK;
690 volatile uint8_t CONFIGENDDURATION;
691 volatile uint8_t TXDATAREADYCHECK;
692 volatile uint8_t TXDELAYSTART;
693 volatile uint8_t BYTE15;
694 volatile uint8_t TXREADYTIMEOUT;
695 volatile uint8_t RCVTIMEOUT[3];
696 volatile uint8_t BYTE20;
697 volatile uint8_t BYTE21;
698 volatile uint8_t BYTE22;
699 volatile uint8_t BYTE23;
700 volatile uint8_t DEFAULTANTENNAID;
701 volatile uint8_t RESERVED[3];
702 } GLOBALSTATMACH_TypeDef;
703
704 /**
705 * @brief Radio Link State Machine description
706 */
707
708 typedef struct
709 {
710 volatile uint8_t BYTE0;
711 volatile uint8_t BYTE1;
712 volatile uint8_t BYTE2;
713 volatile uint8_t BYTE3;
714 volatile uint32_t TXPOINT;
715 volatile uint32_t RCVPOINT;
716 volatile uint32_t TXPOINTPREV;
717 volatile uint32_t RCVPOINTPREV;
718 volatile uint32_t TXPOINTNEXT;
719 volatile uint8_t PCNTTX[5];
720 volatile uint8_t PCNTRCV[5];
721 volatile uint8_t BYTE34;
722 volatile uint8_t BYTE35;
723 volatile uint32_t ACCADDR;
724 volatile uint8_t CRCINIT[3];
725 volatile uint8_t MAXRECEIVEDLENGTH;
726 volatile uint8_t PAPOWER;
727 volatile uint8_t HOPINCR;
728 volatile uint8_t USEDCHANNELFLAGS[5];
729 volatile uint8_t RESERVED;
730 volatile uint16_t CONNEVENTCOUNTER;
731 volatile uint16_t PAEVENTCOUNTER;
732 volatile uint8_t ENCRYPTIV[8];
733 volatile uint8_t ENCRYPTK[16];
734 volatile uint8_t BYTE80;
735 volatile uint8_t MAXIQSAMPLESNUMBER;
736 volatile uint8_t ANTENNAPATTERNLENGTH;
737 volatile uint8_t SQTIME;
738 volatile uint32_t IQSAMPLESPTR;
739 volatile uint32_t ANTENNAPATTERNPTR;
740 } STATMACH_TypeDef;
741
742 /**
743 * @brief Radio TxRxPack description
744 */
745
746 typedef struct
747 {
748 volatile uint32_t NEXTPTR;
749 volatile uint8_t BYTE4;
750 volatile uint8_t BYTE5;
751 volatile uint16_t RESERVED;
752 volatile uint32_t DATAPTR;
753 volatile uint8_t TIMER2[2];
754 volatile uint8_t BYTE14;
755 volatile uint8_t BYTE15;
756 } TXRXPACK_TypeDef;
757
758 #endif /* defined(STM32WB05) || defined(STM32WB09) */
759
760 #if defined (STM32WB06) || defined (STM32WB07)
761 /**
762 * @brief Radio Global State Machine description
763 */
764
765 typedef struct
766 {
767 volatile uint32_t RADIOCONFIGPTR;
768 volatile uint8_t BYTE4;
769 volatile uint8_t WAKEUPINITDELAY;
770 volatile uint8_t TIMER12INITDELAYCAL;
771 volatile uint8_t TIMER2INITDELAYNOCAL;
772 volatile uint8_t TRANSMITCALDELAYCHK;
773 volatile uint8_t TRANSMITNOCALDELAYCHK;
774 volatile uint8_t RECEIVECALDELAYCHK;
775 volatile uint8_t RECEIVENOCALDELAYCHK;
776 volatile uint8_t CONFIGENDDURATION;
777 volatile uint8_t TXDATAREADYCHECK;
778 volatile uint8_t TXDELAYSTART;
779 volatile uint8_t BYTE15;
780 volatile uint8_t TXREADYTIMEOUT;
781 volatile uint8_t RCVTIMEOUT[3];
782 volatile uint8_t BYTE20;
783 volatile uint8_t BYTE21;
784 volatile uint8_t BYTE22;
785 volatile uint8_t BYTE23;
786 volatile uint32_t RESERVED;
787 } GLOBALSTATMACH_TypeDef;
788
789 /**
790 * @brief Radio Link State Machine description
791 */
792
793 typedef struct
794 {
795 volatile uint8_t BYTE0;
796 volatile uint8_t BYTE1;
797 volatile uint8_t BYTE2;
798 volatile uint8_t BYTE3;
799 volatile uint32_t TXPOINT;
800 volatile uint32_t RCVPOINT;
801 volatile uint32_t TXPOINTPREV;
802 volatile uint32_t RCVPOINTPREV;
803 volatile uint32_t TXPOINTNEXT;
804 volatile uint8_t PCNTTX[5];
805 volatile uint8_t PCNTRCV[5];
806 volatile uint8_t BYTE34;
807 volatile uint8_t BYTE35;
808 volatile uint32_t ACCADDR;
809 volatile uint8_t CRCINIT[3];
810 volatile uint8_t MAXRECEIVEDLENGTH;
811 volatile uint8_t PAPOWER;
812 volatile uint8_t HOPINCR;
813 volatile uint8_t USEDCHANNELFLAGS[5];
814 volatile uint8_t RESERVED;
815 volatile uint16_t CONNEVENTCOUNTER;
816 volatile uint16_t PAEVENTCOUNTER;
817 volatile uint8_t ENCRYPTIV[8];
818 volatile uint8_t ENCRYPTK[16];
819 } STATMACH_TypeDef;
820
821 /**
822 * @brief Radio TxRxPack description
823 */
824
825 typedef struct
826 {
827 volatile uint32_t NEXTPTR;
828 volatile uint8_t BYTE4;
829 volatile uint8_t BYTE5;
830 volatile uint16_t RESERVED;
831 volatile uint32_t DATAPTR;
832 volatile uint8_t TIMER2[2];
833 volatile uint8_t BYTE14;
834 volatile uint8_t BYTE15;
835 volatile uint32_t SUPPLEMENTPTR;
836 } TXRXPACK_TypeDef;
837 #endif /* defined (STM32WB06) || defined (STM32WB07) */
838
839
840 /**
841 * @}
842 */
843
844
845 /** @defgroup RADIO_Exported_Functions RADIO Exported Functions
846 * @{
847 */
848
849
850 /** @defgroup RADIO_LL_EF_Configuration Configuration functions
851 * @{
852 */
853
854
855 /**
856 * @brief Contains the address of the command_start_list used by the RRM block to execute UDRA command.
857 * @rmtoll WORD0 RADIOCONFIGPTR LL_RADIO_SetRadioConfigurationAddressPointer
858 * @param value
859 * @retval None
860 */
LL_RADIO_SetRadioConfigurationAddressPointer(uint32_t value)861 __STATIC_INLINE void LL_RADIO_SetRadioConfigurationAddressPointer(uint32_t value)
862 {
863 MODIFY_REG_FIELD(BLUEGLOBWORD->WORD0, GLOBAL_WORD0_RADIOCONFIGPTR, value);
864 }
865
866 /**
867 * @brief Contains the address of the command_start_list used by the RRM block to execute UDRA command.
868 * @rmtoll WORD0 RADIOCONFIGPTR LL_RADIO_GetRadioConfigurationAddressPointer
869 * @retval uint32_t
870 */
LL_RADIO_GetRadioConfigurationAddressPointer(void)871 __STATIC_INLINE uint32_t LL_RADIO_GetRadioConfigurationAddressPointer(void)
872 {
873 return (uint32_t)(READ_BIT(BLUEGLOBWORD->WORD0, GLOBAL_WORD0_RADIOCONFIGPTR) >> GLOBAL_WORD0_RADIOCONFIGPTR_Pos);
874 }
875
876 /**
877 * @brief Defines the state machine number (in the range from 0 to 127) which is running for the current transmission or reception
878 * @rmtoll WORD1 CURSTMACHNUM LL_RADIO_SetCurrentConnectionMachineNumber
879 * @param value
880 * @retval None
881 */
LL_RADIO_SetCurrentConnectionMachineNumber(uint32_t value)882 __STATIC_INLINE void LL_RADIO_SetCurrentConnectionMachineNumber(uint32_t value)
883 {
884 MODIFY_REG_FIELD(BLUEGLOBWORD->WORD1, GLOBAL_WORD1_CURSTMACHNUM, value);
885 }
886
887 /**
888 * @brief Defines the state machine number (in the range from 0 to 127) which is running for the current transmission or reception
889 * @rmtoll WORD1 CURSTMACHNUM LL_RADIO_GetCurrentConnectionMachineNumber
890 * @retval uint32_t
891 */
LL_RADIO_GetCurrentConnectionMachineNumber(void)892 __STATIC_INLINE uint32_t LL_RADIO_GetCurrentConnectionMachineNumber(void)
893 {
894 return (uint32_t)(READ_BIT(BLUEGLOBWORD->WORD1, GLOBAL_WORD1_CURSTMACHNUM) >> GLOBAL_WORD1_CURSTMACHNUM_Pos);
895 }
896
897
898 /**
899 * @brief RADIO Enable
900 * @rmtoll WORD1 ACTIVE LL_RADIO_GlobalEnableBlue
901 * @retval None
902 */
LL_RADIO_GlobalEnableBlue(void)903 __STATIC_INLINE void LL_RADIO_GlobalEnableBlue(void)
904 {
905 SET_BIT(BLUEGLOBWORD->WORD1, GLOBAL_WORD1_ACTIVE);
906 }
907
908 /**
909 * @brief RADIO Disable
910 * @rmtoll WORD1 ACTIVE LL_RADIO_GlobalDisableBlue
911 * @retval None
912 */
LL_RADIO_GlobalDisableBlue(void)913 __STATIC_INLINE void LL_RADIO_GlobalDisableBlue(void)
914 {
915 CLEAR_BIT(BLUEGLOBWORD->WORD1, GLOBAL_WORD1_ACTIVE);
916 }
917
918 /**
919 * @brief Indicate if ACTIVE is enabled
920 * @rmtoll WORD1 ACTIVE LL_RADIO_IsEnabledGlobalBlue
921 * @retval State of bit (1 or 0).
922 */
LL_RADIO_IsEnabledGlobalBlue(void)923 __STATIC_INLINE uint32_t LL_RADIO_IsEnabledGlobalBlue(void)
924 {
925 return ((READ_BIT(BLUEGLOBWORD->WORD1, GLOBAL_WORD1_ACTIVE) == (GLOBAL_WORD1_ACTIVE)) ? 1U : 0U);
926 }
927
928
929 /**
930 * @brief Delay between wakeup timer trig event on sequencer and RX/TX request sending to the Radio FSM. It corresponds to the sequencer 1st INIT step duration.
931 * @rmtoll WORD1 WAKEUPINITDELAY LL_RADIO_SetWakeupInitDelay
932 * @param value
933 * @retval None
934 */
LL_RADIO_SetWakeupInitDelay(uint32_t value)935 __STATIC_INLINE void LL_RADIO_SetWakeupInitDelay(uint32_t value)
936 {
937 MODIFY_REG_FIELD(BLUEGLOBWORD->WORD1, GLOBAL_WORD1_WAKEUPINITDELAY, value);
938 }
939
940 /**
941 * @brief Delay between wakeup timer trig event on sequencer and RX/TX request sending to the Radio FSM. It corresponds to the sequencer 1st INIT step duration.
942 * @rmtoll WORD1 WAKEUPINITDELAY LL_RADIO_GetWakeupInitDelay
943 * @retval uint32_t
944 */
LL_RADIO_GetWakeupInitDelay(void)945 __STATIC_INLINE uint32_t LL_RADIO_GetWakeupInitDelay(void)
946 {
947 return (uint32_t)(READ_BIT(BLUEGLOBWORD->WORD1, GLOBAL_WORD1_WAKEUPINITDELAY) >> GLOBAL_WORD1_WAKEUPINITDELAY_Pos);
948 }
949 /**
950 * @brief Delay between Timer1 or Timer2 trig event on sequencer and RX/TX request sending to the Radio FSM. It corresponds to the sequencer 1st INIT step duration.
951 * @rmtoll WORD1 TIMER12INITDELAYCAL LL_RADIO_SetTimer12InitDelayCal
952 * @param value
953 * @retval None
954 */
LL_RADIO_SetTimer12InitDelayCal(uint32_t value)955 __STATIC_INLINE void LL_RADIO_SetTimer12InitDelayCal(uint32_t value)
956 {
957 MODIFY_REG_FIELD(BLUEGLOBWORD->WORD1, GLOBAL_WORD1_TIMER12INITDELAYCAL, value);
958 }
959
960 /**
961 * @brief
962 * @note
963 * @rmtoll WORD1 TIMER12INITDELAYCAL LL_RADIO_GetTimer12InitDelayCal
964 * @retval uint32_t
965 */
LL_RADIO_GetTimer12InitDelayCal(void)966 __STATIC_INLINE uint32_t LL_RADIO_GetTimer12InitDelayCal(void)
967 {
968 return (uint32_t)(READ_BIT(BLUEGLOBWORD->WORD1,
969 GLOBAL_WORD1_TIMER12INITDELAYCAL) >> GLOBAL_WORD1_TIMER12INITDELAYCAL_Pos);
970 }
971
972
973 /**
974 * @brief Delay between Timer2 trig event on sequencer and RX/TX request sending to the Radio FSM. It corresponds to the sequencer 1st INIT step duration.
975 * @rmtoll WORD1 TIMER2INITDELAYNOCAL LL_RADIO_SetTimer12InitDelayNoCal
976 * @param value
977 * @retval None
978 */
LL_RADIO_SetTimer12InitDelayNoCal(uint32_t value)979 __STATIC_INLINE void LL_RADIO_SetTimer12InitDelayNoCal(uint32_t value)
980 {
981 MODIFY_REG_FIELD(BLUEGLOBWORD->WORD1, GLOBAL_WORD1_TIMER2INITDELAYNOCAL, value);
982 }
983
984 /**
985 * @brief Delay between Timer2 trig event on sequencer and RX/TX request sending to the Radio FSM. It corresponds to the sequencer 1st INIT step duration.
986 * @rmtoll WORD1 TIMER2INITDELAYNOCAL LL_RADIO_GetTimer12InitDelayNoCal
987 * @retval uint32_t
988 */
LL_RADIO_GetTimer12InitDelayNoCal(void)989 __STATIC_INLINE uint32_t LL_RADIO_GetTimer12InitDelayNoCal(void)
990 {
991 return (uint32_t)(READ_BIT(BLUEGLOBWORD->WORD1,
992 GLOBAL_WORD1_TIMER2INITDELAYNOCAL) >> GLOBAL_WORD1_TIMER2INITDELAYNOCAL_Pos);
993 }
994
995 /**
996 * @brief Delay between TX request sent to the Radio FSM and the start pulse sent to the transmit block. It corresponds to the sequencer 2nd INIT + DATA INIT steps duration.
997 * @rmtoll WORD2 TRANSMITCALDELAYCHK LL_RADIO_SetTransmitCalDelayChk
998 * @param value
999 * @retval None
1000 */
LL_RADIO_SetTransmitCalDelayChk(uint32_t value)1001 __STATIC_INLINE void LL_RADIO_SetTransmitCalDelayChk(uint32_t value)
1002 {
1003 MODIFY_REG_FIELD(BLUEGLOBWORD->WORD2, GLOBAL_WORD2_TRANSMITCALDELAYCHK, value);
1004 }
1005
1006 /**
1007 * @brief Delay between TX request sent to the Radio FSM and the start pulse sent to the transmit block. It corresponds to the sequencer 2nd INIT + DATA INIT steps duration.
1008 * @rmtoll WORD2 TRANSMITCALDELAYCHK LL_RADIO_GetTransmitCalDelayChk
1009 * @retval uint32_t
1010 */
LL_RADIO_GetTransmitCalDelayChk(void)1011 __STATIC_INLINE uint32_t LL_RADIO_GetTransmitCalDelayChk(void)
1012 {
1013 return (uint32_t)(READ_BIT(BLUEGLOBWORD->WORD2,
1014 GLOBAL_WORD2_TRANSMITCALDELAYCHK) >> GLOBAL_WORD2_TRANSMITCALDELAYCHK_Pos);
1015 }
1016
1017 /**
1018 * @brief
1019 * @rmtoll WORD2 TRANSMITNOCALDELAYCHK LL_RADIO_SetTransmitNoCalDelayChk
1020 * @param value
1021 * @retval None
1022 */
LL_RADIO_SetTransmitNoCalDelayChk(uint32_t value)1023 __STATIC_INLINE void LL_RADIO_SetTransmitNoCalDelayChk(uint32_t value)
1024 {
1025 MODIFY_REG_FIELD(BLUEGLOBWORD->WORD2, GLOBAL_WORD2_TRANSMITNOCALDELAYCHK, value);
1026 }
1027
1028 /**
1029 * @brief Delay between TX request sent to the Radio FSM and the start pulse to the transmit block. It corresponds to the sequencer 2nd INIT + DATA INIT steps duration.
1030 * @rmtoll WORD2 TRANSMITNOCALDELAYCHK LL_RADIO_GetTransmitNoCalDelayChk
1031 * @retval uint32_t
1032 */
LL_RADIO_GetTransmitNoCalDelayChk(void)1033 __STATIC_INLINE uint32_t LL_RADIO_GetTransmitNoCalDelayChk(void)
1034 {
1035 return (uint32_t)(READ_BIT(BLUEGLOBWORD->WORD2,
1036 GLOBAL_WORD2_TRANSMITNOCALDELAYCHK) >> GLOBAL_WORD2_TRANSMITNOCALDELAYCHK_Pos);
1037 }
1038
1039
1040 /**
1041 * @brief
1042 * @note
1043 * @rmtoll WORD2 RECEIVECALDELAYCHK LL_RADIO_SetReceivedCalDelayChk
1044 * @param value
1045 * @retval None
1046 */
LL_RADIO_SetReceivedCalDelayChk(uint32_t value)1047 __STATIC_INLINE void LL_RADIO_SetReceivedCalDelayChk(uint32_t value)
1048 {
1049 MODIFY_REG_FIELD(BLUEGLOBWORD->WORD2, GLOBAL_WORD2_RECEIVECALDELAYCHK, value);
1050 }
1051
1052 /**
1053 * @brief
1054 * @note
1055 * @rmtoll WORD2 RECEIVECALDELAYCHK LL_RADIO_GetReceivedCalDelayChk
1056 * @retval uint32_t
1057 */
LL_RADIO_GetReceivedCalDelayChk(void)1058 __STATIC_INLINE uint32_t LL_RADIO_GetReceivedCalDelayChk(void)
1059 {
1060 return (uint32_t)(READ_BIT(BLUEGLOBWORD->WORD2,
1061 GLOBAL_WORD2_RECEIVECALDELAYCHK) >> GLOBAL_WORD2_RECEIVECALDELAYCHK_Pos);
1062 }
1063 /**
1064 * @brief
1065 * @note
1066 * @rmtoll WORD2 RECEIVENOCALDELAYCHK LL_RADIO_SetReceivedNoCalDelayChk
1067 * @param value
1068 * @retval None
1069 */
LL_RADIO_SetReceivedNoCalDelayChk(uint32_t value)1070 __STATIC_INLINE void LL_RADIO_SetReceivedNoCalDelayChk(uint32_t value)
1071 {
1072 MODIFY_REG_FIELD(BLUEGLOBWORD->WORD2, GLOBAL_WORD2_RECEIVENOCALDELAYCHK, value);
1073 }
1074
1075 /**
1076 * @brief
1077 * @note
1078 * @rmtoll WORD2 RECEIVENOCALDELAYCHK LL_RADIO_GetReceivedNoCalDelayChk
1079 * @retval uint32_t
1080 */
LL_RADIO_GetReceivedNoCalDelayChk(void)1081 __STATIC_INLINE uint32_t LL_RADIO_GetReceivedNoCalDelayChk(void)
1082 {
1083 return (uint32_t)(READ_BIT(BLUEGLOBWORD->WORD2,
1084 GLOBAL_WORD2_RECEIVENOCALDELAYCHK) >> GLOBAL_WORD2_RECEIVENOCALDELAYCHK_Pos);
1085 }
1086
1087 /**
1088 * @brief
1089 * @note
1090 * @rmtoll WORD3 CONFIGENDDURATION LL_RADIO_SetConfigurationEndDuration
1091 * @param value
1092 * @retval None
1093 */
LL_RADIO_SetConfigurationEndDuration(uint32_t value)1094 __STATIC_INLINE void LL_RADIO_SetConfigurationEndDuration(uint32_t value)
1095 {
1096 MODIFY_REG_FIELD(BLUEGLOBWORD->WORD3, GLOBAL_WORD3_CONFIGENDDURATION, value);
1097 }
1098
1099 /**
1100 * @brief
1101 * @note
1102 * @rmtoll WORD3 CONFIGENDDURATION LL_RADIO_GetConfigurationEndDuration
1103 * @retval uint32_t
1104 */
LL_RADIO_GetConfigurationEndDuration(void)1105 __STATIC_INLINE uint32_t LL_RADIO_GetConfigurationEndDuration(void)
1106 {
1107 return (uint32_t)(READ_BIT(BLUEGLOBWORD->WORD3, GLOBAL_WORD3_CONFIGENDDURATION) >> GLOBAL_WORD3_CONFIGENDDURATION_Pos);
1108 }
1109
1110
1111 /**
1112 * @brief
1113 * @note
1114 * @rmtoll WORD3 TXDATAREADYCHECK LL_RADIO_SetTxDataReadyCheck
1115 * @param value
1116 * @retval None
1117 */
LL_RADIO_SetTxDataReadyCheck(uint32_t value)1118 __STATIC_INLINE void LL_RADIO_SetTxDataReadyCheck(uint32_t value)
1119 {
1120 MODIFY_REG_FIELD(BLUEGLOBWORD->WORD3, GLOBAL_WORD3_TXDATAREADYCHECK, value);
1121 }
1122
1123 /**
1124 * @brief
1125 * @note
1126 * @rmtoll WORD3 TXDATAREADYCHECK LL_RADIO_GetTxDataReadyCheck
1127 * @retval uint32_t
1128 */
LL_RADIO_GetTxDataReadyCheck(void)1129 __STATIC_INLINE uint32_t LL_RADIO_GetTxDataReadyCheck(void)
1130 {
1131 return (uint32_t)(READ_BIT(BLUEGLOBWORD->WORD3, GLOBAL_WORD3_TXDATAREADYCHECK) >> GLOBAL_WORD3_TXDATAREADYCHECK_Pos);
1132 }
1133
1134 /**
1135 * @brief
1136 * @note
1137 * @rmtoll WORD3 TXDELAYSTART LL_RADIO_SetTxDelayStart
1138 * @param value
1139 * @retval None
1140 */
LL_RADIO_SetTxDelayStart(uint32_t value)1141 __STATIC_INLINE void LL_RADIO_SetTxDelayStart(uint32_t value)
1142 {
1143 MODIFY_REG_FIELD(BLUEGLOBWORD->WORD3, GLOBAL_WORD3_TXDELAYSTART, value);
1144 }
1145
1146 /**
1147 * @brief
1148 * @note
1149 * @rmtoll WORD3 TXDELAYSTART LL_RADIO_GetTxDelayStart
1150 * @retval uint32_t
1151 */
LL_RADIO_GetTxDelayStart(void)1152 __STATIC_INLINE uint32_t LL_RADIO_GetTxDelayStart(void)
1153 {
1154 return (uint32_t)(READ_BIT(BLUEGLOBWORD->WORD3, GLOBAL_WORD3_TXDELAYSTART) >> GLOBAL_WORD3_TXDELAYSTART_Pos);
1155 }
1156
1157 /**
1158 * @brief
1159 * @note
1160 * @rmtoll WORD3 TXDELAYEND LL_RADIO_SetTxDelayEnd
1161 * @param value
1162 * @retval None
1163 */
LL_RADIO_SetTxDelayEnd(uint32_t value)1164 __STATIC_INLINE void LL_RADIO_SetTxDelayEnd(uint32_t value)
1165 {
1166 MODIFY_REG_FIELD(BLUEGLOBWORD->WORD3, GLOBAL_WORD3_TXDELAYEND, value);
1167 }
1168
1169 /**
1170 * @brief
1171 * @note
1172 * @rmtoll WORD3 TXDELAYEND LL_RADIO_GetTxDelayEnd
1173 * @retval uint32_t
1174 */
LL_RADIO_GetTxDelayEnd(void)1175 __STATIC_INLINE uint32_t LL_RADIO_GetTxDelayEnd(void)
1176 {
1177 return (uint32_t)(READ_BIT(BLUEGLOBWORD->WORD3, GLOBAL_WORD3_TXDELAYEND) >> GLOBAL_WORD3_TXDELAYEND_Pos);
1178 }
1179
1180
1181 /**
1182 * @brief
1183 * @note
1184 * @rmtoll WORD3 TIMECAPTURESEL LL_RADIO_SetTimeCaptureSel
1185 * @param value
1186 * @retval None
1187 */
LL_RADIO_SetTimeCaptureSel(uint32_t value)1188 __STATIC_INLINE void LL_RADIO_SetTimeCaptureSel(uint32_t value)
1189 {
1190 MODIFY_REG_FIELD(BLUEGLOBWORD->WORD3, GLOBAL_WORD3_TIMECAPTURESEL, value);
1191 }
1192
1193 /**
1194 * @brief
1195 * @note
1196 * @rmtoll WORD3 TIMECAPTURESEL LL_RADIO_GetTimeCaptureSel
1197 * @retval uint32_t
1198 */
LL_RADIO_GetTimeCaptureSel(void)1199 __STATIC_INLINE uint32_t LL_RADIO_GetTimeCaptureSel(void)
1200 {
1201 return (uint32_t)(READ_BIT(BLUEGLOBWORD->WORD3, GLOBAL_WORD3_TIMECAPTURESEL) >> GLOBAL_WORD3_TIMECAPTURESEL_Pos);
1202 }
1203
1204
1205 /**
1206 * @brief
1207 * @note
1208 * @rmtoll WORD3 TIMECAPTURE LL_RADIO_SetTimeCapture
1209 * @param value
1210 * @retval None
1211 */
LL_RADIO_SetTimeCapture(uint32_t value)1212 __STATIC_INLINE void LL_RADIO_SetTimeCapture(uint32_t value)
1213 {
1214 MODIFY_REG_FIELD(BLUEGLOBWORD->WORD3, GLOBAL_WORD3_TIMECAPTURE, value);
1215 }
1216
1217 /**
1218 * @brief
1219 * @note
1220 * @rmtoll WORD3 TIMECAPTURE LL_RADIO_GetTimeCapture
1221 * @retval uint32_t
1222 */
LL_RADIO_GetTimeCapture(void)1223 __STATIC_INLINE uint32_t LL_RADIO_GetTimeCapture(void)
1224 {
1225 return (uint32_t)(READ_BIT(BLUEGLOBWORD->WORD3, GLOBAL_WORD3_TIMECAPTURE) >> GLOBAL_WORD3_TIMECAPTURE_Pos);
1226 }
1227
1228 /**
1229 * @brief
1230 * @note
1231 * @rmtoll WORD4 TXREADYTIMEOUT LL_RADIO_SetTransmissionReadyTimeout
1232 * @param value
1233 * @retval None
1234 */
LL_RADIO_SetTransmissionReadyTimeout(uint32_t value)1235 __STATIC_INLINE void LL_RADIO_SetTransmissionReadyTimeout(uint32_t value)
1236 {
1237 MODIFY_REG_FIELD(BLUEGLOBWORD->WORD4, GLOBAL_WORD4_TXREADYTIMEOUT, value);
1238 }
1239
1240 /**
1241 * @brief
1242 * @note
1243 * @rmtoll WORD4 TXREADYTIMEOUT LL_RADIO_GetTransmissionReadyTimeout
1244 * @retval uint32_t
1245 */
LL_RADIO_GetTransmissionReadyTimeout(void)1246 __STATIC_INLINE uint32_t LL_RADIO_GetTransmissionReadyTimeout(void)
1247 {
1248 return (uint32_t)(READ_BIT(BLUEGLOBWORD->WORD4, GLOBAL_WORD4_TXREADYTIMEOUT) >> GLOBAL_WORD4_TXREADYTIMEOUT_Pos);
1249 }
1250
1251
1252 /**
1253 * @brief
1254 * @note
1255 * @rmtoll WORD4 RCVTIMEOUT LL_RADIO_SetReceiveWindowTimeout
1256 * @param value
1257 * @retval None
1258 */
LL_RADIO_SetReceiveWindowTimeout(uint32_t value)1259 __STATIC_INLINE void LL_RADIO_SetReceiveWindowTimeout(uint32_t value)
1260 {
1261 MODIFY_REG_FIELD(BLUEGLOBWORD->WORD4, GLOBAL_WORD4_RCVTIMEOUT, value);
1262 }
1263
1264 /**
1265 * @brief
1266 * @note
1267 * @rmtoll WORD4 RCVTIMEOUT LL_RADIO_GetReceiveWindowTimeout
1268 * @retval uint32_t
1269 */
LL_RADIO_GetReceiveWindowTimeout(void)1270 __STATIC_INLINE uint32_t LL_RADIO_GetReceiveWindowTimeout(void)
1271 {
1272 return (uint32_t)(READ_BIT(BLUEGLOBWORD->WORD4, GLOBAL_WORD4_RCVTIMEOUT) >> GLOBAL_WORD4_RCVTIMEOUT_Pos);
1273 }
1274
1275
1276 /**
1277 * @brief RADIO Enable
1278 * @rmtoll WORD5 CHKFLAGAUTOCLEARENA LL_RADIO_ChkFlagAutoclearEnable_Enable
1279 * @retval uint32_t
1280 */
LL_RADIO_ChkFlagAutoclearEnable_Enable(void)1281 __STATIC_INLINE void LL_RADIO_ChkFlagAutoclearEnable_Enable(void)
1282 {
1283 SET_BIT(BLUEGLOBWORD->WORD5, GLOBAL_WORD5_CHKFLAGAUTOCLEARENA);
1284 }
1285
1286 /**
1287 * @brief RADIO Disable
1288 * @rmtoll WORD5 CHKFLAGAUTOCLEARENA LL_RADIO_ChkFlagAutoclearEnable_Disable
1289 * @retval uint32_t
1290 */
LL_RADIO_ChkFlagAutoclearEnable_Disable(void)1291 __STATIC_INLINE void LL_RADIO_ChkFlagAutoclearEnable_Disable(void)
1292 {
1293 CLEAR_BIT(BLUEGLOBWORD->WORD5, GLOBAL_WORD5_CHKFLAGAUTOCLEARENA);
1294 }
1295
1296 /**
1297 * @brief Indicate if CHKFLAGAUTOCLEARENA is enabled
1298 * @rmtoll WORD5 CHKFLAGAUTOCLEARENA LL_RADIO_ChkFlagAutoclearEnable_IsEnabled
1299 * @retval State of bit (1 or 0).
1300 */
LL_RADIO_ChkFlagAutoclearEnable_IsEnabled(void)1301 __STATIC_INLINE uint32_t LL_RADIO_ChkFlagAutoclearEnable_IsEnabled(void)
1302 {
1303 return ((READ_BIT(BLUEGLOBWORD->WORD5, GLOBAL_WORD5_CHKFLAGAUTOCLEARENA) == (GLOBAL_WORD5_CHKFLAGAUTOCLEARENA)) ? 1U : 0U);
1304 }
1305
1306
1307 /**
1308 * @brief Indicate if INTNOACTIVELERROR is enabled
1309 * @rmtoll WORD5 INTNOACTIVELERROR LL_RADIO_NoActiveLErrorInterrupt_Enable
1310 * @retval State of bit (1 or 0).
1311 */
LL_RADIO_NoActiveLErrorInterrupt_Enable(void)1312 __STATIC_INLINE void LL_RADIO_NoActiveLErrorInterrupt_Enable(void)
1313 {
1314 SET_BIT(BLUEGLOBWORD->WORD5, GLOBAL_WORD5_INTNOACTIVELERROR);
1315 }
1316
1317 /**
1318 * @brief Indicate if INTNOACTIVELERROR is enabled
1319 * @rmtoll WORD5 INTNOACTIVELERROR LL_RADIO_NoActiveLErrorInterrupt_Disable
1320 * @retval State of bit (1 or 0).
1321 */
LL_RADIO_NoActiveLErrorInterrupt_Disable(void)1322 __STATIC_INLINE void LL_RADIO_NoActiveLErrorInterrupt_Disable(void)
1323 {
1324 CLEAR_BIT(BLUEGLOBWORD->WORD5, GLOBAL_WORD5_INTNOACTIVELERROR);
1325 }
1326
1327 /**
1328 * @brief Indicate if INTNOACTIVELERROR is enabled
1329 * @rmtoll WORD5 INTNOACTIVELERROR LL_RADIO_NoActiveLErrorInterrupt_IsEnabled
1330 * @retval State of bit (1 or 0).
1331 */
LL_RADIO_NoActiveLErrorInterrupt_IsEnabled(void)1332 __STATIC_INLINE uint32_t LL_RADIO_NoActiveLErrorInterrupt_IsEnabled(void)
1333 {
1334 return ((READ_BIT(BLUEGLOBWORD->WORD5, GLOBAL_WORD5_INTNOACTIVELERROR) == (GLOBAL_WORD5_INTNOACTIVELERROR)) ? 1U : 0U);
1335 }
1336
1337 /**
1338 * @brief RADIO Enable
1339 * @rmtoll WORD5 INTTXRXSKIP LL_RADIO_TxRxSkipInterrupt_Enable
1340 * @retval None
1341 */
LL_RADIO_TxRxSkipInterrupt_Enable(void)1342 __STATIC_INLINE void LL_RADIO_TxRxSkipInterrupt_Enable(void)
1343 {
1344 SET_BIT(BLUEGLOBWORD->WORD5, GLOBAL_WORD5_INTTXRXSKIP);
1345 }
1346
1347 /**
1348 * @brief RADIO Disable
1349 * @rmtoll WORD5 INTTXRXSKIP LL_RADIO_TxRxSkipInterrupt_Disable
1350 * @retval None
1351 */
LL_RADIO_TxRxSkipInterrupt_Disable(void)1352 __STATIC_INLINE void LL_RADIO_TxRxSkipInterrupt_Disable(void)
1353 {
1354 CLEAR_BIT(BLUEGLOBWORD->WORD5, GLOBAL_WORD5_INTTXRXSKIP);
1355 }
1356
1357 /**
1358 * @brief Indicate if INTTXRXSKIP is enabled
1359 * @rmtoll WORD5 INTTXRXSKIP LL_RADIO_TxRxSkipInterrupt_IsEnabled
1360 * @retval State of bit (1 or 0).
1361 */
LL_RADIO_TxRxSkipInterrupt_IsEnabled(void)1362 __STATIC_INLINE uint32_t LL_RADIO_TxRxSkipInterrupt_IsEnabled(void)
1363 {
1364 return ((READ_BIT(BLUEGLOBWORD->WORD5, GLOBAL_WORD5_INTTXRXSKIP) == (GLOBAL_WORD5_INTTXRXSKIP)) ? 1U : 0U);
1365 }
1366
1367 /**
1368 * @brief RADIO Enable
1369 * @rmtoll WORD5 INTACTIVE2ERR LL_RADIO_Active2ErrorInterrupt_Enable
1370 * @retval None
1371 */
LL_RADIO_Active2ErrorInterrupt_Enable(void)1372 __STATIC_INLINE void LL_RADIO_Active2ErrorInterrupt_Enable(void)
1373 {
1374 SET_BIT(BLUEGLOBWORD->WORD5, GLOBAL_WORD5_INTACTIVE2ERR);
1375 }
1376
1377 /**
1378 * @brief RADIO Disable
1379 * @rmtoll WORD5 INTACTIVE2ERR LL_RADIO_Active2ErrorInterrupt_Disable
1380 * @retval None
1381 */
LL_RADIO_Active2ErrorInterrupt_Disable(void)1382 __STATIC_INLINE void LL_RADIO_Active2ErrorInterrupt_Disable(void)
1383 {
1384 CLEAR_BIT(BLUEGLOBWORD->WORD5, GLOBAL_WORD5_INTACTIVE2ERR);
1385 }
1386
1387 /**
1388 * @brief Indicate if INTACTIVE2ERR is enabled
1389 * @rmtoll WORD5 INTACTIVE2ERR LL_RADIO_Active2ErrorInterrupt_IsEnabled
1390 * @retval State of bit (1 or 0).
1391 */
LL_RADIO_Active2ErrorInterrupt_IsEnabled(void)1392 __STATIC_INLINE uint32_t LL_RADIO_Active2ErrorInterrupt_IsEnabled(void)
1393 {
1394 return ((READ_BIT(BLUEGLOBWORD->WORD5, GLOBAL_WORD5_INTACTIVE2ERR) == (GLOBAL_WORD5_INTACTIVE2ERR)) ? 1U : 0U);
1395 }
1396
1397 #ifdef GLOBAL_WORD6_DEFAULTANTENNAID_Msk
1398 /**
1399 * @brief
1400 * @note
1401 * @rmtoll WORD6 DEFAULTANTENNAID LL_RADIO_SetDefaultAntennaID
1402 * @param value
1403 * @retval None
1404 */
LL_RADIO_SetDefaultAntennaID(uint32_t value)1405 __STATIC_INLINE void LL_RADIO_SetDefaultAntennaID(uint32_t value)
1406 {
1407 MODIFY_REG_FIELD(BLUEGLOBWORD->WORD6, GLOBAL_WORD6_DEFAULTANTENNAID, value);
1408 }
1409
1410 /**
1411 * @brief
1412 * @note
1413 * @rmtoll WORD6 DEFAULTANTENNAID LL_RADIO_GetDefaultAntennaID
1414 * @retval uint32_t
1415 */
LL_RADIO_GetDefaultAntennaID(void)1416 __STATIC_INLINE uint32_t LL_RADIO_GetDefaultAntennaID(void)
1417 {
1418 return (uint32_t)(READ_BIT(BLUEGLOBWORD->WORD6, GLOBAL_WORD6_DEFAULTANTENNAID) >> GLOBAL_WORD6_DEFAULTANTENNAID_Pos);
1419 }
1420 #endif /* GLOBAL_WORD6_DEFAULTANTENNAID_Msk */
1421
1422
1423 /**
1424 * @brief
1425 * @note
1426 * @rmtoll WORD0 UCHAN LL_RADIO_SetUnmappedChannel
1427 * @param stateMachineNo
1428 * @param value
1429 * @retval None
1430 */
LL_RADIO_SetUnmappedChannel(uint8_t stateMachineNo,uint32_t value)1431 __STATIC_INLINE void LL_RADIO_SetUnmappedChannel(uint8_t stateMachineNo, uint32_t value)
1432 {
1433 MODIFY_REG_FIELD((BLUEDATAWORD + stateMachineNo)->WORD0, STATEMACH_WORD0_UCHAN, value);
1434 }
1435
1436 /**
1437 * @brief
1438 * @note
1439 * @rmtoll WORD0 UCHAN LL_RADIO_GetUnmappedChannel
1440 * @param stateMachineNo
1441 * @retval uint32_t
1442 */
LL_RADIO_GetUnmappedChannel(uint8_t stateMachineNo)1443 __STATIC_INLINE uint32_t LL_RADIO_GetUnmappedChannel(uint8_t stateMachineNo)
1444 {
1445 return (uint32_t)(READ_BIT((BLUEDATAWORD + stateMachineNo)->WORD0, STATEMACH_WORD0_UCHAN) >> STATEMACH_WORD0_UCHAN_Pos);
1446 }
1447
1448 /**
1449 * @brief RADIO Enable
1450 * @rmtoll WORD0 RADIOCOMLISTENA LL_RADIO_RadioCommandList_Enable
1451 * @param stateMachineNo
1452 * @retval None
1453 */
LL_RADIO_RadioCommandList_Enable(uint8_t stateMachineNo)1454 __STATIC_INLINE void LL_RADIO_RadioCommandList_Enable(uint8_t stateMachineNo)
1455 {
1456 SET_BIT((BLUEDATAWORD + stateMachineNo)->WORD0, STATEMACH_WORD0_RADIOCOMLISTENA);
1457 }
1458
1459 /**
1460 * @brief RADIO Disable
1461 * @rmtoll WORD0 RADIOCOMLISTENA LL_RADIO_RadioCommandList_Disable
1462 * @param stateMachineNo
1463 * @retval None
1464 */
LL_RADIO_RadioCommandList_Disable(uint8_t stateMachineNo)1465 __STATIC_INLINE void LL_RADIO_RadioCommandList_Disable(uint8_t stateMachineNo)
1466 {
1467 CLEAR_BIT((BLUEDATAWORD + stateMachineNo)->WORD0, STATEMACH_WORD0_RADIOCOMLISTENA);
1468 }
1469
1470 /**
1471 * @brief Indicate if RADIOCOMLISTENA is enabled
1472 * @rmtoll WORD0 RADIOCOMLISTENA LL_RADIO_RadioCommandList_IsEnabled
1473 * @param stateMachineNo
1474 * @retval State of bit (1 or 0).
1475 */
LL_RADIO_RadioCommandList_IsEnabled(uint8_t stateMachineNo)1476 __STATIC_INLINE uint32_t LL_RADIO_RadioCommandList_IsEnabled(uint8_t stateMachineNo)
1477 {
1478 return ((READ_BIT((BLUEDATAWORD + stateMachineNo)->WORD0, STATEMACH_WORD0_RADIOCOMLISTENA) == (STATEMACH_WORD0_RADIOCOMLISTENA)) ? 1U : 0U);
1479 }
1480
1481 /**
1482 * @brief RADIO Enable
1483 * @rmtoll WORD0 TXMODE LL_RADIO_TxMode_Enable
1484 * @param stateMachineNo
1485 * @retval None
1486 */
LL_RADIO_TxMode_Enable(uint8_t stateMachineNo)1487 __STATIC_INLINE void LL_RADIO_TxMode_Enable(uint8_t stateMachineNo)
1488 {
1489 SET_BIT((BLUEDATAWORD + stateMachineNo)->WORD0, STATEMACH_WORD0_TXMODE);
1490 }
1491
1492 /**
1493 * @brief RADIO Disable
1494 * @rmtoll WORD0 TXMODE LL_RADIO_TxMode_Disable
1495 * @param stateMachineNo
1496 * @retval None
1497 */
LL_RADIO_TxMode_Disable(uint8_t stateMachineNo)1498 __STATIC_INLINE void LL_RADIO_TxMode_Disable(uint8_t stateMachineNo)
1499 {
1500 CLEAR_BIT((BLUEDATAWORD + stateMachineNo)->WORD0, STATEMACH_WORD0_TXMODE);
1501 }
1502
1503 /**
1504 * @brief Indicate if TXMODE is enabled
1505 * @rmtoll WORD0 TXMODE LL_RADIO_TxMode_IsEnabled
1506 * @param stateMachineNo
1507 * @retval State of bit (1 or 0).
1508 */
LL_RADIO_TxMode_IsEnabled(uint8_t stateMachineNo)1509 __STATIC_INLINE uint32_t LL_RADIO_TxMode_IsEnabled(uint8_t stateMachineNo)
1510 {
1511 return ((READ_BIT((BLUEDATAWORD + stateMachineNo)->WORD0, STATEMACH_WORD0_TXMODE) == (STATEMACH_WORD0_TXMODE)) ? 1U : 0U);
1512 }
1513
1514 /**
1515 * @brief
1516 * @note
1517 * @rmtoll WORD0 REMAP_CHAN LL_RADIO_SetRemapChannel
1518 * @param stateMachineNo
1519 * @param value
1520 * @retval None
1521 */
LL_RADIO_SetRemapChannel(uint8_t stateMachineNo,uint32_t value)1522 __STATIC_INLINE void LL_RADIO_SetRemapChannel(uint8_t stateMachineNo, uint32_t value)
1523 {
1524 MODIFY_REG_FIELD((BLUEDATAWORD + stateMachineNo)->WORD0, STATEMACH_WORD0_REMAP_CHAN, value);
1525 }
1526
1527 /**
1528 * @brief
1529 * @note
1530 * @rmtoll WORD0 REMAP_CHAN LL_RADIO_GetRemapChannel
1531 * @param stateMachineNo
1532 * @retval uint32_t
1533 */
LL_RADIO_GetRemapChannel(uint8_t stateMachineNo)1534 __STATIC_INLINE uint32_t LL_RADIO_GetRemapChannel(uint8_t stateMachineNo)
1535 {
1536 return (uint32_t)(READ_BIT((BLUEDATAWORD + stateMachineNo)->WORD0,
1537 STATEMACH_WORD0_REMAP_CHAN) >> STATEMACH_WORD0_REMAP_CHAN_Pos);
1538 }
1539
1540
1541 /**
1542 * @brief
1543 * @note
1544 * @rmtoll WORD0 SN LL_RADIO_SetSequenceNumber
1545 * @param stateMachineNo
1546 * @param value
1547 * @retval None
1548 */
LL_RADIO_SetSequenceNumber(uint8_t stateMachineNo,uint32_t value)1549 __STATIC_INLINE void LL_RADIO_SetSequenceNumber(uint8_t stateMachineNo, uint32_t value)
1550 {
1551 MODIFY_REG_FIELD((BLUEDATAWORD + stateMachineNo)->WORD0, STATEMACH_WORD0_SN, value);
1552 }
1553
1554 /**
1555 * @brief
1556 * @note
1557 * @rmtoll WORD0 SN LL_RADIO_GetSequenceNumber
1558 * @param stateMachineNo
1559 * @retval uint32_t
1560 */
LL_RADIO_GetSequenceNumber(uint8_t stateMachineNo)1561 __STATIC_INLINE uint32_t LL_RADIO_GetSequenceNumber(uint8_t stateMachineNo)
1562 {
1563 return (uint32_t)(READ_BIT((BLUEDATAWORD + stateMachineNo)->WORD0, STATEMACH_WORD0_SN) >> STATEMACH_WORD0_SN_Pos);
1564 }
1565
1566 /**
1567 * @brief
1568 * @note
1569 * @rmtoll WORD0 SN LL_RADIO_ToggleSequenceNumber
1570 * @param stateMachineNo
1571 * @retval None
1572 */
LL_RADIO_ToggleSequenceNumber(uint8_t stateMachineNo)1573 __STATIC_INLINE void LL_RADIO_ToggleSequenceNumber(uint8_t stateMachineNo)
1574 {
1575 TOGGLE_BIT((BLUEDATAWORD + stateMachineNo)->WORD0, STATEMACH_WORD0_SN);
1576 }
1577
1578 /**
1579 * @brief
1580 * @note
1581 * @rmtoll WORD0 NESN LL_RADIO_SetNextExpectedSequenceNumber
1582 * @param stateMachineNo
1583 * @param value
1584 * @retval None
1585 */
LL_RADIO_SetNextExpectedSequenceNumber(uint8_t stateMachineNo,uint32_t value)1586 __STATIC_INLINE void LL_RADIO_SetNextExpectedSequenceNumber(uint8_t stateMachineNo, uint32_t value)
1587 {
1588 MODIFY_REG_FIELD((BLUEDATAWORD + stateMachineNo)->WORD0, STATEMACH_WORD0_NESN, value);
1589 }
1590
1591 /**
1592 * @brief
1593 * @note
1594 * @rmtoll WORD0 NESN LL_RADIO_ToggleNextExpectedSequenceNumber
1595 * @param stateMachineNo
1596 * @retval None
1597 */
LL_RADIO_ToggleNextExpectedSequenceNumber(uint8_t stateMachineNo)1598 __STATIC_INLINE void LL_RADIO_ToggleNextExpectedSequenceNumber(uint8_t stateMachineNo)
1599 {
1600 TOGGLE_BIT((BLUEDATAWORD + stateMachineNo)->WORD0, STATEMACH_WORD0_NESN);
1601 }
1602
1603 /**
1604 * @brief
1605 * @note
1606 * @rmtoll WORD0 NESN LL_RADIO_GetNextExpectedSequenceNumber
1607 * @param stateMachineNo
1608 * @retval uint32_t
1609 */
LL_RADIO_GetNextExpectedSequenceNumber(uint8_t stateMachineNo)1610 __STATIC_INLINE uint32_t LL_RADIO_GetNextExpectedSequenceNumber(uint8_t stateMachineNo)
1611 {
1612 return (uint32_t)(READ_BIT((BLUEDATAWORD + stateMachineNo)->WORD0, STATEMACH_WORD0_NESN) >> STATEMACH_WORD0_NESN_Pos);
1613 }
1614
1615
1616 /**
1617 * @brief RADIO Enable
1618 * @rmtoll WORD0 ENCRYPTON LL_RADIO_Encryption_Enable
1619 * @param stateMachineNo
1620 * @retval None
1621 */
LL_RADIO_Encryption_Enable(uint8_t stateMachineNo)1622 __STATIC_INLINE void LL_RADIO_Encryption_Enable(uint8_t stateMachineNo)
1623 {
1624 SET_BIT((BLUEDATAWORD + stateMachineNo)->WORD0, STATEMACH_WORD0_ENCRYPTON);
1625 }
1626
1627 /**
1628 * @brief RADIO Disable
1629 * @rmtoll WORD0 ENCRYPTON LL_RADIO_Encryption_Disable
1630 * @param stateMachineNo
1631 * @retval None
1632 */
LL_RADIO_Encryption_Disable(uint8_t stateMachineNo)1633 __STATIC_INLINE void LL_RADIO_Encryption_Disable(uint8_t stateMachineNo)
1634 {
1635 CLEAR_BIT((BLUEDATAWORD + stateMachineNo)->WORD0, STATEMACH_WORD0_ENCRYPTON);
1636 }
1637
1638 /**
1639 * @brief Indicate if ENCRYPTON is enabled
1640 * @rmtoll WORD0 ENCRYPTON LL_RADIO_Encryption_IsEnabled
1641 * @param stateMachineNo
1642 * @retval State of bit (1 or 0).
1643 */
LL_RADIO_Encryption_IsEnabled(uint8_t stateMachineNo)1644 __STATIC_INLINE uint32_t LL_RADIO_Encryption_IsEnabled(uint8_t stateMachineNo)
1645 {
1646 return ((READ_BIT((BLUEDATAWORD + stateMachineNo)->WORD0, STATEMACH_WORD0_ENCRYPTON) == (STATEMACH_WORD0_ENCRYPTON)) ? 1U : 0U);
1647 }
1648
1649
1650 /**
1651 * @brief
1652 * @note
1653 * @rmtoll WORD0 TXPHY LL_RADIO_SetTransmissionPhy
1654 * @param stateMachineNo
1655 * @param value
1656 * @retval None
1657 */
LL_RADIO_SetTransmissionPhy(uint8_t stateMachineNo,uint32_t value)1658 __STATIC_INLINE void LL_RADIO_SetTransmissionPhy(uint8_t stateMachineNo, uint32_t value)
1659 {
1660 MODIFY_REG_FIELD((BLUEDATAWORD + stateMachineNo)->WORD0, STATEMACH_WORD0_TXPHY, value);
1661 }
1662
1663 /**
1664 * @brief
1665 * @note
1666 * @rmtoll WORD0 TXPHY LL_RADIO_GetTransmissionPhy
1667 * @param stateMachineNo
1668 * @retval uint32_t
1669 */
LL_RADIO_GetTransmissionPhy(uint8_t stateMachineNo)1670 __STATIC_INLINE uint32_t LL_RADIO_GetTransmissionPhy(uint8_t stateMachineNo)
1671 {
1672 return (uint32_t)(READ_BIT((BLUEDATAWORD + stateMachineNo)->WORD0, STATEMACH_WORD0_TXPHY) >> STATEMACH_WORD0_TXPHY_Pos);
1673 }
1674
1675 #ifdef STATEMACH_WORD0_CTEDISABLE
1676
1677 /**
1678 * @brief
1679 * @note
1680 * @rmtoll WORD0 CTEDISABLE LL_RADIO_SetCTEDisable
1681 * @param stateMachineNo
1682 * @param value
1683 * @retval None
1684 */
LL_RADIO_SetCTEDisable(uint8_t stateMachineNo,uint32_t value)1685 __STATIC_INLINE void LL_RADIO_SetCTEDisable(uint8_t stateMachineNo, uint32_t value)
1686 {
1687 MODIFY_REG_FIELD((BLUEDATAWORD + stateMachineNo)->WORD0, STATEMACH_WORD0_CTEDISABLE, value);
1688 }
1689
1690 /**
1691 * @brief
1692 * @note
1693 * @rmtoll WORD0 CTEDISABLE LL_RADIO_GetCTEDisable
1694 * @param stateMachineNo
1695 * @retval uint32_t
1696 */
LL_RADIO_GetCTEDisable(uint8_t stateMachineNo)1697 __STATIC_INLINE uint32_t LL_RADIO_GetCTEDisable(uint8_t stateMachineNo)
1698 {
1699 return (uint32_t)(READ_BIT((BLUEDATAWORD + stateMachineNo)->WORD0,
1700 STATEMACH_WORD0_CTEDISABLE) >> STATEMACH_WORD0_CTEDISABLE_Pos);
1701 }
1702
1703 #endif /* STATEMACH_WORD0_CTEDISABLE */
1704
1705 /**
1706 * @brief
1707 * @note
1708 * @rmtoll WORD0 RXPHY LL_RADIO_SetReceptionPhy
1709 * @param stateMachineNo
1710 * @param value
1711 * @retval None
1712 */
LL_RADIO_SetReceptionPhy(uint8_t stateMachineNo,uint32_t value)1713 __STATIC_INLINE void LL_RADIO_SetReceptionPhy(uint8_t stateMachineNo, uint32_t value)
1714 {
1715 MODIFY_REG_FIELD((BLUEDATAWORD + stateMachineNo)->WORD0, STATEMACH_WORD0_RXPHY, value);
1716 }
1717
1718 /**
1719 * @brief
1720 * @note
1721 * @rmtoll WORD0 RXPHY LL_RADIO_GetReceptionPhy
1722 * @param stateMachineNo
1723 * @retval uint32_t
1724 */
LL_RADIO_GetReceptionPhy(uint8_t stateMachineNo)1725 __STATIC_INLINE uint32_t LL_RADIO_GetReceptionPhy(uint8_t stateMachineNo)
1726 {
1727 return (uint32_t)(READ_BIT((BLUEDATAWORD + stateMachineNo)->WORD0, STATEMACH_WORD0_RXPHY) >> STATEMACH_WORD0_RXPHY_Pos);
1728 }
1729
1730 /**
1731 * @brief
1732 * @note
1733 * @rmtoll WORD1 TXPOINT LL_RADIO_SetTxPoint
1734 * @param stateMachineNo
1735 * @param value
1736 * @retval None
1737 */
LL_RADIO_SetTxPoint(uint8_t stateMachineNo,uint32_t value)1738 __STATIC_INLINE void LL_RADIO_SetTxPoint(uint8_t stateMachineNo, uint32_t value)
1739 {
1740 MODIFY_REG_FIELD((BLUEDATAWORD + stateMachineNo)->WORD1, STATEMACH_WORD1_TXPOINT, value);
1741 }
1742
1743 /**
1744 * @brief
1745 * @note
1746 * @rmtoll WORD1 TXPOINT LL_RADIO_GetTxPoint
1747 * @param stateMachineNo
1748 * @retval uint32_t
1749 */
LL_RADIO_GetTxPoint(uint8_t stateMachineNo)1750 __STATIC_INLINE uint32_t LL_RADIO_GetTxPoint(uint8_t stateMachineNo)
1751 {
1752 return (uint32_t)(READ_BIT((BLUEDATAWORD + stateMachineNo)->WORD1,
1753 STATEMACH_WORD1_TXPOINT) >> STATEMACH_WORD1_TXPOINT_Pos);
1754 }
1755
1756 /**
1757 * @brief
1758 * @note
1759 * @rmtoll WORD2 RCVPOINT LL_RADIO_SetRcvPoint
1760 * @param stateMachineNo
1761 * @param value
1762 * @retval None
1763 */
LL_RADIO_SetRcvPoint(uint8_t stateMachineNo,uint32_t value)1764 __STATIC_INLINE void LL_RADIO_SetRcvPoint(uint8_t stateMachineNo, uint32_t value)
1765 {
1766 MODIFY_REG_FIELD((BLUEDATAWORD + stateMachineNo)->WORD2, STATEMACH_WORD2_RCVPOINT, value);
1767 }
1768
1769 /**
1770 * @brief
1771 * @note
1772 * @rmtoll WORD2 RCVPOINT LL_RADIO_GetRcvPoint
1773 * @param stateMachineNo
1774 * @retval uint32_t
1775 */
LL_RADIO_GetRcvPoint(uint8_t stateMachineNo)1776 __STATIC_INLINE uint32_t LL_RADIO_GetRcvPoint(uint8_t stateMachineNo)
1777 {
1778 return (uint32_t)(READ_BIT((BLUEDATAWORD + stateMachineNo)->WORD2,
1779 STATEMACH_WORD2_RCVPOINT) >> STATEMACH_WORD2_RCVPOINT_Pos);
1780 }
1781
1782
1783 /**
1784 * @brief
1785 * @note
1786 * @rmtoll WORD3 TXPOINTPREV LL_RADIO_SetTxPointPrevious
1787 * @param stateMachineNo
1788 * @param value
1789 * @retval None
1790 */
LL_RADIO_SetTxPointPrevious(uint8_t stateMachineNo,uint32_t value)1791 __STATIC_INLINE void LL_RADIO_SetTxPointPrevious(uint8_t stateMachineNo, uint32_t value)
1792 {
1793 MODIFY_REG_FIELD((BLUEDATAWORD + stateMachineNo)->WORD3, STATEMACH_WORD3_TXPOINTPREV, value);
1794 }
1795
1796 /**
1797 * @brief
1798 * @note
1799 * @rmtoll WORD3 TXPOINTPREV LL_RADIO_GetTxPointPrevious
1800 * @param stateMachineNo
1801 * @retval uint32_t
1802 */
LL_RADIO_GetTxPointPrevious(uint8_t stateMachineNo)1803 __STATIC_INLINE uint32_t LL_RADIO_GetTxPointPrevious(uint8_t stateMachineNo)
1804 {
1805 return (uint32_t)(READ_BIT((BLUEDATAWORD + stateMachineNo)->WORD3,
1806 STATEMACH_WORD3_TXPOINTPREV) >> STATEMACH_WORD3_TXPOINTPREV_Pos);
1807 }
1808
1809 /**
1810 * @brief
1811 * @note
1812 * @rmtoll WORD4 RCVPOINTPREV LL_RADIO_SetRcvPointPrevious
1813 * @param stateMachineNo
1814 * @param value
1815 * @retval None
1816 */
LL_RADIO_SetRcvPointPrevious(uint8_t stateMachineNo,uint32_t value)1817 __STATIC_INLINE void LL_RADIO_SetRcvPointPrevious(uint8_t stateMachineNo, uint32_t value)
1818 {
1819 MODIFY_REG_FIELD((BLUEDATAWORD + stateMachineNo)->WORD4, STATEMACH_WORD4_RCVPOINTPREV, value);
1820 }
1821
1822 /**
1823 * @brief
1824 * @note
1825 * @rmtoll WORD4 RCVPOINTPREV LL_RADIO_GetRcvPointPrevious
1826 * @param stateMachineNo
1827 * @retval uint32_t
1828 */
LL_RADIO_GetRcvPointPrevious(uint8_t stateMachineNo)1829 __STATIC_INLINE uint32_t LL_RADIO_GetRcvPointPrevious(uint8_t stateMachineNo)
1830 {
1831 return (uint32_t)(READ_BIT((BLUEDATAWORD + stateMachineNo)->WORD4,
1832 STATEMACH_WORD4_RCVPOINTPREV) >> STATEMACH_WORD4_RCVPOINTPREV_Pos);
1833 }
1834 /**
1835 * @brief
1836 * @note
1837 * @rmtoll WORD6 PCNTTX_31_0 LL_RADIO_SetPacketCounterTx_31_0
1838 * @param stateMachineNo
1839 * @param value
1840 * @retval None
1841 */
LL_RADIO_SetPacketCounterTx_31_0(uint8_t stateMachineNo,uint32_t value)1842 __STATIC_INLINE void LL_RADIO_SetPacketCounterTx_31_0(uint8_t stateMachineNo, uint32_t value)
1843 {
1844 MODIFY_REG_FIELD((BLUEDATAWORD + stateMachineNo)->WORD6, STATEMACH_WORD6_PCNTTX_31_0, value);
1845 }
1846
1847 /**
1848 * @brief
1849 * @note
1850 * @rmtoll WORD6 PCNTTX_31_0 LL_RADIO_GetPacketCounterTx_31_0
1851 * @param stateMachineNo
1852 * @retval uint32_t
1853 */
LL_RADIO_GetPacketCounterTx_31_0(uint8_t stateMachineNo)1854 __STATIC_INLINE uint32_t LL_RADIO_GetPacketCounterTx_31_0(uint8_t stateMachineNo)
1855 {
1856 return (uint32_t)(READ_BIT((BLUEDATAWORD + stateMachineNo)->WORD6,
1857 STATEMACH_WORD6_PCNTTX_31_0) >> STATEMACH_WORD6_PCNTTX_31_0_Pos);
1858 }
1859
1860 /**
1861 * @brief
1862 * @note
1863 * @rmtoll WORD7 PCNTTX_39_32 LL_RADIO_SetPacketCounterTx_39_32
1864 * @param stateMachineNo
1865 * @param value
1866 * @retval None
1867 */
LL_RADIO_SetPacketCounterTx_39_32(uint8_t stateMachineNo,uint32_t value)1868 __STATIC_INLINE void LL_RADIO_SetPacketCounterTx_39_32(uint8_t stateMachineNo, uint32_t value)
1869 {
1870 MODIFY_REG_FIELD((BLUEDATAWORD + stateMachineNo)->WORD7, STATEMACH_WORD7_PCNTTX_39_32, value);
1871 }
1872
1873 /**
1874 * @brief
1875 * @note
1876 * @rmtoll WORD7 PCNTTX_39_32 LL_RADIO_GetPacketCounterTx_39_32
1877 * @param stateMachineNo
1878 * @retval uint32_t
1879 */
LL_RADIO_GetPacketCounterTx_39_32(uint8_t stateMachineNo)1880 __STATIC_INLINE uint32_t LL_RADIO_GetPacketCounterTx_39_32(uint8_t stateMachineNo)
1881 {
1882 return (uint32_t)(READ_BIT((BLUEDATAWORD + stateMachineNo)->WORD7,
1883 STATEMACH_WORD7_PCNTTX_39_32) >> STATEMACH_WORD7_PCNTTX_39_32_Pos);
1884 }
1885
1886
1887 /**
1888 * @brief
1889 * @note
1890 * @rmtoll WORD7 PCNTRCV_23_0 LL_RADIO_SetPacketCounterRx_23_0
1891 * @param stateMachineNo
1892 * @param value
1893 * @retval None
1894 */
LL_RADIO_SetPacketCounterRx_23_0(uint8_t stateMachineNo,uint32_t value)1895 __STATIC_INLINE void LL_RADIO_SetPacketCounterRx_23_0(uint8_t stateMachineNo, uint32_t value)
1896 {
1897 MODIFY_REG_FIELD((BLUEDATAWORD + stateMachineNo)->WORD7, STATEMACH_WORD7_PCNTRCV_23_0, value);
1898 }
1899
1900 /**
1901 * @brief
1902 * @note
1903 * @rmtoll WORD7 PCNTRCV_23_0 LL_RADIO_GetPacketCounterRx_23_0
1904 * @param stateMachineNo
1905 * @retval uint32_t
1906 */
LL_RADIO_GetPacketCounterRx_23_0(uint8_t stateMachineNo)1907 __STATIC_INLINE uint32_t LL_RADIO_GetPacketCounterRx_23_0(uint8_t stateMachineNo)
1908 {
1909 return (uint32_t)(READ_BIT((BLUEDATAWORD + stateMachineNo)->WORD7,
1910 STATEMACH_WORD7_PCNTRCV_23_0) >> STATEMACH_WORD7_PCNTRCV_23_0_Pos);
1911 }
1912
1913
1914 /**
1915 * @brief
1916 * @note
1917 * @rmtoll WORD8 PCNTRCV_39_24 LL_RADIO_SetPacketCounterRx_39_24
1918 * @param stateMachineNo
1919 * @param value
1920 * @retval None
1921 */
LL_RADIO_SetPacketCounterRx_39_24(uint8_t stateMachineNo,uint32_t value)1922 __STATIC_INLINE void LL_RADIO_SetPacketCounterRx_39_24(uint8_t stateMachineNo, uint32_t value)
1923 {
1924 MODIFY_REG_FIELD((BLUEDATAWORD + stateMachineNo)->WORD8, STATEMACH_WORD8_PCNTRCV_39_24, value);
1925 }
1926
1927 /**
1928 * @brief
1929 * @note
1930 * @rmtoll WORD8 PCNTRCV_39_24 LL_RADIO_GetPacketCounterRx_39_24
1931 * @param stateMachineNo
1932 * @retval uint32_t
1933 */
LL_RADIO_GetPacketCounterRx_39_24(uint8_t stateMachineNo)1934 __STATIC_INLINE uint32_t LL_RADIO_GetPacketCounterRx_39_24(uint8_t stateMachineNo)
1935 {
1936 return (uint32_t)(READ_BIT((BLUEDATAWORD + stateMachineNo)->WORD8,
1937 STATEMACH_WORD8_PCNTRCV_39_24) >> STATEMACH_WORD8_PCNTRCV_39_24_Pos);
1938 }
1939
1940 /**
1941 * @brief RADIO Enable
1942 * @rmtoll WORD8 INTENCERROR LL_RADIO_ReceiveEncryptionErrorInterrupt_Enable
1943 * @param stateMachineNo
1944 * @retval None
1945 */
LL_RADIO_ReceiveEncryptionErrorInterrupt_Enable(uint8_t stateMachineNo)1946 __STATIC_INLINE void LL_RADIO_ReceiveEncryptionErrorInterrupt_Enable(uint8_t stateMachineNo)
1947 {
1948 SET_BIT((BLUEDATAWORD + stateMachineNo)->WORD8, STATEMACH_WORD8_INTENCERROR);
1949 }
1950
1951 /**
1952 * @brief RADIO Disable
1953 * @rmtoll WORD8 INTENCERROR LL_RADIO_ReceiveEncryptionErrorInterrupt_Disable
1954 * @param stateMachineNo
1955 * @retval None
1956 */
LL_RADIO_ReceiveEncryptionErrorInterrupt_Disable(uint8_t stateMachineNo)1957 __STATIC_INLINE void LL_RADIO_ReceiveEncryptionErrorInterrupt_Disable(uint8_t stateMachineNo)
1958 {
1959 CLEAR_BIT((BLUEDATAWORD + stateMachineNo)->WORD8, STATEMACH_WORD8_INTENCERROR);
1960 }
1961
1962 /**
1963 * @brief
1964 * @note
1965 * @rmtoll WORD9 ACCADDR LL_RADIO_SetAccessAddress
1966 * @param stateMachineNo
1967 * @param value
1968 * @retval None
1969 */
LL_RADIO_SetAccessAddress(uint8_t stateMachineNo,uint32_t value)1970 __STATIC_INLINE void LL_RADIO_SetAccessAddress(uint8_t stateMachineNo, uint32_t value)
1971 {
1972 MODIFY_REG_FIELD((BLUEDATAWORD + stateMachineNo)->WORD9, STATEMACH_WORD9_ACCADDR, value);
1973 }
1974
1975 /**
1976 * @brief
1977 * @note
1978 * @rmtoll WORD9 ACCADDR LL_RADIO_GetAccessAddress
1979 * @param stateMachineNo
1980 * @retval uint32_t
1981 */
LL_RADIO_GetAccessAddress(uint8_t stateMachineNo)1982 __STATIC_INLINE uint32_t LL_RADIO_GetAccessAddress(uint8_t stateMachineNo)
1983 {
1984 return (uint32_t)(READ_BIT((BLUEDATAWORD + stateMachineNo)->WORD9,
1985 STATEMACH_WORD9_ACCADDR) >> STATEMACH_WORD9_ACCADDR_Pos);
1986 }
1987
1988
1989 /**
1990 * @brief
1991 * @note
1992 * @rmtoll WORDA CRCINIT LL_RADIO_SetCRCInitializationValue
1993 * @param stateMachineNo
1994 * @param value
1995 * @retval None
1996 */
LL_RADIO_SetCRCInitializationValue(uint8_t stateMachineNo,uint32_t value)1997 __STATIC_INLINE void LL_RADIO_SetCRCInitializationValue(uint8_t stateMachineNo, uint32_t value)
1998 {
1999 MODIFY_REG_FIELD((BLUEDATAWORD + stateMachineNo)->WORDA, STATEMACH_WORDA_CRCINIT, value);
2000 }
2001
2002 /**
2003 * @brief
2004 * @note
2005 * @rmtoll WORDA CRCINIT LL_RADIO_GetCRCInitializationValue
2006 * @param stateMachineNo
2007 * @retval uint32_t
2008 */
LL_RADIO_GetCRCInitializationValue(uint8_t stateMachineNo)2009 __STATIC_INLINE uint32_t LL_RADIO_GetCRCInitializationValue(uint8_t stateMachineNo)
2010 {
2011 return (uint32_t)(READ_BIT((BLUEDATAWORD + stateMachineNo)->WORDA,
2012 STATEMACH_WORDA_CRCINIT) >> STATEMACH_WORDA_CRCINIT_Pos);
2013 }
2014
2015
2016 /**
2017 * @brief
2018 * @note
2019 * @rmtoll WORDA MAXRECEIVEDLENGTH LL_RADIO_SetMaximumReceiveLength
2020 * @param stateMachineNo
2021 * @param value
2022 * @retval None
2023 */
LL_RADIO_SetMaximumReceiveLength(uint8_t stateMachineNo,uint32_t value)2024 __STATIC_INLINE void LL_RADIO_SetMaximumReceiveLength(uint8_t stateMachineNo, uint32_t value)
2025 {
2026 MODIFY_REG_FIELD((BLUEDATAWORD + stateMachineNo)->WORDA, STATEMACH_WORDA_MAXRECEIVEDLENGTH, value);
2027 }
2028
2029 /**
2030 * @brief
2031 * @note
2032 * @rmtoll WORDA MAXRECEIVEDLENGTH LL_RADIO_GetMaximumReceiveLength
2033 * @param stateMachineNo
2034 * @retval uint32_t
2035 */
LL_RADIO_GetMaximumReceiveLength(uint8_t stateMachineNo)2036 __STATIC_INLINE uint32_t LL_RADIO_GetMaximumReceiveLength(uint8_t stateMachineNo)
2037 {
2038 return (uint32_t)(READ_BIT((BLUEDATAWORD + stateMachineNo)->WORDA,
2039 STATEMACH_WORDA_MAXRECEIVEDLENGTH) >> STATEMACH_WORDA_MAXRECEIVEDLENGTH_Pos);
2040 }
2041
2042 #if defined(STM32WB09)
2043 /**
2044 * @brief Tx High Power enable
2045 * To have 8dBm transmission several setting are needed,
2046 * please refer reference manual, PaPower bit field section
2047 * @rmtoll WORDB TXHP LL_RADIO_TxHp_Enable
2048 * @param stateMachineNo
2049 * @retval
2050 */
LL_RADIO_TxHp_Enable(uint8_t stateMachineNo)2051 __STATIC_INLINE void LL_RADIO_TxHp_Enable(uint8_t stateMachineNo)
2052 {
2053 SET_BIT((BLUEDATAWORD + stateMachineNo)->WORDB, STATEMACH_WORDB_TXHP);
2054 }
2055
2056 /**
2057 * @brief Tx High Power disable
2058 * @rmtoll WORDB TXHP LL_RADIO_TxHp_Disable
2059 * @param stateMachineNo
2060 * @retval
2061 */
LL_RADIO_TxHp_Disable(uint8_t stateMachineNo)2062 __STATIC_INLINE void LL_RADIO_TxHp_Disable(uint8_t stateMachineNo)
2063 {
2064 CLEAR_BIT((BLUEDATAWORD + stateMachineNo)->WORDB, STATEMACH_WORDB_TXHP);
2065 }
2066
2067 /**
2068 * @brief Indicate if Tx High Power is enabled
2069 * @rmtoll WORDB TXHP LL_RADIO_TxHp_IsEnabled
2070 * @param stateMachineNo
2071 * @retval State of bit (1 or 0).
2072 */
LL_RADIO_TxHp_IsEnabled(uint8_t stateMachineNo)2073 __STATIC_INLINE uint32_t LL_RADIO_TxHp_IsEnabled(uint8_t stateMachineNo)
2074 {
2075 return ((READ_BIT((BLUEDATAWORD + stateMachineNo)->WORDB, STATEMACH_WORDB_TXHP) == (STATEMACH_WORDB_TXHP)) ? 1U : 0U);
2076 }
2077
2078 #endif /* defined(STM32WB09) */
2079
2080 /**
2081 * @brief
2082 * @note
2083 * @rmtoll WORDB PAPOWER LL_RADIO_SetPAPower
2084 * @param stateMachineNo
2085 * @param value
2086 * @retval None
2087 */
LL_RADIO_SetPAPower(uint8_t stateMachineNo,uint32_t value)2088 __STATIC_INLINE void LL_RADIO_SetPAPower(uint8_t stateMachineNo, uint32_t value)
2089 {
2090 MODIFY_REG_FIELD((BLUEDATAWORD + stateMachineNo)->WORDB, STATEMACH_WORDB_PAPOWER, value);
2091 }
2092
2093 /**
2094 * @brief
2095 * @note
2096 * @rmtoll WORDB PAPOWER LL_RADIO_GetPAPower
2097 * @param stateMachineNo
2098 * @retval uint32_t
2099 */
LL_RADIO_GetPAPower(uint8_t stateMachineNo)2100 __STATIC_INLINE uint32_t LL_RADIO_GetPAPower(uint8_t stateMachineNo)
2101 {
2102 return (uint32_t)(READ_BIT((BLUEDATAWORD + stateMachineNo)->WORDB,
2103 STATEMACH_WORDB_PAPOWER) >> STATEMACH_WORDB_PAPOWER_Pos);
2104 }
2105
2106
2107 /**
2108 * @brief
2109 * @note
2110 * @rmtoll WORDB HOPINCR LL_RADIO_SetHopIncrement
2111 * @param stateMachineNo
2112 * @param value
2113 * @retval None
2114 */
LL_RADIO_SetHopIncrement(uint8_t stateMachineNo,uint32_t value)2115 __STATIC_INLINE void LL_RADIO_SetHopIncrement(uint8_t stateMachineNo, uint32_t value)
2116 {
2117 MODIFY_REG_FIELD((BLUEDATAWORD + stateMachineNo)->WORDB, STATEMACH_WORDB_HOPINCR, value);
2118 }
2119
2120 /**
2121 * @brief
2122 * @note
2123 * @rmtoll WORDB HOPINCR LL_RADIO_GetHopIncrement
2124 * @param stateMachineNo
2125 * @retval uint32_t
2126 */
LL_RADIO_GetHopIncrement(uint8_t stateMachineNo)2127 __STATIC_INLINE uint32_t LL_RADIO_GetHopIncrement(uint8_t stateMachineNo)
2128 {
2129 return (uint32_t)(READ_BIT((BLUEDATAWORD + stateMachineNo)->WORDB,
2130 STATEMACH_WORDB_HOPINCR) >> STATEMACH_WORDB_HOPINCR_Pos);
2131 }
2132
2133
2134 /**
2135 * @brief
2136 * @note
2137 * @rmtoll WORDB USEDCHANNELFLAGS_15_0 LL_RADIO_SetUsedChannelFlags_15_0
2138 * @param stateMachineNo
2139 * @param value
2140 * @retval None
2141 */
LL_RADIO_SetUsedChannelFlags_15_0(uint8_t stateMachineNo,uint32_t value)2142 __STATIC_INLINE void LL_RADIO_SetUsedChannelFlags_15_0(uint8_t stateMachineNo, uint32_t value)
2143 {
2144 MODIFY_REG_FIELD((BLUEDATAWORD + stateMachineNo)->WORDB, STATEMACH_WORDB_USEDCHANNELFLAGS_15_0, value);
2145 }
2146
2147 /**
2148 * @brief
2149 * @note
2150 * @rmtoll WORDB USEDCHANNELFLAGS_15_0 LL_RADIO_GetUsedChannelFlags_15_0
2151 * @param stateMachineNo
2152 * @retval uint32_t
2153 */
LL_RADIO_GetUsedChannelFlags_15_0(uint8_t stateMachineNo)2154 __STATIC_INLINE uint32_t LL_RADIO_GetUsedChannelFlags_15_0(uint8_t stateMachineNo)
2155 {
2156 return (uint32_t)(READ_BIT((BLUEDATAWORD + stateMachineNo)->WORDB,
2157 STATEMACH_WORDB_USEDCHANNELFLAGS_15_0) >> STATEMACH_WORDB_USEDCHANNELFLAGS_15_0_Pos);
2158 }
2159
2160 /**
2161 * @brief
2162 * @note
2163 * @rmtoll WORDC USEDCHANNELFLAGS_36_16 LL_RADIO_SetUsedChannelFlags_36_16
2164 * @param stateMachineNo
2165 * @param value
2166 * @retval None
2167 */
LL_RADIO_SetUsedChannelFlags_36_16(uint8_t stateMachineNo,uint32_t value)2168 __STATIC_INLINE void LL_RADIO_SetUsedChannelFlags_36_16(uint8_t stateMachineNo, uint32_t value)
2169 {
2170 MODIFY_REG_FIELD((BLUEDATAWORD + stateMachineNo)->WORDC, STATEMACH_WORDC_USEDCHANNELFLAGS_36_16, value);
2171 }
2172
2173 /**
2174 * @brief
2175 * @note
2176 * @rmtoll WORDC USEDCHANNELFLAGS_36_16 LL_RADIO_GetUsedChannelFlags_36_16
2177 * @param stateMachineNo
2178 * @retval uint32_t
2179 */
LL_RADIO_GetUsedChannelFlags_36_16(uint8_t stateMachineNo)2180 __STATIC_INLINE uint32_t LL_RADIO_GetUsedChannelFlags_36_16(uint8_t stateMachineNo)
2181 {
2182 return (uint32_t)(READ_BIT((BLUEDATAWORD + stateMachineNo)->WORDC,
2183 STATEMACH_WORDC_USEDCHANNELFLAGS_36_16) >> STATEMACH_WORDC_USEDCHANNELFLAGS_36_16_Pos);
2184 }
2185
2186 /**
2187 * @brief
2188 * @note
2189 * @rmtoll WORDE STATEMACH_WORDE_ENCRYPTIV_0_31 LL_RADIO_SetEncryptIV
2190 * @param stateMachineNo
2191 * @param value
2192 * @retval None
2193 */
LL_RADIO_SetEncryptIV(uint8_t stateMachineNo,uint32_t value)2194 __STATIC_INLINE void LL_RADIO_SetEncryptIV(uint8_t stateMachineNo, uint32_t value)
2195 {
2196 MODIFY_REG_FIELD((BLUEDATAWORD + stateMachineNo)->WORDE, STATEMACH_WORDE_ENCRYPTIV_0_31, value);
2197 }
2198
2199 /**
2200 * @brief
2201 * @note
2202 * @rmtoll WORDE STATEMACH_WORDE_ENCRYPTIV_0_31 LL_RADIO_GetEncryptIV
2203 * @param stateMachineNo
2204 * @retval uint32_t
2205 */
LL_RADIO_GetEncryptIV(uint8_t stateMachineNo)2206 __STATIC_INLINE uint32_t LL_RADIO_GetEncryptIV(uint8_t stateMachineNo)
2207 {
2208 return (uint32_t)(READ_BIT((BLUEDATAWORD + stateMachineNo)->WORDE,
2209 STATEMACH_WORDE_ENCRYPTIV_0_31) >> STATEMACH_WORDE_ENCRYPTIV_0_31_Pos);
2210 }
2211
2212 #ifdef STATEMACH_WORD14_AOD_NAOA
2213
2214 /**
2215 * @brief
2216 * @note
2217 * @rmtoll WORD14 AOD_NAOA LL_RADIO_SetAodNaoa
2218 * @param stateMachineNo
2219 * @param value
2220 * @retval None
2221 */
LL_RADIO_SetAodNaoa(uint8_t stateMachineNo,uint32_t value)2222 __STATIC_INLINE void LL_RADIO_SetAodNaoa(uint8_t stateMachineNo, uint32_t value)
2223 {
2224 MODIFY_REG_FIELD((BLUEDATAWORD + stateMachineNo)->WORD14, STATEMACH_WORD14_AOD_NAOA, value);
2225 }
2226
2227 /**
2228 * @brief
2229 * @note
2230 * @rmtoll WORD14 AOD_NAOA LL_RADIO_GetAodNaoa
2231 * @param stateMachineNo
2232 * @retval uint32_t
2233 */
LL_RADIO_GetAodNaoa(uint8_t stateMachineNo)2234 __STATIC_INLINE uint32_t LL_RADIO_GetAodNaoa(uint8_t stateMachineNo)
2235 {
2236 return (uint32_t)(READ_BIT((BLUEDATAWORD + stateMachineNo)->WORD14,
2237 STATEMACH_WORD14_AOD_NAOA) >> STATEMACH_WORD14_AOD_NAOA_Pos);
2238 }
2239 #endif /* STATEMACH_WORD14_AOD_NAOA */
2240
2241 #ifdef STATEMACH_WORD14_CTETIME
2242 /**
2243 * @brief
2244 * @note
2245 * @rmtoll WORD14 CTETIME LL_RADIO_SetCTETime
2246 * @param stateMachineNo
2247 * @param value
2248 * @retval None
2249 */
LL_RADIO_SetCTETime(uint8_t stateMachineNo,uint32_t value)2250 __STATIC_INLINE void LL_RADIO_SetCTETime(uint8_t stateMachineNo, uint32_t value)
2251 {
2252 MODIFY_REG_FIELD((BLUEDATAWORD + stateMachineNo)->WORD14, STATEMACH_WORD14_CTETIME, value);
2253 }
2254
2255 /**
2256 * @brief
2257 * @note
2258 * @rmtoll WORD14 CTETIME LL_RADIO_GetCTETime
2259 * @param stateMachineNo
2260 * @retval uint32_t
2261 */
LL_RADIO_GetCTETime(uint8_t stateMachineNo)2262 __STATIC_INLINE uint32_t LL_RADIO_GetCTETime(uint8_t stateMachineNo)
2263 {
2264 return (uint32_t)(READ_BIT((BLUEDATAWORD + stateMachineNo)->WORD14,
2265 STATEMACH_WORD14_CTETIME) >> STATEMACH_WORD14_CTETIME_Pos);
2266 }
2267 #endif /* STATEMACH_WORD14_CTETIME */
2268
2269 #ifdef STATEMACH_WORD14_CTESLOTWIDTH
2270 /**
2271 * @brief
2272 * @note
2273 * @rmtoll WORD14 CTESLOTWIDTH LL_RADIO_SetCTESlotWidth
2274 * @param stateMachineNo
2275 * @param value
2276 * @retval None
2277 */
LL_RADIO_SetCTESlotWidth(uint8_t stateMachineNo,uint32_t value)2278 __STATIC_INLINE void LL_RADIO_SetCTESlotWidth(uint8_t stateMachineNo, uint32_t value)
2279 {
2280 MODIFY_REG_FIELD((BLUEDATAWORD + stateMachineNo)->WORD14, STATEMACH_WORD14_CTESLOTWIDTH, value);
2281 }
2282
2283 /**
2284 * @brief
2285 * @note
2286 * @rmtoll WORD14 CTESLOTWIDTH LL_RADIO_GetCTESlotWidth
2287 * @param stateMachineNo
2288 * @retval uint32_t
2289 */
LL_RADIO_GetCTESlotWidth(uint8_t stateMachineNo)2290 __STATIC_INLINE uint32_t LL_RADIO_GetCTESlotWidth(uint8_t stateMachineNo)
2291 {
2292 return (uint32_t)(READ_BIT((BLUEDATAWORD + stateMachineNo)->WORD14,
2293 STATEMACH_WORD14_CTESLOTWIDTH) >> STATEMACH_WORD14_CTESLOTWIDTH_Pos);
2294 }
2295 #endif /* STATEMACH_WORD14_CTESLOTWIDTH */
2296
2297 #ifdef STATEMACH_WORD14_MAXIMUMIQSAMPLESNUMBER
2298 /**
2299 * @brief
2300 * @note
2301 * @rmtoll WORD14 MAXIMUMIQSAMPLESNUMBER LL_RADIO_SetMaximumIQSamplesNumber
2302 * @param stateMachineNo
2303 * @param value
2304 * @retval None
2305 */
LL_RADIO_SetMaximumIQSamplesNumber(uint8_t stateMachineNo,uint32_t value)2306 __STATIC_INLINE void LL_RADIO_SetMaximumIQSamplesNumber(uint8_t stateMachineNo, uint32_t value)
2307 {
2308 MODIFY_REG_FIELD((BLUEDATAWORD + stateMachineNo)->WORD14, STATEMACH_WORD14_MAXIMUMIQSAMPLESNUMBER, value);
2309 }
2310
2311 /**
2312 * @brief
2313 * @note
2314 * @rmtoll WORD14 MAXIMUMIQSAMPLESNUMBER LL_RADIO_GetMaximumIQSamplesNumber
2315 * @param stateMachineNo
2316 * @retval uint32_t
2317 */
LL_RADIO_GetMaximumIQSamplesNumber(uint8_t stateMachineNo)2318 __STATIC_INLINE uint32_t LL_RADIO_GetMaximumIQSamplesNumber(uint8_t stateMachineNo)
2319 {
2320 return (uint32_t)(READ_BIT((BLUEDATAWORD + stateMachineNo)->WORD14,
2321 STATEMACH_WORD14_MAXIMUMIQSAMPLESNUMBER) >> STATEMACH_WORD14_MAXIMUMIQSAMPLESNUMBER_Pos);
2322 }
2323 #endif /* STATEMACH_WORD14_MAXIMUMIQSAMPLESNUMBER */
2324
2325 #ifdef STATEMACH_WORD14_ANTENNAPATTERNLENGTH
2326 /**
2327 * @brief
2328 * @note
2329 * @rmtoll WORD14 ANTENNAPATTERNLENGTH LL_RADIO_SetAntennaPatternLength
2330 * @param stateMachineNo
2331 * @param value
2332 * @retval None
2333 */
LL_RADIO_SetAntennaPatternLength(uint8_t stateMachineNo,uint32_t value)2334 __STATIC_INLINE void LL_RADIO_SetAntennaPatternLength(uint8_t stateMachineNo, uint32_t value)
2335 {
2336 MODIFY_REG_FIELD((BLUEDATAWORD + stateMachineNo)->WORD14, STATEMACH_WORD14_ANTENNAPATTERNLENGTH, value);
2337 }
2338
2339 /**
2340 * @brief
2341 * @note
2342 * @rmtoll WORD14 ANTENNAPATTERNLENGTH LL_RADIO_GetAntennaPatternLength
2343 * @param stateMachineNo
2344 * @retval uint32_t
2345 */
LL_RADIO_GetAntennaPatternLength(uint8_t stateMachineNo)2346 __STATIC_INLINE uint32_t LL_RADIO_GetAntennaPatternLength(uint8_t stateMachineNo)
2347 {
2348 return (uint32_t)(READ_BIT((BLUEDATAWORD + stateMachineNo)->WORD14,
2349 STATEMACH_WORD14_ANTENNAPATTERNLENGTH) >> STATEMACH_WORD14_ANTENNAPATTERNLENGTH_Pos);
2350 }
2351 #endif /* STATEMACH_WORD14_ANTENNAPATTERNLENGTH */
2352
2353 #ifdef STATEMACH_WORD15_IQSAMPLESPTR
2354 /**
2355 * @brief
2356 * @note
2357 * @rmtoll WORD15 IQSAMPLESPTR LL_RADIO_SetIQSamplesPtr
2358 * @param stateMachineNo
2359 * @param value
2360 * @retval None
2361 */
LL_RADIO_SetIQSamplesPtr(uint8_t stateMachineNo,uint32_t value)2362 __STATIC_INLINE void LL_RADIO_SetIQSamplesPtr(uint8_t stateMachineNo, uint32_t value)
2363 {
2364 MODIFY_REG_FIELD((BLUEDATAWORD + stateMachineNo)->WORD15, STATEMACH_WORD15_IQSAMPLESPTR, value);
2365 }
2366
2367 /**
2368 * @brief
2369 * @note
2370 * @rmtoll WORD15 IQSAMPLESPTR LL_RADIO_GetIQSamplesPtr
2371 * @param stateMachineNo
2372 * @retval uint32_t
2373 */
LL_RADIO_GetIQSamplesPtr(uint8_t stateMachineNo)2374 __STATIC_INLINE uint32_t LL_RADIO_GetIQSamplesPtr(uint8_t stateMachineNo)
2375 {
2376 return (uint32_t)(READ_BIT((BLUEDATAWORD + stateMachineNo)->WORD15,
2377 STATEMACH_WORD15_IQSAMPLESPTR) >> STATEMACH_WORD15_IQSAMPLESPTR_Pos);
2378 }
2379 #endif /* STATEMACH_WORD15_IQSAMPLESPTR */
2380
2381 #ifdef STATEMACH_WORD16_ANTENNAPATTERNPTR
2382 /**
2383 * @brief
2384 * @note
2385 * @rmtoll WORD16 ANTENNAPATTERNPTR LL_RADIO_SetAntennaPatternPtr
2386 * @param value
2387 * @retval None
2388 */
LL_RADIO_SetAntennaPatternPtr(uint8_t stateMachineNo,uint32_t value)2389 __STATIC_INLINE void LL_RADIO_SetAntennaPatternPtr(uint8_t stateMachineNo, uint32_t value)
2390 {
2391 MODIFY_REG_FIELD((BLUEDATAWORD + stateMachineNo)->WORD16, STATEMACH_WORD16_ANTENNAPATTERNPTR, value);
2392 }
2393
2394 /**
2395 * @brief
2396 * @note
2397 * @rmtoll WORD16 ANTENNAPATTERNPTR LL_RADIO_GetAntennaPatternPtr
2398 * @retval uint32_t
2399 */
LL_RADIO_GetAntennaPatternPtr(uint8_t stateMachineNo)2400 __STATIC_INLINE uint32_t LL_RADIO_GetAntennaPatternPtr(uint8_t stateMachineNo)
2401 {
2402 return (uint32_t)(READ_BIT((BLUEDATAWORD + stateMachineNo)->WORD16,
2403 STATEMACH_WORD16_ANTENNAPATTERNPTR) >> STATEMACH_WORD16_ANTENNAPATTERNPTR_Pos);
2404 }
2405
2406 #endif /* STATEMACH_WORD16_ANTENNAPATTERNPTR */
2407
2408
2409 /**
2410 * @brief
2411 * @note
2412 * @rmtoll WORD0 NEXTPTR LL_RADIO_SetNextPointer
2413 * @param p RADIO Instance
2414 * @param value
2415 * @retval None
2416 */
LL_RADIO_SetNextPointer(TXRXPACK_TypeDef * p,uint32_t value)2417 __STATIC_INLINE void LL_RADIO_SetNextPointer(TXRXPACK_TypeDef *p, uint32_t value)
2418 {
2419 MODIFY_REG_FIELD(((TXRXPACK_WORD_TypeDef *)p)->WORD0, TXRXPACK_WORD0_NEXTPTR, value);
2420 }
2421
2422 /**
2423 * @brief
2424 * @note
2425 * @rmtoll WORD0 NEXTPTR LL_RADIO_GetNextPointer
2426 * @param p RADIO Instance
2427 * @retval uint32_t
2428 */
LL_RADIO_GetNextPointer(TXRXPACK_TypeDef * p)2429 __STATIC_INLINE uint32_t LL_RADIO_GetNextPointer(TXRXPACK_TypeDef *p)
2430 {
2431 return (uint32_t)(READ_BIT(((TXRXPACK_WORD_TypeDef *)p)->WORD0, TXRXPACK_WORD0_NEXTPTR) >> TXRXPACK_WORD0_NEXTPTR_Pos);
2432 }
2433
2434 /**
2435 * @brief
2436 * @note
2437 * @rmtoll WORD1 CALREQ LL_RADIO_SetCalibrationRequest
2438 * @param p RADIO Instance
2439 * @param value
2440 * @retval None
2441 */
LL_RADIO_SetCalibrationRequest(TXRXPACK_TypeDef * p,uint32_t value)2442 __STATIC_INLINE void LL_RADIO_SetCalibrationRequest(TXRXPACK_TypeDef *p, uint32_t value)
2443 {
2444 MODIFY_REG_FIELD(((TXRXPACK_WORD_TypeDef *)p)->WORD1, TXRXPACK_WORD1_CALREQ, value);
2445 }
2446
2447 /**
2448 * @brief
2449 * @note
2450 * @rmtoll WORD1 CALREQ LL_RADIO_GetCalibrationRequest
2451 * @param p RADIO Instance
2452 * @retval uint32_t
2453 */
LL_RADIO_GetCalibrationRequest(TXRXPACK_TypeDef * p)2454 __STATIC_INLINE uint32_t LL_RADIO_GetCalibrationRequest(TXRXPACK_TypeDef *p)
2455 {
2456 return (uint32_t)(READ_BIT(((TXRXPACK_WORD_TypeDef *)p)->WORD1, TXRXPACK_WORD1_CALREQ) >> TXRXPACK_WORD1_CALREQ_Pos);
2457 }
2458
2459 /**
2460 * @brief
2461 * @note
2462 * @rmtoll WORD1 KEEPSEMAREQ LL_RADIO_SetKeepSemaRequest
2463 * @param p RADIO Instance
2464 * @param value
2465 * @retval None
2466 */
LL_RADIO_SetKeepSemaRequest(TXRXPACK_TypeDef * p,uint32_t value)2467 __STATIC_INLINE void LL_RADIO_SetKeepSemaRequest(TXRXPACK_TypeDef *p, uint32_t value)
2468 {
2469 MODIFY_REG_FIELD(((TXRXPACK_WORD_TypeDef *)p)->WORD1, TXRXPACK_WORD1_KEEPSEMAREQ, value);
2470 }
2471
2472 /**
2473 * @brief
2474 * @note
2475 * @rmtoll WORD1 KEEPSEMAREQ LL_RADIO_GetKeepSemaRequest
2476 * @param p RADIO Instance
2477 * @retval uint32_t
2478 */
LL_RADIO_GetKeepSemaRequest(TXRXPACK_TypeDef * p)2479 __STATIC_INLINE uint32_t LL_RADIO_GetKeepSemaRequest(TXRXPACK_TypeDef *p)
2480 {
2481 return (uint32_t)(READ_BIT(((TXRXPACK_WORD_TypeDef *)p)->WORD1,
2482 TXRXPACK_WORD1_KEEPSEMAREQ) >> TXRXPACK_WORD1_KEEPSEMAREQ_Pos);
2483 }
2484
2485 #ifdef TXRXPACK_WORD1_SUPPENA
2486 /**
2487 * @brief
2488 * @note
2489 * @rmtoll WORD1 SUPPENA LL_RADIO_SetSuppEna
2490 * @param value
2491 * @retval None
2492 */
LL_RADIO_SetSuppEna(TXRXPACK_TypeDef * p,uint32_t value)2493 __STATIC_INLINE void LL_RADIO_SetSuppEna(TXRXPACK_TypeDef *p, uint32_t value)
2494 {
2495 MODIFY_REG_FIELD(((TXRXPACK_WORD_TypeDef *)p)->WORD1, TXRXPACK_WORD1_SUPPENA, value);
2496 }
2497
2498 /**
2499 * @brief
2500 * @note
2501 * @rmtoll WORD1 SUPPENA LL_RADIO_GetSuppEna
2502 * @retval uint32_t
2503 */
LL_RADIO_GetSuppEna(TXRXPACK_TypeDef * p)2504 __STATIC_INLINE uint32_t LL_RADIO_GetSuppEna(TXRXPACK_TypeDef *p)
2505 {
2506 return (uint32_t)(READ_BIT(((TXRXPACK_WORD_TypeDef *)p)->WORD1, TXRXPACK_WORD1_SUPPENA) >> TXRXPACK_WORD1_SUPPENA_Pos);
2507 }
2508 #endif /* TXRXPACK_WORD1_SUPPENA */
2509
2510 #ifdef TXRXPACK_WORD1_CTEANDSAMPLINGENABLE
2511 /**
2512 * @brief
2513 * @note
2514 * @rmtoll WORD1 CTEANDSAMPLINGENABLE LL_RADIO_SetCTEAndSamplingEnable
2515 * @param value
2516 * @retval None
2517 */
LL_RADIO_SetCTEAndSamplingEnable(TXRXPACK_TypeDef * p,uint32_t value)2518 __STATIC_INLINE void LL_RADIO_SetCTEAndSamplingEnable(TXRXPACK_TypeDef *p, uint32_t value)
2519 {
2520 MODIFY_REG_FIELD(((TXRXPACK_WORD_TypeDef *)p)->WORD1, TXRXPACK_WORD1_CTEANDSAMPLINGENABLE, value);
2521 }
2522
2523 /**
2524 * @brief
2525 * @note
2526 * @rmtoll WORD1 CTEANDSAMPLINGENABLE LL_RADIO_GetCTEAndSamplingEnable
2527 * @retval uint32_t
2528 */
LL_RADIO_GetCTEAndSamplingEnable(TXRXPACK_TypeDef * p)2529 __STATIC_INLINE uint32_t LL_RADIO_GetCTEAndSamplingEnable(TXRXPACK_TypeDef *p)
2530 {
2531 return (uint32_t)(READ_BIT(((TXRXPACK_WORD_TypeDef *)p)->WORD1,
2532 TXRXPACK_WORD1_CTEANDSAMPLINGENABLE) >> TXRXPACK_WORD1_CTEANDSAMPLINGENABLE_Pos);
2533 }
2534 #endif /* TXRXPACK_WORD1_CTEANDSAMPLINGENABLE */
2535
2536 /**
2537 * @brief
2538 * @note
2539 * @rmtoll WORD1 CRCINITSEL LL_RADIO_SetCRCInitializationSelector
2540 * @param p RADIO Instance
2541 * @param value
2542 * @retval None
2543 */
LL_RADIO_SetCRCInitializationSelector(TXRXPACK_TypeDef * p,uint32_t value)2544 __STATIC_INLINE void LL_RADIO_SetCRCInitializationSelector(TXRXPACK_TypeDef *p, uint32_t value)
2545 {
2546 MODIFY_REG_FIELD(((TXRXPACK_WORD_TypeDef *)p)->WORD1, TXRXPACK_WORD1_CRCINITSEL, value);
2547 }
2548
2549 /**
2550 * @brief
2551 * @note
2552 * @rmtoll WORD1 CRCINITSEL LL_RADIO_GetCRCInitializationSelector
2553 * @param p RADIO Instance
2554 * @retval uint32_t
2555 */
LL_RADIO_GetCRCInitializationSelector(TXRXPACK_TypeDef * p)2556 __STATIC_INLINE uint32_t LL_RADIO_GetCRCInitializationSelector(TXRXPACK_TypeDef *p)
2557 {
2558 return (uint32_t)(READ_BIT(((TXRXPACK_WORD_TypeDef *)p)->WORD1,
2559 TXRXPACK_WORD1_CRCINITSEL) >> TXRXPACK_WORD1_CRCINITSEL_Pos);
2560 }
2561
2562 /**
2563 * @brief
2564 * @note
2565 * @rmtoll WORD1 ADVERTISE LL_RADIO_SetAdvertise
2566 * @param p RADIO Instance
2567 * @param value
2568 * @retval None
2569 */
LL_RADIO_SetAdvertise(TXRXPACK_TypeDef * p,uint32_t value)2570 __STATIC_INLINE void LL_RADIO_SetAdvertise(TXRXPACK_TypeDef *p, uint32_t value)
2571 {
2572 MODIFY_REG_FIELD(((TXRXPACK_WORD_TypeDef *)p)->WORD1, TXRXPACK_WORD1_ADVERTISE, value);
2573 }
2574
2575 /**
2576 * @brief
2577 * @note
2578 * @rmtoll WORD1 ADVERTISE LL_RADIO_GetAdvertise
2579 * @param p RADIO Instance
2580 * @retval uint32_t
2581 */
LL_RADIO_GetAdvertise(TXRXPACK_TypeDef * p)2582 __STATIC_INLINE uint32_t LL_RADIO_GetAdvertise(TXRXPACK_TypeDef *p)
2583 {
2584 return (uint32_t)(READ_BIT(((TXRXPACK_WORD_TypeDef *)p)->WORD1,
2585 TXRXPACK_WORD1_ADVERTISE) >> TXRXPACK_WORD1_ADVERTISE_Pos);
2586 }
2587
2588 /**
2589 * @brief RADIO Enable
2590 * @rmtoll WORD1 SN_EN LL_RADIO_AutomaticSnNesnHardwareMechanism_Enable
2591 * @param p RADIO Instance
2592 * @retval None
2593 */
LL_RADIO_AutomaticSnNesnHardwareMechanism_Enable(TXRXPACK_TypeDef * p)2594 __STATIC_INLINE void LL_RADIO_AutomaticSnNesnHardwareMechanism_Enable(TXRXPACK_TypeDef *p)
2595 {
2596 SET_BIT(((TXRXPACK_WORD_TypeDef *)p)->WORD1, TXRXPACK_WORD1_SN_EN);
2597 }
2598
2599 /**
2600 * @brief RADIO Disable
2601 * @rmtoll WORD1 SN_EN LL_RADIO_AutomaticSnNesnHardwareMechanism_Disable
2602 * @param p RADIO Instance
2603 * @retval None
2604 */
LL_RADIO_AutomaticSnNesnHardwareMechanism_Disable(TXRXPACK_TypeDef * p)2605 __STATIC_INLINE void LL_RADIO_AutomaticSnNesnHardwareMechanism_Disable(TXRXPACK_TypeDef *p)
2606 {
2607 CLEAR_BIT(((TXRXPACK_WORD_TypeDef *)p)->WORD1, TXRXPACK_WORD1_SN_EN);
2608 }
2609
2610 /**
2611 * @brief Indicate if SN_EN is enabled
2612 * @rmtoll WORD1 SN_EN LL_RADIO_AutomaticSnNesnHardwareMechanism_IsEnabled
2613 * @param p RADIO Instance
2614 * @retval State of bit (1 or 0).
2615 */
LL_RADIO_AutomaticSnNesnHardwareMechanism_IsEnabled(TXRXPACK_TypeDef * p)2616 __STATIC_INLINE uint32_t LL_RADIO_AutomaticSnNesnHardwareMechanism_IsEnabled(TXRXPACK_TypeDef *p)
2617 {
2618 return ((READ_BIT(((TXRXPACK_WORD_TypeDef *)p)->WORD1, TXRXPACK_WORD1_SN_EN) == (TXRXPACK_WORD1_SN_EN)) ? 1U : 0U);
2619 }
2620
2621 /**
2622 * @brief RADIO Enable
2623 * @rmtoll WORD1 INCCHAN LL_RADIO_IncrementerChannel_Enable
2624 * @param p RADIO Instance
2625 * @retval None
2626 */
LL_RADIO_IncrementerChannel_Enable(TXRXPACK_TypeDef * p)2627 __STATIC_INLINE void LL_RADIO_IncrementerChannel_Enable(TXRXPACK_TypeDef *p)
2628 {
2629 SET_BIT(((TXRXPACK_WORD_TypeDef *)p)->WORD1, TXRXPACK_WORD1_INCCHAN);
2630 }
2631
2632 /**
2633 * @brief RADIO Disable
2634 * @rmtoll WORD1 INCCHAN LL_RADIO_IncrementerChannel_Disable
2635 * @param p RADIO Instance
2636 * @retval None
2637 */
LL_RADIO_IncrementerChannel_Disable(TXRXPACK_TypeDef * p)2638 __STATIC_INLINE void LL_RADIO_IncrementerChannel_Disable(TXRXPACK_TypeDef *p)
2639 {
2640 CLEAR_BIT(((TXRXPACK_WORD_TypeDef *)p)->WORD1, TXRXPACK_WORD1_INCCHAN);
2641 }
2642
2643 /**
2644 * @brief Indicate if INCCHAN is enabled
2645 * @rmtoll WORD1 INCCHAN LL_RADIO_IncrementerChannel_IsEnabled
2646 * @param p RADIO Instance
2647 * @retval State of bit (1 or 0).
2648 */
LL_RADIO_IncrementerChannel_IsEnabled(TXRXPACK_TypeDef * p)2649 __STATIC_INLINE uint32_t LL_RADIO_IncrementerChannel_IsEnabled(TXRXPACK_TypeDef *p)
2650 {
2651 return ((READ_BIT(((TXRXPACK_WORD_TypeDef *)p)->WORD1, TXRXPACK_WORD1_INCCHAN) == (TXRXPACK_WORD1_INCCHAN)) ? 1U : 0U);
2652 }
2653
2654 /**
2655 * @brief
2656 * @note
2657 * @rmtoll WORD1 NEXTTXMODE LL_RADIO_SetNextTxMode
2658 * @param p RADIO Instance
2659 * @param value
2660 * @retval None
2661 */
LL_RADIO_SetNextTxMode(TXRXPACK_TypeDef * p,uint32_t value)2662 __STATIC_INLINE void LL_RADIO_SetNextTxMode(TXRXPACK_TypeDef *p, uint32_t value)
2663 {
2664 MODIFY_REG_FIELD(((TXRXPACK_WORD_TypeDef *)p)->WORD1, TXRXPACK_WORD1_NEXTTXMODE, value);
2665 }
2666
2667 /**
2668 * @brief
2669 * @note
2670 * @rmtoll WORD1 NEXTTXMODE LL_RADIO_GetNextTxMode
2671 * @param p RADIO Instance
2672 * @retval uint32_t
2673 */
LL_RADIO_GetNextTxMode(TXRXPACK_TypeDef * p)2674 __STATIC_INLINE uint32_t LL_RADIO_GetNextTxMode(TXRXPACK_TypeDef *p)
2675 {
2676 return (uint32_t)(READ_BIT(((TXRXPACK_WORD_TypeDef *)p)->WORD1,
2677 TXRXPACK_WORD1_NEXTTXMODE) >> TXRXPACK_WORD1_NEXTTXMODE_Pos);
2678 }
2679
2680 /**
2681 * @brief
2682 * @note
2683 * @rmtoll WORD1 ALLTABLEREADY LL_RADIO_SetAllTableDataReady
2684 * @param p RADIO Instance
2685 * @param value
2686 * @retval None
2687 */
LL_RADIO_SetAllTableDataReady(TXRXPACK_TypeDef * p,uint32_t value)2688 __STATIC_INLINE void LL_RADIO_SetAllTableDataReady(TXRXPACK_TypeDef *p, uint32_t value)
2689 {
2690 MODIFY_REG_FIELD(((TXRXPACK_WORD_TypeDef *)p)->WORD1, TXRXPACK_WORD1_ALLTABLEREADY, value);
2691 }
2692
2693 /**
2694 * @brief
2695 * @note
2696 * @rmtoll WORD1 ALLTABLEREADY LL_RADIO_GetAllTableDataReady
2697 * @param p RADIO Instance
2698 * @retval uint32_t
2699 */
LL_RADIO_GetAllTableDataReady(TXRXPACK_TypeDef * p)2700 __STATIC_INLINE uint32_t LL_RADIO_GetAllTableDataReady(TXRXPACK_TypeDef *p)
2701 {
2702 return (uint32_t)(READ_BIT(((TXRXPACK_WORD_TypeDef *)p)->WORD1,
2703 TXRXPACK_WORD1_ALLTABLEREADY) >> TXRXPACK_WORD1_ALLTABLEREADY_Pos);
2704 }
2705
2706 /**
2707 * @brief
2708 * @note
2709 * @rmtoll WORD1 TXDATAREADY LL_RADIO_SetTransmissionDataReady
2710 * @param p RADIO Instance
2711 * @param value
2712 * @retval None
2713 */
LL_RADIO_SetTransmissionDataReady(TXRXPACK_TypeDef * p,uint32_t value)2714 __STATIC_INLINE void LL_RADIO_SetTransmissionDataReady(TXRXPACK_TypeDef *p, uint32_t value)
2715 {
2716 MODIFY_REG_FIELD(((TXRXPACK_WORD_TypeDef *)p)->WORD1, TXRXPACK_WORD1_TXDATAREADY, value);
2717 }
2718
2719 /**
2720 * @brief
2721 * @note
2722 * @rmtoll WORD1 TXDATAREADY LL_RADIO_GetTransmissionDataReady
2723 * @param p RADIO Instance
2724 * @retval uint32_t
2725 */
LL_RADIO_GetTransmissionDataReady(TXRXPACK_TypeDef * p)2726 __STATIC_INLINE uint32_t LL_RADIO_GetTransmissionDataReady(TXRXPACK_TypeDef *p)
2727 {
2728 return (uint32_t)(READ_BIT(((TXRXPACK_WORD_TypeDef *)p)->WORD1,
2729 TXRXPACK_WORD1_TXDATAREADY) >> TXRXPACK_WORD1_TXDATAREADY_Pos);
2730 }
2731
2732 /**
2733 * @brief
2734 * @note
2735 * @rmtoll WORD1 DISABLEWHITENING LL_RADIO_SetDisableWhitening
2736 * @param p RADIO Instance
2737 * @param value
2738 * @retval None
2739 */
LL_RADIO_SetDisableWhitening(TXRXPACK_TypeDef * p,uint32_t value)2740 __STATIC_INLINE void LL_RADIO_SetDisableWhitening(TXRXPACK_TypeDef *p, uint32_t value)
2741 {
2742 MODIFY_REG_FIELD(((TXRXPACK_WORD_TypeDef *)p)->WORD1, TXRXPACK_WORD1_DISABLEWHITENING, value);
2743 }
2744
2745 /**
2746 * @brief
2747 * @note
2748 * @rmtoll WORD1 DISABLEWHITENING LL_RADIO_GetDisableWhitening
2749 * @param p RADIO Instance
2750 * @retval uint32_t
2751 */
LL_RADIO_GetDisableWhitening(TXRXPACK_TypeDef * p)2752 __STATIC_INLINE uint32_t LL_RADIO_GetDisableWhitening(TXRXPACK_TypeDef *p)
2753 {
2754 return (uint32_t)(READ_BIT(((TXRXPACK_WORD_TypeDef *)p)->WORD1,
2755 TXRXPACK_WORD1_DISABLEWHITENING) >> TXRXPACK_WORD1_DISABLEWHITENING_Pos);
2756 }
2757
2758 /**
2759 * @brief
2760 * @note
2761 * @rmtoll WORD2 DATAPTR LL_RADIO_SetDataPointer
2762 * @param p RADIO Instance
2763 * @param value
2764 * @retval None
2765 */
LL_RADIO_SetDataPointer(TXRXPACK_TypeDef * p,uint32_t value)2766 __STATIC_INLINE void LL_RADIO_SetDataPointer(TXRXPACK_TypeDef *p, uint32_t value)
2767 {
2768 MODIFY_REG_FIELD(((TXRXPACK_WORD_TypeDef *)p)->WORD2, TXRXPACK_WORD2_DATAPTR, value);
2769 }
2770
2771 /**
2772 * @brief
2773 * @note
2774 * @rmtoll WORD2 DATAPTR LL_RADIO_GetDataPointer
2775 * @param p RADIO Instance
2776 * @retval uint32_t
2777 */
LL_RADIO_GetDataPointer(TXRXPACK_TypeDef * p)2778 __STATIC_INLINE uint32_t LL_RADIO_GetDataPointer(TXRXPACK_TypeDef *p)
2779 {
2780 return (uint32_t)(READ_BIT(((TXRXPACK_WORD_TypeDef *)p)->WORD2, TXRXPACK_WORD2_DATAPTR) >> TXRXPACK_WORD2_DATAPTR_Pos);
2781 }
2782
2783 /**
2784 * @brief
2785 * @note
2786 * @rmtoll WORD3 TIMER2 LL_RADIO_SetTimer2Triggering
2787 * @param p RADIO Instance
2788 * @param value
2789 * @retval None
2790 */
LL_RADIO_SetTimer2Triggering(TXRXPACK_TypeDef * p,uint32_t value)2791 __STATIC_INLINE void LL_RADIO_SetTimer2Triggering(TXRXPACK_TypeDef *p, uint32_t value)
2792 {
2793 MODIFY_REG_FIELD(((TXRXPACK_WORD_TypeDef *)p)->WORD3, TXRXPACK_WORD3_TIMER2, value);
2794 }
2795
2796 /**
2797 * @brief
2798 * @note
2799 * @rmtoll WORD3 TIMER2 LL_RADIO_GetTimer2Triggering
2800 * @param p RADIO Instance
2801 * @retval uint32_t
2802 */
LL_RADIO_GetTimer2Triggering(TXRXPACK_TypeDef * p)2803 __STATIC_INLINE uint32_t LL_RADIO_GetTimer2Triggering(TXRXPACK_TypeDef *p)
2804 {
2805 return (uint32_t)(READ_BIT(((TXRXPACK_WORD_TypeDef *)p)->WORD3, TXRXPACK_WORD3_TIMER2) >> TXRXPACK_WORD3_TIMER2_Pos);
2806 }
2807
2808 /**
2809 * @brief RADIO Enable
2810 * @rmtoll WORD3 TIMER2EN LL_RADIO_Timer2_Enable
2811 * @param p
2812 * @retval None
2813 */
LL_RADIO_Timer2_Enable(TXRXPACK_TypeDef * p)2814 __STATIC_INLINE void LL_RADIO_Timer2_Enable(TXRXPACK_TypeDef *p)
2815 {
2816 SET_BIT(((TXRXPACK_WORD_TypeDef *)p)->WORD3, TXRXPACK_WORD3_TIMER2EN);
2817 }
2818
2819 /**
2820 * @brief RADIO Disable
2821 * @rmtoll WORD3 TIMER2EN LL_RADIO_Timer2_Disable
2822 * @param p
2823 * @retval None
2824 */
LL_RADIO_Timer2_Disable(TXRXPACK_TypeDef * p)2825 __STATIC_INLINE void LL_RADIO_Timer2_Disable(TXRXPACK_TypeDef *p)
2826 {
2827 CLEAR_BIT(((TXRXPACK_WORD_TypeDef *)p)->WORD3, TXRXPACK_WORD3_TIMER2EN);
2828 }
2829
2830 /**
2831 * @brief Indicate if TIMER2EN is enabled
2832 * @rmtoll WORD3 TIMER2EN LL_RADIO_Timer2_IsEnabled
2833 * @param p
2834 * @retval State of bit (1 or 0).
2835 */
LL_RADIO_Timer2_IsEnabled(TXRXPACK_TypeDef * p)2836 __STATIC_INLINE uint32_t LL_RADIO_Timer2_IsEnabled(TXRXPACK_TypeDef *p)
2837 {
2838 return ((READ_BIT(((TXRXPACK_WORD_TypeDef *)p)->WORD3, TXRXPACK_WORD3_TIMER2EN) == (TXRXPACK_WORD3_TIMER2EN)) ? 1U : 0U);
2839 }
2840
2841 /**
2842 * @brief
2843 * @note
2844 * @rmtoll WORD3 TRIGRCV LL_RADIO_SetTrigRcv
2845 * @param p RADIO Instance
2846 * @param value
2847 * @retval None
2848 */
LL_RADIO_SetTrigRcv(TXRXPACK_TypeDef * p,uint32_t value)2849 __STATIC_INLINE void LL_RADIO_SetTrigRcv(TXRXPACK_TypeDef *p, uint32_t value)
2850 {
2851 MODIFY_REG_FIELD(((TXRXPACK_WORD_TypeDef *)p)->WORD3, TXRXPACK_WORD3_TRIGRCV, value);
2852 }
2853
2854 /**
2855 * @brief
2856 * @note
2857 * @rmtoll WORD3 TRIGRCV LL_RADIO_GetTrigRcv
2858 * @param p RADIO Instance
2859 * @retval uint32_t
2860 */
LL_RADIO_GetTrigRcv(TXRXPACK_TypeDef * p)2861 __STATIC_INLINE uint32_t LL_RADIO_GetTrigRcv(TXRXPACK_TypeDef *p)
2862 {
2863 return (uint32_t)(READ_BIT(((TXRXPACK_WORD_TypeDef *)p)->WORD3, TXRXPACK_WORD3_TRIGRCV) >> TXRXPACK_WORD3_TRIGRCV_Pos);
2864 }
2865
2866 /**
2867 * @brief
2868 * @note
2869 * @rmtoll WORD3 TRIGDONE LL_RADIO_SetTrigDone
2870 * @param p RADIO Instance
2871 * @param value
2872 * @retval None
2873 */
LL_RADIO_SetTrigDone(TXRXPACK_TypeDef * p,uint32_t value)2874 __STATIC_INLINE void LL_RADIO_SetTrigDone(TXRXPACK_TypeDef *p, uint32_t value)
2875 {
2876 MODIFY_REG_FIELD(((TXRXPACK_WORD_TypeDef *)p)->WORD3, TXRXPACK_WORD3_TRIGDONE, value);
2877 }
2878
2879 /**
2880 * @brief
2881 * @note
2882 * @rmtoll WORD3 TRIGDONE LL_RADIO_GetTrigDone
2883 * @param p RADIO Instance
2884 * @retval uint32_t
2885 */
LL_RADIO_GetTrigDone(TXRXPACK_TypeDef * p)2886 __STATIC_INLINE uint32_t LL_RADIO_GetTrigDone(TXRXPACK_TypeDef *p)
2887 {
2888 return (uint32_t)(READ_BIT(((TXRXPACK_WORD_TypeDef *)p)->WORD3,
2889 TXRXPACK_WORD3_TRIGDONE) >> TXRXPACK_WORD3_TRIGDONE_Pos);
2890 }
2891
2892 /**
2893 * @brief
2894 * @note
2895 * @rmtoll WORD3 INTTXOK LL_RADIO_SetIntTxOk
2896 * @param p RADIO Instance
2897 * @param value
2898 * @retval None
2899 */
LL_RADIO_SetIntTxOk(TXRXPACK_TypeDef * p,uint32_t value)2900 __STATIC_INLINE void LL_RADIO_SetIntTxOk(TXRXPACK_TypeDef *p, uint32_t value)
2901 {
2902 MODIFY_REG_FIELD(((TXRXPACK_WORD_TypeDef *)p)->WORD3, TXRXPACK_WORD3_INTTXOK, value);
2903 }
2904
2905 /**
2906 * @brief
2907 * @note
2908 * @rmtoll WORD3 INTTXOK LL_RADIO_GetIntTxOk
2909 * @param p RADIO Instance
2910 * @retval uint32_t
2911 */
LL_RADIO_GetIntTxOk(TXRXPACK_TypeDef * p)2912 __STATIC_INLINE uint32_t LL_RADIO_GetIntTxOk(TXRXPACK_TypeDef *p)
2913 {
2914 return (uint32_t)(READ_BIT(((TXRXPACK_WORD_TypeDef *)p)->WORD3, TXRXPACK_WORD3_INTTXOK) >> TXRXPACK_WORD3_INTTXOK_Pos);
2915 }
2916
2917 /**
2918 * @brief RADIO Enable
2919 * @rmtoll WORD3 INTDONE LL_RADIO_IntDone_Enable
2920 * @param p
2921 * @retval None
2922 */
LL_RADIO_IntDone_Enable(TXRXPACK_TypeDef * p)2923 __STATIC_INLINE void LL_RADIO_IntDone_Enable(TXRXPACK_TypeDef *p)
2924 {
2925 SET_BIT(((TXRXPACK_WORD_TypeDef *)p)->WORD3, TXRXPACK_WORD3_INTDONE);
2926 }
2927
2928 /**
2929 * @brief RADIO Disable
2930 * @rmtoll WORD3 INTDONE LL_RADIO_IntDone_Disable
2931 * @param p
2932 * @retval None
2933 */
LL_RADIO_IntDone_Disable(TXRXPACK_TypeDef * p)2934 __STATIC_INLINE void LL_RADIO_IntDone_Disable(TXRXPACK_TypeDef *p)
2935 {
2936 CLEAR_BIT(((TXRXPACK_WORD_TypeDef *)p)->WORD3, TXRXPACK_WORD3_INTDONE);
2937 }
2938
2939 /**
2940 * @brief Indicate if INTDONE is enabled
2941 * @rmtoll WORD3 INTDONE LL_RADIO_IntDone_IsEnabled
2942 * @param p
2943 * @retval State of bit (1 or 0).
2944 */
LL_RADIO_IntDone_IsEnabled(TXRXPACK_TypeDef * p)2945 __STATIC_INLINE uint32_t LL_RADIO_IntDone_IsEnabled(TXRXPACK_TypeDef *p)
2946 {
2947 return ((READ_BIT(((TXRXPACK_WORD_TypeDef *)p)->WORD3, TXRXPACK_WORD3_INTDONE) == (TXRXPACK_WORD3_INTDONE)) ? 1U : 0U);
2948 }
2949
2950 /**
2951 * @brief RADIO Enable
2952 * @rmtoll WORD3 INTRCVTIMEOUT LL_RADIO_IntRcvTimeout_Enable
2953 * @param p
2954 * @retval None
2955 */
LL_RADIO_IntRcvTimeout_Enable(TXRXPACK_TypeDef * p)2956 __STATIC_INLINE void LL_RADIO_IntRcvTimeout_Enable(TXRXPACK_TypeDef *p)
2957 {
2958 SET_BIT(((TXRXPACK_WORD_TypeDef *)p)->WORD3, TXRXPACK_WORD3_INTRCVTIMEOUT);
2959 }
2960
2961 /**
2962 * @brief RADIO Disable
2963 * @rmtoll WORD3 INTRCVTIMEOUT LL_RADIO_IntRcvTimeout_Disable
2964 * @param p
2965 * @retval None
2966 */
LL_RADIO_IntRcvTimeout_Disable(TXRXPACK_TypeDef * p)2967 __STATIC_INLINE void LL_RADIO_IntRcvTimeout_Disable(TXRXPACK_TypeDef *p)
2968 {
2969 CLEAR_BIT(((TXRXPACK_WORD_TypeDef *)p)->WORD3, TXRXPACK_WORD3_INTRCVTIMEOUT);
2970 }
2971
2972 /**
2973 * @brief Indicate if INTRCVTIMEOUT is enabled
2974 * @rmtoll WORD3 INTRCVTIMEOUT LL_RADIO_IntRcvTimeout_IsEnabled
2975 * @param p
2976 * @retval State of bit (1 or 0).
2977 */
LL_RADIO_IntRcvTimeout_IsEnabled(TXRXPACK_TypeDef * p)2978 __STATIC_INLINE uint32_t LL_RADIO_IntRcvTimeout_IsEnabled(TXRXPACK_TypeDef *p)
2979 {
2980 return ((READ_BIT(((TXRXPACK_WORD_TypeDef *)p)->WORD3, TXRXPACK_WORD3_INTRCVTIMEOUT) == (TXRXPACK_WORD3_INTRCVTIMEOUT)) ? 1U : 0U);
2981 }
2982
2983
2984 /**
2985 * @brief
2986 * @note
2987 * @rmtoll WORD3 INTTIMECAPTURE LL_RADIO_SetIntTimeCapture
2988 * @param p
2989 * @param value
2990 * @retval None
2991 */
LL_RADIO_SetIntTimeCapture(TXRXPACK_TypeDef * p,uint32_t value)2992 __STATIC_INLINE void LL_RADIO_SetIntTimeCapture(TXRXPACK_TypeDef *p, uint32_t value)
2993 {
2994 MODIFY_REG_FIELD(((TXRXPACK_WORD_TypeDef *)p)->WORD3, TXRXPACK_WORD3_INTTIMECAPTURE, value);
2995 }
2996
2997 /**
2998 * @brief
2999 * @note
3000 * @rmtoll WORD3 INTTIMECAPTURE LL_RADIO_GetIntTimeCapture
3001 * @param p
3002 * @retval uint32_t
3003 */
LL_RADIO_GetIntTimeCapture(TXRXPACK_TypeDef * p)3004 __STATIC_INLINE uint32_t LL_RADIO_GetIntTimeCapture(TXRXPACK_TypeDef *p)
3005 {
3006 return (uint32_t)(READ_BIT(((TXRXPACK_WORD_TypeDef *)p)->WORD3,
3007 TXRXPACK_WORD3_INTTIMECAPTURE) >> TXRXPACK_WORD3_INTTIMECAPTURE_Pos);
3008 }
3009
3010 /**
3011 * @brief RADIO Enable
3012 * @rmtoll WORD3 INTRCVCRCERR LL_RADIO_IntRcvCRCErr_Enable
3013 * @param p
3014 * @retval None
3015 */
LL_RADIO_IntRcvCRCErr_Enable(TXRXPACK_TypeDef * p)3016 __STATIC_INLINE void LL_RADIO_IntRcvCRCErr_Enable(TXRXPACK_TypeDef *p)
3017 {
3018 SET_BIT(((TXRXPACK_WORD_TypeDef *)p)->WORD3, TXRXPACK_WORD3_INTRCVCRCERR);
3019 }
3020
3021 /**
3022 * @brief RADIO Disable
3023 * @rmtoll WORD3 INTRCVCRCERR LL_RADIO_IntRcvCRCErr_Disable
3024 * @param p
3025 * @retval None
3026 */
LL_RADIO_IntRcvCRCErr_Disable(TXRXPACK_TypeDef * p)3027 __STATIC_INLINE void LL_RADIO_IntRcvCRCErr_Disable(TXRXPACK_TypeDef *p)
3028 {
3029 CLEAR_BIT(((TXRXPACK_WORD_TypeDef *)p)->WORD3, TXRXPACK_WORD3_INTRCVCRCERR);
3030 }
3031
3032 /**
3033 * @brief Indicate if INTRCVCRCERR is enabled
3034 * @rmtoll WORD3 INTRCVCRCERR LL_RADIO_IntRcvCRCErr_IsEnabled
3035 * @param p
3036 * @retval State of bit (1 or 0).
3037 */
LL_RADIO_IntRcvCRCErr_IsEnabled(TXRXPACK_TypeDef * p)3038 __STATIC_INLINE uint32_t LL_RADIO_IntRcvCRCErr_IsEnabled(TXRXPACK_TypeDef *p)
3039 {
3040 return ((READ_BIT(((TXRXPACK_WORD_TypeDef *)p)->WORD3, TXRXPACK_WORD3_INTRCVCRCERR) == (TXRXPACK_WORD3_INTRCVCRCERR)) ? 1U : 0U);
3041 }
3042
3043 /**
3044 * @brief RADIO Enable
3045 * @rmtoll WORD3 INTRCVOK LL_RADIO_IntRcvOk_Enable
3046 * @param p
3047 * @retval None
3048 */
LL_RADIO_IntRcvOk_Enable(TXRXPACK_TypeDef * p)3049 __STATIC_INLINE void LL_RADIO_IntRcvOk_Enable(TXRXPACK_TypeDef *p)
3050 {
3051 SET_BIT(((TXRXPACK_WORD_TypeDef *)p)->WORD3, TXRXPACK_WORD3_INTRCVOK);
3052 }
3053
3054 /**
3055 * @brief RADIO Disable
3056 * @rmtoll WORD3 INTRCVOK LL_RADIO_IntRcvOk_Disable
3057 * @param p
3058 * @retval None
3059 */
LL_RADIO_IntRcvOk_Disable(TXRXPACK_TypeDef * p)3060 __STATIC_INLINE void LL_RADIO_IntRcvOk_Disable(TXRXPACK_TypeDef *p)
3061 {
3062 CLEAR_BIT(((TXRXPACK_WORD_TypeDef *)p)->WORD3, TXRXPACK_WORD3_INTRCVOK);
3063 }
3064
3065 /**
3066 * @brief Indicate if INTRCVOK is enabled
3067 * @rmtoll WORD3 INTRCVOK LL_RADIO_IntRcvOk_IsEnabled
3068 * @param p
3069 * @retval State of bit (1 or 0).
3070 */
LL_RADIO_IntRcvOk_IsEnabled(TXRXPACK_TypeDef * p)3071 __STATIC_INLINE uint32_t LL_RADIO_IntRcvOk_IsEnabled(TXRXPACK_TypeDef *p)
3072 {
3073 return ((READ_BIT(((TXRXPACK_WORD_TypeDef *)p)->WORD3, TXRXPACK_WORD3_INTRCVOK) == (TXRXPACK_WORD3_INTRCVOK)) ? 1U : 0U);
3074 }
3075
3076 #ifdef BLUE_CONTROLLERVERNUMREG_SUBVERNUM
3077 /**
3078 * @brief
3079 * @note
3080 * @rmtoll CONTROLLERVERNUMREG SUBVERNUM LL_RADIO_BlueGetSubversionNumber
3081 * @retval uint32_t
3082 */
LL_RADIO_BlueGetSubversionNumber(void)3083 __STATIC_INLINE uint32_t LL_RADIO_BlueGetSubversionNumber(void)
3084 {
3085 return (uint32_t)(READ_BIT(BLUE->CONTROLLERVERNUMREG,
3086 BLUE_CONTROLLERVERNUMREG_SUBVERNUM) >> BLUE_CONTROLLERVERNUMREG_SUBVERNUM_Pos);
3087 }
3088 #endif /* BLUE_CONTROLLERVERNUMREG_SUBVERNUM */
3089
3090 #ifdef BLUE_CONTROLLERVERNUMREG_VERNUM
3091 /**
3092 * @brief
3093 * @note
3094 * @rmtoll CONTROLLERVERNUMREG VERNUM LL_RADIO_BlueGetVersionNumber
3095 * @retval uint32_t
3096 */
LL_RADIO_BlueGetVersionNumber(void)3097 __STATIC_INLINE uint32_t LL_RADIO_BlueGetVersionNumber(void)
3098 {
3099 return (uint32_t)(READ_BIT(BLUE->CONTROLLERVERNUMREG,
3100 BLUE_CONTROLLERVERNUMREG_VERNUM) >> BLUE_CONTROLLERVERNUMREG_VERNUM_Pos);
3101 }
3102 #endif /* BLUE_CONTROLLERVERNUMREG_VERNUM */
3103
3104 #ifdef BLUE_CONTROLLERVERNUMREG_TYP
3105 /**
3106 * @brief
3107 * @note
3108 * @rmtoll CONTROLLERVERNUMREG TYP LL_RADIO_BlueGetBLEControllerTypeNumber
3109 * @retval uint32_t
3110 */
LL_RADIO_BlueGetBLEControllerTypeNumber(void)3111 __STATIC_INLINE uint32_t LL_RADIO_BlueGetBLEControllerTypeNumber(void)
3112 {
3113 return (uint32_t)(READ_BIT(BLUE->CONTROLLERVERNUMREG,
3114 BLUE_CONTROLLERVERNUMREG_TYP) >> BLUE_CONTROLLERVERNUMREG_TYP_Pos);
3115 }
3116 #endif /* BLUE_CONTROLLERVERNUMREG_TYP */
3117
3118 #ifdef BLUE_INTERRUPT1REG_ALL
3119 /**
3120 * @brief
3121 * @note
3122 * @rmtoll INTERRUPT1REG ALL LL_RADIO_BlueSetInterrupt1RegRegister
3123 * @param value
3124 * @retval None
3125 */
LL_RADIO_BlueSetInterrupt1RegRegister(uint32_t value)3126 __STATIC_INLINE void LL_RADIO_BlueSetInterrupt1RegRegister(uint32_t value)
3127 {
3128 MODIFY_REG_FIELD(BLUE->INTERRUPT1REG, BLUE_INTERRUPT1REG_ALL, value);
3129 }
3130
3131 /**
3132 * @brief
3133 * @note
3134 * @rmtoll INTERRUPT1REG ALL LL_RADIO_BlueGetInterrupt1RegRegister
3135 * @retval uint32_t
3136 */
LL_RADIO_BlueGetInterrupt1RegRegister(void)3137 __STATIC_INLINE uint32_t LL_RADIO_BlueGetInterrupt1RegRegister(void)
3138 {
3139 return (uint32_t)(READ_BIT(BLUE->INTERRUPT1REG, BLUE_INTERRUPT1REG_ALL) >> BLUE_INTERRUPT1REG_ALL_Pos);
3140 }
3141 #endif /* BLUE_INTERRUPT1REG_ALL */
3142
3143 /**
3144 * @brief
3145 * @note
3146 * @rmtoll TIMERCAPTUREREG TIMERCAPTURE LL_RADIO_BlueGetTimerCapture
3147 * @retval uint32_t
3148 */
LL_RADIO_BlueGetTimerCapture(void)3149 __STATIC_INLINE uint32_t LL_RADIO_BlueGetTimerCapture(void)
3150 {
3151 return (uint32_t)(READ_BIT(BLUE->TIMERCAPTUREREG,
3152 BLUE_TIMERCAPTUREREG_TIMERCAPTURE) >> BLUE_TIMERCAPTUREREG_TIMERCAPTURE_Pos);
3153 }
3154
3155 /**
3156 * @brief
3157 * @note
3158 * @rmtoll CMDREG CLEARSEMAREQ LL_RADIO_BlueSetClearSemaphoreRequest
3159 * @param value
3160 * @retval None
3161 */
LL_RADIO_BlueSetClearSemaphoreRequest(uint32_t value)3162 __STATIC_INLINE void LL_RADIO_BlueSetClearSemaphoreRequest(uint32_t value)
3163 {
3164 MODIFY_REG_FIELD(BLUE->CMDREG, BLUE_CMDREG_CLEARSEMAREQ, value);
3165 }
3166
3167 /**
3168 * @brief
3169 * @note
3170 * @rmtoll CMDREG CLEARSEMAREQ LL_RADIO_BlueGetClearSemaphoreRequest
3171 * @retval uint32_t
3172 */
LL_RADIO_BlueGetClearSemaphoreRequest(void)3173 __STATIC_INLINE uint32_t LL_RADIO_BlueGetClearSemaphoreRequest(void)
3174 {
3175 return (uint32_t)(READ_BIT(BLUE->CMDREG, BLUE_CMDREG_CLEARSEMAREQ) >> BLUE_CMDREG_CLEARSEMAREQ_Pos);
3176 }
3177
3178 /**
3179 * @brief
3180 * @note
3181 * @rmtoll CMDREG BLUE_CMDREG_TXRXSKIP LL_RADIO_BlueSetTxRxSkip
3182 * @param value
3183 * @retval None
3184 */
LL_RADIO_BlueSetTxRxSkip(uint32_t value)3185 __STATIC_INLINE void LL_RADIO_BlueSetTxRxSkip(uint32_t value)
3186 {
3187 MODIFY_REG_FIELD(BLUE->CMDREG, BLUE_CMDREG_TXRXSKIP, value);
3188 }
3189
3190 /**
3191 * @brief
3192 * @note
3193 * @rmtoll STATUSREG ACTIVE2ERROR LL_RADIO_BlueGetActive2Error
3194 * @retval uint32_t
3195 */
LL_RADIO_BlueGetActive2Error(void)3196 __STATIC_INLINE uint32_t LL_RADIO_BlueGetActive2Error(void)
3197 {
3198 return (uint32_t)(READ_BIT(BLUE->STATUSREG, BLUE_STATUSREG_ACTIVE2ERROR) >> BLUE_STATUSREG_ACTIVE2ERROR_Pos);
3199 }
3200
3201 /**
3202 * @brief
3203 * @note
3204 * @rmtoll INTERRUPT1LATENCYREG INTERRUPT1LATENCY LL_RADIO_BlueGetInterrupt1Latency
3205 * @retval uint32_t
3206 */
LL_RADIO_BlueGetInterrupt1Latency(void)3207 __STATIC_INLINE uint32_t LL_RADIO_BlueGetInterrupt1Latency(void)
3208 {
3209 return (uint32_t)(READ_BIT(BLUE->INTERRUPT1LATENCYREG,
3210 BLUE_INTERRUPT1LATENCYREG_INTERRUPT1LATENCY) >> BLUE_INTERRUPT1LATENCYREG_INTERRUPT1LATENCY_Pos);
3211 }
3212
3213 /**
3214 * @brief
3215 * @note
3216 * @rmtoll MANAESKEY0REG MANAESKEY_31_0 LL_RADIO_BlueSetManualAesKey_31_0
3217 * @param value
3218 * @retval None
3219 */
LL_RADIO_BlueSetManualAesKey_31_0(uint32_t value)3220 __STATIC_INLINE void LL_RADIO_BlueSetManualAesKey_31_0(uint32_t value)
3221 {
3222 MODIFY_REG_FIELD(BLUE->MANAESKEY0REG, BLUE_MANAESKEY0REG_MANAESKEY_31_0, value);
3223 }
3224
3225 /**
3226 * @brief
3227 * @note
3228 * @rmtoll MANAESKEY0REG MANAESKEY_31_0 LL_RADIO_BlueGetManualAesKey_31_0
3229 * @retval uint32_t
3230 */
LL_RADIO_BlueGetManualAesKey_31_0(void)3231 __STATIC_INLINE uint32_t LL_RADIO_BlueGetManualAesKey_31_0(void)
3232 {
3233 return (uint32_t)(READ_BIT(BLUE->MANAESKEY0REG,
3234 BLUE_MANAESKEY0REG_MANAESKEY_31_0) >> BLUE_MANAESKEY0REG_MANAESKEY_31_0_Pos);
3235 }
3236
3237 /**
3238 * @brief
3239 * @note
3240 * @rmtoll MANAESCMDREG START LL_RADIO_BlueSetManAESCmdStart
3241 * @param value
3242 * @retval None
3243 */
LL_RADIO_BlueSetManAESCmdStart(uint32_t value)3244 __STATIC_INLINE void LL_RADIO_BlueSetManAESCmdStart(uint32_t value)
3245 {
3246 MODIFY_REG_FIELD(BLUE->MANAESCMDREG, BLUE_MANAESCMDREG_START, value);
3247 }
3248
3249 /**
3250 * @brief
3251 * @note
3252 * @rmtoll MANAESCMDREG START LL_RADIO_BlueGetManAESCmdStart
3253 * @retval uint32_t
3254 */
LL_RADIO_BlueGetManAESCmdStart(void)3255 __STATIC_INLINE uint32_t LL_RADIO_BlueGetManAESCmdStart(void)
3256 {
3257 return (uint32_t)(READ_BIT(BLUE->MANAESCMDREG, BLUE_MANAESCMDREG_START) >> BLUE_MANAESCMDREG_START_Pos);
3258 }
3259
3260 /**
3261 * @brief
3262 * @note
3263 * @rmtoll MANAESSTATREG BUSY LL_RADIO_BlueGetManAESStatusBusy
3264 * @retval uint32_t
3265 */
LL_RADIO_BlueGetManAESStatusBusy(void)3266 __STATIC_INLINE uint32_t LL_RADIO_BlueGetManAESStatusBusy(void)
3267 {
3268 return (uint32_t)(READ_BIT(BLUE->MANAESSTATREG, BLUE_MANAESSTATREG_BUSY) >> BLUE_MANAESSTATREG_BUSY_Pos);
3269 }
3270
3271 #ifdef BLUE_STATUS2REG_IQSAMPLES_READY
3272 /**
3273 * @brief
3274 * @note
3275 * @rmtoll STATUS2REG IQSAMPLES_READY LL_RADIO_GetIQSamplesReady
3276 * @retval uint32_t
3277 */
LL_RADIO_GetIQSamplesReady(void)3278 __STATIC_INLINE uint32_t LL_RADIO_GetIQSamplesReady(void)
3279 {
3280 return (uint32_t)(READ_BIT(BLUE->STATUS2REG, BLUE_STATUS2REG_IQSAMPLES_READY) >> BLUE_STATUS2REG_IQSAMPLES_READY_Pos);
3281 }
3282 #endif /* BLUE_STATUS2REG_IQSAMPLES_READY */
3283
3284 #ifdef BLUE_STATUS2REG_IQSAMPLES_NUMBER
3285 /**
3286 * @brief
3287 * @note
3288 * @rmtoll STATUS2REG IQSAMPLES_NUMBER LL_RADIO_GetIQSamplesNumber
3289 * @retval uint32_t
3290 */
LL_RADIO_GetIQSamplesNumber(void)3291 __STATIC_INLINE uint32_t LL_RADIO_GetIQSamplesNumber(void)
3292 {
3293 return (uint32_t)(READ_BIT(BLUE->STATUS2REG, BLUE_STATUS2REG_IQSAMPLES_NUMBER) >> BLUE_STATUS2REG_IQSAMPLES_NUMBER_Pos);
3294 }
3295 #endif /* BLUE_STATUS2REG_IQSAMPLES_NUMBER */
3296
3297 #ifdef BLUE_STATUS2REG_IQSAMPLES_MISSING_ERROR
3298 /**
3299 * @brief
3300 * @note
3301 * @rmtoll STATUS2REG IQSAMPLES_MISSING_ERROR LL_RADIO_GetIQSamplesMissingError
3302 * @retval uint32_t
3303 */
LL_RADIO_GetIQSamplesMissingError(void)3304 __STATIC_INLINE uint32_t LL_RADIO_GetIQSamplesMissingError(void)
3305 {
3306 return (uint32_t)(READ_BIT(BLUE->STATUS2REG,
3307 BLUE_STATUS2REG_IQSAMPLES_MISSING_ERROR) >> BLUE_STATUS2REG_IQSAMPLES_MISSING_ERROR_Pos);
3308 }
3309 #endif /* BLUE_STATUS2REG_IQSAMPLES_MISSING_ERROR */
3310
3311 #ifdef BLUE_STATUS2REG_ANTENNA_SWITCHING_PATTERN_ACCESS_ERROR
3312 /**
3313 * @brief
3314 * @note
3315 * @rmtoll STATUS2REG ANTENNA_SWITCHING_PATTERN_ACCESS_ERROR LL_RADIO_GetAntennaSwitchingPatternAccessError
3316 * @retval uint32_t
3317 */
LL_RADIO_GetAntennaSwitchingPatternAccessError(void)3318 __STATIC_INLINE uint32_t LL_RADIO_GetAntennaSwitchingPatternAccessError(void)
3319 {
3320 return (uint32_t)(READ_BIT(BLUE->STATUS2REG,
3321 BLUE_STATUS2REG_ANTENNA_SWITCHING_PATTERN_ACCESS_ERROR) >> BLUE_STATUS2REG_ANTENNA_SWITCHING_PATTERN_ACCESS_ERROR_Pos);
3322 }
3323 #endif /* BLUE_STATUS2REG_ANTENNA_SWITCHING_PATTERN_ACCESS_ERROR */
3324
3325
3326 #ifdef BLUE_STATUS2REG_ANTENNA_SWITCHING_PATTERN_ADDRESS_ERROR
3327 /**
3328 * @brief
3329 * @note
3330 * @rmtoll STATUS2REG ANTENNA_SWITCHING_PATTERN_ADDRESS_ERROR LL_RADIO_GetAntennaSwitchingPatternAddressError
3331 * @retval uint32_t
3332 */
LL_RADIO_GetAntennaSwitchingPatternAddressError(void)3333 __STATIC_INLINE uint32_t LL_RADIO_GetAntennaSwitchingPatternAddressError(void)
3334 {
3335 return (uint32_t)(READ_BIT(BLUE->STATUS2REG,
3336 BLUE_STATUS2REG_ANTENNA_SWITCHING_PATTERN_ADDRESS_ERROR) >>
3337 BLUE_STATUS2REG_ANTENNA_SWITCHING_PATTERN_ADDRESS_ERROR_Pos);
3338 }
3339 #endif /* BLUE_STATUS2REG_ANTENNA_SWITCHING_PATTERN_ADDRESS_ERROR */
3340
3341
3342 /**
3343 * @}
3344 */
3345
3346
3347 /**
3348 * @}
3349 */
3350
3351 /**
3352 * @}
3353 */
3354
3355 /**
3356 * @}
3357 */
3358
3359 #ifdef __cplusplus
3360 }
3361 #endif
3362
3363 #endif /*STM32WB0x_LL_RADIO_H */
3364