1. 程式人生 > >上海靈信視覺A4控制板

上海靈信視覺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