mirror of
https://github.com/adrcs/ip400.git
synced 2025-07-05 11:35:43 +03:00
added utils
This commit is contained in:
parent
a9a3f739b4
commit
a9b13d2c39
85 changed files with 9213 additions and 0 deletions
169
rpi/stm32flash/serial_common.c
Normal file
169
rpi/stm32flash/serial_common.c
Normal file
|
@ -0,0 +1,169 @@
|
|||
/*
|
||||
stm32flash - Open Source ST STM32 flash program for *nix
|
||||
Copyright (C) 2010 Geoffrey McRae <geoff@spacevs.com>
|
||||
|
||||
This program 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 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program 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 this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#include "serial.h"
|
||||
|
||||
serial_baud_t serial_get_baud(const unsigned int baud) {
|
||||
switch(baud) {
|
||||
case 0: return SERIAL_BAUD_KEEP ;
|
||||
case 1200: return SERIAL_BAUD_1200 ;
|
||||
case 1800: return SERIAL_BAUD_1800 ;
|
||||
case 2400: return SERIAL_BAUD_2400 ;
|
||||
case 4800: return SERIAL_BAUD_4800 ;
|
||||
case 9600: return SERIAL_BAUD_9600 ;
|
||||
case 14400: return SERIAL_BAUD_14400 ;
|
||||
case 19200: return SERIAL_BAUD_19200 ;
|
||||
case 38400: return SERIAL_BAUD_38400 ;
|
||||
case 56000: return SERIAL_BAUD_56000 ;
|
||||
case 57600: return SERIAL_BAUD_57600 ;
|
||||
case 115200: return SERIAL_BAUD_115200;
|
||||
case 128000: return SERIAL_BAUD_128000;
|
||||
case 230400: return SERIAL_BAUD_230400;
|
||||
case 256000: return SERIAL_BAUD_256000;
|
||||
case 460800: return SERIAL_BAUD_460800;
|
||||
case 500000: return SERIAL_BAUD_500000;
|
||||
case 576000: return SERIAL_BAUD_576000;
|
||||
case 921600: return SERIAL_BAUD_921600;
|
||||
case 1000000: return SERIAL_BAUD_1000000;
|
||||
case 1152000: return SERIAL_BAUD_1152000;
|
||||
case 1500000: return SERIAL_BAUD_1500000;
|
||||
case 2000000: return SERIAL_BAUD_2000000;
|
||||
case 2500000: return SERIAL_BAUD_2500000;
|
||||
case 3000000: return SERIAL_BAUD_3000000;
|
||||
case 3500000: return SERIAL_BAUD_3500000;
|
||||
case 4000000: return SERIAL_BAUD_4000000;
|
||||
|
||||
default:
|
||||
return SERIAL_BAUD_INVALID;
|
||||
}
|
||||
}
|
||||
|
||||
unsigned int serial_get_baud_int(const serial_baud_t baud) {
|
||||
switch(baud) {
|
||||
case SERIAL_BAUD_1200 : return 1200 ;
|
||||
case SERIAL_BAUD_1800 : return 1800 ;
|
||||
case SERIAL_BAUD_2400 : return 2400 ;
|
||||
case SERIAL_BAUD_4800 : return 4800 ;
|
||||
case SERIAL_BAUD_9600 : return 9600 ;
|
||||
case SERIAL_BAUD_14400 : return 14400 ;
|
||||
case SERIAL_BAUD_19200 : return 19200 ;
|
||||
case SERIAL_BAUD_38400 : return 38400 ;
|
||||
case SERIAL_BAUD_56000 : return 56000 ;
|
||||
case SERIAL_BAUD_57600 : return 57600 ;
|
||||
case SERIAL_BAUD_115200: return 115200;
|
||||
case SERIAL_BAUD_128000: return 128000;
|
||||
case SERIAL_BAUD_230400: return 230400;
|
||||
case SERIAL_BAUD_256000: return 256000;
|
||||
case SERIAL_BAUD_460800: return 460800;
|
||||
case SERIAL_BAUD_500000: return 500000;
|
||||
case SERIAL_BAUD_576000: return 576000;
|
||||
case SERIAL_BAUD_921600: return 921600;
|
||||
case SERIAL_BAUD_1000000: return 1000000;
|
||||
case SERIAL_BAUD_1152000: return 1152000;
|
||||
case SERIAL_BAUD_1500000: return 1500000;
|
||||
case SERIAL_BAUD_2000000: return 2000000;
|
||||
case SERIAL_BAUD_2500000: return 2500000;
|
||||
case SERIAL_BAUD_3000000: return 3000000;
|
||||
case SERIAL_BAUD_3500000: return 3500000;
|
||||
case SERIAL_BAUD_4000000: return 4000000;
|
||||
|
||||
case SERIAL_BAUD_INVALID:
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
serial_bits_t serial_get_bits(const char *mode) {
|
||||
if (!mode)
|
||||
return SERIAL_BITS_INVALID;
|
||||
switch(mode[0]) {
|
||||
case '5': return SERIAL_BITS_5;
|
||||
case '6': return SERIAL_BITS_6;
|
||||
case '7': return SERIAL_BITS_7;
|
||||
case '8': return SERIAL_BITS_8;
|
||||
|
||||
default:
|
||||
return SERIAL_BITS_INVALID;
|
||||
}
|
||||
}
|
||||
|
||||
unsigned int serial_get_bits_int(const serial_bits_t bits) {
|
||||
switch(bits) {
|
||||
case SERIAL_BITS_5: return 5;
|
||||
case SERIAL_BITS_6: return 6;
|
||||
case SERIAL_BITS_7: return 7;
|
||||
case SERIAL_BITS_8: return 8;
|
||||
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
serial_parity_t serial_get_parity(const char *mode) {
|
||||
if (!mode || !mode[0])
|
||||
return SERIAL_PARITY_INVALID;
|
||||
switch(mode[1]) {
|
||||
case 'N':
|
||||
case 'n':
|
||||
return SERIAL_PARITY_NONE;
|
||||
case 'E':
|
||||
case 'e':
|
||||
return SERIAL_PARITY_EVEN;
|
||||
case 'O':
|
||||
case 'o':
|
||||
return SERIAL_PARITY_ODD;
|
||||
|
||||
default:
|
||||
return SERIAL_PARITY_INVALID;
|
||||
}
|
||||
}
|
||||
|
||||
char serial_get_parity_str(const serial_parity_t parity) {
|
||||
switch(parity) {
|
||||
case SERIAL_PARITY_NONE: return 'N';
|
||||
case SERIAL_PARITY_EVEN: return 'E';
|
||||
case SERIAL_PARITY_ODD : return 'O';
|
||||
|
||||
default:
|
||||
return ' ';
|
||||
}
|
||||
}
|
||||
|
||||
serial_stopbit_t serial_get_stopbit(const char *mode) {
|
||||
if (!mode || !mode[0] || !mode[1])
|
||||
return SERIAL_STOPBIT_INVALID;
|
||||
switch(mode[2]) {
|
||||
case '1': return SERIAL_STOPBIT_1;
|
||||
case '2': return SERIAL_STOPBIT_2;
|
||||
|
||||
default:
|
||||
return SERIAL_STOPBIT_INVALID;
|
||||
}
|
||||
}
|
||||
|
||||
unsigned int serial_get_stopbit_int(const serial_stopbit_t stopbit) {
|
||||
switch(stopbit) {
|
||||
case SERIAL_STOPBIT_1: return 1;
|
||||
case SERIAL_STOPBIT_2: return 2;
|
||||
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue