首页 > 其他分享 >第三次stm32学习(LCD)

第三次stm32学习(LCD)

时间:2024-12-01 15:32:29浏览次数:9  
标签:第三次 lcd stm32 LCD 选中 按键 页面 u8

利用原有的LCD驱动程序实现一些操作。从其他文件复制lcd.c和lcd.h和fonts.h到自己的工程下,再打开keil5点击魔法棒右边的按钮,选Application/User在Add Files加入lcd.c。同时应用头文件(#include"lcd.h")

LCD_Init()初始化

LCD_Clear(Black);清屏使lcd变为某颜色
LCD_SetTextColor(White);设置文本颜色
LCD_SetBackColor(Black);设置文本背景颜色

LCD_DisplayStringLine(u8 Line, u8 *ptr)      Line(0~9行)在某行显示ptr(想显示的字符串)长度最长为20

LCD_DisplayStringLine(Line0,(uint8_t*)"HELLO");//可在第0行显示HELLO,需注意要强制类型转换。

sprintf()可将其他类型格式化为字符串,其余功能与printf相同。需要引用头文件(#include"stdio.h")

sprintf()和LCD_DisplayStringLine(u8 Line, u8 *ptr) 共同使用,定义一个char buf[21]作为字符缓冲区,利用sprintf将想输入的字符串输入到缓冲区内,再用LCD_DisplayStringLine(u8 Line, u8 *ptr)显示。

实现用按键切换lcd页面,以及选中行。

思路:定义一个变量lcd_page来记录当前页面,按键按下时修改界面。line_flag选中行数

按键部分代码:按键1按下时页面切换及lcd_page++,一共有三页(0,1,2),进行越界判断一旦超过3就重新置0。每次切换时lcd清屏。按键2按下如果页面在第三面则选中行数增加,越界判断,一共有三行,超出清零。

在第一页第一行显示HELLO,第二页第二行显示J。

当页面在第二页分别在1,2 ,3行显示usled:usled具体数值(usled在定时器内每隔1ms加1)

return 0和return 1。初始为黑色背景白色文字。若选中即line_flag与行数相同则使其背景变为绿色的,每次设置完选中背景颜色,都需要在此设置回原来的颜色。

实现:在上面的基础设置按键三在页面二count1:0,count2:0,count3:0按下时选中行的数字加一。

按键部分增加判断页面是否为第二页,行数为选中的行,行数相对应的变量count1/count2/count3实现加一。

lcd第三页的设置实现选中背景显示绿色,以及显示按键增加后的具体值,没选中的则保持原状。

在学习lcd时将按键的知识与lcd融会贯通,更好的掌握了按键的操作。一开始怎么样都无法在lcd上显示,经仔细检查代码发现代码写在了GPIO初始化之前就无法完成对应操作了,将代码移到lcd初始化后就可以实现功能了,学习过程中遇到的难题要学会主动思考解决问题,具体的分析原因。我觉得遇见问题反而还能提升自己解决问题的能力,也是很不错的。就这样完成了!end!

标签:第三次,lcd,stm32,LCD,选中,按键,页面,u8
From: https://blog.csdn.net/2301_80307650/article/details/144169539

相关文章

  • stm32内部高速晶振打开作为主时钟
    首先建议你别这么干,因为内部晶振特别容易受温度等外界影响,很容易卡死或堵死程序我是因为没画外部晶振电路,所以只能开内部晶振来作为时钟适用于stm32f103系列把下面的代码换掉源文件里的时钟源配置/*开启HSI即内部晶振时钟*/ RCC->CR|=(uint32_t)0x00000001;//RCC......
  • 必看版指南:BTB扩展接口——LCD、Camera、UART、I2C…
    本次我将把BTB扩展接口——LCD、Camera、UART、I2C等作为介绍,特别分享Air201硬件BTB扩展接口相关内容。其板载BTB24PIN连接器,可用于扩展连接LCD、Camera、Uart、I2C等外设。通过BTB连接器,可以扩展使用PWRKEY引脚控制开关机,一路UART1串口接口连接外设,4路模拟IO口,2路带唤醒功能的......
  • 基于STM32的口罩检测系统的设计
    1.系统方案设计本课题为基于STM32的口罩检测系统的设计,其系统架构如图2.1所示,整个系统由STM32F103单片机和MaixBit开发板两部分构成,其中MaixBit是基于K210芯片的开发板,在此主要负责口罩的检测,液晶显示等功能,当其完成口罩是否佩戴规范后会通过TTL串口发出结果指令给STM32单片机......
  • 基于STM32的向量绘图仪教学文章
    引言在本教程中,我们将创建一个基于STM32的向量绘图仪。这个项目将展示如何控制机械臂在2D平面上绘制简单的图形。我们将使用STM32开发板、步进电机和相关的驱动模块。通过这个项目,您将深入理解STM32的使用、PWM信号的生成以及机械控制理论。环境准备硬件需求1.STM32开发板......
  • 基于STM32的步进电机控制器教学
    引言步进电机因其高精度和可控性被广泛应用于工业自动化、机器人、高精度仪器设备等领域。本项目将指导你使用STM32微控制器来控制步进电机,实现精确的运动控制。我们将通过PWM信号来控制电机的旋转方向和速度。环境准备硬件需求-STM32开发板(如STM32F103C8T6)-步进电机(如2......
  • STM32单片机学习记录(11.29)
    一、STM32    6.4-PWM驱动程序        1.PWM基本结构:运行控制——时基单元——输出比较单元——GPIO。        2.PWM程序编写步骤:        (1)RCC开启时钟,将要用的TIM外设和GPIO外设的时钟打开;      ......
  • STM32G4系列MCU的Direct memory access controller (DMA)功能之一
    目录概述1DMA介绍1.1DMA的描述1.2DMA的主要特性2DMA的应用2.1DMA1和DMA22.2DMA的映射关系3DMA的功能描述3.1架构框图3.2DMA引脚和内部信号3.3DMA传输数据3.4 DMA仲裁 概述本文主要介绍STM32G4MCU的DMA功能,包括功能概述,应用特性,框架结构等内容。1......
  • STM32移植FreeRTOS
    移植FreeRTOS到stm32单片机过程比较简单,以下纯做记录。1,打开已有的项目的STM32CUBMX设置 2,在“Pinout&Configuration”页面中,打开“MiddlewareandSoftwarePacks”中间件选项 3,在中间件选项中,①选中“FREERTOS”,打开FreeRTOS设置;②"Interface"接口选中“CMSIS_V1”;③......
  • Linux驱动开发之LCD显示和触摸
    目录LCD屏幕显示LCD相关参数FramebufferDRM驱动框架LCD屏幕触摸MT协议LCD屏幕显示LCD(LiquidCrystalDisplay),即液晶显示器,是一种数显技术,可以通过液晶和彩色过滤器过滤光源并在平面板上产生图像,是现在最常用到的显示器。而液晶本身不能发光,只能通过对光线的穿透和反......
  • 从0开始的STM32开发之旅——TM1637数码管
    目录前言数码管介绍一般数码管的显示原理编写驱动第一步——观察我们的TM1637编写驱动第二步——查看如何发起通信第三步——封装协议层bonus:亮度设置第四步:上升为业务逻辑第五步:构建demo示例前言在知识内容上,他算是软件IIC模拟的一个例子,所以实际上也算是使用GP......