?? uart_tls.c
字號(hào):
#include".\Globle.h"
#include".\Function.h"
uchar gvc_tls_tmp;
uchar gvc_tls_buff[100];
uint gvi_tls_counter;
uchar gvc_tls_flg;
uchar gvc_data_buf[17][100];
//Data_buffer buffer;
uchar gvc_com_buf[7];
uchar gvc_free_flg;
uchar gvc_slaver_addr;
void Tls_Uart_send(unsigned char c) // 發(fā)送
{
UDR0 = c;
while(!(UCSR0A & 0x40));
UCSR0A |=0x40;
}
uchar Tls_check_sum()
{
uchar lvc_counter;
uchar lvc_tmp;
uint lvi_sum_buf;
uint lvi_sum=0;
for(lvc_counter=0;lvc_counter<84;lvc_counter++)
{
lvi_sum+=gvc_tls_buff[lvc_counter];
}
lvi_sum=0-lvi_sum;
lvi_sum_buf=combination(ASC_HEX(gvc_tls_buff[84]),ASC_HEX(gvc_tls_buff[85]));
lvi_sum_buf<<=8;
lvi_sum_buf+=combination(ASC_HEX(gvc_tls_buff[86]),ASC_HEX(gvc_tls_buff[87]));
if(lvi_sum==lvi_sum_buf)
return(1);
else
return(0);
/*
Tls_Uart_send(lvi_sum/256);
Tls_Uart_send(lvi_sum%256);
Tls_Uart_send(lvi_sum_buf/256);
Tls_Uart_send(lvi_sum_buf%256);
*/
}
void Tls_com(uchar message,uchar addr)
{
uchar lvc_i;
gvc_com_buf[0]=0x01;
gvc_com_buf[1]=0x69;
gvc_com_buf[2]=0x32;
gvc_com_buf[3]=0x30;
gvc_com_buf[4]=HEX_ASC(message);
gvc_com_buf[5]=HEX_ASC(Caculate_H_OP(addr));
gvc_com_buf[6]=HEX_ASC(Caculate_L_OP(addr));
for(lvc_i=0;lvc_i<7;lvc_i++)
{
//PORTD|=0x10;
//M_uart_send(gvc_com_buf[lvc_i]);
//PORTD&=~0x10;
Tls_Uart_send(gvc_com_buf[lvc_i]);
}
}
void Tls_analyse()
{
uchar lvc_counter;
uchar lvc_number;
uchar lvc_addr;
uchar lvc_addr_h;
uchar lvc_addr_l;
uchar tmp;
if(Tls_check_sum())
{
//M_uart_send(0x66);
lvc_addr_h=ASC_HEX(gvc_tls_buff[ADDR_H]);
lvc_addr_l=ASC_HEX(gvc_tls_buff[ADDR_L]);
//M_uart_send(lvc_addr_h);
//M_uart_send(lvc_addr_l);
lvc_addr=combination(lvc_addr_h,lvc_addr_l);
//M_uart_send(lvc_addr);
if(gvc_tls_buff[4]==0x31)
{
for(lvc_counter=0,lvc_number=0;lvc_counter<56;lvc_counter++)
{
//gvc_data_buf[lvc_addr][lvc_counter]=gvc_tls_buff[HEAD+lvc_counter];
if((gvc_tls_buff[HEAD+lvc_counter]>=0x30&&gvc_tls_buff[HEAD+lvc_counter]<=0x39)
||(gvc_tls_buff[HEAD+lvc_counter]>=0x41&&gvc_tls_buff[HEAD+lvc_counter]<=0x46))
{
tmp=gvc_tls_buff[HEAD+lvc_counter];
}
else
{
gvc_tls_buff[HEAD+lvc_counter]=0x30;
}
}
for(lvc_counter=0,lvc_number=0;lvc_counter<56;lvc_counter++)
{
gvc_data_buf[lvc_addr][lvc_number]=combination(ASC_HEX(gvc_tls_buff[HEAD+lvc_counter]),ASC_HEX(gvc_tls_buff[HEAD+lvc_counter+1]));
lvc_number++;
lvc_counter++;
//M_uart_send(gvc_tls_buff[HEAD+lvc_counter]);
}
}
}
}
#pragma interrupt_handler uart0_rx_isr:19
void uart0_rx_isr(void)
{
gvc_tls_tmp=UDR0;
if(gvc_tls_tmp==0x01)
gvi_tls_counter=0;
gvc_tls_buff[gvi_tls_counter]=gvc_tls_tmp;
gvi_tls_counter++;
if(gvc_tls_tmp==0x03)
gvc_tls_flg=1;
if(gvi_tls_counter>=99)
gvi_tls_counter=0;
//uart has received a character in UDR
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -