找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1385|回复: 0
打印 上一主题 下一主题
收起左侧

STM32 DAC输出正弦波程序

[复制链接]
跳转到指定楼层
楼主
ID:1091865 发表于 2024-1-4 10:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
基于野火STM3开发板
【*】 程序简介
-工程名称:DAC 输出正弦波
-实验平台: 野火STM32 F407 开发板
-MDK版本:5.16
-ST固件库版本:1.8.0

【 !】功能简介:
使用STM32的DAC输出正弦波.

学习目的:学会使用STM32 DAC,使用定时器触发控制信号频率

【 !】实验操作:

下载本程序,使用示波器检测开发板的PA4、PA5引脚,可测得正弦波。

【 !!】注意事项:
PA4与摄像头引脚共用,做本实验时不要与摄像头同时使用。

跳线帽:PA5引脚与电容按键引脚共用,做本实验时把电容按键上方的跳线帽拔掉。

/*********************************************************************************************/

【*】 引脚分配

STM32引脚DAC直接引出。

    DAC_CH1<--->PA4
    DAC_CH2<--->PA5(注意要拔掉电容按键的跳帽)

串口(TTL-USB TO UART):
CH340的收发引脚与STM32的发收引脚相连。
    CH340  RXD  <----->  USART1  TX  (PA9)
    CH340  TXD  <----->  USART1  RX  (PA10)
   
【*】 程序描述

    <bsp_dac.c>
   
    1.通过脚本计算填充正弦波数据表
    2.使能DAC的时钟,初始化GPIO
    3.配置DAC通道1、通道2
    4.配置TIM
    5.配置DMA
    6.DAC初始化函数
   
    为方便起见,我们使用了 Python 和 Matlab 脚本制作正弦波表,脚本的代码存储在本工程的目录下
   
    本章实验中需要控制正弦波的频率,就需要定时器定时触发DAC进行数据转换
    v = sin(t)+1 ,此时,v 的输出范围为 [0:2]
    v = 3.3*(sin(t)+1)/2 ,此时,v 的输出范围为 [0:3.3]
    电压值以 DAC 寄存器的形式表示:Reg_val = 2^12/3.3 * v = 2^11*(sin(t)+1),此时,存储到 DAC
寄存器的值范围为 [0:4096]
    实践证明,取 32 个点进行电压输出已经能较好地还原正弦波形
    正弦波频率的计算方式:
    Tsystick = 1/84000000,
    定时器 TIM2 的单个时钟周期:
    Ttim = (TIM_Prescaler + 1) × Tsystick,
    定时器触发周期:
    Tupdate = (TIM_Period + 1) × Ttim,
    根据正弦波单个周期的点数 N,求出正弦波单个周期时间为:
    Tsin = Tupdate × N,
    对应正弦波的频率为:
    fsin =1/Tsin=1/(Tsystick × (TIM_Prescaler + 1) × (TIM_Period + 1) × N)
    根据上述公式,代入本工程的配置,可得本实验中的正弦波频率为 131250:
    fsin =1/Tsin=84000000/((0 + 1) × (19 + 1) × 32)= 131250
    在实际应用中,可以根据工程里的正弦波点数和定时器配置生成特定频率的正弦波。
   
    需要留意的是无论是要生成什么波形,一个周期内的点数是和DAC外设最高输出频率有关系的
    若缩短时间间隔,提高单个周期内的输出点数,可以得到逼近连续正弦波的图形
   
/*********************************************************************************************/

【*】 时钟

A.晶振:
-外部高速晶振:25MHz
-RTC晶振:32.768KHz

B.各总线运行时钟:
-系统时钟 = SYCCLK = AHB1 = 168MHz
-APB2 = 84MHz
-APB1 = 42MHz

C.浮点运算单元:
  不使用

原理图: 无
仿真: 无
代码: DAC—输出正弦波.7z (1.06 MB, 下载次数: 20)

评分

参与人数 1黑币 +50 收起 理由
admin + 50

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表