打印
[技术问答]

N76E003双串口中断配置、问题及解决方法

[复制链接]
993|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
注销|  楼主 | 2020-9-8 10:52 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
N76E003双串口中断配置、问题及解决方法

最近在调试N76E003串口0,串口1中断时,发现当串口0开启中断后,串口1中断无法正常工作,下面详细说说自己的办法。(我的问题原因是中断优先级造成的,取消串口1中断优先级即可解决)


由下图1可以看到,N76E003这颗芯片,RXD_1、TXD_1为串口1,并且两个引脚也分别是仿真器的TICECLK、TICEDAT。所以无法在编译器中进行硬件仿真。
在官方例程uart1中,也有相关提醒

!!! N76E003 UART1 pin also occupied by debug pin, please remove
Nu-link or not in debug mode to test UART1 function. External UART1
connect also disturb debug download

串口配置

根据下图2,我们可得知串口0中断号为4,串口1中断号为15

根据下图3对中断使能寄存器IE进行配置
IE = 0x90; //允许总中断中断,串口0中断

串口1中断使能寄存器未在IE中,而在EIE1扩展寄存器中,参照下图4对串口1中断进行配置
set_ES_1;//开启串口1中断使能

N76E003提供4级中断优先级,根据下图5,我将串口0配置为了第二优先级,将串口1配置为了第三优先级,第一优先级给外部中断1使用,此处不表
set_PSH;//设定串口0设为第二优先级 clr_PS;//开启此处,会造成串口1无法中断 clr_PSH_1;//设定串口1为第三优先级 set_PS_1;

最后发现造成串口1无法中断的原因,就是开启了串口0的第二优先级,屏蔽相关代码后解决。造成原因尚不明确,最后建议大家在使用串口1时,如果出现无法中断的问题,可以考虑从优先级和nu_link仿真器两方面下手。


使用特权

评论回复
沙发
chenqianqian| | 2020-9-10 17:52 | 只看该作者
感谢楼主分享。

使用特权

评论回复
板凳
liangshuang95| | 2020-9-10 18:03 | 只看该作者
感谢分享学习

使用特权

评论回复
地板
明天真的好| | 2020-9-11 09:09 | 只看该作者
N76E003这颗芯片,RXD_1、TXD_1为串口1,并且两个引脚也分别是仿真器的TICECLK、TICEDAT。所以无法在编译器中进行硬件仿真。
在官方例程uart1中,也有相关提醒

使用特权

评论回复
5
自己的灌饼| | 2020-9-11 09:14 | 只看该作者

N76E003双串口中断配置、问题及解决方法
最近在调试N76E003串口0,串口1中断时,发现当串口0开启中断后,串口1中断无法正常工作,下面详细说说自己的办法。(我的问题原因是中断优先级造成的,取消串口1中断优先级即可解决)

使用特权

评论回复
6
heimaojingzhang| | 2020-10-9 16:37 | 只看该作者
支持楼主一下

使用特权

评论回复
7
keaibukelian| | 2020-10-9 16:37 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
8
labasi| | 2020-10-9 16:50 | 只看该作者
介绍的非常详细啊

使用特权

评论回复
9
paotangsan| | 2020-10-9 16:51 | 只看该作者
先收藏了 呵呵呵

使用特权

评论回复
10
renzheshengui| | 2020-10-9 16:53 | 只看该作者
楼主辛苦啦

使用特权

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

本版积分规则

57

主题

1506

帖子

2

粉丝