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

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 11903|回復(fù): 18
收起左側(cè)

基于STM32的信號(hào)發(fā)生器設(shè)計(jì)源碼

  [復(fù)制鏈接]
ID:328229 發(fā)表于 2018-5-12 15:22 | 顯示全部樓層 |閱讀模式
畢設(shè)做的是基于STM32的信號(hào)發(fā)生器設(shè)計(jì)。分享給大家。
帶有LCD顯示當(dāng)前頻率、幅值、相位信息
按鍵可調(diào)輸出頻率、幅值、相位

版本內(nèi)容/:
    增加lcd顯示GUI
    增加按鍵處理,可以調(diào)整波形參數(shù)

4.16:更新記錄:
        添加文件dds.c .h ,將三個(gè)函數(shù)放在dds.c中,并修改參數(shù)類型
            double get_omega (struct WaveTypedef *wave) ;
            double get_phase (struct WaveTypedef *wave);
            u32 get_period (struct WaveTypedef *wave) ;
        修改gui.c文件中的函數(shù)    并將基于全局變量,改為基于結(jié)構(gòu)體參數(shù)        
            void dds_updata_data (void) ;
                void dds_updata_data (struct WaveTypedef *wave) ;     
        增加確認(rèn)按鍵
            GPIOKey3 按下。則將tmpwavestruct 賦值給wave1 或者wave2
            
4.26修復(fù)BUG:
        切換通道之后,再次調(diào)整參數(shù)將會(huì)把第一通道的參數(shù)帶給第二通道;(fixed)
        
            
單片機(jī)源程序如下:
  1. #include "stm32f10x.h"
  2. #include "dac.h"
  3. #include "stdio.h"
  4. #include "usart.h"
  5. #include "led.h"
  6. #include "timer.h"
  7. #include "delay.h"
  8. #include "lcd_driver.h"
  9. #include "gui.h"
  10. #include "indkey.h"
  11. #include "dds.h"
  12. #include "beep.h"

  13. struct WaveTypedef wave1 = {
  14.         10,     // freq
  15.         0.0,     // phase
  16.         0.0,     // omega
  17.         AMP_MAX,    // Amp  
  18. };

  19. struct WaveTypedef wave2 = {
  20.         10,     // freq
  21.         0.0,     // phase
  22.         0.0,     // omega
  23.         AMP_MAX,    // Amp  
  24. };
  25. extern uint16_t period;
  26. extern uint16_t sin_tab[];
  27. extern uint16_t sin_tab2[];


  28. int main(void)
  29. {       
  30.         TFT_Init ();
  31.         TFT_ClearScreen(RED);
  32.         GUI_Box (2,2,237,397,BLUE);

  33.         delay_init();

  34.         USART1_Config(115200);
  35.         led_config ();
  36.         Key_IO_Init();
  37.         BEEP_Init();
  38.         dds_gui_init();

  39.         ddswave1_updata_data(&wave1);
  40.         ddswave2_updata_data(&wave2);
  41.        
  42.         TIM1_Init(10000 - 1, TIM_1MHZ_CLK);       
  43.        
  44.         TIM3_Init(19,TIM_1MHZ_CLK);  //timer clk                 == 72Mhz / 71+1 == 1Mhz  1clk == 1us
  45.                                           //timer period         == 9 + 1 == 10 clk == 10Us
  46.         TIM4_Init(19,TIM_1MHZ_CLK);
  47.        
  48.         dac_1_init();
  49.         dac_2_init();
  50.        
  51.         TIM_Cmd (TIM1,ENABLE);       
  52.         TIM_Cmd (TIM3,ENABLE);
  53.         TIM_Cmd (TIM4,ENABLE);
  54.         printf ("System Init Down!\r\n");
  55.         load_sin_tab(&wave1);
  56.         load_sin_tab2(&wave2);       
  57.         while(1)
  58.         {
  59.                         GPIO_ResetBits(GPIOC,GPIO_Pin_0);
  60.                         GPIO_SetBits(GPIOC,GPIO_Pin_1);
  61.                         delay_ms(1000);
  62.                         GPIO_SetBits(GPIOC,GPIO_Pin_0);
  63.                         GPIO_ResetBits(GPIOC,GPIO_Pin_1);
  64.                         delay_ms(1000);       
  65.         }
  66. }

復(fù)制代碼

所有資料51hei提供下載:
2myDAC_timer-wave-struct.rar (327.61 KB, 下載次數(shù): 324)


評(píng)分

參與人數(shù) 2黑幣 +55 收起 理由
書(shū)雲(yún)123 + 5 很給力!
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:334773 發(fā)表于 2018-5-21 12:17 | 顯示全部樓層
感覺(jué)不錯(cuò)
回復(fù)

使用道具 舉報(bào)

ID:334773 發(fā)表于 2018-5-21 12:19 | 顯示全部樓層
剛注冊(cè),幣子不夠,樓主可不可以往我郵箱發(fā)一份這個(gè)197310298@qq.com,謝謝。!
回復(fù)

使用道具 舉報(bào)

ID:313905 發(fā)表于 2018-5-23 22:18 | 顯示全部樓層
幣不夠,下不了難過(guò)
回復(fù)

使用道具 舉報(bào)

ID:338823 發(fā)表于 2018-5-26 17:21 | 顯示全部樓層
幣不夠用啊
回復(fù)

使用道具 舉報(bào)

ID:461739 發(fā)表于 2019-1-4 13:43 來(lái)自手機(jī) | 顯示全部樓層
跪求大佬分享一份,救急救急我的郵箱hdlsunny@163.com萬(wàn)分感謝
回復(fù)

使用道具 舉報(bào)

ID:434269 發(fā)表于 2019-3-7 16:25 | 顯示全部樓層
謝謝分享
回復(fù)

使用道具 舉報(bào)

ID:489675 發(fā)表于 2019-3-13 09:27 | 顯示全部樓層
很好資料,謝謝?
回復(fù)

使用道具 舉報(bào)

ID:492572 發(fā)表于 2019-3-21 18:01 | 顯示全部樓層
求代碼程序 18918838788@163.com
回復(fù)

使用道具 舉報(bào)

ID:465802 發(fā)表于 2019-5-8 09:50 | 顯示全部樓層
看著很棒,很不錯(cuò)。下載試試。
回復(fù)

使用道具 舉報(bào)

ID:536632 發(fā)表于 2019-5-13 08:43 | 顯示全部樓層
書(shū)雲(yún)123 發(fā)表于 2018-5-21 12:19
剛注冊(cè),幣子不夠,樓主可不可以往我郵箱發(fā)一份這個(gè),謝謝。!

剛注冊(cè),幣子不夠,麻煩大佬發(fā)我一份,打擾了,謝謝啊2685216487@qq.com
回復(fù)

使用道具 舉報(bào)

ID:313048 發(fā)表于 2019-5-16 21:09 | 顯示全部樓層
還不錯(cuò)
回復(fù)

使用道具 舉報(bào)

ID:537018 發(fā)表于 2019-5-17 14:51 | 顯示全部樓層
有仿真嗎?
用什么顯示的?
回復(fù)

使用道具 舉報(bào)

ID:590955 發(fā)表于 2019-8-1 18:07 | 顯示全部樓層
求大佬發(fā)一份呀!同樣幣不夠啊!1214916003@qq.com,跪謝。!
回復(fù)

使用道具 舉報(bào)

ID:605110 發(fā)表于 2019-8-29 14:36 | 顯示全部樓層
幣不夠,跪求大佬發(fā)一份 406220555@qq.com
回復(fù)

使用道具 舉報(bào)

ID:668259 發(fā)表于 2019-12-19 13:15 | 顯示全部樓層
感覺(jué)不錯(cuò).幣不夠,跪求大佬發(fā)一份 907209070@qq.com
回復(fù)

使用道具 舉報(bào)

ID:694525 發(fā)表于 2020-2-18 01:49 | 顯示全部樓層
您好,請(qǐng)問(wèn)你用的是什么開(kāi)發(fā)板呢,我這里L(fēng)ED沒(méi)有顯示
回復(fù)

使用道具 舉報(bào)

ID:277948 發(fā)表于 2020-2-19 09:32 來(lái)自手機(jī) | 顯示全部樓層
我去自己參考一下就行了,創(chuàng)造靠自己,你們這理由太優(yōu)秀了
回復(fù)

使用道具 舉報(bào)

ID:692032 發(fā)表于 2020-2-20 12:58 | 顯示全部樓層
大佬,請(qǐng)問(wèn)一下我用的STM32103zet6開(kāi)發(fā)板,這個(gè)程序能不能直接燒進(jìn)板子里面顯示
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表