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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2808|回復: 2
收起左側

STM32藍牙遙控小車帶三個舵機源碼

[復制鏈接]
ID:892737 發表于 2021-9-20 16:22 | 顯示全部樓層 |閱讀模式
如題,使用stm32f103rct6,控制四個輪子的電機正反轉分別為PC0-PC8,四個輪子的使能端為PA0,PA1,PA2,PA3(定時器2)(左前,左后,右前,右后),三個舵機在PB6,PB7,PB9(定時器4),使用范圍在5-25之間,藍牙接PC10,PC11,使用串口4,波特率為9600.
圖片太大,發不上來。

單片機源程序如下:
  1. #include "stm32f10x.h"
  2. #include "pwm.h"
  3. #include "gpio.h"
  4. #include "delay.h"
  5. #include "system.h"
  6. #include "motor.h"
  7. #include "USART.h"
  8. #include "bluetooth.h"
  9. #include "duojipwm.h"

  10. #define KEY1  GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_8)
  11. #define KEY2  GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_9)

  12. int CMD=0x61;
  13. void USART3_Init(void);
  14. void GPIOdianji_Init(void);
  15. void TIM4_PWM_Init(u16 arr,u16 psc);


  16. int main(void){
  17.         USART_Config();//串口
  18.         GPIOdianji_Init();//電機引腳
  19.         GENERAL_TIM_Init();//電機PWM初始化
  20.         blueToothInit();//藍牙初始化
  21.         TIM4_PWM_Init(199,7199);
  22.         TIM_SetCompare4(TIM4, 4);
  23.         TIM_SetCompare1(TIM4, 5);
  24.         TIM_SetCompare2(TIM4, 23);
  25.         TIM_SetCompare3(TIM4, 13);
  26.         while(1){
  27.                 //如果藍牙斷開,小車會一直在剎車狀態
  28.                 if(BLUE_TOOTH_STATE != Bit_SET){
  29.                         stop();
  30.                 }
  31.                 if(KEY1==0)
  32.                 {
  33.                     forward();
  34.                         TIM_SetCompare1(TIM4,25);

  35.                 }
  36.                 if(KEY2==0)
  37.                 {
  38.                         stop();
  39.                         TIM_SetCompare1(TIM4,5);
  40.                 }
  41. //                car_speed();
  42.         }

  43. }
復制代碼

  1. #include "duojipwm.h"
  2. #include "delay.h"


  3. void TIM4_PWM_Init(u16 arr,u16 psc)
  4. {  
  5.         //**結構體聲明**//
  6.         GPIO_InitTypeDef GPIO_InitStructure;            //聲明GPIO
  7.         TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure; //聲明定時器
  8.         TIM_OCInitTypeDef  TIM_OCInitStructure;         //聲明PWM通道
  9.        
  10.         //**時鐘使能**//
  11.         RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);        //使能定時器TIM4時鐘
  12.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);         //使能PB端口時鐘
  13.        
  14.         //****//
  15.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;                                 //LED0-->PB.6 端口配置
  16.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;                  //復用推挽輸出
  17.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                 //IO口速度為50MHz
  18.         GPIO_Init(GPIOB, &GPIO_InitStructure);                                         //根據設定參數初始化GPIOB.6
  19.         GPIO_SetBits(GPIOB,GPIO_Pin_6);
  20.         //****//
  21.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;                                 //LED0-->PB.7 端口配置
  22.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;                  //復用推挽輸出
  23.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                 //IO口速度為50MHz
  24.         GPIO_Init(GPIOB, &GPIO_InitStructure);                                         //根據設定參數初始化GPIOB.7
  25.         GPIO_SetBits(GPIOB,GPIO_Pin_7);
  26.        
  27.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;                                 //LED0-->PB.7 端口配置
  28.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;                  //復用推挽輸出
  29.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                 //IO口速度為50MHz
  30.         GPIO_Init(GPIOB, &GPIO_InitStructure);                                         //根據設定參數初始化GPIOB.7
  31.         GPIO_SetBits(GPIOB,GPIO_Pin_8);
  32.        
  33.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;                                 //LED0-->PB.7 端口配置
  34.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;                  //復用推挽輸出
  35.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                 //IO口速度為50MHz
  36.         GPIO_Init(GPIOB, &GPIO_InitStructure);                                         //根據設定參數初始化GPIOB.7
  37.         GPIO_SetBits(GPIOB,GPIO_Pin_9);

  38.   //初始化TIM3
  39.         TIM_TimeBaseStructure.TIM_Period = arr; //設置在下一個更新事件裝入活動的自動重裝載寄存器周期的值
  40.         TIM_TimeBaseStructure.TIM_Prescaler =psc; //設置用來作為TIMx時鐘頻率除數的預分頻值
  41.         TIM_TimeBaseStructure.TIM_ClockDivision = 0; //設置時鐘分割:TDTS = Tck_tim
  42.         TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIM向上計數模式
  43.         TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure); //根據TIM_TimeBaseInitStruct中指定的參數初始化TIMx的時間基數單位

  44.         //初始化TIM3 Channel1 PWM模式         
  45.         TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //選擇定時器模式:TIM脈沖寬度調制模式2
  46.         TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比較輸出使能
  47.         TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //輸出極性:TIM輸出比較極性高
  48.         TIM_OC1Init(TIM4, &TIM_OCInitStructure);  //根據T指定的參數初始化外設TIM3 OC1
  49.        
  50.         //初始化TIM3 Channel2 PWM模式         
  51.         TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //選擇定時器模式:TIM脈沖寬度調制模式2
  52.         TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比較輸出使能
  53.         TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //輸出極性:TIM輸出比較極性高
  54.         TIM_OC2Init(TIM4, &TIM_OCInitStructure);  //根據T指定的參數初始化外設TIM3 OC2
  55.        
  56.         TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //選擇定時器模式:TIM脈沖寬度調制模式2
  57.         TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比較輸出使能
  58.         TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //輸出極性:TIM輸出比較極性高
  59.         TIM_OC3Init(TIM4, &TIM_OCInitStructure);  //根據T指定的參數初始化外設TIM3 OC3
  60.        
  61.         TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //選擇定時器模式:TIM脈沖寬度調制模式2
  62.         TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比較輸出使能
  63.         TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //輸出極性:TIM輸出比較極性高
  64.         TIM_OC4Init(TIM4, &TIM_OCInitStructure);  //根據T指定的參數初始化外設TIM3 OC4

  65.         TIM_OC1PreloadConfig(TIM4, TIM_OCPreload_Enable);  //使能TIM4_CH1預裝載寄存器
  66.         TIM_OC2PreloadConfig(TIM4, TIM_OCPreload_Enable);  //使能TIM4_CH2預裝載寄存器
  67.         TIM_OC3PreloadConfig(TIM4, TIM_OCPreload_Enable);  //使能TIM4_CH3預裝載寄存器
  68.         TIM_OC4PreloadConfig(TIM4, TIM_OCPreload_Enable);  //使能TIM4_CH4預裝載寄存器
  69.    
  70.         TIM_Cmd(TIM4, ENABLE);  //使能TIM4
  71. }

  72. //void pigupwm(void)
  73. //{
  74. //     TIM_SetCompare1(TIM4,i);
  75. //         delay_ms(500);
  76. //}

  77. //void dizuopwm(void)
  78. //{
  79. //         TIM_SetCompare2(TIM4,i);
  80. //         TIM_SetCompare3(TIM4,i);
  81. //         delay_ms(500);
  82. //}

  83. //void bluepwm(void)
  84. //{
  85. //         TIM_SetCompare4(TIM2,i);
  86. //         delay_ms(500);
  87. //}
復制代碼


所有代碼51hei附件下載:
yuanban.7z (182.78 KB, 下載次數: 52)

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:1114752 發表于 2024-4-5 20:34 | 顯示全部樓層
樓主,想問問您的藍牙型號
回復

使用道具 舉報

ID:892737 發表于 2024-12-4 20:27 | 顯示全部樓層
YSY521 發表于 2024-4-5 20:34
樓主,想問問您的藍牙型號

你好,HC06
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产欧美精品在线观看 | 欧美一区二区在线免费观看 | 亚洲高清成人在线 | 欧美xxxx色视频在线观看免费 | 伊人99| 日韩av最新网址 | 狠狠躁躁夜夜躁波多野结依 | 美女视频黄色的 | 黄视频网址 | 日本黄色大片免费看 | 欧美大片久久久 | 国精品一区 | 亚洲免费在线播放 | 日韩精品一区二区三区视频播放 | 亚洲精品天堂 | 一区二区三区四区国产 | 国产91在线 | 中日 | 久久香蕉网 | 日韩欧美一级片 | 99成人在线视频 | 国产高清在线精品 | 一区二区三区视频在线观看 | 二区视频| 亚洲国产成人精品久久久国产成人一区 | 免费在线观看黄网站 | 精品国产乱码久久久久久蜜退臀 | 一区二区高清 | 免费国产视频 | 黄色一级电影在线观看 | 久久蜜桃资源一区二区老牛 | 国产91在线 | 中日 | 亚洲另类自拍 | 99精品视频一区二区三区 | 在线观看 亚洲 | 婷婷丁香在线视频 | 在线欧美亚洲 | 青草福利 | 国产欧美精品一区二区色综合朱莉 | 亚洲一视频 | 最近中文字幕第一页 | 久草www|