|
第一種 USART_IT_TXE(發送寄存器空中斷) 顧名思義,一旦寄存器空了 就會中斷一次,為了防止一直進該中斷或者不斷往該寄存器裝載數據,
在不裝載數據時,一般需要做如下操作:
1.初始化的時候,屏蔽該中斷
USART_ITConfig(USARTx, USART_IT_TXE, DISABLE);
2.要發送數據前,使能該中斷
USART_ITConfig(USARTx, USART_IT_TXE, ENABLE);
3.發送數據結束后,屏蔽該中斷
USART_ITConfig(USARTx, USART_IT_TXE, DISABLE);
第二種 USART_IT_TC(發送完成中斷) 意為:發送寄存器發送完成之后,會進一次中斷,它不像發送寄存器空中斷,這時填入下一個數據,等到發送完成后再一次進入中斷。這里需要注意的一點是,為了防止每次發生的第一個數據丟失,需要事先將該標志清零,USART_ClearFlag(USART2,USART_FLAG_TC)。
第三種方式采用DMA通道發送,具體的需要日后介紹。
另外不管是哪種發送方式,需要一提的是倘若用于485通信時,一定要檢測USART_FLAG_TC,即進入一次發送完成標志,才可以切換接收模式,否則會造成最后一個字節未發出。 |
|