国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品
電子工程網(wǎng)
標(biāo)題:
STM32驅(qū)動(dòng)2.4寸顯示屏顯示SD卡的圖片,Modbus通信控制顯示文字與圖片
[打印本頁(yè)]
作者:
gdwhwp
時(shí)間:
2013-1-8 18:52
標(biāo)題:
STM32驅(qū)動(dòng)2.4寸顯示屏顯示SD卡的圖片,Modbus通信控制顯示文字與圖片
本人自用
STM32驅(qū)動(dòng)2.4寸顯示屏顯示SD卡的圖片,Modbus通信控制顯示文字與圖片
供大家參考
一個(gè)完整的工程給大家分享一下,內(nèi)容如標(biāo)題所示
顯示屏:采用國(guó)產(chǎn)機(jī)通用2.4寸顯示屏
主控:
STM32F103VET6(100
腳
)
SD
卡座:
MINI
型。
光藕:
TLP-621
電源芯片:初定
TD1410+ASM1117
字庫(kù):
GT23L32S4W
485
接口:
未定義
原理圖
[attachment=6]
通信協(xié)議為
Modbus rtu
主程序如下
/*******************************************************************************
文件名: main.c
說(shuō) 明: 主程序
作 者: 汪平
版 本: ver1.0
日 期: 2012.07.28
郵箱:
gdwhwp@163.com
個(gè)人網(wǎng)站:
www.gdwhwp.com
*******************************************************************************/
#include "ffnFAT.h"
#include
#include
#include
#include "SPI_SD_driver.h"
#include "stm_res.h"
//#include "LCD_Driver\TFT_Driver.h"
#define COLOR(r,g,b) (((r) << 8) & 0xF800) | (((g) << 3) & 0x7E0) | ((b) >> 3); //r紅色分量 0~31 g綠色分量 0~63 b藍(lán)色分量 0~31
#define Picture_Reg RegisterData[0] //第一個(gè)寄存是圖片顯示
#define Keyboard_Reg RegisterData[1] //第二個(gè)寄存器按鍵狀態(tài)
#define WordType_Reg RegisterData[2] //顯示文字字體
#define wordcolor_Reg RegisterData[3] //顯示文字顏色
#define backcolor_Reg RegisterData[4] //顯示文字背景顏色
unsigned char Dev_No; //設(shè)備號(hào)
struct znFAT_Init_Arg *pArg; //用于指針文件系統(tǒng)參數(shù)集合的指針
struct znFAT_Init_Arg Init_Arg_SDCARD; //文件系統(tǒng)參數(shù)集合,用于記錄文件系統(tǒng)的重要參數(shù)
//調(diào)試打開(kāi)SD卡根目錄下test.txt文件
struct FileInfoStruct FileInfo_FFN; //文件參數(shù)集合
unsigned char read_Buffer[512];
char Show_HANZI1[]="顯示屏只是提供參考";
char Show_HANZI2[]="設(shè)計(jì)者:汪平";
char Show_wangzan[]="gdwhwp.com";
#define Show_String_Size 24
char Show_String[30][40] =
{
/* 1 */ "設(shè)計(jì)者:汪平",
/* 2 */ "個(gè)人網(wǎng)站:gdwhwp.com",
/* 3 */ "QQ:570542229",
/* 4 */ "寫(xiě)下你要顯示的內(nèi)容",
/* 5 */ "隨意。。。。",
/* 6 */ "設(shè)計(jì)者:汪平",
/* 7 */ "個(gè)人網(wǎng)站:gdwhwp.com",
/* 8 */ "QQ:570542229",
/* 9 */ "寫(xiě)下你要顯示的內(nèi)容",
/* 10 */ "隨意。。。。",
};
unsigned char Picture_Show = 0;
extern unsigned short Key_State;
UINT32 FileTotalSector;
UINT32 counter = 0; //記錄實(shí)時(shí)讀取扇區(qū)
UINT8 flagdebug = 0xff;
UINT8 VOL_VALUE=0x25; //
UINT8 CurrentFileNum = 0;
UINT16 SongFileTotal = 0;
UINT8 UserHitKeyReturn = 0;
struct
{
u16 dcolor; //顯示顏色
u16 bcolor; //背景顏色
u16 type; //字體類型
u16 start_y; //背景顏色
}Show_Word;
///////////////紅外///////////////
extern u8 irnum; //紅外用全局變量
extern volatile u8 irtime;
u8 irpro_ok,irok; //完成標(biāo)志位
extern UINT8 Uart1_Get_Flag; //串口1接收到數(shù)據(jù)標(biāo)志
extern UINT8 Uart1_Get_Data; //串口1接收的數(shù)據(jù)
extern u8 bSerialDataOK;
extern u16 RegisterData[20];
volatile u8 MP3_irRmote_flag = 0;
volatile u8 g_HiPlayer_Stop_Flag = 0;
volatile u8 g_HiPlayer_Pause_Flag = 0;
extern unsigned short Master_UART_Data;
///////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
//函數(shù)聲明
void SearchNearestLocationPoint(UINT32 nGps_x,UINT32 nGps_y);
extern void VS1003SendDat(u8 dat);
extern void VS1003_FlushBuffer() ;
extern void VS1003_SetHighSpeedSPI();
extern UINT32 znFAT_Read_File(struct FileInfoStruct *pfi,UINT32 offset,UINT32 len,UINT8 *pbuf);
extern unsigned char const image[3200];
////////////////////////////////////////////////////////////////////////////////////
void Device_Init(void)
{
STM_ChipInResConfigInit();
GPIO_GT23L32S4W_Init();
SD_Init();
//文件系統(tǒng)初始化
pArg=&Init_Arg_SDCARD; //指針指向SD卡文件系統(tǒng)參數(shù)集合,znFAT將從這個(gè)集合中獲取參數(shù)
Dev_No=SDCARD; //設(shè)備號(hào)為SDCARD,ffnFAT依照此設(shè)備號(hào)選擇存儲(chǔ)設(shè)備驅(qū)動(dòng) SDCARD 在ffnFAT.h里定義
znFAT_Init(); //初始化FAT32文件系統(tǒng)
}
void Show_String_Sreen(void)
{
GT23L32S4W_Read_ZF_ASC((WordType_Reg+2)*(Picture_Reg-200)+WordType_Reg/2,Show_Word.start_y+WordType_Reg/2,Show_String[Picture_Reg-200],WordType_Reg,wordcolor_Reg,backcolor_Reg);
}
void Display_Bmp_Pic()
{
unsigned int i=0;
unsigned int j=0;
unsigned int k=0;
unsigned int color=0;
// set_window();
LCD_Set_area(0,0,239,319);
for(i=0;i<1920;i++) //讀取76800個(gè)點(diǎn)的顏色數(shù)據(jù)
{
znFAT_Read_File(&FileInfo_FFN,(unsigned long)i*120+54,120,read_Buffer);
for(j=0;j<40;j++)
{
color=COLOR(read_Buffer[2+3*j],read_Buffer[1+3*j],read_Buffer[0+3*j]);
// color = (unsigned int)file_buf[k*2+1]<<8|(unsigned int)file_buf[k*2];
LCD_Write_Data_16(color);
// UART_Put_Num(file_buf
);
}
}
Picture_Show = 0;
// MAX485_Putc(9);
//UART_Send_Str("圖像顯示完畢\n");
// FAT32_File_Close(&FileInfo);
//UART_Send_Str("文件已關(guān)閉\n");
}
#if 1
//主函數(shù) WHY1S-LSUIR-MCSJV-S6T0S-VQ5IS-2NITP
int main(void)
{
int dly = 0;
unsigned int i,j,k;
unsigned short Color = 0;
unsigned char item=0;
wordcolor_Reg = Show_Word.dcolor = BLUE;
backcolor_Reg = Show_Word.bcolor = WHITE;
Show_Word.type = WordType_Reg = 24;
Show_Word.start_y = 0;
Device_Init();
LCD_IO_Init();
Keyboard_Init();
GPIO_ResetBits(GPIOA, GPIO_Pin_8); //背光
LCD_Init(); //tft初始化
// Clr_Cs; //打開(kāi)片選使能
Pant(0xffff); //清屏
//初始化串口
USART1_Config(9600);
MAX485_Puts("UART1");
//初始化NVIC
NVIC_Configuration();
show_asc_8X16_str(30,60,"Hello !Wellcom to use",BLUE,WHITE);
GT23L32S4W_Read_ZF_ASC(100,80,Show_wangzan,24,BLUE,WHITE);
GT23L32S4W_Read_ZF_ASC(200,80,Show_HANZI2,24,RED,WHITE);
LCD_Delay_Ms(2000);
GT23L32S4W_Read_ZF_ASC(150,50,Show_HANZI1,24,RED,WHITE);
LCD_Delay_Ms(2000);
Pant(RED); //清屏
LCD_Delay_Ms(1000);
Pant(BLUE); //清屏
LCD_Delay_Ms(1000);
Pant(GREEN); //清屏
LCD_Delay_Ms(2000);
Pant(0xffff); //清屏
//SD_ReadSingleSector(0,read_Buffer);
while(!znFAT_Open_File(&FileInfo_FFN, "\\*.bmp",SongFileTotal,SongFileTotal+1)) //打開(kāi)U盤根目錄下所有目錄中的第n個(gè)
{
SongFileTotal++;
}
//VS1003_SetHighSpeedSPI(); //SPI高速
GPIO_SetBits(GPIOA, GPIO_Pin_2);
while(1)
{
LCD_Delay_Ms(20);
Board_Key_Scan();
if(bSerialDataOK == 1) //03
{
DoWithRevData();
bSerialDataOK = 0;
}
else if(bSerialDataOK == 2) //06
{
bSerialDataOK = 0;
}
if(Picture_Reg >= 100 && Picture_Reg < 200) //圖片
{
CurrentFileNum = Picture_Reg - 100;
if(CurrentFileNum
{
Picture_Show = 1;
Master_UART_Data = 0;
Picture_Reg=0;
}
// MAX485_Putc(1);
}
else if(Picture_Reg >=200) //字
{
Show_String_Sreen();
Picture_Reg=0;
}
while(Picture_Show == 1)
{
if(!znFAT_Open_File(&FileInfo_FFN,"\\*.bmp",CurrentFileNum,SongFileTotal))
{
Display_Bmp_Pic();
}
}
}
}
#endif
字庫(kù)程序
har CHR_MSB;
unsigned char CHR_LSB;
CHR_MSB=*P_chr;
if(CHR_MSB<0x80)//ASCII ,半角
{
if( CHR_MSB < 0x20 )
CHR_MSB = 0x20;
CHR_Address = CHR_MSB - 0x20;
if( CHR_type == TYPE_16 ) //8X16 點(diǎn) ASCII 字符
CHR_Address = CHR_Address*16 + ASC0816YZF_ADDR;
else if( CHR_type == TYPE_24 )//12*24號(hào)半角ASCII為點(diǎn)陣信息為16*24
CHR_Address = CHR_Address*48 + ASC1224YZF_ADDR;
else if( CHR_type == TYPE_32 )//16X32 點(diǎn) ASCII 字符
CHR_Address = CHR_Address*64 + ASC1632YZF_ADDR;
if( CHR_type <=16 )
num = CHR_type;
else
num = 2*CHR_type;
}
else //中文GB2312
{
P_chr++;
CHR_LSB=*P_chr;
num = (CHR_type + CHR_type%8)*CHR_type/8;
//符號(hào)區(qū),全角 846+96 = 1038
if( (CHR_MSB>=0xA1 && CHR_MSB <= 0xAB && CHR_LSB>=0xa1)||(CHR_MSB>=0xa8 && CHR_MSB <= 0xa9 && CHR_LSB<0xa1) )
{
if( CHR_MSB>=0xA1 && CHR_MSB <= 0xAB && CHR_LSB>=0xa1 )//雙字節(jié)字符1區(qū) 846
CHR_Address = (CHR_MSB - 0xA1) * 94 + (CHR_LSB - 0xA1);
else //雙字節(jié)字符5區(qū) 96
{
if(CHR_LSB>0x7f)
CHR_LSB--;
CHR_Address=(CHR_MSB-0xa8)*96 +(CHR_LSB-0x40)+846;
}
if( CHR_type == TYPE_16 )
CHR_Address = CHR_Address *32 + ZF1616Y_ADDR;
else if( CHR_type == TYPE_24 )
CHR_Address = CHR_Address *72 + ZF2424Y_ADDR;
else if( CHR_type == TYPE_32 )
CHR_Address = CHR_Address *128 + ZF3232Y_ADDR;
else
CHR_Address = 0x000000;
}
//GBK雙字節(jié)2區(qū) 6768
else if(CHR_MSB>=0xb0 && CHR_MSB <= 0xf7 && CHR_LSB>=0xa1)
{
CHR_Address= (CHR_MSB - 0xB0) * 94 + (CHR_LSB - 0xA1);
if( CHR_type == TYPE_16 )
CHR_Address = (unsigned int)(CHR_Address*32) + (unsigned int)(HZ1616Y_ADDR);
else if( CHR_type == TYPE_24 )
CHR_Address = (unsigned int)((CHR_Address + 846)*72) + 0x68190;
else if( CHR_type == TYPE_32 )
CHR_Address = (unsigned int)((CHR_Address + 846)*128) + 0xEDF00;
else
CHR_Address=0x000000;
}
}
更多內(nèi)容參考下邊鏈接
http://worldcreativedesign.com/read.php?tid=11
作者:
aihe
時(shí)間:
2013-9-19 10:57
用的是振南znFat
歡迎光臨 電子工程網(wǎng) (http://m.qingdxww.cn/)
Powered by Discuz! X3.4
主站蜘蛛池模板:
香蕉久草
|
忘忧草下载
|
nxgx69日本护士
|
国产精品成人免费
|
美国VICTORY DAY在线
|
亚洲 欧美 日韩 国产 视频
|
依恋影院在线观看
|
性亚洲
|
亚洲精品美女视频
|
天天爽夜夜爽人人爽
|
日韩高清在线观看
|
午夜久久久精品
|
天天大片天天看大片
|
怡红院成人影院
|
打卡中国各地奋斗第一线
|
奶水四溅54p
|
尤蜜网站在线进入免费
|
亚洲天堂首页
|
天天天干干干
|
亚洲色图综合
|
俄罗斯人与动ZOOZ
|
求个av网站
|
欧美无遮挡一区二区三区
|
四虎久久影院
|
视频在线免费高清
|
手机在线看视频
|
这里有精品可以观看
|
后入式狂顶免费视频
|
亚洲 欧美 中文 日韩 另类
|
亚洲国产一区视频
|
色欧美片视频在线观看
|
综合 欧美 亚洲日本
|
一个人看的www播放视频
|
yin荡体育课羞耻play双性
|
亚洲免费成人网
|
亚洲视频在线观看免费
|
精品无人区一区二区三区
|
亚洲AV国产精品无码精
|
亚洲欧美日韩国产精品网
|
五月综合激情视频在线观看
|
一本大道一卡2卡三卡4卡麻豆
|