QT信号槽部分
connect(easyCom,SIGNAL(readyRead()),this,SLOT(readEasyCom()));
单片机部分
#include <avr/io.h>
#include <avr/wdt.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include "nRF2401.h"
#define uchar unsigned char
#define uint unsigned int
#define F_CPU 7372800UL
unsigned char RxBuf[1]={0}; // 接收缓冲,保存接收到的数据
unsigned char RxBuf1[30]={0};
unsigned char Address[5] = {0x00,0x00,0x00,0x00,0x01};
uchar TxBuf[30];
uchar TxPos=0;
uchar TxLen=0;
uchar RxPos=0;
uchar RxLen=0;
ISR(USART_RXC_vect)
{
uchar c=UDR;
if(RxLen>0)
{
RxBuf1[RxPos++]=c;
RxLen--;
}
}
/*
ISR(USART_RXC_vect)
{
uchar c=UDR;
if(RxLen>0)
{
RxBuf1[RxPos++]=c;
RxLen--;
}
}
ISR(USART_TXC_vect)
{
if(--TxLen>0)
UDR=TxBuf[++TxPos];
}
uchar IsRecvComplete(void)
{
return RxLen==0;
}
void SendToUart(uchar size)
{
TxPos=0;
TxLen=size;
UDR=TxBuf[0];
while(TxLen>0);
}
void RecvFromUart(uchar size,uchar bwait)
{
RxPos=0;
RxLen=size;
if(bwait)
while(RxLen>0);
}
*/
void putc(unsigned char c)
{
while( !(UCSRA & (1<<UDRE)) );
UDR=c;
}
int main(void)
{
unsigned int i;
i=0;
wdt_disable();
//uart 初始化
UBRRH=0;
UBRRL=47;//9600 baud 6MHz:38 4MHz:25
UCSRB=(1<<RXEN)|(1<<TXEN)|(1<<RXCIE);
sei();
RxLen=8;
putc(0x31);
putc(0x32);
putc(0x33);
putc(0x34);
putc(0x35);
}