我有一个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引脚?

最佳答案

回答

就这么简单

if ( HALD_ADCEx_EnableVREFINT() != HAL_OK )
{
  Error_Handling();
}
HAL_SYSCFG_VREFINT_OutputSelect(SYSCFG_VREFINT_OUT_PB1);


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

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



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

我在电子部门的董事会中遇到了一些问题。从而切换到STM32L053-发现板。上面的解决方案不起作用,我一直在PB1(或PB0)上看到0V。

我认为那是由于缺少一些配置。但是,经过一些进一步的测试,我实际上发现在该发现板上,PB1和PB0都保留用于传感器。通过关闭SB23桥,我可以将PB1用作GPIO,从而查看引脚上的参考电压。

07-28 10:31