天嵌 ARM开发社区

 找回密码
 注册
查看: 2160|回复: 3

这样向串口发送十六进制数据怎么模块没反应?

[复制链接]
Real_me゛ 发表于 2013-12-7 11:49:00 | 显示全部楼层 |阅读模式
  1. void serial_rw()
  2. {       
  3.         int j,nwrite,nread;
  4.         int i = 3;
  5.         int Vfypwd[]={0xEF,0x01,0xFF,0xFF,0xFF,0xFF,0x01,0x00,0x03,0x01,0x00,0x05};
  6.        
  7.         int buffer[64]={0};

  8.         while (i--)
  9.         {
  10.                 for(j=0;j<12;j++)
  11.                 {
  12.                         write(serial_fd,Vfypwd[j],1);       
  13.                         printf("%x ",Vfypwd[j]);       
  14.                 }
  15.                 printf("\n");

  16.                 read(serial_fd,buffer,12);
  17.                
  18.                 printf("\n");
  19.                 for(j=0;j<16;j++)
  20.                 {
  21.                         printf("%x ",buffer[j]);
  22.                 }
  23.                 printf("\n");
  24.                 sleep (3);        
  25.                
  26.         }
  27.         close(serial_fd);
  28. }
复制代码

串口打印:
[root@EmbedSky zhiwen]# ./uart1_zhiwen
readserailcfg
serialread.dev is /dev/tq2440_serial1
serialread.speed is 9600
serialread.databits is 8
serialread.stopbits is 1
serialread.parity is N
ef 1 ff ff ff ff 1 0 3 1 0 5

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ef 1 ff ff ff ff 1 0 3 1 0 5

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ef 1 ff ff ff ff 1 0 3 1 0 5

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

这样表示数据发送出去了?????我的模块根本没一点反应。求大神们围观解围啊!
TQ-lkp 发表于 2013-12-9 12:11:18 | 显示全部楼层
你自发自收下看看到底发的数据对不对,另外发送直接write一个数组就行了,不用一个字节一个字节的发。
接收时要判断接收的长度。
回复

使用道具 举报

 楼主| Real_me゛ 发表于 2013-12-9 21:46:26 | 显示全部楼层
TQ-lkp 发表于 2013-12-9 12:11
你自发自收下看看到底发的数据对不对,另外发送直接write一个数组就行了,不用一个字节一个字节的发。
接 ...

谢谢你的回复,我现在write成功了,但是遇到一个新的问题,read模块返回的十六进制数据全是 0
这是我的代码
  1. void serial_rw()
  2. {       
  3.         int j,in,out;
  4.         int i;
  5.        
  6.         int Vfypwd[]={0xffff01ef,0x0001ffff,0x05000103};
  7.         int buffer[48]={0};

  8.         tcflush(serial_fd,TCIFLUSH);
  9.         tcflush(serial_fd,TCOFLUSH);
  10.         //for(i=0;i<3;i++)
  11.         {
  12.                 in=write(serial_fd,Vfypwd,sizeof(Vfypwd));       
  13.                
  14.                 tcflush(serial_fd,TCIFLUSH);
  15.                 tcflush(serial_fd,TCOFLUSH);               
  16.                 printf("in---->>>>%d\n",in);
  17.                 sleep(2);
  18.                 printf("\n");
  19.         }
  20.                 out=read(serial_fd,buffer,sizeof(buffer));
  21.                 printf("\n");
  22.                
  23.                 for(j=0;j<48;j++)
  24.                 {
  25.                         printf("buffer--->>>>>%x ",buffer[j]);
  26.                         printf("\n");
  27.                 }

  28.                 printf("out========>%d \n",out);
  29.        
  30.                 close(serial_fd);
  31. }
复制代码
回复

使用道具 举报

 楼主| Real_me゛ 发表于 2013-12-9 21:47:15 | 显示全部楼层
TQ-lkp 发表于 2013-12-9 12:11
你自发自收下看看到底发的数据对不对,另外发送直接write一个数组就行了,不用一个字节一个字节的发。
接 ...

返回是这样的
  1. in---->>>>12


  2. buffer--->>>>>0
  3. buffer--->>>>>0
  4. buffer--->>>>>0
  5. buffer--->>>>>0
  6. buffer--->>>>>0
  7. buffer--->>>>>0
  8. buffer--->>>>>0
  9. buffer--->>>>>0
  10. buffer--->>>>>0
  11. buffer--->>>>>0
  12. buffer--->>>>>0
  13. buffer--->>>>>0
  14. buffer--->>>>>0
  15. buffer--->>>>>0
  16. buffer--->>>>>0
  17. buffer--->>>>>0
  18. buffer--->>>>>0
  19. buffer--->>>>>0
  20. buffer--->>>>>0
  21. buffer--->>>>>0
  22. buffer--->>>>>0
  23. buffer--->>>>>0
  24. buffer--->>>>>0
  25. buffer--->>>>>0
  26. buffer--->>>>>0
  27. buffer--->>>>>0
  28. buffer--->>>>>0
  29. buffer--->>>>>0
  30. buffer--->>>>>0
  31. buffer--->>>>>0
  32. buffer--->>>>>0
  33. buffer--->>>>>0
  34. buffer--->>>>>0
  35. buffer--->>>>>0
  36. buffer--->>>>>0
  37. buffer--->>>>>0
  38. buffer--->>>>>0
  39. buffer--->>>>>0
  40. buffer--->>>>>0
  41. buffer--->>>>>0
  42. buffer--->>>>>0
  43. buffer--->>>>>0
  44. buffer--->>>>>0
  45. buffer--->>>>>0
  46. buffer--->>>>>0
  47. buffer--->>>>>0
  48. buffer--->>>>>0
  49. buffer--->>>>>0
  50. out========>-1
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2025-5-3 23:46 , Processed in 2.030029 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表