欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4170|回復: 2
打印 上一主題 下一主題
收起左側

STM32 DAC_DMA_1K正弦波DAC輸出波形源碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:408023 發表于 2018-10-11 13:32 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
通過dma傳輸輸出1k正弦波

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



  11. #define DAC_SIN_SIZE    100         //發送數據長度,最好等于sizeof(TEXT_TO_SEND)+2的整數倍.

  12. u16 DAC_SIN_BUF[DAC_SIN_SIZE];  //發送數據緩沖區

  13. #define PI 3.1415962

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

  27. int main(void)
  28. {         
  29.     u8 i=0;
  30.     delay_init();                     //延時函數初始化         
  31.     NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設置中斷優先級分組為組2:2位搶占優先級,2位響應優先級
  32.     uart_init(115200);                 //串口初始化為115200
  33.         LED_Init();                                  //初始化與LED連接的硬件接口
  34.         LCD_Init();                                   //初始化LCD         
  35.         KEY_Init();                                //按鍵初始化        
  36.      
  37.     TIM3_Int_Init(9,71);
  38.     dac_creat_sin_buf();
  39.     Dac1_Init();
  40.          DAC_DMA_Config(DMA1_Channel3,(u32)&DAC->DHR12R1,(u32)DAC_SIN_BUF,DAC_SIN_SIZE);//DMA1通道4,外設為串口1,存儲器為SendBuff,長度SEND_BUF_SIZE.
  41.          TIM3->DIER|=1<<8;
  42.     MYDMA_Enable(DMA1_Channel3);
  43.      
  44.     POINT_COLOR=RED;//設置字體為紅色
  45.         LCD_ShowString(30,50,200,16,16,"WarShip STM32");        
  46.         LCD_ShowString(30,70,200,16,16,"DMA TEST");        
  47.         LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK");
  48.         LCD_ShowString(30,110,200,16,16,"2015/1/15");        
  49.          LCD_ShowString(30,130,200,16,16,"KEY0:Start");
  50.                           
  51.         POINT_COLOR=BLUE;//設置字體為藍色         
  52.          while(1)
  53.         {   
  54.                 i++;
  55.                 delay_ms(10);
  56.                 if(i==20)
  57.                 {
  58.                         LED0=!LED0;//提示系統正在運行        
  59.                         i=0;
  60.                 }                  
  61.         }
  62. }
復制代碼

所有資料51hei提供下載:
實驗22 DMA實驗-1K正弦波DAC輸出.rar (366.44 KB, 下載次數: 103)


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

使用道具 舉報

沙發
ID:270005 發表于 2019-8-7 14:38 | 只看該作者
好東西,謝謝!
回復

使用道具 舉報

板凳
ID:270005 發表于 2019-8-7 14:38 | 只看該作者
實驗22 DMA實驗-1K正弦波DAC輸出.rar
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

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