stm32f103 数字上下滚动 TFT LCD 代码
时间: 2023-08-13 17:03:46 浏览: 53
这里给出一个基于STM32F103C8T6芯片和1.8寸TFT LCD的数字上下滚动代码,需要使用ST库和TFT LCD驱动库。
```c
#include "stm32f10x.h"
#include "TFTLCD.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define LCD_W 128
#define LCD_H 160
#define FONT_W 8
#define FONT_H 16
#define MAX_NUM 1000
char str[MAX_NUM];
int num = 0;
int scroll_y = 0;
void LCD_DrawNum(int x, int y, int num)
{
char buf[10];
sprintf(buf, "%d", num);
LCD_DrawString(x, y, buf);
}
void LCD_Scroll()
{
LCD_FillRect(0, 0, LCD_W, FONT_H, WHITE); // 清空第一行
LCD_CopyRect(0, FONT_H, LCD_W, LCD_H - FONT_H, 0, 0); // 向上滚动一行
LCD_DrawNum(0, LCD_H - FONT_H, num++); // 最后一行显示新数字
}
int main()
{
LCD_Init(); // 初始化LCD
LCD_SetRotation(1); // 设置90度旋转
LCD_SetFont(FONT_W, FONT_H, BLACK, WHITE); // 设置字体
while (1) {
sprintf(str, "num = %d", num);
LCD_DrawString(0, 0, str); // 显示当前数字
if (scroll_y >= FONT_H) {
scroll_y = 0;
LCD_Scroll(); // 滚动一行
} else {
scroll_y++;
}
delay_ms(1000); // 延时1秒
}
}
```
注意,这里使用了自己实现的TFT LCD驱动库,如果需要可以参考这篇文章[《STM32F103C8T6+1.8寸TFT LCD底层驱动》](https://blog.csdn.net/ChitChat_Studio/article/details/117635354) 进行编写。此外,如果需要更好的数字滚动效果,可以考虑使用DMA传输或者双缓冲技术。