采用STM32L151+CH432T+TP8485搭建了一个系统用于485通信,现在初始化CH432T和通过CH432T发送命令没问题,此时设备会回复一段数据,从CH432T的RX1用示波器也能看到返回的所有数据。因为返回数据大于16B,我设置FIFO 14B触发,我理解会在INT#上产生一个触发,STM32中断后读取即可,但是无论是示波器看还是STM32均没有看到这个中断。直接读取也能读取到返回数据的一部分...但是不全
一开始觉得可能是INT#直接连STM32不行,之后就接了一个10kohm电阻上拉,也还是同样的问题。请教下论坛的大神,有没有其他思路,还是我理解的这个INT#不对。
初始化配置参考了DEMO如下
//设置串口0配置 div = (CLK_FREQ>>4)/CH432_PRORT1_RATE; u8DLMValue = div>>8; u8DLLValue = div&0xff; writeCH432Data( REG_LCR_ADDR, BIT_LCR_DLAB ); /* 设置DLAB为1 */ writeCH432Data( REG_DLL_ADDR, u8DLLValue ); /* 设置波特率 */ writeCH432Data( REG_DLM_ADDR, u8DLMValue ); writeCH432Data( REG_FCR_ADDR, BIT_FCR_RECVTG1 | BIT_FCR_RECVTG0 | BIT_FCR_FIFOEN ); /* 设置FIFO模式,触发点为14 */ writeCH432Data( REG_LCR_ADDR, BIT_LCR_WORDSZ1 | BIT_LCR_WORDSZ0 ); /* 字长8位,1位停止位、无校验 */ writeCH432Data( REG_IER_ADDR, BIT_IER_IEMODEM | BIT_IER_IELINES | BIT_IER_IETHRE | BIT_IER_IERECV ); /* 使能中断 */ writeCH432Data( REG_MCR_ADDR, BIT_MCR_OUT2 | BIT_MCR_RTS | BIT_MCR_DTR ); /* 允许中断输出,DTR,RTS为1 */