找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 2737|回復: 0
打印 上一主題 下一主題
收起左側

迷你stm32可調頻率正弦波源程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:587290 發(fā)表于 2019-8-7 17:00 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
網(wǎng)上找了挺長時間的可調正弦波程序,發(fā)現(xiàn)都比較復雜。這是通過修改的很容易理解的可調頻率正弦波

單片機源程序如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "sys.h"
  4. #include "usart.h"         
  5. #include "math.h"         
  6. #include "dma.h"
  7. #include "dac.h"
  8. #include "timer.h"



  9. #define DAC_SIN_SIZE    100         //發(fā)送數(shù)據(jù)長度,最好等于sizeof(TEXT_TO_SEND)+2的整數(shù)倍.

  10. u16 DAC_SIN_BUF[DAC_SIN_SIZE];  //發(fā)送數(shù)據(jù)緩沖區(qū)

  11. #define PI 3.1415962

  12. //產(chǎn)生正弦波函序列,根據(jù)DAC_SIN_SIZE生成。
  13. void dac_creat_sin_buf(void)
  14. {
  15.     u8 i;
  16.     float inc=2*PI/DAC_SIN_SIZE;        //計算增量(一個周期DAC_SIN_BUF個點)
  17.     float outdata=0;
  18.     for(i=0;i<DAC_SIN_SIZE;i++)
  19.     {
  20.         outdata=2047*(1+sin(inc*i));    //計算以dots個點為周期的每個點的值,放大2048倍,并偏移到正數(shù)區(qū)域。
  21.         printf("%f\r\n",outdata);
  22.         DAC_SIN_BUF[i]=outdata;
  23.     }  
  24. }

  25. int main(void)
  26. {         
  27.     u8 i=0;
  28.     delay_init();                     //延時函數(shù)初始化          
  29.     //NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設置中斷優(yōu)先級分組為組2:2位搶占優(yōu)先級,2位響應優(yōu)先級
  30.     uart_init(115200);                 //串口初始化為115200
  31.         LED_Init();                                  //初始化與LED連接的硬件接口
  32.      
  33.     TIM3_Int_Init(720,0);//最大為72KHZ
  34.     dac_creat_sin_buf();
  35.     Dac1_Init();
  36.         DAC_DMA_Config(DMA1_Channel3,(u32)&DAC->DHR12R1,(u32)DAC_SIN_BUF,DAC_SIN_SIZE);//DMA1通道4,外設為串口1,存儲器為SendBuff,長度SEND_BUF_SIZE.
  37.         TIM3->DIER|=1<<8;
  38.     MYDMA_Enable(DMA1_Channel3);
  39.      
  40.    
  41.         while(1)
  42.         {   
  43.                 i++;
  44.                 delay_ms(10);
  45.                 if(i==20)
  46.                 {
  47.                         LED0=!LED0;//提示系統(tǒng)正在運行       
  48.                         i=0;
  49.                 }                  
  50.         }
  51. }
復制代碼

所有資料51hei提供下載:
1khz正弦波.7z (197.52 KB, 下載次數(shù): 44)


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表