使用中断接收数据方式,串口助手提供数据,串口1接收完成标 RC1IF 不置1 ; 使用示波器观测到RC7端口波形正常;
PS:此芯片双串口中,串口2接收发送均正常,串口1发送正常;
以下为串口1初始化配置: MOVLW B'00000000' ; 设:RC 端口 为数字接口状态
MOVWF ANSELC ;
MOVLW B'11000000' ; 设:RC6,RC7=IN;其余OUT
MOVWF TRISC ; 装:TRISC 输入输出控制寄存器
; - - - - - - - 初始化:异步 通讯 寄存器 - - - - - - - - - - - - - - - - - - - - - - - -
MOVLW B'00001000' ; BRG16=1
MOVWF BAUDCON1
MOVLW B'00000100' ;
MOVWF TXSTA1
MOVLW B'10110000' ; 异步模式,8位,高速
MOVWF RCSTA1
CLRF SPBRGH1
MOVLW D'138'
MOVWF SPBRG1 ; 波特率设置为115200 D'138'
BSF PIE1,TX1IE ; 置:TX中断 使能
BCF IPR1,TX1IP ; 清:TX中断 低优先级
BSF PIE1,RC1IE ; 置:RC中断 使能
BSF IPR1,RC1IP ; 置:RC中断 高优先级
BSF RCON,IPEN ; 置:中断优先级 使能位
BSF INTCON,PEIE ; 置:外部中断 使能位
BSF INTCON,GIE ; 置:全部 中断 使能位
以下为中断代码:
INTSERVE_H
BCF INTCON,GIE ; 置:全部 中断 使能位
BCF INTCON,PEIE ; 置:外部中断 使能位
; - - - - - - - 中断现场保护- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MOVWF W_TEMP
MOVFF STATUS,STATUS_TEMP
MOVFF BSR,BSR_TEMP
MOVFF PCLATH,PCLATH_TEMP
BTFSC PIR3,RC2IF ; 查:异步 接收中断 标志位
GOTO COMM_LCD ; 转到 LCD接收
BTFSC PIR3,TX2IF ; 查:LCD异步通讯 TX 中断标志
GOTO SEND_DEAL ; 到:"SEND_DEAL" 继续 发送数据
BTFSC PIR1,RC1IF ; 查:异步 接收中断 标志位
GOTO COMM_RS ; 转到 硬件通讯接收
GOTO RE_HRE ;
; - - - - - - - 中断现场保护- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
COMM_RS
BSF PORTC,TEST ;
BCF PIE1,RC1IE ; 清: RX中断 使能
; - - - - - - - 装载 下一个地址 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
INCF RX_COUNT,F
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
LFSR 1,H'0550' ; 设:间接数据寄存器 H'0550' 地址指针
MOVLW H'4F'
ADDWF RX_COUNT,W
MOVWF FSR1L
MOVFF RCREG1,POSTINC1 ; 装:寄存器 H'0520'起
GOTO COMM_RS_0B ; 中断返回
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
COMM_RS_0B
BCF RCSTA1,CREN ; 置:RC中断 连续接收 使能
BSF PIE1,RC1IE ; 置:RC中断 使能
BSF RCSTA1,CREN ; 置:RC中断 连续接收 使能
; - - - - - - - 中断现场恢复 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
RE_HRE
MOVFF BSR_TEMP,BSR
MOVF W_TEMP,W
MOVFF STATUS_TEMP,STATUS
MOVFF PCLATH_TEMP,PCLATH
BSF INTCON,PEIE ; 置:外部中断 使能位
BSF INTCON,GIE ; 置:全部 中断 使能位
CLRWDT
RETFIE ; 中断返回
求大神指教!!!!
|