找回密码
 立即注册
查看: 92|回复: 3

32G12K64如何定义常量数组用于查表?

[复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:40
  • 最近打卡:2025-07-29 09:06:13

5

主题

21

回帖

275

积分

中级会员

积分
275
发表于 2025-7-10 10:06:45 | 显示全部楼层 |阅读模式
如下图,我使用最简单的方式将表格数据定义为变量,仿真的时候发现数组中的数据是不对的,请问是哪里的问题呢?如果我将数组定义为常量const unsigned int ntc_temp_table[25][2],那么仿真看到的ntc_temp_table数组中的值都为0.
截图202507101004117841.jpg

回复

使用道具 举报 送花

3

主题

247

回帖

-795

积分

等待验证会员

积分
-795
发表于 2025-7-10 10:08:00 | 显示全部楼层
在使用STC32G12K64单片机进行查表操作时,正确地定义常量数组是确保程序运行稳定和数据准确的关键。以下是对您问题的详细分析及解决方案。

首先,您提到将表格数据定义为变量,但在仿真过程中发现数组中的数据不正确。这可能是因为变量未被正确初始化或存储位置不符合预期。建议检查变量是否在正确的内存区域中被初始化,例如是否位于RAM或Flash中。此外,确保在代码中对变量进行了正确的赋值,避免因初始化错误导致数据异常。

接下来,关于将数组定义为常量const unsigned int ntctemptable[25][2]后,仿真时看到的值均为0的问题。这通常与编译器的优化设置有关。某些编译器在优化级别较高时,可能会移除未使用的常量数据,导致数组值无法正确显示。建议检查编译器的优化选项,适当降低优化级别以保留常量数据。

此外,确保在代码中正确引用了常量数组,并且数组的访问方式符合语法要求。如果数组未被正确引用,也可能导致数据读取错误。最后,建议在仿真环境中使用调试工具,逐步检查数组的值,以确认问题所在并进行相应调整。

[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:99
  • 最近打卡:2025-07-31 08:10:39
已绑定手机

17

主题

474

回帖

1475

积分

金牌会员

积分
1475
发表于 2025-7-10 10:34:08 | 显示全部楼层
u8 code table[512] = {0x123...};
u8 ecode table[512] = {0x123...};
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:441
  • 最近打卡:2025-08-01 00:05:50
已绑定手机

149

主题

1788

回帖

3002

积分

论坛元老

积分
3002
发表于 2025-7-10 11:19:03 | 显示全部楼层
NTC那个例程就是查表法
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-8-1 05:06 , Processed in 0.128952 second(s), 65 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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