|
串口初始化后 還是握手失敗
附上一些主要程序
- void Uart_Init(void)
- {
- SCON=0x50; //UART方式1:8位UART; REN=1:允許接收
- PCON=0x00; //SMOD=0:波特率不加倍
- TMOD=0x20; //T1方式2,用于UART波特率
- TH1=0xFD;
- TL1=0xFD; //UART波特率設(shè)置:FDFD,9600;FFFF,57600
- TR1=1; //允許T1計(jì)數(shù)
- EA=1;
- }
- void Uart_Send_Byte(unsigned char c)//UART Send a byte
- {
- SBUF = c;
- while(!TI); //發(fā)送完為1
- TI = 0;
- }
- unsigned char Uart_Receive_Byte()//UART Receive a byteg
- {
- unsigned char dat;
- while(!RI); //接收完為1
- RI = 0;
- dat = SBUF;
- return (dat);
- }//這些是串口初始化的程序
- void Device_Check(void)//握手
- {
- unsigned char i=0;
- FPM10A_RECEICE_BUFFER[9]=1; //串口數(shù)組第九位可判斷是否通信正常
- LCD1602_Display(0xc0,"Loading",0,7); //設(shè)備加載中界面
- for(i=0;i<8;i++) //進(jìn)度條式更新,看起來(lái)美觀
- {
- LCD1602_WriteDAT(42); //42對(duì)應(yīng)ASIC碼的 *
- Delay_Ms(200); //控制進(jìn)度條速度
- }
- LCD1602_Display(0xc0,"Docking failure",0,16); //液晶先顯示對(duì)接失敗,如果指紋模塊插對(duì)的話會(huì)將其覆蓋
- FPM10A_Cmd_Check(); //單片機(jī)向指紋模塊發(fā)送校對(duì)命令
- FPM10A_Receive_Data(12); //將串口接收到的數(shù)據(jù)轉(zhuǎn)存
- if(FPM10A_RECEICE_BUFFER[9] == 0) //判斷數(shù)據(jù)低第9位是否接收到0
- {
- LCD1602_Display(0xc0,"Docking success",0,16); //符合成功條件則顯示對(duì)接成功
- }
- }
- //發(fā)送包頭
- void FPM10A_Cmd_Send_Pack_Head(void)
- {
- int i;
- for(i=0;i<6;i++) //包頭
- {
- Uart_Send_Byte(FPM10A_Pack_Head[i]);
- }
- }
- //發(fā)送指令
- void FPM10A_Cmd_Check(void)
- {
- int i=0;
- FPM10A_Cmd_Send_Pack_Head(); //發(fā)送通信協(xié)議包頭
- for(i=0;i<10;i++)
- {
- Uart_Send_Byte(FPM10A_Get_Device[i]);
- }
- }
- //接收反饋數(shù)據(jù)緩沖
- void FPM10A_Receive_Data(unsigned char ucLength)
- {
- unsigned char i;
- for (i=0;i<ucLength;i++)
- FPM10A_RECEICE_BUFFER[i] = Uart_Receive_Byte();
- }
- code unsigned char FPM10A_Get_Device[10] ={0x01,0x00,0x07,0x13,0x00,0x00,0x00,0x00,0x00,0x1b};//口令驗(yàn)證
- code unsigned char FPM10A_Pack_Head[6] = {0xEF,0x01,0xFF,0xFF,0xFF,0xFF}; //協(xié)議包頭
復(fù)制代碼
串口調(diào)試助手上接收到的數(shù)據(jù)
T(JBI]FKTGIC_ZW)MQ$_3.png (9.77 KB, 下載次數(shù): 39)
下載附件
2019-5-1 15:09 上傳
接收到了的確是包頭和口令驗(yàn)證里面的數(shù)據(jù) 但是最前面有一個(gè)00 不知道是為什么 然后程序就一直不能握手成功 lcd1602就顯示的對(duì)接失敗
求求大神指點(diǎn)啊 拜托了
|
|