打印
[51单片机]

电机控制,串口通信冲突

[复制链接]
1978|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
心印菩提|  楼主 | 2015-8-22 10:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
电机驱动写好了
但是发现这样一个问题
如果我用串口收上位机的指令,控制电机,没有问题
但是一但我使用串口发数据,比如我要发转速数据给上位机,发一次电机就噔的卡一下,高转速的时候卡一下直接就停转了
开始我发数据是使用的串口中断,收到上位机发的指令了,就发出去一个转速数据,发现这样卡电机
然后我把发数据放到定时器中断里面,定时发,还是卡
请问谁知道这是怎么回事呢
非常感谢
我用的C8051F040

相关帖子

沙发
心印菩提|  楼主 | 2015-8-22 13:14 | 只看该作者
我发现卡顿是由于printf函数引起的,puts也一样

使用特权

评论回复
板凳
心印菩提|  楼主 | 2015-8-22 13:15 | 只看该作者
不知是不是因为这函数占的时间太长了引起的,请问有没有解决的办法呢

使用特权

评论回复
地板
JY-DX-JY| | 2015-8-22 15:32 | 只看该作者
不要用printf函数,自己写一个串口发送子程序。

使用特权

评论回复
5
joyme| | 2015-8-22 15:36 | 只看该作者
中断发送,不要用有延时的函数

使用特权

评论回复
6
ningling_21| | 2015-8-22 15:39 | 只看该作者
自己写串口收发函数

使用特权

评论回复
7
mmuuss586| | 2015-8-22 19:05 | 只看该作者

中断程序写的太长了

使用特权

评论回复
8
libangyi| | 2015-8-22 20:53 | 只看该作者
用示波器看看你的控制电机的引脚,或者你系统电源纹波

使用特权

评论回复
9
songchenping| | 2015-8-22 21:17 | 只看该作者
你控制电机的方式是个什么样子啊。

使用特权

评论回复
10
心印菩提|  楼主 | 2015-8-22 21:55 | 只看该作者
mmuuss586 发表于 2015-8-22 19:05
中断程序写的太长了

请问串口中断长了会有什么影响吗?
定时器中断太长怕他一个中断没执行完下一个中断就到达,这比较容易理解
但是串口中断,收发都是我自己控制的,他即使被其他中断打断了,也是可以恢复的撒

使用特权

评论回复
11
心印菩提|  楼主 | 2015-8-22 21:58 | 只看该作者
songchenping 发表于 2015-8-22 21:17
你控制电机的方式是个什么样子啊。

IR2233
上管自举驱动
全用NMOS
控制方式用H_PWM--L_ON

使用特权

评论回复
12
nixianmin| | 2015-8-22 22:37 | 只看该作者
肯定时间没控制好,如果在中断发送数据的时候,数据长了你是不是要死等,这样造成驱动换相不及时或者其他问题
试试把串口发送,放到主循环里

使用特权

评论回复
13
mmuuss586| | 2015-8-23 11:37 | 只看该作者
心印菩提 发表于 2015-8-22 21:55
请问串口中断长了会有什么影响吗?
定时器中断太长怕他一个中断没执行完下一个中断就到达,这比较容易理 ...

另外啥电机呢?

使用特权

评论回复
14
心印菩提|  楼主 | 2015-8-23 13:14 | 只看该作者

24V 250W无刷直流电机

使用特权

评论回复
15
huang1007| | 2015-8-24 10:07 | 只看该作者
肯定是printf方法用时太长产生的问题,你这个方法用时过长,控制电机的主方法就被阻塞了.自己写一个缓冲区,发数据的时候把数据写入到缓冲区,然后利用定时器中断或者串口发送中断从缓冲区取出一个字节,然后发送

使用特权

评论回复
16
心印菩提|  楼主 | 2015-8-24 11:43 | 只看该作者
huang1007 发表于 2015-8-24 10:07
肯定是printf方法用时太长产生的问题,你这个方法用时过长,控制电机的主方法就被阻塞了.自己写一个缓冲区,发 ...

看了很多回复我基本理解了
你说的方法我觉得很有道理
不过对我这种边学边搞的人感觉略难啊………

使用特权

评论回复
17
mmuuss586| | 2015-8-24 12:17 | 只看该作者
心印菩提 发表于 2015-8-23 13:14
24V 250W无刷直流电机

那就只能好好查下程序了,设置串口中断优先级看看;

不过我用的是M4,控制2个无刷,和你有所区别;

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

39

帖子

0

粉丝