中级会员
 
- 积分
- 360
- 金钱
- 360
- 注册时间
- 2014-5-14
- 在线时间
- 56 小时
|
5金钱
由于要使用两个CAN口,导致液晶引脚不能连续使用,硬件设计中,LCD的D11-D15是用单片机的PB3,4,4,8,9脚,
D10用PD2,D7-D9,D0-D2用PC7,8,9,10,11,12脚,D3-D6用PA 8,9,10,15.现在总是白屏,请高手指点。
C程序见附件
头文件:
#ifndef __LCD_H
#define __LCD_H
#include "sys.h"
#include "stdlib.h"
//LCD??????????
typedef struct
{
u16 width; //LCD ?í??
u16 height; //LCD ????
u16 id; //LCD ID
u8 dir; //?á???????ú????????0???ú????1???á????
u16 wramcmd; //??????gram????
u16 setxcmd; //?è??x×?±ê????
u16 setycmd; //?è??y×?±ê????
}_lcd_dev;
//LCD????
extern _lcd_dev lcddev; //???íLCD????????
//LCD????±???????±??°??
extern u16   OINT_COLOR;//?????ì??
extern u16 BACK_COLOR; //±??°????.??????°×??
////////////////////////////////////////////////////////////////////
//-----------------LCD?????¨??----------------
#define LCD_LED PAout(4) //LCD±??? PC10
/*
#define LCD_CS_SET GPIOC->BSRR=1<<9 //???????? PC9
#define LCD_RS_SET GPIOC->BSRR=1<<8 //????/?ü?? PC8
#define LCD_WR_SET GPIOC->BSRR=1<<7 //?????? PC7
#define LCD_RD_SET GPIOC->BSRR=1<<6 //?????? PC6
#define LCD_CS_CLR GPIOC->BRR=1<<9 //???????? PC9
#define LCD_RS_CLR GPIOC->BRR=1<<8 //????/?ü?? PC8
#define LCD_WR_CLR GPIOC->BRR=1<<7 //?????? PC7
#define LCD_RD_CLR GPIOC->BRR=1<<6 //?????? PC6
*/
#define LCD_CS_SET GPIO_SetBits(GPIOA,GPIO_Pin_0) //???????? PA0
#define LCD_RS_SET GPIO_SetBits(GPIOA,GPIO_Pin_2) //????/?ü?? PC8
#define LCD_WR_SET GPIO_SetBits(GPIOA,GPIO_Pin_1) //?????? PC7
#define LCD_RD_SET GPIO_SetBits(GPIOA,GPIO_Pin_3) //?????? PC6
#define LCD_CS_CLR GPIO_ResetBits(GPIOA,GPIO_Pin_0) //???????? PC9
#define LCD_RS_CLR GPIO_ResetBits(GPIOA,GPIO_Pin_2) //????/?ü?? PC8
#define LCD_WR_CLR GPIO_ResetBits(GPIOA,GPIO_Pin_1) //?????? PC7
#define LCD_RD_CLR GPIO_ResetBits(GPIOA,GPIO_Pin_3) //?????? PC6
//PB0~15,×÷????????
//#define DATAOUT(x) GPIOB->ODR=x; //????????
//#define DATAIN GPIOB->IDR; //????????
//#define DATAOUT(x) GPIO_Write(GPIOB,x);
//#define DATAIN GPIO_ReadInputData(GPIOB)
/*#define DATAOUT (x){
GPIOB->ODR=((GPIOB->ODR&0X00FF)|(x&0xFF00));
GPIOC->ODR=((GPIOC->ODR&0XFF00)|(x&0x00FF));
} */
#define DATAIN (GPIOA->IDR&0X8700)|(GPIOB->IDR&0X0338)|(GPIOC->IDR&0X1F80)|(GPIOD->IDR&0X0004) //????
//////////////////////////////////////////////////////////////////////
//?¨?è·??ò?¨??
#define L2R_U2D 0 //??×ó????,????????
#define L2R_D2U 1 //??×ó????,????????
#define R2L_U2D 2 //??????×ó,????????
#define R2L_D2U 3 //??????×ó,????????
#define U2D_L2R 4 //????????,??×ó????
#define U2D_R2L 5 //????????,??????×ó
#define D2U_L2R 6 //????????,??×ó????
#define D2U_R2L 7 //????????,??????×ó
#define DFT_SCAN_DIR L2R_U2D //???????¨?è·??ò
//?¨?è·??ò?¨??
#define L2R_U2D 0 //??×ó????,????????
#define L2R_D2U 1 //??×ó????,????????
#define R2L_U2D 2 //??????×ó,????????
#define R2L_D2U 3 //??????×ó,????????
#define U2D_L2R 4 //????????,??×ó????
#define U2D_R2L 5 //????????,??????×ó
#define D2U_L2R 6 //????????,??×ó????
#define D2U_R2L 7 //????????,??????×ó
#define DFT_SCAN_DIR L2R_U2D //???????¨?è·??ò
//??±?????
#define WHITE 0xFFFF
#define BLACK 0x0000
#define BLUE 0x001F
#define BRED 0XF81F
#define GRED 0XFFE0
#define GBLUE 0X07FF
#define RED 0xF800
#define MAGENTA 0xF81F
#define GREEN 0x07E0
#define CYAN 0x7FFF
#define YELLOW 0xFFE0
#define BROWN 0XBC40 //×???
#define BRRED 0XFC07 //×??ì??
#define GRAY 0X8430 //????
//GUI????
#define DARKBLUE 0X01CF //??????
#define LIGHTBLUE 0X7D7C //??????
#define GRAYBLUE 0X5458 //??????
//??????????PANEL??????
#define LIGHTGREEN 0X841F //??????
#define LGRAY 0XC618 //??????(PANNEL),?°??±??°??
#define LGRAYBLUE 0XA651 //????????(??????????)
#define LBBLUE 0X2B12 //??×?????(??????????·???)
void DATAOUT(u16 x) ;
void LCD_Init(void); //??????
void LCD_DisplayOn(void); //??????
void LCD_DisplayOff(void); //??????
void LCD_Clear(u16 Color); //????
void LCD_SetCursor(u16 Xpos, u16 Ypos); //?è????±ê
void LCD_DrawPoint(u16 x,u16 y); //????
void LCD_Fast_DrawPoint(u16 x,u16 y,u16 color); //?ì??????
u16 LCD_ReadPoint(u16 x,u16 y); //????
void LCD_Draw_Circle(u16 x0,u16 y0,u8 r); //????
void LCD_DrawLine(u16 x1, u16 y1, u16 x2, u16 y2); //????
void LCD_DrawRectangle(u16 x1, u16 y1, u16 x2, u16 y2); //??????
void LCD_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 color); //????????
void LCD_Color_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 *color); //???????¨????
void LCD_ShowChar(u16 x,u16 y,u8 num,u8 size,u8 mode); //????????×?·?
void LCD_ShowNum(u16 x,u16 y,u32 num,u8 len,u8 size); //??????????×?
void LCD_ShowxNum(u16 x,u16 y,u32 num,u8 len,u8 size,u8 mode); //???? ??×?
void LCD_ShowString(u16 x,u16 y,u16 width,u16 height,u8 size,u8 *p); //????????×?·??®,12/16×???
void LCD_WriteReg(u16 LCD_Reg, u16 LCD_RegValue);
u16 LCD_ReadReg(u16 LCD_Reg);
void LCD_WriteRAM_Prepare(void);
void LCD_WriteRAM(u16 RGB_Code);
void LCD_Scan_Dir(u8 dir); //?è?????¨?è·??ò
void LCD_Display_Dir(u8 dir); //?è??????????·??ò
void LCD_Set_Window(u16 sx,u16 sy,u16 width,u16 height); //?è???°??
void LCD_WR_DATA(u16 data);
//??????????
/*#define LCD_WR_DATA(data){\
LCD_RS_SET;\
LCD_CS_CLR;\
DATAOUT(data);\
LCD_WR_CLR;\
LCD_WR_SET;\
LCD_CS_SET;\
}
*/
//9320/9325 LCD?????÷
#define R0 0x00
#define R1 0x01
#define R2 0x02
#define R3 0x03
#define R4 0x04
#define R5 0x05
#define R6 0x06
#define R7 0x07
#define R8 0x08
#define R9 0x09
#define R10 0x0A
#define R12 0x0C
#define R13 0x0D
#define R14 0x0E
#define R15 0x0F
#define R16 0x10
#define R17 0x11
#define R18 0x12
#define R19 0x13
#define R20 0x14
#define R21 0x15
#define R22 0x16
#define R23 0x17
#define R24 0x18
#define R25 0x19
#define R26 0x1A
#define R27 0x1B
#define R28 0x1C
#define R29 0x1D
#define R30 0x1E
#define R31 0x1F
#define R32 0x20
#define R33 0x21
#define R34 0x22
#define R36 0x24
#define R37 0x25
#define R40 0x28
#define R41 0x29
#define R43 0x2B
#define R45 0x2D
#define R48 0x30
#define R49 0x31
#define R50 0x32
#define R51 0x33
#define R52 0x34
#define R53 0x35
#define R54 0x36
#define R55 0x37
#define R56 0x38
#define R57 0x39
#define R59 0x3B
#define R60 0x3C
#define R61 0x3D
#define R62 0x3E
#define R63 0x3F
#define R64 0x40
#define R65 0x41
#define R66 0x42
#define R67 0x43
#define R68 0x44
#define R69 0x45
#define R70 0x46
#define R71 0x47
#define R72 0x48
#define R73 0x49
#define R74 0x4A
#define R75 0x4B
#define R76 0x4C
#define R77 0x4D
#define R78 0x4E
#define R79 0x4F
#define R80 0x50
#define R81 0x51
#define R82 0x52
#define R83 0x53
#define R96 0x60
#define R97 0x61
#define R106 0x6A
#define R118 0x76
#define R128 0x80
#define R129 0x81
#define R130 0x82
#define R131 0x83
#define R132 0x84
#define R133 0x85
#define R134 0x86
#define R135 0x87
#define R136 0x88
#define R137 0x89
#define R139 0x8B
#define R140 0x8C
#define R141 0x8D
#define R143 0x8F
#define R144 0x90
#define R145 0x91
#define R146 0x92
#define R147 0x93
#define R148 0x94
#define R149 0x95
#define R150 0x96
#define R151 0x97
#define R152 0x98
#define R153 0x99
#define R154 0x9A
#define R157 0x9D
#define R192 0xC0
#define R193 0xC1
#define R229 0xE5
#endif
|
最佳答案
查看完整内容[请看2#楼]
回复【6楼】八度空间:
-----------------------------已经成功显示了,谢谢
|