/**************************************************************************
? ? ? ? ? 設(shè)置CH438串口7的寄存器
**************************************************************************/
//? ? UART7_Reset();
? ? div = ( Fpclk >> 4 ) / CH438UART7_BPS;
? ? DLM = div >> 8;
? ? DLL = div & 0xff;
? ? WriteCH438Data( REG_LCR7_ADDR, BIT_LCR_DLAB );? ? /* 設(shè)置DLAB為1 */
HAL_Delay(5);
? ? WriteCH438Data( REG_DLL7_ADDR, DLL );? ? ? ? ? ? ?/* 設(shè)置波特率 */
HAL_Delay(5);
? ? WriteCH438Data( REG_DLM7_ADDR, DLM );
HAL_Delay(5);
WriteCH438Data( REG_LCR7_ADDR, 0X00 );? ? /* 設(shè)置DLAB為0 */
HAL_Delay(5);
WriteCH438Data( REG_FCR7_ADDR, BIT_FCR_FIFOEN| BIT_FCR_TFIFORST|BIT_FCR_RFIFORST );? ? /* 設(shè)置FIFO模式,觸發(fā)點(diǎn)為1字節(jié) */
HAL_Delay(5);
? ? WriteCH438Data( REG_LCR7_ADDR, BIT_LCR_WORDSZ1 | BIT_LCR_WORDSZ0 );? ? ? /* 字長8位,1位停止位、無校驗 */
HAL_Delay(5);
//? ? WriteCH438Data( REG_IER7_ADDR, BIT_IER_IERECV? );? ? /* 使能中斷 */
//HAL_Delay(5);
//
//WriteCH438Data( REG_MCR7_ADDR, BIT_MCR_OUT2);? ? ? ? ? ? ? /* 允許中斷輸出 */
}
上述是對串口7的初始化配置,麻煩看下有沒有問題?
現(xiàn)在出現(xiàn)的現(xiàn)象是:
1、我在初始化中沒有打開中斷,但是當(dāng)數(shù)據(jù)輸入時,INT引腳依然能變化,引發(fā)中斷。
2、SSR專用寄存器,不管是在允許還是不允許中斷的情況下,讀這個寄存器,均是0XF1,即使是剛上電,沒有數(shù)據(jù)輸入,讀這個寄存器也不是0.