久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2172|回復: 2
打印 上一主題 下一主題
收起左側

stm32板子想實現藍牙與按鍵部分同時控制舵機的轉動,但兩個程序結合后舵機就亂轉

[復制鏈接]
跳轉到指定樓層
樓主
ID:905488 發表于 2021-5-29 17:46 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
10黑幣
stm32mini想實現藍牙與按鍵部分同時控制舵機的轉動
現在單獨使用藍牙控制舵機或者單獨使用按鍵模塊的轉動都是正常運轉的,但當把按鍵模塊的代碼與藍牙模塊的代碼相結合時,舵機亂轉,或者壓根就不轉。不知是哪里出現了問題呢?請各位大神幫忙解決一下這個疑惑,非常感激。

圖1  藍牙單獨控制舵機的主程序部分#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "usart.h"
#include "timer.h"
extern u8 res;      
      
int main(void)
{               
         int len;
         int t;
int i;         
        delay_init();                     //延時函數初始化         
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);          //設置NVIC中斷分組2:2位搶占優先級,2位響應優先級
        uart_init(115200);         //串口初始化為115200
        My_USART2_Init();
        TIM1_PWM_Init(199,7199);         //不分頻。T為20ms,這樣的配置就是為了讓輸出的PWM信號達到舵機要求的20ms周期。
           while(1)
        {
                        if(res=='1'){TIM_SetCompare2(TIM3,175);delay_ms(1000);}
                        if(res=='2'){TIM_SetCompare2(TIM3,180);delay_ms(1000);}
                        if(res=='3'){TIM_SetCompare2(TIM3,185);delay_ms(1000);}
                        if(res=='4'){TIM_SetCompare2(TIM3,190);delay_ms(1000);}
                        if(res=='5'){TIM_SetCompare2(TIM3,195);delay_ms(1000);}
                       
                        if(res=='A'){TIM_SetCompare3(TIM3,175);delay_ms(1000);}
                        if(res=='B'){TIM_SetCompare3(TIM3,180);delay_ms(1000);}
                        if(res=='C'){TIM_SetCompare3(TIM3,185);delay_ms(1000);}
                        if(res=='D'){TIM_SetCompare3(TIM3,190);delay_ms(1000);}
                        if(res=='E'){TIM_SetCompare3(TIM3,195);delay_ms(1000);}                       
        }         
}

圖2 單片機的按鍵模塊單獨控制兩個舵機轉動的主程序部分

#include "delay.h"
#include "sys.h"
#include "pwm.h"
#include "usart.h"
#include "stm32f10x.h"
#include "key.h"
#define key1 PCin(5)    //KEY1按鍵
#define key2 PAin(15)  //KEY0按鍵
#define key3 PAin(0)  //wk_up按鍵

u16 cout;
u16 couts;
  int main(void)
{               
          cout=50;
          couts=50;
         KEY_Init();
        delay_init();
         TIM3_PWM_Init(1999,719);
         
while(1)
        {         
       if(key3==0&&key1==0)   //key1??,????????
                         {  
                                 if(key1==0)
                           {  
                                         delay_ms(5);
                             cout+=5; }    }
                  else        if(key3==1&&key1==0)  //key1?key3????,??????
                           {  
                                         delay_ms(5);
                             cout-=5; }
                        if(key3==0&&key2==0)      //key2??,????????
                            {      
                                                        delay_ms(5);
                               couts+=5;}
                        else        if(key3==1&&key2==0)   //key2?key3????,??????
                           {  
                                         delay_ms(5);
                             couts-=5;         
                                 }
                                                                              
              TIM_SetCompare2(TIM3,cout); //PWM??
        TIM_SetCompare3(TIM3,couts);
              delay_ms(50);

                                 
         
}
                        
}


圖3、4 按鍵部分與藍牙部分相結合(無法實現)
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "usart.h"
#include "timer.h"
#define key1 PCin(5)
#define key2 PAin(15)
#define key3 PAin(0)  
extern u8 res;      
int main(void)
{                 
   u16 cout=50;
         u16 couts=50;
        KEY_Init();
        delay_init();                    
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);         
        uart_init(115200);      
        My_USART2_Init();
        TIM1_PWM_Init(199,7199);        
           while(1)
        {
                 if(key3==0&&key1==0)   //key1??,????????
                         {   if(key1==0)
                           {   delay_ms(5);
                             cout+=5; } }
                  else        if(key3==1&&key1==0)  //key1?key3????,??????
                           {   delay_ms(5);
                             cout-=5; }
                        if(key3==0&&key2==0)      //key2??,????????
                            {        delay_ms(5);
                                couts+=5;}
                        else        if(key3==1&&key2==0)   //key2?key3????,??????
                           {  
                                         delay_ms(5);
                             couts-=5;           }                                                      
              TIM_SetCompare2(TIM3,cout); //PWM??
        TIM_SetCompare3(TIM3,couts);
              delay_ms(50);
}
                        
}

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

使用道具 舉報

沙發
ID:160860 發表于 2021-8-17 12:35 | 只看該作者
你的 count 和counts初始化給了50,和之前的數值不一樣,出來的波形肯定不對,那示波器或者keil仿真一下看波形就知道了,最好的做法是把各個函數模塊化封裝好,這樣你移植的時候就不容易出錯了
回復

使用道具 舉報

板凳
ID:160860 發表于 2021-8-17 12:38 | 只看該作者
你的count 和counts 初始化為50了,出來的波形肯定和驅動舵機的波形不一樣,把函數封裝好再移植,就不容易出錯了,舵機不會轉首先要考慮檢查波形,而后根據波形查找程序問題。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一级高清 | 韩国精品一区二区三区 | 欧美乱大交xxxxx另类电影 | 亚洲国产成人久久久 | 亚洲国产专区 | 欧美a区| 毛片一级片 | 国产精品不卡视频 | 亚洲人成人一区二区在线观看 | www国产成人免费观看视频,深夜成人网 | 日韩在线免费视频 | 91免费电影 | 日韩欧美在线观看视频 | 美女网站视频免费黄 | 亚洲精品国产第一综合99久久 | 日美女逼逼 | 欧美视频一区 | 亚洲精品乱码 | 欧美一级特黄aaa大片在线观看 | 在线免费观看视频黄 | 欧美不卡一区二区 | 久久成人国产精品 | 亚洲91精品 | 中文字幕在线网 | 色综合欧美 | 久久综合av | 国产在线小视频 | 成人二区 | 可以在线看的黄色网址 | 日韩二区| 国产精品久久久久久久久久久久久 | 国产精品视频免费 | 欧美舔穴 | 福利视频一区二区三区 | 欧美精品一区二区三区蜜桃视频 | 最新国产精品精品视频 | 日本黄色不卡视频 | 国产激情免费视频 | 亚洲一区二区精品视频 | 99视频在线 | 国产真实乱对白精彩久久小说 |