发射程序如下
//////////////以下增加代码=====================
#define RXB8 1
#define TXB8 0
#define UPE 2
#define OVR 3
#define FE 4
#define UDRE 5
#define RXC 7
#define FRAMING_ERROR (1<<FE)
#define PARITY_ERROR (1<<UPE)
#define DATA_OVERRUN (1<<OVR)
#define DATA_REGISTER_EMPTY (1<<UDRE)
#define RX_COMPLETE (1<<RXC)
void uart_send(unsigned char x)
{
while(!(UCSRA&(1<<UDRE)));
UDR=x;
}
void send_string(char *str)
{
while(*str)
{
uart_send(*str++);
}
}
void Uart_Init()
{
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud rate: 9600
UCSRA=0x00;
UCSRB=0x98;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x33;
}
void Send_ble()
{
char s[30];
u8 i;
unsigned short Tdianya;
unsigned short Tdianliang;
unsigned short Twendu;
unsigned short Tdianliu;
Tdianya=dianya; //电压
Tdianliang=dianliang;//电量
Twendu=wendu; //温度
Tdianliu=dianliu;//电流
// sprintf(s,"V:%03d Q:%03d T:%03d I:%03d\r\n",Tdianya,Tdianliang,Twendu,Tdianliu);
i=0;
s[i++]=' ';
s[i++]=' ';
s[i++]='U';
s[i++]=':';
//s[i++]=Tdianya/1000+48;
// s[i++]=Tdianya%1000/100+48;
s[i++]=Tdianya%100/10+48;
s[i++]=Tdianya%10+48;
s[i++]='V';
s[i++]=' ';
s[i++]=' ';
s[i++]=' ';
s[i++]='Q';
s[i++]=':';
// s[i++]=Tdianliang/1000+48;
//s[i++]=Tdianliang%1000/100+48;
s[i++]=Tdianliang%100/10+48;
s[i++]=Tdianliang%10+48;
s[i++]='%';
s[i++]=' ';
s[i++]=' ';
s[i++]=' ';
s[i++]=' ';
s[i++]='T';
s[i++]=':';
//s[i++]=Twendu/1000+48;
//s[i++]=Twendu%1000/100+48;
s[i++]=Twendu%100/10+48;
s[i++]=Twendu%10+48;
s[i++]='o';
s[i++]='C';
s[i++]=' ';
s[i++]=' ';
s[i++]=' ';
s[i++]=' ';
s[i++]=' ';
s[i++]='I';
s[i++]='=';
// s[i++]=Tdianliu/1000+48;
//s[i++]=Tdianliu%1000/100+48;
s[i++]=Tdianliu%100/10+48;
s[i++]=Tdianliu%10+48;
s[i++]='A';
s[i++]='\r';
s[i++]='\n';
s[i++]=0;
s[i++]=' ';
s
if(c++>=20)
{
Send_ble();//数据到app
c=0;
}
根据avr的发射程序,编辑出接收程序,实现串口通讯,哪位大神会啊。