分享一个诺基亚1202显示屏的STM32代码和点阵提取工具

2019-12-21 12:12发布

本帖最后由 ErrorGz2016 于 2018-2-20 20:20 编辑

2018-02-20_194754.png (35.99 KB, 下载次数: 0) 下载附件 2018-2-20 19:50 上传

1202显示屏函数
LCD110.rar (4.08 KB, 下载次数: 15) 2018-2-20 19:45 上传 点击文件名下载附件

简单说明:
一、在LCD1110.H配置好LCD的RES、CS、SCK、SDA的引脚,例如:
#define LCD_RES_PORT GPIOB
#define LCD_RES_PIN GPIO_PIN_14

#define LCD_CS_PORT GPIOB
#define LCD_CS_PIN GPIO_PIN_12

#define LCD_SCK_PORT GPIOB
#define LCD_SCK_PIN GPIO_PIN_13

#define LCD_SDA_PORT GPIOB
#define LCD_SDA_PIN GPIO_PIN_15

二、上述引脚的初始化

  /*Configure GPIO pin Output Level */
  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_11, GPIO_PIN_SET);

  /*Configure GPIO pin Output Level */
  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15, GPIO_PIN_RESET);

  /*Configure GPIO pins : PB12 PB13 PB14 PB15 */
  GPIO_InitStruct.Pin = GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
  HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

三、font16x16.c已包含ASCII点阵,根据开发需要在“汉字点阵提取工具”中,提取需要的汉字,并将生成的数据结构放在font16x16.c中,例如生成:
const char str_0[]={ 0x0, 0x80, 0x98, 0xB0, 0xA0, 0x80, 0x80, 0x80, 0x80, 0xF8, 0xF8, 0x80, 0x80, 0x80, 0x80, 0xF0, 0xF0, 0x10, 0x10, 0xF0, 0xF0, 0x40, 0x40, 0x40, 0x40, 0xF8, 0xF8, 0x40, 0x40, 0x50, 0x50, 0xF0, 0xF8, 0x48, 0x48, 0x78, 0x48, 0x48, 0x48, 0x48, 0x78, 0x78, 0x0, 0x0, 0xE0, 0xE0, 0x20, 0xA0, 0xA0, 0xA8, 0xB8, 0xB0, 0xA0, 0xA0, 0xA0, 0xA0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7F, 0x7F, 0x20, 0x30, 0x0, 0x0, 0x7F, 0x7F, 0x0, 0x0, 0x0, 0x0, 0x3F, 0x3F, 0x11, 0x11, 0x3F, 0x3F, 0x1, 0x43, 0x46, 0x40, 0x7F, 0x7F, 0x0, 0x0, 0x18, 0xF, 0x7F, 0x7F, 0x7, 0x45, 0x49, 0x49, 0x49, 0x7F, 0x49, 0x49, 0x49, 0x41, 0x60, 0x7F, 0x1F, 0x4, 0x4, 0x44, 0x46, 0x46, 0x7E, 0x7, 0x5, 0x15, 0x1C, 0xC, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0};
const lcd_img img_str0={ 1,64,2,str_0};

使用如下函数显示汉字
void LCD_Show_CnFont(lcd_img img, unsigned char x_pos, unsigned char y_pos);

其他函数也是比较简单:
void LCD_SET_XY(unsigned char x, unsigned char y);
void LCD_Show_CnFont(lcd_img img, unsigned char x_pos, unsigned char y_pos);
void LCD_Show_Font(char c,unsigned char x_pos,unsigned char y_pos);
void LCD_Show_Fonts(char *p,unsigned char x_pos,unsigned char y_pos);
void LCD_Clear(unsigned char dot);
void LCD_Clear_Window(char x_pos,char y_pos,char width,char line,char dot);
void LCD_Init(void);
void LCD_Print_char(char p);
void LCD_Print(char *p);
void LCD_PrintN(char *p,char size);

其他相关资料
96 x 68 Single Chip LCD Controller_Driver.pdf (725.71 KB, 下载次数: 24) 2018-2-20 20:18 上传 点击文件名下载附件
1202液晶使用手册.pdf (2.11 MB, 下载次数: 49) 2018-2-20 20:18 上传 点击文件名下载附件
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。