if(usart_interrupt_flag_get(USART_Num[COM0], USART_INT_FLAG_TBE) == RESET)//始终是RESET因为没有使能TBE中断 虽然TBE置位了 { usart_flag_clear(USART_Num[COM0],USART_FLAG_TC);//清除TC usart_interrupt_disable(USART_Num[COM0], USART_INT_TC); g_uSendFlag[COM0] = 0x00; //设置发送完...
*@note*/voidUSART2_IRQHandler(void){/* UART接收超时中断 */if((usart_interrupt_flag_get(BLE_UART, USART_INT_FLAG_RT) != RESET) && (usart_flag_get(BLE_UART, USART_FLAG_RT) != RESET)) {/* disable DMA and reconfigure */dma_channel_disable(DMA0, DMA_CH1);//关闭DMA,在没有读取该...
usart_interrupt_enable(uartx->uart_x, USART_INT_TC); } } if(usart_interrupt_flag_get(uartx->uart_x,USART_INT_FLAG_TC)!=RESET) { usart_interrupt_disable(uartx->uart_x, USART_INT_TC); usart_flag_clear(uartx->uart_x,USART_FLAG_TC); if( !(uartx->uart_mode_rx==MODE_DMA && ...
FlagStatus usart_interrupt_flag_get(uint32_t usart_periph, usart_interrupt_flag_enum int_flag); 这个函数获取串口中断的标志位状态。有两个参数,第一个参数就是要获取的串口外设,第二个参数就是要获取的串口中断的标志位。关于串口中断的标志如图 1-4-1 所示。
在进入中断之后,记得要清除中断,有对应的中断标志位清除函数dma_interrupt_flag_clear,参数和DMA中断标志位获取函数一样。 固件库手册204页 这里配置DMA传输完成中断对应的代码如下: voidBSP_DMA_CH_IRQHandler(void){/*传输完成中断*/if(dma_interrupt_flag_get(BSP_DMA, BSP_DMA_CH, DMA_INT_FLAG_FTF)) ...
void DMA0_Channel0_IRQHandler(void) { if(dma_interrupt_flag_get(DMA0, DMA_CH0, DMA_INT_FLAG_FTF)==SET) { dma_interrupt_flag_clear(DMA0, DMA_CH0, DMA_FLAG_FTF);//清除DMA通道传输完成标志 dma_channel_disable(DMA0, DMA_CH0); ADC0_Flag=1; } } 最后 以上的代码会在Q_qun里分享。
usart_interrupt_flag_clear(uartx->uart_x,USART_INT_FLAG_IDLE); usart_interrupt_enable(uartx->uart_x,USART_INT_IDLE); usart_dma_receive_config(uartx->uart_x,USART_DENR_ENABLE); return uart_state; } 16.4.3main函数实现 以下为main函数代码: ...
一、初始化配置 选择DMA通道 根据GD32的用户手册确定使用DMA-CH1发送USART0-TX数据,DMA-CH2接收USART-...
usart_interrupt_flag_clear(uartx->uart_x,USART_INT_FLAG_IDLE); usart_interrupt_enable(uartx->uart_x,USART_INT_IDLE); usart_dma_receive_config(uartx->uart_x,USART_DENR_ENABLE); return uart_state; } 16.4.3main函数实现 以下为main函数代码: ...
voidDMA0_Channel0_IRQHandler(void){if(dma_interrupt_flag_get(DMA0,DMA_CH0,DMA_INT_FLAG_FTF)==SET){dma_interrupt_flag_clear(DMA0,DMA_CH0,DMA_FLAG_FTF);//清除DMA通道传输完成标志dma_channel_disable(DMA0,DMA_CH0);ADC0_Flag=1;}} ...