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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

stm32f4單片機(jī)避障簡(jiǎn)易程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:432626 發(fā)表于 2018-11-24 22:19 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
參加比賽的程序分享

單片機(jī)源程序如下:
  1. #include"sys.h"
  2. #include"delay.h"
  3. //系統(tǒng)頭文件
  4. #include"timer.h"
  5. #include"gpioin.h"
  6. //定時(shí)器頭文件
  7. #include"l298nin.h"
  8. #include"pwm.h"
  9. //電機(jī)驅(qū)動(dòng)頭文件
  10. #include"oled.h"
  11. #include"iic.h"
  12. //顯示屏頭文件
  13. #include"motor.h"
  14. #include"calculate&pi.h"
  15. //編碼器頭文件


  16. //全局變量
  17. int Vocality[2];//速度值 取值范圍在0~95之間
  18. int Pwm[2];
  19. int Encoder_Date[2];

  20. extern int flagA,flagB,flagC,flagD;
  21. extern int finishflag8;

  22. int main()
  23. {
  24.         Vocality[0] = 78;               
  25.         Vocality[1] = 78;
  26.        
  27.   delay_init(168);
  28.         led_init();
  29.        
  30.         gpioin_init();
  31.         l298nin_init();
  32.        
  33.         TIM3_Encoder_init();
  34.         TIM4_Encoder_init();//編碼器信號(hào)捕捉初始化
  35.        
  36.         TIM13_pwm_init(499,8399);
  37.         TIM14_pwm_init(499,8399);//pwm輸出初始化
  38.        
  39.         IIC_Init();
  40.         OLED_Init();//oled初始化
  41.        
  42.         TIM2_init(499,8399);//每50ms進(jìn)入一次定時(shí)器中斷,掃描光電開(kāi)關(guān)的情況
  43.         TIM7_CAL_init(499,8399);//每0.1s進(jìn)入一次定時(shí)器中斷,進(jìn)行pi控速
  44.        

  45.                
  46.         while(1)
  47.         {                               
  48.                                          motor_straight();                                 
  49. //由光電開(kāi)關(guān)0進(jìn)行卡邊
  50.                                         if(gdian0)
  51.                                         {
  52.                                                 motor_only_left();
  53.                                                 while(gdian0);
  54.                                                 motor_straight();
  55.                                         }
  56. //由光電開(kāi)關(guān)1進(jìn)行轉(zhuǎn)彎
  57.                                                 if(!gdian1)
  58.                                         {
  59.                                                 if(flagA) finishflag8 = 0;
  60.                                                 motor_only_right();
  61.                                                 while(!gdian1);
  62.                                                 delay(1500);
  63.                                                 if(!flagB)
  64.                                                 {
  65.                                                         delay(1200);
  66.                                                 }
  67.                                                 motor_straight();
  68.                                                 if(flagC) flagD = 1;
  69.                                                 if(flagB) flagC = 1;       
  70.                                                 if(flagA) flagB = 1;
  71.                                                 flagA  = 1;
  72.                                         }
  73.         }
  74.        
  75. }
復(fù)制代碼

pwm:
  1. //pwm調(diào)速函數(shù),用于調(diào)整EnA和EnB的電平



  2. #include"pwm.h"
  3. #include"sys.h"



  4. void TIM13_pwm_init(u16 arr,u16 psc)  //PF8引腳的控制即EnA
  5. {       
  6.         GPIO_InitTypeDef                                GPIO_Initstru;
  7.         TIM_TimeBaseInitTypeDef                        TIM_TimeBaseInitstru;
  8.         TIM_OCInitTypeDef                                             TIM_OCInitstru;//結(jié)構(gòu)體指針變量
  9.        
  10.         RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM13,ENABLE);
  11.         RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE);//時(shí)鐘初始化
  12.        
  13.         GPIO_PinAFConfig(GPIOF,GPIO_PinSource8,GPIO_AF_TIM13);//復(fù)用功能映射
  14.        
  15.         GPIO_Initstru.GPIO_Mode  = GPIO_Mode_AF;
  16.         GPIO_Initstru.GPIO_OType = GPIO_OType_PP;
  17.         GPIO_Initstru.GPIO_Pin  = GPIO_Pin_8;
  18.         GPIO_Initstru.GPIO_Speed = GPIO_Speed_50MHz;
  19.                                 GPIO_Init(GPIOF,&GPIO_Initstru);//GPIO口初始化
  20.        
  21.         TIM_TimeBaseInitstru.TIM_Period = arr;
  22.         TIM_TimeBaseInitstru.TIM_Prescaler = psc;
  23.         TIM_TimeBaseInitstru.TIM_CounterMode  = TIM_CounterMode_Up;
  24.                                 TIM_TimeBaseInit(TIM13,&TIM_TimeBaseInitstru);//定時(shí)器初始化
  25.        
  26.         TIM_OC1PreloadConfig(TIM13,TIM_OCPreload_Enable);
  27.         TIM_ARRPreloadConfig(TIM13,ENABLE);//輸出比較通道預(yù)裝載
  28.        
  29.         TIM_OCInitstru.TIM_OCMode = TIM_OCMode_PWM1;
  30.         TIM_OCInitstru.TIM_OCPolarity = TIM_OCPolarity_Low;
  31.         TIM_OCInitstru.TIM_OutputState = TIM_OutputState_Enable;
  32.         TIM_OCInitstru.TIM_Pulse = 0;
  33.                                         TIM_OC1Init(TIM13,&TIM_OCInitstru);//輸出比較通道初始化
  34.                                        
  35.         TIM_Cmd(TIM13,ENABLE);//打開(kāi)定時(shí)器
  36. }       
  37.        
  38.        
  39.        
  40. void TIM14_pwm_init(u16 arr,u16 psc)  //PF9引腳的控制即EnB
  41. {       
  42.         GPIO_InitTypeDef                                GPIO_Initstru;
  43.         TIM_TimeBaseInitTypeDef                        TIM_TimeBaseInitstru;
  44.         TIM_OCInitTypeDef                                             TIM_OCInitstru;//結(jié)構(gòu)體指針變量
  45.        
  46.         RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM14,ENABLE);
  47.         RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE);//時(shí)鐘初始化
  48.        
  49.         GPIO_PinAFConfig(GPIOF,GPIO_PinSource9,GPIO_AF_TIM14);//復(fù)用功能映射
  50.        
  51.         GPIO_Initstru.GPIO_Mode  = GPIO_Mode_AF;
  52.         GPIO_Initstru.GPIO_OType = GPIO_OType_PP;
  53.         GPIO_Initstru.GPIO_Pin  = GPIO_Pin_9;
  54.         GPIO_Initstru.GPIO_Speed = GPIO_Speed_50MHz;
  55.                                 GPIO_Init(GPIOF,&GPIO_Initstru);//GPIO口初始化
  56.        
  57.         TIM_TimeBaseInitstru.TIM_Period = arr;
  58.         TIM_TimeBaseInitstru.TIM_Prescaler = psc;
  59.         TIM_TimeBaseInitstru.TIM_CounterMode  = TIM_CounterMode_Up;
  60.                                 TIM_TimeBaseInit(TIM14,&TIM_TimeBaseInitstru);//定時(shí)器初始化
  61.        
  62.         TIM_OC1PreloadConfig(TIM14,TIM_OCPreload_Enable);
  63.         TIM_ARRPreloadConfig(TIM14,ENABLE);//輸出比較通道預(yù)裝載
  64.        
  65.         TIM_OCInitstru.TIM_OCMode = TIM_OCMode_PWM1;
  66.         TIM_OCInitstru.TIM_OCPolarity = TIM_OCPolarity_Low;
  67.         TIM_OCInitstru.TIM_OutputState = TIM_OutputState_Enable;
  68.         TIM_OCInitstru.TIM_Pulse = 0;
  69.                                         TIM_OC1Init(TIM14,&TIM_OCInitstru);//輸出比較通道初始化
  70.                                        
  71.         TIM_Cmd(TIM14,ENABLE);//打開(kāi)定時(shí)器
  72. }
復(fù)制代碼

所有資料51hei提供下載:
32單片機(jī).rar (482.16 KB, 下載次數(shù): 11)


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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕精品一区二区三区在线 | 国产精品久久久久av | 国产日韩欧美一区二区 | 91xxx在线观看 | 99re国产精品 | 一级aaaaaa毛片免费同男同女 | 亚洲欧美日韩中文字幕一区二区三区 | 亚洲精品视频一区二区三区 | 成人影院网站ww555久久精品 | 国产精品日日做人人爱 | 日本高清中文字幕 | 国产精品久久久久永久免费观看 | 日韩在线中文 | 中文字幕成人在线 | 男人的天堂中文字幕 | 亚洲一区二区在线电影 | 99国内精品久久久久久久 | 国产精久久久久久久妇剪断 | 精品美女 | 国产亚洲精品美女久久久久久久久久 | 亚洲欧美日韩国产综合 | 国产精品久久久久久网站 | 7799精品视频天天看 | 丁香六月伊人 | av网站在线播放 | 成人久久久 | 日韩一二区 | 久在线| 国产高清在线精品 | 久久久久久久电影 | 国产一区二区电影 | 日韩中文字幕在线视频 | 国产精品7777777 | 久草视频在 | 欧美一区免费 | 一级黄色日本片 | 国产精品久久久久久中文字 | 亚洲三区在线观看 | 亚洲国产精品一区 | 国产成人精品久久二区二区 | 亚洲成人a v |