STM32L0上的VREF输出

时间:2018-05-07 11:58:53

标签: c stm32

我有一个STM32L051,想要驱动一个外部DAC(SPI)。

为此,我想使用manual中提到的功能将内部参考电压输出到STM32的PB1引脚。

我使用STM32Cube HAL作为基础。但是,使用VREF的示例仅限于ADC和比较器的内部使用。

如果我理解正确,我可以使用CFGR3寄存器来启用VREF并将其连接到PB1。使用多维数据集驱动程序,我可以使用HAL_SYSCFG_VREFINT_OutputSelect(SYSCFG_VREFINT_OUT_PB1)函数,但要启用它,我应该使用HAL_ADCEx_EnableVREFINT()HAL_COMPEx_EnableVREFINT()SEL_VREF_OUT上的手动信息表明必须设置ENBUF_VREFINT_ADC

此外,没有提及销本身的配置。我应该简单地将其声明为DAC引脚吗? ADC引脚?

1 个答案:

答案 0 :(得分:0)

答案

就像

一样简单
if ( HALD_ADCEx_EnableVREFINT() != HAL_OK )
{
  Error_Handling();
}
HAL_SYSCFG_VREFINT_OutputSelect(SYSCFG_VREFINT_OUT_PB1);

我可以在PB1输出上看到1.22 V。

不需要进一步的引脚(GPIO)配置。

问题的复杂性和理由(可以跳过)

我在电子部门与电路板有一些问题。然后切换到STM32L053-Discovery板。上述解决方案不起作用,我一直在PB1(或PB0)上看到0V。

我认为这是由于某些配置缺失造成的。然而,经过一些进一步的测试,我实际上发现在Discovery板上,PB1和PB0都是为传感器保留的。通过闭合SB23桥,我可以将PB1用回GPIO,从而看到引脚上的参考电压。