at32f413_bpr.h 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786
  1. /**
  2. **************************************************************************
  3. * @file at32f413_bpr.h
  4. * @brief at32f413 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 __AT32F413_BPR_H
  26. #define __AT32F413_BPR_H
  27. #ifdef __cplusplus
  28. extern "C" {
  29. #endif
  30. /* Includes ------------------------------------------------------------------*/
  31. #include "at32f413.h"
  32. /** @addtogroup AT32F413_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_type;
  109. /**
  110. * @brief tamper pin active level type
  111. */
  112. typedef enum
  113. {
  114. BPR_TAMPER_PIN_ACTIVE_HIGH = 0x00, /*!< tamper pin input active level is high */
  115. BPR_TAMPER_PIN_ACTIVE_LOW = 0x01 /*!< tamper pin input active level is low */
  116. } bpr_tamper_pin_active_level_type;
  117. /**
  118. * @brief type define bpr register all
  119. */
  120. typedef struct
  121. {
  122. /**
  123. * @brief reserved, offset:0x00
  124. */
  125. __IO uint32_t reserved1;
  126. /**
  127. * @brief bpr dt1 register, offset:0x04
  128. */
  129. union
  130. {
  131. __IO uint32_t dt1;
  132. struct
  133. {
  134. __IO uint32_t dt : 16;/* [15:0] */
  135. __IO uint32_t reserved1 : 16;/* [31:15] */
  136. } dt1_bit;
  137. };
  138. /**
  139. * @brief bpr dt2 register, offset:0x08
  140. */
  141. union
  142. {
  143. __IO uint32_t dt2;
  144. struct
  145. {
  146. __IO uint32_t dt : 16;/* [15:0] */
  147. __IO uint32_t reserved1 : 16;/* [31:15] */
  148. } dt2_bit;
  149. };
  150. /**
  151. * @brief bpr dt3 register, offset:0x0C
  152. */
  153. union
  154. {
  155. __IO uint32_t dt3;
  156. struct
  157. {
  158. __IO uint32_t dt : 16;/* [15:0] */
  159. __IO uint32_t reserved1 : 16;/* [31:15] */
  160. } dt3_bit;
  161. };
  162. /**
  163. * @brief bpr dt4 register, offset:0x10
  164. */
  165. union
  166. {
  167. __IO uint32_t dt4;
  168. struct
  169. {
  170. __IO uint32_t dt : 16;/* [15:0] */
  171. __IO uint32_t reserved1 : 16;/* [31:15] */
  172. } dt4_bit;
  173. };
  174. /**
  175. * @brief bpr dt5 register, offset:0x14
  176. */
  177. union
  178. {
  179. __IO uint32_t dt5;
  180. struct
  181. {
  182. __IO uint32_t dt : 16;/* [15:0] */
  183. __IO uint32_t reserved1 : 16;/* [31:15] */
  184. } dt5_bit;
  185. };
  186. /**
  187. * @brief bpr dt6 register, offset:0x18
  188. */
  189. union
  190. {
  191. __IO uint32_t dt6;
  192. struct
  193. {
  194. __IO uint32_t dt : 16;/* [15:0] */
  195. __IO uint32_t reserved1 : 16;/* [31:15] */
  196. } dt6_bit;
  197. };
  198. /**
  199. * @brief bpr dt7 register, offset:0x1C
  200. */
  201. union
  202. {
  203. __IO uint32_t dt7;
  204. struct
  205. {
  206. __IO uint32_t dt : 16;/* [15:0] */
  207. __IO uint32_t reserved1 : 16;/* [31:15] */
  208. } dt7_bit;
  209. };
  210. /**
  211. * @brief bpr dt8 register, offset:0x20
  212. */
  213. union
  214. {
  215. __IO uint32_t dt8;
  216. struct
  217. {
  218. __IO uint32_t dt : 16;/* [15:0] */
  219. __IO uint32_t reserved1 : 16;/* [31:15] */
  220. } dt8_bit;
  221. };
  222. /**
  223. * @brief bpr dt9 register, offset:0x24
  224. */
  225. union
  226. {
  227. __IO uint32_t dt9;
  228. struct
  229. {
  230. __IO uint32_t dt : 16;/* [15:0] */
  231. __IO uint32_t reserved1 : 16;/* [31:15] */
  232. } dt9_bit;
  233. };
  234. /**
  235. * @brief bpr dt10 register, offset:0x28
  236. */
  237. union
  238. {
  239. __IO uint32_t dt10;
  240. struct
  241. {
  242. __IO uint32_t dt : 16;/* [15:0] */
  243. __IO uint32_t reserved1 : 16;/* [31:15] */
  244. } dt10_bit;
  245. };
  246. /**
  247. * @brief bpr rtccal register, offset:0x2C
  248. */
  249. union
  250. {
  251. __IO uint32_t rtccal;
  252. struct
  253. {
  254. __IO uint32_t calval : 7; /* [6:0] */
  255. __IO uint32_t calout : 1; /* [7] */
  256. __IO uint32_t outen : 1; /* [8] */
  257. __IO uint32_t outsel : 1; /* [9] */
  258. __IO uint32_t ccos : 1; /* [10] */
  259. __IO uint32_t outm : 1; /* [11] */
  260. __IO uint32_t reserved1 : 20;/* [31:12] */
  261. } rtccal_bit;
  262. };
  263. /**
  264. * @brief bpr ctrl register, offset:0x30
  265. */
  266. union
  267. {
  268. __IO uint32_t ctrl;
  269. struct
  270. {
  271. __IO uint32_t tpen : 1; /* [0] */
  272. __IO uint32_t tpp : 1; /* [1] */
  273. __IO uint32_t reserved1 : 30;/* [31:2] */
  274. } ctrl_bit;
  275. };
  276. /**
  277. * @brief bpr ctrlsts register, offset:0x34
  278. */
  279. union
  280. {
  281. __IO uint32_t ctrlsts;
  282. struct
  283. {
  284. __IO uint32_t tpefclr : 1;/* [0] */
  285. __IO uint32_t tpifclr : 1;/* [1] */
  286. __IO uint32_t tpien : 1;/* [2] */
  287. __IO uint32_t reserved1 : 5;/* [7:3] */
  288. __IO uint32_t tpef : 1;/* [8] */
  289. __IO uint32_t tpif : 1;/* [9] */
  290. __IO uint32_t reserved2 : 22;/* [31:10] */
  291. } ctrlsts_bit;
  292. };
  293. /**
  294. * @brief reserved, offset:0x38
  295. */
  296. __IO uint32_t reserved2;
  297. /**
  298. * @brief reserved, offset:0x3C
  299. */
  300. __IO uint32_t reserved3;
  301. /**
  302. * @brief bpr dt11 register, offset:0x40
  303. */
  304. union
  305. {
  306. __IO uint32_t dt11;
  307. struct
  308. {
  309. __IO uint32_t dt : 16;/* [15:0] */
  310. __IO uint32_t reserved1 : 16;/* [31:15] */
  311. } dt11_bit;
  312. };
  313. /**
  314. * @brief bpr dt12 register, offset:0x44
  315. */
  316. union
  317. {
  318. __IO uint32_t dt12;
  319. struct
  320. {
  321. __IO uint32_t dt : 16;/* [15:0] */
  322. __IO uint32_t reserved1 : 16;/* [31:15] */
  323. } dt12_bit;
  324. };
  325. /**
  326. * @brief bpr dt13 register, offset:0x48
  327. */
  328. union
  329. {
  330. __IO uint32_t dt13;
  331. struct
  332. {
  333. __IO uint32_t dt : 16;/* [15:0] */
  334. __IO uint32_t reserved1 : 16;/* [31:15] */
  335. } dt13_bit;
  336. };
  337. /**
  338. * @brief bpr dt14 register, offset:0x4C
  339. */
  340. union
  341. {
  342. __IO uint32_t dt14;
  343. struct
  344. {
  345. __IO uint32_t dt : 16;/* [15:0] */
  346. __IO uint32_t reserved1 : 16;/* [31:15] */
  347. } dt14_bit;
  348. };
  349. /**
  350. * @brief bpr dt15 register, offset:0x50
  351. */
  352. union
  353. {
  354. __IO uint32_t dt15;
  355. struct
  356. {
  357. __IO uint32_t dt : 16;/* [15:0] */
  358. __IO uint32_t reserved1 : 16;/* [31:15] */
  359. } dt15_bit;
  360. };
  361. /**
  362. * @brief bpr dt16 register, offset:0x54
  363. */
  364. union
  365. {
  366. __IO uint32_t dt16;
  367. struct
  368. {
  369. __IO uint32_t dt : 16;/* [15:0] */
  370. __IO uint32_t reserved1 : 16;/* [31:15] */
  371. } dt16_bit;
  372. };
  373. /**
  374. * @brief bpr dt17 register, offset:0x58
  375. */
  376. union
  377. {
  378. __IO uint32_t dt17;
  379. struct
  380. {
  381. __IO uint32_t dt : 16;/* [15:0] */
  382. __IO uint32_t reserved1 : 16;/* [31:15] */
  383. } dt17_bit;
  384. };
  385. /**
  386. * @brief bpr dt18 register, offset:0x5C
  387. */
  388. union
  389. {
  390. __IO uint32_t dt18;
  391. struct
  392. {
  393. __IO uint32_t dt : 16;/* [15:0] */
  394. __IO uint32_t reserved1 : 16;/* [31:15] */
  395. } dt18_bit;
  396. };
  397. /**
  398. * @brief bpr dt19 register, offset:0x60
  399. */
  400. union
  401. {
  402. __IO uint32_t dt19;
  403. struct
  404. {
  405. __IO uint32_t dt : 16;/* [15:0] */
  406. __IO uint32_t reserved1 : 16;/* [31:15] */
  407. } dt19_bit;
  408. };
  409. /**
  410. * @brief bpr dt20 register, offset:0x64
  411. */
  412. union
  413. {
  414. __IO uint32_t dt20;
  415. struct
  416. {
  417. __IO uint32_t dt : 16;/* [15:0] */
  418. __IO uint32_t reserved1 : 16;/* [31:15] */
  419. } dt20_bit;
  420. };
  421. /**
  422. * @brief bpr dt21 register, offset:0x68
  423. */
  424. union
  425. {
  426. __IO uint32_t dt21;
  427. struct
  428. {
  429. __IO uint32_t dt : 16;/* [15:0] */
  430. __IO uint32_t reserved1 : 16;/* [31:15] */
  431. } dt21_bit;
  432. };
  433. /**
  434. * @brief bpr dt22 register, offset:6C
  435. */
  436. union
  437. {
  438. __IO uint32_t dt22;
  439. struct
  440. {
  441. __IO uint32_t dt : 16;/* [15:0] */
  442. __IO uint32_t reserved1 : 16;/* [31:15] */
  443. } dt22_bit;
  444. };
  445. /**
  446. * @brief bpr dt23 register, offset:0x70
  447. */
  448. union
  449. {
  450. __IO uint32_t dt23;
  451. struct
  452. {
  453. __IO uint32_t dt : 16;/* [15:0] */
  454. __IO uint32_t reserved1 : 16;/* [31:15] */
  455. } dt23_bit;
  456. };
  457. /**
  458. * @brief bpr dt24 register, offset:0x74
  459. */
  460. union
  461. {
  462. __IO uint32_t dt24;
  463. struct
  464. {
  465. __IO uint32_t dt : 16;/* [15:0] */
  466. __IO uint32_t reserved1 : 16;/* [31:15] */
  467. } dt24_bit;
  468. };
  469. /**
  470. * @brief bpr dt25 register, offset:0x78
  471. */
  472. union
  473. {
  474. __IO uint32_t dt25;
  475. struct
  476. {
  477. __IO uint32_t dt : 16;/* [15:0] */
  478. __IO uint32_t reserved1 : 16;/* [31:15] */
  479. } dt25_bit;
  480. };
  481. /**
  482. * @brief bpr dt26 register, offset:0x7C
  483. */
  484. union
  485. {
  486. __IO uint32_t dt26;
  487. struct
  488. {
  489. __IO uint32_t dt : 16;/* [15:0] */
  490. __IO uint32_t reserved1 : 16;/* [31:15] */
  491. } dt26_bit;
  492. };
  493. /**
  494. * @brief bpr dt27 register, offset:0x80
  495. */
  496. union
  497. {
  498. __IO uint32_t dt27;
  499. struct
  500. {
  501. __IO uint32_t dt : 16;/* [15:0] */
  502. __IO uint32_t reserved1 : 16;/* [31:15] */
  503. } dt27_bit;
  504. };
  505. /**
  506. * @brief bpr dt28 register, offset:0x84
  507. */
  508. union
  509. {
  510. __IO uint32_t dt28;
  511. struct
  512. {
  513. __IO uint32_t dt : 16;/* [15:0] */
  514. __IO uint32_t reserved1 : 16;/* [31:15] */
  515. } dt28_bit;
  516. };
  517. /**
  518. * @brief bpr dt29 register, offset:0x88
  519. */
  520. union
  521. {
  522. __IO uint32_t dt29;
  523. struct
  524. {
  525. __IO uint32_t dt : 16;/* [15:0] */
  526. __IO uint32_t reserved1 : 16;/* [31:15] */
  527. } dt29_bit;
  528. };
  529. /**
  530. * @brief bpr dt30 register, offset:0x8C
  531. */
  532. union
  533. {
  534. __IO uint32_t dt30;
  535. struct
  536. {
  537. __IO uint32_t dt : 16;/* [15:0] */
  538. __IO uint32_t reserved1 : 16;/* [31:15] */
  539. } dt30_bit;
  540. };
  541. /**
  542. * @brief bpr dt31 register, offset:0x90
  543. */
  544. union
  545. {
  546. __IO uint32_t dt31;
  547. struct
  548. {
  549. __IO uint32_t dt : 16;/* [15:0] */
  550. __IO uint32_t reserved1 : 16;/* [31:15] */
  551. } dt31_bit;
  552. };
  553. /**
  554. * @brief bpr dt32 register, offset:0x94
  555. */
  556. union
  557. {
  558. __IO uint32_t dt32;
  559. struct
  560. {
  561. __IO uint32_t dt : 16;/* [15:0] */
  562. __IO uint32_t reserved1 : 16;/* [31:15] */
  563. } dt32_bit;
  564. };
  565. /**
  566. * @brief bpr dt33 register, offset:0x98
  567. */
  568. union
  569. {
  570. __IO uint32_t dt33;
  571. struct
  572. {
  573. __IO uint32_t dt : 16;/* [15:0] */
  574. __IO uint32_t reserved1 : 16;/* [31:15] */
  575. } dt33_bit;
  576. };
  577. /**
  578. * @brief bpr dt34 register, offset:0x9C
  579. */
  580. union
  581. {
  582. __IO uint32_t dt34;
  583. struct
  584. {
  585. __IO uint32_t dt : 16;/* [15:0] */
  586. __IO uint32_t reserved1 : 16;/* [31:15] */
  587. } dt34_bit;
  588. };
  589. /**
  590. * @brief bpr dt35 register, offset:0xA0
  591. */
  592. union
  593. {
  594. __IO uint32_t dt35;
  595. struct
  596. {
  597. __IO uint32_t dt : 16;/* [15:0] */
  598. __IO uint32_t reserved1 : 16;/* [31:15] */
  599. } dt35_bit;
  600. };
  601. /**
  602. * @brief bpr dt36 register, offset:0xA4
  603. */
  604. union
  605. {
  606. __IO uint32_t dt36;
  607. struct
  608. {
  609. __IO uint32_t dt : 16;/* [15:0] */
  610. __IO uint32_t reserved1 : 16;/* [31:15] */
  611. } dt36_bit;
  612. };
  613. /**
  614. * @brief bpr dt37 register, offset:0xA8
  615. */
  616. union
  617. {
  618. __IO uint32_t dt37;
  619. struct
  620. {
  621. __IO uint32_t dt : 16;/* [15:0] */
  622. __IO uint32_t reserved1 : 16;/* [31:15] */
  623. } dt37_bit;
  624. };
  625. /**
  626. * @brief bpr dt38 register, offset:0xAC
  627. */
  628. union
  629. {
  630. __IO uint32_t dt38;
  631. struct
  632. {
  633. __IO uint32_t dt : 16;/* [15:0] */
  634. __IO uint32_t reserved1 : 16;/* [31:15] */
  635. } dt38_bit;
  636. };
  637. /**
  638. * @brief bpr dt39 register, offset:0xB0
  639. */
  640. union
  641. {
  642. __IO uint32_t dt39;
  643. struct
  644. {
  645. __IO uint32_t dt : 16;/* [15:0] */
  646. __IO uint32_t reserved1 : 16;/* [31:15] */
  647. } dt39_bit;
  648. };
  649. /**
  650. * @brief bpr dt40 register, offset:0xB4
  651. */
  652. union
  653. {
  654. __IO uint32_t dt40;
  655. struct
  656. {
  657. __IO uint32_t dt : 16;/* [15:0] */
  658. __IO uint32_t reserved1 : 16;/* [31:15] */
  659. } dt40_bit;
  660. };
  661. /**
  662. * @brief bpr dt41 register, offset:0xB8
  663. */
  664. union
  665. {
  666. __IO uint32_t dt41;
  667. struct
  668. {
  669. __IO uint32_t dt : 16;/* [15:0] */
  670. __IO uint32_t reserved1 : 16;/* [31:15] */
  671. } dt41_bit;
  672. };
  673. /**
  674. * @brief bpr dt42 register, offset:0xBC
  675. */
  676. union
  677. {
  678. __IO uint32_t dt42;
  679. struct
  680. {
  681. __IO uint32_t dt : 16;/* [15:0] */
  682. __IO uint32_t reserved1 : 16;/* [31:15] */
  683. } dt42_bit;
  684. };
  685. } bpr_type;
  686. /**
  687. * @}
  688. */
  689. #define BPR ((bpr_type *) BPR_BASE)
  690. /** @defgroup BPR_exported_functions
  691. * @{
  692. */
  693. void bpr_reset(void);
  694. flag_status bpr_flag_get(uint32_t flag);
  695. flag_status bpr_interrupt_flag_get(uint32_t flag);
  696. void bpr_flag_clear(uint32_t flag);
  697. void bpr_interrupt_enable(confirm_state new_state);
  698. uint16_t bpr_data_read(bpr_data_type bpr_data);
  699. void bpr_data_write(bpr_data_type bpr_data, uint16_t data_value);
  700. void bpr_rtc_output_select(bpr_rtc_output_type output_source);
  701. void bpr_rtc_clock_calibration_value_set(uint8_t calibration_value);
  702. void bpr_tamper_pin_enable(confirm_state new_state);
  703. void bpr_tamper_pin_active_level_set(bpr_tamper_pin_active_level_type active_level);
  704. /**
  705. * @}
  706. */
  707. /**
  708. * @}
  709. */
  710. /**
  711. * @}
  712. */
  713. #ifdef __cplusplus
  714. }
  715. #endif
  716. #endif