Image
Image

9dome猫

+ 关注

粉丝 2     |     主题 142     |     回帖 1593

使用stm32产生三角波和正弦波
2022-11-3 19:33
  • ST MCU
  • 19
  • 1065
  就是把一个正弦波从连续变到离散,等分500个点,每个点都有一个对应的电压值,然后把这个电压值换算成DAC的 ...  
  以上就是使用STM32生成三角波和正弦波的讲解与代码,还是比较简单的,如果使用32来做一个函数信号发生器, ...  
  接下来再配置定时器,我上面DAC中选择了TIM4的TRGO时间触发,所以我们要配置TIM4,与生成三角波的代码 ...  
  根据映射图可知,与DAC1相连的DMA为DMA1通道7数据流5 配置代码如下: ...  
  值得注意的是与各个外设相连的DMA通道是固定的,需要选择DAC1专用的通道,而不是随便选择一个通道 ...  
  还有一个步骤就是将数值读入暂存数组 /*读入正弦波数据*/ for (u16 i = 0; i < 500; i++) { ...  
  接下来我们定义一个只读数组来存放点以及一个同样大小的数组一会儿进行数据的暂存 ...  
  /*DAC1通道2初始化*/ RCC->APB1ENR|=1  
  这一位是用来使能DAC1通道1的DMA模式  
  寄存器配置 TSEL1[2:0]、TEN1也是必须配置的,此外还需要配置 ...  
  接下来是介绍如何产生正弦波 与三角波不同,32DAC并不支持自动生成正弦波,所以我们采用读表法来 ...  
  我的源代码如下大家可以进行参考: 主函数只需要调用这俩个初始化函数,在三个APB1周期 ...  
  这个是定时器相关的寄存器的设置,设置分频系数以及自动重装载值的就不说了,最主要的设置就是MMS(主模 ...  
  TEN1是通道1触发使能,*注意*这个必须首先置1否则波形设置以及触发器设置都是无法进行的。 ...  
  WAVE1[1:0]是用来设置通道1产生的波形的,可以设置为噪声波、三角波以及不生成。 TSEL1[2:0]是 ...  
  MAMP1[3:0]是用来设置通道1三角波的幅值的,如果设置为4096,那么产生的三角波就是0-3.3伏的,如果改为2 ...  
  与生成三角波相关的寄存器如下  
  通过阅读以上内容我们可以知道,DAC产生三角波的方式是:设定一个最大振幅(MAMPx[3:0]),使用事件触发, ...  
用IAR EWARM如何开发航顺HK32F030M微处理器?
2022-11-26 23:44
  • 航顺HK32 MCU
  • 18
  • 997
  下载完成后,请解压到IAR EWARM的安装目录中(IAR EWARM 9.20.2已经支持不需要了) 航顺的实验例程HK32F03 ...  
  准备工作 一、IAR的航顺补丁库HKMicrochip_IAR_SupportPack_V1.1.2.exe.7z的下载地址: http://www.hsxp-hk ...  
2
3
近期访客