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

QQ登錄

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

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

stm32f103超聲波小燈檢測(cè),只需要添加IF語(yǔ)句,就可以控制電機(jī)。B0是echo B7是tring

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:364826 發(fā)表于 2018-8-2 13:39 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式

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

單片機(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í)函數(shù)初始化          
  19.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);          //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)
  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;//溢出時(shí)間總和
  44.                         temp+=TIM3CH3_CAPTURE_VAL;//得到總的高電平時(shí)間
  45.                         temp1 = temp;     //全局變量傳遞參數(shù)
  46.                         //此處添加IF語(yǔ)句調(diào)試控制電機(jī)
  47.                         TIM3CH3_CAPTURE_STA=0;//開(kāi)啟下一次捕獲
  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)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:364826 發(fā)表于 2018-8-2 13:41 | 只看該作者
最后那個(gè)while(1);要注釋掉
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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