久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 7404|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

STM32&AD9833信號(hào)發(fā)生器代碼

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
1.本信號(hào)發(fā)生器采用STM32F103C8T6作為主控,AD9833作為DDS信號(hào)發(fā)生器,代碼可直接燒錄
2.本信號(hào)發(fā)生器實(shí)現(xiàn)了方波、正弦波、三角波的輸出與頻率、幅度按鍵調(diào)控
3.另外實(shí)現(xiàn)了STM32定時(shí)器產(chǎn)生一路方波,占空比可調(diào)






單片機(jī)源程序如下:
  1. #include "stm32f10x.h"
  2. #include "led.h"
  3. #include "ad9833.h"
  4. #include "systemconfig.h"
  5. #include "key.h"
  6. #include "oled.h"
  7. #include "bsp_i2c_gpio.h"
  8. #include "delay.h"
  9. #include "usart.h"
  10. #include "timer.h"

  11. void Delay(u32 count)
  12. {
  13.    u32 i=0;
  14.    for(;i<count;i++);
  15. }


  16. int main(void)
  17. {       
  18.          u8 i;
  19.         uint16_t pwm = 400;
  20.         LED_Init();       
  21.         delay_init();
  22.         OLED_Init();                                         /* OLED初始化 */
  23.         uart_init(115200);

  24.         SystemConfiguration();                    //系統(tǒng)初始化
  25.         TIM3_PWM_Init(899,0);         //不分頻。PWM頻率=72000000/900=80Khz

  26.         AD9833_Init_GPIO(); //AD9833 GPIO 初始化

  27. //        AD9833_WaveSeting(8000000.5,0,TRI_WAVE,0 );//1.0005KHz,頻率寄存器0,三角波輸出 ,初相位0
  28. /*        AD9833_WaveSeting(5000,0,SQU_WAVE,90);        //5KHz,                頻率寄存器0,方波輸出         ,初相位90 */
  29. /*        AD9833_WaveSeting(100000,0,SIN_WAVE,0 );//100KHz,        頻率寄存器0,正弦波輸出 ,初相位0 */
  30.        
  31.        
  32.         AD9833_WaveSeting(10000,0,SIN_WAVE,0 );
  33.         AD9833_AmpSet(100); //設(shè)置幅值,幅值最大 255
  34.        
  35.         u16 f=1000;
  36.         u16 l=100;
  37.         u8 flag;u8 flag1;
  38.         u8 t = '0';
  39.         u16 b;
  40.         u16 m=0;
  41.         u16 a=0;
  42.         while(1)
  43.         {
  44.                 TIM_SetCompare2(TIM3,pwm);
  45.                 OLED_Clear();
  46.                 OLED_DisplayUpdate();
  47.                 t = KEY_Scan();        //得到鍵值
  48.                 switch(t)                //波形檢測(cè)
  49.                 {
  50.                         case '1':t='0';SystemConfiguration();                AD9833_WaveSeting(f,0,TRI_WAVE,0 );break;//說明PB4接收到低電平,第一行第一列對(duì)應(yīng)第一個(gè)按鍵
  51.                         case '5':t='0';SystemConfiguration();                AD9833_WaveSeting(f,0,SQU_WAVE,90);break;
  52.                         case '9':t='0';SystemConfiguration();                AD9833_WaveSeting(f,0,SIN_WAVE,0 );break;
  53.                         case '2':t='0';f--;SystemConfiguration();                AD9833_WaveSeting(f,0,SIN_WAVE,0 );break;
  54.                         case '3':t='0';f=f-10;SystemConfiguration();                AD9833_WaveSeting(f,0,SIN_WAVE,0 );break;
  55.                         case '4':t='0';f=f-100;SystemConfiguration();                AD9833_WaveSeting(f,0,SQU_WAVE,0 );break;
  56.                         case '6':t='0';f++;SystemConfiguration();                AD9833_WaveSeting(f,0,SIN_WAVE,0 );break;
  57.                         case '7':t='0';f=f+10;SystemConfiguration();                AD9833_WaveSeting(f,0,SIN_WAVE,0 );break;
  58.                         case '8':t='0';f=f+100;SystemConfiguration();                AD9833_WaveSeting(f,0,SIN_WAVE,0 );break;
  59.                         case 'f':t='0';pwm=pwm-10;        break;       
  60.                         case 'g':t='0';pwm=pwm+10;        break;
  61.                         default:break;                                               
  62.                 }
  63.         }
  64. }
  65. //                switch(t)               
  66. //                {
  67. //                        case 'g':
  68. //                        {
  69. //                                a=0;
  70. //                                b=0;
  71. //                                delay_ms(1000);           //延時(shí)
  72. //                                flag = KEY_Scan();
  73. //                                while(flag!='d')
  74. //                                {
  75. //                                        if(flag!='0'&&flag!=flag1)
  76. //                                        {
  77. //                                        flag=flag1;
  78. //                                        switch(flag)
  79. //                                        {
  80. //                                                m++;
  81. //                                                case '4': b=1;break;       
  82. //                                                case '3': b=2;break;       
  83. //                                                case '2': b=3;break;       
  84. //                                                case '8': b=4;break;       
  85. //                                                case '7': b=5;break;       
  86. //                                                case '6': b=6;break;       
  87. //                                                case 'c': b=7;break;       
  88. //                                                case 'b': b=8;break;       
  89. //                                                case 'a': b=9;break;       
  90. //                                                case 'e': b=0;break;       
  91. //                                                default:break;                                               
  92. //                                        }
  93. //                                        }
  94. //                                        for(u16 n=0;n<m;n++)
  95. //                                        {
  96. //                                                a=a+10*b;
  97. //                                        }                               
  98. //                                flag1 = KEY_Scan();
  99. //                                }
  100. //                                f=a;                       
  101. //                        }               
  102. //                        case 'f':
  103. //                        {       
  104. //                                a=0;
  105. //                                b=0;
  106. //                                delay_ms(1000);           //延時(shí)
  107. //                                flag = KEY_Scan();
  108. //                                while(flag!='d')
  109. //                                {
  110. //                                        if(flag!='0')
  111. //                                        {
  112. //                                        switch(flag)
  113. //                                        {
  114. //                                                m++;
  115. //                                                case '4': b=1;break;       
  116. //                                                case '3': b=2;break;       
  117. //                                                case '2': b=3;break;       
  118. //                                                case '8': b=4;break;       
  119. //                                                case '7': b=5;break;       
  120. //                                                case '6': b=6;break;       
  121. //                                                case 'c': b=7;break;       
  122. //                                                case 'b': b=8;break;       
  123. //                                                case 'a': b=9;break;       
  124. //                                                case 'e': b=0;break;       
  125. //                                                default:break;                                               
  126. //                                        }
  127. //                                        }
  128. //                                        for(u16 n=0;n<m;n++)
  129. //                                        {
  130. //                                                a=a+10*b;
  131. //                                        }                               
  132. //                                flag = KEY_Scan();
  133. //                                }
  134. //                                l=a;                       
  135. //                        }       
  136. //                        default:break;       
  137. //                }
  138.                         //顯示2個(gè)數(shù)字
  139. //x,y :起點(diǎn)坐標(biāo)         
  140. //len :數(shù)字的位數(shù)
  141. //size:字體大小
  142. //mode:模式        0,填充模式;1,疊加模式
  143. //num:數(shù)值(0~4294967295);                           
  144. //        OLED_ShowNum(48,3,f,10,6);
  145. //        OLED_ShowNum(0,4,l,10,6);
  146. //        }

  147.        
復(fù)制代碼

所有資料51hei提供下載(PCB還未畫完,也順便發(fā)出來,大家有時(shí)間幫忙一起完善一下吧,東東還很不完善 大家勿噴,一起學(xué)習(xí)一起進(jìn)步):
STM32&amp;AD9833信號(hào)發(fā)生器PCB和代碼.7z (1.03 MB, 下載次數(shù): 177)


評(píng)分

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

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:723161 發(fā)表于 2021-1-11 19:18 | 只看該作者
在嗎 可以交流一下這個(gè)嘛
回復(fù)

使用道具 舉報(bào)

板凳
ID:645047 發(fā)表于 2021-7-30 13:32 來自手機(jī) | 只看該作者
可以用嗎
回復(fù)

使用道具 舉報(bào)

地板
ID:165291 發(fā)表于 2022-8-17 16:37 來自手機(jī) | 只看該作者
這個(gè)牛啊!
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩中文在线观看 | 欧美精品综合在线 | 一区二区三区四区av | 成人亚洲视频 | 在线视频中文字幕 | 啪啪精品 | 91精品国产自产在线老师啪 | 国产 91 视频 | 超碰成人免费 | 国产日韩欧美另类 | 九一视频在线播放 | 日韩欧美一区二区三区四区 | 中文字幕在线免费 | 国产一区二区自拍 | 欧美一级免费 | 中文字幕第二十页 | 久久亚洲二区 | www.亚洲一区 | 国产在线播 | 2022精品国偷自产免费观看 | 国产探花在线精品一区二区 | 偷拍自拍第一页 | 午夜精品久久久久久久久久久久久 | 欧美一级做a爰片免费视频 国产美女特级嫩嫩嫩bbb片 | 午夜精品一区 | 日韩久久久久 | 中文字幕日韩专区 | 夜夜精品浪潮av一区二区三区 | 夜夜操天天操 | 中文一级片 | 91美女在线 | 看真人视频一级毛片 | 国产成人久久精品一区二区三区 | 成人黄色av网站 | 精品伊人| 中文字幕91 | 天天综合成人网 | 美女在线观看国产 | 亚洲国产精品区 | 91免费观看 | 夜夜骑首页 |