找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1913|回复: 16
收起左侧

单片机keil C语言中数组赋值问题

  [复制链接]
ID:1006504 发表于 2022-2-23 21:27 | 显示全部楼层 |阅读模式
unchar TIME[7] = {0x00, 0x00, 0x12, 0x23, 0x02, 0x06, 0x22};
void Timepros()
{
        
        Disp1[0]=TIME[0]/16;
        Disp1[1]=TIME[0]&0x0f;
        Disp1[2]='F';
        Disp1[3]=TIME[1]/16;
        Disp1[4]=TIME[1]&0x0f;
        Disp1[5]='K';
        Disp1[6]=TIME[2]/16;
        Disp1[7]=TIME[2]&0x0f;
        Disp1[8]='Y';
}[code]
关于这段赋值一直报错,初学单片机一下午了还没能解决问题,我是想将DS1302的时钟数据储存在一个数组中,然后LCD1602液晶显示屏幕显示出来,可一直没成功,有人能帮我解答下吗?
回复

使用道具 举报

ID:161164 发表于 2022-2-23 21:50 | 显示全部楼层
不把报错讯息一起贴上来是要考我们吗?
我猜是unchar<------ uchar?
回复

使用道具 举报

ID:879809 发表于 2022-2-23 22:11 | 显示全部楼层
Disp[2][5][8]里面放的是ASCII码,其他放的都是数字,没转ASCII,这两种数据肯定有一个是错的。
回复

使用道具 举报

ID:624769 发表于 2022-2-24 00:12 | 显示全部楼层
rundstedt 发表于 2022-2-23 22:11
Disp[2][5][8]里面放的是ASCII码,其他放的都是数字,没转ASCII,这两种数据肯定有一个是错的。

你知道不知道, 很多老码农,为了方便验证一些东西, 通常在做显示库时候,会把 0x00~0x0F 这个索引位置放上 0~F 的字库,来方便显示 16进制?  换句话说, 0x01 可以索引到 ‘1’ , 0x31 也可以索引到‘1’ , 同样 0x41可以索引到 'A'  。0x0A 也可以索引到‘A'。很明显按楼主的提问,和发上来的代码看,在别人代码上修改的概率是极高的,你怎么知道显示用的不是”完全库“?

你都没看人家代码,你怎么就知道人家一定有一个错? 人家有说是显示出错么? 人家沙发帮了那么多人,看过的代码不比你多? 人家都说要看看代码,你以为就你知字符转换问题?

一般,很多人都是半桶水晃荡,这段时间看你晃荡的很厉害,哪儿都有看到你喷两句的,问题是你有半桶水么? 一会儿在这里说”错“,一会儿在那里说”无知“的, 你自己有”真知“么,真的说对的有几个?
回复

使用道具 举报

ID:879809 发表于 2022-2-24 01:06 | 显示全部楼层
188610329 发表于 2022-2-24 00:12
你知道不知道, 很多老码农,为了方便验证一些东西, 通常在做显示库时候,会把 0x00~0x0F 这个索引位置 ...

你还真以为你是学阀了?你以为你是根葱,可惜没人拿你蘸酱。
回复

使用道具 举报

ID:290373 发表于 2022-2-24 09:40 | 显示全部楼层
贴下报错信息大家才能帮你定位错误啊
回复

使用道具 举报

ID:1003226 发表于 2022-2-24 11:00 | 显示全部楼层
数据类型一致不一致,数组内部的数据类型要求一致
回复

使用道具 举报

ID:824490 发表于 2022-2-24 12:03 | 显示全部楼层
楼主快把错误信息发上来。。你只说报错,又不说错误信息会出人命的知道不?
好比见人就说身体难受,又不说头痛还是脚麻,大家靠猜来帮你啊?
回复

使用道具 举报

ID:139866 发表于 2022-2-24 13:33 | 显示全部楼层
188610329 发表于 2022-2-24 00:12
你知道不知道, 很多老码农,为了方便验证一些东西, 通常在做显示库时候,会把 0x00~0x0F 这个索引位置 ...

论坛是大家提出问题讨论解决问题的地方,你这一句你不行那一句半桶水晃荡,合着整个论坛全都靠你呗?不要老是觉得自己很厉害,谦虚才能使人进步,有则改之无则加勉,而不是今天你不对,明天他不对,发现不了问题怎么进步,大家都是一步一步学过来的,希望你能保持自己的敬畏之心吧。

说远了,建议楼主问问题的时候最好把错误信息截个图,或者把程序打包上来,这几行代码只能看出这些
        Disp1[0] = 0;
        Disp1[1] = 0;
        Disp1[2] = 'F';
        Disp1[3] = 0;
        Disp1[4] = 0;
        Disp1[5] = 'K';
        Disp1[6] = 1;
        Disp1[7] = 2;
        Disp1[8] = 'Y';
回复

使用道具 举报

ID:123289 发表于 2022-2-26 13:56 | 显示全部楼层
关键是提升自查的能力,现在这个问题还很初级,更复杂时,咋办?总要学会自己走路的吧。
回复

使用道具 举报

ID:690831 发表于 2022-3-2 16:09 | 显示全部楼层
unchar TIME[7] = {0x00, 0x00, 0x12, 0x23, 0x02, 0x06, 0x22};
void Timepros()
{
        
        Disp1[0]=TIME[0]/16;
        Disp1[1]=TIME[0]&0x0f;
        Disp1[2]='F';
        Disp1[3]=TIME[1]/16;
        Disp1[4]=TIME[1]&0x0f;
        Disp1[5]='K';
        Disp1[6]=TIME[2]/16;
        Disp1[7]=TIME[2]&0x0f;
        Disp1[8]='Y';
}[code]

这个【code】用在这里是有什么作用呢
回复

使用道具 举报

ID:1007767 发表于 2022-3-2 16:11 | 显示全部楼层
没转ASCII,导致的错误
回复

使用道具 举报

ID:161164 发表于 2022-3-2 17:26 | 显示全部楼层
iamluckman 发表于 2022-3-2 16:09
unchar TIME[7] = {0x00, 0x00, 0x12, 0x23, 0x02, 0x06, 0x22};
void Timepros()
{

论坛功能

  1. unchar TIME[7] = {0x00, 0x00, 0x12, 0x23, 0x02, 0x06, 0x22};
  2. void Timepros()
  3. {
  4.         
  5.         Disp1[0]=TIME[0]/16;
  6.         Disp1[1]=TIME[0]&0x0f;
  7.         Disp1[2]='F';
  8.         Disp1[3]=TIME[1]/16;
  9.         Disp1[4]=TIME[1]&0x0f;
  10.         Disp1[5]='K';
  11.         Disp1[6]=TIME[2]/16;
  12.         Disp1[7]=TIME[2]&0x0f;
  13.         Disp1[8]='Y';
  14. }
复制代码


用【code】代码【/code】用作代码排版
回复

使用道具 举报

ID:121859 发表于 2022-3-2 19:19 | 显示全部楼层
去掉函数Timepros()末尾的 [code]就可以了。
回复

使用道具 举报

ID:690831 发表于 2022-3-6 00:59 | 显示全部楼层

原来如此,谢谢指教
回复

使用道具 举报

ID:700967 发表于 2022-3-6 01:10 来自手机 | 显示全部楼层
设置一个变量,将TIME数组的数量给变量参与计算试试
回复

使用道具 举报

ID:883242 发表于 2022-3-6 11:06 | 显示全部楼层
188610329 发表于 2022-2-24 00:12
你知道不知道, 很多老码农,为了方便验证一些东西, 通常在做显示库时候,会把 0x00~0x0F 这个索引位置 ...

完全没有道理,“错”、“无知”说的就是你。
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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