📄 serial.c
字号:
//#include "serial.h"#include "s3c2440.h"#define SERIAL_CHAR_READY() (UTRSTAT0 & UTRSTAT_RX_READY)#define SERIAL_READ_CHAR() URXH0#define SERIAL_READ_STATUS() (UERSTAT0 & UART_ERR_MASK)#define SERIAL_WRITE_STATUS() (UTRSTAT0)#define SERIAL_WRITE_READY() ((UTRSTAT0) & UTRSTAT_TX_EMPTY)#define SERIAL_WRITE_CHAR(c) ((UTXH0) = (c))/* * Reads and returns a character from the serial port * - Times out after delay iterations checking for presence of character * - Sets *error_p to UART error bits or - on timeout * - On timeout, sets *error_p to -1 and returns 0 */ char awaitkey( unsigned int timeout, int *statp){ char c; int rxstat; int do_timeout = (timeout != 0) ; while(!SERIAL_CHAR_READY()) { if (do_timeout) { if (!timeout) break; timeout--; } } if (do_timeout && timeout == 0) { c = 0; rxstat = -1; } else { c = SERIAL_READ_CHAR(); rxstat = SERIAL_READ_STATUS(); } if (rxstat) { if (statp) *statp = rxstat; } return (c);}char UART_getchar(void){ char c; while (!SERIAL_CHAR_READY()) /* nothing */; c = SERIAL_READ_CHAR(); return c;}char UART_getchar_with_display(void){ char c; while (!SERIAL_CHAR_READY()) ; /* nothing */ c = SERIAL_READ_CHAR(); while (!SERIAL_WRITE_READY()) ; /* nothing */ SERIAL_WRITE_CHAR(c); return c;}void UART_putchar(char c){ while (!SERIAL_WRITE_READY()) /* nothing */; SERIAL_WRITE_CHAR(c); }void UART_puts( const char * str ){ while( *str != '\0' ) UART_putchar( *str++ );}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -