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

標(biāo)題: 我的簡(jiǎn)易stm32小車前進(jìn)后退Motor.c源程序 [打印本頁(yè)]

作者: kkkkc    時(shí)間: 2025-6-10 13:36
標(biāo)題: 我的簡(jiǎn)易stm32小車前進(jìn)后退Motor.c源程序
這是我做的stm32簡(jiǎn)易小車前進(jìn)和后退的代碼
Motor.c文件:
  1. #include "stm32f10x.h"                  // Device header
  2. #include "PWM.h"

  3. void Motor_Init(void)//直流電機(jī)初始化
  4. {
  5.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//開(kāi)啟GPIOA時(shí)鐘
  6.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//開(kāi)啟GPIOB時(shí)鐘
  7.         
  8.         GPIO_InitTypeDef GPIO_InitStructure;//結(jié)構(gòu)體變量
  9.         GPIO_InitStructure.GPIO_Mode= GPIO_Mode_Out_PP;//推挽輸出
  10.         GPIO_InitStructure.GPIO_Pin= GPIO_Pin_8| GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11;//設(shè)置端口
  11.         GPIO_InitStructure.GPIO_Speed= GPIO_Speed_50MHz;//輸出速度
  12.         GPIO_Init(GPIOA,&GPIO_InitStructure);//方向控制的初始化
  13.         
  14.         GPIO_InitStructure.GPIO_Pin= GPIO_Pin_12| GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;//設(shè)置端口
  15.         GPIO_Init(GPIOB,&GPIO_InitStructure);//方向控制的初始化
  16.         
  17.         PWM_Init();  //初始化Pwm模塊 ,控制電機(jī)速度
  18. }


  19. void Motor_SetSpeed1(int8_t Speed)//速度值:-100~100
  20. {
  21.         if(Speed>=0)//相對(duì)正轉(zhuǎn)
  22.         {
  23.                 GPIO_SetBits(GPIOA,GPIO_Pin_10);//高電平(哪個(gè)引腳為高,哪個(gè)引腳為低隨意)
  24.                 GPIO_ResetBits(GPIOA,GPIO_Pin_11);//低電平(哪個(gè)引腳為高,哪個(gè)引腳為低隨意)
  25.                
  26.                 PWM_SetCompare1(Speed);//單獨(dú)更改TIM3通道1的CCR值(PA6)
  27.         }
  28.         else//相對(duì)反轉(zhuǎn)
  29.         {
  30.                 GPIO_ResetBits(GPIOA,GPIO_Pin_10);//低電平(哪個(gè)引腳為高,哪個(gè)引腳為低隨意)
  31.                 GPIO_SetBits(GPIOA,GPIO_Pin_11);//高電平(哪個(gè)引腳為高,哪個(gè)引腳為低隨意)
  32.                
  33.                 PWM_SetCompare1(Speed);//單獨(dú)更改TIM3通道1的CCR值(PA6)
  34.         }
  35. }


  36. void Motor_SetSpeed2(int8_t Speed)//速度值:-100~100
  37. {
  38.         if(Speed>=0)//相對(duì)正轉(zhuǎn)
  39.         {
  40.                 GPIO_SetBits(GPIOA,GPIO_Pin_8);//高電平(哪個(gè)引腳為高,哪個(gè)引腳為低隨意)
  41.                 GPIO_ResetBits(GPIOA,GPIO_Pin_9);//低電平(哪個(gè)引腳為高,哪個(gè)引腳為低隨意)
  42.                
  43.                 PWM_SetCompare2(Speed);//單獨(dú)更改TIM3通道2的CCR值(PA7)
  44.         }
  45.         else//相對(duì)反轉(zhuǎn)
  46.         {
  47.                 GPIO_ResetBits(GPIOA,GPIO_Pin_8);//低電平(哪個(gè)引腳為高,哪個(gè)引腳為低隨意)
  48.                 GPIO_SetBits(GPIOA,GPIO_Pin_9);//高電平(哪個(gè)引腳為高,哪個(gè)引腳為低隨意)
  49.                
  50.                 PWM_SetCompare2(Speed);//單獨(dú)更改TIM3通道2的CCR值(PA7)
  51.         }
  52. }


  53. void Motor_SetSpeed3(int8_t Speed)//速度值:-100~100
  54. {
  55.         if(Speed>=0)//相對(duì)正轉(zhuǎn)
  56.         {
  57.                 GPIO_SetBits(GPIOB,GPIO_Pin_14);//高電平(哪個(gè)引腳為高,哪個(gè)引腳為低隨意)
  58.                 GPIO_ResetBits(GPIOB,GPIO_Pin_15);//低電平(哪個(gè)引腳為高,哪個(gè)引腳為低隨意)
  59.                         
  60.                 PWM_SetCompare3(Speed);//單獨(dú)更改TIM3通道3的CCR值(PB0)               
  61.         }
  62.         else//相對(duì)反轉(zhuǎn)
  63.         {
  64.                 GPIO_ResetBits(GPIOB,GPIO_Pin_14);//低電平(哪個(gè)引腳為高,哪個(gè)引腳為低隨意)
  65.                 GPIO_SetBits(GPIOB,GPIO_Pin_15);//高電平(哪個(gè)引腳為高,哪個(gè)引腳為低隨意)
  66.                
  67.                 PWM_SetCompare3(Speed);//單獨(dú)更改TIM3通道3的CCR值(PB0)
  68.         }
  69. }


  70. void Motor_SetSpeed4(int8_t Speed)//速度值:-100~100
  71. {
  72.         if(Speed>=0)//相對(duì)正轉(zhuǎn)
  73.         {
  74.                 GPIO_SetBits(GPIOB,GPIO_Pin_12);//高電平(哪個(gè)引腳為高,哪個(gè)引腳為低隨意)
  75.                 GPIO_ResetBits(GPIOB,GPIO_Pin_13);//低電平(哪個(gè)引腳為高,哪個(gè)引腳為低隨意)
  76.                
  77.                 PWM_SetCompare4(Speed);//單獨(dú)更改TIM3通道4的CCR值(PB1)
  78.         }
  79.         else//相對(duì)反轉(zhuǎn)
  80.         {
  81.                 GPIO_ResetBits(GPIOB,GPIO_Pin_12);//低電平(哪個(gè)引腳為高,哪個(gè)引腳為低隨意)
  82.                 GPIO_SetBits(GPIOB,GPIO_Pin_13);//高電平(哪個(gè)引腳為高,哪個(gè)引腳為低隨意)
  83.                
  84.                 PWM_SetCompare4(Speed);//單獨(dú)更改TIM3通道4的CCR值(PB1)
  85.         }
  86. }
復(fù)制代碼


  1. #include "stm32f10x.h"                  // Device header
  2. #include "Delay.h"
  3. #include "OLED.h"
  4. #include "Motor.h"//直流電機(jī)
  5. #include "Key.h"
  6. #include "LED.h"

  7. uint8_t KeyNum;//按鍵鍵碼
  8. uint8_t Mode=0;//模式
  9. int8_t Speed;//有符號(hào)的速度變量

  10. // 標(biāo)志位,用于檢測(cè) Key2 是否中斷了 Key1
  11. //uint8_t Key1_Interrupted = 0;

  12. int main(void)
  13. {        
  14.         OLED_Init();
  15.         Motor_Init();
  16.         Key_Init();
  17.         LED_Init13();
  18.         
  19.         OLED_ShowString(1,1,"Speed");
  20.         OLED_ShowString(2,1,"Mode");
  21.         
  22.         while(1)
  23.         {
  24.                 KeyNum=Key_GetNum();
  25.                 if(KeyNum==1)  //只用一個(gè)按鍵切換模式
  26.                 {
  27.                         //Key1_Interrupted = 1; // 設(shè)置中斷標(biāo)志
  28.                         Mode++;//模式
  29.                         Mode%=3;
  30.                 }
  31.                
  32.                 if(Mode==0)
  33.                 {
  34.                         Speed=0;
  35.                         Motor_SetSpeed1(Speed);//速度
  36.                         Motor_SetSpeed2(Speed);//速度
  37.                         Motor_SetSpeed3(Speed);//速度
  38.                         Motor_SetSpeed4(Speed);//速度
  39.                 }
  40.                 else if(Mode==1)
  41.                 {
  42.                         Speed=70;
  43.                         LED3_ON();
  44.                         Motor_SetSpeed1(Speed);//速度
  45.                         Motor_SetSpeed2(Speed);//速度
  46.                         Motor_SetSpeed3(Speed);//速度
  47.                         Motor_SetSpeed4(Speed);//速度
  48.                 }
  49.                 else if(Mode==2)
  50.                 {
  51.                         Speed=-70;
  52.                         LED3_OFF();
  53.                         Motor_SetSpeed1(Speed);//速度
  54.                         Motor_SetSpeed2(Speed);//速度
  55.                         Motor_SetSpeed3(Speed);//速度
  56.                         Motor_SetSpeed4(Speed);//速度
  57.                 }

  58.                 OLED_ShowSignedNum(1,7,Speed,3);//顯示有符號(hào)的十進(jìn)制數(shù)字
  59.                 OLED_ShowNum(2,7,Mode,1);//顯示無(wú)符號(hào)的十進(jìn)制數(shù)字
  60.         }
  61. }

復(fù)制代碼

原理圖: 無(wú)
仿真: 無(wú)
代碼: stm32基礎(chǔ)四驅(qū)小車-代碼.7z (183.61 KB, 下載次數(shù): 0)

作者: small_white    時(shí)間: 2025-7-22 09:52
你好你好,可以看看我的帖子嗎?我在編程時(shí)遇到了問(wèn)題




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 成年人免费观看 | 美女91网站 | 永久黄网站色视频免费观看w | 青娱乐99 | 久久av一区二区三区亚洲 | 一级片在线播放 | 日韩av在线看 | 成人国产综合 | 青青青在线视频 | 黄色免费网站视频 | a天堂在线视频 | 中文字幕av一区 | 中文天堂在线观看 | 成人免费视频国产免费 | 成人黄性视频 | 亚洲视频不卡 | 精品国产一区二区三 | 国产黄av | 日韩精品久久久 | 91在线精品秘密一区二区 | 欧美不卡在线 | 国产裸体永久免费视频网站 | 高跟肉丝丝袜呻吟啪啪网站av | 日韩在线免费观看视频 | 色片在线观看 | 日韩综合一区 | 精品在线看 | 欧美成人激情视频 | 成人免费视频观看视频 | 中文字幕在线免费观看视频 | 久久精品国产一区 | 九九视频在线观看 | 精品一区二区三区四区 | 天天草天天草 | 欧美日韩专区 | a毛片在线观看 | 综合二区| 久久精品亚洲 | 久久精品久久久 | 黄色中文字幕 | 一区二区三区免费在线观看 |