WCH沁恒单片机
直播中

李宛蔓

8年用户 1047经验值
私信 关注
[问答]

CH432读取中断一直找不到是为什么?

采用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 */

回帖(2)

李凤津

2022-5-30 10:39:55
在收到了设备回复的数据之后,432的INT脚是高电平还是低电平的?主控为ST单片机的时候经常遇到的问题是我们的中断是电平型的中断,而ST的中断触发条件是边沿型的,就会出现432初始化结束就产生发送空中断,导致数据接收之后并没有产生新的的中断边沿,只是单片机没有能够进入中断。
举报

陈萍

2022-5-30 10:39:59
INT脚始终是低电平,我一直拿示波器看着, 没有任何电平变化。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分