我有一个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引脚?
答案 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,从而看到引脚上的参考电压。