0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32CUBEMX(7)--移植雅特力AT32F403AVGT(兼容STM32F103VGT6),DAC输出电压

嵌入式单片机MCU开发 来源:嵌入式单片机MCU开发 作者:嵌入式单片机MCU开 2022-11-14 16:23 次阅读

概述

本篇文章主要介绍如何使用STM32CubeMX移植到雅特力AT32F403AVGT7,并通过DAC输出电压,在芯片中有2个12位的DAC口可以供选择。

在这里插入图片描述

硬件准备

首先需要准备一个开发板,这里我准备的是雅特力AT32F403AVGT7的开发板:

在这里插入图片描述

选择芯片型号

雅特力AT32F403AVGT7兼容STM32F103系列,故选取STM32f103VG进行开发。

在这里插入图片描述

配置时钟

HSE与LSE分别为外部高速时钟和低速时钟,在本文中使用内置的时钟源,故都选择Disable选项,如下所示:

在这里插入图片描述

配置时钟树

雅特力AT32F403AVGT7最高频率到240M,但是STM32F1的最高主频到72M,同时使用不使用外部晶振时候,最高速度只能到64M,所以配置64即可:

在这里插入图片描述

DAC配置

然后设置PA4为DAC_OUT1, 完整引脚配置如下图。

在这里插入图片描述

生成工程设置

注意在生产工程设置中不能出现中文,不然会报错。

在这里插入图片描述

代码生成设置

最后设置生成独立的初始化文件。

在这里插入图片描述

生成代码

在这里插入图片描述

代码编写

在main.c中,添加DAC电压变量定义。

/* USER CODE BEGIN PTD */
int dac_i=0;//定义DAC电压值
/* USER CODE END PTD */

在main.c中,开启DAC通道1。

/* USER CODE BEGIN 2 */
    HAL_DAC_Start(&hdac, DAC_CHANNEL_1);//开启DAC通道1
  /* USER CODE END 2 */

在main.c中,主程序输出电压值,因为是12位的dac,所以值只能是0-4095.

/* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
        if(dac_i<4096)
        {
            dac_i++;
            if(dac_i%512==0)//使得输出波形为阶梯状
                HAL_DAC_SetValue(&hdac, DAC_CHANNEL_1, DAC_ALIGN_12B_R, dac_i);//设置DAC值为dac_i
        }
        else
            dac_i=0;
  }
  /* USER CODE END 3 */

结果演示

因为是输出为阶梯状,每变量每增加512,电压改变一次,故应该有8个阶梯,分别是0,512,1024,1536,2048,2560,3072,3584。

在这里插入图片描述

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • dac
    dac
    +关注

    关注

    43

    文章

    1971

    浏览量

    189481
  • stm32cubemx
    +关注

    关注

    5

    文章

    260

    浏览量

    14444
  • 雅特力
    +关注

    关注

    0

    文章

    135

    浏览量

    7764
收藏 人收藏

    评论

    相关推荐

    为什么stm32f103vgt6的flash只能检测到512k?

    为什么stm32f103vgt6的flash我只能检测到512k?(原本应该是1mb的),好像检测不到它的flash大小
    发表于 03-20 06:27

    STM32F103VET6更换为STM32F103VGT6后不能启动

    板子有原先的STM32F103VET6更换为STM32F103VGT6,下载原先的STM32F103VET6程序,板子不能启动,不知道为什么,是不是启动文件的问题?需要怎么修改,求高手解答,谢谢!
    发表于 03-25 08:22

    调用STM32F103VGT6 FLASH闪存擦除指令异常

    这两天,我手上拿到了一颗STM32F103VGT6的芯片,芯片的FLASH容量是1M字节。在做调用STM32 闪存擦除指令时发现一个问题:擦到0x808 0000时,会自动跳转到0x800 0000
    发表于 04-12 09:42

    STM32CUBEMX移植

    STM32CUBEMX移植AT32F403AVGT7[
    发表于 07-23 09:21

    如何使用STM32CubeMX移植到AT32F403AVGT7

    如何使用STM32CubeMX移植AT32F403AVGT7,并通过双串口
    发表于 08-05 07:01

    STM32F427VGT6系列单片机

    引入IIC口配置b.引入VL530底层配置2.读取数据a.初始化配置b.获取数据c.结果展示3.总结三.程序下载链接前言提示:本程序测试主控使用STM32F427VGT6系列单片机,使用cubemx
    发表于 08-11 07:07

    如何使用STM32CubeMX移植AT32F403AVGT7

    如何使用STM32CubeMX移植AT32F403AVGT7呢?并通过双串口输出打印?
    发表于 10-25 08:36

    AT32F403ZGT6取代STM32F103VET6相同点

    由于疫情STM32被炒上天了。原来二十元芯片炒到几百元,还的等货。原来板子用的STM32:这片子被吵到300元还供货不稳定。采用
    发表于 01-11 06:07

    如何使用stm32Cubemx软件配置DAC电压输出和ADC电压检测

    DAC输出引脚的电压。并通过串口打印出相应信息。硬件平台:Stm32H743IIT6软件:StmcubemxV6.0.1 、MDK5cubemx
    发表于 01-21 07:48

    如何对STM32F427VGT6的LCD进行配置

    如何对STM32F427VGT6的LCD进行配置?如何对STM32CubeMX的LCD触摸屏进行配置呢?
    发表于 02-21 07:25

    JLINK调试AT32F403A的问题无法发现芯片如何解决?

    JLINK调试AT32F403Avc的问题,无法发现芯片(在keil下可以),如何解决?我把芯片型号切换城STM32F103vc就可以
    发表于 04-17 17:43

    为什么stm32f103vgt6的flash只能检测到512k?

    为什么stm32f103vgt6的flash我只能检测到512k?(原本应该是1mb的),好像检测不到它的flash大小
    发表于 08-08 08:16

    STM32CUBEMX配置教程(十三)STM32的定时器触发的固定频率DAC输出(使用DMA)

    STM32CUBEMX配置教程(十三)STM32的定时器触发的固定频率DAC输出(使用DMA)
    发表于 11-24 14:06 44次下载
    <b class='flag-5'>STM32CUBEMX</b>配置教程(十三)<b class='flag-5'>STM32</b>的定时器触发的固定频率<b class='flag-5'>DAC</b><b class='flag-5'>输出</b>(使用DMA)

    STM32CUBEMX(6)--移植雅特力AT32F403AVGT7,双串口通过DMA方式接收不定长数据

    本篇文章主要介绍如何使用STM32CubeMX移植到雅特力AT32F403AVGT7,并通过双串口输出打印。
    的头像 发表于 11-14 16:20 2610次阅读
    <b class='flag-5'>STM32CUBEMX</b>(6)--<b class='flag-5'>移植</b>雅特力AT32F<b class='flag-5'>403AVGT</b>7,双串口通过DMA方式接收不定长数据

    STM32CUBEMX开发GD32F303

    在这使用STM32CUBEMX进行配置STM32F103移植到兆易创新GD32F303,然后进行测试。
    的头像 发表于 07-27 09:32 948次阅读
    <b class='flag-5'>STM32CUBEMX</b>开发GD32F303