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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6321|回復: 6
打印 上一主題 下一主題
收起左側

STM32+L298N+PID驅動4路PWM波的程序源碼

[復制鏈接]
跳轉到指定樓層
樓主
//PB4 LEFT PC4
//PB5 RIGHT PC5
//PB0 FORTH PC0
//PB1 BACK PC1

單片機源程序如下:
  1. #include "sys.h"
  2. #include "l298n.h"
  3. #include "usart.h"


  4. void l298n_TIM3_PWM_init(u16 arr,u16 psc)
  5.         //使用TIM3輸出四路pwm波
  6. {
  7.         GPIO_InitTypeDef GPIO_InitStructure;//定義結構體
  8.         TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;//定義初始化結構體
  9.         TIM_OCInitTypeDef  TIM_OCInitStructure;//定義結構體
  10.         
  11.         RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //使能定時器3時鐘        
  12.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC  | RCC_APB2Periph_AFIO, ENABLE);//使能GPIO外設和AFIO復用功能模塊時鐘
  13.         GPIO_PinRemapConfig(GPIO_FullRemap_TIM3, ENABLE); //選擇Timer3完全重映像  
  14.         GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//禁用JTAG

  15.         

  16.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9; //使用TIM3下的TIM_CH1/TIM_CH2/TIM_CH3/TIM_CH4
  17.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //復用推挽功能
  18.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  19.         
  20.         GPIO_Init(GPIOC, &GPIO_InitStructure);//初始化引腳
  21.         
  22.         
  23.         //初始化TIM3
  24.         TIM_TimeBaseStructure.TIM_Period = arr; //自動重裝載寄存器的值
  25.         TIM_TimeBaseStructure.TIM_Prescaler =psc; //TIMX預分頻的值
  26.         TIM_TimeBaseStructure.TIM_ClockDivision = 0; //時鐘分割
  27.         TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //向上計數
  28.         
  29.         TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根據以上功能對定時器進行初始化
  30.         
  31.         
  32.         TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;//選擇定時器模式,TIM脈沖寬度調制模式2
  33.         TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;//比較輸出使能
  34.         TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;//輸出比較極性低
  35.         
  36.         
  37.         TIM_OC1PreloadConfig(TIM3, TIM_OCPreload_Enable);
  38.         TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable);
  39.         TIM_OC3PreloadConfig(TIM3, TIM_OCPreload_Enable);
  40.         TIM_OC4PreloadConfig(TIM3, TIM_OCPreload_Enable);
  41.         //使能預裝載寄存器
  42.         
  43.         TIM_OC1Init(TIM3, &TIM_OCInitStructure);
  44.         TIM_OC2Init(TIM3, &TIM_OCInitStructure);
  45.         TIM_OC3Init(TIM3, &TIM_OCInitStructure);
  46.         TIM_OC4Init(TIM3, &TIM_OCInitStructure);
  47.         //根據結構體信息進行初始化
  48.         
  49.         TIM_Cmd(TIM3, ENABLE);  //使能定時器TIM3
  50. }
復制代碼
  1. #include "stdio.h"
  2. #include "sys.h"
  3. #include "motor_pid.h"

  4. #define PITCH 0
  5. #define YAW 0
  6. #define ROW 0

  7. //定義結構體變量
  8. PIDTypeDef mypid;

  9. void PID_init()//結構體初始化
  10. {
  11.         //實際值
  12.         mypid.ActualPitch = 0;
  13.         mypid.ActualRow = 0;
  14.         mypid.ActualYaw = 0;
  15.         
  16.         //設定值
  17.         mypid.SetPitch = 0;
  18.         mypid.SetRow = 0;
  19.         mypid.SetYaw = 0;
  20.         
  21.         //偏差
  22.         mypid.err_pitch = 0;
  23.         mypid.err_row = 0;
  24.         mypid.err_yaw = 0;
  25.         
  26.         //最近偏差
  27.         mypid.err_last_pitch = 0;
  28.         mypid.err_last_row = 0;
  29.         mypid.err_last_yaw = 0;
  30.         
  31.         //歷史偏差
  32.         mypid.integral_pitch = 0;
  33.         mypid.integral_row = 0;
  34.         mypid.integral_yaw = 0;
  35.         
  36.         //比例 微分 積分
  37.         mypid.Kp_left = 0;
  38.         mypid.Ki_left = 0;
  39.         mypid.Kd_left = 0;
  40.         
  41.         mypid.Kp_right = 0;
  42.         mypid.Ki_right = 0;
  43.         mypid.Kd_right = 0;
  44.         
  45.         mypid.Kp_forth = 0;
  46.         mypid.Ki_forth = 0;
  47.         mypid.Kd_forth = 0;
  48.         
  49.         mypid.Kp_back;
  50. }

  51. void PID_6050(int pitch,int yaw,int row)
  52.         //pitch 俯仰角
  53.         //yaw 偏航角
  54.         //row 翻滾角
  55. {
  56.         mypid.SetPitch = PITCH;
  57.         mypid.SetRow = ROW;
  58.         mypid.SetYaw = YAW;
  59.         
  60.         mypid.ActualPitch = pitch;
  61.         mypid.ActualRow = row;
  62.         mypid.ActualYaw = yaw;
  63.         
  64.         mypid.err_pitch = mypid.SetPitch - mypid.ActualPitch;
  65.         mypid.err_row = mypid.SetRow - mypid.ActualRow;
  66.         mypid.err_yaw = mypid.SetYaw - mypid.ActualYaw;
  67.         
  68.         mypid.integral_pitch += mypid.integral_pitch;
  69.         mypid.integral_row += mypid.integral_row;
  70.         mypid.integral_yaw += mypid.integral_yaw;
  71.         
  72.         mypid.inLeft =
  73.         mypid.inRight =
  74.         mypid.inForth =
  75.         mypid.inBack =
  76.         
  77.         pi
  78. }
復制代碼


所有資料51hei提供下載:
比賽程序.rar (295.06 KB, 下載次數: 179)




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

使用道具 舉報

沙發
ID:277190 發表于 2018-8-20 21:43 | 只看該作者
缺少文件,不能編譯

stm.png (186.5 KB, 下載次數: 74)

錯誤

錯誤
回復

使用道具 舉報

板凳
ID:277190 發表于 2018-8-20 21:45 | 只看該作者
缺少文件,"no source": Error:  #5: cannot open source input file "..\HARDWARE\SELECT\select.c": No such file or directory
回復

使用道具 舉報

地板
ID:252331 發表于 2019-4-5 12:11 來自手機 | 只看該作者
厲害。
回復

使用道具 舉報

5#
ID:421308 發表于 2019-7-23 09:41 | 只看該作者
編譯不了
回復

使用道具 舉報

6#
ID:496604 發表于 2019-7-24 22:17 | 只看該作者
參考一下就行了,不支持拿來主義
回復

使用道具 舉報

7#
ID:587843 發表于 2019-8-2 16:18 | 只看該作者
堂堂 發表于 2019-7-24 22:17
參考一下就行了,不支持拿來主義

參考也沒法啊
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产成人一区二区三区 | 欧美精品区 | 中文字幕日韩一区 | 日本午夜一区 | 国产xxxx搡xxxxx搡麻豆 | 久久久久国产 | 色婷婷激情 | 精品视频在线播放 | 日韩精品在线免费 | 国产在线区 | 国产精品99久久久久久人 | 日韩精品免费播放 | 免费h在线 | tube国产| 日韩欧美一区二区三区四区 | 日韩成人免费在线视频 | 欧美日韩中文字幕在线播放 | 亚洲国产aⅴ成人精品无吗 亚洲精品久久久一区二区三区 | 亚洲男人天堂 | 一区二区福利视频 | 亚洲精品视频二区 | 国外激情av | 国产精品资源在线 | 国产精品美女www | 亚洲欧美综合精品久久成人 | 日韩精品一区二区三区中文在线 | 一区不卡在线观看 | 日本在线免费看最新的电影 | 久久精品免费一区二区 | 中文字幕在线免费观看 | 久久久久久免费看 | 欧美日韩成人在线 | 亚洲成人免费视频在线 | 亚洲一区综合 | 国产黄色大片 | 久久久久久久成人 | 久久精品国产一区 | 亚洲91精品 | 91av免费观看 | 欧美一级网站 | 亚洲午夜精品一区二区三区他趣 |