lcd一直白屏,贴出代码,帮忙看看。,谢谢
main.c源代码
#include "stm8s.h"#include "lcd.h"static void CLK_Config(void);static void UART_Config(void);void delay_ms(u16 i);/* Private functions ---------------------------------------------------------*/void delay_ms(u16 i){ u8 mn; while(i--) { for(m=0;m<39;m++) for(n=0;n<100;n++); }}/** * @brief Main program. * @param None * @retval None */void main(void){ CLK_Config(); GPIO_Config(); // UART_Config(); LCD_Init(); LCD_Clear(black); LCD_SetWindows(00100150); //设置显示窗体 LCD_Clear(red); LCD_SetWindows(00240320); //设置显示窗体 while (1) { LCD_Text(1010"kuibu"); delay_ms(10000); }}
lcd.h代码:
#define LCD_CS GPIO_PIN_1#define LCD_RS GPIO_PIN_2#define LCD_WR GPIO_PIN_3#define LCD_E GPIO_PIN_4#define LCD_RST GPIO_PIN_5#define Set_Cs GPIO_WriteHigh(LCD_CS_PORTLCD_CS)#define Clr_Cs GPIO_WriteLow(LCD_CS_PORTLCD_CS)#define Set_Rs GPIO_WriteHigh(LCD_RS_PORTLCD_RS)#define Clr_Rs GPIO_WriteLow(LCD_RS_PORTLCD_RS)#define Set_nWr GPIO_WriteHigh(LCD_WR_PORTLCD_WR)#define Clr_nWr GPIO_WriteLow(LCD_WR_PORTLCD_WR)#define Set_E GPIO_WriteHigh(LCD_E_PORTLCD_E)#define Clr_E GPIO_WriteLow(LCD_E_PORTLCD_E) #define Set_RST GPIO_WriteHigh(LCD_RST_PORTLCD_RST)#define Clr_RST GPIO_WriteLow(LCD_RST_PORTLCD_RST) #define Set_nRd GPIO_WriteHigh(LCD_RST_PORTLCD_RST)#define Clr_nRd GPIO_WriteLow(LCD_RST_PORTLCD_RST) void LCD_Init(void);void LCD_WriteIndex(u16 index);void LCD_WriteData(u16 data);void LCD_WriteReg(u16 LCD_Regu16 LCD_RegValue);void LCD_SetCursor( u16 Xpos u16 Ypos );void LCD_Clear(u16 Color);void GPIO_Config(void);void LCD_Text(u16 x u16 y u8 *str);void LCD_SetWindows(u16 StartXu16 StartYu16 EndXu16 EndY);void delay_ms(u16 i);#endif
lcd.c源代码
#include "lcd.h"
GPIO_PIN_5|GPIO_PIN_6GPIO_MODE_OUT_PP_LOW_FAST);
好像少了逗号
单从代码看不出什么的,首先你要确定STM8芯片本身对应的IO有输出,会不会因为IO初始化不正确导致不能输出
其次确定LCD与STM8的连接没问题