XTXB 发表于 2019-7-21 17:42:29

用stc15w和旧光驱移植arduino写字机GRBL之十:串口数据接收解析

本帖最后由 XTXB 于 2019-7-21 20:25 编辑

用stc15w4k32s4和旧光驱移植arduino写字机GRBL连载:
用stc15w4k32s4和旧光驱移植arduino写字机GRBL之一:机架搭建
https://www.amobbs.com/thread-5701202-1-1.html

用stc15w4k32s4和旧光驱移植arduino写字机GRBL之二:PCB制作
https://www.amobbs.com/thread-5701573-1-1.html

用stc15w4k32s4和旧光驱移植arduino写字机GRBL之三:Bresenham算法
https://www.amobbs.com/thread-5701994-1-1.html

用stc15w4k32s4和旧光驱移植arduino写字机GRBL之四:FIFO算法
https://www.amobbs.com/thread-5702730-1-1.html

用stc15w4k32s4和旧光驱移植arduino写字机GRBL之五:G_Code
https://www.amobbs.com/thread-5702784-1-1.html

用stc15w4k32s4和旧光驱移植arduino写字机GRBL之六:运动控制motion_control
https://www.amobbs.com/thread-5703165-1-1.html

用stc15w4k32s4和旧光驱移植arduino写字机GRBL之七:前瞻算法1
https://www.amobbs.com/thread-5703989-1-1.html

用stc15w4k32s4和旧光驱移植arduino写字机GRBL之八:前瞻算法2
https://www.amobbs.com/thread-5705269-1-1.html

用stc15w4k32s4和旧光驱移植arduino写字机GRBL之九:产生步进脉冲 Stepper
用stc15w和旧光驱移植arduino写字机GRBL之九:步进脉冲Stepper
https://www.amobbs.com/thread-5707262-1-1.html

用stc15w和旧光驱移植arduino写字机GRBL之十:串口数据接收解析:

1 上位机发出的指令(字符串)通过串口接收中断,存储于循环队列rx_buffer[]中,函数protocol_process()将队列中的数据以\r\n为分割,
   存于line[]中,line中的数据去掉空格和注释,全为大写。每接收一行\r\n数据,GBRL通过串口返回字符OK。
2 函数uint8_t protocol_execute_line(char *line) 解析line[]中数据。
   如果是$开头,作为命令处理。
   如果是其他,交由函数uint8_t gc_execute_line(char *line) 作为Gcode处理。
3 line[]中的数据全部都是字符串格式(G01X10Y10),在gcode.cpp中
   函数static int next_statement(char *letter, float *float_ptr, char *line, uint8_t *char_counter)
   将字符串分解为字符串letter,如G X Y Z,和数值value,如02 12.35。
   将G后面的数值作为命令,将XYZ后面的数值作为当前点的坐标target[]。
4 有了当前点的坐标target[],接下来就进入之前探讨过的运动算法motion_control,前瞻算法planner,插补算法Bresenham了。

为了调试及验证,现学现用,做了个小程序发送命令和G代码:

先跑起来看看(在头条有录像),没有加减速,加了二进制时钟(DS3231),蓝牙串口:

想尝鲜把玩了一下stc8,主控改为STC8A8K64S4A12,8KRAM用了2k不到,实时二进制时钟无压力,舵机用高级PWM,不用定时器占中断。

foxpro2005 发表于 2019-7-21 21:58:39

哈哈,厉害! 我之前也用STC8A8K64S4A12的8路PWM功能 驱动8路舵机,挺爽的。

PCBBOY1991 发表于 2019-10-5 10:19:42

请教下楼主,是不是移植到C8051上也是同样的道理啊?

XTXB 发表于 2019-10-5 11:22:38

PCBBOY1991 发表于 2019-10-5 10:19
请教下楼主,是不是移植到C8051上也是同样的道理啊?

都是51内核,估计差别很小

PCBBOY1991 发表于 2019-10-5 12:14:52

XTXB 发表于 2019-10-5 11:22
都是51内核,估计差别很小

好的,谢谢!有空研究下,顺便玩一下C8051。

thorn 发表于 2019-10-5 12:17:36

好玩,看来需要去库房翻几个光驱了

GZLJZ 发表于 2019-10-5 13:40:30

不错,谢谢分享!

1785345205 发表于 2019-10-5 23:42:28

发送命令和G代码小程序这个好

FESENS 发表于 2019-10-14 20:50:07

这个资料很不错,先收藏了

liang_work 发表于 2019-12-23 21:50:00


不错,顶起,谢谢分享!

markdif 发表于 2019-12-24 17:01:16

V5,涨见识了。。

ronic 发表于 2019-12-26 08:16:06

顶起,好玩

gaolf_2012 发表于 2019-12-26 12:31:08

有趣啊,老师罚写xx遍再也不是问题了

kinsno 发表于 2019-12-26 21:58:35

XTXB 发表于 2019-10-5 11:22
都是51内核,估计差别很小

我来给贴子添把火。。。

lintel 发表于 2019-12-26 22:58:05

顶顶顶,顶起来。。。

feibagezib 发表于 2019-12-28 17:50:28

这个资料很不错,收藏..

youlongam 发表于 2019-12-28 19:33:12

楼主,手机的上位机怎么开发的啊

jssd 发表于 2019-12-29 09:54:20

youlongam 发表于 2019-12-28 19:33
楼主,手机的上位机怎么开发的啊

android studio

XTXB 发表于 2019-12-29 11:26:36

youlongam 发表于 2019-12-28 19:33
楼主,手机的上位机怎么开发的啊

微信小程序
https://developers.weixin.qq.com/miniprogram/dev/framework/quickstart/getstart.html#你的第一个小程序

sf49ers 发表于 2019-12-29 15:50:00

赞,很不错。
另外请问,系统VCC是5V经过4007,这是基于什么考虑

XTXB 发表于 2019-12-31 08:02:03

ISP下载时直接串口线供电,不用接7.4v。

XTXB 发表于 2019-12-31 08:02:46

sf49ers 发表于 2019-12-29 15:50
赞,很不错。
另外请问,系统VCC是5V经过4007,这是基于什么考虑


ISP下载时直接串口线供电,不用接7.4v。

zhw950 发表于 2020-1-27 10:24:41

感谢楼主分享,有空弄一个玩。

javabean 发表于 2020-2-24 13:30:49

厉害了,买个光驱试试

智慧星 发表于 2020-3-9 22:00:43

谢谢分享,正在学习中。有没有电脑端的上位机没?

meirenai 发表于 2020-12-3 03:44:21

大佬用的是哪个版本的grbl移植的?

armok. 发表于 2023-10-25 17:14:16

帖子移动通知:
原分论坛:8051/STC32【已下线】
目标分论坛:51单片机
移动时间:0小时之后
页: [1]
查看完整版本: 用stc15w和旧光驱移植arduino写字机GRBL之十:串口数据接收解析