上海灵信视觉A4控制板

资料准备:

1.LED Player上位机控制:

http://www.168led.com/AjaxFile/DownLoadFileNew.aspx?FilePath=/UpLoadFile/20170720/%E5%8D%95%E5%8F%8C%E8%89%B2%E5%8F%8A%E9%97%A8%E6%A5%A3%E5%85%A8%E5%BD%A9%E5%85%AD%E4%BB%A3%E8%BD%AF%E4%BB%B6%EF%BC%9ALED%20Player6.0(%E7%89%88%E6%9C%ACV6.1.5).zip&fileExt=file

2.LED第六版的二次开发资料:

http://www.168led.com/AjaxFile/DownLoadFileNew.aspx?FilePath=/UpLoadFile/20171206/%E5%85%AD%E4%BB%A3%E5%8D%95%E5%8F%8C%E8%89%B2%E5%8F%8A%E9%97%A8%E6%A5%A3%E5%85%A8%E5%BD%A9%E4%BA%A7%E5%93%81%E5%BC%80%E5%8F%91%E8%B5%84%E6%96%99201711.zip&fileExt=file

3.灵信视觉官网:

http://www.168led.com/ruanjianxiazai/

4.上位机操作教程:

http://www.168led.com/AjaxFile/DownLoadFileNew.aspx?FilePath=/UpLoadFile/20160901/%E5%8D%95%E5%8F%8C%E8%89%B2%E5%85%AD%E4%BB%A3%E8%BD%AF%E4%BB%B6%E8%A7%86%E9%A2%91%E6%95%99%E5%AD%A6.zip&fileExt=file

        

        这几天在调上海灵信视觉的A4控制板,这个是控制LED屏用的。官方例程只给了java,C++等demo,只能在PC端跑,很头疼。像我们这样用单片机跑的就跪了。花了一整天的时间,看它第一版的协议,要疯了你知道吗。一共536个字节,我用串口发,串口接,把数据打印下来,一位一位地跟协议对照,看看是怎么写的。更恶心的是它还有应答命令。需要你在收到确认时,回复应答。这样用单片机跑就很麻烦了,本来单片机的速度就不快,要这样来回地接受应答几百字节将近一千字节的数据,并且串口的波特率规定在57600,CPU就吃不消了,除非你用DMA,总归感觉很麻烦。先把来回帧的数据打印给你们看看:

1.请求帧:(串口发送)

55 AA 00 00 03 01 00 DA 00 00 00 00 00 00 4F 02 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 20 00 02 01 00 00 00 00 00 00 00 00 00 31 02 00 00 01 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 18 02 00 00 01 00 00 00 00 3F 00 1F 00 01 00 01 09 01 00 20 00 40 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF DE 9F FF FF FF FF FF FF DD E1 FF FF FF FF FF FF DB FD C0 87 87 87 87 87 07 FD BE 7B 7B 7B 7B 7B DE FD 7E 7B 7B 7B 7B 7B DD 81 7E 7B 7B 7B 7B 7B 5B ED 7E 87 87 87 87 87 8F ED 7E 7B 7B 7B 7B 7B D7 ED 7E 7B 7B 7B 7B 7B DB ED 7E 7B 7B 7B 7B 7B DD ED BE 7B 7B 7B 7B 7B DD EE C0 87 87 87 87 87 DC EE FF FF FF FF FF FF 42 EF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 00 0D 0A

2.应答帧:(串口接收)

55 AA 00 00   03   00   00 DA   00 00   00 00 00 00   04 00 00 00   04 00   00 00 00 00   00 00 0D 0A

3.确认帧:(串口发送)

55 AA 00 00 03 01 00 DA 00 00 01 00 00 00 4F 02 00 00 4F 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF   00 00 0D 0A 

4.应答帧:(串口接收)

55 AA 00 00 03 00 00 DA 00 00 01 00 00 00 04 00 00 00 04 00 01 00 00 00 00 00 0D 0A 


       也别数了,这么多数据我读就读了一两个小时,更别说写到程序里了。下面我看到了他的协议更新,发现几百位的数据被缩减到40-50位左右,还不需要用应答,立马弃了它的原协议。给你们看看他的新的协议:

55 AA 00 00 01 01 00 D9 00 00 00 00 00 00 00 00 00 00 00 00【数据】 00 00 0D 0A

前后32位是不需要改动的,只需要把你想要发的数据转成16进制数,加入到数据里去。给你们看一下例子:将LED显示“苏E12345”

55 AA 00 00 01 01 00 D9 00 00 00 00 00 00 00 00 00 00 00 00     //协议头
25 64 69 73 70 30 3a 30                                                                  //环境设置

cb d5 45 31 32 33 34 35                                                                  //要显示的数据

00 00 0D 0A                                                                                     //协议尾

        将这个通过串口发送到LED显示屏上就可以了。这里有几点要注意的:

        1.要先使用LED Player这个软件给屏幕下载字库:

        2.要配置好屏参和节目区域,内码区域。

步骤
        a.用USB转RS232接到A4控制板,打开设置,对屏参进行设置。(看资料4的视频)

        b.连接成功后,新建节目,新建内码,并且单机发送:


             c.将字库下载到板子中:常用命令->加载字库->选择进制。(中文英文的都加载)


        到这里,基本就可以使用A4控制卡了。将串口波特率设置为57600。单片机的代码我整理成.c和.h发出来看看。整个工程是用32写的,想看的,去我的博客上下载吧。

led.c:

#include "led.h"
#include "bsp_usart2.h"					//野火的串口

uint8_t ledData[PROTOCOLLEDLEN];

void LED_Config(){
	ledData[0]=0x55;	
	ledData[1]=0xaa;
	ledData[2]=0x00;
	ledData[3]=0x00;	
	ledData[4]=0x01;	
	ledData[5]=0x01;	
	ledData[6]=0x00;	
	ledData[7]=0xD9;
	ledData[8]=0x00;	
	ledData[9]=0x00;	
	ledData[10]=0x00;
	ledData[11]=0x00;	
	ledData[12]=0x00;
	ledData[13]=0x00;	
	ledData[14]=0x00;	
	ledData[15]=0x00;
	ledData[16]=0x00;
	ledData[17]=0x00;	
	ledData[18]=0x00;	
	ledData[19]=0x00;	
	ledData[20]=0x25;	
	ledData[21]=0x64;
	ledData[22]=0x69;	
	ledData[23]=0x73;
	ledData[24]=0x70;	
	ledData[25]=0x30;	
	ledData[26]=0x3A;	
	ledData[27]=0x30;	
	
	ledData[36]=0x00;	
	ledData[37]=0x00;
	ledData[38]=0x0D;
	ledData[39]=0x0A;
}

	
void LED_Set(char* ch,int len){
	int i=0;
	for(i=0;i<len;i++)
		ledData[i+28]=ch[i];
}

void LED_Display(u8* temp,u8 len){
	int i=0;	
	for(i=0;i<len;i++)
		USART2_Send_Char(temp[i]);//串口发送函数,野火库里有http://git.oschina.net/wildfireteam/wildfire_stm32_iso_mini.git
}

led.h:

#ifndef __LED_H_
#define __LED_H_

#include "stm32f10x.h"

#define PROTOCOLLEDLEN 40

void LED_Config();
void LED_Set(char* ch,int len);
void LED_Display(u8* temp,u8 len);


#endif







评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值