找回密码
 立即注册
楼主: 创隆科技

C251(KEIL5)和C51(KEIL4),写程序要注意那些问题?两者有啥不同

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2024-5-13 09:15:13 | 显示全部楼层
记得c251的 数组定义,必须放在函数外(全局),否则编译通不过。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-05-10 16:29:53

12

主题

66

回帖

285

积分

中级会员

积分
285
发表于 2024-5-14 00:48:35 来自手机 | 显示全部楼层
LAOXU 发表于 2024-5-13 09:15
记得c251的 数组定义,必须放在函数外(全局),否则编译通不过。

对,最近遇到的就是
早期用C51时,MODBUSRTU的CRC用数组查表方式,用了几年了!
前年改用32单片机,用C251就不行了!
当时忙,就改用了计算方式,就这么用下来了!
但是问题一直接研究明白
前两天用大彩串口屏时,突然又想到这个问题
检查了半天,也找不到,调试就是卡在数组里
后来把数组不定义在程序区,就正常了!
找到问题,把数组定义在函数外就行了
由于不知道还有哪些注意的地方,特此来问大家,谢谢大家解惑
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-05-10 16:29:53

12

主题

66

回帖

285

积分

中级会员

积分
285
发表于 2024-5-14 00:50:52 来自手机 | 显示全部楼层
LAOXU 发表于 2024-5-13 09:15
记得c251的 数组定义,必须放在函数外(全局),否则编译通不过。

我的能通过,没有警告没有错误,但是程序执行不对
调试时发现汇编语言总在赋值给一个参数,然后执行两步又跳到这一句,出不来

点评

那就是记忆出偏差,总之,C251的 数组定义,必须放在函数外(全局),否则要出问题的。  详情 回复 发表于 2024-5-14 07:49
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2024-5-14 07:49:32 | 显示全部楼层
创隆*** 发表于 2024-5-14 00:50
我的能通过,没有警告没有错误,但是程序执行不对
调试时发现汇编语言总在赋值给一个参数,然后执行两步 ...

那就是记忆出偏差,总之,C251的 数组定义,必须放在函数外(全局),否则要出问题的。
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-4 10:32 , Processed in 0.116225 second(s), 66 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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