at32f413_bpr.h 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789
  1. /**
  2. **************************************************************************
  3. * @file at32f413_bpr.h
  4. * @version v2.0.5
  5. * @date 2022-05-20
  6. * @brief at32f413 bpr header file
  7. **************************************************************************
  8. * Copyright notice & Disclaimer
  9. *
  10. * The software Board Support Package (BSP) that is made available to
  11. * download from Artery official website is the copyrighted work of Artery.
  12. * Artery authorizes customers to use, copy, and distribute the BSP
  13. * software and its related documentation for the purpose of design and
  14. * development in conjunction with Artery microcontrollers. Use of the
  15. * software is governed by this copyright notice and the following disclaimer.
  16. *
  17. * THIS SOFTWARE IS PROVIDED ON "AS IS" BASIS WITHOUT WARRANTIES,
  18. * GUARANTEES OR REPRESENTATIONS OF ANY KIND. ARTERY EXPRESSLY DISCLAIMS,
  19. * TO THE FULLEST EXTENT PERMITTED BY LAW, ALL EXPRESS, IMPLIED OR
  20. * STATUTORY OR OTHER WARRANTIES, GUARANTEES OR REPRESENTATIONS,
  21. * INCLUDING BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
  22. * FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT.
  23. *
  24. **************************************************************************
  25. */
  26. /* define to prevent recursive inclusion -------------------------------------*/
  27. #ifndef __AT32F413_BPR_H
  28. #define __AT32F413_BPR_H
  29. #ifdef __cplusplus
  30. extern "C" {
  31. #endif
  32. /* Includes ------------------------------------------------------------------*/
  33. #include "at32f413.h"
  34. /** @addtogroup AT32F413_periph_driver
  35. * @{
  36. */
  37. /** @addtogroup BPR
  38. * @{
  39. */
  40. /** @defgroup BPR_flags_definition
  41. * @brief bpr flag
  42. * @{
  43. */
  44. #define BPR_TAMPER_INTERRUPT_FLAG ((uint32_t)0x00000001) /*!< bpr tamper interrupt flag */
  45. #define BPR_TAMPER_EVENT_FLAG ((uint32_t)0x00000002) /*!< bpr tamper event flag */
  46. /**
  47. * @}
  48. */
  49. /** @defgroup BPR_exported_types
  50. * @{
  51. */
  52. /**
  53. * @brief battery powered register data type
  54. */
  55. typedef enum
  56. {
  57. BPR_DATA1 = 0x04, /*!< bpr data register 1 */
  58. BPR_DATA2 = 0x08, /*!< bpr data register 2 */
  59. BPR_DATA3 = 0x0C, /*!< bpr data register 3 */
  60. BPR_DATA4 = 0x10, /*!< bpr data register 4 */
  61. BPR_DATA5 = 0x14, /*!< bpr data register 5 */
  62. BPR_DATA6 = 0x18, /*!< bpr data register 6 */
  63. BPR_DATA7 = 0x1C, /*!< bpr data register 7 */
  64. BPR_DATA8 = 0x20, /*!< bpr data register 8 */
  65. BPR_DATA9 = 0x24, /*!< bpr data register 9 */
  66. BPR_DATA10 = 0x28, /*!< bpr data register 10 */
  67. BPR_DATA11 = 0x40, /*!< bpr data register 11 */
  68. BPR_DATA12 = 0x44, /*!< bpr data register 12 */
  69. BPR_DATA13 = 0x48, /*!< bpr data register 13 */
  70. BPR_DATA14 = 0x4C, /*!< bpr data register 14 */
  71. BPR_DATA15 = 0x50, /*!< bpr data register 15 */
  72. BPR_DATA16 = 0x54, /*!< bpr data register 16 */
  73. BPR_DATA17 = 0x58, /*!< bpr data register 17 */
  74. BPR_DATA18 = 0x5C, /*!< bpr data register 18 */
  75. BPR_DATA19 = 0x60, /*!< bpr data register 19 */
  76. BPR_DATA20 = 0x64, /*!< bpr data register 20 */
  77. BPR_DATA21 = 0x68, /*!< bpr data register 21 */
  78. BPR_DATA22 = 0x6C, /*!< bpr data register 22 */
  79. BPR_DATA23 = 0x70, /*!< bpr data register 23 */
  80. BPR_DATA24 = 0x74, /*!< bpr data register 24 */
  81. BPR_DATA25 = 0x78, /*!< bpr data register 25 */
  82. BPR_DATA26 = 0x7C, /*!< bpr data register 26 */
  83. BPR_DATA27 = 0x80, /*!< bpr data register 27 */
  84. BPR_DATA28 = 0x84, /*!< bpr data register 28 */
  85. BPR_DATA29 = 0x88, /*!< bpr data register 29 */
  86. BPR_DATA30 = 0x8C, /*!< bpr data register 30 */
  87. BPR_DATA31 = 0x90, /*!< bpr data register 31 */
  88. BPR_DATA32 = 0x94, /*!< bpr data register 32 */
  89. BPR_DATA33 = 0x98, /*!< bpr data register 33 */
  90. BPR_DATA34 = 0x9C, /*!< bpr data register 34 */
  91. BPR_DATA35 = 0xA0, /*!< bpr data register 35 */
  92. BPR_DATA36 = 0xA4, /*!< bpr data register 36 */
  93. BPR_DATA37 = 0xA8, /*!< bpr data register 37 */
  94. BPR_DATA38 = 0xAC, /*!< bpr data register 38 */
  95. BPR_DATA39 = 0xB0, /*!< bpr data register 39 */
  96. BPR_DATA40 = 0xB4, /*!< bpr data register 40 */
  97. BPR_DATA41 = 0xB8, /*!< bpr data register 41 */
  98. BPR_DATA42 = 0xBC /*!< bpr data register 42 */
  99. } bpr_data_type;
  100. /**
  101. * @brief bpr rtc output type
  102. */
  103. typedef enum
  104. {
  105. BPR_RTC_OUTPUT_NONE = 0x000, /*!< output disable */
  106. BPR_RTC_OUTPUT_CLOCK_CAL_BEFORE = 0x080, /*!< output clock before calibration */
  107. BPR_RTC_OUTPUT_ALARM = 0x100, /*!< output alarm event with pluse mode */
  108. BPR_RTC_OUTPUT_SECOND = 0x300, /*!< output second event with pluse mode */
  109. BPR_RTC_OUTPUT_CLOCK_CAL_AFTER = 0x480, /*!< output clock after calibration */
  110. BPR_RTC_OUTPUT_ALARM_TOGGLE = 0x900, /*!< output alarm event with toggle mode */
  111. BPR_RTC_OUTPUT_SECOND_TOGGLE = 0xB00 /*!< output second event with toggle mode */
  112. } bpr_rtc_output_type;
  113. /**
  114. * @brief tamper pin active level type
  115. */
  116. typedef enum
  117. {
  118. BPR_TAMPER_PIN_ACTIVE_HIGH = 0x00, /*!< tamper pin input active level is high */
  119. BPR_TAMPER_PIN_ACTIVE_LOW = 0x01 /*!< tamper pin input active level is low */
  120. } bpr_tamper_pin_active_level_type;
  121. /**
  122. * @brief type define bpr register all
  123. */
  124. typedef struct
  125. {
  126. /**
  127. * @brief reserved, offset:0x00
  128. */
  129. __IO uint32_t reserved1;
  130. /**
  131. * @brief bpr dt1 register, offset:0x04
  132. */
  133. union
  134. {
  135. __IO uint32_t dt1;
  136. struct
  137. {
  138. __IO uint32_t dt : 16;/* [15:0] */
  139. __IO uint32_t reserved1 : 16;/* [31:15] */
  140. } dt1_bit;
  141. };
  142. /**
  143. * @brief bpr dt2 register, offset:0x08
  144. */
  145. union
  146. {
  147. __IO uint32_t dt2;
  148. struct
  149. {
  150. __IO uint32_t dt : 16;/* [15:0] */
  151. __IO uint32_t reserved1 : 16;/* [31:15] */
  152. } dt2_bit;
  153. };
  154. /**
  155. * @brief bpr dt3 register, offset:0x0C
  156. */
  157. union
  158. {
  159. __IO uint32_t dt3;
  160. struct
  161. {
  162. __IO uint32_t dt : 16;/* [15:0] */
  163. __IO uint32_t reserved1 : 16;/* [31:15] */
  164. } dt3_bit;
  165. };
  166. /**
  167. * @brief bpr dt4 register, offset:0x10
  168. */
  169. union
  170. {
  171. __IO uint32_t dt4;
  172. struct
  173. {
  174. __IO uint32_t dt : 16;/* [15:0] */
  175. __IO uint32_t reserved1 : 16;/* [31:15] */
  176. } dt4_bit;
  177. };
  178. /**
  179. * @brief bpr dt5 register, offset:0x14
  180. */
  181. union
  182. {
  183. __IO uint32_t dt5;
  184. struct
  185. {
  186. __IO uint32_t dt : 16;/* [15:0] */
  187. __IO uint32_t reserved1 : 16;/* [31:15] */
  188. } dt5_bit;
  189. };
  190. /**
  191. * @brief bpr dt6 register, offset:0x18
  192. */
  193. union
  194. {
  195. __IO uint32_t dt6;
  196. struct
  197. {
  198. __IO uint32_t dt : 16;/* [15:0] */
  199. __IO uint32_t reserved1 : 16;/* [31:15] */
  200. } dt6_bit;
  201. };
  202. /**
  203. * @brief bpr dt7 register, offset:0x1C
  204. */
  205. union
  206. {
  207. __IO uint32_t dt7;
  208. struct
  209. {
  210. __IO uint32_t dt : 16;/* [15:0] */
  211. __IO uint32_t reserved1 : 16;/* [31:15] */
  212. } dt7_bit;
  213. };
  214. /**
  215. * @brief bpr dt8 register, offset:0x20
  216. */
  217. union
  218. {
  219. __IO uint32_t dt8;
  220. struct
  221. {
  222. __IO uint32_t dt : 16;/* [15:0] */
  223. __IO uint32_t reserved1 : 16;/* [31:15] */
  224. } dt8_bit;
  225. };
  226. /**
  227. * @brief bpr dt9 register, offset:0x24
  228. */
  229. union
  230. {
  231. __IO uint32_t dt9;
  232. struct
  233. {
  234. __IO uint32_t dt : 16;/* [15:0] */
  235. __IO uint32_t reserved1 : 16;/* [31:15] */
  236. } dt9_bit;
  237. };
  238. /**
  239. * @brief bpr dt10 register, offset:0x28
  240. */
  241. union
  242. {
  243. __IO uint32_t dt10;
  244. struct
  245. {
  246. __IO uint32_t dt : 16;/* [15:0] */
  247. __IO uint32_t reserved1 : 16;/* [31:15] */
  248. } dt10_bit;
  249. };
  250. /**
  251. * @brief bpr rtccal register, offset:0x2C
  252. */
  253. union
  254. {
  255. __IO uint32_t rtccal;
  256. struct
  257. {
  258. __IO uint32_t calval : 7; /* [6:0] */
  259. __IO uint32_t calout : 1; /* [7] */
  260. __IO uint32_t outen : 1; /* [8] */
  261. __IO uint32_t outsel : 1; /* [9] */
  262. __IO uint32_t ccos : 1; /* [10] */
  263. __IO uint32_t outm : 1; /* [11] */
  264. __IO uint32_t reserved1 : 20;/* [31:12] */
  265. } rtccal_bit;
  266. };
  267. /**
  268. * @brief bpr ctrl register, offset:0x30
  269. */
  270. union
  271. {
  272. __IO uint32_t ctrl;
  273. struct
  274. {
  275. __IO uint32_t tpen : 1; /* [0] */
  276. __IO uint32_t tpp : 1; /* [1] */
  277. __IO uint32_t reserved1 : 30;/* [31:2] */
  278. } ctrl_bit;
  279. };
  280. /**
  281. * @brief bpr ctrlsts register, offset:0x34
  282. */
  283. union
  284. {
  285. __IO uint32_t ctrlsts;
  286. struct
  287. {
  288. __IO uint32_t tpefclr : 1;/* [0] */
  289. __IO uint32_t tpifclr : 1;/* [1] */
  290. __IO uint32_t tpien : 1;/* [2] */
  291. __IO uint32_t reserved1 : 5;/* [7:3] */
  292. __IO uint32_t tpef : 1;/* [8] */
  293. __IO uint32_t tpif : 1;/* [9] */
  294. __IO uint32_t reserved2 : 22;/* [31:10] */
  295. } ctrlsts_bit;
  296. };
  297. /**
  298. * @brief reserved, offset:0x38
  299. */
  300. __IO uint32_t reserved2;
  301. /**
  302. * @brief reserved, offset:0x3C
  303. */
  304. __IO uint32_t reserved3;
  305. /**
  306. * @brief bpr dt11 register, offset:0x40
  307. */
  308. union
  309. {
  310. __IO uint32_t dt11;
  311. struct
  312. {
  313. __IO uint32_t dt : 16;/* [15:0] */
  314. __IO uint32_t reserved1 : 16;/* [31:15] */
  315. } dt11_bit;
  316. };
  317. /**
  318. * @brief bpr dt12 register, offset:0x44
  319. */
  320. union
  321. {
  322. __IO uint32_t dt12;
  323. struct
  324. {
  325. __IO uint32_t dt : 16;/* [15:0] */
  326. __IO uint32_t reserved1 : 16;/* [31:15] */
  327. } dt12_bit;
  328. };
  329. /**
  330. * @brief bpr dt13 register, offset:0x48
  331. */
  332. union
  333. {
  334. __IO uint32_t dt13;
  335. struct
  336. {
  337. __IO uint32_t dt : 16;/* [15:0] */
  338. __IO uint32_t reserved1 : 16;/* [31:15] */
  339. } dt13_bit;
  340. };
  341. /**
  342. * @brief bpr dt14 register, offset:0x4C
  343. */
  344. union
  345. {
  346. __IO uint32_t dt14;
  347. struct
  348. {
  349. __IO uint32_t dt : 16;/* [15:0] */
  350. __IO uint32_t reserved1 : 16;/* [31:15] */
  351. } dt14_bit;
  352. };
  353. /**
  354. * @brief bpr dt15 register, offset:0x50
  355. */
  356. union
  357. {
  358. __IO uint32_t dt15;
  359. struct
  360. {
  361. __IO uint32_t dt : 16;/* [15:0] */
  362. __IO uint32_t reserved1 : 16;/* [31:15] */
  363. } dt15_bit;
  364. };
  365. /**
  366. * @brief bpr dt16 register, offset:0x54
  367. */
  368. union
  369. {
  370. __IO uint32_t dt16;
  371. struct
  372. {
  373. __IO uint32_t dt : 16;/* [15:0] */
  374. __IO uint32_t reserved1 : 16;/* [31:15] */
  375. } dt16_bit;
  376. };
  377. /**
  378. * @brief bpr dt17 register, offset:0x58
  379. */
  380. union
  381. {
  382. __IO uint32_t dt17;
  383. struct
  384. {
  385. __IO uint32_t dt : 16;/* [15:0] */
  386. __IO uint32_t reserved1 : 16;/* [31:15] */
  387. } dt17_bit;
  388. };
  389. /**
  390. * @brief bpr dt18 register, offset:0x5C
  391. */
  392. union
  393. {
  394. __IO uint32_t dt18;
  395. struct
  396. {
  397. __IO uint32_t dt : 16;/* [15:0] */
  398. __IO uint32_t reserved1 : 16;/* [31:15] */
  399. } dt18_bit;
  400. };
  401. /**
  402. * @brief bpr dt19 register, offset:0x60
  403. */
  404. union
  405. {
  406. __IO uint32_t dt19;
  407. struct
  408. {
  409. __IO uint32_t dt : 16;/* [15:0] */
  410. __IO uint32_t reserved1 : 16;/* [31:15] */
  411. } dt19_bit;
  412. };
  413. /**
  414. * @brief bpr dt20 register, offset:0x64
  415. */
  416. union
  417. {
  418. __IO uint32_t dt20;
  419. struct
  420. {
  421. __IO uint32_t dt : 16;/* [15:0] */
  422. __IO uint32_t reserved1 : 16;/* [31:15] */
  423. } dt20_bit;
  424. };
  425. /**
  426. * @brief bpr dt21 register, offset:0x68
  427. */
  428. union
  429. {
  430. __IO uint32_t dt21;
  431. struct
  432. {
  433. __IO uint32_t dt : 16;/* [15:0] */
  434. __IO uint32_t reserved1 : 16;/* [31:15] */
  435. } dt21_bit;
  436. };
  437. /**
  438. * @brief bpr dt22 register, offset:6C
  439. */
  440. union
  441. {
  442. __IO uint32_t dt22;
  443. struct
  444. {
  445. __IO uint32_t dt : 16;/* [15:0] */
  446. __IO uint32_t reserved1 : 16;/* [31:15] */
  447. } dt22_bit;
  448. };
  449. /**
  450. * @brief bpr dt23 register, offset:0x70
  451. */
  452. union
  453. {
  454. __IO uint32_t dt23;
  455. struct
  456. {
  457. __IO uint32_t dt : 16;/* [15:0] */
  458. __IO uint32_t reserved1 : 16;/* [31:15] */
  459. } dt23_bit;
  460. };
  461. /**
  462. * @brief bpr dt24 register, offset:0x74
  463. */
  464. union
  465. {
  466. __IO uint32_t dt24;
  467. struct
  468. {
  469. __IO uint32_t dt : 16;/* [15:0] */
  470. __IO uint32_t reserved1 : 16;/* [31:15] */
  471. } dt24_bit;
  472. };
  473. /**
  474. * @brief bpr dt25 register, offset:0x78
  475. */
  476. union
  477. {
  478. __IO uint32_t dt25;
  479. struct
  480. {
  481. __IO uint32_t dt : 16;/* [15:0] */
  482. __IO uint32_t reserved1 : 16;/* [31:15] */
  483. } dt25_bit;
  484. };
  485. /**
  486. * @brief bpr dt26 register, offset:0x7C
  487. */
  488. union
  489. {
  490. __IO uint32_t dt26;
  491. struct
  492. {
  493. __IO uint32_t dt : 16;/* [15:0] */
  494. __IO uint32_t reserved1 : 16;/* [31:15] */
  495. } dt26_bit;
  496. };
  497. /**
  498. * @brief bpr dt27 register, offset:0x80
  499. */
  500. union
  501. {
  502. __IO uint32_t dt27;
  503. struct
  504. {
  505. __IO uint32_t dt : 16;/* [15:0] */
  506. __IO uint32_t reserved1 : 16;/* [31:15] */
  507. } dt27_bit;
  508. };
  509. /**
  510. * @brief bpr dt28 register, offset:0x84
  511. */
  512. union
  513. {
  514. __IO uint32_t dt28;
  515. struct
  516. {
  517. __IO uint32_t dt : 16;/* [15:0] */
  518. __IO uint32_t reserved1 : 16;/* [31:15] */
  519. } dt28_bit;
  520. };
  521. /**
  522. * @brief bpr dt29 register, offset:0x88
  523. */
  524. union
  525. {
  526. __IO uint32_t dt29;
  527. struct
  528. {
  529. __IO uint32_t dt : 16;/* [15:0] */
  530. __IO uint32_t reserved1 : 16;/* [31:15] */
  531. } dt29_bit;
  532. };
  533. /**
  534. * @brief bpr dt30 register, offset:0x8C
  535. */
  536. union
  537. {
  538. __IO uint32_t dt30;
  539. struct
  540. {
  541. __IO uint32_t dt : 16;/* [15:0] */
  542. __IO uint32_t reserved1 : 16;/* [31:15] */
  543. } dt30_bit;
  544. };
  545. /**
  546. * @brief bpr dt31 register, offset:0x90
  547. */
  548. union
  549. {
  550. __IO uint32_t dt31;
  551. struct
  552. {
  553. __IO uint32_t dt : 16;/* [15:0] */
  554. __IO uint32_t reserved1 : 16;/* [31:15] */
  555. } dt31_bit;
  556. };
  557. /**
  558. * @brief bpr dt32 register, offset:0x94
  559. */
  560. union
  561. {
  562. __IO uint32_t dt32;
  563. struct
  564. {
  565. __IO uint32_t dt : 16;/* [15:0] */
  566. __IO uint32_t reserved1 : 16;/* [31:15] */
  567. } dt32_bit;
  568. };
  569. /**
  570. * @brief bpr dt33 register, offset:0x98
  571. */
  572. union
  573. {
  574. __IO uint32_t dt33;
  575. struct
  576. {
  577. __IO uint32_t dt : 16;/* [15:0] */
  578. __IO uint32_t reserved1 : 16;/* [31:15] */
  579. } dt33_bit;
  580. };
  581. /**
  582. * @brief bpr dt34 register, offset:0x9C
  583. */
  584. union
  585. {
  586. __IO uint32_t dt34;
  587. struct
  588. {
  589. __IO uint32_t dt : 16;/* [15:0] */
  590. __IO uint32_t reserved1 : 16;/* [31:15] */
  591. } dt34_bit;
  592. };
  593. /**
  594. * @brief bpr dt35 register, offset:0xA0
  595. */
  596. union
  597. {
  598. __IO uint32_t dt35;
  599. struct
  600. {
  601. __IO uint32_t dt : 16;/* [15:0] */
  602. __IO uint32_t reserved1 : 16;/* [31:15] */
  603. } dt35_bit;
  604. };
  605. /**
  606. * @brief bpr dt36 register, offset:0xA4
  607. */
  608. union
  609. {
  610. __IO uint32_t dt36;
  611. struct
  612. {
  613. __IO uint32_t dt : 16;/* [15:0] */
  614. __IO uint32_t reserved1 : 16;/* [31:15] */
  615. } dt36_bit;
  616. };
  617. /**
  618. * @brief bpr dt37 register, offset:0xA8
  619. */
  620. union
  621. {
  622. __IO uint32_t dt37;
  623. struct
  624. {
  625. __IO uint32_t dt : 16;/* [15:0] */
  626. __IO uint32_t reserved1 : 16;/* [31:15] */
  627. } dt37_bit;
  628. };
  629. /**
  630. * @brief bpr dt38 register, offset:0xAC
  631. */
  632. union
  633. {
  634. __IO uint32_t dt38;
  635. struct
  636. {
  637. __IO uint32_t dt : 16;/* [15:0] */
  638. __IO uint32_t reserved1 : 16;/* [31:15] */
  639. } dt38_bit;
  640. };
  641. /**
  642. * @brief bpr dt39 register, offset:0xB0
  643. */
  644. union
  645. {
  646. __IO uint32_t dt39;
  647. struct
  648. {
  649. __IO uint32_t dt : 16;/* [15:0] */
  650. __IO uint32_t reserved1 : 16;/* [31:15] */
  651. } dt39_bit;
  652. };
  653. /**
  654. * @brief bpr dt40 register, offset:0xB4
  655. */
  656. union
  657. {
  658. __IO uint32_t dt40;
  659. struct
  660. {
  661. __IO uint32_t dt : 16;/* [15:0] */
  662. __IO uint32_t reserved1 : 16;/* [31:15] */
  663. } dt40_bit;
  664. };
  665. /**
  666. * @brief bpr dt41 register, offset:0xB8
  667. */
  668. union
  669. {
  670. __IO uint32_t dt41;
  671. struct
  672. {
  673. __IO uint32_t dt : 16;/* [15:0] */
  674. __IO uint32_t reserved1 : 16;/* [31:15] */
  675. } dt41_bit;
  676. };
  677. /**
  678. * @brief bpr dt42 register, offset:0xBC
  679. */
  680. union
  681. {
  682. __IO uint32_t dt42;
  683. struct
  684. {
  685. __IO uint32_t dt : 16;/* [15:0] */
  686. __IO uint32_t reserved1 : 16;/* [31:15] */
  687. } dt42_bit;
  688. };
  689. } bpr_type;
  690. /**
  691. * @}
  692. */
  693. #define BPR ((bpr_type *) BPR_BASE)
  694. /** @defgroup BPR_exported_functions
  695. * @{
  696. */
  697. void bpr_reset(void);
  698. flag_status bpr_flag_get(uint32_t flag);
  699. void bpr_flag_clear(uint32_t flag);
  700. void bpr_interrupt_enable(confirm_state new_state);
  701. uint16_t bpr_data_read(bpr_data_type bpr_data);
  702. void bpr_data_write(bpr_data_type bpr_data, uint16_t data_value);
  703. void bpr_rtc_output_select(bpr_rtc_output_type output_source);
  704. void bpr_rtc_clock_calibration_value_set(uint8_t calibration_value);
  705. void bpr_tamper_pin_enable(confirm_state new_state);
  706. void bpr_tamper_pin_active_level_set(bpr_tamper_pin_active_level_type active_level);
  707. /**
  708. * @}
  709. */
  710. /**
  711. * @}
  712. */
  713. /**
  714. * @}
  715. */
  716. #ifdef __cplusplus
  717. }
  718. #endif
  719. #endif