完善资料让更多小伙伴认识你,还能领取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:}再次谢谢哦。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】(第三篇)ADC采集+PWM输出
489 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十五章 人脸识别实验
498 浏览 0 评论
655 浏览 0 评论
如何用OpenCV的相机捕捉视频进行人脸检测--基于米尔NXP i.MX93开发板
1329 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十章 YOLO2人手检测实验
558 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11753 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 00:32 , Processed in 0.587944 second(s), Total 76, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号