hal_adc.h 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341
  1. ////////////////////////////////////////////////////////////////////////////////
  2. /// @file hal_adc.h
  3. /// @author AE TEAM
  4. /// @brief THIS FILE CONTAINS ALL THE FUNCTIONS PROTOTYPES FOR THE ADC
  5. /// FIRMWARE LIBRARY.
  6. ////////////////////////////////////////////////////////////////////////////////
  7. /// @attention
  8. ///
  9. /// THE EXISTING FIRMWARE IS ONLY FOR REFERENCE, WHICH IS DESIGNED TO PROVIDE
  10. /// CUSTOMERS WITH CODING INFORMATION ABOUT THEIR PRODUCTS SO THEY CAN SAVE
  11. /// TIME. THEREFORE, MINDMOTION SHALL NOT BE LIABLE FOR ANY DIRECT, INDIRECT OR
  12. /// CONSEQUENTIAL DAMAGES ABOUT ANY CLAIMS ARISING OUT OF THE CONTENT OF SUCH
  13. /// HARDWARE AND/OR THE USE OF THE CODING INFORMATION CONTAINED HEREIN IN
  14. /// CONNECTION WITH PRODUCTS MADE BY CUSTOMERS.
  15. ///
  16. /// <H2><CENTER>&COPY; COPYRIGHT MINDMOTION </CENTER></H2>
  17. ////////////////////////////////////////////////////////////////////////////////
  18. // Define to prevent recursive inclusion
  19. #ifndef __HAL_ADC_H
  20. #define __HAL_ADC_H
  21. // Files includes
  22. #include "types.h"
  23. #include "reg_adc.h"
  24. ////////////////////////////////////////////////////////////////////////////////
  25. /// @addtogroup MM32_Hardware_Abstract_Layer
  26. /// @{
  27. ////////////////////////////////////////////////////////////////////////////////
  28. /// @defgroup ADC_HAL
  29. /// @brief ADC HAL modules
  30. /// @{
  31. ////////////////////////////////////////////////////////////////////////////////
  32. /// @defgroup ADC_Exported_Types
  33. /// @{
  34. ////////////////////////////////////////////////////////////////////////////////
  35. /// @brief ADC_Channels
  36. ////////////////////////////////////////////////////////////////////////////////
  37. typedef enum {
  38. ADC_Channel_0 = 0x00, ///< ADC Channel 0
  39. ADC_Channel_1 = 0x01, ///< ADC Channel 1
  40. ADC_Channel_2 = 0x02, ///< ADC Channel 2
  41. ADC_Channel_3 = 0x03, ///< ADC Channel 3
  42. ADC_Channel_4 = 0x04, ///< ADC Channel 4
  43. ADC_Channel_5 = 0x05, ///< ADC Channel 5
  44. ADC_Channel_6 = 0x06, ///< ADC Channel 6
  45. ADC_Channel_7 = 0x07, ///< ADC Channel 7
  46. ADC_Channel_8 = 0x08, ///< ADC Channel 8
  47. ADC_Channel_9 = 0x09, ///< ADC Channel 9
  48. ADC_Channel_10 = 0x0A, ///< ADC Channel 10
  49. ADC_Channel_11 = 0x0B, ///< ADC Channel 11
  50. ADC_Channel_12 = 0x0C, ///< ADC Channel 12
  51. ADC_Channel_13 = 0x0D, ///< ADC Channel 13
  52. ADC_Channel_14 = 0x0E, ///< ADC Channel 14
  53. ADC_Channel_15 = 0x0F, ///< ADC Channel 15
  54. ADC_Channel_TempSensor = 0x0E, ///< Temperature sensor channel(ADC1)
  55. ADC_Channel_VoltReference = 0x0F, ///< Internal reference voltage channel(ADC1)
  56. ADC_Channel_Vrefint = 0x0F, ///< Internal reference voltage channel(ADC1)
  57. } ADCCHANNEL_TypeDef;
  58. ////////////////////////////////////////////////////////////////////////////////
  59. /// @brief ADC_Sampling_Times
  60. ////////////////////////////////////////////////////////////////////////////////
  61. typedef enum {
  62. ADC_Samctl_1_5 = ADC_SMPR1_SAMCTL0_2_5, ///< ADC sample time select 1.5t
  63. ADC_Samctl_2_5 = ADC_SMPR1_SAMCTL0_2_5, ///< ADC sample time select 2.5t
  64. ADC_Samctl_3_5 = ADC_SMPR1_SAMCTL0_3_5, ///< ADC sample time select 3.5t
  65. ADC_Samctl_4_5 = ADC_SMPR1_SAMCTL0_4_5, ///< ADC sample time select 4.5t
  66. ADC_Samctl_5_5 = ADC_SMPR1_SAMCTL0_5_5, ///< ADC sample time select 5.5t
  67. ADC_Samctl_6_5 = ADC_SMPR1_SAMCTL0_6_5, ///< ADC sample time select 6.5t
  68. ADC_Samctl_7_5 = ADC_SMPR1_SAMCTL0_7_5, ///< ADC sample time select 7.5t
  69. ADC_Samctl_8_5 = ADC_SMPR1_SAMCTL0_8_5, ///< ADC sample time select 7.5t
  70. ADC_Samctl_13_5 = ADC_SMPR1_SAMCTL0_14_5, ///< ADC sample time select 13.5t
  71. ADC_Samctl_14_5 = ADC_SMPR1_SAMCTL0_14_5, ///< ADC sample time select 14.5t
  72. ADC_Samctl_28_5 = ADC_SMPR1_SAMCTL0_29_5, ///< ADC sample time select 28.5t
  73. ADC_Samctl_29_5 = ADC_SMPR1_SAMCTL0_29_5, ///< ADC sample time select 29.5t
  74. ADC_Samctl_41_5 = ADC_SMPR1_SAMCTL0_42_5, ///< ADC sample time select 41.5t
  75. ADC_Samctl_42_5 = ADC_SMPR1_SAMCTL0_42_5, ///< ADC sample time select 42.5t
  76. ADC_Samctl_55_5 = ADC_SMPR1_SAMCTL0_56_5, ///< ADC sample time select 55.5t
  77. ADC_Samctl_56_5 = ADC_SMPR1_SAMCTL0_56_5, ///< ADC sample time select 56.5t
  78. ADC_Samctl_71_5 = ADC_SMPR1_SAMCTL0_72_5, ///< ADC sample time select 71.5t
  79. ADC_Samctl_72_5 = ADC_SMPR1_SAMCTL0_72_5, ///< ADC sample time select 72.5t
  80. ADC_Samctl_239_5 = ADC_SMPR1_SAMCTL0_240_5, ///< ADC sample time select 239.5t
  81. ADC_Samctl_240_5 = ADC_SMPR1_SAMCTL0_240_5 ///< ADC sample time select 240.5t
  82. } ADCSAM_TypeDef;
  83. ////////////////////////////////////////////////////////////////////////////////
  84. /// @brief ADC_Resolution
  85. ////////////////////////////////////////////////////////////////////////////////
  86. typedef enum {
  87. ADC_Resolution_12b = ADC_CFGR_RSLTCTL_12, ///< ADC resolution select 12bit
  88. ADC_Resolution_11b = ADC_CFGR_RSLTCTL_11, ///< ADC resolution select 11bit
  89. ADC_Resolution_10b = ADC_CFGR_RSLTCTL_10, ///< ADC resolution select 10bit
  90. ADC_Resolution_9b = ADC_CFGR_RSLTCTL_9, ///< ADC resolution select 9bit
  91. ADC_Resolution_8b = ADC_CFGR_RSLTCTL_8 ///< ADC resolution select 8bit
  92. } ADCRSL_TypeDef;
  93. /// @brief ADC_Prescare
  94. ////////////////////////////////////////////////////////////////////////////////
  95. typedef enum {
  96. ADC_PCLK2_PRESCARE_3 = ADC_CFGR_PRE_3, ///< ADC preclk 3
  97. ADC_PCLK2_PRESCARE_5 = ADC_CFGR_PRE_5, ///< ADC preclk 5
  98. ADC_PCLK2_PRESCARE_7 = ADC_CFGR_PRE_7, ///< ADC preclk 7
  99. ADC_PCLK2_PRESCARE_9 = ADC_CFGR_PRE_9, ///< ADC preclk 9
  100. ADC_PCLK2_PRESCARE_11 = ADC_CFGR_PRE_11, ///< ADC preclk 11
  101. ADC_PCLK2_PRESCARE_13 = ADC_CFGR_PRE_13, ///< ADC preclk 13
  102. ADC_PCLK2_PRESCARE_15 = ADC_CFGR_PRE_15, ///< ADC preclk 15
  103. ADC_PCLK2_PRESCARE_17 = ADC_CFGR_PRE_17, ///< ADC preclk 17
  104. ADC_PCLK2_PRESCARE_2 = ADC_CFGR_PRE_2, ///< ADC preclk 2
  105. ADC_PCLK2_PRESCARE_4 = ADC_CFGR_PRE_4, ///< ADC preclk 4
  106. ADC_PCLK2_PRESCARE_6 = ADC_CFGR_PRE_6, ///< ADC preclk 6
  107. ADC_PCLK2_PRESCARE_8 = ADC_CFGR_PRE_8, ///< ADC preclk 8
  108. ADC_PCLK2_PRESCARE_10 = ADC_CFGR_PRE_10, ///< ADC preclk 10
  109. ADC_PCLK2_PRESCARE_12 = ADC_CFGR_PRE_12, ///< ADC preclk 12
  110. ADC_PCLK2_PRESCARE_14 = ADC_CFGR_PRE_14, ///< ADC preclk 14
  111. ADC_PCLK2_PRESCARE_16 = ADC_CFGR_PRE_16 ///< ADC preclk 16
  112. } ADCPRE_TypeDef;
  113. ////////////////////////////////////////////////////////////////////////////////
  114. /// @brief ADC_Conversion_Mode
  115. ////////////////////////////////////////////////////////////////////////////////
  116. typedef enum {
  117. ADC_Mode_Imm = ADC_CR_IMM, ///< ADC single convert mode
  118. ADC_Mode_Scan = ADC_CR_SCAN, ///< ADC single period convert mode
  119. ADC_Mode_Continue = ADC_CR_CONTINUE ///< ADC continue scan convert mode
  120. } ADCMODE_TypeDef;
  121. ////////////////////////////////////////////////////////////////////////////////
  122. /// @brief ADC_Extrenal_Trigger_Sources_For_Regular_Channels_Conversion
  123. ////////////////////////////////////////////////////////////////////////////////
  124. typedef enum {
  125. ADC1_ExternalTrigConv_T1_CC1 = ADC_CR_T1_CC1,
  126. ADC1_ExternalTrigConv_T1_CC2 = ADC_CR_T1_CC2,
  127. ADC1_ExternalTrigConv_T1_CC3 = ADC_CR_T1_CC3,
  128. ADC1_ExternalTrigConv_T2_CC2 = ADC_CR_T2_CC2,
  129. ADC1_ExternalTrigConv_T3_TRIG = ADC_CR_T3_TRIG,
  130. ADC1_ExternalTrigConv_T3_CC1 = ADC_CR_T3_CC1,
  131. ADC1_ExternalTrigConv_EXTI_11 = ADC_CR_EXTI_11,
  132. ADC1_ExternalTrigConv_T1_CC4_CC5 = ADC_CR_T1_CC4_CC5,
  133. ADC1_ExternalTrigConv_T1_TRIG = ADC_CR_T1_TRIG,
  134. ADC1_ExternalTrigConv_T8_CC4 = ADC_CR_T8_CC4,
  135. ADC1_ExternalTrigConv_T8_CC4_CC5 = ADC_CR_T8_CC4_CC5,
  136. ADC1_ExternalTrigConv_T2_CC1 = ADC_CR_T2_CC1,
  137. ADC1_ExternalTrigConv_T3_CC4 = ADC_CR_T3_CC4,
  138. ADC1_ExternalTrigConv_T2_TRIG = ADC_CR_T2_TRIG,
  139. ADC1_ExternalTrigConv_T8_CC5 = ADC_CR_T8_CC5,
  140. ADC1_ExternalTrigConv_EXTI_15 = ADC_CR_EXTI_15,
  141. ADC1_ExternalTrigConv_T1_CC4 = ADC_CR_TIM1_CC4,
  142. ADC1_ExternalTrigConv_T1_CC5 = ADC_CR_TIM1_CC5
  143. } EXTERTRIG_TypeDef;
  144. ////////////////////////////////////////////////////////////////////////////////
  145. /// @brief ADC_Data_Align
  146. ////////////////////////////////////////////////////////////////////////////////
  147. typedef enum {
  148. ADC_DataAlign_Right = ADC_CR_RIGHT, ///< ADC data left align
  149. ADC_DataAlign_Left = ADC_CR_LEFT ///< ADC data right align
  150. } ADCDATAALI_TypeDef;
  151. ////////////////////////////////////////////////////////////////////////////////
  152. /// @brief ADC_Flags_Definition
  153. ////////////////////////////////////////////////////////////////////////////////
  154. typedef enum {
  155. ADC_IT_EOC = 1, ///< ADC conversion flag
  156. ADC_FLAG_EOC = 1,
  157. ADC_IT_AWD = 2, ///< ADC window comparator flag
  158. ADC_FLAG_AWD = 2
  159. } ADCFLAG_TypeDef;
  160. ////////////////////////////////////////////////////////////////////////////////
  161. /// @brief ADC_Trig_Edge
  162. ////////////////////////////////////////////////////////////////////////////////
  163. typedef enum {
  164. ADC_ADC_Trig_Edge_Dual = ADC_CR_TRG_EDGE_DUAL, ///< ADC trig edge dual mode down and up
  165. ADC_ADC_Trig_Edge_Down = ADC_CR_TRG_EDGE_DOWN, ///< ADC trig edge single mode down
  166. ADC_ADC_Trig_Edge_Up = ADC_CR_TRG_EDGE_UP, ///< ADC trig edge single mode up
  167. ADC_ADC_Trig_Edge_Mask = ADC_CR_TRG_EDGE_MASK ///< ADC trig edge is mask, not allowed
  168. } ADCTRIGEDGE_TypeDef;
  169. ////////////////////////////////////////////////////////////////////////////////
  170. /// @brief ADC_Scan_Direct
  171. ////////////////////////////////////////////////////////////////////////////////
  172. typedef enum {
  173. ADC_Scan_Direct_Up = ADC_CR_SCANDIR, ///< ADC scan from low channel to high channel
  174. ADC_Scan_Direct_Down = 0 ///< ADC scan from High channel to low channel
  175. } ADCSCANDIRECT_TypeDef;
  176. ////////////////////////////////////////////////////////////////////////////////
  177. /// @brief ADC_Trig_Shift
  178. ////////////////////////////////////////////////////////////////////////////////
  179. typedef enum {
  180. ADC_ADC_Trig_Shift_0 = ADC_CR_TRGSHIFT_0, ///< ADC trig shift bit is 0
  181. ADC_ADC_Trig_Shift_4 = ADC_CR_TRGSHIFT_4, ///< ADC trig shift bit is 4
  182. ADC_ADC_Trig_Shift_16 = ADC_CR_TRGSHIFT_16, ///< ADC trig shift bit is 16
  183. ADC_ADC_Trig_Shift_32 = ADC_CR_TRGSHIFT_32, ///< ADC trig shift bit is 32
  184. ADC_ADC_Trig_Shift_64 = ADC_CR_TRGSHIFT_64, ///< ADC trig shift bit is 64
  185. ADC_ADC_Trig_Shift_128 = ADC_CR_TRGSHIFT_128, ///< ADC trig shift bit is 128
  186. ADC_ADC_Trig_Shift_256 = ADC_CR_TRGSHIFT_256, ///< ADC trig shift bit is 256
  187. ADC_ADC_Trig_Shift_512 = ADC_CR_TRGSHIFT_512, ///< ADC trig shift bit is 512
  188. } ADCTRIGSHIFT_TypeDef;
  189. ////////////////////////////////////////////////////////////////////////////////
  190. /// @brief ADC_Inject_Sequence_Length the sequencer length for injected channels
  191. ////////////////////////////////////////////////////////////////////////////////
  192. typedef enum {
  193. ADC_Inject_Seqen_Len1 = 0, ///< ADC Injected Seqence length is 1
  194. ADC_Inject_Seqen_Len2 = 1, ///< ADC Injected Seqence length is 2
  195. ADC_Inject_Seqen_Len3 = 2, ///< ADC Injected Seqence length is 3
  196. ADC_Inject_Seqen_Len4 = 3, ///< ADC Injected Seqence length is 4
  197. } ADC_INJ_SEQ_LEN_TypeDef;
  198. ////////////////////////////////////////////////////////////////////////////////
  199. /// @brief ADC_Inject_Sequence_Length the sequencer length for injected channels
  200. ////////////////////////////////////////////////////////////////////////////////
  201. typedef enum {
  202. ADC_InjectedChannel_1 = 0x00,
  203. ADC_InjectedChannel_2 = 0x04,
  204. ADC_InjectedChannel_3 = 0x08,
  205. ADC_InjectedChannel_4 = 0x0c,
  206. } ADC_INJ_SEQ_Channel_TypeDef;
  207. ////////////////////////////////////////////////////////////////////////////////
  208. /// @brief ADC_Extrenal_Trigger_Sources_For_Regular_Channels_Conversion
  209. ////////////////////////////////////////////////////////////////////////////////
  210. typedef enum {
  211. ADC1_InjectExtTrigSrc_T1_TRGO = ADC_ANY_CR_JTRGSEL_TIM1_TRGO, ///< TIM1 TRGO
  212. ADC1_InjectExtTrigSrc_T1_CC4 = ADC_ANY_CR_JTRGSEL_TIM1_CC4, ///< TIM1 CC4
  213. ADC1_InjectExtTrigSrc_T1_CC4_CC5 = ADC_ANY_CR_JTRGSEL_TIM1_CC4_CC5, ///< TIM1 CC4 and CC5
  214. ADC1_InjectExtTrigSrc_T2_CC1 = ADC_ANY_CR_JTRGSEL_TIM2_TIM4CC1, ///< TIM2 CC1
  215. ADC1_InjectExtTrigSrc_T3_CC4 = ADC_ANY_CR_JTRGSEL_TIM3_TIM5CC4, ///< TIM3 CC4
  216. ADC1_InjectExtTrigSrc_T8_CC4 = ADC_ANY_CR_JTRGSEL_TIM8_CC4, ///< TIM8 CC4
  217. ADC1_InjectExtTrigSrc_T8_CC4_CC5 = ADC_ANY_CR_JTRGSEL_TIM8_CC4_CC5, ///< TIM8 CC4 and CC5
  218. ADC1_InjectExtTrigSrc_EXTI_12 = ADC_ANY_CR_JTRGSEL_EXTI12, ///< EXTI12
  219. ADC2_InjectExtTrigSrc_T1_TRGO = ADC_ANY_CR_JTRGSEL_TIM1_TRGO, ///< TIM1 TRGO
  220. ADC2_InjectExtTrigSrc_T1_CC4 = ADC_ANY_CR_JTRGSEL_TIM1_CC4, ///< TIM1 CC4
  221. ADC2_InjectExtTrigSrc_T1_CC4_CC5 = ADC_ANY_CR_JTRGSEL_TIM1_CC4_CC5, ///< TIM1 CC4 and CC5
  222. ADC2_InjectExtTrigSrc_T2_CC1 = ADC_ANY_CR_JTRGSEL_TIM2_TIM4CC1, ///< TIM2 CC1
  223. ADC2_InjectExtTrigSrc_T3_CC4 = ADC_ANY_CR_JTRGSEL_TIM3_TIM5CC4, ///< TIM3 CC4
  224. ADC2_InjectExtTrigSrc_T8_CC4 = ADC_ANY_CR_JTRGSEL_TIM8_CC4, ///< TIM8 CC4
  225. ADC2_InjectExtTrigSrc_T8_CC4_CC5 = ADC_ANY_CR_JTRGSEL_TIM8_CC4_CC5, ///< TIM8 CC4 and CC5
  226. ADC2_InjectExtTrigSrc_EXTI_12 = ADC_ANY_CR_JTRGSEL_EXTI12, ///< EXTI12
  227. ADC3_InjectExtTrigSrc_T1_TRGO = ADC_ANY_CR_JTRGSEL_TIM1_TRGO, ///< TIM1 TRGO
  228. ADC3_InjectExtTrigSrc_T1_CC4 = ADC_ANY_CR_JTRGSEL_TIM1_CC4, ///< TIM1 CC4
  229. ADC3_InjectExtTrigSrc_T1_CC4_CC5 = ADC_ANY_CR_JTRGSEL_TIM1_CC4_CC5, ///< TIM1 CC4 and CC5
  230. ADC3_InjectExtTrigSrc_T4_CC1 = ADC_ANY_CR_JTRGSEL_TIM2_TIM4CC1, ///< TIM4 CC1
  231. ADC3_InjectExtTrigSrc_T5_CC4 = ADC_ANY_CR_JTRGSEL_TIM3_TIM5CC4, ///< TIM5 CC4
  232. ADC3_InjectExtTrigSrc_T8_CC4 = ADC_ANY_CR_JTRGSEL_TIM8_CC4, ///< TIM8 CC4
  233. ADC3_InjectExtTrigSrc_T8_CC4_CC5 = ADC_ANY_CR_JTRGSEL_TIM8_CC4_CC5, ///< TIM8 CC4 and CC5
  234. ADC3_InjectExtTrigSrc_EXTI_12 = ADC_ANY_CR_JTRGSEL_EXTI12, ///< EXTI12
  235. } EXTER_INJ_TRIG_TypeDef;
  236. ////////////////////////////////////////////////////////////////////////////////
  237. /// @brief ADC Init Structure definition
  238. ////////////////////////////////////////////////////////////////////////////////
  239. typedef struct {
  240. u32 ADC_Resolution; ///< Convert data resolution
  241. u32 ADC_PRESCARE; ///< Clock prescaler
  242. u32 ADC_Mode; ///< ADC conversion mode
  243. FunctionalState ADC_ContinuousConvMode; ///< Useless just for compatibility
  244. u32 ADC_ExternalTrigConv; ///< External trigger source selection
  245. u32 ADC_DataAlign; ///< Data alignmentn
  246. } ADC_InitTypeDef;
  247. /// @}
  248. ////////////////////////////////////////////////////////////////////////////////
  249. /// @defgroup ADC_Exported_Variables
  250. /// @{
  251. #ifdef _HAL_ADC_C_
  252. #define GLOBAL
  253. #else
  254. #define GLOBAL extern
  255. #endif
  256. #undef GLOBAL
  257. /// @}
  258. ////////////////////////////////////////////////////////////////////////////////
  259. /// @defgroup ADC_Exported_Functions
  260. /// @{
  261. void ADC_DeInit(ADC_TypeDef* adc);
  262. void ADC_Init(ADC_TypeDef* adc, ADC_InitTypeDef* init_struct);
  263. void ADC_StructInit(ADC_InitTypeDef* init_struct);
  264. void ADC_Cmd(ADC_TypeDef* adc, FunctionalState state);
  265. void ADC_DMACmd(ADC_TypeDef* adc, FunctionalState state);
  266. void ADC_ITConfig(ADC_TypeDef* adc, ADCFLAG_TypeDef adc_interrupt, FunctionalState state);
  267. void ADC_SoftwareStartConvCmd(ADC_TypeDef* adc, FunctionalState state);
  268. void ADC_RegularChannelConfig(ADC_TypeDef* adc, u32 channel, u8 rank, u32 sample_time);//ADCSAM_TypeDef
  269. void ADC_ExternalTrigConvCmd(ADC_TypeDef* adc, FunctionalState state);
  270. void ADC_ExternalTrigConvConfig(ADC_TypeDef* adc, EXTERTRIG_TypeDef adc_external_trig_source);
  271. #define ADC_ExternalTrigInjectedConvConfig ADC_ExternalTrigConvConfig
  272. void ADC_AnalogWatchdogCmd(ADC_TypeDef* adc, FunctionalState state);
  273. void ADC_AnalogWatchdogThresholdsConfig(ADC_TypeDef* adc, u16 high_threshold, u16 low_threshold);
  274. void ADC_AnalogWatchdogSingleChannelConfig(ADC_TypeDef* adc, ADCCHANNEL_TypeDef channel);
  275. void ADC_TempSensorVrefintCmd(FunctionalState state);
  276. void ADC_ClearITPendingBit(ADC_TypeDef* adc, ADCFLAG_TypeDef adc_interrupt);
  277. void ADC_ClearFlag(ADC_TypeDef* adc, ADCFLAG_TypeDef adc_flag);
  278. u16 ADC_GetConversionValue(ADC_TypeDef* adc);
  279. FlagStatus ADC_GetSoftwareStartConvStatus(ADC_TypeDef* adc);
  280. FlagStatus ADC_GetFlagStatus(ADC_TypeDef* adc, ADCFLAG_TypeDef adc_flag);
  281. ITStatus ADC_GetITStatus(ADC_TypeDef* adc, ADCFLAG_TypeDef adc_interrupt);
  282. void ADC_TempSensorCmd(FunctionalState state);
  283. void ADC_VrefintCmd(FunctionalState state);
  284. void exADC_TempSensorVrefintCmd(u32 chs, FunctionalState state);
  285. void ADC_ANY_CH_Config(ADC_TypeDef* adc, u8 rank, ADCCHANNEL_TypeDef adc_channel);
  286. void ADC_ANY_NUM_Config(ADC_TypeDef* adc, u8 num);
  287. void ADC_ANY_Cmd(ADC_TypeDef* adc, FunctionalState state);
  288. void ADC_AutoInjectedConvCmd(ADC_TypeDef* adc, FunctionalState state);
  289. void ADC_ExternalTrigInjectedConvertConfig(ADC_TypeDef* adc, EXTER_INJ_TRIG_TypeDef ADC_ExtInjTrigSource);
  290. void ADC_InjectedConvCmd(ADC_TypeDef* adc, FunctionalState state);
  291. void ADC_ExternalTrigInjectedConvCmd(ADC_TypeDef* adc, FunctionalState state);
  292. void ADC_InjectedSequencerConfig(ADC_TypeDef* adc, u32 event, u32 sample_time);
  293. void ADC_InjectedSequencerLengthConfig(ADC_TypeDef* adc, ADC_INJ_SEQ_LEN_TypeDef Length);
  294. void ADC_InjectedSequencerChannelConfig(ADC_TypeDef* adc, ADC_INJ_SEQ_Channel_TypeDef off_addr, ADCCHANNEL_TypeDef channel);
  295. u16 ADC_GetInjectedConversionValue(ADC_TypeDef* adc, ADC_INJ_SEQ_Channel_TypeDef off_addr);
  296. u16 ADC_GetInjectedCurrentConvertedValue(ADC_TypeDef* adc);
  297. void ADC_SetInjectedOffset(ADC_TypeDef* adc, ADC_INJ_SEQ_Channel_TypeDef off_addr, u16 value);
  298. u16 ADC_GetChannelConvertedValue(ADC_TypeDef* adc, ADCCHANNEL_TypeDef channel);
  299. /// @}
  300. /// @}
  301. /// @}
  302. ////////////////////////////////////////////////////////////////////////////////
  303. #endif
  304. ////////////////////////////////////////////////////////////////////////////////