-
PIC18F46K22 串口1 不进入接收中断
使用中断接收数据方式,串口助手提供数据,串口1接收完成标RC1IF不置1;使用示波器观测到RC7端口波形正常;PS:此芯片双串口中,串口2接收发送均正常,串口1发送正常;以下为串口1初始化配置:MOVLWB'00000000';设:RC端口为数字接口状态MOVWFANSELC;MOVLWB'11000000';设:RC6,RC7=IN;其余OUTMOVWFTRISC;装:TRISC输入输出控制寄存器;-------初始化:异步通讯寄存器------------------------MOVLWB'00001000';BRG16=1MOVWFBAUDCON1MOVLWB'00000100';MOVWFTXSTA1MOVLWB'10110000';异步模式,8位,高速MOVWFRCSTA1CLRFSPBRGH1MOVLWD'138'MOVWFSPBRG1;波特率设置为115200D'138'BSFPIE1,TX1IE;置:TX中断使能BCFIPR1,TX1IP;清:TX中断低优先级BSFPIE1,RC1IE;置:RC中断使能BSFIPR1,RC1IP;置:RC中断高优先级BSFRCON,IPEN;置:中断优先级使能位BSFINTCON,PEIE;置:外部中断使能位BSFINTCON,GIE;置:全部中断使能位以下为中断代码:INTSERVE_HBCFINTCON,GIE;置:全部中断使能位BCFINTCON,PEIE;置:外部中断使能位;-------中断现场保护------------------------------MOVWFW_TEMPMOVFFSTATUS,STATUS_TEMPMOVFFBSR,BSR_TEMPMOVFFPCLATH,PCLATH_TEMPBTFSCPIR3,RC2IF;查:异步接收中断标志位GOTOCOMM_LCD;转到LCD接收BTFSCPIR3,TX2IF;查:LCD异步通讯TX中断标志GOTOSEND_DEAL;到:"SEND_DEAL"继续发送数据BTFSCPIR1,RC1IF;查:异步接收中断标志位GOTOCOMM_RS;转到硬件通讯接收GOTORE_HRE;;-------中断现场保护-----------------------------------COMM_RSBSFPORTC,TEST;BCFPIE1,RC1IE;清:RX中断使能;-------装载下一个地址---------------------------------INCFRX_COUNT,F;-----------------------------------------------LFSR1,H'0550';设:间接数据寄存器H'0550'地址指针MOVLWH'4F'ADDWFRX_COUNT,WMOVWFFSR1LMOVFFRCREG1,POSTINC1;装:寄存器H'0520'起GOTOCOMM_RS_0B;中断返回;--------------------------------------------C
2022-03-08 5