OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2266|回复: 3

新手上路!!求大佬们指点啊!!!

[复制链接]

4

主题

7

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2017-7-20
在线时间
11 小时
发表于 2017-7-22 09:22:14 | 显示全部楼层 |阅读模式
1金钱
要用stm32f103c8控制步进电机旋转角度,要用到AD转换,现在步进电机已经可以转动了,想要用AD那个返回值给步进电机来控制步进电机 的旋转角度,但是步进电机一直没反应啊,本来还转,一加AD就不转了是为什么啊??
求大佬们指点指点啊!!!
int main(void)
{       
          unsigned int s;
         u16 adcx;
         float temp;
         delay_init();       
         
         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//éèÖÃÖD¶ÏóÅÏ輶·Ö×éÎa×é2£o2λÇàÕ¼óÅÏ輶£¬2λÏìó|óÅÏ輶
         uart_init(115200);                 //′®¿ú3õê¼»ˉÎa115200
                 
         Adc_Init();       
         
         while(1)
        {
       
         adcx=Get_Adc_Average(ADC_Channel_1,10);
                               
                qudong(adcx);

         }
int qudong(unsigned int b)
{       
         u32 speed=50;
         u32 i=b;
         
  GPIO_InitTypeDef  GPIO_InitStructure;
         
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);            //ê1ÄüPB,PE¶Ë¿úê±Öó

         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_0|GPIO_Pin_10|GPIO_Pin_11;                            //LED0-->PB.5 ¶Ë¿úÅäÖÃ
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;          //íÆíìêä3ö
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;         //IO¿úËù¶èÎa50MHz

         GPIO_Init(GPIOB, &GPIO_InitStructure);                             //3õê¼»ˉGPIOB.5
  GPIO_SetBits(GPIOB,GPIO_Pin_1);                                        //PB.5 êä3ö¸ß

         //GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;                    //LED1-->PE.5íÆíìêä3ö
  GPIO_Init(GPIOB, &GPIO_InitStructure);                         //3õê¼»ˉGPIO
  GPIO_SetBits(GPIOB,GPIO_Pin_0);                          //PE.5 êä3ö¸ß           
         
         GPIO_Init(GPIOA, &GPIO_InitStructure);                         //3õê¼»ˉGPIO
  GPIO_SetBits(GPIOB,GPIO_Pin_10);
         
         GPIO_Init(GPIOA, &GPIO_InitStructure);                         //3õê¼»ˉGPIO
  GPIO_SetBits(GPIOB,GPIO_Pin_11);
       
  while(i--)
        {
            //GPIO_ResetBits(GPIOB,GPIO_Pin_0);
           // GPIO_SetBits(GPIOB,GPIO_Pin_1);
                PBout(0)=1;
                PBout(1)=0;
                PBout(10)=0;
                PBout(11)=0;
                Delay(speed);
                //GPIO_SetBits(GPIOB,GPIO_Pin_0);
                //GPIO_ResetBits(GPIOB,GPIO_Pin_1);
                PBout(0)=0;
                PBout(1)=1;
                PBout(10)=0;
                PBout(11)=0;
                Delay(speed);
               
                PBout(0)=0;
                PBout(1)=0;
                PBout(10)=1;
                PBout(11)=0;
                Delay(speed);
               
                PBout(0)=0;
                PBout(1)=0;
                PBout(10)=0;
                PBout(11)=1;
                Delay(speed);
        }
                PBout(0)=0;
                PBout(1)=0;
                PBout(10)=0;
                PBout(11)=0;
                Delay(speed);
        i=b;
         while(i--)
        {
            //GPIO_ResetBits(GPIOB,GPIO_Pin_0);
           // GPIO_SetBits(GPIOB,GPIO_Pin_1);
                PBout(0)=0;
                PBout(1)=0;
                PBout(10)=0;
                PBout(11)=1;
                Delay(speed);
                //GPIO_SetBits(GPIOB,GPIO_Pin_0);
                //GPIO_ResetBits(GPIOB,GPIO_Pin_1);
                PBout(0)=0;
                PBout(1)=0;
                PBout(10)=1;
                PBout(11)=0;
                Delay(speed);
               
                PBout(0)=0;
                PBout(1)=1;
                PBout(10)=0;
                PBout(11)=0;
                Delay(speed);
               
                PBout(0)=1;
                PBout(1)=0;
                PBout(10)=0;
                PBout(11)=0;
                Delay(speed);
        }
        return 0;
}


最佳答案

查看完整内容[请看2#楼]

大佬!!那个问题已经弄好了,但是用电位器转换AD调节控制步进电机转动角度的时候不均匀是咋回事啊???就是有时轻轻转一下电位器步进电机就转好多,有时电位器转很多才转好小角度??求大佬指点啊!!!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

7

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2017-7-20
在线时间
11 小时
 楼主| 发表于 2017-7-22 09:22:15 | 显示全部楼层

大佬!!那个问题已经弄好了,但是用电位器转换AD调节控制步进电机转动角度的时候不均匀是咋回事啊???就是有时轻轻转一下电位器步进电机就转好多,有时电位器转很多才转好小角度??求大佬指点啊!!!
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165359
金钱
165359
注册时间
2010-12-1
在线时间
2110 小时
发表于 2017-7-23 00:25:08 | 显示全部楼层
帮顶
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165359
金钱
165359
注册时间
2010-12-1
在线时间
2110 小时
发表于 2017-7-24 00:45:12 | 显示全部楼层
hbl 发表于 2017-7-23 10:31
大佬!!那个问题已经弄好了,但是用电位器转换AD调节控制步进电机转动角度的时候不均匀是咋回事啊???就 ...

你自己分析下原始数据,就知道问题在哪里了
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-12-23 08:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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