gpt4 book ai didi

c - lpc2148 RTC打印问题

转载 作者:行者123 更新时间:2023-11-30 19:34:47 30 4
gpt4 key购买 nike

在此处输入代码

void DateTimeConversion (void)
{
unsigned char TempDay,TempMonth,TempYear,i;
unsigned char TempHour,TempMinute,TempSecond;
TempDay=0;TempMonth=0;TempYear=0;TempHour=0;TempHour=0;TempSecond=0;
col=1;
for(i=0;i<10;i++)
{
sprintf(MyStr,"%c",(unsigned int)StoreUserID[i]);
ClcdGoto(col,2);ClcdPutS_P(MyStr);
col++;
}

TempDay=((unsigned int)(StoreUserID[6] * 10) + (unsigned int)(StoreUserID[7] * 1));
TempMonth=((unsigned int)(StoreUserID[8] * 10) + (unsigned int)(StoreUserID[9] * 1));
TempYear=((unsigned int)(StoreUserID[4] * 10) + (unsigned int)(StoreUserID[5] * 1));
TempHour = ((unsigned int)(StoreUserID[0] *10) + (unsigned int)(StoreUserID[1] * 1));
TempMinute = ((unsigned int)(StoreUserID[2] *10) + (unsigned int)(StoreUserID[3] * 1));
TempSecond = ((unsigned int)(StoreUserID[4] *10) + (unsigned int)(StoreUserID[5] * 1));
}

我使用 LPC 2148 作为 RTC。
描述:

  1. 我使用单键读取同一列上的多个值(0-9)(使用 2 行 LCD 显示屏)。

  2. 读取的值存储在StoreUserId数组中(因为col++数组也增加了)

  3. 调用上述函数来保存 SEC、MINUTE、HOUR 的值。

  4. 打印 StoreUserid 以交叉检查输入的值是否正确。

  5. 但是转换后(检查乘以 *10)TempSecond、TempMinute、TempHour 在转换后显示随机值,但没有得到问题在哪里?

最佳答案

您的问题几乎肯定在这里:

{sprintf(MyStr,"%c",(unsigned int)StoreUserID[i]);

我无法知道您如何声明 StoreUserID 数组(作为 char?作为 int?)以及为什么您始终如一转换为unsigned int(对于这样的小正数,它没有意义),但有以下两个最可能的更正:

{sprintf(MyStr,"%c", StoreUserID[i]);      // for character representation in StoreUserID[]

或者 - 我认为这就是你的情况 -

{sprintf(MyStr,"%c",StoreUserID[i] + '0'); // for numerical one - the conversion is needed

说明:

数字0具有字符表示'0',它是某个数字(在ASCII中是48)。
数字 1 具有字符表示 '1',它是下一个数字(在 ASCII 中为 49)。
...等等。
因此,您需要添加值'0'以从裸数字中获取字符表示

关于c - lpc2148 RTC打印问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43398841/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com