打印
[PIC®/AVR®/dsPIC®产品]

pic18F66k22串口中断的问题

[复制链接]
1633|27
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
午夜粪车|  楼主 | 2022-2-4 23:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 pzsh 于 2022-2-7 13:44 编辑

我的串口2使用了高优先级中断,单片机连接 了串口屏。串口屏第一步设置一个数据时,后第二步马上切换到另一画面。这时单片机串口2会不进入中断。

使用特权

评论回复
沙发
caigang13| | 2022-2-5 15:24 | 只看该作者
代码看看

使用特权

评论回复
板凳
pzsh| | 2022-2-7 13:44 | 只看该作者
意思是只进入一次,然后就不进入了?

使用特权

评论回复
地板
锵才才| | 2022-2-8 11:51 | 只看该作者
串口2的中断标志位起来了没有?

使用特权

评论回复
5
ynwa| | 2022-2-8 13:39 | 只看该作者
首先,你使用的串口2中断具体是发送中断还是接收中断?
其次,你所谓"串口屏第一步设置一个数据时,后第二步马上切换到另一画面"算是一个什么操作?是上位机向MCU发数据?还是接收MCU发送的数据?请先解释一下,串口屏上的第一步第二步和单片机串口2中断之间的逻辑关联是什么?

使用特权

评论回复
6
kiwis66| | 2022-2-9 17:53 | 只看该作者
标志位?

使用特权

评论回复
7
laocuo1142| | 2022-2-11 15:31 | 只看该作者
代码贴上来看看把

使用特权

评论回复
8
stly| | 2022-2-19 10:36 | 只看该作者

还有什么现象?能再详细描述下吗?

使用特权

评论回复
9
午夜粪车|  楼主 | 2022-2-19 10:38 | 只看该作者
如果第一步和第二部时间差在0.5秒以上,就不会有问题

使用特权

评论回复
10
午夜粪车|  楼主 | 2022-2-19 10:44 | 只看该作者
第一步和第二步都是给单片机发两组数据,数组长度在15字节左右。快速操作的话。单片机的串口2就不接受数据了,仿真查看各种寄存器正常。

使用特权

评论回复
11
dengdc| | 2022-2-19 10:46 | 只看该作者
串口2的接受程序看下

使用特权

评论回复
12
午夜粪车|  楼主 | 2022-2-19 10:50 | 只看该作者
void high_priority interrupt my_isr(void){
          if(PIR3bits.RC2IF &&PIE3bits.RC2IE)
        {
        rdata = RCREG2;        
        if(Rx_en && RxCounter1 < USART1_R_LEN)
        {
            Usart1_rbuff[RxCounter1++] = rdata;
            if(RxCounter1>=USART1_R_LEN)
                Usart1_r_finish = 1;
            Comdelay = 2;  //20ms?????????????????
        }
        }
}

使用特权

评论回复
13
午夜粪车|  楼主 | 2022-2-19 10:54 | 只看该作者
其中Comdelay 在定时中 累减。定时器10ms进入一次,20ms后如果Comdelay 为零。就认为一帧数据结束。然后Rx_en =0;关串口中断,终止接受新数据。并处理数据处理完后,打开串口中断并Rx_en =1;RxCounter1 = 0;

使用特权

评论回复
14
chuxh| | 2022-2-19 10:58 | 只看该作者
我这个程序 如果操作串口屏慢一点。一点问题没有。如果手速快的话,就会出现以上的问题。

使用特权

评论回复
15
pengf| | 2022-2-19 11:02 | 只看该作者
问题已经定位到 是 接受溢出导致。但是不知道为什么会溢出。
接受数组我定义的是100个字节。
#define USART1_R_LEN                100
u8 Usart1_rbuff[USART1_R_LEN]; //
我的串口屏每次操作顶多发给单片机15字节。我把数组改成200字节。照样溢出。

使用特权

评论回复
16
dengdc| | 2022-2-19 11:08 | 只看该作者
先示波器或者usb串口,确保数据出现在物理介质上再研究单片机软件问题

使用特权

评论回复
17
zwll| | 2022-2-19 11:11 | 只看该作者
有没有看看溢出和帧错误状态?

使用特权

评论回复
18
stly| | 2022-2-19 11:13 | 只看该作者
发生Frame Error以后串口就会停掉

使用特权

评论回复
19
xxrs| | 2022-2-19 11:19 | 只看该作者
优化串口处理函数即可。还有架构和框架要做好。

使用特权

评论回复
20
午夜粪车|  楼主 | 2022-2-19 11:21 | 只看该作者

嗯,那我按大家的说法挨个排查一下,谢谢哈

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

867

主题

10194

帖子

3

粉丝