I'm trying to port GRBL 1.1 to the STM32F746 chip. Tell me the solution, thanks.
Diff: grbl/serial.h
- Revision:
- 0:9dcf85d9b2f3
diff -r 000000000000 -r 9dcf85d9b2f3 grbl/serial.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/grbl/serial.h Mon Sep 04 12:05:05 2017 +0000 @@ -0,0 +1,73 @@ +/* + serial.c - Low level functions for sending and recieving bytes via the serial port + Part of Grbl + + Copyright (c) 2011-2016 Sungeun K. Jeon for Gnea Research LLC + Copyright (c) 2009-2011 Simen Svale Skogsrud + + Grbl is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Grbl is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Grbl. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef serial_h +#define serial_h + +#ifdef AVRTARGET +#ifndef RX_BUFFER_SIZE + #define RX_BUFFER_SIZE 128 +#endif +#ifndef TX_BUFFER_SIZE + #ifdef USE_LINE_NUMBERS + #define TX_BUFFER_SIZE 112 + #else + #define TX_BUFFER_SIZE 104 + #endif +#endif +#else +#define RX_BUFFER_SIZE 254 +#ifndef WIN32 +#define TX_BUFFER_SIZE 128 // Do not try 256 it will not work for STM32. +#else +#define TX_BUFFER_SIZE 254 +#endif +#endif + +#define SERIAL_NO_DATA 0xff + +#ifdef WIN32 +void winserial_init(char *pPort); +#endif + +void serial_init(); + +// Writes one byte to the TX serial buffer. Called by main program. +void serial_write(uint8_t data); + +// Fetches the first byte in the serial read buffer. Called by main program. +uint8_t serial_read(); + +// Reset and empty data in read buffer. Used by e-stop and reset. +void serial_reset_read_buffer(); + +// Returns the number of bytes available in the RX serial buffer. +uint8_t serial_get_rx_buffer_available(); + +// Returns the number of bytes used in the RX serial buffer. +// NOTE: Deprecated. Not used unless classic status reports are enabled in config.h. +uint8_t serial_get_rx_buffer_count(); + +// Returns the number of bytes used in the TX serial buffer. +// NOTE: Not used except for debugging and ensuring no TX bottlenecks. +uint8_t serial_get_tx_buffer_count(); + +#endif