打印
[LPC]

LPC2378 串口跑飞

[复制链接]
774|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
霜刀雪剑|  楼主 | 2016-12-20 14:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天在调试LPC2378串口,发现一个很棘手的问题,先贴代码:

int main(void)
{
        DebugSerialInit(19200);
        while(1)
        {
                CommandScan();
        }       
}


很简单的一个程序,在串口中断中接收命令,主循环中判断数据接收情况,执行命令扫描函数。现在情况是我把CommandScan注释掉,程序发送接收一切正常,只要把CommandScan加进来,串口接收一段字符后,程序就跑飞了,完全不知道啥状况。可能有的人会认为是CommandScan函数中作了什么操作,现在我把这个函数中代码全部注释,依然会有这个问题。。。。。

跪求高手解惑!

相关帖子

沙发
霜刀雪剑|  楼主 | 2016-12-20 17:04 | 只看该作者
问题已经解决,我在中断服务程序中修改了ARM的工作模式,上代码

static u32 sysreg;                /* used as LR register */
#define IENABLE __asm { MRS sysreg, SPSR; MSR CPSR_c, #SYS32Mode }
#define IDISABLE __asm { MSR CPSR_c, #(IRQ32Mode|I_Bit); MSR SPSR_cxsf, sysreg }


照着网上的例程来的,没想到也有问题。。 由于时间关系,后面再去仔细研究下ARM工作模式。

使用特权

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

本版积分规则

6

主题

15

帖子

0

粉丝