141 lines
4.0 KiB
C
141 lines
4.0 KiB
C
|
/*****************************************************************
|
|||
|
;Project: Light
|
|||
|
;MCU:
|
|||
|
;Date:
|
|||
|
;File:
|
|||
|
;Function:
|
|||
|
******************************************************************/
|
|||
|
#include "uartdate.h"
|
|||
|
#include "uart.h"
|
|||
|
/*---------------------------------------------------------------*/
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//Uart_Rx_Buf_t uart_rx_buf;
|
|||
|
//static unsigned char Rx_Pack[DATA_MAXSIZE]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD>
|
|||
|
/*---------------------------------------------------------------*/
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//static void Command_Execute(unsigned char *Buff);
|
|||
|
///*---------------------------------------------------------------*/
|
|||
|
////<2F>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//extern unsigned short cycSpeed; //<2F><><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>
|
|||
|
//extern unsigned char cycReSpeedFlag; //<2F><><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>ˢ<EFBFBD>±<EFBFBD>־
|
|||
|
///*---------------------------------------------------------------*/
|
|||
|
////<2F><><EFBFBD>ڳ<EFBFBD>ʼ<EFBFBD><CABC>
|
|||
|
//void Uart_Init(void)
|
|||
|
//{
|
|||
|
// uart_1_init();
|
|||
|
//}
|
|||
|
///*---------------------------------------------------------------*/
|
|||
|
////<2F><><EFBFBD>ڽ<EFBFBD><DABD>ջص<D5BB><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//void uartRx_callback(void)
|
|||
|
//{
|
|||
|
// uint8_t cnt,i,temp[4];
|
|||
|
// uart_1_read(&cnt,temp);
|
|||
|
//
|
|||
|
// for(i=0;i<cnt;i++)
|
|||
|
// {
|
|||
|
// uart_rx_buf.data[uart_rx_buf.header]=temp[i];
|
|||
|
// uart_rx_buf.header++;
|
|||
|
// if(uart_rx_buf.header >= MAX_RX_LENGTH)
|
|||
|
// {
|
|||
|
// uart_rx_buf.header = 0;
|
|||
|
// }
|
|||
|
// }
|
|||
|
//}
|
|||
|
/*---------------------------------------------------------------*/
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//static void uart_cmd(uint8_t *p_cmd, uint8_t sz)
|
|||
|
//{
|
|||
|
// unsigned char i;
|
|||
|
//
|
|||
|
// for(i=0; i<sz; i++)
|
|||
|
// {
|
|||
|
// uart_1_write(p_cmd[i]);
|
|||
|
// }
|
|||
|
//}
|
|||
|
///*---------------------------------------------------------------*/
|
|||
|
////<2F><><EFBFBD>ͻ<EFBFBD>ȡ<EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//void GetSpeedCmd(void)
|
|||
|
//{
|
|||
|
// static unsigned char GetSpeedBuff[6] = {0x7e,0x04,0x0c, 0xbf, 0xcf, 0x99};
|
|||
|
// uart_cmd(GetSpeedBuff,6);
|
|||
|
//}
|
|||
|
/*---------------------------------------------------------------*/
|
|||
|
//<2F><><EFBFBD>ڵĽ<DAB5><C4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD>
|
|||
|
//void RxData_Deal(void)
|
|||
|
//{
|
|||
|
// static unsigned char Rx_Pack_Index=0;
|
|||
|
// static unsigned char state=0;
|
|||
|
// static unsigned char Rx_Pack_Len=0; //<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><D6A1>
|
|||
|
|
|||
|
// if(uart_rx_buf.tail != uart_rx_buf.header)
|
|||
|
// {
|
|||
|
// switch(state)
|
|||
|
// {
|
|||
|
// case 0: //Ѱ<><D1B0>֡ͷ
|
|||
|
// if(uart_rx_buf.data[uart_rx_buf.tail]==0x7E)
|
|||
|
// {
|
|||
|
// Rx_Pack_Index = 0; //ÿ<>δ<EFBFBD>֡ͷ<D6A1><CDB7>ʼ<EFBFBD><CABC>
|
|||
|
// Rx_Pack[Rx_Pack_Index++]= uart_rx_buf.data[uart_rx_buf.tail]; //<2F><><EFBFBD><EFBFBD>֡ͷ
|
|||
|
// state = 1;
|
|||
|
// }
|
|||
|
// break;
|
|||
|
//
|
|||
|
// case 1: //<2F><>ȡ֡<C8A1><D6A1><EFBFBD><EFBFBD>
|
|||
|
// Rx_Pack_Len = uart_rx_buf.data[uart_rx_buf.tail];
|
|||
|
// if(Rx_Pack_Len > DATA_MAXSIZE) //<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>쳣
|
|||
|
// {
|
|||
|
// state = 0; //<2F><><EFBFBD><EFBFBD>Ѱ<EFBFBD><D1B0>֡ͷ
|
|||
|
// break;
|
|||
|
// }
|
|||
|
// Rx_Pack[Rx_Pack_Index++] = uart_rx_buf.data[uart_rx_buf.tail]; //<2F><><EFBFBD><EFBFBD>֡<EFBFBD><D6A1>ʣ<EFBFBD><EFBFBD><E0B3A4>
|
|||
|
// state = 3;
|
|||
|
// break;
|
|||
|
//
|
|||
|
// case 3: //<2F>ж<EFBFBD>һ֡<D2BB><D6A1><EFBFBD><EFBFBD>
|
|||
|
// Rx_Pack[Rx_Pack_Index++] = uart_rx_buf.data[uart_rx_buf.tail];
|
|||
|
// //--<2D>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD>Ҫ<EFBFBD><D2AA>֡<EFBFBD><D6A1>
|
|||
|
// if( Rx_Pack_Index >= (Rx_Pack_Len+2) ) //2:1<><31><EFBFBD><EFBFBD>ʼ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD><EFBFBD>ַ<EFBFBD>
|
|||
|
// {
|
|||
|
// state = 0; //ʧ<><CAA7>֡<EFBFBD><D6A1><EFBFBD>ձ<EFBFBD>־
|
|||
|
// Command_Execute(Rx_Pack); //ָ<><D6B8>ִ<EFBFBD><D6B4>
|
|||
|
// }
|
|||
|
// break;
|
|||
|
//
|
|||
|
// default: state = 0;break;
|
|||
|
//
|
|||
|
// }
|
|||
|
//
|
|||
|
// uart_rx_buf.tail++;
|
|||
|
// if(uart_rx_buf.tail >= MAX_RX_LENGTH)
|
|||
|
// {
|
|||
|
// uart_rx_buf.tail = 0;
|
|||
|
// }
|
|||
|
//
|
|||
|
// }
|
|||
|
//}
|
|||
|
/*---------------------------------------------------------------*/
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>
|
|||
|
//static void Command_Execute(unsigned char *Buff) // ָ<><EFBFBD><EEB4A6>
|
|||
|
//{
|
|||
|
// static unsigned short LastcycSpeed = 0;
|
|||
|
//
|
|||
|
// if(Buff[2] == 0x0C) //0x0C:<3A>ж<EFBFBD><D0B6>Dz<EFBFBD><C7B2>ǵ<EFBFBD><C7B5><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>֡
|
|||
|
// {
|
|||
|
// if(Buff[3]==0x01) //<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD>ѯ<EFBFBD>ɹ<EFBFBD>
|
|||
|
// if(Buff[4]==0xBF) //<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD>ѯ<EFBFBD>ɹ<EFBFBD>
|
|||
|
// if(Buff[5]==0x02) //<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Ϊ2<CEAA><32><EFBFBD>ֽڵ<D6BD><DAB5>ٶ<EFBFBD>
|
|||
|
// {
|
|||
|
// //ת<><D7AA><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>
|
|||
|
// LastcycSpeed = cycSpeed;
|
|||
|
// cycSpeed = ((unsigned short )Buff[6]<<8) + (unsigned short)Buff[7]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>ƴ<EFBFBD>ӳ<EFBFBD><D3B3>ٶȣ<D9B6>eg<65><67>(0x12,0x34)->(0x1234)->(4660)
|
|||
|
// cycSpeed = cycSpeed/10; //<2F><><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD>(4660)->(466.0)
|
|||
|
// if((LastcycSpeed == 0)&&(cycSpeed > 10))
|
|||
|
// {
|
|||
|
// cycSpeed = 1;
|
|||
|
// }
|
|||
|
// cycReSpeedFlag = 1;
|
|||
|
// }
|
|||
|
// }
|
|||
|
//}
|
|||
|
/*---------------------------------------------------------------*/
|