at32f403a_407_bpr.h 20 KB

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