正弦波

使用stm32产生三角波和正弦波

匿名 (未验证) 提交于 2019-12-03 00:18:01
与生成三角波相关的寄存器如下 MAMP1[3:0] 是用来设置通道1三角波的幅值的,如果设置为4096,那么产生的三角波就是0-3.3伏的,如果改为2047,那么产生的就是0-1.65伏的三角波,我一开始以为这个寄存器更改的只是三角波产生的精度,后来使用示波器测量后发现并不是这样。 WAVE1[1:0] 是用来设置通道1产生的波形的,可以设置为噪声波、三角波以及不生成。 TSEL1[2:0] 是用来设置通道1触发器的选择,可以使用定时器TRGO时间触发,也可以使用外部中断以及软件触发的方式,但后俩者我并没有尝试。 TEN1 是通道1触发使能, *注意* 这个必须首先置1否则波形设置以及触发器设置都是无法进行的。 //DAC通道1输出初始化 void Dac1_Init(void) { RCC->APB1ENR|=1<<29; //使能DAC时钟 RCC->AHB1ENR|=1<<0; //使能PORTA时钟 GPIO_Set(GPIOA,PIN4,GPIO_MODE_AIN,0,0,GPIO_PUPD_PU);//PA4,模拟输入,下拉 DAC->CR|=1<<2; //使能触发功能 TEN1=1 DAC->CR|=1<<1; //DAC1输出缓存不使能 BOFF1=1 DAC->CR|=4<<3; //DAC TIM2 TRGO,不过要TEN1=1才行 DAC->CR|=2<<6

进阶项目(5)DDS程序设计

限于喜欢 提交于 2019-11-29 12:31:55
写在前面的话 DDS是直接数字式频率合成器(Direct Digital Synthesizer)的英文缩写。与传统的频率合成器相比,DDS具有低成本、低功耗、高分辨率和快速转换时间等优点,广泛使用在电信与电子仪器领域,是实现设备全数字化的一个关键技术。 项目需求 设计一个相位和频率可调的波形(正弦波)发生器。 项目 分析 问题 1:什么是波形发生器? 波形发生器是一种数据信号发生器,在调试硬件时,常常需要加入一些信号,以观察电路工作是否正常。加入的信号有:正弦波、三角波、方波和任意波形等等。 问题 2:什么是相位可调? 相位 (phase)是对于一个 波 ,特定的时刻在它 循环 周期中的 位置 :一种它是否在 波峰 、 波谷 或它们之间的某点的标度。相位描述信号波形变化的 度量 ,通常以度 (角度)作为单位,也称作 相角 。 当信号波形以周期的方式变化,波形循环一周即为 360°。那么相位可调也可以简单的理解为:改变初始相位。 问题 3:什么是频率可调? 频率,是单位时间内完成 周期性变化 的 次数 ,是描述周期运动频繁程度的量,常用符号 f 或 ν 表示,单位为秒分之一,符号为 s -1 。频率可调也就是改变单位时间内完成周期性变化的次数。 系统 架构 我们 应该先把完整的波形数据放在 rom 里面,然后用一个控制器把 rom 里面的数据读出来,设计架构图如下: 模块功能介绍