stm32串口與485通信學(xué)習(xí)筆記
stm32串口中斷:
USART_IT_PE(奇偶校驗(yàn)中斷)
USART_IT_TXE(發(fā)送中斷)
USART_IT_TC(傳輸完成中斷)
USART_IT_RXNE(接收中斷)
USART_IT_IDLE(空閑總線(xiàn)中斷)
USART_IT_LBD(LIN中斷檢測(cè)中斷)
USART_IT_CTS(CTS中斷)
USART_IT_ERR(錯(cuò)誤中斷)
485用到的中斷:
USART_IT_TC(傳輸完成中斷)
USART_IT_RXNE(接收中斷)
由于485通信需要管腳的使能才可以實(shí)現(xiàn)正常的通信所以在初始化時(shí),注意在配置初始化程序的是將485使能為接收狀態(tài)即控制管腳為高電平。當(dāng)有數(shù)據(jù)發(fā)送時(shí)程序進(jìn)入U(xiǎn)SART_IT_RXNE中斷進(jìn)行數(shù)據(jù)的接收,此時(shí)接收數(shù)據(jù)并使能發(fā)送,將數(shù)據(jù)發(fā)送到數(shù)據(jù)緩存區(qū)(注意此時(shí)不使能接收,因?yàn)榇藭r(shí)發(fā)送的時(shí)候數(shù)據(jù)只是進(jìn)入發(fā)送緩沖區(qū)數(shù)據(jù)還未發(fā)送完成),當(dāng)數(shù)據(jù)發(fā)送完成的時(shí)候,進(jìn)入U(xiǎn)SART_IT_TC中斷此時(shí)可以將管腳使能為接收狀態(tài)。