完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
我写了一个X5045的写数据函数,在单个输入字符的时候,没有问题,想着连续写入3-8个字符的时候,出现错误,请帮忙指出错误原因,万分感谢,程序附下:
void x5045_byte_write(uchar addh,addl,dat_num,unsigned int *dat_add) //写入系统参数 { uchar ah,i,k=0; if(addh==0) ah = 0x02; //低128用0x02,高128用0x0a; else ah = 0x0a; stax(); //启动信号 byte_in(0x06);//写指令 stax(); //开始信号 byte_in(ah); //写入数据的高位地址 byte_in(addl); //写入数据的低位地址 for(i=dat_num;i>0;i--) //循环写入指定个数的字节 { byte_in(*(dat_add+k)); k++; } endx(); //结束 status_ready(); //查询总线状态 } 上面是子程序,子程序把循环写入指定个数的字节的部分改成直接写入某一个字节,主程序调用时好用的,但是想要连续写入3-8个字节时,在主程序中调用时是这样设想的: x5045_dat[0] = 1; x5045_dat[2] = 2; x5045_dat[3] = 3; p = x5045_dat; x5045_byte_write(0,0x10,3,*p); 比如上例中,要在X5045的0X10,0X11,0X12中依次写入 1,2,3,程序报错 SINGLE_C.C(72): error C214: illegal pointer conversion x5045_byte_write(0,0x10,3,*p); 本句错误; 请高手指明错误原因,以让俺对指针的理解更进一步,谢谢。 |
|
相关推荐
4个回答
|
|
|
感觉用汇编写好简单啊,用R0,R1,R2在加几个@R0的指令,做个循环,就OK了,现在写C感觉摸不到头脑啊,错了也不知道怎么错的。{:soso_e109:}
|
|
|
|
|
|
指针的定义问题,已经查清楚了,是对指针的理解不到位。
|
|
|
|
|
|
本句错误那里,把P前面的*号去了,再编译一下。
|
|
|
|
|
|
非常感谢,就是在这个*这里。 也在这里给像我一样的初学者提醒一个,函数定义的形参如果是指针变量,那么实参传递的时候直接传递指针给形参的指针变量,就是hexiaoxiao帮我指出来的这个*去掉。{:soso_e179:}再次谢谢哦。 |
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
265 浏览 0 评论
【原创】【RA4M2-SENSOR开发板评测】低功耗+USB综合测试
789 浏览 0 评论
1306 浏览 2 评论
787 浏览 0 评论
【RA4M2-SENSOR开发板评测】Analogue+Timers综合测试
1587 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
16901 浏览 31 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 06:11 , Processed in 0.670186 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2794