void USART0_IRQHandler(void){ driver_uart_int_handler(&BOARD_UART);} 在driver_uart.c中定义了driver_uart_int_handler函数: CDrv_Err driver_uart_int_handler(typdef_uart_struct *uartx){ Drv_Err uart_state=DRV_SUCCESS; if(usart_interrupt_flag_get(uartx->uart_x,USART_INT_FLAG_RBNE)!=...
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 ...
void USART0_IRQHandler(void) { if(RESET!=usart_interrupt_flag_get(USART0,USART_INT_FLAG_RBNE)) { gd_led_toggle(); t=usart_data_receive(USART0);//接收数据 usart_data_transmit(USART0,USART_RX[t]); usart_interrupt_disable(USART0,USART_INT_RBNE); usart_data_transmit(USART0,t); }els...
usart_baudrate_set(USART0, 115200U);//设置串口0的波特率为115200 usart_word_length_set(USART0, USART_WL_8BIT); // 帧数据字长 usart_stop_bit_set(USART0, USART_STB_1BIT); // 停止位1位 usart_parity_config(USART0, USART_PM_NONE); // 无奇偶校验位 usart_receive_config(USART0, USART...
USART_DATA包含了已发送的数据或者接收到的数据。USART_DATA实际是包含了两个寄存器,一个专门用于发送的可写TDATA,一个专门用于接收的可读RDATA。当进行发送操作时,往USART_DATA写入数据会自动存储在TDATA内;当进行读取操作时,向USART_DATA读取数据会自动提取RDATA数据。TDATA和RDATA都是介于系统总线和移位寄存器...
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 int main(void) { delay_init(); //初始化UART为中断模式,注册接受完成(IDLE)回调函数 ...
usart_interrupt_flag_clear(USART0,USART_INT_FLAG_RBNE);usart_interrupt_enable(USART0,USART_INT_R...
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) ...
while (usart_flag_get(USART0, USART_FLAG_RBNE) == RESET); // 等待接收完成 return usart_...
当接收到一个数据帧, USART_STAT0寄存器中的RBNE置位,如果设置了USART_CTL0寄存器中相应的中断使能位RBNEIE,将会产生中断。在USART_STAT0寄存器中可以观察接收状态标志。 软件可以通过读USART_DATA寄存器或者DMA方式获取接收到的数据。不管是直接读寄存器还是通过DMA,只要是对USART_DATA寄存器的一个读操作都可以清除RBN...