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

QQ登錄

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

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

STM32編碼器+串口顯示+波形發(fā)生器程序源碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
這是一個(gè)用編碼器控制頻率的正弦波發(fā)生器,頻率范圍0-2khz。最重要的是波形是連續(xù)的,比使用專(zhuān)業(yè)的波形發(fā)生器模塊要好用。波形也可以自己通過(guò)改變數(shù)組來(lái)改變波形。里面一些程序也是集成采用了網(wǎng)友的。


單片機(jī)源程序如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "key.h"
  4. #include "sys.h"
  5. #include "usart.h"
  6. #include "timer.h"
  7. #include "adc.h"
  8. #include "exti.h"
  9. #include "encode.h"
  10. #include "DAC.h"
  11. #include "DMA.h"
  12. #include "TIM.h"

  13.         
  14. int main(void)
  15. {        u16 adcx;
  16.          float temp;
  17.          int a=359,b;        
  18.         
  19.         u16 count;//編碼器計(jì)數(shù)
  20.         delay_init();                     //延時(shí)函數(shù)初始化        

  21.   NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);          //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)

  22.         uart_init(115200);         //串口初始化為115200
  23. //         Adc_Init();        
  24.                   LED_Init();                             //LED端口初始化

  25.         TIM4_Init();//定時(shí)器編碼器接口初始化
  26. a=9999-a;
  27.          TIM3_PWM_Init(a,7199);         //不分頻。PWM頻率=72000000/900=80Khz  88
  28.          
  29.   GPIO_Config();
  30.         DMA_Config();
  31.         DAC_Config();
  32.         TIM_Config();
  33.            while(1)
  34. {        

  35.                 b= TIM4->CNT/4;
  36.         if( b<282)b=282;
  37.         b=28235/b;
  38. //    printf("編碼器值 = %d\t\n",b);
  39.         TIM3->PSC=b;
  40.         TIM6->ARR=b;
  41. ////                if (a<50) a=50;
  42. ////                a=50000/a;
  43. //                if (a<40)a=40;
  44. //        else if(a>900)a=900;
  45. //               
  46. //          b=65535/a;
  47. //        
  48. //        TIM3->ARR=b;
  49. //        
  50. //                TIM3->CCR2=b/32;
  51. //        printf("b = %d\n",b);
  52. ////                       printf("ARR = %d\n",b);
  53. ////                TIM3_PWM_Init(a,7199);
  54.         
  55.         
  56.         
  57.         if((TIM4->CR1 & TIM_CounterMode_Down) != TIM_CounterMode_Down)//判斷編碼器正反轉(zhuǎn)
  58.                                 {
  59.             LED2=0;}
  60.       else LED2=1;

  61.                
  62.                                 }        

  63.         }         
復(fù)制代碼

所有資料51hei提供下載:
編碼器+正玄波-實(shí)驗(yàn) 成功 -調(diào)共振環(huán)10-1000hz.rar (317.64 KB, 下載次數(shù): 84)


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

使用道具 舉報(bào)

沙發(fā)
ID:369406 發(fā)表于 2018-7-11 21:49 | 只看該作者
這個(gè)編碼器控制正弦波的頻率?
回復(fù)

使用道具 舉報(bào)

板凳
ID:285686 發(fā)表于 2018-8-6 20:22 | 只看該作者
是的,調(diào)節(jié)編碼器改變定時(shí)器。改變讀取的速度。


回復(fù)

使用道具 舉報(bào)

地板
ID:158903 發(fā)表于 2018-8-7 08:50 | 只看該作者
收藏了
回復(fù)

使用道具 舉報(bào)

5#
ID:285686 發(fā)表于 2018-8-7 09:33 | 只看該作者
發(fā)一下視頻[url][/url]
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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