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