標(biāo)題: STM32舵機(jī)多路超聲波源碼 OLED顯示 [打印本頁]

作者: 17779131997    時(shí)間: 2017-12-10 11:04
標(biāo)題: STM32舵機(jī)多路超聲波源碼 OLED顯示
在下新手,如有錯(cuò)誤,請(qǐng)大佬批評(píng)指正

單片機(jī)源程序如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "timer.h"
  5. #include "wave.h"
  6. #include "sys.h"
  7. #include "pwm.h"
  8. #include "oled.h"
  9. int main(void)
  10. {       
  11.         u8 s=0;
  12.         u16 led0pwmval=0;   
  13.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)
  14.         uart_init(115200);         //串口初始化為115200
  15.         delay_init();                     //延時(shí)函數(shù)初始化          
  16.         LED_Init();                          //初始化與LED連接的硬件接口
  17.         TIM1_PWM_Init(1439,999);//不分頻。PWM頻率=72000/(899+1)=80Khz
  18.         Timer_SRD_Init(5000,7199);
  19.         UltrasonicWave_Configuration();
  20.         OLED_Init();
  21.            while(1)
  22.         {
  23.                 switch (s)
  24.                  {
  25.                          case 0:         UltrasonicWave_StartMeasure_0();
  26.                                                                 delay_ms(100);s=1;break;
  27.                          case 1:        UltrasonicWave_StartMeasure_1();
  28.                                                                 delay_ms(100);s=2;break;
  29.                          case 2:         UltrasonicWave_StartMeasure_2();
  30.                                                                 delay_ms(100);s=0;break;
  31.                         default:  s=0; break;
  32.                  }   
  33.                
  34.                
  35.            if(a==1)
  36.                         {
  37.                                 OLED_Clear();
  38.                                 OLED_ShowCHinese(0,0,0);//"哥"
  39.                                 OLED_ShowCHinese(0,3,1);//"這"
  40.                                 OLED_ShowCHinese(18,3,2);//"有"
  41.                                 OLED_ShowCHinese(36,3,3);//'人"
  42.                                 OLED_ShowString(72,3,"->");//"->"
  43.                                 OLED_ShowNum(88,3,1,3,16);
  44.                                
  45.                           LED1=!LED1;
  46.                                 led0pwmval=37;                        
  47.                                 TIM_SetCompare1(TIM1,led0pwmval);                      //90度
  48.                                 a=0;
  49.                         }
  50.                         else if(b==1)
  51.                         {               
  52.                                
  53.                                 OLED_Clear();
  54.                                 OLED_ShowCHinese(0,0,0);//"哥"
  55.                                 OLED_ShowCHinese(0,3,1);//"這"
  56.                                 OLED_ShowCHinese(18,3,2);//"有"
  57.                                 OLED_ShowCHinese(36,3,3);//'人"
  58.                                 OLED_ShowString(72,3,"->");//"->"
  59.                                 OLED_ShowNum(88,3,2,3,16);
  60.                                
  61.                                 led0pwmval=180;                        
  62.                                 TIM_SetCompare1(TIM1,led0pwmval);  
  63.                                 b=0;
  64.                                 LED0=!LED0;
  65.                         }
  66.                         else if(c==1)
  67.                         {
  68.                                 OLED_Clear();
  69.                                 OLED_ShowCHinese(0,0,0);//"哥"
  70.                                 OLED_ShowCHinese(0,3,1);//"這"
  71.                                 OLED_ShowCHinese(18,3,2);//"有"
  72.                                 OLED_ShowCHinese(36,3,3);//'人"
  73.                                 OLED_ShowString(72,3,"->");//"->"
  74.                                 OLED_ShowNum(88,3,3,3,16);
  75.                                
  76.                                
  77.                                 LED0=1;
  78.                                 LED1=1;       
  79.                                 delay_ms(500);
  80.                                 LED0=0;
  81.                                 LED1=0;       
  82.                                 c=0;
  83.                         }
  84.                         else if((a!=1)&&(b!=1)&&(c!=1))
  85.                         {

  86.                                 OLED_Clear();
  87.                                 OLED_ShowCHinese(0,0,0);//"哥"
  88.                                 OLED_ShowCHinese(0,3,1);//"這"
  89.                                 OLED_ShowCHinese(18,3,4);//"沒"
  90.                                 OLED_ShowCHinese(36,3,3);//'人"
  91.                                
  92.                                 led0pwmval=93;
  93.                                 TIM_SetCompare1(TIM1,led0pwmval);                  //0度,延時(shí)1s
  94.                         }
  95.         }
  96. }


復(fù)制代碼

所有資料51hei提供下載:
超聲波模塊程序外中斷3路 終極版.rar (334.27 KB, 下載次數(shù): 73)



作者: yingkang    時(shí)間: 2018-11-28 20:15
有原理圖嗎




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1