满意答案
bobo3996.
2015.05.18
采纳率:48% 等级:9
已帮助:212人
12345678910111213141516171819202122232425262728293031323334353637383940#include <stdio.h>#include typedef unsigned char uchar; struct BASICCAN_BUFStruct { uchar IDHB; uchar IDL_R_DLC; uchar Frame_Data[8];} send_BUF; uchar send_BUF_init(uchar j){ send_BUF.IDHB = 0x99; send_BUF.IDL_R_DLC = 0xE8; send_BUF.Frame_Data[0] = j; send_BUF.Frame_Data[1] = 0x00; send_BUF.Frame_Data[2] = 0x00; send_BUF.Frame_Data[3] = 0x00; send_BUF.Frame_Data[4] = 0x00; send_BUF.Frame_Data[5] = 0x00; send_BUF.Frame_Data[6] = 0x00; send_BUF.Frame_Data[7] = 0x00; return(send_BUF.Frame_Data[0]);} int main(int argc, char *argv[]){ uchar u, angle; float angle0; u = 0x00; angle0 = 60 * u / 51; angle = angle0; printf("u = 0x%X, angle = 0x%X, angle = 0x%X\n", u, angle, angle0); send_BUF_init(angle); printf("send_BUF.Frame_Data[0] = 0x%X\n", send_BUF.Frame_Data[0]); return 0;}
uchar printf打印 应该用 %c ,%x是打印的十六进制值,你这个U用0 得到的结果只能是0 ,所以修改U的值,就可以正常显示了追问: void main改为int main(int grac,char *argv[]),还有加的头文件分别是什么意思啊,main函数返回0又是什么
追答: 你这个问题,就是多添加打印调试信息,判断哪里出问题了,代码有点长,没时间给你检查。你自己慢慢检查吧,int main(int argc, char *argv[]) 这个是准备的C语言 main函数格式
void main这个有些编译不能编译,而int main是所有编译器都可以编译的
追问: http://pan.baidu.com/share/link?shareid=3926801427&uk=2235005660
我在上位机得到的数据全是0你帮我看看
00分享举报