【STM32+HAL】LCD实现多功能计算器

一、所用工具:

1、芯片: STM32F407ZGT6

2、STM32CubeMx软件

3、IDE: MDK-Keil软件

4、显示屏:正点原子2.8寸TFT LCD MCU电阻屏 320*240

二、实现功能:

1、按键改变字幕滚动速度及方向

2、触摸数字计算器,实现以下功能:加减乘除、指数对数、三角函数、括号及小数

三、准备工作:

1、有关CUBEMX的初始化配置,参见我的另一篇blog:【STM32+HAL】CUBEMX初始化配置

2、有关LCD屏的初始化配置,参见我的另一篇blog:【STM32+HAL】LCD显示及触摸初始化配置

3、有关C语言栈计算器代码,参见我的另一篇blog:栈计算器(C)

四、KEIL填写代码:

1、计算器屏幕绘制

可写在lcd.c的void LCD_Clear(u32 color)函数中,即每次刷新屏幕都不变

		/* 计算器专用清屏 */
	for(int i=1;i<=7;i++){
		LCD_DrawLine(0,40*i,240,40*i);
	}
	for(int i=1;i<=4;i++){
		LCD_DrawLine(48*i,40,48*i,320);		
	}
	LCD_ShowNum(113,285,0,1,32);
	LCD_ShowNum(65,245,1,1,32);
	LCD_ShowNum(113,245,2,1,32);
	LCD_ShowNum(161,245,3,1,32);
	LCD_ShowNum(65,205,4,1,32);
	LCD_ShowNum(113,205,5,1,32);
	LCD_ShowNum(161,205,6,1,32);
	LCD_ShowNum(65,165,7,1,32);
	LCD_ShowNum(113,165,8,1,32);
	LCD_ShowNum(161,165,9,1,32);
	LCD_ShowString(209,245,200,4,32,"+");
	LCD_ShowString(209,205,200,4,32,"-");
	LCD_ShowString(209,165,200,4,32,"*");
	LCD_ShowString(209,125,200,4,32,"/");
	LCD_ShowString(161,285,200,4,32,".");
	LCD_ShowString(55,285,200,4,24,"lnx");
	LCD_ShowString(200,285,200,4,32,"OK");
	LCD_ShowString(200,88,200,4,24,"MOD");
	LCD_ShowString(153,88,200,4,24,"DTB");
	LCD_ShowString(200,45,200,4,32,"<-");
	LCD_ShowString(160,45,200,4,32,"C");
	LCD_ShowString(115,47,200,4,24,"e");
	LCD_ShowString(102,90,200,4,24,"|X|");
	LCD_ShowString(52,90,150,4,24,"1/X");
	LCD_ShowString(5,50,150,4,24,"EXP");
	LCD_ShowString(5,90,150,4,24,"x^y");
	LCD_ShowString(0,130,150,4,24,"Sqrt");
	LCD_ShowString(56,45,200,4,24,"pai");
	LCD_ShowString(155,125,200,4,32,"n!");
	LCD_ShowString(115,125,200,4,32,")");
	LCD_ShowString(65,125,200,4,32,"(");
	LCD_ShowString(0,285,150,4,24,"logx");
	LCD_ShowString(0,245,150,4,24,"Cosx");
	LCD_ShowString(0,205,150,4,24,"Sinx");
	LCD_ShowString(0,165,150,4,24,"tanx");

2、判断按下位置,并存入数组中

若按下为 “=”,则在数组末尾添加 '\0',并传入函数进行计算

这没什么好说的,看下附的工程

五、源码提供

【免费】【STM32+HAL】LCD显示初始化配置

LCD显示及触摸初始化配置

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值