Grbl在51单片机上的验证 STC12C5A60S2

纵观网络上各位大神在数控方面的神作,却没有什么人做一些分享,那么,从我开始好了,这里只做了STC12C5A60S2这种51单片机成功对接Grbl上位机软件以及将接受到的G代码转换为float型坐标,验证这么一个功能,为以后深入编写电机控制,做一个基础铺垫。

这里所完成的功能很简单,所以代码也不难,主要是了解Grbl通信协议,以及G代码解析两个点,下面,我带大家来解读这两个点。

1、了解Grbl

在百度文库上,我上传了基本的协议,可以点击查看

http://wenku.baidu.com/link?url=Mu-JK2FGfv9pStTQqdVxxTF4I7PfQG8PdMl-zhS7tkEWjyNFvraf9uLpgAh7CS28bGrck3vxgHp5r262d6N9WGxBj9CvipySgCYm3v1nhje


这里我就不赘述了。

但是有一点,通信就是,你问我一句,我回你一句,所以是上位机先问下单片机:你是不是Grbl设备啊?,然后单片机得回答说:是啊,我是Grbl xx,然后上位机收到回复后才开始建立通信,这一点,在下面程序里的setup();完成

通信完全建立好后,就进入loop();函数里面,这时就等待上位机发送G代码了,上位机每次发送一行代码,单片机接受后,处理完成后,回复ok,上位机才会发送下一句。

基本就是这些了,其实很简单是不是。


2、将通信协议写入程序代码中,并完成G代码解析:


首先你应该有一点编程基础,然后应该就不难了。


其中动用的主要子函数是

Echo_Position(float x,float y, float z);
用来反馈当前坐标的

Analysis_Gcode(unsigned char *p_buffer);
用来解析G代码的


以下是函数的主体。

#include"STC12C5A60S2.h"
#include"UART.h"
#include"M_string.h"
#include"stdio.h"
enum axis{X_AXIS=0,Y_AXIS,Z_AXIS,E_AXIS};
xdata float Machine_Coordinates[4]
  • 10
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值