[LPC] LPC2378 串口跑飞

[复制链接]
 楼主| 霜刀雪剑 发表于 2016-12-20 14:51 | 显示全部楼层 |阅读模式
今天在调试LPC2378串口,发现一个很棘手的问题,先贴代码:

  1. int main(void)
  2. {
  3.         DebugSerialInit(19200);
  4.         while(1)
  5.         {
  6.                 CommandScan();
  7.         }       
  8. }


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

跪求高手解惑!
 楼主| 霜刀雪剑 发表于 2016-12-20 17:04 | 显示全部楼层
问题已经解决,我在中断服务程序中修改了ARM的工作模式,上代码

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


照着网上的例程来的,没想到也有问题。。 由于时间关系,后面再去仔细研究下ARM工作模式。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

15

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

6

主题

15

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部