Skip to content
Snippets Groups Projects
Commit 1cc57c84 authored by Sergi Hernandez's avatar Sergi Hernandez
Browse files

Added functions to read and write raw data from the serial console interface.

parent e2b4a2ce
No related branches found
No related tags found
No related merge requests found
...@@ -12,6 +12,8 @@ void serial_console_init(uint32_t baudrate); ...@@ -12,6 +12,8 @@ void serial_console_init(uint32_t baudrate);
uint8_t serial_console_get_num_data(void); uint8_t serial_console_get_num_data(void);
int cm510_printf(const char *fmt, ...); int cm510_printf(const char *fmt, ...);
int cm510_scanf(const char *fmt, ... ); int cm510_scanf(const char *fmt, ... );
uint8_t cm510_read(uint8_t *data,uint8_t len);
uint8_t cm510_write(uint8_t *data,uint8_t len);
#ifdef __cplusplus #ifdef __cplusplus
} }
......
...@@ -48,7 +48,6 @@ void serial_console_set_baudrate(uint32_t baudrate) ...@@ -48,7 +48,6 @@ void serial_console_set_baudrate(uint32_t baudrate)
int serial_console_putchar(char c,FILE *dev) int serial_console_putchar(char c,FILE *dev)
{ {
if(c=='\n') if(c=='\n')
{ {
serial_console_tx_buffer[serial_console_tx_write_ptr]='\r'; serial_console_tx_buffer[serial_console_tx_write_ptr]='\r';
...@@ -156,3 +155,49 @@ int cm510_scanf(const char *fmt, ...) ...@@ -156,3 +155,49 @@ int cm510_scanf(const char *fmt, ...)
return done; return done;
} }
uint8_t cm510_read(uint8_t *data,uint8_t len)
{
uint8_t i;
for(i=0;i<len;i++)
{
if(serial_console_rx_num_data>0)
{
data[i]=serial_console_rx_buffer[serial_console_rx_read_ptr];
serial_console_rx_read_ptr=(serial_console_rx_read_ptr+1)%SERIAL_CONSOLE_MAX_BUFFER_LEN;
serial_console_rx_num_data--;
}
else
break;
}
return i;
}
uint8_t cm510_write(uint8_t *data,uint8_t len)
{
uint8_t i;
for(i=0;i<len;i++)
{
if(serial_console_sending==0x00)
{
UDR1=data[i];
serial_console_sending=0x01;
}
else
{
if(serial_console_tx_num_data<SERIAL_CONSOLE_MAX_BUFFER_LEN)
{
serial_console_tx_buffer[serial_console_tx_write_ptr]=data[i];
serial_console_tx_write_ptr=(serial_console_tx_write_ptr+1)%SERIAL_CONSOLE_MAX_BUFFER_LEN;
serial_console_tx_num_data++;
}
else
break;
}
}
return i;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment