fm33lc0xx_fl_u7816.h 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071
  1. /**
  2. *******************************************************************************************************
  3. * @file fm33lc0xx_fl_u7816.h
  4. * @author FMSH Application Team
  5. * @brief Head file of U7816 FL Module
  6. *******************************************************************************************************
  7. * @attention
  8. *
  9. * Copyright (c) [2021] [Fudan Microelectronics]
  10. * THIS SOFTWARE is licensed under Mulan PSL v2.
  11. * You can use this software according to the terms and conditions of the Mulan PSL v2.
  12. * You may obtain a copy of Mulan PSL v2 at:
  13. * http://license.coscl.org.cn/MulanPSL2
  14. * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
  15. * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
  16. * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
  17. * See the Mulan PSL v2 for more details.
  18. *
  19. *******************************************************************************************************
  20. */
  21. /* Define to prevent recursive inclusion---------------------------------------------------------------*/
  22. #ifndef __FM33LC0XX_FL_U7816_H
  23. #define __FM33LC0XX_FL_U7816_H
  24. #ifdef __cplusplus
  25. extern "C" {
  26. #endif
  27. /* Includes -------------------------------------------------------------------------------------------*/
  28. #include "fm33lc0xx_fl_def.h"
  29. /** @addtogroup FM33LC0XX_FL_Driver
  30. * @{
  31. */
  32. /** @defgroup U7816 U7816
  33. * @brief U7816 FL driver
  34. * @{
  35. */
  36. /* Exported types -------------------------------------------------------------------------------------*/
  37. /** @defgroup U7816_FL_ES_INIT U7816 Exported Init structures
  38. * @{
  39. */
  40. /**
  41. * @brief U7816 Init Sturcture definition
  42. */
  43. typedef struct
  44. {
  45. /** 卡时钟频率 */
  46. uint32_t outputClockFreqence;
  47. /** 接口发送失败后自动重装使能 */
  48. uint32_t txAutoRetry;
  49. /** 自动重装次数 */
  50. uint32_t retryCnt;
  51. /** 插入BGT使能 */
  52. uint32_t blockGuard;
  53. /** 强上拉使能 */
  54. uint32_t strongPullUp;
  55. /** 帧格式奇偶校验模式 */
  56. uint32_t parity;
  57. /** 帧格式接收Guard时间 */
  58. uint32_t rxGuardTime;
  59. /** 帧格式发送Guard时间 */
  60. uint32_t txGuardTime;
  61. /** 帧格式错误Guard时间 */
  62. uint32_t errorGuardTime;
  63. /** 帧错误信号长度 */
  64. uint32_t errorSignalWidth;
  65. /** 接收校验错误自动回发error signal使能 */
  66. uint32_t rxAutoErrorSignal;
  67. /** 传输BIT顺序 */
  68. uint32_t transferOrder;
  69. /** 通讯速率 */
  70. uint32_t baud;
  71. /** 额外发送Guard时间 */
  72. uint32_t extraGuardTime;
  73. } FL_U7816_InitTypeDef;
  74. /**
  75. * @}
  76. */
  77. /* Exported constants ---------------------------------------------------------------------------------*/
  78. /** @defgroup U7816_FL_Exported_Constants U7816 Exported Constants
  79. * @{
  80. */
  81. #define U7816_CR_TXEN_Pos (5U)
  82. #define U7816_CR_TXEN_Msk (0x1U << U7816_CR_TXEN_Pos)
  83. #define U7816_CR_TXEN U7816_CR_TXEN_Msk
  84. #define U7816_CR_RXEN_Pos (4U)
  85. #define U7816_CR_RXEN_Msk (0x1U << U7816_CR_RXEN_Pos)
  86. #define U7816_CR_RXEN U7816_CR_RXEN_Msk
  87. #define U7816_CR_CKOEN_Pos (3U)
  88. #define U7816_CR_CKOEN_Msk (0x1U << U7816_CR_CKOEN_Pos)
  89. #define U7816_CR_CKOEN U7816_CR_CKOEN_Msk
  90. #define U7816_CR_HPUAT_Pos (2U)
  91. #define U7816_CR_HPUAT_Msk (0x1U << U7816_CR_HPUAT_Pos)
  92. #define U7816_CR_HPUAT U7816_CR_HPUAT_Msk
  93. #define U7816_CR_HPUEN_Pos (1U)
  94. #define U7816_CR_HPUEN_Msk (0x1U << U7816_CR_HPUEN_Pos)
  95. #define U7816_CR_HPUEN U7816_CR_HPUEN_Msk
  96. #define U7816_FFR_SFREN_Pos (11U)
  97. #define U7816_FFR_SFREN_Msk (0x1U << U7816_FFR_SFREN_Pos)
  98. #define U7816_FFR_SFREN U7816_FFR_SFREN_Msk
  99. #define U7816_FFR_ERSW_Pos (9U)
  100. #define U7816_FFR_ERSW_Msk (0x3U << U7816_FFR_ERSW_Pos)
  101. #define U7816_FFR_ERSW U7816_FFR_ERSW_Msk
  102. #define U7816_FFR_ERSGD_Pos (8U)
  103. #define U7816_FFR_ERSGD_Msk (0x1U << U7816_FFR_ERSGD_Pos)
  104. #define U7816_FFR_ERSGD U7816_FFR_ERSGD_Msk
  105. #define U7816_FFR_BGTEN_Pos (7U)
  106. #define U7816_FFR_BGTEN_Msk (0x1U << U7816_FFR_BGTEN_Pos)
  107. #define U7816_FFR_BGTEN U7816_FFR_BGTEN_Msk
  108. #define U7816_FFR_REP_T_Pos (6U)
  109. #define U7816_FFR_REP_T_Msk (0x1U << U7816_FFR_REP_T_Pos)
  110. #define U7816_FFR_REP_T U7816_FFR_REP_T_Msk
  111. #define U7816_FFR_PAR_Pos (4U)
  112. #define U7816_FFR_PAR_Msk (0x3U << U7816_FFR_PAR_Pos)
  113. #define U7816_FFR_PAR U7816_FFR_PAR_Msk
  114. #define U7816_FFR_RFREN_Pos (3U)
  115. #define U7816_FFR_RFREN_Msk (0x1U << U7816_FFR_RFREN_Pos)
  116. #define U7816_FFR_RFREN U7816_FFR_RFREN_Msk
  117. #define U7816_FFR_TREPEN_Pos (2U)
  118. #define U7816_FFR_TREPEN_Msk (0x1U << U7816_FFR_TREPEN_Pos)
  119. #define U7816_FFR_TREPEN U7816_FFR_TREPEN_Msk
  120. #define U7816_FFR_RREPEN_Pos (1U)
  121. #define U7816_FFR_RREPEN_Msk (0x1U << U7816_FFR_RREPEN_Pos)
  122. #define U7816_FFR_RREPEN U7816_FFR_RREPEN_Msk
  123. #define U7816_FFR_DICONV_Pos (0U)
  124. #define U7816_FFR_DICONV_Msk (0x1U << U7816_FFR_DICONV_Pos)
  125. #define U7816_FFR_DICONV U7816_FFR_DICONV_Msk
  126. #define U7816_IER_RXIE_Pos (2U)
  127. #define U7816_IER_RXIE_Msk (0x1U << U7816_IER_RXIE_Pos)
  128. #define U7816_IER_RXIE U7816_IER_RXIE_Msk
  129. #define U7816_IER_TXIE_Pos (1U)
  130. #define U7816_IER_TXIE_Msk (0x1U << U7816_IER_TXIE_Pos)
  131. #define U7816_IER_TXIE U7816_IER_TXIE_Msk
  132. #define U7816_IER_LSIE_Pos (0U)
  133. #define U7816_IER_LSIE_Msk (0x1U << U7816_IER_LSIE_Pos)
  134. #define U7816_IER_LSIE U7816_IER_LSIE_Msk
  135. #define U7816_ISR_WAIT_RPT_Pos (18U)
  136. #define U7816_ISR_WAIT_RPT_Msk (0x1U << U7816_ISR_WAIT_RPT_Pos)
  137. #define U7816_ISR_WAIT_RPT U7816_ISR_WAIT_RPT_Msk
  138. #define U7816_ISR_TXBUSY_Pos (17U)
  139. #define U7816_ISR_TXBUSY_Msk (0x1U << U7816_ISR_TXBUSY_Pos)
  140. #define U7816_ISR_TXBUSY U7816_ISR_TXBUSY_Msk
  141. #define U7816_ISR_RXBUSY_Pos (16U)
  142. #define U7816_ISR_RXBUSY_Msk (0x1U << U7816_ISR_RXBUSY_Pos)
  143. #define U7816_ISR_RXBUSY U7816_ISR_RXBUSY_Msk
  144. #define U7816_ISR_TPARERR_Pos (11U)
  145. #define U7816_ISR_TPARERR_Msk (0x1U << U7816_ISR_TPARERR_Pos)
  146. #define U7816_ISR_TPARERR U7816_ISR_TPARERR_Msk
  147. #define U7816_ISR_RPARERR_Pos (10U)
  148. #define U7816_ISR_RPARERR_Msk (0x1U << U7816_ISR_RPARERR_Pos)
  149. #define U7816_ISR_RPARERR U7816_ISR_RPARERR_Msk
  150. #define U7816_ISR_FRERR_Pos (9U)
  151. #define U7816_ISR_FRERR_Msk (0x1U << U7816_ISR_FRERR_Pos)
  152. #define U7816_ISR_FRERR U7816_ISR_FRERR_Msk
  153. #define U7816_ISR_OVERR_Pos (8U)
  154. #define U7816_ISR_OVERR_Msk (0x1U << U7816_ISR_OVERR_Pos)
  155. #define U7816_ISR_OVERR U7816_ISR_OVERR_Msk
  156. #define U7816_ISR_RXIF_Pos (2U)
  157. #define U7816_ISR_RXIF_Msk (0x1U << U7816_ISR_RXIF_Pos)
  158. #define U7816_ISR_RXIF U7816_ISR_RXIF_Msk
  159. #define U7816_ISR_TXIF_Pos (1U)
  160. #define U7816_ISR_TXIF_Msk (0x1U << U7816_ISR_TXIF_Pos)
  161. #define U7816_ISR_TXIF U7816_ISR_TXIF_Msk
  162. #define U7816_ISR_ERRIF_Pos (0U)
  163. #define U7816_ISR_ERRIF_Msk (0x1U << U7816_ISR_ERRIF_Pos)
  164. #define U7816_ISR_ERRIF U7816_ISR_ERRIF_Msk
  165. #define FL_U7816_TX_GUARD_TIME_2ETU (0x0U << U7816_FFR_SFREN_Pos)
  166. #define FL_U7816_TX_GUARD_TIME_3ETU (0x1U << U7816_FFR_SFREN_Pos)
  167. #define FL_U7816_ERROR_SIGNAL_WIDTH_2ETU (0x1U << U7816_FFR_ERSW_Pos)
  168. #define FL_U7816_ERROR_SIGNAL_WIDTH_1P5ETU (0x2U << U7816_FFR_ERSW_Pos)
  169. #define FL_U7816_ERROR_SIGNAL_WIDTH_1ETU (0x3U << U7816_FFR_ERSW_Pos)
  170. #define FL_U7816_ERROR_GUARD_TIME_2ETU (0x0U << U7816_FFR_ERSGD_Pos)
  171. #define FL_U7816_ERROR_GUARD_TIME_1ETU (0x1U << U7816_FFR_ERSGD_Pos)
  172. #define FL_U7816_RETRY_COUNT_1 (0x0U << U7816_FFR_REP_T_Pos)
  173. #define FL_U7816_RETRY_COUNT_3 (0x1U << U7816_FFR_REP_T_Pos)
  174. #define FL_U7816_PARITY_EVEN (0x0U << U7816_FFR_PAR_Pos)
  175. #define FL_U7816_PARITY_ODD (0x1U << U7816_FFR_PAR_Pos)
  176. #define FL_U7816_PARITY_ALWAYS_1 (0x2U << U7816_FFR_PAR_Pos)
  177. #define FL_U7816_PARITY_NONE (0x3U << U7816_FFR_PAR_Pos)
  178. #define FL_U7816_RX_GUARD_TIME_2ETU (0x0U << U7816_FFR_RFREN_Pos)
  179. #define FL_U7816_RX_GUARD_TIME_1ETU (0x1U << U7816_FFR_RFREN_Pos)
  180. #define FL_U7816_BIT_ORDER_LSB_FIRST (0x0U << U7816_FFR_DICONV_Pos)
  181. #define FL_U7816_BIT_ORDER_MSB_FIRST (0x1U << U7816_FFR_DICONV_Pos)
  182. /**
  183. * @}
  184. */
  185. /* Exported functions ---------------------------------------------------------------------------------*/
  186. /** @defgroup U7816_FL_Exported_Functions U7816 Exported Functions
  187. * @{
  188. */
  189. /**
  190. * @brief Enable U7816 Transmit
  191. * @rmtoll CR TXEN FL_U7816_EnableTX
  192. * @param U7816x U7816 instance
  193. * @retval None
  194. */
  195. __STATIC_INLINE void FL_U7816_EnableTX(U7816_Type *U7816x)
  196. {
  197. SET_BIT(U7816x->CR, U7816_CR_TXEN_Msk);
  198. }
  199. /**
  200. * @brief Get U7816 Transmit Enable Status
  201. * @rmtoll CR TXEN FL_U7816_IsEnabledTX
  202. * @param U7816x U7816 instance
  203. * @retval State of bit (1 or 0).
  204. */
  205. __STATIC_INLINE uint32_t FL_U7816_IsEnabledTX(U7816_Type *U7816x)
  206. {
  207. return (uint32_t)(READ_BIT(U7816x->CR, U7816_CR_TXEN_Msk) == U7816_CR_TXEN_Msk);
  208. }
  209. /**
  210. * @brief Disable U7816 Transmit
  211. * @rmtoll CR TXEN FL_U7816_DisableTX
  212. * @param U7816x U7816 instance
  213. * @retval None
  214. */
  215. __STATIC_INLINE void FL_U7816_DisableTX(U7816_Type *U7816x)
  216. {
  217. CLEAR_BIT(U7816x->CR, U7816_CR_TXEN_Msk);
  218. }
  219. /**
  220. * @brief Enable U7816 Receive
  221. * @rmtoll CR RXEN FL_U7816_EnableRX
  222. * @param U7816x U7816 instance
  223. * @retval None
  224. */
  225. __STATIC_INLINE void FL_U7816_EnableRX(U7816_Type *U7816x)
  226. {
  227. SET_BIT(U7816x->CR, U7816_CR_RXEN_Msk);
  228. }
  229. /**
  230. * @brief Get U7816 Receive Enable Status
  231. * @rmtoll CR RXEN FL_U7816_IsEnabledRX
  232. * @param U7816x U7816 instance
  233. * @retval State of bit (1 or 0).
  234. */
  235. __STATIC_INLINE uint32_t FL_U7816_IsEnabledRX(U7816_Type *U7816x)
  236. {
  237. return (uint32_t)(READ_BIT(U7816x->CR, U7816_CR_RXEN_Msk) == U7816_CR_RXEN_Msk);
  238. }
  239. /**
  240. * @brief Disable U7816 Receive
  241. * @rmtoll CR RXEN FL_U7816_DisableRX
  242. * @param U7816x U7816 instance
  243. * @retval None
  244. */
  245. __STATIC_INLINE void FL_U7816_DisableRX(U7816_Type *U7816x)
  246. {
  247. CLEAR_BIT(U7816x->CR, U7816_CR_RXEN_Msk);
  248. }
  249. /**
  250. * @brief Enable U7816 Clock Output
  251. * @rmtoll CR CKOEN FL_U7816_EnableClockOutput
  252. * @param U7816x U7816 instance
  253. * @retval None
  254. */
  255. __STATIC_INLINE void FL_U7816_EnableClockOutput(U7816_Type *U7816x)
  256. {
  257. SET_BIT(U7816x->CR, U7816_CR_CKOEN_Msk);
  258. }
  259. /**
  260. * @brief Get U7816 Clock Output Enable Status
  261. * @rmtoll CR CKOEN FL_U7816_IsEnabledClockOutput
  262. * @param U7816x U7816 instance
  263. * @retval State of bit (1 or 0).
  264. */
  265. __STATIC_INLINE uint32_t FL_U7816_IsEnabledClockOutput(U7816_Type *U7816x)
  266. {
  267. return (uint32_t)(READ_BIT(U7816x->CR, U7816_CR_CKOEN_Msk) == U7816_CR_CKOEN_Msk);
  268. }
  269. /**
  270. * @brief Disable U7816 Clock Output
  271. * @rmtoll CR CKOEN FL_U7816_DisableClockOutput
  272. * @param U7816x U7816 instance
  273. * @retval None
  274. */
  275. __STATIC_INLINE void FL_U7816_DisableClockOutput(U7816_Type *U7816x)
  276. {
  277. CLEAR_BIT(U7816x->CR, U7816_CR_CKOEN_Msk);
  278. }
  279. /**
  280. * @brief Enable U7816 Automatically High-Pullup
  281. * @rmtoll CR HPUAT FL_U7816_EnableTXAutoPullup
  282. * @param U7816x U7816 instance
  283. * @retval None
  284. */
  285. __STATIC_INLINE void FL_U7816_EnableTXAutoPullup(U7816_Type *U7816x)
  286. {
  287. SET_BIT(U7816x->CR, U7816_CR_HPUAT_Msk);
  288. }
  289. /**
  290. * @brief Get U7816 Automatically High-Pullup Enable Status
  291. * @rmtoll CR HPUAT FL_U7816_IsEnabledTXAutoPullup
  292. * @param U7816x U7816 instance
  293. * @retval State of bit (1 or 0).
  294. */
  295. __STATIC_INLINE uint32_t FL_U7816_IsEnabledTXAutoPullup(U7816_Type *U7816x)
  296. {
  297. return (uint32_t)(READ_BIT(U7816x->CR, U7816_CR_HPUAT_Msk) == U7816_CR_HPUAT_Msk);
  298. }
  299. /**
  300. * @brief Disable U7816 Automatically High-Pullup
  301. * @rmtoll CR HPUAT FL_U7816_DisableTXAutoPullup
  302. * @param U7816x U7816 instance
  303. * @retval None
  304. */
  305. __STATIC_INLINE void FL_U7816_DisableTXAutoPullup(U7816_Type *U7816x)
  306. {
  307. CLEAR_BIT(U7816x->CR, U7816_CR_HPUAT_Msk);
  308. }
  309. /**
  310. * @brief Enable U7816 High-Pullup
  311. * @rmtoll CR HPUEN FL_U7816_EnablePullup
  312. * @param U7816x U7816 instance
  313. * @retval None
  314. */
  315. __STATIC_INLINE void FL_U7816_EnablePullup(U7816_Type *U7816x)
  316. {
  317. SET_BIT(U7816x->CR, U7816_CR_HPUEN_Msk);
  318. }
  319. /**
  320. * @brief Disable U7816 High-Pullup
  321. * @rmtoll CR HPUEN FL_U7816_DisablePullup
  322. * @param U7816x U7816 instance
  323. * @retval None
  324. */
  325. __STATIC_INLINE void FL_U7816_DisablePullup(U7816_Type *U7816x)
  326. {
  327. CLEAR_BIT(U7816x->CR, U7816_CR_HPUEN_Msk);
  328. }
  329. /**
  330. * @brief Set U7816 TX Guard Time Length
  331. * @rmtoll FFR SFREN FL_U7816_SetTXGuardTime
  332. * @param U7816x U7816 instance
  333. * @param config This parameter can be one of the following values:
  334. * @arg @ref FL_U7816_TX_GUARD_TIME_2ETU
  335. * @arg @ref FL_U7816_TX_GUARD_TIME_3ETU
  336. * @retval None
  337. */
  338. __STATIC_INLINE void FL_U7816_SetTXGuardTime(U7816_Type *U7816x, uint32_t config)
  339. {
  340. MODIFY_REG(U7816x->FFR, U7816_FFR_SFREN_Msk, config);
  341. }
  342. /**
  343. * @brief Get U7816 TX Guard Time Length
  344. * @rmtoll FFR SFREN FL_U7816_GetTXGuardTime
  345. * @param U7816x U7816 instance
  346. * @retval Returned value can be one of the following values:
  347. * @arg @ref FL_U7816_TX_GUARD_TIME_2ETU
  348. * @arg @ref FL_U7816_TX_GUARD_TIME_3ETU
  349. */
  350. __STATIC_INLINE uint32_t FL_U7816_GetTXGuardTime(U7816_Type *U7816x)
  351. {
  352. return (uint32_t)(READ_BIT(U7816x->FFR, U7816_FFR_SFREN_Msk));
  353. }
  354. /**
  355. * @brief Set U7816 TX Error Signal Length
  356. * @rmtoll FFR ERSW FL_U7816_SetErrorSignalWidth
  357. * @param U7816x U7816 instance
  358. * @param width This parameter can be one of the following values:
  359. * @arg @ref FL_U7816_ERROR_SIGNAL_WIDTH_2ETU
  360. * @arg @ref FL_U7816_ERROR_SIGNAL_WIDTH_1P5ETU
  361. * @arg @ref FL_U7816_ERROR_SIGNAL_WIDTH_1ETU
  362. * @retval None
  363. */
  364. __STATIC_INLINE void FL_U7816_SetErrorSignalWidth(U7816_Type *U7816x, uint32_t width)
  365. {
  366. MODIFY_REG(U7816x->FFR, U7816_FFR_ERSW_Msk, width);
  367. }
  368. /**
  369. * @brief Get U7816 TX Error Signal Length
  370. * @rmtoll FFR ERSW FL_U7816_GetErrorSignalWidth
  371. * @param U7816x U7816 instance
  372. * @retval Returned value can be one of the following values:
  373. * @arg @ref FL_U7816_ERROR_SIGNAL_WIDTH_2ETU
  374. * @arg @ref FL_U7816_ERROR_SIGNAL_WIDTH_1P5ETU
  375. * @arg @ref FL_U7816_ERROR_SIGNAL_WIDTH_1ETU
  376. */
  377. __STATIC_INLINE uint32_t FL_U7816_GetErrorSignalWidth(U7816_Type *U7816x)
  378. {
  379. return (uint32_t)(READ_BIT(U7816x->FFR, U7816_FFR_ERSW_Msk));
  380. }
  381. /**
  382. * @brief Set Error Signal Guard Time
  383. * @rmtoll FFR ERSGD FL_U7816_SetErrorGuardTime
  384. * @param U7816x U7816 instance
  385. * @param config This parameter can be one of the following values:
  386. * @arg @ref FL_U7816_ERROR_GUARD_TIME_2ETU
  387. * @arg @ref FL_U7816_ERROR_GUARD_TIME_1ETU
  388. * @retval None
  389. */
  390. __STATIC_INLINE void FL_U7816_SetErrorGuardTime(U7816_Type *U7816x, uint32_t config)
  391. {
  392. MODIFY_REG(U7816x->FFR, U7816_FFR_ERSGD_Msk, config);
  393. }
  394. /**
  395. * @brief Get Error Signal Guard Time
  396. * @rmtoll FFR ERSGD FL_U7816_GetErrorGuardTime
  397. * @param U7816x U7816 instance
  398. * @retval Returned value can be one of the following values:
  399. * @arg @ref FL_U7816_ERROR_GUARD_TIME_2ETU
  400. * @arg @ref FL_U7816_ERROR_GUARD_TIME_1ETU
  401. */
  402. __STATIC_INLINE uint32_t FL_U7816_GetErrorGuardTime(U7816_Type *U7816x)
  403. {
  404. return (uint32_t)(READ_BIT(U7816x->FFR, U7816_FFR_ERSGD_Msk));
  405. }
  406. /**
  407. * @brief Enable U7816 to Insert Block Guard Time
  408. * @rmtoll FFR BGTEN FL_U7816_EnableBlockGuardTime
  409. * @param U7816x U7816 instance
  410. * @retval None
  411. */
  412. __STATIC_INLINE void FL_U7816_EnableBlockGuardTime(U7816_Type *U7816x)
  413. {
  414. SET_BIT(U7816x->FFR, U7816_FFR_BGTEN_Msk);
  415. }
  416. /**
  417. * @brief Get U7816 Block Guard Time Enable Status
  418. * @rmtoll FFR BGTEN FL_U7816_IsEnabledBlockGuardTime
  419. * @param U7816x U7816 instance
  420. * @retval State of bit (1 or 0).
  421. */
  422. __STATIC_INLINE uint32_t FL_U7816_IsEnabledBlockGuardTime(U7816_Type *U7816x)
  423. {
  424. return (uint32_t)(READ_BIT(U7816x->FFR, U7816_FFR_BGTEN_Msk) == U7816_FFR_BGTEN_Msk);
  425. }
  426. /**
  427. * @brief Disable U7816 to Insert Block Guard Time
  428. * @rmtoll FFR BGTEN FL_U7816_DisableBlockGuardTime
  429. * @param U7816x U7816 instance
  430. * @retval None
  431. */
  432. __STATIC_INLINE void FL_U7816_DisableBlockGuardTime(U7816_Type *U7816x)
  433. {
  434. CLEAR_BIT(U7816x->FFR, U7816_FFR_BGTEN_Msk);
  435. }
  436. /**
  437. * @brief Set U7816 Retry Counts When Parity Error Occurred
  438. * @rmtoll FFR REP_T FL_U7816_SetRetryCount
  439. * @param U7816x U7816 instance
  440. * @param cnt This parameter can be one of the following values:
  441. * @arg @ref FL_U7816_RETRY_COUNT_1
  442. * @arg @ref FL_U7816_RETRY_COUNT_3
  443. * @retval None
  444. */
  445. __STATIC_INLINE void FL_U7816_SetRetryCount(U7816_Type *U7816x, uint32_t cnt)
  446. {
  447. MODIFY_REG(U7816x->FFR, U7816_FFR_REP_T_Msk, cnt);
  448. }
  449. /**
  450. * @brief Get U7816 Retry Counts When Parity Error Occurred
  451. * @rmtoll FFR REP_T FL_U7816_GetRetryCount
  452. * @param U7816x U7816 instance
  453. * @retval Returned value can be one of the following values:
  454. * @arg @ref FL_U7816_RETRY_COUNT_1
  455. * @arg @ref FL_U7816_RETRY_COUNT_3
  456. */
  457. __STATIC_INLINE uint32_t FL_U7816_GetRetryCount(U7816_Type *U7816x)
  458. {
  459. return (uint32_t)(READ_BIT(U7816x->FFR, U7816_FFR_REP_T_Msk));
  460. }
  461. /**
  462. * @brief Set U7816 Parity
  463. * @rmtoll FFR PAR FL_U7816_SetParity
  464. * @param U7816x U7816 instance
  465. * @param parity This parameter can be one of the following values:
  466. * @arg @ref FL_U7816_PARITY_EVEN
  467. * @arg @ref FL_U7816_PARITY_ODD
  468. * @arg @ref FL_U7816_PARITY_ALWAYS_1
  469. * @arg @ref FL_U7816_PARITY_NONE
  470. * @retval None
  471. */
  472. __STATIC_INLINE void FL_U7816_SetParity(U7816_Type *U7816x, uint32_t parity)
  473. {
  474. MODIFY_REG(U7816x->FFR, U7816_FFR_PAR_Msk, parity);
  475. }
  476. /**
  477. * @brief Get U7816 Parity
  478. * @rmtoll FFR PAR FL_U7816_GetParity
  479. * @param U7816x U7816 instance
  480. * @retval Returned value can be one of the following values:
  481. * @arg @ref FL_U7816_PARITY_EVEN
  482. * @arg @ref FL_U7816_PARITY_ODD
  483. * @arg @ref FL_U7816_PARITY_ALWAYS_1
  484. * @arg @ref FL_U7816_PARITY_NONE
  485. */
  486. __STATIC_INLINE uint32_t FL_U7816_GetParity(U7816_Type *U7816x)
  487. {
  488. return (uint32_t)(READ_BIT(U7816x->FFR, U7816_FFR_PAR_Msk));
  489. }
  490. /**
  491. * @brief Set U7816 RX Guard Time Length
  492. * @rmtoll FFR RFREN FL_U7816_SetRXGuardTime
  493. * @param U7816x U7816 instance
  494. * @param config This parameter can be one of the following values:
  495. * @arg @ref FL_U7816_RX_GUARD_TIME_2ETU
  496. * @arg @ref FL_U7816_RX_GUARD_TIME_1ETU
  497. * @retval None
  498. */
  499. __STATIC_INLINE void FL_U7816_SetRXGuardTime(U7816_Type *U7816x, uint32_t config)
  500. {
  501. MODIFY_REG(U7816x->FFR, U7816_FFR_RFREN_Msk, config);
  502. }
  503. /**
  504. * @brief Get U7816 RX Guard Time Length
  505. * @rmtoll FFR RFREN FL_U7816_GetRXGuardTime
  506. * @param U7816x U7816 instance
  507. * @retval Returned value can be one of the following values:
  508. * @arg @ref FL_U7816_RX_GUARD_TIME_2ETU
  509. * @arg @ref FL_U7816_RX_GUARD_TIME_1ETU
  510. */
  511. __STATIC_INLINE uint32_t FL_U7816_GetRXGuardTime(U7816_Type *U7816x)
  512. {
  513. return (uint32_t)(READ_BIT(U7816x->FFR, U7816_FFR_RFREN_Msk));
  514. }
  515. /**
  516. * @brief Set U7816 TX Auto Retry When Parity Error Occurred
  517. * @rmtoll FFR TREPEN FL_U7816_EnableTXParityErrorAutoRetry
  518. * @param U7816x U7816 instance
  519. * @retval None
  520. */
  521. __STATIC_INLINE void FL_U7816_EnableTXParityErrorAutoRetry(U7816_Type *U7816x)
  522. {
  523. SET_BIT(U7816x->FFR, U7816_FFR_TREPEN_Msk);
  524. }
  525. /**
  526. * @brief Get U7816 TX Auto Retry When Parity Error Occurred
  527. * @rmtoll FFR TREPEN FL_U7816_DisableTXParityErrorAutoRetry
  528. * @param U7816x U7816 instance
  529. * @retval None
  530. */
  531. __STATIC_INLINE void FL_U7816_DisableTXParityErrorAutoRetry(U7816_Type *U7816x)
  532. {
  533. CLEAR_BIT(U7816x->FFR, U7816_FFR_TREPEN_Msk);
  534. }
  535. /**
  536. * @brief Get U7816 TX Auto Retry When Parity Error Occurred
  537. * @rmtoll FFR TREPEN FL_U7816_IsEnabledTXParityErrorAutoRetry
  538. * @param U7816x U7816 instance
  539. * @retval State of bit (1 or 0).
  540. */
  541. __STATIC_INLINE uint32_t FL_U7816_IsEnabledTXParityErrorAutoRetry(U7816_Type *U7816x)
  542. {
  543. return (uint32_t)(READ_BIT(U7816x->FFR, U7816_FFR_TREPEN_Msk) == U7816_FFR_TREPEN_Msk);
  544. }
  545. /**
  546. * @brief Get U7816 RX Auto Retry When Parity Error Occurred
  547. * @rmtoll FFR RREPEN FL_U7816_EnableRXParityErrorAutoRetry
  548. * @param U7816x U7816 instance
  549. * @retval None
  550. */
  551. __STATIC_INLINE void FL_U7816_EnableRXParityErrorAutoRetry(U7816_Type *U7816x)
  552. {
  553. SET_BIT(U7816x->FFR, U7816_FFR_RREPEN_Msk);
  554. }
  555. /**
  556. * @brief Get U7816 RX Auto Retry When Parity Error Occurred
  557. * @rmtoll FFR RREPEN FL_U7816_DisableRXParityErrorAutoRetry
  558. * @param U7816x U7816 instance
  559. * @retval None
  560. */
  561. __STATIC_INLINE void FL_U7816_DisableRXParityErrorAutoRetry(U7816_Type *U7816x)
  562. {
  563. CLEAR_BIT(U7816x->FFR, U7816_FFR_RREPEN_Msk);
  564. }
  565. /**
  566. * @brief Get U7816 RX Auto Retry When Parity Error Occurred
  567. * @rmtoll FFR RREPEN FL_U7816_IsEnabledRXParityErrorAutoRetry
  568. * @param U7816x U7816 instance
  569. * @retval State of bit (1 or 0).
  570. */
  571. __STATIC_INLINE uint32_t FL_U7816_IsEnabledRXParityErrorAutoRetry(U7816_Type *U7816x)
  572. {
  573. return (uint32_t)(READ_BIT(U7816x->FFR, U7816_FFR_RREPEN_Msk) == U7816_FFR_RREPEN_Msk);
  574. }
  575. /**
  576. * @brief Set U7816 Bit Order
  577. * @rmtoll FFR DICONV FL_U7816_SetBitOrder
  578. * @param U7816x U7816 instance
  579. * @param order This parameter can be one of the following values:
  580. * @arg @ref FL_U7816_BIT_ORDER_LSB_FIRST
  581. * @arg @ref FL_U7816_BIT_ORDER_MSB_FIRST
  582. * @retval None
  583. */
  584. __STATIC_INLINE void FL_U7816_SetBitOrder(U7816_Type *U7816x, uint32_t order)
  585. {
  586. MODIFY_REG(U7816x->FFR, U7816_FFR_DICONV_Msk, order);
  587. }
  588. /**
  589. * @brief Get U7816 Bit Order
  590. * @rmtoll FFR DICONV FL_U7816_GetBitOrder
  591. * @param U7816x U7816 instance
  592. * @retval Returned value can be one of the following values:
  593. * @arg @ref FL_U7816_BIT_ORDER_LSB_FIRST
  594. * @arg @ref FL_U7816_BIT_ORDER_MSB_FIRST
  595. */
  596. __STATIC_INLINE uint32_t FL_U7816_GetBitOrder(U7816_Type *U7816x)
  597. {
  598. return (uint32_t)(READ_BIT(U7816x->FFR, U7816_FFR_DICONV_Msk));
  599. }
  600. /**
  601. * @brief Set U7816 Extra Guard Time
  602. * @rmtoll EGTR FL_U7816_WriteExtraGuardTime
  603. * @param U7816x U7816 instance
  604. * @param time
  605. * @retval None
  606. */
  607. __STATIC_INLINE void FL_U7816_WriteExtraGuardTime(U7816_Type *U7816x, uint32_t time)
  608. {
  609. MODIFY_REG(U7816x->EGTR, (0xffU << 0U), (time << 0U));
  610. }
  611. /**
  612. * @brief Get U7816 Extra Guard Time
  613. * @rmtoll EGTR FL_U7816_ReadExtraGuardTime
  614. * @param U7816x U7816 instance
  615. * @retval
  616. */
  617. __STATIC_INLINE uint32_t FL_U7816_ReadExtraGuardTime(U7816_Type *U7816x)
  618. {
  619. return (uint32_t)(READ_BIT(U7816x->EGTR, (0xffU << 0U)) >> 0U);
  620. }
  621. /**
  622. * @brief Set U7816 Clock Divide
  623. * @rmtoll PSC FL_U7816_WriteClockDivision
  624. * @param U7816x U7816 instance
  625. * @param div
  626. * @retval None
  627. */
  628. __STATIC_INLINE void FL_U7816_WriteClockDivision(U7816_Type *U7816x, uint32_t div)
  629. {
  630. MODIFY_REG(U7816x->PSC, (0x1fU << 0U), (div << 0U));
  631. }
  632. /**
  633. * @brief Get U7816 Clock Divide
  634. * @rmtoll PSC FL_U7816_ReadClockDivision
  635. * @param U7816x U7816 instance
  636. * @retval
  637. */
  638. __STATIC_INLINE uint32_t FL_U7816_ReadClockDivision(U7816_Type *U7816x)
  639. {
  640. return (uint32_t)(READ_BIT(U7816x->PSC, (0x1fU << 0U)) >> 0U);
  641. }
  642. /**
  643. * @brief Set U7816 BaudRate
  644. * @rmtoll BGR FL_U7816_WriteBaudRate
  645. * @param U7816x U7816 instance
  646. * @param baud
  647. * @retval None
  648. */
  649. __STATIC_INLINE void FL_U7816_WriteBaudRate(U7816_Type *U7816x, uint32_t baud)
  650. {
  651. MODIFY_REG(U7816x->BGR, (0xfffU << 0U), (baud << 0U));
  652. }
  653. /**
  654. * @brief Get U7816 BaudRate
  655. * @rmtoll BGR FL_U7816_ReadBaudRate
  656. * @param U7816x U7816 instance
  657. * @retval
  658. */
  659. __STATIC_INLINE uint32_t FL_U7816_ReadBaudRate(U7816_Type *U7816x)
  660. {
  661. return (uint32_t)(READ_BIT(U7816x->BGR, (0xfffU << 0U)) >> 0U);
  662. }
  663. /**
  664. * @brief U7816 Write 1 byte of data
  665. * @rmtoll TXBUF FL_U7816_WriteTXBuff
  666. * @param U7816x U7816 instance
  667. * @param data
  668. * @retval None
  669. */
  670. __STATIC_INLINE void FL_U7816_WriteTXBuff(U7816_Type *U7816x, uint32_t data)
  671. {
  672. MODIFY_REG(U7816x->TXBUF, (0xffU << 0U), (data << 0U));
  673. }
  674. /**
  675. * @brief U7816 Read 1 byte of data
  676. * @rmtoll RXBUF FL_U7816_ReadRXBuff
  677. * @param U7816x U7816 instance
  678. * @retval
  679. */
  680. __STATIC_INLINE uint32_t FL_U7816_ReadRXBuff(U7816_Type *U7816x)
  681. {
  682. return (uint32_t)(READ_BIT(U7816x->RXBUF, (0xffU << 0U)) >> 0U);
  683. }
  684. /**
  685. * @brief Disable U7816 Receive Complete Interrupt
  686. * @rmtoll IER RXIE FL_U7816_DisableIT_RXComplete
  687. * @param U7816x U7816 instance
  688. * @retval None
  689. */
  690. __STATIC_INLINE void FL_U7816_DisableIT_RXComplete(U7816_Type *U7816x)
  691. {
  692. CLEAR_BIT(U7816x->IER, U7816_IER_RXIE_Msk);
  693. }
  694. /**
  695. * @brief Enable U7816 Receive Complete Interrupt
  696. * @rmtoll IER RXIE FL_U7816_EnableIT_RXComplete
  697. * @param U7816x U7816 instance
  698. * @retval None
  699. */
  700. __STATIC_INLINE void FL_U7816_EnableIT_RXComplete(U7816_Type *U7816x)
  701. {
  702. SET_BIT(U7816x->IER, U7816_IER_RXIE_Msk);
  703. }
  704. /**
  705. * @brief Get U7816 Receive Complete Interrupt Enable Status
  706. * @rmtoll IER RXIE FL_U7816_IsEnabledIT_RXComplete
  707. * @param U7816x U7816 instance
  708. * @retval State of bit (1 or 0).
  709. */
  710. __STATIC_INLINE uint32_t FL_U7816_IsEnabledIT_RXComplete(U7816_Type *U7816x)
  711. {
  712. return (uint32_t)(READ_BIT(U7816x->IER, U7816_IER_RXIE_Msk) == U7816_IER_RXIE_Msk);
  713. }
  714. /**
  715. * @brief Disable U7816 Transmit Complete Interrupt
  716. * @rmtoll IER TXIE FL_U7816_DisableIT_TXComplete
  717. * @param U7816x U7816 instance
  718. * @retval None
  719. */
  720. __STATIC_INLINE void FL_U7816_DisableIT_TXComplete(U7816_Type *U7816x)
  721. {
  722. CLEAR_BIT(U7816x->IER, U7816_IER_TXIE_Msk);
  723. }
  724. /**
  725. * @brief Enable U7816 Transmit Complete Interrupt
  726. * @rmtoll IER TXIE FL_U7816_EnableIT_TXComplete
  727. * @param U7816x U7816 instance
  728. * @retval None
  729. */
  730. __STATIC_INLINE void FL_U7816_EnableIT_TXComplete(U7816_Type *U7816x)
  731. {
  732. SET_BIT(U7816x->IER, U7816_IER_TXIE_Msk);
  733. }
  734. /**
  735. * @brief Disable U7816 Line Status Interrupt
  736. * @rmtoll IER LSIE FL_U7816_DisableIT_Error
  737. * @param U7816x U7816 instance
  738. * @retval None
  739. */
  740. __STATIC_INLINE void FL_U7816_DisableIT_Error(U7816_Type *U7816x)
  741. {
  742. CLEAR_BIT(U7816x->IER, U7816_IER_LSIE_Msk);
  743. }
  744. /**
  745. * @brief Enable U7816 Line Status Interrupt
  746. * @rmtoll IER LSIE FL_U7816_EnableIT_Error
  747. * @param U7816x U7816 instance
  748. * @retval None
  749. */
  750. __STATIC_INLINE void FL_U7816_EnableIT_Error(U7816_Type *U7816x)
  751. {
  752. SET_BIT(U7816x->IER, U7816_IER_LSIE_Msk);
  753. }
  754. /**
  755. * @brief Get U7816 Line Status Interrupt Enable Status
  756. * @rmtoll IER LSIE FL_U7816_IsEnabledIT_Error
  757. * @param U7816x U7816 instance
  758. * @retval State of bit (1 or 0).
  759. */
  760. __STATIC_INLINE uint32_t FL_U7816_IsEnabledIT_Error(U7816_Type *U7816x)
  761. {
  762. return (uint32_t)(READ_BIT(U7816x->IER, U7816_IER_LSIE_Msk) == U7816_IER_LSIE_Msk);
  763. }
  764. /**
  765. * @brief Get U7816 Waiting for Retry Flag
  766. * @rmtoll ISR WAIT_RPT FL_U7816_IsActiveFlag_WaitRetry
  767. * @param U7816x U7816 instance
  768. * @retval State of bit (1 or 0).
  769. */
  770. __STATIC_INLINE uint32_t FL_U7816_IsActiveFlag_WaitRetry(U7816_Type *U7816x)
  771. {
  772. return (uint32_t)(READ_BIT(U7816x->ISR, U7816_ISR_WAIT_RPT_Msk) == (U7816_ISR_WAIT_RPT_Msk));
  773. }
  774. /**
  775. * @brief Get U7816 Transmission Busy Flag
  776. * @rmtoll ISR TXBUSY FL_U7816_IsActiveFlag_TXBusy
  777. * @param U7816x U7816 instance
  778. * @retval State of bit (1 or 0).
  779. */
  780. __STATIC_INLINE uint32_t FL_U7816_IsActiveFlag_TXBusy(U7816_Type *U7816x)
  781. {
  782. return (uint32_t)(READ_BIT(U7816x->ISR, U7816_ISR_TXBUSY_Msk) == (U7816_ISR_TXBUSY_Msk));
  783. }
  784. /**
  785. * @brief Get U7816 Receivement Busy Flag
  786. * @rmtoll ISR RXBUSY FL_U7816_IsActiveFlag_RXBusy
  787. * @param U7816x U7816 instance
  788. * @retval State of bit (1 or 0).
  789. */
  790. __STATIC_INLINE uint32_t FL_U7816_IsActiveFlag_RXBusy(U7816_Type *U7816x)
  791. {
  792. return (uint32_t)(READ_BIT(U7816x->ISR, U7816_ISR_RXBUSY_Msk) == (U7816_ISR_RXBUSY_Msk));
  793. }
  794. /**
  795. * @brief Get U7816 Transmit Parity Error Flag
  796. * @rmtoll ISR TPARERR FL_U7816_IsActiveFlag_TXParityError
  797. * @param U7816x U7816 instance
  798. * @retval State of bit (1 or 0).
  799. */
  800. __STATIC_INLINE uint32_t FL_U7816_IsActiveFlag_TXParityError(U7816_Type *U7816x)
  801. {
  802. return (uint32_t)(READ_BIT(U7816x->ISR, U7816_ISR_TPARERR_Msk) == (U7816_ISR_TPARERR_Msk));
  803. }
  804. /**
  805. * @brief Clear U7816 Transmit Parity Error Flag
  806. * @rmtoll ISR TPARERR FL_U7816_ClearFlag_TXParityError
  807. * @param U7816x U7816 instance
  808. * @retval None
  809. */
  810. __STATIC_INLINE void FL_U7816_ClearFlag_TXParityError(U7816_Type *U7816x)
  811. {
  812. WRITE_REG(U7816x->ISR, U7816_ISR_TPARERR_Msk);
  813. }
  814. /**
  815. * @brief Get U7816 Receive Parity Error Flag
  816. * @rmtoll ISR RPARERR FL_U7816_IsActiveFlag_RXParityError
  817. * @param U7816x U7816 instance
  818. * @retval State of bit (1 or 0).
  819. */
  820. __STATIC_INLINE uint32_t FL_U7816_IsActiveFlag_RXParityError(U7816_Type *U7816x)
  821. {
  822. return (uint32_t)(READ_BIT(U7816x->ISR, U7816_ISR_RPARERR_Msk) == (U7816_ISR_RPARERR_Msk));
  823. }
  824. /**
  825. * @brief Clear U7816 Receive Parity Error Flag
  826. * @rmtoll ISR RPARERR FL_U7816_ClearFlag_RXParityError
  827. * @param U7816x U7816 instance
  828. * @retval None
  829. */
  830. __STATIC_INLINE void FL_U7816_ClearFlag_RXParityError(U7816_Type *U7816x)
  831. {
  832. WRITE_REG(U7816x->ISR, U7816_ISR_RPARERR_Msk);
  833. }
  834. /**
  835. * @brief Get U7816 Receive Frame Error Flag
  836. * @rmtoll ISR FRERR FL_U7816_IsActiveFlag_RXFrameError
  837. * @param U7816x U7816 instance
  838. * @retval State of bit (1 or 0).
  839. */
  840. __STATIC_INLINE uint32_t FL_U7816_IsActiveFlag_RXFrameError(U7816_Type *U7816x)
  841. {
  842. return (uint32_t)(READ_BIT(U7816x->ISR, U7816_ISR_FRERR_Msk) == (U7816_ISR_FRERR_Msk));
  843. }
  844. /**
  845. * @brief Clear U7816 Receive Frame Error Flag
  846. * @rmtoll ISR FRERR FL_U7816_ClearFlag_RXFrameError
  847. * @param U7816x U7816 instance
  848. * @retval None
  849. */
  850. __STATIC_INLINE void FL_U7816_ClearFlag_RXFrameError(U7816_Type *U7816x)
  851. {
  852. WRITE_REG(U7816x->ISR, U7816_ISR_FRERR_Msk);
  853. }
  854. /**
  855. * @brief Get U7816 Receive Overflow Error Flag
  856. * @rmtoll ISR OVERR FL_U7816_IsActiveFlag_RXOverflow
  857. * @param U7816x U7816 instance
  858. * @retval State of bit (1 or 0).
  859. */
  860. __STATIC_INLINE uint32_t FL_U7816_IsActiveFlag_RXOverflow(U7816_Type *U7816x)
  861. {
  862. return (uint32_t)(READ_BIT(U7816x->ISR, U7816_ISR_OVERR_Msk) == (U7816_ISR_OVERR_Msk));
  863. }
  864. /**
  865. * @brief Clear U7816 Receive Overflow Error Flag
  866. * @rmtoll ISR OVERR FL_U7816_ClearFlag_RXOverflow
  867. * @param U7816x U7816 instance
  868. * @retval None
  869. */
  870. __STATIC_INLINE void FL_U7816_ClearFlag_RXOverflow(U7816_Type *U7816x)
  871. {
  872. WRITE_REG(U7816x->ISR, U7816_ISR_OVERR_Msk);
  873. }
  874. /**
  875. * @brief Get U7816 Receive Complete Flag
  876. * @rmtoll ISR RXIF FL_U7816_IsActiveFlag_RXComplete
  877. * @param U7816x U7816 instance
  878. * @retval State of bit (1 or 0).
  879. */
  880. __STATIC_INLINE uint32_t FL_U7816_IsActiveFlag_RXComplete(U7816_Type *U7816x)
  881. {
  882. return (uint32_t)(READ_BIT(U7816x->ISR, U7816_ISR_RXIF_Msk) == (U7816_ISR_RXIF_Msk));
  883. }
  884. /**
  885. * @brief Get U7816 Transmit Buffer Empty Flag
  886. * @rmtoll ISR TXIF FL_U7816_IsActiveFlag_TXBuffEmpty
  887. * @param U7816x U7816 instance
  888. * @retval State of bit (1 or 0).
  889. */
  890. __STATIC_INLINE uint32_t FL_U7816_IsActiveFlag_TXBuffEmpty(U7816_Type *U7816x)
  891. {
  892. return (uint32_t)(READ_BIT(U7816x->ISR, U7816_ISR_TXIF_Msk) == (U7816_ISR_TXIF_Msk));
  893. }
  894. /**
  895. * @brief Get U7816 Error Flag
  896. * @rmtoll ISR ERRIF FL_U7816_IsActiveFlag_Error
  897. * @param U7816x U7816 instance
  898. * @retval State of bit (1 or 0).
  899. */
  900. __STATIC_INLINE uint32_t FL_U7816_IsActiveFlag_Error(U7816_Type *U7816x)
  901. {
  902. return (uint32_t)(READ_BIT(U7816x->ISR, U7816_ISR_ERRIF_Msk) == (U7816_ISR_ERRIF_Msk));
  903. }
  904. /**
  905. * @}
  906. */
  907. /** @defgroup U7816_FL_EF_Init Initialization and de-initialization functions
  908. * @{
  909. */
  910. FL_ErrorStatus FL_U7816_DeInit(U7816_Type *U7816x);
  911. FL_ErrorStatus FL_U7816_Init(U7816_Type *U7816x, FL_U7816_InitTypeDef *U7816_InitStruct);
  912. void FL_U7816_StructInit(FL_U7816_InitTypeDef *U7816_InitStruct);
  913. /**
  914. * @}
  915. */
  916. /**
  917. * @}
  918. */
  919. /**
  920. * @}
  921. */
  922. #ifdef __cplusplus
  923. }
  924. #endif
  925. #endif /* __FM33LC0XX_FL_U7816_H*/
  926. /*************************Py_Code_Generator Version: 0.1-0.11-0.2 @ 2020-09-27*************************/
  927. /********************** (C) COPYRIGHT Fudan Microelectronics **** END OF FILE ***********************/