/**************************************************************************
设置CH438串口7的寄存器
**************************************************************************/
// UART7_Reset();
div = ( Fpclk >> 4 ) / CH438UART7_BPS;
DLM = div >> 8;
DLL = div & 0xff;
WriteCH438Data( REG_LCR7_ADDR, BIT_LCR_DLAB ); /* 设置DLAB为1 */
HAL_Delay(5);
WriteCH438Data( REG_DLL7_ADDR, DLL ); /* 设置波特率 */
HAL_Delay(5);
WriteCH438Data( REG_DLM7_ADDR, DLM );
HAL_Delay(5);
WriteCH438Data( REG_LCR7_ADDR, 0X00 ); /* 设置DLAB为0 */
HAL_Delay(5);
WriteCH438Data( REG_FCR7_ADDR, BIT_FCR_FIFOEN| BIT_FCR_TFIFORST|BIT_FCR_RFIFORST ); /* 设置FIFO模式,触发点为1字节 */
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的初始化配置,麻烦看下有没有问题?
现在出现的现象是:
1、我在初始化中没有打开中断,但是当数据输入时,INT引脚依然能变化,引发中断。
2、SSR专用寄存器,不管是在允许还是不允许中断的情况下,读这个寄存器,均是0XF1,即使是刚上电,没有数据输入,读这个寄存器也不是0.