stm32-gbrl-g代码解释程序
单片机源程序如下:
- /***************************************************************/
- //2013.8.27 Copyright@ rhyme呆瓜云
- /***************************************************************/
- #include "stm32f10x.h"
- #include "stdio.h"
- #include "gpio.h"
- #include "usart.h"
- #include "delay.h"
- #include "tim.h"
- #include "eeprom.h"
- #include "pwm.h"
- #include "config.h"
- #include "planner.h"
- #include "nuts_bolts.h"
- #include "stepper.h"
- #include "spindle_control.h"
- #include "coolant_control.h"
- #include "motion_control.h"
- #include "gcode.h"
- #include "protocol.h"
- #include "limits.h"
- #include "report.h"
- #include "settings.h"
- #include "serial.h"
- /***************************************************************/
- u8 USART_RX[60]={""};
- u8 USART_mark=0;
- u8 Press_mark=0;
- int USART_control=0;
- int USART_data=0;
- u16 USART_RX_STA; //接收状态标记
- uint16_t ee;//EEPROM变量
- u8 mo=1;
- /***************************************************************/
- int main(void)
- {
- RCC_Configuration();
- delay_Configuration(72);
- USART1_Configuration(9600);
- PB9_OUT
- Set_B9
-
- // PB8_OUT
- // Set_B8
- // delay_ms(200);
- // Clr_B8
- // delay_ms(200);
- // Set_B8
- // delay_ms(300);
- // Clr_B8
-
- // PA7_OUT
- // Clr_A7
- //
- // PA6_OUT
- // Clr_A6
-
-
-
- Motors_Set_GPIO();//电机IO口定义
-
- // FLASH_Unlock();
- // EE_Init();
- settings_reset(true);//GRBL重置所有参数
- //读取EEPROM 设定FEED和SEEK
- // if(!EE_ReadVariable(32,&ee))
- // {
- // settings.default_feed_rate = ee;
- // settings.default_seek_rate = ee;
- // }
- TIM_Configuration(TIM2,1001,1,1);
- st_init(); //步进电机初始化,用这两个中断,通过 “布雷森汉姆直线算法”同时控制三个步进输出。
-
- memset(&sys, 0, sizeof(sys)); //清数组
-
- sys.abort = true; // 设置abort 标志着初始化完成
- sys.state = STATE_INIT; // 设置一个警示标志来指示未知的初始位置
-
- // TIM3_PWM_Configuration(20,3600,1,1,0,0);
- // PA6_OUT
- // Set_A6
- // PA7_OUT
- // Clr_A7
- while(1)
- {
-
- if (sys.abort) {
- // Reset system.
- serial_reset_read_buffer(); // Clear serial read buffer
- plan_init(); // Clear block buffer and planner variables
- gc_init(); // Set g-code parser to default state
- protocol_init(); // Clear incoming line data and execute startup lines
- spindle_init();
- coolant_init();
- limits_init();
- st_reset(); // Clear stepper subsystem variables.
- // Sync cleared gcode and planner positions to current system position, which is only
- // cleared upon startup, not a reset/abort.
- sys_sync_current_position();
- // Reset system variables.
- sys.abort = false;
- sys.execute = 0;
- if (bit_istrue(settings.flags,BITFLAG_AUTO_START)) { sys.auto_start = true; }
-
- // Check for power-up and set system alarm if homing is enabled to force homing cycle
- // by setting Grbl's alarm state. Alarm locks out all g-code commands, including the
- // startup scripts, but allows access to settings and internal commands. Only a homing
- // cycle '$H' or kill alarm locks '$X' will disable the alarm.
- // NOTE: The startup script will run after successful completion of the homing cycle, but
- // not after disabling the alarm locks. Prevents motion startup blocks from crashing into
- // things uncontrollably. Very bad.
- #ifdef HOMING_INIT_LOCK
- if (sys.state == STATE_INIT && bit_istrue(settings.flags,BITFLAG_HOMING_ENABLE)) { sys.state = STATE_ALARM; }
- #endif
-
- // Check for and report alarm state after a reset, error, or an initial power up.
- if (sys.state == STATE_ALARM) {
- report_feedback_message(MESSAGE_ALARM_LOCK);
- } else {
- // All systems go. Set system to ready and execute startup script.
- sys.state = STATE_IDLE;
- protocol_execute_startup();
- }
- }
-
-
- protocol_execute_runtime();
- protocol_process(); // ... process the serial protocol
- if(mo==0) {MotorsEnable(0x00);mo=10;}
-
- // delay_ms(500);
- // Set_B12
- // delay_ms(500);
- // Clr_B12
- // printf(" This is the STM32 Demo !!! \r\n");
- }
-
- }
- /***************************************************************/
复制代码
所有资料51hei提供下载:
STM32-GRBL-master.rar
(412.7 KB, 下载次数: 176)
|