|
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)
IMG_20210109_185312.jpg (88.72 KB, 下載次數(shù): 111)
下載附件
STM32F103C8T6核心板
2021-1-9 18:54 上傳
IMG_20210109_185332.jpg (80.57 KB, 下載次數(shù): 107)
下載附件
AD9833模塊
2021-1-9 18:54 上傳
51hei.png (23.01 KB, 下載次數(shù): 122)
下載附件
2021-1-9 19:45 上傳
51hei.png (15.17 KB, 下載次數(shù): 104)
下載附件
2021-1-9 19:45 上傳
單片機(jī)源程序如下:
- #include "stm32f10x.h"
- #include "led.h"
- #include "ad9833.h"
- #include "systemconfig.h"
- #include "key.h"
- #include "oled.h"
- #include "bsp_i2c_gpio.h"
- #include "delay.h"
- #include "usart.h"
- #include "timer.h"
- void Delay(u32 count)
- {
- u32 i=0;
- for(;i<count;i++);
- }
-
-
- int main(void)
- {
- u8 i;
- uint16_t pwm = 400;
- LED_Init();
- delay_init();
- OLED_Init(); /* OLED初始化 */
- uart_init(115200);
- SystemConfiguration(); //系統(tǒng)初始化
- TIM3_PWM_Init(899,0); //不分頻。PWM頻率=72000000/900=80Khz
- AD9833_Init_GPIO(); //AD9833 GPIO 初始化
- // AD9833_WaveSeting(8000000.5,0,TRI_WAVE,0 );//1.0005KHz,頻率寄存器0,三角波輸出 ,初相位0
- /* AD9833_WaveSeting(5000,0,SQU_WAVE,90); //5KHz, 頻率寄存器0,方波輸出 ,初相位90 */
- /* AD9833_WaveSeting(100000,0,SIN_WAVE,0 );//100KHz, 頻率寄存器0,正弦波輸出 ,初相位0 */
-
-
- AD9833_WaveSeting(10000,0,SIN_WAVE,0 );
- AD9833_AmpSet(100); //設(shè)置幅值,幅值最大 255
-
- u16 f=1000;
- u16 l=100;
- u8 flag;u8 flag1;
- u8 t = '0';
- u16 b;
- u16 m=0;
- u16 a=0;
- while(1)
- {
- TIM_SetCompare2(TIM3,pwm);
- OLED_Clear();
- OLED_DisplayUpdate();
- t = KEY_Scan(); //得到鍵值
- switch(t) //波形檢測(cè)
- {
- case '1':t='0';SystemConfiguration(); AD9833_WaveSeting(f,0,TRI_WAVE,0 );break;//說明PB4接收到低電平,第一行第一列對(duì)應(yīng)第一個(gè)按鍵
- case '5':t='0';SystemConfiguration(); AD9833_WaveSeting(f,0,SQU_WAVE,90);break;
- case '9':t='0';SystemConfiguration(); AD9833_WaveSeting(f,0,SIN_WAVE,0 );break;
- case '2':t='0';f--;SystemConfiguration(); AD9833_WaveSeting(f,0,SIN_WAVE,0 );break;
- case '3':t='0';f=f-10;SystemConfiguration(); AD9833_WaveSeting(f,0,SIN_WAVE,0 );break;
- case '4':t='0';f=f-100;SystemConfiguration(); AD9833_WaveSeting(f,0,SQU_WAVE,0 );break;
- case '6':t='0';f++;SystemConfiguration(); AD9833_WaveSeting(f,0,SIN_WAVE,0 );break;
- case '7':t='0';f=f+10;SystemConfiguration(); AD9833_WaveSeting(f,0,SIN_WAVE,0 );break;
- case '8':t='0';f=f+100;SystemConfiguration(); AD9833_WaveSeting(f,0,SIN_WAVE,0 );break;
- case 'f':t='0';pwm=pwm-10; break;
- case 'g':t='0';pwm=pwm+10; break;
- default:break;
- }
- }
- }
- // switch(t)
- // {
- // case 'g':
- // {
- // a=0;
- // b=0;
- // delay_ms(1000); //延時(shí)
- // flag = KEY_Scan();
- // while(flag!='d')
- // {
- // if(flag!='0'&&flag!=flag1)
- // {
- // flag=flag1;
- // switch(flag)
- // {
- // m++;
- // case '4': b=1;break;
- // case '3': b=2;break;
- // case '2': b=3;break;
- // case '8': b=4;break;
- // case '7': b=5;break;
- // case '6': b=6;break;
- // case 'c': b=7;break;
- // case 'b': b=8;break;
- // case 'a': b=9;break;
- // case 'e': b=0;break;
- // default:break;
- // }
- // }
- // for(u16 n=0;n<m;n++)
- // {
- // a=a+10*b;
- // }
- // flag1 = KEY_Scan();
- // }
- // f=a;
- // }
- // case 'f':
- // {
- // a=0;
- // b=0;
- // delay_ms(1000); //延時(shí)
- // flag = KEY_Scan();
- // while(flag!='d')
- // {
- // if(flag!='0')
- // {
- // switch(flag)
- // {
- // m++;
- // case '4': b=1;break;
- // case '3': b=2;break;
- // case '2': b=3;break;
- // case '8': b=4;break;
- // case '7': b=5;break;
- // case '6': b=6;break;
- // case 'c': b=7;break;
- // case 'b': b=8;break;
- // case 'a': b=9;break;
- // case 'e': b=0;break;
- // default:break;
- // }
- // }
- // for(u16 n=0;n<m;n++)
- // {
- // a=a+10*b;
- // }
- // flag = KEY_Scan();
- // }
- // l=a;
- // }
- // default:break;
- // }
- //顯示2個(gè)數(shù)字
- //x,y :起點(diǎn)坐標(biāo)
- //len :數(shù)字的位數(shù)
- //size:字體大小
- //mode:模式 0,填充模式;1,疊加模式
- //num:數(shù)值(0~4294967295);
- // OLED_ShowNum(48,3,f,10,6);
- // OLED_ShowNum(0,4,l,10,6);
- // }
-
復(fù)制代碼
所有資料51hei提供下載(PCB還未畫完,也順便發(fā)出來,大家有時(shí)間幫忙一起完善一下吧,東東還很不完善 大家勿噴,一起學(xué)習(xí)一起進(jìn)步):
STM32&AD9833信號(hào)發(fā)生器PCB和代碼.7z
(1.03 MB, 下載次數(shù): 177)
2021-1-9 19:48 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|