找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 10679|回复: 18
收起左侧

基于STM32的信号发生器设计源码

  [复制链接]
ID:328229 发表于 2018-5-12 15:22 | 显示全部楼层 |阅读模式
毕设做的是基于STM32的信号发生器设计。分享给大家。
带有LCD显示当前频率、幅值、相位信息
按键可调输出频率、幅值、相位

版本内容/:
    增加lcd显示GUI
    增加按键处理,可以调整波形参数

4.16:更新记录:
        添加文件dds.c .h ,将三个函数放在dds.c中,并修改参数类型
            double get_omega (struct WaveTypedef *wave) ;
            double get_phase (struct WaveTypedef *wave);
            u32 get_period (struct WaveTypedef *wave) ;
        修改gui.c文件中的函数    并将基于全局变量,改为基于结构体参数        
            void dds_updata_data (void) ;
                void dds_updata_data (struct WaveTypedef *wave) ;     
        增加确认按键
            GPIOKey3 按下。则将tmpwavestruct 赋值给wave1 或者wave2
            
4.26修复BUG:
        切换通道之后,再次调整参数将会把第一通道的参数带给第二通道;(fixed)
        
            
单片机源程序如下:
  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. }

复制代码

所有资料51hei提供下载:
2myDAC_timer-wave-struct.rar (327.61 KB, 下载次数: 324)

评分

参与人数 2黑币 +55 收起 理由
書雲123 + 5 很给力!
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:334773 发表于 2018-5-21 12:17 | 显示全部楼层
感觉不错
回复

使用道具 举报

ID:334773 发表于 2018-5-21 12:19 | 显示全部楼层
刚注册,币子不够,楼主可不可以往我邮箱发一份这个197310298@qq.com,谢谢!!!
回复

使用道具 举报

ID:313905 发表于 2018-5-23 22:18 | 显示全部楼层
币不够,下不了难过
回复

使用道具 举报

ID:338823 发表于 2018-5-26 17:21 | 显示全部楼层
币不够用啊
回复

使用道具 举报

ID:461739 发表于 2019-1-4 13:43 来自手机 | 显示全部楼层
跪求大佬分享一份,救急救急我的邮箱hdlsunny@163.com万分感谢
回复

使用道具 举报

ID:434269 发表于 2019-3-7 16:25 | 显示全部楼层
谢谢分享
回复

使用道具 举报

ID:489675 发表于 2019-3-13 09:27 | 显示全部楼层
很好资料,谢谢?
回复

使用道具 举报

ID:492572 发表于 2019-3-21 18:01 | 显示全部楼层
求代码程序 18918838788@163.com
回复

使用道具 举报

ID:465802 发表于 2019-5-8 09:50 | 显示全部楼层
看着很棒,很不错。下载试试。
回复

使用道具 举报

ID:536632 发表于 2019-5-13 08:43 | 显示全部楼层
書雲123 发表于 2018-5-21 12:19
刚注册,币子不够,楼主可不可以往我邮箱发一份这个,谢谢!!!

刚注册,币子不够,麻烦大佬发我一份,打扰了,谢谢啊2685216487@qq.com
回复

使用道具 举报

ID:313048 发表于 2019-5-16 21:09 | 显示全部楼层
还不错
回复

使用道具 举报

ID:537018 发表于 2019-5-17 14:51 | 显示全部楼层
有仿真吗?
用什么显示的?
回复

使用道具 举报

ID:590955 发表于 2019-8-1 18:07 | 显示全部楼层
求大佬发一份呀!同样币不够啊!1214916003@qq.com,跪谢!!!
回复

使用道具 举报

ID:605110 发表于 2019-8-29 14:36 | 显示全部楼层
币不够,跪求大佬发一份 406220555@qq.com
回复

使用道具 举报

ID:668259 发表于 2019-12-19 13:15 | 显示全部楼层
感觉不错.币不够,跪求大佬发一份 907209070@qq.com
回复

使用道具 举报

ID:694525 发表于 2020-2-18 01:49 | 显示全部楼层
您好,请问你用的是什么开发板呢,我这里LED没有显示
回复

使用道具 举报

ID:277948 发表于 2020-2-19 09:32 来自手机 | 显示全部楼层
我去自己参考一下就行了,创造靠自己,你们这理由太优秀了
回复

使用道具 举报

ID:692032 发表于 2020-2-20 12:58 | 显示全部楼层
大佬,请问一下我用的STM32103zet6开发板,这个程序能不能直接烧进板子里面显示
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表