OpenEdv-开源电子网

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

C8T6的串口及编码器问题求助:好像必须用JLINK上电重新下载后才能接收主机传递的信息

[复制链接]

3

主题

5

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2018-6-25
在线时间
5 小时
发表于 2018-7-19 19:49:53 | 显示全部楼层 |阅读模式
1金钱
我的RCT6为驱动版(从机),设置了编码器,加了PID,并用串口总线控制。
现在的情况是,电池给总线供电后,必须要用J-link给从机再次下载,从机才能接收主机传来的信息,控制电机转动,正常工作。
此时拔掉J-link供电,分别复位驱动和主控均能正常工作。
但是当关掉电源的开关,驱动掉电之后,再重新启动时,便不能正常工作。

本来以为是芯片坏了掉电丢失,但我设置了LED,发现LED掉电重新上电后正常工作,就是接收不了总线上的消息(或者是接受了不能处理?)

求助各位大神,此问题怎么解决? 十分感谢

还有个小问题,当重新上电后,电机正常工作后再静止时,我用手转动电机,会出现失控现象。
电机会突然加速,在突然静止,如此快速反复,请问问题是出在编码器上还是PID算法里?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

5

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2018-6-25
在线时间
5 小时
 楼主| 发表于 2018-7-19 20:01:13 | 显示全部楼层
先贴一点代码,如果有想知道哪个位置的代码我可以贴出来  我不确定是硬件的问题还是代码配置的问题?

void Usart1_RX_Mode(void)
{
  USART1->CR2 |= 1 << 5;        //接收使能
       
        //USART1_TX_EN
        GPIO_ResetBits(GPIOB,GPIO_Pin_4);                                                 //PB.4         TX输出低
        //USART1_RX_EN
        GPIO_SetBits(GPIOB,GPIO_Pin_3);                                                 //PB.3 RX输出高
}


void TIM2_IRQHandler(void) //20ms
{                   
       
        if(TIM2->SR&0X0001)//溢出中断
        {
              SpeedRead=Read_Encoder();
                EncoderSpeed=(float)(SpeedRead-30000)/4;   //  单位 mm/s
                PWM=PID_Calc(&PID_Line,EncoderSpeed);
              Motor(motorflag,PWM); //修改速度

               
        }       
        TIM2->SR&=~(1<<0);//清除中断标志位             
}
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-17 11:50

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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