搜索
bottom↓
回复: 7

程序单步调试时跟预期一样,全速运行时就错误

[复制链接]

出0入0汤圆

发表于 2013-6-5 19:50:56 来自手机 | 显示全部楼层 |阅读模式
本帖最后由 tianxiaoMCU 于 2013-6-6 12:27 编辑

开发环境:windows xp  + MDK v4.71a
调试工具:ULink 2
芯片:LPC 1788
库版本:v1.17
程序功能:通过串口0发送数据给LCD 1602显示,接收到“clear”时清屏,接收到两个连续的空格时换行。波特率9600,数据位8位,停止位1位,奇校验。
串口助手:Teminal

存在问题可能标题没说得很明白,单步调试时上述功能正常,全速运行时接收到"clear "和空格时不执行相关功能,而是显示"clear "和空格。


下面是主函数的程序
  1. uint8_t clear[] = "clear";
  2. uint8_t linefeed[] = "  ";


  3. int main(void)
  4. {
  5.     uint8_t disp[24];
  6.     uint8_t i = 1,k = 1;
  7.    
  8.     LCD1602_GPIO_Init();
  9.     LCD1602_Init();
  10.     UARTn_Init();
  11.    
  12.     UARTSend(_LPC_UART, menu, sizeof(menu));
  13.    
  14.     while (1)
  15.     {
  16.         if (receiveok == SET)
  17.         {
  18.             receiveok = RESET;
  19.             
  20.             UARTReceive(_LPC_UART, disp, sizeof(disp));

  21.             i = strcmp((const char *)disp, (const char *)clear);
  22.             k = strcmp((const char *)disp, (const char *)linefeed);
  23.             
  24.             if (0 == k)
  25.             {
  26.                 Cousor_Y = 1 - Cousor_Y;
  27.                 Cousor_X = 0;
  28.             }
  29.             else if (0 == i)
  30.             {
  31.                 LCD1602_DisplayClear();
  32.                 Cousor_X = 0;
  33.                 Cousor_Y = 0;
  34.             }
  35.             else
  36.             {
  37.                 LCD1602_SetCousor(Cousor_X, Cousor_Y);
  38.                 LCD1602_DisplayString(disp);
  39.             }
  40.             memset(disp, 0, sizeof(disp));      
  41.         }
  42.     }
  43. }
复制代码
把工程也放上来吧

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2013-6-5 21:37:59 | 显示全部楼层
应该是复位那里的问题。调试的时候可能设置的复位条件跟正常运行不一样。

出0入0汤圆

 楼主| 发表于 2013-6-6 10:03:51 | 显示全部楼层
lalapunk1983 发表于 2013-6-5 21:37
应该是复位那里的问题。调试的时候可能设置的复位条件跟正常运行不一样。 ...

有什么解决思路么?难道换一个复位电路?

出0入0汤圆

发表于 2013-6-7 22:15:26 | 显示全部楼层
最好看看有没有假焊,我遇到过一次这样的问题,单步可以全速就不行,后来查出来是假焊的问题

出0入0汤圆

 楼主| 发表于 2013-6-9 21:34:53 | 显示全部楼层
gnocy 发表于 2013-6-7 22:15
最好看看有没有假焊,我遇到过一次这样的问题,单步可以全速就不行,后来查出来是假焊的问题 ...

怎么会是硬件问题呢,我压根不会想到

出0入0汤圆

发表于 2013-6-9 22:16:31 | 显示全部楼层
现在解决了没有,因为我是PGA封装的,后面我再补焊一次就OK了

出0入0汤圆

 楼主| 发表于 2013-6-9 22:17:43 | 显示全部楼层
没有哦,主管不让我弄下去了,让我去整CY7C68013的slave FIFO

出0入0汤圆

发表于 2013-6-9 22:22:59 | 显示全部楼层
把strcmp换成strstr试试
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-12 05:35

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表