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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STM32單片機(jī)+TB6612模塊智能小車程序原理圖

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
智能小車stm32

  1. #include "stm32f10x.h"
  2. #include "bsp_tb6612.h"
  3. #include "bsp_motor.h"
  4. #include "bsp_usart.h"
  5. #include "car_ctrl.h"

  6. int main(void)
  7. {
  8.         TB6612_FR_Init();      //TB6612模塊1和模塊2一起驅(qū)動
  9.         
  10.         MotorAllOFF();         //單片機(jī)上電默認(rèn)先把4個電機(jī)關(guān)閉
  11.         
  12.         USART3_Config();       //初始化藍(lán)牙模塊的串口
  13.         
  14.         while(1)
  15.         {
  16.                  RUN_Prg();   //小車藍(lán)牙控制功能
  17.         }
  18. }
復(fù)制代碼
  1. #include "bsp_tb6612.h"

  2. /*TB6612模塊1,驅(qū)動前輪  F*/
  3. void TB6612_F_GPIO_Config(void)
  4. {
  5.         GPIO_InitTypeDef GPIO_InitStructure;
  6.         
  7.         RCC_APB2PeriphClockCmd(TB6612_F_GPIO_AIN1_CLK | TB6612_F_GPIO_AIN2_CLK |              \
  8.                                                                                                  TB6612_F_GPIO_BIN1_CLK | TB6612_F_GPIO_BIN2_CLK , ENABLE);
  9.         
  10.         GPIO_InitStructure.GPIO_Pin = TB6612_F_GPIO_AIN1_PIN;
  11.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  12.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        
  13.         GPIO_Init(TB6612_F_GPIO_AIN1_PORT, &GPIO_InitStructure);
  14.         
  15.         GPIO_InitStructure.GPIO_Pin = TB6612_F_GPIO_AIN2_PIN;
  16.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  17.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        
  18.         GPIO_Init(TB6612_F_GPIO_AIN2_PORT, &GPIO_InitStructure);

  19.         GPIO_InitStructure.GPIO_Pin = TB6612_F_GPIO_BIN1_PIN;
  20.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  21.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        
  22.         GPIO_Init(TB6612_F_GPIO_BIN1_PORT, &GPIO_InitStructure);

  23.         GPIO_InitStructure.GPIO_Pin = TB6612_F_GPIO_BIN2_PIN;
  24.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  25.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        
  26.         GPIO_Init(TB6612_F_GPIO_BIN2_PORT, &GPIO_InitStructure);        
  27. }

  28. void TB6612_F_PWM_GPIO_Config(void)
  29. {
  30.         GPIO_InitTypeDef GPIO_InitStructure;
  31.         
  32.         RCC_APB2PeriphClockCmd(TB6612_F_GPIO_PWMA_CH1_CLK, ENABLE);
  33.         GPIO_InitStructure.GPIO_Pin = TB6612_F_GPIO_PWMA_CH1_PIN;
  34.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  35.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        
  36.         GPIO_Init(TB6612_F_GPIO_PWMA_CH1_PORT,&GPIO_InitStructure);
  37.         
  38.         RCC_APB2PeriphClockCmd(TB6612_F_GPIO_PWMB_CH2_CLK, ENABLE);
  39.         GPIO_InitStructure.GPIO_Pin = TB6612_F_GPIO_PWMB_CH2_PIN;
  40.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  41.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        
  42.         GPIO_Init(TB6612_F_GPIO_PWMB_CH2_PORT,&GPIO_InitStructure);
  43. }

  44. /*TB6612模塊2,驅(qū)動后輪  R*/
  45. void TB6612_R_GPIO_Config(void)
  46. {
  47.         GPIO_InitTypeDef GPIO_InitStructure;
  48.         
  49.         RCC_APB2PeriphClockCmd(TB6612_R_GPIO_AIN1_CLK | TB6612_R_GPIO_AIN2_CLK |              \
  50.                                                                                                  TB6612_R_GPIO_BIN1_CLK | TB6612_R_GPIO_BIN2_CLK , ENABLE);
  51.         
  52.         GPIO_InitStructure.GPIO_Pin = TB6612_R_GPIO_AIN1_PIN;
  53.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  54.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  55.         GPIO_Init(TB6612_R_GPIO_AIN1_PORT, &GPIO_InitStructure);
  56.         
  57.         GPIO_InitStructure.GPIO_Pin = TB6612_R_GPIO_AIN2_PIN;
  58.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  59.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  60.         GPIO_Init(TB6612_R_GPIO_AIN2_PORT, &GPIO_InitStructure);

  61.         GPIO_InitStructure.GPIO_Pin = TB6612_R_GPIO_BIN1_PIN;
  62.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  63.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  64.         GPIO_Init(TB6612_R_GPIO_BIN1_PORT, &GPIO_InitStructure);

  65.         GPIO_InitStructure.GPIO_Pin = TB6612_R_GPIO_BIN2_PIN;
  66.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  67.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  68.         GPIO_Init(TB6612_R_GPIO_BIN2_PORT, &GPIO_InitStructure);
  69. }

  70. void TB6612_R_PWM_GPIO_Config(void)
  71. {
  72.         GPIO_InitTypeDef GPIO_InitStructure;
  73.         
  74.         RCC_APB2PeriphClockCmd(TB6612_R_GPIO_PWMA_CH3_CLK, ENABLE);        
  75.         GPIO_InitStructure.GPIO_Pin = TB6612_R_GPIO_PWMA_CH3_PIN;
  76.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  77.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        
  78.         GPIO_Init(TB6612_R_GPIO_PWMA_CH3_PORT,&GPIO_InitStructure);

  79.         RCC_APB2PeriphClockCmd(TB6612_R_GPIO_PWMB_CH4_CLK, ENABLE);
  80.         GPIO_InitStructure.GPIO_Pin = TB6612_R_GPIO_PWMB_CH4_PIN;
  81.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  82.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        
  83.         GPIO_Init(TB6612_R_GPIO_PWMB_CH4_PORT,&GPIO_InitStructure);
  84. }

  85. static void ADVANCE_TIM1_Mode_Config(void)
  86. {
  87.         TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
  88.         TIM_OCInitTypeDef TIM_OCInitStructure;
  89.         
  90.         RCC_APB2PeriphClockCmd(ADVANCE_TIM_CLK , ENABLE);
  91.         
  92.         TIM_TimeBaseInitStructure.TIM_Prescaler = (72-1);
  93.         TIM_TimeBaseInitStructure.TIM_Period = (100-1);
  94.         TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;
  95.         TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1;
  96.         TIM_TimeBaseInitStructure.TIM_RepetitionCounter = 0;
  97.         TIM_TimeBaseInit(ADVANCE_TIM, &TIM_TimeBaseInitStructure);
  98.         
  99.         TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
  100.         TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
  101.         TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High;
  102.         TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
  103.         TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable;
  104.         TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;
  105.         TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCNIdleState_Reset;
  106.         
  107.         TIM_OCInitStructure.TIM_Pulse = 0;
  108.         TIM_OC1Init(ADVANCE_TIM, &TIM_OCInitStructure);
  109.         TIM_OC1PreloadConfig(ADVANCE_TIM,TIM_OCPreload_Enable);
  110.         
  111.         TIM_OCInitStructure.TIM_Pulse = 0;
  112.         TIM_OC2Init(ADVANCE_TIM, &TIM_OCInitStructure);
  113.         TIM_OC2PreloadConfig(ADVANCE_TIM,TIM_OCPreload_Enable);
  114.         
  115.         TIM_OCInitStructure.TIM_Pulse = 0;
  116.         TIM_OC3Init(ADVANCE_TIM, &TIM_OCInitStructure);
  117.         TIM_OC3PreloadConfig(ADVANCE_TIM,TIM_OCPreload_Enable);
  118.         
  119.         TIM_OCInitStructure.TIM_Pulse = 0;
  120.         TIM_OC4Init(ADVANCE_TIM, &TIM_OCInitStructure);
  121.         TIM_OC4PreloadConfig(ADVANCE_TIM,TIM_OCPreload_Enable);
  122.         
  123.         TIM_Cmd(ADVANCE_TIM, ENABLE);
  124. }

  125. //void TB6612_F_Init(void)    //控制前面2輪的電機(jī)驅(qū)動模塊初始化
  126. //{
  127. //        TB6612_F_GPIO_Config();
  128. //        TB6612_F_PWM_GPIO_Config();
  129. //        ADVANCE_TIM1_Mode_Config();
  130. //}

  131. //void TB6612_R_Init(void)    //控制后面2輪的電機(jī)驅(qū)動模塊初始化
  132. //{
  133. //        TB6612_R_GPIO_Config();
  134. //        TB6612_R_PWM_GPIO_Config();
  135. //        ADVANCE_TIM1_Mode_Config();
  136. //}

  137. void TB6612_FR_Init(void)                //控制前和后2輪的電機(jī)驅(qū)動模塊初始化
  138. {
  139.         TB6612_F_GPIO_Config();
  140.         TB6612_F_PWM_GPIO_Config();
  141.         TB6612_R_GPIO_Config();
  142.         TB6612_R_PWM_GPIO_Config();
  143.         ADVANCE_TIM1_Mode_Config();
  144. }
復(fù)制代碼
原理圖: 見頂部
仿真: 無
代碼僅供參考: 藍(lán)牙小車程序和資料.7z (3.74 MB, 下載次數(shù): 30)
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 成人免费视频在线观看 | 在线欧美亚洲 | 国产视频一区二区 | 国产男女猛烈无遮掩视频免费网站 | 亚洲一区 | 91精品国产综合久久香蕉922 | 国产精品成人av | 在线播放中文字幕 | 成人国产一区二区三区精品麻豆 | 成人精品久久日伦片大全免费 | 国产一区www | 久久91 | jvid精品资源在线观看 | 日韩在线免费播放 | 欧美国产一区二区 | 国产精品一区二区在线 | 久久久久国产一区二区三区四区 | 国产真实精品久久二三区 | 一区二区三区免费 | 久久综合一区二区三区 | a国产视频| 伊人网综合在线观看 | 国产高清视频在线观看 | 亚洲成人在线免费 | 欧美日本韩国一区二区三区 | 精品区 | 亚洲精品视频一区 | 91精品入口蜜桃 | 日韩av免费在线观看 | 日韩av电影在线观看 | 国产精品毛片无码 | 午夜黄色 | 99久久精品国产一区二区三区 | 久草网站| 欧美日韩国产欧美 | 成人在线视频一区二区三区 | 91视频网址| 国产精品高潮呻吟久久 | 欧美国产精品一区二区三区 | 日韩免费电影 | 黄视频网站免费观看 |