资源说明:可用于STM开发基AD转换的C语言程序
Includes
#include "stm8l15x adc h"
@addtogroup STM8L15x StdPeriph Driver
@{
Private typedef
Private define
Private macro
Private variables
Private function prototypes
Private functions
@addtogroup ADC Public Functions
@{
@brief Deinitializes the ADC peripheral registers to their default reset values
@param ADCx where x can be 1 to select the specified ADC peripheral
@retval None
void ADC DeInit ADC TypeDef ADCx
{
ADCx >CR1 ADC CR1 RESET VALUE;
ADCx >CR2 ADC CR2 RESET VALUE;
ADCx >CR3 ADC CR3 RESET VALUE;
ADCx >SR uint8 t ADC SR RESET VALUE;
ADCx >HTRH ADC HTRH RESET VALUE;
ADCx >HTRL ADC HTRL RESET VALUE;
ADCx >LTRH ADC LTRH RESET VALUE;
ADCx >LTRL ADC LTRL RESET VALUE;
ADCx >SQR[0] ADC SQR1 RESET VALUE;
ADCx >SQR[1] ADC SQR2 RESET VALUE;
ADCx >SQR[2] ADC SQR3 RESET VALUE;
ADCx >SQR[3] ADC SQR4 RESET VALUE;
ADCx >TRIGR[0] ADC TRIGR1 RESET VALUE;
ADCx >TRIGR[1] ADC TRIGR2 RESET VALUE;
ADCx >TRIGR[2] ADC TRIGR3 RESET VALUE;
ADCx >TRIGR[3] ADC TRIGR4 RESET VALUE;
}
@brief Initializes the specified ADC peripheral according to the specified parameters
@param ADCx where x can be 1 to select the specified ADC peripheral
@param ADC ConversionMode : specifies the ADC conversion mode
This parameter can be one of the @ref ADC ConversionMode TypeDef
@param ADC Resolution : specifies the ADC Data resolusion
This parameter can be one of the @ref ADC Resolution TypeDef
@param ADC Prescaler : specifies the ADC Prescaler
This parameter can be one of the @ref ADC Prescaler TypeDef
@retval None
void ADC Init ADC TypeDef ADCx
ADC ConversionMode TypeDef ADC ConversionMode
ADC Resolution TypeDef ADC Resolution
ADC Prescaler TypeDef ADC Prescaler
{
Check the parameters
assert param IS ADC CONVERSION MODE ADC ConversionMode ;
assert param IS ADC RESOLUTION ADC Resolution ;
assert param IS ADC PRESCALER ADC Prescaler ;
clear CR1 register
ADCx >CR1 & uint8 t ADC CR1 CONT | ADC CR1 RES ;
set the resolution and the conversion mode
ADCx >CR1 | uint8 t ADC ConversionMode | ADC Resolution ;
clear CR2 register
ADCx >CR2 & uint8 t ADC CR2 PRESC ;
set the Prescaler
ADCx >CR2 | uint8 t ADC Prescaler;
}
@brief Enables or disables the selected ADC channel s
@param ADCx where x can be 1 to select the specified ADC peripheral
@param ADC Channels: specifies the ADC channels to be initialized
This parameter can be a value of @ref ADC Channel TypeDef or a combination
of values as follows:
1st combination : channels from ADC Channel 0 to ADC Channel 7
2nd combination : channels from ADC Channel 8 to ADC Channel 15
3rd combination : channels from ADC Channel 16 to ADC Channel 23
@param NewState : new state of the specified ADC channel s
This parameter can be: ENABLE or DISABLE
@retval None
void ADC ChannelCmd ADC TypeDef ADCx
ADC Channel TypeDef ADC Channels
FunctionalState NewState
{
uint8 t regindex 0;
Check the parameters
assert param IS FUNCTIONAL STATE NewState ;
regindex uint8 t ADC Channels >> 8 ;
if NewState DISABLE
{
ADCx >SQR[regindex] | uint8 t ADC Channels ;
}
else
{
ADCx >SQR[regindex] & uint8 t ADC Channels ;
}
}
@brief Enables or disables the selected ADC peripheral
@param ADCx where x can be 1 to select the specified ADC peripheral
@param NewState : new state of the specified ADC peripheral
This parameter can be: ENABLE or DISABLE
@retval None
void ADC Cmd ADC TypeDef ADCx
FunctionalState NewState
{
Check the parameters
assert param IS FUNCTIONAL STATE NewState ;
if NewState DISABLE
{
Set the ADON bit to wake up the specified ADC from power down mode
ADCx >CR1 | ADC CR1 ADON;
}
else
{
Disable the selected ADC peripheral
ADCx >CR1 & uint8 t ADC CR1 ADON;
}
}
@brief Enables or disables the specified ADC interrupts
@param ADCx where x can be 1 to select the specified ADC peripheral
@param ADC IT : specifies the ADC interrupt sources to be enabled or disabled
This parameter can be any combination of the @ref ADC IT TypeDef
@param NewState : new state of the specified ADC interrupts
This parameter can be: ENABLE or DISABLE
@retval None
void ADC ITConfig ADC TypeDef ADCx
ADC IT TypeDef ADC IT
FunctionalState NewState
{
Check the parameters
assert param IS FUNCTIONAL STATE NewState ;
assert param IS ADC IT ADC IT ;
if NewState DISABLE
{
Enable the selected ADC interrupts
ADCx >CR1 | uint8 t ADC IT;
}
else
{
Disable the selected ADC interrupts
ADCx >CR1 & uint8 t ADC IT ;
}
}
@brief Enables or disables the specified ADC DMA request
@param ADCx where x can be 1 to select the specified ADC peripheral
@param NewState : new state of the specified ADC DMA transfer
This parameter can be: ENABLE or DISABLE
@retval None
void ADC DMACmd ADC TypeDef ADCx
FunctionalState NewState
{
Check the parameters
assert param IS FUNCTIONAL STATE NewState ;
if NewState DISABLE
{
Enable the specified ADC DMA request
ADCx >SQR[0] & uint8 t ADC SQR1 DMAOFF;
}
else
{
Disable the specified ADC DMA request
ADCx >SQR[0] | ADC SQR1 DMAOFF;
}
}
@brief Enables or disables the Temperature sensor internal reference
@param NewState : new state of the Temperature sensor internal reference
This parameter can be: ENABLE or DISABLE
@retval None
void ADC TempSensorCmd FunctionalState NewState
{
Check the parameters
assert param IS FUNCTIONAL STATE NewState ;
if NewState DISABLE
{
ADC1 >TRIGR[0] | uint8 t ADC TRIGR1 TSON ;
}
else
{
ADC1 >TRIGR[0] & uint8 t ADC TRIGR1 TSON ;
}
}
@brief Enables or disables the Internal Voltage reference
@param NewState : new state of the Internal Voltage reference
This parameter can be: ENABLE or DISABLE
@retval None
void ADC VrefintCmd FunctionalState NewState
{
Check the parameters
assert param IS FUNCTIONAL STATE NewState ;
if NewState DISABLE
{
ADC1 >TRIGR[0] | uint8 t ADC TRIGR1 VREFINTON ;
}
else
{
ADC1 >TRIGR[0] & uint8 t ADC TRIGR1 VREFINTON ;
}
}
@brief Starts ADC conversion by software trigger
@param ADCx where x can be 1 to select the specified ADC peripheral
@retval None
void ADC SoftwareStartConv ADC TypeDef ADCx
{
Start the ADC software conversion
ADCx >CR1 | ADC CR1 START;
}
@brief Configures the sampling time for the selected ADC channel group
@param ADCx where x can be 1 to select the specified ADC peripheral
@param ADC GroupChannels : ADC channel group to configure
This parameter can be a value of @ref ADC Group TypeDef
@param ADC SamplingTimeCycles : Specifies the sample time value
This parameter can be a value of @ref ADC SamplingTime TypeDef
@retval None
void ADC SamplingTimeConfig ADC TypeDef ADCx
ADC Group TypeDef ADC GroupChannels
ADC SamplingTime TypeDef ADC SamplingTimeCycles
{
Check the parameters
assert param IS ADC GROUP ADC GroupChannels ;
assert param IS ADC SAMPLING TIME CYCLES ADC SamplingTimeCycles ;
if ADC GroupChannels ADC Group SlowChannels
{
ADCx >CR3 & uint8 t ADC CR3 SMPT2;
ADCx >CR3 | uint8 t ADC SamplingTimeCycles << 5 ;
}
else
{
ADCx >CR2 & uint8 t ADC CR2 SMPT1;
ADCx >CR2 | uint8 t ADC SamplingTimeCycles;
}
}
@brief Configures the status of the Schmitt Trigger for the selected ADC channel s
@param ADCx where x can be 1 to select the specified ADC peripheral
@param ADC Channels: specifies the ADC channels to be initialized
This parameter can be a value of @ref ADC Channel TypeDef or a combination
of values as follows:
1st combination : channels from ADC Channel 0 to ADC Channel 7
2nd combination : channels from ADC Channel 8 to ADC Channel 15
3rd combination : channels from ADC Channel 16 to ADC Channel 23
@param NewState : new state of the Schmitt Trigger
This parameter can be: ENABLE or DISABLE
@retval None
void ADC SchmittTriggerConfig ADC TypeDef ADCx
ADC Channel TypeDef ADC Channels
FunctionalState NewState
{
uint8 t regindex 0;
Check the parameters
assert param IS FUNCTIONAL STATE NewState ;
regindex uint8 t ADC Channels >> 8 ;
if NewState DISABLE
{
ADCx >TRIGR[regindex] & uint8 t ADC Channels ;
}
else
{
ADCx >TRIGR[regindex] | uint8 t ADC Channels ;
}
}
@brief Configures the ADC conversion through external trigger
@param ADCx where x can be 1 to select the specified ADC peripheral
@param ADC ExtEventSelection : Specifies the external trigger
This parameter can be a value of @ref ADC ExtEventSelection TypeDef
@param ADC ExtTRGSensitivity : Specifies the external trigger sensitivity
This parameter can be a value of @ref ADC ExtTRGSensitivity TypeDef
@retval None
void ADC ExternalTrigConfig ADC TypeDef ADCx
ADC ExtEventSelection TypeDef ADC ExtEventSelection
ADC ExtTRGSensitivity TypeDef ADC ExtTRGSensitivity
{
Check the parameters
assert param IS ADC EXT EVENT SELECTION ADC ExtEventSelection ;
assert param IS ADC EXT TRG SENSITIVITY ADC ExtTRGSensitivity ;
clear old config in CR2 register
ADCx >CR2 & uint8 t ADC CR2 TRIGEDGE | ADC CR2 EXTSEL ;
set the External Trigger Edge Sensitivity and the external event selection
ADCx >CR2 | uint8 t ADC ExtTRGSensitivity | ADC ExtEventSelection ;
}
@brief Returns the last ADC converted data
@param ADCx where x can be 1 to select the specified ADC peripheral
@retval The Data conversion value
uint16 t ADC GetConversionValue ADC TypeDef ADCx
{
uint16 t tmpreg 0;
tmpreg uint16 t ADCx >DRH ;
tmpreg uint16 t tmpreg << 8 | ADCx >DRL ;
Return the selected ADC conversion value
return uint16 t tmpreg ;
}
@brief Configures the channel to be checked by the Analog watchdog
@param ADCx where x can be 1 to select the specified ADC peripheral
@param ADC AnalogWatchdogSelection : Specifies the channel to be checked by
by the Analog watchdog
This parameter can be a value of @ref ADC AnalogWatchdogSelection TypeDef
@retval None
void ADC AnalogWatchdogChannelSelect ADC TypeDef ADCx
ADC AnalogWatchdogSelection TypeDef ADC AnalogWatchdogSelection
{
Check the parameters
assert param IS ADC ANALOGWATCHDOG SELECTION ADC AnalogWatchdogSelection ;
reset the CHSEL bits
ADCx >CR3 & uint8 t ADC CR3 CHSEL ;
ADCx >CR3 | uint8 t ADC AnalogWatchdogSelection;
}
@brief Configures the high and low thresholds of the Analog watchdog
@param ADCx where x can be 1 to select the specified ADC peripheral
@param HighThreshold: Analog watchdog High threshold value
This parameter must be a 12bit value
@param LowThreshold: Analog watchdog Low threshold value
This parameter must be a 12bit value
@retval None
void ADC AnalogWatchdogThresholdsConfig ADC TypeDef ADCx
uint16 t HighThreshold
uint16 t LowThreshold
{
Check the parameters
assert param IS ADC THRESHOLD HighThreshold ;
assert param IS ADC THRESHOLD LowThreshold ;
Set the ADC high threshold
ADCx >HTRH uint8 t HighThreshold >> 8 ;
ADCx >HTRL uint8 t HighThreshold ;
Set the ADC low threshold
ADCx >LTRH uint8 t LowThreshold >> 8 ;
ADCx >LTRL uint8 t LowThreshold ;
}
@brief Configures the Analog watchdog
@param ADCx where x can be 1 to select the specified ADC peripheral
@param ADC AnalogWatchdogSelection : Specifies the channel to be checked by
by the Analog watchdog
This parameter can be a value of @ref ADC AnalogWatchdogSelection TypeDef
@param HighThreshold: Analog watchdog High threshold value
This parameter must be a 12bit value
@param LowThreshold: Analog watchdog Low threshold value
This parameter must be a 12bit value
@retval None
void ADC AnalogWatchdogConfig ADC TypeDef ADCx
ADC AnalogWatchdogSelection TypeDef ADC AnalogWatchdogSelection
uint16 t HighThreshold
uint16 t LowThreshold
{
Check the parameters
assert param IS ADC ANALOGWATCHDOG SELECTION ADC AnalogWatchdogSelection ;
assert param IS ADC THRESHOLD HighThreshold ;
assert param IS ADC THRESHOLD LowThreshold ;
reset the CHSEL bits
ADCx >CR3 & uint8 t ADC CR3 CHSEL ;
ADCx >CR3 | uint8 t ADC AnalogWatchdogSelection;
Set the ADC high threshold
ADCx >HTRH uint8 t HighThreshold >> 8 ;
ADCx >HTRL uint8 t HighThreshold ;
Set the ADC low threshold
ADCx >LTRH uint8 t LowThreshold >> 8 ;
ADCx >LTRL uint8 t LowThreshold;
}
@brief Checks whether the specified ADC flag is set or not
@param ADCx where x can be 1 to select the specified ADC peripheral
@param ADC FLAG: specifies the flag to check
This parameter can be a value of @ref ADC FLAG TypeDef
@retval The new state of ADC FLAG SET or RESET
FlagStatus ADC GetFlagStatus ADC TypeDef ADCx ADC FLAG TypeDef ADC FLAG
{
FlagStatus bitstatus RESET;
Check the parameters
assert param IS ADC GET FLAG ADC FLAG ;
Check the status of the specified ADC flag
if ADCx >SR & ADC FLAG uint8 t RESET
{
ADC FLAG is set
bitstatus SET;
}
else
{
ADC FLAG is reset
bitstatus RESET;
}
Return the ADC FLAG status
return bitstatus;
}
@brief Clears the ADC"s pending flags
@param ADCx where x can be 1 to select the specified ADC peripheral
@param ADC FLAG: specifies the flag to clear
This parameter can be a value of @ref ADC FLAG TypeDef
@retval None
void ADC ClearFlag ADC TypeDef ADCx
ADC FLAG TypeDef ADC FLAG
{
Check the parameters
assert param IS ADC CLEAR FLAG ADC FLAG ;
Clear the selected ADC flags
ADCx >SR uint8 t ADC FLAG;
}
@brief Checks whether the specified ADC interrupt has occurred or not
@param ADCx where x can be 1 to select the specified ADC peripheral
@param ADC IT: specifies the ADC interrupt source to check
This parameter can be a value of @ref ADC IT TypeDef
@retval Status of ADC IT SET or RESET
ITStatus ADC GetITStatus ADC TypeDef ADCx
ADC IT TypeDef ADC IT
{
ITStatus bitstatus RESET;
uint8 t itmask 0 enablestatus 0;
Check the parameters
assert param IS ADC GET IT ADC IT ;
Get the ADC IT index
itmask uint8 t ADC IT >> 3 ;
itmask uint8 t uint8 t uint8 t itmask & 0x10 >> 2 | uint8 t itmask & 0x03 ;
Get the ADC IT enable bit status
enablestatus uint8 t ADCx >CR1 & uint8 t ADC IT ;
Check the status of the specified ADC interrupt
if ADCx >SR & itmask uint8 t RESET && enablestatus
{
ADC IT is set
bitstatus SET;
}
else
{
ADC IT is reset
bitstatus RESET;
}
Return the ADC IT status
return bitstatus;
}
@brief Clears the ADC抯 interrupt pending bits
@param ADCx where x can be 1 to select the specified ADC peripheral
@param ADC IT: specifies the ADC interrupt pending bit to clear
This parameter can be a value of @ref ADC IT TypeDef
@retval None
void ADC ClearITPendingBit ADC TypeDef ADCx
ADC IT TypeDef ADC IT
{
uint8 t itmask 0;
Check the parameters
assert param IS ADC IT ADC IT ;
Get the ADC IT index
itmask uint8 t ADC IT >> 3 ;
itmask uint8 t uint8 t itmask & 0x10 >> 2 | uint8 t itmask & 0x03 ;
Clear the selected ADC interrupt pending bits
ADCx >SR uint8 t itmask;
}">可用于STM开发基AD转换的C语言程序
Includes
#include "stm8l15x adc h"
@addtogroup STM8L15x StdPeriph Driver
@{
Private typedef
[更多]
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。
English
