这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » STM32L053 DAC实验输出指定电压值

共4条 1/1 1 跳转至

STM32L053 DAC实验输出指定电压值

高工
2015-11-18 01:12:10     打赏

实现了printf和scanf函数后,就用在DAC实验上试试。设定电压值,然后输出对应的模拟值。

首先请出神器,STM32CUBE配置UART,RCC,DAC怎么配置就不贴出了,我前面几个实验已经都介绍过了。当使能DAC时,可以看到PA4被选定了。PA4就是模拟输出引脚了。

配置DAC:


生成项目后,在main.c中的DAC初始化函数已经对DAC进行了配置,同时配置了通道:

void MX_DAC_Init(void)
{

  DAC_ChannelConfTypeDef sConfig;

    /**DAC Initialization 
    */
  hdac.Instance = DAC;
  HAL_DAC_Init(&hdac);

    /**DAC channel OUT1 config 
    */
  sConfig.DAC_Trigger = DAC_TRIGGER_NONE;
  sConfig.DAC_OutputBuffer = DAC_OUTPUTBUFFER_DISABLE;
  HAL_DAC_ConfigChannel(&hdac, &sConfig, DAC_CHANNEL_1);

}

 

除了这个初始化函数,我们再实现DAC值得设定,以及启动DAC就可以到达最终目的了。再看看下面这个函数:

HAL_StatusTypeDef HAL_DAC_SetValue(DAC_HandleTypeDef* hdac, uint32_t channel, uint32_t alignment, uint32_t data)

 

从入口参数我们可以看出,有一个是选择对齐方式的,我这里选择的是12位右对齐。DAC部分大概就是这些,下面是主要的代码:

int main(void)
{
	uint32_t ui_tmp_dat;
	float f_val;
  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */

  /* MCU Configuration----------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* Configure the system clock */
  SystemClock_Config();

  /* System interrupt init*/
  HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_DAC_Init();
  MX_USART2_UART_Init();
  
  /* USER CODE BEGIN 2 */

  /* USER CODE END 2 */

  /* USER CODE BEGIN 3 */
  /* Infinite loop */
  printf("Please input voltage value:\n\r");
	while (1)
  {
			scanf("%f", &f_val);
		  HAL_DAC_Stop(&hdac, DAC_CHANNEL_1);
		  printf("set:%f V\n\r", f_val);
		  ui_tmp_dat = (uint32_t)(f_val * 4095 / 3.3);
		  HAL_DAC_SetValue(&hdac, DAC_CHANNEL_1, DAC_ALIGN_12B_R, ui_tmp_dat);
		  HAL_DAC_Start(&hdac, DAC_CHANNEL_1);
  }
  /* USER CODE END 3 */

}

 


为了方便用万用表测量,用杜邦先引出了PA4和GND脚:

看看终端打印的信息:

这里做了三次测试:

分别对应的结果如图所示:




关键词: STM32L053     实验     输出     指定     电压    

菜鸟
2015-11-18 10:13:02     打赏
2楼

龙哥又来了


菜鸟
2015-11-18 14:46:54     打赏
3楼
不错,赞一个

专家
2015-11-18 17:35:27     打赏
4楼

感谢大神的分享

学习到不少东西


共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]