![Arduino项目开发:物联网应用](https://wfqqreader-1252317822.image.myqcloud.com/cover/277/27563277/b_27563277.jpg)
2.2 模块介绍
本项目主要包括主程序模块、串口通信模块、指令接收及指令队列模块、设置及存储模块、状态探测模块、步进电机控制模块、轴运动控制模块、G代码处理模块和绘图模块。下面分别给出各模块的功能介绍及相关代码。
2.2.1 主程序模块
该模块提供了各模块之间的联系,按流程调用各模块。
1.功能介绍
library.h为项目的头文件,包括需要的标准库文件和各个模块的库文件。main.c对系统进行初始化,调用串口通信、设置步进电机等模块的初始化函数,然后调用protocol_main_loop()等待接收指令。cpu_map.h对ATmega328p进行映射,方便调用寄存器。shared.h和shared.c定义了系统中使用到的公共定义、变量和函数。
2.相关代码
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P61_5006.jpg?sign=1738861313-CY9iuDIkdQUVvVR2j9M6n0N7VgfQdJ3p-0-5d83ba4baf5665e6cd9d4a9fbde6c9d6)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P62_5010.jpg?sign=1738861313-UzXdaIm0v2eae485S2XLRXarmi0a5TRV-0-768e8e203c8d73a9b64a62b3a532333e)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P63_5013.jpg?sign=1738861313-c7Wkc2KRMX1ScosRpKPNIkKlWlaQ2Q7J-0-54ab42bef0d70a07786e7d744eb0f678)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P64_5016.jpg?sign=1738861313-fvvOmhSNxqdHw2KaZlVAXQZss05KaiMH-0-f48aac9adcfd17e23b4d9d16422ee413)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P65_5019.jpg?sign=1738861313-o7lpvM6lE5fSn6HtsrYowlS8WPnJXosT-0-ce336372a7ff2618ad6578af5b6b3a55)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P66_5027.jpg?sign=1738861313-lZIvv85uVIWYUTGCHyf0YD8SAIH6spgj-0-d31081f16d87685656585de96ebeb468)
2.2.2 串口通信模块
使用上位机Grbl Controller与Arduino开发板进行通信,并传输指令以及G Code控制步进电机的行为。
1.功能介绍
serial.h和serial.c通过RX/TX串口传输指令。
2.相关代码
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P66_5030.jpg?sign=1738861313-aPSddro8lUnSBL10wINKXnOjDQ7PtPgF-0-23187d8622c93e2e62020bea3b6a9fc4)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P67_5033.jpg?sign=1738861313-BLVX5Dx1e7VNiGtPMznkVYsWZrOGkeEl-0-6d67bd9f289d77f5cf32a1a85ecc3dad)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P68_5036.jpg?sign=1738861313-zRtUvTCSGQvMcRdexLuCY37hbmlTXkjC-0-4a7023c231efbcf96bcad8dd25943546)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P69_5039.jpg?sign=1738861313-VWLQZIIA4Fdh7rrwvgpISs69XwqaoKuV-0-0377cb8757f4403255ac4796bedf1b3e)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P70_5042.jpg?sign=1738861313-e84WoZE6obkZyILW8hJhfZvID9vgXXg5-0-dad1b7debb652e2b6f434d314748212d)
2.2.3 指令队列模块
通过Grbl Controller发送系统指令和控制指令,Arduino开发板接收到指令后放入指令队列顺序执行。
1.功能介绍
system.h和system.c接收系统指令,参考Grbl控制命令。protocol.h和protocol.c接收控制指令,包括运行、暂停、取消等指令,参考Grbl控制命令。planner.h和planner.c指令不实时执行,先进入指令队列中,按顺序进行执行。
2.相关代码
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P70_5046.jpg?sign=1738861313-ISCfxQBrNblaZ8owNRsYhsKmo0bKSVBq-0-b4a92bbb5ae0e9dcef290844e556390c)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P71_5049.jpg?sign=1738861313-Mijy0yGErxlqH0fSjR8t32eOUmAPyRwv-0-8005ff3fa572d7b5c6b18f7c5ce8eb3e)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P72_5052.jpg?sign=1738861313-zVxNH1aokg60nGKpeSGVnTe4XfRZCBgL-0-46a5d9184101ae97745d47a09c456208)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P73_5055.jpg?sign=1738861313-pgPXbcNT44AVFSbzi4T3x6kSE8pOrlCg-0-3a568b5f5cb4e23fddcd86f2a6acdb81)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P74_5058.jpg?sign=1738861313-FtHkJEl21Iwf5tHc2OlXW0DWabiS68uf-0-f01c5de167d184d706825eb40a36fddc)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P75_5061.jpg?sign=1738861313-pInhIF8sPLmcEp0f6HSz1ixiOju1ztvp-0-82a149c05a33e14e8c1283350141e2d1)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P76_5064.jpg?sign=1738861313-B7boD92yIpl9pIhLlZdaFhX6y8Zgb07U-0-fa0df90de2343a63eb180a4b472b7866)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P77_5067.jpg?sign=1738861313-u5v3SMFWqg8XyzlK4Wf87L4PwUnqQeGC-0-aa02c78f32465d4902381cd5b667d0b2)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P78_5072.jpg?sign=1738861313-1zaxTcxcpV1MHlVyCcvOIku2jGukeKJV-0-e1ea627b0d7de5c06377f46d87d915cd)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P79_5075.jpg?sign=1738861313-hSX3xlz5Ij1FwtSXd6pNC84z8QjTPAJm-0-87d8fc63592849109e0fe32ec225a269)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P80_5078.jpg?sign=1738861313-IN56nDaV6BMabaMsNgrhJ8SKkvNtUBmC-0-42e9b08cdd6f31c10afb184125d2aaae)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P81_5081.jpg?sign=1738861313-FQXfuklwvZqvIEQ9gs2M7HjhizZsc4LU-0-e62ccb063318190e99c572e91d6169f3)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P82_5084.jpg?sign=1738861313-F4SSo2UzzNquuNp1pC4JhoX1Xo2nsUZu-0-cd8002e1e75a75035bd4235d0f8ac617)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P83_5089.jpg?sign=1738861313-bPnAuEcGEcdFVgOz3jWgQGVw4KIPrCPx-0-c9eb1ce8d983d593ba9e6fa22eaafd2b)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P84_5092.jpg?sign=1738861313-Ow0RfvmHHAYFMaaviGzdkUDhKdfE6HL0-0-0bdec0684ebf7e715062ebf18dee05e2)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P85_5095.jpg?sign=1738861313-vgDl1bOMXOC2Q2C7BgBAE8jFeVPJ0eZq-0-6512855265671a2355427cc7f6f00714)
2.2.4 设置及存储模块
设置串口连接、步进电机相关参数,并存储到EEPROM内存中。
1.功能介绍
config.h为串口连接速率等属性设置,defaults.h为默认的规格设置,settings.h和settings.c为应用设置,eeprom.h和eeprom.c为内存存储设置。
2.相关代码
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P86_5104.jpg?sign=1738861313-Fo9OUYl0Ny1k6Y3O8aadbld3ZxwUU6ys-0-9a961dd222a3694e9176bd48651e1835)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P87_5108.jpg?sign=1738861313-dwkkoR2Y8vEV3LkU4QRwVgI2Y7D6IM32-0-e67ba71c30abef9b9caf693cee9c7bfb)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P88_5111.jpg?sign=1738861313-gZun6lnzYKX3OcHS3hnnd8umhbt2HSEh-0-5105d5f915b544212b3efde62a8e3325)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P89_5114.jpg?sign=1738861313-edua9TkKRqRpEKF5YiBQMqZlUYu1eoxs-0-9bfeb39f3346dbad6085c45f67f3c2ad)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P90_5117.jpg?sign=1738861313-x9YsI0BPKBoyNuBbHbEPOKDj6JEUtVzx-0-c122f532f8aabddd2a49d45dd7e542ea)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P91_5120.jpg?sign=1738861313-ieAY2tNLICu2bNycaSeRTYJTRZlh9856-0-5314754c9ee81f2085a887fc9132e458)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P92_5123.jpg?sign=1738861313-rynQQ3TIzV09hvgmV1qis2yHbH73Qbsx-0-92b0a274c834cd20407db4b384fe16ba)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P93_5126.jpg?sign=1738861313-FvMb2lhCnKLlGE8qNlw4VOs3zrjKO0aZ-0-35108a2dbd57ceb7de685e89371a0f43)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P94_5129.jpg?sign=1738861313-xdjb2k57owzURDSyORMl5Hke2TxUS7Le-0-7224448f8bad2fc10cfeeb80658d30ba)
2.2.5 状态探测模块
探测步进电机当前状态,以检验是否正常工作。
1.功能介绍
通过probe.h和probe.c获得当前激光笔头的位置。
2.相关代码
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P94_5134.jpg?sign=1738861313-RqyDeN8DQjbTHXkSFHCu1SEKH4a0eEY1-0-a380178b36a2104553db613397b07cb0)
2.2.6 步进电机控制模块
根据系统指令和控制指令驱动步进电机。
1.功能介绍
stepper.h和stepper.c用来驱动步进电机的工作模式。
2.相关代码
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P95_5141.jpg?sign=1738861313-8rn66lqbUjGckh8JqdV9hehTAZ14ZY3i-0-951d192be32b926e6311829af8168dd1)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P96_5144.jpg?sign=1738861313-ZyuA8qePkNMMNmlOdtGf9ZjQn9q5jS9Q-0-619a64456ecd106510c70c77d758c16d)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P97_5147.jpg?sign=1738861313-pTgx4ITWwNL42v5PJxPUv1Gd4lEkxSqI-0-433eac8353fcb21e781617ccfb167d85)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P98_5150.jpg?sign=1738861313-lYSS0NHeVP6y2Xn2vSt7TsoC8LsZaJSn-0-ce9332376b137a9765d5d757cef7acdf)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P99_5153.jpg?sign=1738861313-T3ufxJwZrnMQkG9J1oEJjDVES1fsLN9y-0-ec362c095a2f6e8e766e276fc83302a6)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P100_5158.jpg?sign=1738861313-ZzfG017VNrkRNVhelliY7cQroTuKnfMU-0-9e767139d7a04ca7b8bf7526e3a64787)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P101_5161.jpg?sign=1738861313-1HsOfo23fkKfgypPOYZhQ1jDHVQIRuZ6-0-eb10c3a7090c07090f03b7aa8252d6d6)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P102_5166.jpg?sign=1738861313-DQMslSxeXXLPlVoC1XOmKc7GhhWRB2pg-0-032c5f9df29dcb75cf8fc630673f8da4)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P103_5171.jpg?sign=1738861313-emL0lJ0vvBXBIoklSkt651H3rGaufPQP-0-8467171dce90e09d44bd89b788c1639c)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P104_5174.jpg?sign=1738861313-sHZml96YK1mCYkhvgAQhhwzVS8ZvCIze-0-6828ad25c6520981d04e8958d26b7334)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P105_5177.jpg?sign=1738861313-ClcRm6w7E4CaAXV0fO4eJiAWKBFLpyzP-0-c3ee9a9b1e4466df0e5de6a4f7ee829a)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P106_5187.jpg?sign=1738861313-vj0GzJPeYZxhAuo8u43xEElqNGsqmEed-0-97d034d857df227abac033c722e5dba2)
2.2.7 轴运动控制模块
根据状态探测,控制X轴和Y轴的工作。
1.功能介绍
motion_control.h和motion_control.c根据接收的指令控制轴运动,spindle_control.h和spindle_control.c控制主轴的运动。
2.相关代码
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P106_5189.jpg?sign=1738861313-0oHPpclZFdRsbDtoTdUTnaeRO7WyZ9OI-0-7560993bde91407475613b50d024fe46)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P107_5192.jpg?sign=1738861313-FT3MTdSLH3ObOgFbae1KJEJsIePb92dt-0-9e49edea3f3bc6c953d64fcea4f3efd3)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P108_5195.jpg?sign=1738861313-U9QyNL2JC83Csjpm2VXKHdW4LqBOGA8G-0-b586db5c21ddf7ee18f4329c9eb4730e)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P109_5198.jpg?sign=1738861313-n8mjfRHfrf2oD5VCQdfiAyqg2KZv4Ggx-0-d005ff8098df8fb79d092db2be99b9ff)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P110_5201.jpg?sign=1738861313-GB00Zzwhso894Sauz5Kwk5fwf5an7eZZ-0-8c27fa9f7446799ef2b65fcb5dca640c)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P111_5207.jpg?sign=1738861313-UcgV7B6y9Ci9jFeSjGpRqwewcWyt8fQ8-0-a124fdd049e3ec14fb4bb895c11a68bb)
2.2.8 G代码处理模块
G代码是3D模型进打印机前经过切片器处理而成的一种路径文件,指导固件控制。本模块用以解读G代码。
1.功能介绍
gcode.h和gcode.c将路径文件转化为步进电机的运动指令。
2.相关代码
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P112_5212.jpg?sign=1738861313-SKxaOAeVm2O5jn2nQhL54tzyWQeioVzu-0-37ae608d5027d33298bfde226f20adcf)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P113_5216.jpg?sign=1738861313-NO2jr2y7lfGsgr1huUP3jnSlIhzqmHcA-0-43a06d90b36bc5920e5557ddd5d2f988)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P114_5219.jpg?sign=1738861313-hEK8swP3DvCmCOZvp3lM0LQH0dPbevZv-0-5f9dcc3ae1f5c9b96dcb81a5996981ea)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P115_5222.jpg?sign=1738861313-ocZ5VA31NB7pcYrT0eWClTgu2GB4sHdV-0-54b2a0fc25be560dd0fe76f4c5f28497)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P116_5225.jpg?sign=1738861313-tTY5z7l4VORpJtKxSKpDT74Wtnq1HgbD-0-9b5f8e66026ec25ab01e648df235736f)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P117_5228.jpg?sign=1738861313-0tnApe7ZkIOla3IhGlCnq7F5ChXztweu-0-af7f7a85e65382aa65dd6b33f7851037)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P118_5231.jpg?sign=1738861313-NTwHstfbVsVq40yd0891LZdNszBjV8Zf-0-51f9bf94de53f2577cd9f87872157860)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P119_5234.jpg?sign=1738861313-RuBaeTHLeOC5ETm69E1meAXg4VFDrQXD-0-867c7e4dfcc1bb3370eb81c4436006a5)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P120_5237.jpg?sign=1738861313-v0VI76jiYIjOZMOO4MuafQNLHi5tsNCh-0-1d9b4ac50a66240349f48a5617972d06)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P121_5242.jpg?sign=1738861313-FHrqPBzeuUp3dhkODNpdsSiQdW9VrlPB-0-10eae7fd94488874231422a4e9dcf024)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P122_5245.jpg?sign=1738861313-k2zN5LWxZubOFSEKMoYo0ICM9vhaYCfe-0-335224528ad44a13ee1746eaeeb7f3ee)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P123_5248.jpg?sign=1738861313-XCpGFdbcI8NC5KR1m5b3ttxF8RAPVY5Q-0-2c7f5f30a1a7d7812aade570aeb9f479)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P124_5251.jpg?sign=1738861313-dPWmxw61fHWNKVHQ4YPN31kaZp0fhcwG-0-a20463c22f1bf4052a6353afa2f649da)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P125_5254.jpg?sign=1738861313-TO2i44GFjV57Jv78EQJWOpOIBVjUMrvo-0-b2ff4f3e7cc1207414e4a8e0d33e3aaa)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P126_5257.jpg?sign=1738861313-vb6Esm2Ty7X6zHzB76K8fCYF4Pw6yQhi-0-58628bf5ced05306f29b59288034d78e)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P127_5260.jpg?sign=1738861313-WmU2lT0byDrMP2J2ruRVW7h8XKZ45ZGA-0-fd28d91d812b7e8d44d95ac7c700fbec)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P128_5263.jpg?sign=1738861313-FT0nbVzBfurJSR6qsLnt2bcJTuHC4sWK-0-d510da0bc3d97ecc5535acc0207c47bb)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P129_5266.jpg?sign=1738861313-LgD7SW1yMxJSLSq2rNbb5eiHPuiaCGv5-0-36c147615fd56dde24c3d948adef6825)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P130_5269.jpg?sign=1738861313-H3vUQsdk0VXElCjkeFEVjwzUKMpQfFtu-0-a2f84d5def8ca879c6014dca4fed4fed)
2.2.9 格式化输出字符模块
接收Grbl Controller的指令,进行格式化。
1.功能介绍
print.h和print.c将使用的数据类型改为项目特殊的格式。
2.相关代码
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P130_5273.jpg?sign=1738861313-DJjxi98XBk9A5Jf2kTiRfcZLtbBZx682-0-e888281df10195c3a30df5b86da7b9e6)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P131_5276.jpg?sign=1738861313-sCrbF1pnOtsN9ZISgV6QnF7nI5gMUKHE-0-c0dd8769234d84a3bbb8adf42b3a38b4)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P132_5279.jpg?sign=1738861313-nCMDZjkfushY3au0HzbLotbxP4AaJZLR-0-e5141e39df78ed2254fcb20fc8affe9a)
![](https://epubservercos.yuewen.com/E2A904/15825991705219306/epubprivate/OEBPS/Images/Figure-P133_5282.jpg?sign=1738861313-LgD4Iry1sUSixnO4LAvgK0mQgYjE3Byy-0-68cccd63dfa1b7120bf22206d55b8940)