找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 406|回复: 1
打印 上一主题 下一主题
收起左侧

有错误 STM32单片机双电机团环跟随控制程序,使用500线编码器

[复制链接]
跳转到指定楼层
楼主
ID:640768 发表于 2023-11-21 17:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
基于STM32的双电机团环跟随控制,使用500线编码器

单片机源程序如下:
  1. #include "main.h"
  2. #include "pwm.h"
  3. #include "SDS.h"
  4. #include "DataScope_DP.h"


  5. u32 SET_SPEED=300;
  6. u8 Key=0;        
  7. Pid_struct Main_pid_parameter,Slave_pid_parameter;

  8. int main(void)
  9. {
  10.     unsigned char i;          //计数变量
  11.     unsigned char Send_Count; //串口需要发送的数据个数

  12. /********中断优先级设置********/   
  13.     Rcc_init();
  14.     NVIC_Config();

  15.     delay_init();
  16.     PWM_Init(3999,0);    //0分频。PWM频率=72000/(4000*1)=14Khz
  17.   
  18.     USART1_Config();
  19.     KEY_Init();   
  20.    
  21.     TIM1_init();
  22.     TIM2_init();   // TIM1/2 编码器
  23.    
  24.     TIM4_Init(4999,71);   // 5ms 编码器计时  
  25.    
  26.     Speed_PIDInit(&Main_pid_parameter);    //PID初始化
  27.     Speed_PIDInit(&Slave_pid_parameter);
  28.                
  29. while(1){
  30.      
  31. //      Send_Count = DataScope_Data_Generate(3); //生成10个通道的 格式化帧数据,返回帧数据长度
  32. //            for( i = 0 ; i < Send_Count; i++)  //循环发送,直到发送完毕   
  33. //            {
  34. //              while((USART1->SR&0X40)==0);  
  35. //                USART1->DR = DataScope_OutPut_Buffer[i]; //从串口丢一个字节数据出去      
  36. //             }
  37. //        
  38. //      delay_ms(5); //20fps, 帧间隔时间。 不同电脑配置及 USB-TTL 设备的优劣均会影响此时间的长短,建议实测为准。  
  39.    
  40. }   }


  41. void NVIC_Config(void)
  42. {
  43.          NVIC_InitTypeDef NVIC_InitStructure;                                          //复位NVIC寄存器为默认值        
  44.      NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);           //设置中断优先级组
  45.         
  46.         
  47.      NVIC_InitStructure.NVIC_IRQChannel = TIM4_IRQn;   // 10ms 中断
  48.          NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0 ;
  49.          NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;               
  50.          NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;                        
  51.          NVIC_Init(&NVIC_InitStructure);        
  52.          
  53.       NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
  54.       NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority =0;
  55.       NVIC_InitStructure.NVIC_IRQChannelSubPriority =2;
  56.       NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  57.       NVIC_Init(&NVIC_InitStructure);  
  58. }


复制代码

原理图: 无
仿真: 无
代码: Double_motor_STM32.7z (298.44 KB, 下载次数: 11)

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:228452 发表于 2023-11-23 08:13 | 只看该作者
This can't be used without schematic
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表