示例#1
0
//******************************************************************************
//* READ/WRITE
//******************************************************************************
int serial_getc(serial_t *obj) {
    while (!serial_readable(obj));
    
    obj->uart->EVENTS_RXDRDY = 0;
    
    return (uint8_t)obj->uart->RXD;
}
示例#2
0
/******************************************************************************
 * READ/WRITE
 ******************************************************************************/
int serial_getc(serial_t *obj)
{
    /* Sanity check arguments */
    MBED_ASSERT(obj);
    while (!serial_readable(obj));
    return _USART(obj).DATA.reg ;
}
示例#3
0
/******************************************************************************
 * READ/WRITE
 ******************************************************************************/
int serial_getc(serial_t *obj)
{
    /* Sanity check arguments */
    MBED_ASSERT(obj);
    while (!serial_readable(obj));
    return (int)((_USART(obj)->US_RHR & US_RHR_RXCHR_Msk) & 0xFF);
}
示例#4
0
/** Get character. This is a blocking call, waiting for a character
 *
 * @param obj The serial object
 */
int serial_getc(serial_t *obj)
{
    struct serial_s *p_obj = GET_SERIAL_S(obj);

    while (!serial_readable(obj));
    return (int)(usart_data_receive(p_obj->uart) & BITS(0, 7 + (p_obj->databits >> 12)));
}
示例#5
0
int serial_getc(serial_t *obj) 
{
    PHAL_RUART_ADAPTER pHalRuartAdapter=(PHAL_RUART_ADAPTER)&(obj->hal_uart_adp);
    u8  uart_idx = pHalRuartAdapter->UartIndex;

    while (!serial_readable(obj));
    return (int)((HAL_RUART_READ32(uart_idx, RUART_REV_BUF_REG_OFF)) & 0xFF);
}
示例#6
0
文件: serial_api.c 项目: pan-/mbed
int serial_getc(serial_t *obj)
{
    while (!serial_readable(obj));
    uint8_t data;
    data = UART_ReadByte(uart_addrs[obj->index]);

    return data;
}
示例#7
0
文件: serial_api.c 项目: Babody/mbed
int serial_getc(serial_t *obj) {
    while (!serial_readable(obj));
    uint8_t data;
    uint32_t uart_addrs[] = UART_BASE_ADDRS;
    UART_HAL_Getchar(uart_addrs[obj->index], &data);

    return data;
}
示例#8
0
/******************************************************************************
 * READ/WRITE
 ******************************************************************************/
int serial_getc(serial_t *obj)
{
    while (serial_readable(obj) == 0) {
        /* NOP */
    }

    return obj->uart->DATA;
}
示例#9
0
int serial_getc(serial_t *obj)
{
    struct serial_s *obj_s = SERIAL_S(obj);
    UART_HandleTypeDef *huart = &uart_handlers[obj_s->index];
    
    while (!serial_readable(obj));
    return (int)(huart->Instance->DR & 0x1FF);
}
示例#10
0
void jshIdle() {
  /*static bool foo = false;
  foo = !foo;
  jshPinSetValue(LED1_PININDEX, foo);*/

  while (serial_readable(&mbedSerial[0])>0)
        jshPushIOCharEvent(EV_SERIAL1, serial_getc(&mbedSerial[0]));
}
示例#11
0
void BufferedSerial::rxIrq(void)
{
    // read from the peripheral and make sure something is available
    if(serial_readable(&_serial)) {
        _rxbuf = serial_getc(&_serial); // if so load them into a buffer
    }

    return;
}
示例#12
0
int serial_getc(serial_t *obj)
{
    USART_TypeDef *uart = (USART_TypeDef *)(obj->uart);
    while (!serial_readable(obj));
    if (obj->databits == UART_WORDLENGTH_8B) {
        return (int)(uart->RDR & (uint8_t)0xFF);
    } else {
        return (int)(uart->RDR & (uint16_t)0x1FF);
    }
}
示例#13
0
static int ameba_uart_getc (struct rt_serial_device *serial)
{
    struct device_uart* uart = serial->parent.user_data;

	if(!serial_readable(&uart->serial))
        return -1;

    /* Receive Data Available */
    return serial_getc(&uart->serial);
}
示例#14
0
int serial_getc(serial_t *obj)
{
    struct serial_s *obj_s = SERIAL_S(obj);
    UART_HandleTypeDef *huart = &uart_handlers[obj_s->index];

    while (!serial_readable(obj));
    if (obj_s->databits == UART_WORDLENGTH_8B) {
        return (int)(huart->Instance->RDR & (uint8_t)0xFF);
    } else {
        return (int)(huart->Instance->RDR & (uint16_t)0x1FF);
    }
}
示例#15
0
文件: serial_api.c 项目: pan-/mbed
int serial_getc(serial_t *obj) 
{
#ifdef CONFIG_MBED_ENABLED
    if (obj->index == UART_3) {
        return log_uart_getc(&stdio_uart_log);
    }
#endif
    PHAL_RUART_ADAPTER pHalRuartAdapter=(PHAL_RUART_ADAPTER)&(obj->hal_uart_adp);
    u8  uart_idx = pHalRuartAdapter->UartIndex;

    while (!serial_readable(obj));
    return (int)((HAL_RUART_READ32(uart_idx, RUART_REV_BUF_REG_OFF)) & 0xFF);
}
示例#16
0
void jshIdle() {
  // hack in order to get console device set correctly
  static bool inited = false;
  if (!inited) {
    inited = true;
    jsiOneSecondAfterStartup();
  }

  /*static bool foo = false;
  foo = !foo;
  jshPinSetValue(LED1_PININDEX, foo);*/

  while (serial_readable(&mbedSerial[0])>0)
        jshPushIOCharEvent(EV_SERIAL1, serial_getc(&mbedSerial[0]));
}
示例#17
0
// ---------------------------------------------------
void mbedSerialIRQ(uint32_t id, SerialIrq event) {
  IOEventFlags device = EV_SERIAL1;  // TODO: device

  if (event == RxIrq) {
    if (serial_readable(&mbedSerial[id]))
      jshPushIOCharEvent(device, (char)serial_getc(&mbedSerial[id]));
  }
  if (event == TxIrq) {
    int c = jshGetCharToTransmit(device);
    if (c >= 0) {
      serial_putc(&mbedSerial[id], c);
    } else
      serial_irq_set(&mbedSerial[id], TxIrq, 0);
  }
}
示例#18
0
文件: serial_api.c 项目: Josnaky/mbed
/******************************************************************************
 * READ/WRITE
 ******************************************************************************/
int serial_getc(serial_t *obj) {
    uint16_t err_read;
    int data;
    int was_masked;

#if defined ( __ICCARM__ )
    was_masked = __disable_irq_iar();
#else
    was_masked = __disable_irq();
#endif /* __ICCARM__ */
    if (obj->serial.uart->SCFSR & 0x93) {
        err_read = obj->serial.uart->SCFSR;
        obj->serial.uart->SCFSR = (err_read & ~0x93);
    }
    obj->serial.uart->SCSCR |= 0x0040;     // Set RIE
    if (!was_masked) {
        __enable_irq();
    }

    if (obj->serial.uart->SCLSR & 0x0001) {
        obj->serial.uart->SCLSR = 0u;      // ORER clear
    }

    while (!serial_readable(obj));
    data = obj->serial.uart->SCFRDR & 0xff;

#if defined ( __ICCARM__ )
    was_masked = __disable_irq_iar();
#else
    was_masked = __disable_irq();
#endif /* __ICCARM__ */
    err_read = obj->serial.uart->SCFSR;
    obj->serial.uart->SCFSR = (err_read & 0xfffD);     // Clear RDF
    if (!was_masked) {
        __enable_irq();
    }

    if (err_read & 0x80) {
        data = -1;  //err
    }
    return data;
}
示例#19
0
int serial_getc(serial_t *obj)
{
    UART_HandleTypeDef *handle = &UartHandle[SERIAL_OBJ(index)];
    while (!serial_readable(obj));
    return (int)(handle->Instance->DR & 0x1FF);
}
示例#20
0
int serial_getc(serial_t *obj) {
    USART_TypeDef *usart = (USART_TypeDef *)(obj->uart);
    while (!serial_readable(obj));
    return (int)(USART_ReceiveData(usart));
}
示例#21
0
int SerialBase::readable() {
    lock();
    int ret = serial_readable(&_serial);
    unlock();
    return ret;
}
示例#22
0
int serial_getc(serial_t *obj)
{
    USART_TypeDef *uart = (USART_TypeDef *)(SERIAL_OBJ(uart));
    while (!serial_readable(obj));
    return (int)(uart->DR & 0x1FF);
}
int serial_getc(serial_t *obj)
{
    UART_HandleTypeDef *handle = &UartHandle[obj->serial.module];
    while (!serial_readable(obj));
    return (int)(handle->Instance->DR & 0x1FF);
}
示例#24
0
int serial_getc(serial_t *obj) {
    USART_TypeDef *uart = (USART_TypeDef *)(obj->uart);
    while (!serial_readable(obj));
    return (int)(uart->RDR & (uint16_t)0xFF);
}
示例#25
0
文件: serial_api.c 项目: Fadis/lpc810
/******************************************************************************
 * READ/WRITE
 ******************************************************************************/
int serial_getc(serial_t *obj) {
    while (!serial_readable(obj));
    return obj->uart->RXDATA;
}
示例#26
0
文件: Serial.cpp 项目: teddokano/mbed
int Serial::readable() {
    return serial_readable(&_serial);
}
示例#27
0
static uint8_t uart_getchar(void) {
    /* Wait for data to be recieved */
    while(!serial_readable())
        ;
    return serial_read();
}