在串行读取非空终止输入?

时间:2019-01-31 14:56:01

标签: mbed

我正在使用mbed LPC1768。 mbed的串行输入是一个无符号字符数组,该数组不是以空字符结尾的。我没有用getc()得到任何东西,如何获得输入?

1 个答案:

答案 0 :(得分:0)

空字符为0,因此如果需要获取它,您可以使用缓冲区计数器或ovf变量来检测接收到的字符! 通过以下设置配置您的UART0,1: 如果不使用,请注释UART0或UART1!

因此您可以在#define中选择UART:option-> C / C ++-> Define:__ UART0或__UART1

1.2.1

------>并使用此功能。获取角色:

void SER_Init (void) {
#ifdef __UART0                             /* UART0 */
  LPC_SC->PCONP |= ((1 << 3) | (1 << 15)); /* enable power to UART0 & IOCON   */

  LPC_PINCON->PINSEL0 |=  (1 << 4);        /* Pin P0.2 used as TXD0           */
  LPC_PINCON->PINSEL0 |=  (1 << 6);        /* Pin P0.3 used as RXD0           */
#else                                      /* UART1 */
  LPC_SC->PCONP |= ((1 << 4) | (1 << 15)); /* enable power to UART1 & IOCON   */

  LPC_PINCON->PINSEL4 |=  (2 << 0);        /* Pin P2.0 used as TXD1           */
  LPC_PINCON->PINSEL4 |=  (2 << 2);        /* Pin P2.1 used as RXD1           */
#endif

  UART->LCR    = 0x83;                     /* 8 bits, no Parity, 1 Stop bit   */
  UART->DLL    = 9;                        /* 115200 Baud Rate @ 25.0 MHZ PCLK*/
  UART->FDR    = 0x21;                     /* FR 1,507, DIVADDVAL=1, MULVAL=2 */
  UART->DLM    = 0;                        /* High divisor latch = 0          */
  UART->LCR    = 0x03;                     /* DLAB = 0                        */
}