#include "cpu.h"
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
void Uart_Control(void);
void GetMcuUID(void);
void ReportToServer();
unsigned char ChipID[4];
code unsigned char auchCRCLo[]=
{
0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7, 0x05, 0xC5, 0xC4,
0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09,
0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD,
0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3,
0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, 0x36, 0xF6, 0xF7,
0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A,
0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE,
0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26,
0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1, 0x63, 0xA3, 0xA2,
0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F,
0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB,
0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5,
0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0, 0x50, 0x90, 0x91,
0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C,
0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88,
0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C,
0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, 0x41, 0x81, 0x80,
0x40
};
/* Table of CRC values for high杘rder byte */
code unsigned char auchCRCHi[]=
{
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,
0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81,
0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,
0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,
0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,
0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,
0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
0x40
};
unsigned int getCRC16(unsigned char *array,unsigned char length)
{
unsigned char uchCRCHi = 0xFF ; /* ??????*/
unsigned char uchCRCLo = 0xFF ; /* ??????*/
unsigned char uIndex ; /*CRC???*/
while(length--)
{
uIndex=uchCRCHi^*array++; ;
uchCRCHi=uchCRCLo^auchCRCHi[uIndex];
uchCRCLo=auchCRCLo[uIndex];
}
return ((uchCRCHi<<8)|uchCRCLo);
}
unsigned char TXbup[30];
void ReportToServer(void)
{
unsigned int CRCTemp=0;
TXbup[0]=0xaa;
TXbup[1]=0xbb;
TXbup[2]=0xcc;
TXbup[3]=0xdd;
TXbup[4]=19;//DataLEN
TXbup[5]=0x05;//Commandtype
TXbup[6]=ChipID[0];//SN1
TXbup[7]=ChipID[1];//SN2
TXbup[8]=ChipID[2];//SN3
TXbup[9]=ChipID[3];//SN4
TXbup[10]=0x0d;//Equipment-Number
//2. aa bb cc dd+??+0x05(?????)+SN1+SN2+SN3+SN4+????+??+?????+??1??+??2??+??3??+??4??+???
if(_gConsole.State==IDLE)TXbup[11]=0;
else TXbup[11]=_gConsole.FAN_Speed;//_gConsole.FAN_Speed
TXbup[12]=1;//Fan_QTY
TXbup[13]=FanStauts;//CH1-Status
TXbup[14]=0x00;//CH2-Status
TXbup[15]=0x00;//CH3-Status
TXbup[16]=0x00;//CH4-Status
CRCTemp = getCRC16(TXbup,17);
TXbup[17]=CRCTemp>>8;
TXbup[18]=CRCTemp;
SendData_String(TXbup,19);
}
const unsigned char Buffer1[1] = {0x01};
const unsigned char Buffer2[1] = {0x02};
const unsigned char Buffer3[1] = {0x03};
const unsigned char Buffer4[1] = {0x04};
const unsigned char Buffer5[1] = {0x05};
unsigned char Demo_For_BYD[12] = {0xc0,0xA8,0x00,0xD1,0xAA,0x01,0x00,0x00,0x00,0x00,0x00,0x0d};
void GetMcuUID(void)
{
unsigned char *ADD;
unsigned char ID[7];
unsigned char Get=0;
unsigned int CRC=0;
ADD=0xf1;
for(Get=0;Get<7;Get++)
{
ID[Get]=*ADD;
ADD++;
};
CRC = getCRC16(ID,7);
ChipID[0]=ID[5];
ChipID[1]=ID[6];
ChipID[2]=CRC>>8;
ChipID[3]=CRC;
}
void ReBackToPC(unsigned char Type)
{
unsigned int CRC=0;
unsigned char Buf[20];
Buf[0]=0xaa;
Buf[1]=0xbb;
Buf[2]=0xcc;
Buf[3]=0xdd;
Buf[4]=21;//DataLEN
Buf[5]=Type;//Commandtype
Buf[6]=ChipID[0];//SN1
Buf[7]=ChipID[1];//SN2
Buf[8]=ChipID[2];//SN3
Buf[9]=ChipID[3];//SN4
Buf[10]=0x0d;//Equipment-Number
CRC = getCRC16(Buf,11);
Buf[11]=CRC>>8;
Buf[12]=CRC;
SendData_String(Buf,13);
}
#define Status 0x05
#define Power_Command 0xfb
#define FanSpeed 0x07
#define Clear_Command 0x08
void Uart_Control(void)
{
// unsigned char z;
unsigned char Clear=0;
unsigned char Buffer = 0 ; //WiFi用到的缓存
unsigned char Buffer_2 = 0 ; //WiFi用到的缓存
unsigned char Buffer_3 = 0 ; //WiFi用到的缓存
unsigned char Buffer_4 = 0 ; //WiFi用到的缓存
unsigned char Dop_Number = 0 ; //WiFi用到的缓存,'.'的个数
unsigned char Comma_Number = 0 ; //WiFi用到的缓存,','的个数
unsigned char TEST88[] = {0x11,0x22,0x33,0x44,0x55} ; //WiFi用到的缓存,','的个数
if( _gUart_Control.State == GET )
{
_gUart_Control.State = 0 ;
_gUart_Control.R_Value = _gUart_Control.R_Counter ; //获取接收到字节的个数
_gUart_Control.R_Counter = 0 ;
if(
((_gUart_Control.R_Buffer[0])==0xaa)&&((_gUart_Control.R_Buffer[1])==0xbb)
&&((_gUart_Control.R_Buffer[2])==0xcc)&&((_gUart_Control.R_Buffer[3])==0xdd)
)//AA--BB--CC--DD
{
unsigned int TempCRC=0;
unsigned int TempLen=0;
unsigned char tcrc[]={0,0};
unsigned char Dattemp[]={0,0};
TempLen=_gUart_Control.R_Buffer[4];
TempCRC=getCRC16(_gUart_Control.R_Buffer,(TempLen-2));
tcrc[0]=TempCRC>>8;//
tcrc[1]=TempCRC;
//SendData_String(tcrc , 2);
Dattemp[0]=_gUart_Control.R_Buffer[TempLen-1];
Dattemp[1]=_gUart_Control.R_Buffer[TempLen-2];
//SendData_String(Dattemp , 2);
// SendData_String(tcrc , 1);
//if(1)
if( (tcrc[0]==Dattemp[0] )
&& (tcrc[1]==Dattemp[1] )
)//---CRC OK ???
{
unsigned char CommandType=_gUart_Control.R_Buffer[5];
switch(CommandType)
{
case (Status):
ReportToServer();
break;
case (Power_Command):
if((_gUart_Control.R_Buffer[6])==0x01)
{
//TurnON
_gConsole.BEEP_State = ON ;
_gConsole.State = START;
}
else if((_gUart_Control.R_Buffer[6])==0x02)
{
//TurnOFF
_gConsole.BEEP_State = ON ;
_gConsole.State = IDLE ;
FanStauts=0;
};
ReBackToPC(0xf
没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
收起资源包目录
遥控.zip (72个子文件)
Output
138__new.build_log.htm 2KB
138v3BYDDemo.build_log.htm 1KB
138v3.lnp 673B
138v3BYDDemo 403KB
138v31_NewAgreement_20210128a.build_log.htm 1KB
138v31_NewAgreement_20210223b 407KB
138v3.0_NewAgreement_20210128a 403KB
138v31_NewAgreement_20210128a 403KB
138v3BYDDemo.lnp 662B
138 399KB
138.plg 891B
138v31_NewAgreement_20210224c.build_log.htm 1KB
138v3.build_log.htm 1KB
138__new.lnp 654B
138__new 408KB
GPIO.obj 329B
138v31_NewAgreement_20210223b.build_log.htm 1KB
138.lnp 644B
List
AD.lst 517B
138v31_NewAgreement_20210223b.m51 134KB
138v3.m51 129KB
138.m51 127KB
138__new.m51 128KB
138v3BYDDemo.m51 129KB
138v31_NewAgreement_20210128a.m51 129KB
GPIO.lst 828B
138.uvopt 14KB
138.uvgui.YC 70KB
Header
INTO.h 269B
Console.h 4KB
DATA_INIT.h 92B
Timer.h 362B
uart.h 684B
EEPROM.h 225B
Display.h 502B
IO.h 75B
global.h 79B
cpu.h 2KB
Key.h 677B
uart2.h 308B
tm1668.h 191B
138.uvproj 18KB
138.plg 1KB
138.uvgui.Administrator 102KB
User
STARTUP.A51 6KB
138.uvgui_Administrator.bak 136KB
Source
UART.c 4KB
WatchDog.c 191B
Key.c 3KB
Console_Uart2.c 5KB
Console_Key.c 14KB
INTO.c 2KB
Data_Init.c 1KB
IO.c 272B
Timer.c 7KB
Console_State.c 7KB
Main.c 2KB
Console_EEPROM.c 8KB
tm1668.c 8KB
Console_Uart.c 16KB
EEPROM.c 4KB
PWM.c 2KB
Console_WiFi.c 15KB
GPIO.c 0B
UART2.c 3KB
Display.c 1KB
Console.c 260B
Console_Fan.c 935B
138_uvopt.bak 16KB
138.uvgui.sld 182KB
138_uvproj.bak 17KB
138.uvgui_YC.bak 70KB
共 72 条
- 1
eb900001
- 粉丝: 1
- 资源: 22
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Matlab实现扩展卡尔曼滤波EKF源码+项目说明+超详细注释.zip
- 学生课程实验的流程.doc
- 微信消息防撤回证据记录软件-大飞哥软件自习室.exe
- 2023-04-06-项目笔记 - 第一百二十阶段 - 4.4.2.118全局变量的作用域-118 -2024.05.01
- 课程设计基于python+mediapipe+opencv手势识别系统源码(含示例图片).zip
- 联想L-IG41M v1.0 BIOS
- 学生课程实验的流程.doc
- 基于MATLAB和Simulink通过正运动学和逆运动学设计了PID控制器.zip
- 文档内置图片提取工具 2.0能够将WORD PDF PPT等文档里面的图片解析并提取出来.exe
- 2023-04-06-项目笔记 - 第一百二十阶段 - 4.4.2.118全局变量的作用域-118 -2024.05.01
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0