STM32F1 LCD上显示汉字(不插卡)

本文介绍了如何在STM32开发板上通过GBK码显示特定汉字,包括查询汉字编码、设置显示位置,以及在LCD屏幕上显示中文字符的过程。代码示例详细展示了如何初始化硬件、挂载存储设备和执行显示操作。
摘要由CSDN通过智能技术生成

 1.查询想显示的汉字的gbk码,在网上随便找一个在线查询网站即可。

如我想显示中国,则查询中的gbk码为D6D0,国的gbk码为B9FA,就更改fontx的值,fontx1[0]为前两位d6,fontx1[1]为后两位d0。

    fontx1[0]=0xd6; 
    fontx1[1]=0xd0;
    Show_Font(152,220,fontx1,24,0);   //中 
    fontx2[0]=0xb9; 
    fontx2[1]=0xfa;
    Show_Font(152+25,220,fontx2,24,0);  //国

2.显示位置。根据喜好,想放哪放哪,152指横向坐标,220指纵向坐标,24指字体大小,12、16、24均可,最后的0表示字体正常显示,如果想叠加显示改为1。

代码如下

int main(void)
 {	 		  
	u8 fontx1[2];//gbk码
	 u8 fontx2[2];//gbk码
	 u8 fontx3[2];//gbk码
	delay_init();	    	 //延时函数初始化	  
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
	uart_init(115200);	 	//串口初始化为115200
 	usmart_dev.init(72);		//初始化USMART		
 	LED_Init();		  			//初始化与LED连接的硬件接口
	KEY_Init();					//初始化按键
	LCD_Init();			   		//初始化LCD   
	W25QXX_Init();				//初始化W25Q128
 	my_mem_init(SRAMIN);		//初始化内部内存池
	exfuns_init();				//为fatfs相关变量申请内存  
 	f_mount(fs[0],"0:",1); 		//挂载SD卡 
 	f_mount(fs[1],"1:",1); 		//挂载FLASH.		 
while(font_init()) 			//检查字库
	{
UPD:    
		LCD_Clear(WHITE);		   	//清屏
 		POINT_COLOR=RED;			//设置字体为红色	   	   	  
		LCD_ShowString(30,50,200,16,16,"WarShip STM32");
		while(SD_Init())			//检测SD卡
		{
			LCD_ShowString(30,70,200,16,16,"SD Card Failed!");
			delay_ms(200);
			LCD_Fill(30,70,200+30,70+16,WHITE);
			delay_ms(200);		    
		}								 						    
		LCD_ShowString(30,70,200,16,16,"SD Card OK");
		LCD_ShowString(30,90,200,16,16,"Font Updating...");
		  
		LCD_ShowString(30,110,200,16,16,"Font Update Success!   ");
		delay_ms(1500);	
		LCD_Clear(WHITE);//清屏	       
	} 

	fontx1[0]=0xd6; 
	fontx1[1]=0xd0;
	Show_Font(152,220,fontx1,24,0);	//中
	fontx2[0]=0xb9; 
	fontx2[1]=0xfa;
	Show_Font(152+25,220,fontx2,24,0); //国
		
} 
 

因为我做实验显示的是自己的名字,所以实验结果就不放出来了。

  • 10
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在STM32F1微控制器上的LCD12864上显示图片,您可以按照以下步骤进行操作: 1. 准备图像:将图像转换为适合LCD12864的格式,通常为黑白位图(1位色深)。您可以使用图像处理软件(如Photoshop)或在线工具将图像转换为位图格式。 2. 连接硬件:将LCD12864与STM32F1微控制器连接。通常,您需要将LCD的数据引脚连接到STM32F1的GPIO引脚,并将控制引脚(例如RST,CE,DC)连接到适当的GPIO引脚。 3. 配置GPIO引脚:在STM32CubeIDE或CubeMX中配置GPIO引脚,将其设置为适当的输入/输出模式和电平状态。 4. 编写代码:使用适当的库函数或驱动程序,编写代码来初始化LCD并将位图数据发送到LCD显示。具体的代码实现可能会根据您使用的LCD和库而有所不同。 以下是一个示例代码片段,可作为您开始的参考: ```c #include "stm32f1xx_hal.h" #include "lcd12864.h" // 假设您有一个自定义的LCD库 int main(void) { HAL_Init(); LCD_Init(); // 初始化LCD // 将位图数据发送到LCD显示 uint8_t image[] = {0xFF, 0xFF, 0xFF, /* 位图数据 */}; LCD_DrawImage(image, 0, 0, image_width, image_height); // image_width和image_height是位图的宽度和高度 while (1) { // 主循环 } } ``` 请注意,这只是一个示例代码片段,您需要根据您的具体硬件和库进行适当的修改和配置。 希望这可以帮助您开始在STM32F1显示图片。如有任何疑问,请随时提问!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值