• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

C52单片机的xdata字符串数组,定义后怎么使用

xbk_336830 2022-04-19 浏览量:730

方式一:

xdata 定义语句:

unsigned  char  xdata   *str="{\"success\":\"1\"\"result\":{\"timestamp\":\"1645579191\"\"datetime_1\":\"2032-02-23 09:19:51\"aa";


​使用:

while(*str!=0)
{
str++;
i++;
if (i==66) year1=*str;
  if (i==67) year2=*str;
if (i==69) month1=*str;
if (i==70) month2=*str;
if (i==72) day1=*str;
if (i==73) day2=*str;
if (i==75) hour1=*str;
if (i==76) hour2=*str;
if (i==78) minute1=*str;
if (i==79) minute2=*str;
if (i==81) sec1=*str;
if (i==82) sec2=*str;

}
得到的内容,在LCD1602上无法显示。



方式二:

xdata定义:

unsigned  char  xdata  str[120]="{\"success\":\"1\"\"result\":{\"timestamp\":\"1645579191\"\"datetime_1\":\"2032-02-23 09:19:51\"aa";


​使用:

year1=str[66];
year2=str[67];
month1=str[69];
month2=str[70];
day1=str[72];
day2=str[73];
hour1=str[75];
hour2=str[76];
minute1=str[78];
minute2=str[79];
sec1=str[81];
sec2=str[82];

在LCD1602上还是不可以显示!

LcdInit();
LcdWriteData(year1);
LcdWriteData(year2);
LcdWriteData('-');
LcdWriteData(month1);
LcdWriteData(month2);
LcdWriteData('-');
LcdWriteData(day1);
LcdWriteData(day2);
LcdWriteCom(0x40+0x80);
LcdWriteData(hour1);
LcdWriteData(hour2);
LcdWriteData(':');
LcdWriteData(minute1);
LcdWriteData(minute2);
LcdWriteData(':');
LcdWriteData(sec1);
LcdWriteData(sec2);

重金求解!!!!!!!!!!

***********重金求解******************​​​​​​​

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 可以用指针,例如


    unsigned char xdata* cpSendBufPtr;


    void UART_SendData(unsigned char *data_bufunsigned int iCount)
    {
    iUartSendLen = iCount-1;
    iSendCounter = 0;
    SBUF = data_buf[0];
    cpSendBufPtr = &data_buf[1];
    }
    • 发布于 2022-04-28
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:1
  • 不是有个变量的名么,直接用这个变量名使用就可以
    • 发布于2022-05-06
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

C52单片机的xdata字符串数组,定义后怎么使用