Skip to content
This repository was archived by the owner on Mar 31, 2023. It is now read-only.

Commit c64061d

Browse files
ridhaosWi6labsVVESTM
authored andcommitted
Add STM8S/A Standard peripheral library
STM8S/A Standard peripheral library version 2.3.0 from http://www.st.com/ => STSW-STM8069.
1 parent 413cdae commit c64061d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+28024
-0
lines changed

system/Drivers/STM8S_StdPeriph_Driver/Release_Notes.html

Lines changed: 383 additions & 0 deletions
Large diffs are not rendered by default.

system/Drivers/STM8S_StdPeriph_Driver/inc/stm8s.h

Lines changed: 2834 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 338 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,338 @@
1+
/**
2+
******************************************************************************
3+
* @file stm8s_adc1.h
4+
* @author MCD Application Team
5+
* @version V2.3.0
6+
* @date 16-June-2017
7+
* @brief This file contains all the prototypes/macros for the ADC1 peripheral.
8+
******************************************************************************
9+
* @attention
10+
*
11+
* <h2><center>&copy; COPYRIGHT 2014 STMicroelectronics</center></h2>
12+
*
13+
* Licensed under MCD-ST Liberty SW License Agreement V2, (the "License");
14+
* You may not use this file except in compliance with the License.
15+
* You may obtain a copy of the License at:
16+
*
17+
* http://www.st.com/software_license_agreement_liberty_v2
18+
*
19+
* Unless required by applicable law or agreed to in writing, software
20+
* distributed under the License is distributed on an "AS IS" BASIS,
21+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
22+
* See the License for the specific language governing permissions and
23+
* limitations under the License.
24+
*
25+
******************************************************************************
26+
*/
27+
/* Define to prevent recursive inclusion -------------------------------------*/
28+
#ifndef __STM8S_ADC1_H
29+
#define __STM8S_ADC1_H
30+
31+
/* Includes ------------------------------------------------------------------*/
32+
#include "stm8s.h"
33+
34+
/* Exported types ------------------------------------------------------------*/
35+
36+
/** @addtogroup ADC1_Exported_Types
37+
* @{
38+
*/
39+
40+
/**
41+
* @brief ADC1 clock prescaler selection
42+
*/
43+
44+
typedef enum
45+
{
46+
ADC1_PRESSEL_FCPU_D2 = (uint8_t)0x00, /**< Prescaler selection fADC1 = fcpu/2 */
47+
ADC1_PRESSEL_FCPU_D3 = (uint8_t)0x10, /**< Prescaler selection fADC1 = fcpu/3 */
48+
ADC1_PRESSEL_FCPU_D4 = (uint8_t)0x20, /**< Prescaler selection fADC1 = fcpu/4 */
49+
ADC1_PRESSEL_FCPU_D6 = (uint8_t)0x30, /**< Prescaler selection fADC1 = fcpu/6 */
50+
ADC1_PRESSEL_FCPU_D8 = (uint8_t)0x40, /**< Prescaler selection fADC1 = fcpu/8 */
51+
ADC1_PRESSEL_FCPU_D10 = (uint8_t)0x50, /**< Prescaler selection fADC1 = fcpu/10 */
52+
ADC1_PRESSEL_FCPU_D12 = (uint8_t)0x60, /**< Prescaler selection fADC1 = fcpu/12 */
53+
ADC1_PRESSEL_FCPU_D18 = (uint8_t)0x70 /**< Prescaler selection fADC1 = fcpu/18 */
54+
} ADC1_PresSel_TypeDef;
55+
56+
/**
57+
* @brief ADC1 External conversion trigger event selection
58+
*/
59+
typedef enum
60+
{
61+
ADC1_EXTTRIG_TIM = (uint8_t)0x00, /**< Conversion from Internal TIM1 TRGO event */
62+
ADC1_EXTTRIG_GPIO = (uint8_t)0x10 /**< Conversion from External interrupt on ADC_ETR pin*/
63+
} ADC1_ExtTrig_TypeDef;
64+
65+
/**
66+
* @brief ADC1 data alignment
67+
*/
68+
typedef enum
69+
{
70+
ADC1_ALIGN_LEFT = (uint8_t)0x00, /**< Data alignment left */
71+
ADC1_ALIGN_RIGHT = (uint8_t)0x08 /**< Data alignment right */
72+
} ADC1_Align_TypeDef;
73+
74+
/**
75+
* @brief ADC1 Interrupt source
76+
*/
77+
typedef enum
78+
{
79+
ADC1_IT_AWDIE = (uint16_t)0x010, /**< Analog WDG interrupt enable */
80+
ADC1_IT_EOCIE = (uint16_t)0x020, /**< EOC interrupt enable */
81+
ADC1_IT_AWD = (uint16_t)0x140, /**< Analog WDG status */
82+
ADC1_IT_AWS0 = (uint16_t)0x110, /**< Analog channel 0 status */
83+
ADC1_IT_AWS1 = (uint16_t)0x111, /**< Analog channel 1 status */
84+
ADC1_IT_AWS2 = (uint16_t)0x112, /**< Analog channel 2 status */
85+
ADC1_IT_AWS3 = (uint16_t)0x113, /**< Analog channel 3 status */
86+
ADC1_IT_AWS4 = (uint16_t)0x114, /**< Analog channel 4 status */
87+
ADC1_IT_AWS5 = (uint16_t)0x115, /**< Analog channel 5 status */
88+
ADC1_IT_AWS6 = (uint16_t)0x116, /**< Analog channel 6 status */
89+
ADC1_IT_AWS7 = (uint16_t)0x117, /**< Analog channel 7 status */
90+
ADC1_IT_AWS8 = (uint16_t)0x118, /**< Analog channel 8 status */
91+
ADC1_IT_AWS9 = (uint16_t)0x119, /**< Analog channel 9 status */
92+
ADC1_IT_AWS12 = (uint16_t)0x11C, /**< Analog channel 12 status */
93+
/* refer to product datasheet for channel 12 availability */
94+
ADC1_IT_EOC = (uint16_t)0x080 /**< EOC pending bit */
95+
96+
} ADC1_IT_TypeDef;
97+
98+
/**
99+
* @brief ADC1 Flags
100+
*/
101+
typedef enum
102+
{
103+
ADC1_FLAG_OVR = (uint8_t)0x41, /**< Overrun status flag */
104+
ADC1_FLAG_AWD = (uint8_t)0x40, /**< Analog WDG status */
105+
ADC1_FLAG_AWS0 = (uint8_t)0x10, /**< Analog channel 0 status */
106+
ADC1_FLAG_AWS1 = (uint8_t)0x11, /**< Analog channel 1 status */
107+
ADC1_FLAG_AWS2 = (uint8_t)0x12, /**< Analog channel 2 status */
108+
ADC1_FLAG_AWS3 = (uint8_t)0x13, /**< Analog channel 3 status */
109+
ADC1_FLAG_AWS4 = (uint8_t)0x14, /**< Analog channel 4 status */
110+
ADC1_FLAG_AWS5 = (uint8_t)0x15, /**< Analog channel 5 status */
111+
ADC1_FLAG_AWS6 = (uint8_t)0x16, /**< Analog channel 6 status */
112+
ADC1_FLAG_AWS7 = (uint8_t)0x17, /**< Analog channel 7 status */
113+
ADC1_FLAG_AWS8 = (uint8_t)0x18, /**< Analog channel 8 status*/
114+
ADC1_FLAG_AWS9 = (uint8_t)0x19, /**< Analog channel 9 status */
115+
ADC1_FLAG_AWS12 = (uint8_t)0x1C, /**< Analog channel 12 status */
116+
/* refer to product datasheet for channel 12 availability */
117+
ADC1_FLAG_EOC = (uint8_t)0x80 /**< EOC falg */
118+
}ADC1_Flag_TypeDef;
119+
120+
121+
/**
122+
* @brief ADC1 schmitt Trigger
123+
*/
124+
typedef enum
125+
{
126+
ADC1_SCHMITTTRIG_CHANNEL0 = (uint8_t)0x00, /**< Schmitt trigger disable on AIN0 */
127+
ADC1_SCHMITTTRIG_CHANNEL1 = (uint8_t)0x01, /**< Schmitt trigger disable on AIN1 */
128+
ADC1_SCHMITTTRIG_CHANNEL2 = (uint8_t)0x02, /**< Schmitt trigger disable on AIN2 */
129+
ADC1_SCHMITTTRIG_CHANNEL3 = (uint8_t)0x03, /**< Schmitt trigger disable on AIN3 */
130+
ADC1_SCHMITTTRIG_CHANNEL4 = (uint8_t)0x04, /**< Schmitt trigger disable on AIN4 */
131+
ADC1_SCHMITTTRIG_CHANNEL5 = (uint8_t)0x05, /**< Schmitt trigger disable on AIN5 */
132+
ADC1_SCHMITTTRIG_CHANNEL6 = (uint8_t)0x06, /**< Schmitt trigger disable on AIN6 */
133+
ADC1_SCHMITTTRIG_CHANNEL7 = (uint8_t)0x07, /**< Schmitt trigger disable on AIN7 */
134+
ADC1_SCHMITTTRIG_CHANNEL8 = (uint8_t)0x08, /**< Schmitt trigger disable on AIN8 */
135+
ADC1_SCHMITTTRIG_CHANNEL9 = (uint8_t)0x09, /**< Schmitt trigger disable on AIN9 */
136+
ADC1_SCHMITTTRIG_CHANNEL12 = (uint8_t)0x0C, /**< Schmitt trigger disable on AIN12 */
137+
/* refer to product datasheet for channel 12 availability */
138+
ADC1_SCHMITTTRIG_ALL = (uint8_t)0xFF /**< Schmitt trigger disable on All channels */
139+
} ADC1_SchmittTrigg_TypeDef;
140+
141+
/**
142+
* @brief ADC1 conversion mode selection
143+
*/
144+
145+
typedef enum
146+
{
147+
ADC1_CONVERSIONMODE_SINGLE = (uint8_t)0x00, /**< Single conversion mode */
148+
ADC1_CONVERSIONMODE_CONTINUOUS = (uint8_t)0x01 /**< Continuous conversion mode */
149+
} ADC1_ConvMode_TypeDef;
150+
151+
/**
152+
* @brief ADC1 analog channel selection
153+
*/
154+
155+
typedef enum
156+
{
157+
ADC1_CHANNEL_0 = (uint8_t)0x00, /**< Analog channel 0 */
158+
ADC1_CHANNEL_1 = (uint8_t)0x01, /**< Analog channel 1 */
159+
ADC1_CHANNEL_2 = (uint8_t)0x02, /**< Analog channel 2 */
160+
ADC1_CHANNEL_3 = (uint8_t)0x03, /**< Analog channel 3 */
161+
ADC1_CHANNEL_4 = (uint8_t)0x04, /**< Analog channel 4 */
162+
ADC1_CHANNEL_5 = (uint8_t)0x05, /**< Analog channel 5 */
163+
ADC1_CHANNEL_6 = (uint8_t)0x06, /**< Analog channel 6 */
164+
ADC1_CHANNEL_7 = (uint8_t)0x07, /**< Analog channel 7 */
165+
ADC1_CHANNEL_8 = (uint8_t)0x08, /**< Analog channel 8 */
166+
ADC1_CHANNEL_9 = (uint8_t)0x09, /**< Analog channel 9 */
167+
ADC1_CHANNEL_12 = (uint8_t)0x0C /**< Analog channel 12 */
168+
/* refer to product datasheet for channel 12 availability */
169+
} ADC1_Channel_TypeDef;
170+
171+
/**
172+
* @}
173+
*/
174+
175+
/* Exported constants --------------------------------------------------------*/
176+
177+
/* Exported macros ------------------------------------------------------------*/
178+
179+
/* Private macros ------------------------------------------------------------*/
180+
181+
/** @addtogroup ADC1_Private_Macros
182+
* @brief Macros used by the assert function to check the different functions parameters.
183+
* @{
184+
*/
185+
186+
/**
187+
* @brief Macro used by the assert function to check the different prescaler's values.
188+
*/
189+
#define IS_ADC1_PRESSEL_OK(PRESCALER) (((PRESCALER) == ADC1_PRESSEL_FCPU_D2) || \
190+
((PRESCALER) == ADC1_PRESSEL_FCPU_D3) || \
191+
((PRESCALER) == ADC1_PRESSEL_FCPU_D4) || \
192+
((PRESCALER) == ADC1_PRESSEL_FCPU_D6) || \
193+
((PRESCALER) == ADC1_PRESSEL_FCPU_D8) || \
194+
((PRESCALER) == ADC1_PRESSEL_FCPU_D10) || \
195+
((PRESCALER) == ADC1_PRESSEL_FCPU_D12) || \
196+
((PRESCALER) == ADC1_PRESSEL_FCPU_D18))
197+
198+
/**
199+
* @brief Macro used by the assert function to check the different external trigger values.
200+
*/
201+
#define IS_ADC1_EXTTRIG_OK(EXTRIG) (((EXTRIG) == ADC1_EXTTRIG_TIM) || \
202+
((EXTRIG) == ADC1_EXTTRIG_GPIO))
203+
204+
/**
205+
* @brief Macro used by the assert function to check the different alignment modes.
206+
*/
207+
#define IS_ADC1_ALIGN_OK(ALIGN) (((ALIGN) == ADC1_ALIGN_LEFT) || \
208+
((ALIGN) == ADC1_ALIGN_RIGHT))
209+
210+
/**
211+
* @brief Macro used by the assert function to check the Interrupt source.
212+
*/
213+
#define IS_ADC1_IT_OK(IT) (((IT) == ADC1_IT_EOCIE) || \
214+
((IT) == ADC1_IT_AWDIE))
215+
216+
/**
217+
* @brief Macro used by the assert function to check the ADC1 Flag.
218+
*/
219+
#define IS_ADC1_FLAG_OK(FLAG) (((FLAG) == ADC1_FLAG_EOC)|| \
220+
((FLAG) == ADC1_FLAG_OVR) || \
221+
((FLAG) == ADC1_FLAG_AWD) || \
222+
((FLAG) == ADC1_FLAG_AWS0) || \
223+
((FLAG) == ADC1_FLAG_AWS1) || \
224+
((FLAG) == ADC1_FLAG_AWS2) || \
225+
((FLAG) == ADC1_FLAG_AWS3) || \
226+
((FLAG) == ADC1_FLAG_AWS4) || \
227+
((FLAG) == ADC1_FLAG_AWS5) || \
228+
((FLAG) == ADC1_FLAG_AWS6) || \
229+
((FLAG) == ADC1_FLAG_AWS7) || \
230+
((FLAG) == ADC1_FLAG_AWS8) || \
231+
((FLAG) == ADC1_FLAG_AWS9))
232+
233+
/**
234+
* @brief Macro used by the assert function to check the ADC1 pending bits.
235+
*/
236+
#define IS_ADC1_ITPENDINGBIT_OK(ITPENDINGBIT) (((ITPENDINGBIT) == ADC1_IT_EOC) || \
237+
((ITPENDINGBIT) == ADC1_IT_AWD) || \
238+
((ITPENDINGBIT) == ADC1_IT_AWS0) || \
239+
((ITPENDINGBIT) == ADC1_IT_AWS1) || \
240+
((ITPENDINGBIT) == ADC1_IT_AWS2) || \
241+
((ITPENDINGBIT) == ADC1_IT_AWS3) || \
242+
((ITPENDINGBIT) == ADC1_IT_AWS4) || \
243+
((ITPENDINGBIT) == ADC1_IT_AWS5) || \
244+
((ITPENDINGBIT) == ADC1_IT_AWS6) || \
245+
((ITPENDINGBIT) == ADC1_IT_AWS7) || \
246+
((ITPENDINGBIT) == ADC1_IT_AWS8) || \
247+
((ITPENDINGBIT) == ADC1_IT_AWS12) || \
248+
((ITPENDINGBIT) == ADC1_IT_AWS9))
249+
250+
/**
251+
* @brief Macro used by the assert function to check the different schmitt trigger values.
252+
*/
253+
#define IS_ADC1_SCHMITTTRIG_OK(SCHMITTTRIG) (((SCHMITTTRIG) == ADC1_SCHMITTTRIG_CHANNEL0) || \
254+
((SCHMITTTRIG) == ADC1_SCHMITTTRIG_CHANNEL1) || \
255+
((SCHMITTTRIG) == ADC1_SCHMITTTRIG_CHANNEL2) || \
256+
((SCHMITTTRIG) == ADC1_SCHMITTTRIG_CHANNEL3) || \
257+
((SCHMITTTRIG) == ADC1_SCHMITTTRIG_CHANNEL4) || \
258+
((SCHMITTTRIG) == ADC1_SCHMITTTRIG_CHANNEL5) || \
259+
((SCHMITTTRIG) == ADC1_SCHMITTTRIG_CHANNEL6) || \
260+
((SCHMITTTRIG) == ADC1_SCHMITTTRIG_CHANNEL7) || \
261+
((SCHMITTTRIG) == ADC1_SCHMITTTRIG_CHANNEL8) || \
262+
((SCHMITTTRIG) == ADC1_SCHMITTTRIG_CHANNEL12) || \
263+
((SCHMITTTRIG) == ADC1_SCHMITTTRIG_ALL) || \
264+
((SCHMITTTRIG) == ADC1_SCHMITTTRIG_CHANNEL9))
265+
266+
/**
267+
* @brief Macro used by the assert function to check the different conversion modes.
268+
*/
269+
#define IS_ADC1_CONVERSIONMODE_OK(MODE) (((MODE) == ADC1_CONVERSIONMODE_SINGLE) || \
270+
((MODE) == ADC1_CONVERSIONMODE_CONTINUOUS))
271+
272+
/**
273+
* @brief Macro used by the assert function to check the different channels values.
274+
*/
275+
#define IS_ADC1_CHANNEL_OK(CHANNEL) (((CHANNEL) == ADC1_CHANNEL_0) || \
276+
((CHANNEL) == ADC1_CHANNEL_1) || \
277+
((CHANNEL) == ADC1_CHANNEL_2) || \
278+
((CHANNEL) == ADC1_CHANNEL_3) || \
279+
((CHANNEL) == ADC1_CHANNEL_4) || \
280+
((CHANNEL) == ADC1_CHANNEL_5) || \
281+
((CHANNEL) == ADC1_CHANNEL_6) || \
282+
((CHANNEL) == ADC1_CHANNEL_7) || \
283+
((CHANNEL) == ADC1_CHANNEL_8) || \
284+
((CHANNEL) == ADC1_CHANNEL_12) || \
285+
((CHANNEL) == ADC1_CHANNEL_9))
286+
287+
/**
288+
* @brief Macro used by the assert function to check the possible buffer values.
289+
*/
290+
#define IS_ADC1_BUFFER_OK(BUFFER) ((BUFFER) <= (uint8_t)0x09)
291+
292+
/**
293+
* @}
294+
*/
295+
296+
/* Exported functions ------------------------------------------------------- */
297+
298+
/** @addtogroup ADC1_Exported_Functions
299+
* @{
300+
*/
301+
void ADC1_DeInit(void);
302+
void ADC1_Init(ADC1_ConvMode_TypeDef ADC1_ConversionMode,
303+
ADC1_Channel_TypeDef ADC1_Channel,
304+
ADC1_PresSel_TypeDef ADC1_PrescalerSelection,
305+
ADC1_ExtTrig_TypeDef ADC1_ExtTrigger,
306+
FunctionalState ADC1_ExtTriggerState, ADC1_Align_TypeDef ADC1_Align,
307+
ADC1_SchmittTrigg_TypeDef ADC1_SchmittTriggerChannel,
308+
FunctionalState ADC1_SchmittTriggerState);
309+
void ADC1_Cmd(FunctionalState NewState);
310+
void ADC1_ScanModeCmd(FunctionalState NewState);
311+
void ADC1_DataBufferCmd(FunctionalState NewState);
312+
void ADC1_ITConfig(ADC1_IT_TypeDef ADC1_IT, FunctionalState NewState);
313+
void ADC1_PrescalerConfig(ADC1_PresSel_TypeDef ADC1_Prescaler);
314+
void ADC1_SchmittTriggerConfig(ADC1_SchmittTrigg_TypeDef ADC1_SchmittTriggerChannel,
315+
FunctionalState NewState);
316+
void ADC1_ConversionConfig(ADC1_ConvMode_TypeDef ADC1_ConversionMode,
317+
ADC1_Channel_TypeDef ADC1_Channel,
318+
ADC1_Align_TypeDef ADC1_Align);
319+
void ADC1_ExternalTriggerConfig(ADC1_ExtTrig_TypeDef ADC1_ExtTrigger, FunctionalState NewState);
320+
void ADC1_AWDChannelConfig(ADC1_Channel_TypeDef Channel, FunctionalState NewState);
321+
void ADC1_StartConversion(void);
322+
uint16_t ADC1_GetConversionValue(void);
323+
void ADC1_SetHighThreshold(uint16_t Threshold);
324+
void ADC1_SetLowThreshold(uint16_t Threshold);
325+
uint16_t ADC1_GetBufferValue(uint8_t Buffer);
326+
FlagStatus ADC1_GetAWDChannelStatus(ADC1_Channel_TypeDef Channel);
327+
FlagStatus ADC1_GetFlagStatus(ADC1_Flag_TypeDef Flag);
328+
void ADC1_ClearFlag(ADC1_Flag_TypeDef Flag);
329+
ITStatus ADC1_GetITStatus(ADC1_IT_TypeDef ITPendingBit);
330+
void ADC1_ClearITPendingBit(ADC1_IT_TypeDef ITPendingBit);
331+
/**
332+
* @}
333+
*/
334+
335+
#endif /* __STM8S_ADC1_H */
336+
337+
338+
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

0 commit comments

Comments
 (0)