状态寄存器(USART_STAT ) 我们需要特别理解TBE、TC、RBNE、IDLE、OREE这几位。 1. TBE(发送空):这个位置“1”表示现在可以往数据寄存器中写数据了,当移位寄存器空闲时,写入到数据寄存器中的数据则会转移到移位寄存器中,串口开始对外发送数据; 2. TC(发送完成):发送数据时,当数据寄存器和移位寄存器都为空时,表示...
usart_flag_clear(uartx->uart_x,USART_FLAG_IDLE); USART_STAT0(uartx->uart_x); USART_DATA(uartx->uart_x); usart_interrupt_enable(uartx->uart_x,USART_INT_RBNE); usart_interrupt_enable(uartx->uart_x,USART_INT_IDLE); return DRV_SUCCESS; } 17.4.3main函数实现 以下为main函数代码: C ...
控制器:如USART结构框图所示,USART有专门控制发送的发送器、控制接收的接收器,还有唤醒单元、中断控制等等。使用USART之前需要向USART_CTL0寄存器的UEN位置1使能USART。发送或者接收数据字长可选8位或9位,由USART_CTL0的WL位控制。数据寄存器:如USART结构框图所示,USART数据寄存器(USART_DATA)只有低9位有效,并且第...
usart_flag_clear(uartx->uart_x,USART_FLAG_IDLE); USART_STAT0(uartx->uart_x); USART_DATA(uartx->uart_x); usart_interrupt_enable(uartx->uart_x,USART_INT_RBNE); usart_interrupt_enable(uartx->uart_x,USART_INT_IDLE); return DRV_SUCCESS; } 17.4.3 main函数实现 以下为main函数代码...
usart_interrupt_enable(USART0, USART_INT_IDLE); /* 使能USART0空闲中断 */ } //串口中断配置 uint16_t t=0; void USART0_IRQHandler(void) { if(RESET!=usart_interrupt_flag_get(USART0,USART_INT_FLAG_RBNE)) { gd_led_toggle();
说明使用PA9、 PA10的USART0时要选择AF1;初始化USART0 时才有了这两句;与GD32E103不同的是E230没...
printf("this is xy_zhongduan test too!\r\n"); uint8_t ch; if(RESET != usart_interrupt_flag_get(USART2, USART_INT_FLAG_RBNE)) { usart_interrupt_flag_clear(USART2, USART_INT_FLAG_RBNE); ch = (uint8_t)usart_data_receive(USART2); usart_data_transmit(USART2, ch); while(RES...
usart_interrupt_enable(USART0, USART_INT_IDLE); } void USART0_IRQHandler(void) { if(RESET!=usart_interrupt_flag_get(USART0,USART_INT_FLAG_RBNE)) { DATA=usart_data_receive(USART0);//rec data usart_data_transmit(USART0,DATA);
usart_interrupt_enable(USART0, USART_INT_RBNE); } /*! brief com send data param[in] com: COM on the board arg EVAL_COM0: COM0 on the board arg EVAL_COM1: COM1 on the board arg data param[out] none retval none */ void gd_eval_com_send(uint32_t com, uint8_t data) ...
usart_interrupt_enable(uartx->uart_x,USART_INT_RBNE);usart_interrupt_enable(uartx->uart_x,...