找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6910|回复: 5
收起左侧

还是关于指纹模块AS608和51单片机的串口通信握手失败问题 求指导

[复制链接]
ID:521054 发表于 2019-5-1 15:11 | 显示全部楼层 |阅读模式
串口初始化后   还是握手失败
附上一些主要程序
  1. void Uart_Init(void)
  2. {
  3.     SCON=0x50;   //UART方式1:8位UART;   REN=1:允许接收
  4.     PCON=0x00;   //SMOD=0:波特率不加倍
  5.     TMOD=0x20;   //T1方式2,用于UART波特率
  6.     TH1=0xFD;
  7.     TL1=0xFD;   //UART波特率设置:FDFD,9600;FFFF,57600
  8.     TR1=1;         //允许T1计数
  9.     EA=1;
  10. }


  11. void Uart_Send_Byte(unsigned char c)//UART Send a byte
  12. {
  13.         SBUF = c;
  14.         while(!TI);                //发送完为1
  15.         TI = 0;
  16. }

  17. unsigned char Uart_Receive_Byte()//UART Receive a byteg
  18. {        
  19.         unsigned char dat;
  20.         while(!RI);         //接收完为1
  21.         RI = 0;
  22.         dat = SBUF;
  23.         return (dat);
  24. }//这些是串口初始化的程序



  25. void Device_Check(void)//握手
  26. {
  27.                 unsigned char i=0;
  28.                 FPM10A_RECEICE_BUFFER[9]=1;                                           //串口数组第九位可判断是否通信正常
  29.                 LCD1602_Display(0xc0,"Loading",0,7);                   //设备加载中界面                                                           
  30.                 for(i=0;i<8;i++)                                                           //进度条式更新,看起来美观
  31.                 {
  32.                         LCD1602_WriteDAT(42);                               //42对应ASIC码的 *
  33.                         Delay_Ms(200);                                                           //控制进度条速度
  34.                 }                                                                        
  35.                 LCD1602_Display(0xc0,"Docking  failure",0,16);      //液晶先显示对接失败,如果指纹模块插对的话会将其覆盖        
  36.                 FPM10A_Cmd_Check();                                                                        //单片机向指纹模块发送校对命令
  37.                 FPM10A_Receive_Data(12);                                                        //将串口接收到的数据转存
  38.                  if(FPM10A_RECEICE_BUFFER[9] == 0)                                        //判断数据低第9位是否接收到0
  39.                 {
  40.                         LCD1602_Display(0xc0,"Docking  success",0,16);        //符合成功条件则显示对接成功
  41.                 }
  42. }


  43. //发送包头
  44. void FPM10A_Cmd_Send_Pack_Head(void)
  45. {
  46.         int i;        
  47.         for(i=0;i<6;i++) //包头
  48.    {
  49.      Uart_Send_Byte(FPM10A_Pack_Head[i]);   
  50.     }               
  51. }
  52. //发送指令
  53. void FPM10A_Cmd_Check(void)
  54. {
  55.         int i=0;
  56.         FPM10A_Cmd_Send_Pack_Head(); //发送通信协议包头
  57.         for(i=0;i<10;i++)
  58.          {               
  59.                 Uart_Send_Byte(FPM10A_Get_Device[i]);
  60.           }
  61. }
  62. //接收反馈数据缓冲
  63. void FPM10A_Receive_Data(unsigned char ucLength)
  64. {
  65.   unsigned char i;

  66.   for (i=0;i<ucLength;i++)
  67.      FPM10A_RECEICE_BUFFER[i] = Uart_Receive_Byte();

  68. }



  69. code unsigned char FPM10A_Get_Device[10] ={0x01,0x00,0x07,0x13,0x00,0x00,0x00,0x00,0x00,0x1b};//口令验证
  70. code unsigned char FPM10A_Pack_Head[6] = {0xEF,0x01,0xFF,0xFF,0xFF,0xFF};  //协议包头
复制代码



串口调试助手上接收到的数据 T(JBI]FKTGIC_ZW)MQ$_3.png
接收到了的确是包头和口令验证里面的数据  但是最前面有一个00  不知道是为什么 然后程序就一直不能握手成功  lcd1602就显示的对接失败

求求大神指点啊   拜托了
回复

使用道具 举报

ID:354697 发表于 2019-5-7 13:06 | 显示全部楼层
同样的问题,同样的程序。我还没解决,楼主解决了吗
回复

使用道具 举报

ID:528677 发表于 2019-5-7 14:44 来自手机 | 显示全部楼层
李拴 发表于 2019-5-7 13:06
同样的问题,同样的程序。我还没解决,楼主解决了吗

把指纹模块连上位机,改下波特率为9600。并且51单片机晶振必须为11.0592,不然串口通信误差太大 。
回复

使用道具 举报

ID:354697 发表于 2019-5-7 19:25 | 显示全部楼层
1qdeuuu000 发表于 2019-5-7 14:44
把指纹模块连上位机,改下波特率为9600。并且51单片机晶振必须为11.0592,不然串口通信误差太大 。

谢谢,不过我已经这样做了,上位机上修改了波特率9600,晶振也是11.0592,程序装初值为0xfd,这样单片机波特率也是9600,可还是无法通讯
回复

使用道具 举报

ID:601213 发表于 2019-8-17 23:47 | 显示全部楼层
李拴 发表于 2019-5-7 19:25
谢谢,不过我已经这样做了,上位机上修改了波特率9600,晶振也是11.0592,程序装初值为0xfd,这样单片机 ...

兄台  通讯问题解决了吗  最近在学这个也碰到了同样的问题
回复

使用道具 举报

ID:718485 发表于 2020-5-3 17:43 来自手机 | 显示全部楼层
请问楼主解决这个问题了吗
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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