|
RT 本人现在想用CH341A芯片将计算机USB端口转为EPP并口接到设备上!!以前设备是SPP接口 上位机软件发送的波形数据 下位机接受后处理后输出的波形和上位机控制的波形是一样。
现在的问题是上位机 利用CH341A一次发送一个字节到单片机 单片机能接受到正常显示。但是我现在要上位机发送一个连续波形的数据给单片机,如果一次只发送一个数据的话 那么会造成 生成的波形的频率会扩大 不会原样输出。
现在一次性发送6个数据单片机,单片机端没法接受这6个数据。 我想还是下位机接受时序的问题
想请教下 用过的大神能否给我一份 下位机接受多字节数据的时序图 或者代码。下面附上我自己写的单片机端接受数据的代码。
#define setbit(address,bit) (address |= (1<<bit)) //置1
#define clearbit(address,bit) (address &= ~(1<<bit)) //清零
#define checkbit(address,bit) (address &= (1<<bit)) //保留某一位的状态
#define BUSY_SET setbit(PORTA,6)
#define BUSY_CLR clearbit(PORTA,6)
uchar com_epp(void)
{
uchar c;
_NOP();
_NOP();
_NOP();
_NOP();
_NOP();
_NOP();
_NOP();
_NOP();
BUSY_CLR; //接CH341芯片的Wait#引脚 也就是EPP模式的Wait信号,先置低
while(checkbit(PINA,7)); // MEGA128端的PA7接CH341芯片的DS#引脚 ,当PA7为低是开始一个EPP周期
_NOP();_NOP();_NOP();_NOP(); //延时
c=PINC; //接受数据
BUSY_SET;//置高Wait#结束一个周期
return c;
}
单片机端接收数据处理代码————实现意图是LCD屏显示数据123456 六个数字
int spp_control(void)
{
uchar i;
uchar kk,a,last_mark,xor;
int addr_save;
unsigned char temp[20];
uchar addr,road,dada_low,dada_high,test;
uint dada,display_mark;
float ttt=0,adc;
clear_screen();//清屏
//SREG=0X80;
SDI_SET;
SEPP_CLR;
BUSY_CLR;
dada=0;
last_mark=1;
display_mark=0;
road=0;
lcd_dis_hzstr(0,0,hzstr00,0);
lcd_dis_hzstr(6,0,hzstr03,0);
lcd_dis_hzstr(0,4,hzstr10,0);
lcd_dis_number(15,4,10);
lcd_dis_hzstr(0,6,hzstr06,0);
addr_save=read_from_eeprom(0x01);
//sprintf(buf,"%d",addr_save);
//lcd_dis_ascii(8,6,buf,strlen(buf));
short_sprintf(8,6,addr_save);
for(;;)
{
display_mark++;
if(scan_key()==14) goto end;
if((!checkbit(PINA,7))&&(last_mark==1)
{
last_mark=0;
for(i=0;i<6;i++)
temp[i]=com_epp();
last_mark=1;
// _NOP();
//_NOP();
//_NOP();
// _NOP();
BUSY_CLR;
}
temp[0]=a;
temp[1]=addr;
temp[2]=road;
temp[3]=dada_high;
temp[4]=dada_low;
temp[5]=test;
if(a=='B')
lcd_dis_number(1,2,1);
if(addr=='C')
lcd_dis_number(2,2,2);
if(road=='D')
lcd_dis_number(3,2,3);
if(dada_high=='E')
lcd_dis_number(4,2,4);
if(dada_low=='F')
lcd_dis_number(5,2,5);
if(test=='G')
lcd_dis_number(6,2,6);
else
lcd_dis_number(7,2,10);
}
end:
setting();
return 0;
}
但是现在无论我怎么发数据 下面就是没法显示!!!求大神显示指导
|
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|