Arduino通过软串口向门禁板发开门指令-不能一次下发怎么办-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1803|回复: 2

[未解决] Arduino通过软串口向门禁板发开门指令---不能一次下发怎么办

[复制链接]
回帖奖励 1 金币 回复本帖可获得 1 金币奖励! 每人限 1 次(中奖概率 30%)
发表于 2020-9-9 11:05 | 显示全部楼层 |阅读模式
各位大神,我是刚学Arduino Uno 这个板 我现在只能通过这个板给门禁控制器下发开门指令
Arduino 通过软串口定义,接TTL转232转换板,然后接门禁控制232口上,连接正常,串口助手下发开门指令是有效的,但不能通过Arduino下发指令,利用串口监视软件发现问题如下:
板子不能一次性把指令全部下发,导致无法开门,在网上找了各种相关贴子,还是不能解决我这个问题,还请各位大神帮忙看看,该如何操作才行。

这是板子通过串口发给硬件门禁板时的情况  指令是断断续续的 我用    uint8_t buffer[] = "7E 80 00 01 00 00 80 AA 00 01 01 00 DE 62 7E"; 这样保存的

这是Arduino 下发开门指令后的情况图

这是Arduino 下发开门指令后的情况图
计算机通过串口助手发给硬件门禁板的情况  指一是一次性全发过去

这是串口助手下发同样指令的图

这是串口助手下发同样指令的图

相关测试代码如下(注释那部分不用看了 是我测试看行不行的通,见笑~~):
  1. #include <SoftwareSerial.h>
  2. #include <Wire.h>

  3. //uint8_t tmp1 = "7E800001000080AA00010100DE627E";
  4. char tmp2[] = "7E 80 00 01 00 00 80 AA 00 01 01 00 DE 62 7E";
  5. char tmp3[] = "0x7E,0x80,0x00,0x01,0x00,0x00,0x80,0xAA,0x00,0x01,0x01,0x00,0xDE,0x62,0x7E";

  6. //uint8_t buffer1[] = "7E800001000080AA00010100DE627E";
  7. uint8_t buffer[] = "7E 80 00 01 00 00 80 AA 00 01 01 00 DE 62 7E";
  8. const int digitalPin = 7;
  9. //uint8_t buffer[] = "0x7E,0x80,0x00,0x01,0x00,0x00,0x80,0xAA,0x00,0x01,0x01,0x00,0xDE,0x62,0x7E";

  10. int i,j,k;

  11. SoftwareSerial serial(6, 7);

  12. void hexprintf(char tmp[16])
  13. {
  14.   j=strlen(tmp);
  15.   for(i=0;i<j;i++)
  16.   {
  17.     serial.print(tmp[i],HEX);
  18.     }
  19.     serial.println("");
  20.   }

  21. void setup() {
  22.     serial.begin(19200);
  23.     Wire.begin();

  24.     delay(1000);

  25. }

  26. void loop() {
  27.   
  28.     serial.write(buffer,44);//write 44 必须放前面执行
  29.     delay(2000);

  30. /*   
  31.     serial.write(buffer1,30);//write 44 必须放前面执行  
  32.     delay(2000);
  33.     serial.write(tmp1);//hexprintf
  34.     delay(2000);
  35.     serial.write(tmp2,44);
  36.     delay(2000);
  37.     serial.write(tmp3,74);
  38.     delay(2000);  
  39. */
  40.    

  41. /*
  42. serial.write(0x7E);
  43. serial.write(0x80);
  44. serial.write(j);
  45. serial.write(0x01);
  46. serial.write((byte)0x00);
  47. serial.write((byte)0x00);
  48. serial.write(0x80);
  49. serial.write(0xAA);
  50. serial.write((byte)0x00);
  51. serial.write(0x01);
  52. serial.write(0x01);
  53. serial.write(j);
  54. serial.write(0xDE);
  55. serial.write(0x62);
  56. serial.write(0x7E);
  57. delay(1000);
  58. */




  59.          
  60. }
复制代码


 楼主| 发表于 2020-9-9 12:48 来自手机 | 显示全部楼层
补充,收到的还不是十六进制,好像变成二进制了,怎么发十六进制呢
 楼主| 发表于 2020-9-9 12:52 来自手机 | 显示全部楼层
请问还有什么样的开发板是c写的,带232接口的?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-30 01:46 , Processed in 0.093496 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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