PASII/CandeII_1.4/Hardware/uartdate.c

141 lines
4.0 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*****************************************************************
;Project: Light
;MCU:
;Date:
;File:
;Function:
******************************************************************/
#include "uartdate.h"
#include "uart.h"
/*---------------------------------------------------------------*/
//变量定义
//Uart_Rx_Buf_t uart_rx_buf;
//static unsigned char Rx_Pack[DATA_MAXSIZE]; //接收数据帧打包
/*---------------------------------------------------------------*/
//函数声明
//static void Command_Execute(unsigned char *Buff);
///*---------------------------------------------------------------*/
////外部变量调用声明
//extern unsigned short cycSpeed; //骑行速度
//extern unsigned char cycReSpeedFlag; //骑行速度刷新标志
///*---------------------------------------------------------------*/
////串口初始化
//void Uart_Init(void)
//{
// uart_1_init();
//}
///*---------------------------------------------------------------*/
////串口接收回调函数
//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;
// }
// }
//}
/*---------------------------------------------------------------*/
//发送数据
//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]);
// }
//}
///*---------------------------------------------------------------*/
////发送获取速度命令
//void GetSpeedCmd(void)
//{
// static unsigned char GetSpeedBuff[6] = {0x7e,0x04,0x0c, 0xbf, 0xcf, 0x99};
// uart_cmd(GetSpeedBuff,6);
//}
/*---------------------------------------------------------------*/
//串口的接收数据处理
//void RxData_Deal(void)
//{
// static unsigned char Rx_Pack_Index=0;
// static unsigned char state=0;
// static unsigned char Rx_Pack_Len=0; //需要打包的帧长
// if(uart_rx_buf.tail != uart_rx_buf.header)
// {
// switch(state)
// {
// case 0: //寻找帧头
// if(uart_rx_buf.data[uart_rx_buf.tail]==0x7E)
// {
// Rx_Pack_Index = 0; //每次从帧头开始存
// Rx_Pack[Rx_Pack_Index++]= uart_rx_buf.data[uart_rx_buf.tail]; //接收帧头
// state = 1;
// }
// break;
//
// case 1: //读取帧长度
// Rx_Pack_Len = uart_rx_buf.data[uart_rx_buf.tail];
// if(Rx_Pack_Len > DATA_MAXSIZE) //判断数据长度是否异常
// {
// state = 0; //重新寻找帧头
// break;
// }
// Rx_Pack[Rx_Pack_Index++] = uart_rx_buf.data[uart_rx_buf.tail]; //接收帧的剩余长度
// state = 3;
// break;
//
// case 3: //判断一帧结束
// Rx_Pack[Rx_Pack_Index++] = uart_rx_buf.data[uart_rx_buf.tail];
// //--判断是否接收到想要的帧长
// if( Rx_Pack_Index >= (Rx_Pack_Len+2) ) //2:1个起始字符和1个数据长度字符
// {
// state = 0; //失能帧接收标志
// Command_Execute(Rx_Pack); //指令执行
// }
// break;
//
// default: state = 0;break;
//
// }
//
// uart_rx_buf.tail++;
// if(uart_rx_buf.tail >= MAX_RX_LENGTH)
// {
// uart_rx_buf.tail = 0;
// }
//
// }
//}
/*---------------------------------------------------------------*/
//解析骑行速度
//static void Command_Execute(unsigned char *Buff) // 指令处理
//{
// static unsigned short LastcycSpeed = 0;
//
// if(Buff[2] == 0x0C) //0x0C:判断是不是电机的应答帧
// {
// if(Buff[3]==0x01) //判断是否查询成功
// if(Buff[4]==0xBF) //判断是否查询成功
// if(Buff[5]==0x02) //判断是否为2个字节的速度
// {
// //转换成速度
// LastcycSpeed = cycSpeed;
// cycSpeed = ((unsigned short )Buff[6]<<8) + (unsigned short)Buff[7]; //把这两个字节拼接成速度eg(0x12,0x34)->(0x1234)->(4660)
// cycSpeed = cycSpeed/10; //过滤小数部分,(4660)->(466.0)
// if((LastcycSpeed == 0)&&(cycSpeed > 10))
// {
// cycSpeed = 1;
// }
// cycReSpeedFlag = 1;
// }
// }
//}
/*---------------------------------------------------------------*/