【求助】keilc 编程 串口输出 显示数组元素

dabaobear 2007-09-20 09:23:16
unsigned char *c[25]={"00","01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24"};
//向串口发送一个字符串,长度不限。
void send_string_com(unsigned char *str)
{
while(*str!='\0')
{
send_char_com(*str);
*str=*str++;
}
*str=0;
}
for(j=1;j<25;j++)
{
send_string_com(c[j]); //※
}

※这个语句编译不通过。非法指针转换。
...全文
988 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
dabaobear 2007-09-20
  • 打赏
  • 举报
回复
提示错误信息
*** ERROR L114: SEGMENT DOES NOT FIT
SPACE: DATA
SEGMENT: _DATA_GROUP_
BASE: 0000H
LENGTH: 00A0H
Program Size: data=173.0 xdata=0 code=2339
Target not created
shen_guang_wu 2007-09-20
  • 打赏
  • 举报
回复
不会吧!把编译提示信息和你的全部文件贴出来看看!
dabaobear 2007-09-20
  • 打赏
  • 举报
回复
^_^ 改成code 就好了。要是用xdate 还要加硬件吧。
shen_guang_wu 2007-09-20
  • 打赏
  • 举报
回复
如果你的数据是不需要修改的,你也可以改成code(const)
dabaobear 2007-09-20
  • 打赏
  • 举报
回复
xdata 外部数据区64K字节 数据放在那里 对整个程序没有什么影响吗?
lbing7 2007-09-20
  • 打赏
  • 举报
回复
xdata unsigned char *c[25]={"00","01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24"};
lbing7 2007-09-20
  • 打赏
  • 举报
回复
*str=*str++;//还要注意的是,你这句改动了原缓冲区的数据,这个很危险....
lbing7 2007-09-20
  • 打赏
  • 举报
回复
不是语法问题,是你的段溢出了,你的DATA区超过了128字节

Program Size: data=173.0

改你变量的存放区域,放到CODE或是XDATA里都可以...

另外:

for(j=1;j<25;j++)
C的数组下标从0开始....
dabaobear 2007-09-20
  • 打赏
  • 举报
回复
unsigned char *c[10]={"00","01","02","03","04","05","06","07","08","09"};
我把长度改到 10 就能通过编译了。
我需要24个 怎么改?

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧