标题:
请问51单片机串口pc传输bin文件的问题
[打印本页]
作者:
callmesbplease
时间:
2020-2-4 22:49
标题:
请问51单片机串口pc传输bin文件的问题
题主做了一个练习题材,使用pc作为上位机来串口通信数据,数据为二值化的图像,用单色oled做到显示logo的动画,但是遇到一个瓶颈,想不出是什么问题,就是用stc-isp自带的串口助手来传输单一图片的取模(bin文件或直接在输入窗口写入图片的取模00、ff这类数据),oled能正常显示,但是改成传输这一小段logo动画的bin文件就开始显示完全的乱码,看不出截取图片的任何特征,想不明白是哪方面的问题,buf【i】以unsigned char存入xdata中,已经验证可以正常传输静态图片的取模并显示,bin文件的图片大小没问题,可以正常导入oled的显示功能,就是没法动态显示,另外请教一下有什么方法可以显示传输的数据位,满xx个位就停止一次,等待单片机返回应答信号,然后继续传输数据位
#include<stc.h>
#include "oled.h"
#include "time.h"
#define uch unsigned char
#define uin unsigned int
uin flag;
uin i=0;
char returnb='1';
void send(void);
void main()
{
SCON=0X50;//115200 bps
PCON=0X80;
TMOD=0X20;
TL1=0XE8;
TH1=0XFF;
ET1=0;
TR1=1;
EA=1;
ES=1;
Initial_M096128x64_ssd1306();oled初始化
Delay_1ms(5);
fill_picture(0);//清屏
while(1)
{
if(flag)
{
RI=1;
ES=0;
Picture();显示oled
ES=1;
Delay_1ms(50);
fill_picture(0);//清屏
// send();
flag=0;
RI=0;
// ES=1;
// TI=0;
}
}
}
void serial() interrupt 4
{
// ES=0;
if(RI)
{
P2=SBUF;
buf[i]=SBUF;
i++;
if(i==704)
{
flag=1;
send();
i=0;
ES=0;
// RI=1;
}
}
// ES=1;
RI=0;
}
void send(void)
{
SBUF=returnb;
while(!TI);
TI=0;
}
复制代码
作者:
田贺
时间:
2020-2-16 15:02
单片机方面可以先设置一个计数变量,当字节数到达设定值时OLED指针归位,至于显示传输数据位,等待单片机返回应答这个要做上位机控制。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1