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

標題: STM32藍牙遙控小車帶三個舵機源碼 [打印本頁]

作者: 1196383236    時間: 2021-9-20 16:22
標題: STM32藍牙遙控小車帶三個舵機源碼
如題,使用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)



作者: YSY521    時間: 2024-4-5 20:34
樓主,想問問您的藍牙型號
作者: 1196383236    時間: 2024-12-4 20:27
YSY521 發表于 2024-4-5 20:34
樓主,想問問您的藍牙型號

你好,HC06




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 欧美美女一区二区 | 在线激情视频 | 色婷婷av一区二区三区软件 | 免费看一级毛片 | 国产一区二区在线播放 | 七七婷婷婷婷精品国产 | 色99视频 | 午夜影晥| 久久黄视频 | 国产精品久久久久久影院8一贰佰 | 精品1区| 一区二区三区小视频 | 91aiai| 天天干天天玩天天操 | 欧美激情综合五月色丁香小说 | 国产精品国产亚洲精品看不卡15 | 久久一级免费视频 | a在线免费观看 | 日本成人三级电影 | 中文字幕在线看 | 性网站免费| 亚洲精品福利视频 | 国产乱码精品一区二区三区忘忧草 | 99久久久99久久国产片鸭王 | 午夜久久久久久久久久一区二区 | 国产成人福利 | 亚洲国产一区视频 | 性色网站 | 在线视频亚洲 | 日日夜夜免费精品视频 | 毛片视频免费观看 | 亚洲首页| 久久久久久久国产精品视频 | 欧美精品一区二区三区在线 | 黑人粗黑大躁护士 | 99色视频 | 亚洲欧美国产精品久久 | 免费黄色片视频 | 国产美女福利在线观看 | 天天曰天天干 | 成人亚洲视频 |