標(biāo)題: stm32f103超聲波小燈檢測,只需要添加IF語句,就可以控制電機(jī)。B0是echo B7是tring [打印本頁]

作者: 楓葉獨(dú)眠    時間: 2018-8-2 13:39
標(biāo)題: stm32f103超聲波小燈檢測,只需要添加IF語句,就可以控制電機(jī)。B0是echo B7是tring

這是我改了捕獲實(shí)驗(yàn)程序的,echo和tring分別是PBout(0)和PBout(7)
添加if語句你就可以實(shí)現(xiàn)無刷電機(jī)的驅(qū)動了,不過我還沒有添加PID所以僅供參考借鑒和超聲波的檢測

單片機(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. extern u8  TIM3CH3_CAPTURE_STA;                //輸入捕獲狀態(tài)                                                   
  8. extern u16        TIM3CH3_CAPTURE_VAL;        //輸入捕獲值       
  9. extern u32 temp1;
  10. extern u8 kaishi;
  11. int main(void)
  12. {
  13.          
  14.         u32 temp=0;
  15.         u16 led0pwmval=0;
  16.         u8 dir=1;       
  17.         u8 takeoff=1;
  18.         delay_init();                     //延時函數(shù)初始化          
  19.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);          //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級,2位響應(yīng)優(yōu)先級
  20.         uart_init(115200);         //串口初始化為115200
  21.         LED_Init();                             //LED端口初始化
  22.         TIM2_Int_Init(19999,71);       
  23.         TIM3_PWM_Init(19999,71);         //不分頻。PWM頻率=72000000/900=80Khz   
  24.         TIM_SetCompare2(TIM3,800);
  25.         TIM_SetCompare1(TIM3,800);
  26.         delay_ms(1500);
  27.         delay_ms(1500);
  28.         delay_ms(1500);       
  29.         delay_ms(1500);
  30.          
  31.    kaishi=1;
  32.           PBout(7)=1;
  33.                  delay_us(15);
  34.                  PBout(7)=0;

  35.             while(1)
  36.         {         
  37.            PBout(7)=1;
  38.                  delay_us(15);
  39.                  PBout(7)=0;
  40.                 if(TIM3CH3_CAPTURE_STA&0X80)//成功捕獲到了一次上升沿
  41.                 {
  42.                         temp=TIM3CH3_CAPTURE_STA&0X3F;
  43.                         temp*=20000;//溢出時間總和
  44.                         temp+=TIM3CH3_CAPTURE_VAL;//得到總的高電平時間
  45.                         temp1 = temp;     //全局變量傳遞參數(shù)
  46.                         //此處添加IF語句調(diào)試控制電機(jī)
  47.                         TIM3CH3_CAPTURE_STA=0;//開啟下一次捕獲
  48.                         PBout(7)=1;
  49.                   delay_us(15);
  50.                   PBout(7)=0;
  51.                        
  52.                 }
  53.                 else delay_ms(5);
  54.                 while(1);
  55.                

  56.                
  57.                
  58.                
  59.         }
  60. }

復(fù)制代碼

所有資料51hei提供下載:
實(shí)驗(yàn)9 PWM輸出實(shí)驗(yàn).rar (288.49 KB, 下載次數(shù): 11)



作者: 楓葉獨(dú)眠    時間: 2018-8-2 13:41
最后那個while(1);要注釋掉




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