|
1、函数void HAL_SYSCFG_VREFBUF_VoltageScalingConfig(uint32_t VoltageScaling)
(1)此函数用于配置内部电压基准大小配置。
(2)当形参VoltageScaling = SYSCFG_VREFBUF_VOLTAGE_SCALE0时
输出基准是2.048 V,条件是VDDA >= 2.4V。
当形参VoltageScaling = SYSCFG_VREFBUF_VOLTAGE_SCALE1时
输出基准是2.5 V,条件是VDDA >= 2.8V。
当形参VoltageScaling = SYSCFG_VREFBUF_VOLTAGE_SCALE2时
输出基准是1.5 V,条件是VDDA >= 1.8V。
当形参VoltageScaling = SYSCFG_VREFBUF_VOLTAGE_SCALE3时
输出基准是1.8 V,条件是VDDA >= 2.1V。
- void HAL_SYSCFG_VREFBUF_VoltageScalingConfig(uint32_t VoltageScaling)
- {
- /* Check the parameters */
- assert_param(IS_SYSCFG_VREFBUF_VOLTAGE_SCALE(VoltageScaling));
-
- MODIFY_REG(VREFBUF->CSR, VREFBUF_CSR_VRS, VoltageScaling);
- }
复制代码
2、函数void HAL_SYSCFG_VREFBUF_HighImpedanceConfig(uint32_t Mode)
(1)此函数用于配置内部电压基准是否在芯片内部分VREF+引脚接通。
(2)形参为SYSCFG_VREFBUF_HIGH_IMPEDANCE_DISABLE时,表示导通。
形参为SYSCFG_VREFBUF_HIGH_IMPEDANCE_ENABLE时,表示高阻,即不导通。
- void HAL_SYSCFG_VREFBUF_HighImpedanceConfig(uint32_t Mode)
- {
- /* Check the parameters */
- assert_param(IS_SYSCFG_VREFBUF_HIGH_IMPEDANCE(Mode));
-
- MODIFY_REG(VREFBUF->CSR, VREFBUF_CSR_HIZ, Mode);
- }
复制代码
3、函数void HAL_SYSCFG_VREFBUF_TrimmingConfig(uint32_t TrimmingValue)
(1)此函数用于内部电压基准的的校准调节。
- void HAL_SYSCFG_VREFBUF_TrimmingConfig(uint32_t TrimmingValue)
- {
- /* Check the parameters */
- assert_param(IS_SYSCFG_VREFBUF_TRIMMING(TrimmingValue));
-
- MODIFY_REG(VREFBUF->CCR, VREFBUF_CCR_TRIM, TrimmingValue);
- }
复制代码
4、函数HAL_StatusTypeDef HAL_SYSCFG_EnableVREFBUF(void)和void HAL_SYSCFG_DisableVREFBUF(void)
(1)分别用于内部电压参考基准的禁止和使能。
- HAL_StatusTypeDef HAL_SYSCFG_EnableVREFBUF(void)
- {
- uint32_t tickstart = 0;
-
- SET_BIT(VREFBUF->CSR, VREFBUF_CSR_ENVR);
-
- /* Get Start Tick*/
- tickstart = HAL_GetTick();
- /* Wait for VRR bit */
- while(READ_BIT(VREFBUF->CSR, VREFBUF_CSR_VRR) == RESET)
- {
- if((HAL_GetTick() - tickstart) > VREFBUF_TIMEOUT_VALUE)
- {
- return HAL_TIMEOUT;
- }
- }
-
- return HAL_OK;
- }
- void HAL_SYSCFG_DisableVREFBUF(void)
- {
- CLEAR_BIT(VREFBUF->CSR, VREFBUF_CSR_ENVR);
- }
复制代码 |
|