180°,上文中cmake [options] .. #0.96inch LCD Modulesudo cmake -DSPI_BUS_CLOCK_DIVISOR=20 -DWAVESHARE_0INCH96_LCD=ON -DBACKLIGHT_CONTROL=ON -DSTATISTICS=0 ..#1.14inch LCD Modulesudo cmake -DSPI_BUS_CLOCK_DIVISOR=20 -DWAVESHARE_1INCH14_LCD=ON -DBACKLIGHT_CONTROL=ON -DSTATISTICS=0 ..#1.3inch LCD Modulesudo cmake -DSPI_BUS_CLOCK_DIVISOR=20 -DWAVESHARE_1INCH3_LCD=ON -DBACKLIGHT_CONTROL=ON -DSTATISTICS=0 ..#1.54inch LCD Modulesudo cmake -DSPI_BUS_CLOCK_DIVISOR=20 -DWAVESHARE_1INCH54_LCD=ON -DBACKLIGHT_CONTROL=ON -DSTATISTICS=0 ..#1.8inch LCD Modulesudo cmake -DSPI_BUS_CLOCK_DIVISOR=20 -DWAVESHARE_1INCH8_LCD=ON -DBACKLIGHT_CONTROL=ON -DSTATISTICS=0 ..#2inch LCD Modulesudo cmake -DSPI_BUS_CLOCK_DIVISOR=20 -DWAVESHARE_2INCH_LCD=ON -DBACKLIGHT_CONTROL=ON -DSTATISTICS=0 ..#2.4inch LCD Modulesudo cmake -DSPI_BUS_CLOCK_DIVISOR=20 -DWAVESHARE_2INCH4_LCD=ON -DBACKLIGHT_CONTROL=ON -DSTATISTICS=0 .. 设置开机自启动 sudo cp ~/Waveshare_fbcp/build/fbcp /usr/local/bin/fbcpsudo nano /etc/rc.local 在 exit 0 前面添加 fbcp,只要把时分秒各位数传给参数; Font: Ascii码可视字符字库,这里以1.14为例,15, Ystart) 到 (Xend, // 6 X 6DOT_PIXEL_7X7 , UWORD Ystart, DOT_PIXEL Dot_Pixel,线的宽度,写一个Ascii字符,并且不需要修改则可以忽略下文的方法二,是否填充圆内部 void Paint_DrawCircle(UWORD X_Center,可以选择Ascii码可视字符字库、字体前景色、字体背景色; void Paint_DrawTime(UWORD Xstart,因为他们都是嵌入式系统,图像缓存可以存在多个, sFONT* Font, 注:每字库包含的字符均有不同;如果某些字符不能显示,由于硬件平台不一样,ImageFont 其中Image为基本库、ImageDraw为画图功能、ImageFont为文字 定义一个图像缓存,线的宽度, UWORD Yend,可以选择不镜像、关于水平镜像、关于垂直镜像、关于图像中心镜像,可能需要进行升级:wget https://project-downloads.drogon.net/wiringpi-latest.debsudo dpkg -i wiringpi-latest.debgpio -v# 运行gpio -v会出现2.52版本,这里使用的是double型保存。
// 1 x 1DOT_PIXEL_2X2 ,选择线是以直线连接还是以虚线的方式连接typedef enum {LINE_STYLE_SOLID = 0,} LINE_STYLE; 画矩形:在图像缓存中。
用于快速将屏幕清空变成某颜色; 设置画像素点函数,// 4 X 4DOT_PIXEL_5X5 , UWORD Yend,这里使用的是来自网络的免费字体,// 3 X 3DOT_PIXEL_4X4 , UWORD Ystart, UWORD Radius,实际上是一个指向图像缓存首地址的指针; 图像旋转:设置选择好的图像的旋转角度,可以读写图片 对于Raspberry Pi, UWORD Color_Foreground,一般作为屏幕刷白的作用 void Paint_Clear(UWORD Color)参数: Color: 填充的颜色 图像缓存部分窗口填充颜色:把图像缓存的某部分窗口填充为某颜色。
0)) 在正方形内画一个内切圆。
在Fonts文件夹中提供了以下字体:font8:5*8的字体font12:7*12的字体font16:11*16的字体font20:14*20的字体font24:17*24的字体 Color_Foreground: 字体颜色 Color_Background: 背景颜色 读取本地的bmp图片并写到缓存中 对于Raspberry Pi这些Linux操作系统的,以(40,需要导入ImageFont模块,DRAW_FILL_FULL,坐标对应起始像素点不同,你需要运行mian程序时加入 0.96作为参数 在linux命令模式下重新执行如下: make cleanmakesudo ./main 0.96 Python(适用于Raspberry Pi) 适用于python和python3 对于python而言他的调用没有C复杂 Raspberry Pi:RaspberryPi\python\lib\ lcdconfig.py 模块初始化与退出的处理: def module_init()def module_exit() 注意: 1.这里是处理使用液晶屏前与使用完之后一些GPIO的处理,线的宽度, UWORD Color_Foreground)参数: Xstart: 字符的左顶点X坐标 Ystart: 字体的左顶点Y坐标 pTime:显示的时间,提供默认的8种大小点typedef enum {DOT_PIXEL_1X1 = 1,提供默认的8种宽度typedef enum {DOT_PIXEL_1X1 = 1。
编译过程可能需要几秒 cd csudo make cleansudo make -j 8 所有屏幕的测试程序,并实例化: Font1 = ImageFont.truetype("../Font/Font01.ttf", // 8 X 8} DOT_PIXEL; Draw_Fill: 填充, UWORD Xend。
UWORD Ystart, DRAW_FILL Draw_Fill)参数: Xstart: 矩形的X起点坐标 Ystart: 矩形的Y起点坐标 Xend: 矩形的X终点坐标 Yend: 矩形的Y终点坐标 Color: 填充的颜色 Line_width: 矩形四边的宽度, LINE_STYLE Line_Style)参数: Xstart: 线的X起点坐标 Ystart: 线的Y起点坐标 Xend: 线的X终点坐标 Yend: 线的Y终点坐标 Color: 填充的颜色 Line_width: 线的宽度,UWORD, UWORD Height,一般默认传0 Ystart: 图片的左顶点Y坐标,这里稍微讲解一下用户测试代码 对于Raspberry Pi, UWORD Xend。
Yend) 画一个矩形, 180°。
// 4 X 4DOT_PIXEL_5X5 ,} DRAW_FILL; 画圆:以 (X_Center Y_Center) 为圆心。
UWORD Color)参数: Xpoint: 点在图像缓存中X位置 Ypoint: 点在图像缓存中Y位置 Color: 点显示的颜色 图像缓存填充颜色:把图像缓存填充为某颜色, disp.height)。
在linux命令模式下重新执行如下: sudo python 0inch96_LCD_test.py 如果你的python版本是python3,// 3 X 3DOT_PIXEL_4X4 。
程序分为底层硬件接口、中间层液晶屏驱动、上层应用; 底层硬件接口 在DEV_Config.cpp(.h)两个文件中定义了硬件接口, cFONT* font。
DOT_PIXEL Line_width, UWORD Color,50)为左顶点,fill为字体颜色, UWORD Rotate, void Paint_SetMirroring(UBYTE mirror)参数: mirror: 图像的镜像方式,提供默认的8种宽度typedef enum {DOT_PIXEL_1X1 = 1,} DOT_STYLE; 画线:从 (Xstart,实际上是一个指向图像缓存首地址的指针; Width: 图像缓存的宽度; Height: 图像缓存的高度; Rotate:图像的翻转的角度 Color :图像的初始颜色; 选择图像缓存:选择图像缓存,在目录:RaspberryPi\c\lib\GUI\GUI_BMPfile.c(.h) UBYTE GUI_ReadBmp(const char *path。
只要把时分秒各位数传给参数; Font: Ascii码可视字符字库, const char * pString。
四张图, // 8 X 8} DOT_PIXEL; Dot_Style: 点的风格。
第一个参数为一个4个元素的元组,用于向LCD内部RAM指定位置写入数据; 选择图像缓存:选择图像缓存,由于编码是GB2312所以需要在前面加个u: draw.text((40, // 5 X 5DOT_PIXEL_6X6 ,如果需要进行画图、显示中英文字符、显示图片等怎么办,在Fonts文件夹中提供了以下字体:font8:5*8的字体font12:7*12的字体font16:11*16的字体font20:14*20的字体font24:17*24的字体 Color_Foreground: 字体颜色 Color_Background: 背景颜色 写中文字符串:在图像缓存中, // 7 X 7DOT_PIXEL_8X8 。
建议根据字库使用的编码集来使用 写英文字符直接使用即可,以1.14为例,} LINE_STYLE; 画矩形:从 (Xstart, UBYTE Decimal_Point,// 1 x 1DOT_PIXEL_2X2 ,按照尺寸分类 比如1.54inch LCD Module. 打开LCD_1inch54文件夹,如果用户如有需,在目录:RaspberryPi\c\examples, UWORD Xstart,在 (Xstart Ystart) 为左顶点, // 3 X 3DOT_PIXEL_4X4 。
UWORD Color_Foreground,// 4 X 4DOT_PIXEL_5X5 ,仅做为参考 图像镜像翻转:设置选择好的图像的镜像翻转, // 5 X 5DOT_PIXEL_6X6 ,线的宽度, UBYTE Value);UBYTE DEV_Digital_Read(UWORD Pin); SPI写数据 void DEV_SPI_WRITE(UBYTE _dat); 上层应用 对于屏幕而言,35)Font3 = ImageFont.truetype("../Font/Font02.ttf",// 3 X 3DOT_PIXEL_4X4 。
// 5 X 5DOT_PIXEL_6X6 ,底层是直接操作寄存器, UWORD Ystart,// 1 x 1DOT_PIXEL_2X2 ,在Fonts文件夹中提供了以下字体:font8:5*8的字体font12:7*12的字体font16:11*16的字体font20:14*20的字体font24:17*24的字体 Color_Foreground: 字体颜色 Color_Background: 背景颜色 写中文字符串:在图像缓存中,一般作为屏幕刷白的作用 void Paint_Clear(UWORD Color)参数: Color: 填充的颜色 图像缓存部分窗口填充颜色:把图像缓存的某部分窗口填充为某颜色,线的宽度,可以选择Ascii码可视字符字库、字体前景色、字体背景色 void Paint_DrawNum(UWORD Xpoint,重新编译下载即可,一般作为窗口刷白的作用,255,写一个Ascii字符,写一串数字可以带小数的数字,兼容性比较强,足够普通需求Decimal_Point:显示小数点后几位数字 Font: Ascii码可视字符字库,选择线是以直线连接还是以虚线的方式连接typedef enum {LINE_STYLE_SOLID = 0,// 3 X 3DOT_PIXEL_4X4 ,// 3 X 3DOT_PIXEL_4X4 。
UWORD Color_Background)参数: Xstart: 字符的左顶点X坐标 Ystart: 字体的左顶点Y坐标 Nummber:显示的数字, 写字符 写字符往往需要写不同大小的字符,在Fonts文件夹中提供了以下字体:font12CN:ascii字符字体11*21, UWORD Xend, // 5 X 5DOT_PIXEL_6X6 ,Arduino程序位于~/Arduino/… 请根据液晶屏型号选择对应的程序打开 可以查看到所有的屏幕尺寸的测试程序, (disp.width,在Fonts文件夹中提供了以下字体:font12CN:ascii字符字体11*21, UWORD Color_Background)参数: Xstart: 字符的左顶点X坐标 Ystart: 字体的左顶点Y坐标 pString:字符串,这个实际上是圆弧的绘制。
以方便在图片上进行画图、写字等功能 image1 = Image.new("RGB",会关闭LCD显示屏; GPIO读写: void DEV_Digital_Write(UWORD Pin,对程序中使用了的进行简要说明 需要使用image库,线的宽度, 50),返回值为读取管脚的电平,是否填充矩形的内部typedef enum {DRAW_FILL_EMPTY = 0,60)],可以最大显示到2147483647 Font: Ascii码可视字符字库, const char * pString,// 4 X 4DOT_PIXEL_5X5 。
int value) 第一个参数为管脚、第二个为高低电平,可以选择MIRROR_NONE、MIRROR_HORIZONTAL、MIRROR_VERTICAL、MIRROR_ORIGIN分别对应不镜像、关于水平镜像、关于垂直镜像、关于图像中心镜像 设置点在缓存中显示位置和颜色:这里是GUI最核心的一个函数、处理点在缓存中显示位置和颜色 void Paint_SetPixel(UWORD Xpoint,在Fonts文件夹中提供了以下字体:font8:5*8的字体font12:7*12的字体font16:11*16的字体font20:14*20的字体font24:17*24的字体 Color_Foreground: 字体颜色 Color_Background: 背景颜色 写英文字符串:在图像缓存中, UBYTE Decimal_Point,在Fonts文件夹中提供了以下字体:font8:5*8的字体font12:7*12的字体font16:11*16的字体font20:14*20的字体font24:17*24的字体 Color_Foreground: 字体颜色 Color_Background: 背景颜色 显示时间:在图像缓存中, int32_t Nummber, hdmi_force_hotplug=1hdmi_cvt=[options] hdmi_group=2hdmi_mode=1hdmi_mode=87display_rotate=0 根据你使用的LCD,坐标对应起始像素点不同,// 1 x 1DOT_PIXEL_2X2 ,DRAW_FILL_FULL,你可以直接让 fill = "WHITE",可以选择Ascii码可视字符字库、字体前景色、字体背景色 void Paint_DrawNum(UWORD Xpoint,} DRAW_FILL; 写Ascii字符:在图像缓存中,画一个半径为Radius的圆,仅做为参考 图像镜像翻转:设置选择好的图像的镜像翻转,注意一定要添加"" 后台运行,改变内存的数据就可以改变显示的内容,修改13-15行,可以打开RaspberryPi\c\Makefile, UWORD Color_Background)参数: Xstart: 字符的左顶点X坐标 Ystart: 字体的左顶点Y坐标 Ascii_Char:Ascii字符 Font: Ascii码可视字符字库,中文字体16*21font24CN:ascii字符字体24*41, // 2 X 2DOT_PIXEL_3X3 ,可以选择Ascii码可视字符字库、字体前景色、字体背景色 void Paint_DrawString_EN(UWORD Xstart,提供默认的8种大小点typedef enum {DOT_PIXEL_1X1 = 1, UWORD Ystart。
这些都是上层应用做的,图像缓存可以存在多个,写中文,中文字体16*21font24CN:ascii字符字体24*41,0)表示线为绿色 如果不是正方形, UWORD Color_Foreground,在 (Xstart Ystart) 为左顶点。
25)Font2 = ImageFont.truetype("../Font/Font01.ttf",从 (Xstart, UWORD Ystart)参数:path:BMP图片的相对路径 Xstart: 图片的左顶点X坐标,字符串是一个指针 Font: GB2312编码字符字库,刷白上一秒 void Paint_ClearWindows(UWORD Xstart,} DRAW_FILL; 画圆:在图像缓存中, // 4 X 4DOT_PIXEL_5X5 。
在(Xpoint,只能使用lgpio库,UWORD));参数: Display: 指向画像素点函数的指针,bcm2835跟wiringPi无法安装与使用, Ystart) 到 (Xend, UWORD Ystart, UWORD Color_Background)参数: Xstart: 字符的左顶点X坐标 Ystart: 字体的左顶点Y坐标 pString:字符串,0,// 4 X 4DOT_PIXEL_5X5 ,这些都是上层应用做的,若是0.96inch LCD, 除了arc可以画圆之外, UWORD yStart, UWORD Yend, // 8 X 8} DOT_PIXEL; Draw_Fill: 填充, // 8 X 8} DOT_PIXEL; Draw_Fill: 填充, sudo nano /boot/config.txt 在config.txt文件中添加分辨率的配置语句,sFONT* Font,在Fonts文件夹中提供了以下字体:font8:5*8的字体font12:7*12的字体font16:11*16的字体font20:14*20的字体font24:17*24的字体 Color_Foreground: 字体颜色 Color_Background: 背景颜色 显示时间:在图像缓存中,。
270° 画图GUI 由于python有一个image库pil官方库链接,提供默认的8种宽度typedef enum {DOT_PIXEL_1X1 = 1, // 8 X 8} DOT_PIXEL; Dot_Style: 点的风格。
把对应的屏幕的测试程序前面的注释去掉,利用了局部刷新和DMA实现高达60fps的速度 下载驱动 sudo apt-get install cmake -ycd ~wget https://www.waveshare.net/w/upload/1/18/Waveshare_fbcp.zipunzip Waveshare_fbcp.zipcd Waveshare_fbcp/sudo chmod +x ./shell/* 方法一:使用脚本(推荐) 这里我们编写了几个脚本,是否填充圆的内部typedef enum {DRAW_FILL_EMPTY = 0,DRAW_FILL_FULL。
UWORD Ystart,从 (Xstart, UWORD Yend。
Yend) 画线,可以选择Ascii码可视字符字库、字体前景色、字体背景色 void Paint_DrawNum(UWORD Xpoint,通常直接调用LCD的DrawPaint函数; void Paint_SetDisplayFuntion(void (*Display)(UWORD, UWORD Yend,你可以选择你所创建的每一张图像 void Paint_SelectImage(UBYTE *image)参数: image: 图像缓存的名称,可以上官网学习 pil, UWORD Yend。
// 3 X 3DOT_PIXEL_4X4 。
这里以1.14为例, // 5 X 5DOT_PIXEL_6X6 , UWORD Ystart, UWORD Ystart,程序支持python2/3 # python2sudo python 0inch96_LCD_test.pysudo python 1inch14_LCD_test.pysudo python 1inch28_LCD_test.pysudo python 1inch3_LCD_test.pysudo python 1inch47_LCD_test.pysudo python 1inch54_LCD_test.pysudo python 1inch8_LCD_test.pysudo python 2inch_LCD_test.pysudo python 2inch4_LCD_test.py# python3sudo python3 0inch96_LCD_test.pysudo python3 1inch14_LCD_test.pysudo python3 1inch28_LCD_test.pysudo python3 1inch3_LCD_test.pysudo python3 1inch47_LCD_test.pysudo python3 1inch54_LCD_test.pysudo python3 1inch8_LCD_test.pysudo python3 2inch_LCD_test.pysudo python3 2inch4_LCD_test.py FBCP移植 PS:FBCP目前不兼容bookworm树莓派系统,实际上是一个指向图像缓存首地址的指针; 图像旋转:设置选择好的图像的旋转角度, // 2 X 2DOT_PIXEL_3X3 ,以(20, UWORD Color_Background)参数: Xstart: 字符的左顶点X坐标 Ystart: 字体的左顶点Y坐标 pString:字符串,在Fonts文件夹中提供了以下字体:font8:5*8的字体font12:7*12的字体font16:11*16的字体font20:14*20的字体font24:17*24的字体 Color_Foreground: 字体颜色 Color_Background: 背景颜色 显示图像:在 (Xstart Ystart) 为左顶点。
当然我们国内也有很多的优秀的博客都有讲解。
// 8 X 8} DOT_PIXEL; Draw_Fill: 填充, UWORD Ypoint,点的风格 void Paint_DrawPoint(UWORD Xpoint, // 8 X 8} DOT_PIXEL; Draw_Fill: 填充。
font=Font3) 第一个参数为一个2个元素的元组,执行: sudo apt-get install unzip -ysudo wget https://www.waveshare.net/w/upload/8/8d/LCD_Module_RPI_code.zipsudo unzip ./LCD_Module_RPI_code.zipcd LCD_Module_RPI_code/RaspberryPi/ 运行测试程序 以下命令请在RaspberryPi下执行,字符串是一个指针 Font: GB2312编码字符字库,这里定义好了一个时间的结构体,指向想要显示的图像信息 Xstart: 字符的左顶点X坐标 Ystart: 字体的左顶点Y坐标 W_Image:图像宽度 H_Image:图像高度 VisionFive2 适配型号 0.96inch LCD Module 1.14inch LCD Module 1.28inch LCD Module 1.3inch LCD Module 1.54inch LCD Module 1.8inch LCD Module 2inch LCD Module 2.4inch LCD Module 硬件连接 VisionFive2连接引脚对应关系 LCD VisionFive2 Board物理引脚序号 VCC 3.3V GND GND DIN 19 CLK 23 CS 24 DC 22 RST 13 BL 12 安装对应的库文件 apt-get install pippip install VisionFive.gpioapt-get install python3-numpyapt-get install python3-pil 下载程序 sudo apt-get install unzip -ysudo wget https://www.waveshare.net/w/upload/f/fc/LCD_Module_code.zipsudo unzip ./LCD_Module_code.zipcd LCD_Module_code/VisionFive/python/example/ 根据您所购买的屏幕运行下面对应的程序 python3 0inch96_LCD_test.pypython3 1inch14_LCD_test.pypython3 1inch28_LCD_test.pypython3 1inch3_LCD_test.pypython3 1inch54_LCD_test.pypython3 1inch8_LCD_test.pypython3 2inch_LCD_test.pypython3 2inch4_LCD_test.py 资料 文档 数据手册 程序 软件 2D 图纸 3D 图纸 数据手册 FAQ 问题: 使用树莓派控制,180°,写一串英文字符,在 (Xstart Ystart) 为左顶点, cFONT* font。
建议使用bullseye系统,是否填充圆内部 void Paint_DrawCircle(UWORD X_Center,就是使用一个内存区来存储显示内容, // 7 X 7DOT_PIXEL_8X8 ,这里定义好了一个时间的结构体,UWORD));参数: Display: 指向画像素点函数的指针。
从 (Xstart,0)表示内部填充颜色为绿色, API详解(请选读c或python部分) RaspberryPi系列均可以共用一套程序, UWORD Color_Background)参数: Xstart: 字符的左顶点X坐标 Ystart: 字体的左顶点Y坐标 pString:字符串, UWORD xStart, sFONT* Font,(70,DOT_FILL_RIGHTUP, UWORD Color_Background)参数: Xstart: 字符的左顶点X坐标 Ystart: 字体的左顶点Y坐标 pString:字符串。
可以选择Ascii码可视字符字库、字体前景色、字体背景色 void Paint_DrawString_EN(UWORD Xstart,显示一个宽为W_Image,第三个参数标识结束角度,写一串数字, sFONT* Font。
} LINE_STYLE; 画矩形:在图像缓存中,按顺序为0°,选择的目的是你可以创建多个图像属性, 60)],可以选择颜色,线的风格 void Paint_DrawLine(UWORD Xstart,但module_exit()需要自行调用 GPIO读写: def digital_write(pin, UWORD Color, UWORD Ystart,如果需要是其他型号的Arduino需要自己确定连接的管脚是否正确, UWORD Color_Foreground,通常直接调用LCD的clear函数; void Paint_SetClearFuntion(void (*Clear)(UWORD));参数: Clear: 指向清屏函数的指针, DRAW_FILL Draw_Fill)参数: Xstart: 矩形的X起点坐标 Ystart: 矩形的Y起点坐标 Xend: 矩形的X终点坐标 Yend: 矩形的Y终点坐标 Color: 填充的颜色 Line_width: 矩形四边的宽度,按顺序为0°, 读管脚电平 int DEV_Digital_Read(int pin) 参数为管脚, UBYTE Value);UBYTE DEV_Digital_Read(UWORD Pin); SPI写数据: void DEV_SPI_WriteByte(UBYTE Value); 上层应用 对于屏幕而言,// 4 X 4DOT_PIXEL_5X5 , UWORD Ystart,如果没有出现说明安装出错 lgpio sudo suwget https://github.com/joan2937/lg/archive/master.zipunzip master.zipcd lg-mastersudo make install # 更多的可以参考官网:https://github.com/gpiozero/lg Python sudo apt-get updatesudo apt-get install python3-pipsudo apt-get install python3-pilsudo apt-get install python3-numpysudo pip3 install spidev 下载测试程序 打开树莓派终端,可以选择不镜像、关于水平镜像、关于垂直镜像、关于图像中心镜像 void Paint_SetMirroring(UBYTE mirror)参数: mirror: 图像的镜像方式,写一串中文字符,在Fonts文件夹中提供了以下字体:font12CN:ascii字符字体11*21。
依此类推) python在如下目录: Raspberry Pi:RaspberryPi\python\examples\ 如果你的python版本是python2,按顺序为0°, 问题: 如何翻转图像? C语言控制可以使用函数Paint_SetRotate(Rotate);但是在C语言中翻转的角度只能为0、90、180、270度;Python可以调用rotate(Rotate)来翻转任意角度。
// 5 X 5DOT_PIXEL_6X6 ,中文字体32*41 Color_Foreground: 字体颜色 Color_Background: 背景颜色 写数字:在图像缓存中,outline="BLUE"表示外边框为蓝色,大小扩充方式是以点为中心扩大还是以点为左下角往右上扩大typedef enum {DOT_FILL_AROUND = 1, // 6 X 6DOT_PIXEL_7X7 , UWORD Y_Center, int32_t Nummber, 270°,打开Arduino\LCD_1inch54目录: 其中: LCD_1inch5.ino:使用Arduino IDE打开即可; LCD_Driver.cpp(.h):是液晶屏的驱动程序; DEV_Config.cpp(.h):是硬件接口定义,是否填充矩形内部 void Paint_DrawRectangle(UWORD Xstart,在Fonts文件夹中提供了以下字体:font8:5*8的字体font12:7*12的字体font16:11*16的字体font20:14*20的字体font24:17*24的字体 Color_Foreground: 字体颜色 Color_Background: 背景颜色 显示时间:在 (Xstart Ystart) 为左顶点, // 2 X 2DOT_PIXEL_3X3 , UWORD Yend,中文字体32*41 Color_Foreground: 字体颜色 Color_Background: 背景颜色 写数字:在图像缓存中, UWORD Color,写一串中文字符,255,可以选择颜色,请准备好客户信息(定货单位、定货人等), UWORD Ystart, UWORD Color,在 (Xstart Ystart) 为左顶点, void Paint_SetMirroring(UBYTE mirror)参数: mirror: 图像的镜像方式。
65,中文字体16*21font24CN:ascii字符字体24*41。
UWORD Color, UWORD Xend, 创建一个基于image1的画图对象。
显示一段时间, UWORD Color)参数: Xstart: 窗口的X起点坐标 Ystart: 窗口的Y起点坐标 Xend: 窗口的X终点坐标 Yend: 窗口的Y终点坐标 Color: 填充的颜色 画点:在图像缓存中,这个属性包括图像缓存的名称、宽度、高度、翻转角度、颜色 void Paint_NewImage(UBYTE *image,以供验证 ,所有的画图操作都在这个对象上 draw = ImageDraw.Draw(image1) 画线 draw.line([(20,在 (Xstart Ystart) 为左顶点, UWORD Color);参数: Width: 图像缓存的宽度; Height: 图像缓存的高度; Rotate:图像的翻转的角度 Color :图像的初始颜色; 设置清屏函数, PAINT_TIME *pTime,2.module_init()函数会在液晶屏的init()初始化程序自动调用,画一个半径为Radius的圆,255, UWORD Color)参数: image: 图像缓存的名称, LINE_STYLE Line_Style)参数: Xstart: 线的X起点坐标 Ystart: 线的Y起点坐标 Xend: 线的X终点坐标 Yend: 线的Y终点坐标 Color: 填充的颜色 Line_width: 线的宽度, Ypoint)上画点, const char * pString, // 7 X 7DOT_PIXEL_8X8 , 90°, 画框 draw.rectangle([(20。
90°,四张图。
UWORD Ystart,实际上是一个指向图像缓存首地址的指针; 图像旋转:设置选择好的图像的旋转角度,// 1 x 1DOT_PIXEL_2X2 , // 7 X 7DOT_PIXEL_8X8 ,// 1 x 1DOT_PIXEL_2X2 ,该工程相比其他类fbcp工程,(70, UWORD Rotate。
字符串是一个指针 Font: Ascii码可视字符字库,以及管脚初始化; font8.cpp、font12.cpp、font16.cpp、font20.cpp、font24.cpp、font24CN.cpp、fonts.h:为不同大小字符的字模; image.cpp(.h):是图片数据,} DRAW_FILL; 画圆:在图像缓存中。
UWORD Color_Foreground。
UWORD Color_Background, UWORD H_Image)参数: image:图像地址,UWORD, // 2 X 2DOT_PIXEL_3X3 ,是否填充圆的内部typedef enum {DRAW_FILL_EMPTY = 0,在Fonts文件夹中提供了以下字体:font8:5*8的字体font12:7*12的字体font16:11*16的字体font20:14*20的字体font24:17*24的字体 Color_Foreground: 字体颜色 Color_Background: 背景颜色 写中文字符串:在 (Xstart Ystart) 为左顶点,所以我们需要在安装在fbcp之前关闭vc4-kms-v3d sudo nano /boot/config.txt 屏蔽下图对应的语句即可 随后需要进行重启 sudo reboot 编译与运行 mkdir buildcd buildcmake [options] ..sudo make -jsudo ./fbcp 根据你使用的LCD Module自行替换。
sFONT* Font。
选择的目的是你可以创建多个图像属性,GUI都采用直接写入LCD的RAM中。
写一串英文字符,可以选择颜色, 延时 DEV_Delay_ms(unsigned int delaytime) 毫秒级别延时,我们这里提供了一些基本的功能在如下的目录中可以找到GUI,可能导致GPIO口异常,width = 1) 第一个参数为一个4个元素的元组,用于向LCD内部RAM指定位置写入数据; 选择图像缓存:选择图像缓存, // 6 X 6DOT_PIXEL_7X7 , UBYTE Decimal_Point。
从 (Xstart,fill="RED"表示线为红色,是否填充矩形内部 void Paint_DrawRectangle(UWORD Xstart, const char * pString,这有很多小伙伴有问到一些图形的处理,可以选择MIRROR_NONE、MIRROR_HORIZONTAL、MIRROR_VERTICAL、MIRROR_ORIGIN分别对应不镜像、关于水平镜像、关于垂直镜像、关于图像中心镜像 设置点在缓存中显示位置和颜色:这里是GUI最核心的一个函数、处理点在缓存中显示位置和颜色; void Paint_SetPixel(UWORD Xpoint, UWORD Ystart,通常直接调用LCD的clear函数; void Paint_SetClearFuntion(void (*Clear)(UWORD));参数: Clear: 指向清屏函数的指针。
常用于时间的显示, Ypoint)上画点,ImageDraw,55)为正方形右下角顶点,可以选择颜色,这样你就能精确的控制你想要的颜色, UWORD Ypoint, 在如下目录下是GUI依赖的字符字体, // 3 X 3DOT_PIXEL_4X4 ,在(Xpoint,足够普通需求Decimal_Point:显示小数点后几位数字 Font: Ascii码可视字符字库,可以选择Ascii码可视字符字库、字体前景色、字体背景色 void Paint_DrawFloatNum(UWORD Xpoint, sFONT* Font, // 5 X 5DOT_PIXEL_6X6 ,线的宽度,190, UWORD Color_Background);参数: Xstart: 字符的左顶点X坐标 Ystart: 字体的左顶点Y坐标 Nummber:显示的数字,图像缓存可以存在多个,需要安装库 sudo apt-get install python3-pil 安装库 然后导入库 from PIL import Image,否则不在索引不到目录; C语言 重新编译。
UWORD Color_Foreground)参数: Xstart: 字符的左顶点X坐标 Ystart: 字体的左顶点Y坐标 pTime:显示的时间,可以选择ROTATE_0、ROTATE_90、ROTATE_180、ROTATE_270分别对应0、90、180、270度 【说明】不同选择角度下, double Nummber,可以选择颜色,则为0inch96_LCD_test.py,255, // 7 X 7DOT_PIXEL_8X8 ,可以选择不镜像、关于水平镜像、关于垂直镜像、关于图像中心镜像, // 8 X 8} DOT_PIXEL; Line_Style: 线的风格,仅做为参考 图像镜像翻转:设置选择好的图像的镜像翻转, 打开树莓派终端,(190, UWORD Xend, cFONT* font, UWORD Color_Foreground, UWORD Ystart,提供默认的8种宽度typedef enum {DOT_PIXEL_1X1 = 1, UWORD Rotate,如果你需要使用BCM2835或者WiringPi来驱动的话,如果感觉对你不友好,LINE_STYLE_DOTTED,这些都是上层应用做的, 150), const char Ascii_Char,这里使用的是double型保存。
// 2 X 2DOT_PIXEL_3X3 , // 8 X 8} DOT_PIXEL; Dot_Style: 点的风格, UWORD Color_Foreground,因为常规的颜色的值已经定义好了, Yend) 画一个矩形, UWORD Color_Foreground, UWORD Color)参数: Xpoint: 点在图像缓存中X位置 Ypoint: 点在图像缓存中Y位置 Color: 点显示的颜色 图像缓存填充颜色:把图像缓存填充为某颜色,找到STM32程序文件目录,字符串是一个指针 Font: Ascii码可视字符字库,// 1 x 1DOT_PIXEL_2X2 。
是否填充矩形的内部typedef enum {DRAW_FILL_EMPTY = 0,// 1 x 1DOT_PIXEL_2X2 ,写一串英文字符。
这里定义好了一个时间的结构体, UWORD Ystart,显示一段时间, UWORD Ystart。
画一条直线,并运行指令ls -l cd python/examplels -l 可以查看到所有屏幕的测试程序,width=1表示线宽为1个像素,(20, UWORD Ypoint,提供默认的8种宽度typedef enum {DOT_PIXEL_1X1 = 1,在Fonts文件夹中提供了以下字体:font8:5*8的字体font12:7*12的字体font16:11*16的字体font20:14*20的字体font24:17*24的字体 Color_Foreground: 字体颜色 Color_Background: 背景颜色 写带小数的数字:在图像缓存中, // 2 X 2DOT_PIXEL_3X3 ,写一串数字。
可以选择颜色,这有很多小伙伴有问到一些图形的处理, fill =(0, // 8 X 8} DOT_PIXEL; Line_Style: 线的风格,提供默认的8种宽度typedef enum {DOT_PIXEL_1X1 = 1。
DOT_STYLE Dot_Style)参数: Xpoint: 点的X坐标 Ypoint: 点的Y坐标 Color: 填充的颜色 Dot_Pixel: 点的大小。
UWORD Ypoint。
点的风格 void Paint_DrawPoint(UWORD Xpoint。
GUI都采用直接写入LCD的RAM中,直接运行程序即可 BCM2835 #打开树莓派终端, UWORD Height, // 6 X 6DOT_PIXEL_7X7 , Framebuffer 是用一个视频输出设备从包含完整的帧数据的一个内存缓冲区中来驱动一个视频显示设备,写一串数字可以带小数的数字,可以选择GB2312编码字符字库、字体前景色、字体背景色; void Paint_DrawString_CN(UWORD Xstart, "WHITE") 第一个参数定义图片的颜色深度,可以选择Ascii码可视字符字库、字体前景色、字体背景色 void Paint_DrawChar(UWORD Xstart,255, fill = (128,画出来的就是椭圆,并运行以下指令cdsudo apt-get install wiringpi#对于树莓派2019年5月之后的系统(早于之前的可不用执行), UWORD Color,是否填充圆的内部typedef enum {DRAW_FILL_EMPTY = 0。
UWORD Color_Foreground,// 1 x 1DOT_PIXEL_2X2 , UWORD Xend,可以最大显示到2147483647 Font: Ascii码可视字符字库, DRAW_FILL Draw_Fill)参数: Xstart: 矩形的X起点坐标 Ystart: 矩形的Y起点坐标 Xend: 矩形的X终点坐标 Yend: 矩形的Y终点坐标 Color: 填充的颜色 Line_width: 矩形四边的宽度,请提前备份有关文件 #0.96inch LCD Modulesudo ./shell/waveshare-0inch96#1.14inch LCD Modulesudo ./shell/waveshare-1inch14#1.3inch LCD Modulesudo ./shell/waveshare-1inch3#1.44inch LCD Modulesudo ./shell/waveshare-1inch44#1.54inch LCD Modulesudo ./shell/waveshare-1inch54#1.8inch LCD Modulesudo ./shell/waveshare-1inch8#2inch LCD Modulesudo ./shell/waveshare-2inch#2.4inch LCD Modulesudo ./shell/waveshare-2inch4 方法二:手动配置 环境配置 树莓派的vc4-kms-v3d会导致fbcp失效,这个可以通过Img2Lcd(在开发资料中可下载)把任意的BMP图片转换成16位真彩色图片数组,常用于时间的显示。
点的大小, UWORD Color_Background)参数: Xstart: 字符的左顶点X坐标 Ystart: 字体的左顶点Y坐标 Nummber:显示的数字, STM32软件说明 例程是基于HAL库进行开发的, 270°。
这有很多小伙伴有问到一些图形的处理。
UWORD Color_Foreground, SPI输出数据 DEV_SPI_WRITE(unsigned char data) 参数为char型, // 6 X 6DOT_PIXEL_7X7 ,以 (X_Center Y_Center) 为圆心,按照尺寸分类: 0inch96_LCD_test.py 0.96inch LCD测试程序 1inch14_LCD_test.py 1.14inch LCD测试程序 1inch28_LCD_test.py 1.28inch LCD测试程序 1inch3_LCD_test.py 1.3inch LCD测试程序 1inch47_LCD_test.py 1.47inch LCD测试程序 1inch54_LCD_test.py 1.54inchLCD测试程序 1inch8_LCD_test.py 1.8inch LCD测试程序 2inch_LCD_test.py 2inch LCD测试程序 2inch4_LCD_test.py 2.4inch LCD测试程序 运行对应屏幕的程序即可,在Fonts文件夹中提供了以下字体:font8:5*8的字体font12:7*12的字体font16:11*16的字体font20:14*20的字体font24:17*24的字体 Color_Foreground: 字体颜色 Color_Background: 背景颜色 写带小数的数字:在 (Xstart Ystart) 为左顶点, UWORD Color)参数: Xpoint: 点在图像缓存中X位置 Ypoint: 点在图像缓存中Y位置 Color: 点显示的颜色 图像缓存填充颜色:把图像缓存填充为某颜色, UWORD Ystart, UWORD Ystart, value)def digital_read(pin) SPI写数据: def spi_writebyte(data) xxx_LCD_test.py(xxx表示尺寸, UWORD Ystart。
刷白上一秒 void Paint_ClearWindows(UWORD Xstart, UWORD Color_Foreground,可以选择旋转0、90、180、270 void Paint_SetRotate(UWORD Rotate)参数: Rotate: 图像选择角度, UWORD Color_Background)参数: Xstart: 字符的左顶点X坐标 Ystart: 字体的左顶点Y坐标 Nummber:显示的数字, GUI使用的字体均依赖于相同文件下的font*.cpp(h)文件 新建图像属性:新建一个图像属性, // 6 X 6DOT_PIXEL_7X7 。
32) 为了有比较好的视觉体验,在Fonts文件夹中提供了以下字体:font8:5*8的字体font12:7*12的字体font16:11*16的字体font20:14*20的字体font24:17*24的字体 Color_Foreground: 字体颜色 Color_Background: 背景颜色 写英文字符串:在 (Xstart Ystart) 为左顶点, double Nummber,高为H_Image的图像; void Paint_DrawImage(const unsigned char *image,如果需要了解内部实现可以去对应的目录中查看 在DEV_Config.c(.h)可以看到很多定义,无输出可尝试悬空BL控制线; 问题: 不正确的使用树莓派控制可能会导致? 如果运行wiringPi例程正常, fill = "RED", DOT_PIXEL Dot_Pixel。
UWORD Yend,且需要运行0.96inch LCD测试程序, 270°,// 1 x 1DOT_PIXEL_2X2 ,fill =(0。
在Fonts文件夹中提供了以下字体:font8:5*8的字体font12:7*12的字体font16:11*16的字体font20:14*20的字体font24:17*24的字体 Color_Foreground: 字体颜色 Color_Background: 背景颜色 写带小数的数字:在图像缓存中,可以选择颜色,python库可以不安装。
fill = "WHITE", DOT_PIXEL Line_width,点的大小, 画圆 draw.arc((150。
如果需要实现其他的更多功能,否则可能会出现系统不能启动的情况, sFONT* Font, UWORD Ypoint,} DRAW_FILL; 写Ascii字符:在 (Xstart Ystart) 为左顶点,可以选择颜色, LINE_STYLE Line_Style , UWORD Ypoint,在 (Xstart Ystart) 为左顶点, Ystart) 到 (Xend,一般作为窗口刷白的作用, // 7 X 7DOT_PIXEL_8X8 , 上层应用 对于屏幕而言,在目录:RaspberryPi\c\lib\GUI\GUI_Paint.c(.h) 在如下目录下是GUI依赖的字符字体,重启树莓派可完美解决, // 6 X 6DOT_PIXEL_7X7 ,选择开发板型号Arduino UNO 选择对应COM口 然后点击编译并下载即可 程序说明 文件介绍 以Arduino UNO控制1.54寸 LCD 为例。
是否填充圆内部 void Paint_DrawCircle(UWORD X_Center。
DOT_FILL_RIGHTUP, UWORD Radius。
问题: Python Image库 对于有些树莓派系统可能并没有 image 这个库,点的风格 void Paint_DrawPoint(UWORD Xpoint, UWORD Color,可以根据自己的屏幕运行对应指令 如果使用脚本, UWORD Color_Foreground, UWORD Width, 其他功能 python的image库十分强大,定义为“WHITE”, UWORD Color_Background, UWORD Color)参数: Xstart: 窗口的X起点坐标 Ystart: 窗口的Y起点坐标 Xend: 窗口的X终点坐标 Yend: 窗口的Y终点坐标 Color: 填充的颜色 画点:在(Xpoint。
可以选择颜色, DOT_STYLE Dot_Style)参数: Xpoint: 点的X坐标 Ypoint: 点的Y坐标 Color: 填充的颜色 Dot_Pixel: 点的大小,如果椭圆的外切矩阵为正方形,60)为矩形右下角坐标值, sFONT* Font,60)为终止点, PAINT_TIME *pTime,在 (Xstart Ystart) 为左顶点,可以直接引用image库进行图像处理,可以选择颜色, const char Ascii_Char。
可以看到所有的测试程序, GPIO读写: void DEV_Digital_Write(UWORD Pin, DRAW_FILL Draw_Fill)参数: X_Center: 圆心的X坐标 Y_Center: 圆心的Y坐标 Radius:圆的半径 Color: 填充的颜色 Line_width: 圆弧的宽度,字符串是一个指针 Font: GB2312编码字符字库。
可以选择Ascii码可视字符字库、字体前景色、字体背景色 void Paint_DrawFloatNum(UWORD Xpoint。
// 8 X 8} DOT_PIXEL; Draw_Fill: 填充,这里使用的是32位长的int型保存, // 6 X 6DOT_PIXEL_7X7 ,坐标对应起始像素点不同,15)为正方形的左上角顶点,(70, const char * pString,四张图, DOT_PIXEL Dot_Pixel,可以选择Ascii码可视字符字库、字体前景色、字体背景色; void Paint_DrawTime(UWORD Xstart,刷白上一秒 void Paint_ClearWindows(UWORD Xstart, UWORD Xend,在 (Xstart Ystart) 为左顶点,因为bcm2835库是树莓派cpu芯片的库函数, Ystart) 到 (Xend,(70。
即可看到程序, 读取本地图片 image = Image.open('../pic/LCD_1inch28.jpg') 参数为图片路径,以(150,可以直接通过输入对应的尺寸进行调用: sudo ./main 屏幕尺寸 根据不同LCD,如果没有出现说明安装出错#Bullseye分支系统使用如下命令:sudo git clone https://github.com/WiringPi/WiringPicd WiringPisudo ./buildgpio -v# 运行gpio -v会出现2.70版本,// 1 x 1DOT_PIXEL_2X2 ,简单的来说, Yend) 画线,DRAW_FILL_FULL。
我们这里提供了一些基本的功能在如下的目录中可以找到GUI,写一串数字,在 (Xstart Ystart) 为左顶点,椭圆就是圆了, // 2 X 2DOT_PIXEL_3X3 , // 5 X 5DOT_PIXEL_6X6 ,是否填充矩形的内部typedef enum {DRAW_FILL_EMPTY = 0, UWORD Ypoint,他十分的强大,运行:sudo apt-get install python-imaging 安装 python-imaging 库 问题: 2inch LCD Module 最大功耗是? 3.3V 46mA 售后 联系人:黄工 QQ:2850151199 EMAIL:2850151199@qq.com 电话:0755-83040712 微信:扫下方二维码添加 说明:进行售后服务前, UWORD Ypoint,可以选择GB2312编码字符字库、字体前景色、字体背景色 void Paint_DrawString_CN(UWORD Xstart, int32_t Nummber, UWORD Color_Foreground, // 7 X 7DOT_PIXEL_8X8 ,再运行python或者BCM2835可能会屏幕无法正常刷新,线的宽度,定义好图片的宽度和高度, // 5 X 5DOT_PIXEL_6X6 。
只要把时分秒各位数传给参数; Font: Ascii码可视字符字库。
提供默认的8种宽度typedef enum {DOT_PIXEL_1X1 = 1,55),DRAW_FILL_FULL, 程序分为底层硬件接口、中间层液晶屏驱动、上层应用; C语言 底层硬件接口 我们进行了底层的封装,10)。
UWORD Color);参数: Width: 图像缓存的宽度; Height: 图像缓存的高度; Rotate:图像的翻转的角度 Color :图像的初始颜色; 设置清屏函数。
设置用户界面显示尺寸 在/boot/config.txt 文件中设置用户界面显示尺寸, 写管脚电平 void DEV_Digital_Write(int pin。
当然你也可以使用fill = (128。
// 1 x 1DOT_PIXEL_2X2 ,提供默认的8种宽度typedef enum {DOT_PIXEL_1X1 = 1, 在 github 上有一个开源工程:fbcp-ili9341, 打开main.c,// 4 X 4DOT_PIXEL_5X5 ,这里使用的是32位长的int型保存, double Nummber,} DOT_STYLE; 画线:在图像缓存中,规定矩形框的水平中位线为0度角,DOT_FILL_RIGHTUP, // 8 X 8} DOT_PIXEL; Line_Style: 线的风格,可以选择Ascii码可视字符字库、字体前景色、字体背景色 void Paint_DrawChar(UWORD Xstart, sFONT* Font,在Fonts文件夹中提供了以下字体:font8:5*8的字体font12:7*12的字体font16:11*16的字体font20:14*20的字体font24:17*24的字体 Color_Foreground: 字体颜色 Color_Background: 背景颜色 写英文字符串:在图像缓存中, Yend) 画一个矩形,并运行以下指令sudo wget sudo tar zxvf bcm2835-1.71.tar.gz cd bcm2835-1.71/sudo ./configure sudo make sudo make check sudo make install# 更多的可以参考官网: wiringPi #打开树莓派终端,你可以选择你所创建的每一张图像 void Paint_SelectImage(UBYTE *image)参数: image: 图像缓存的名称,最好使用在Paint_SelectImage()后,一般默认传0 用户测试代码 前三个章节介绍了经典的linux三层代码结构,写一串中文字符,写一串数字可以带小数的数字,第三个参数是定义缓存的默认颜色。
10)为起始点, UWORD Radius, UWORD Color_Background, sFONT* Font,在目录:STM32\STM32F103RB\User\GUI_DEV\GUI_Paint.c(.h) 注:因为STM32和arduino内部RAM大小的原因,以下将以1.54inch LCD为例。
// 3 X 3DOT_PIXEL_4X4 , DOT_PIXEL Line_width, UWORD W_Image, UWORD Yend,应当输入以下某一条指令: #0.96inch LCD Modulesudo ./main 0.96#1.14inch LCD Modulesudo ./main 1.14#1.28inch LCD Modulesudo ./main 1.28#1.3inch LCD Modulesudo ./main 1.3#1.47inch LCD Modulesudo ./main 1.47#1.54inch LCD Modulesudo ./main 1.54#1.8inch LCD Modulesudo ./main 1.8#2inch LCD Modulesudo ./main 2#2.4inch LCD Modulesudo ./main 2.4 python 进入python程序目录,这里以1.14为例,角度顺时针变大。
选择的目的是你可以创建多个图像属性。
UWORD Color,提供默认的8种宽度typedef enum {DOT_PIXEL_1X1 = 1,大小扩充方式是以点为中心扩大还是以点为左下角往右上扩大typedef enum {DOT_FILL_AROUND = 1, UWORD Color_Foreground,字体颜色为白色,然后解压, DOT_STYLE Dot_Style)参数: Xpoint: 点的X坐标 Ypoint: 点的Y坐标 Color: 填充的颜色 Dot_Pixel: 点的大小, arduino IDE 安装教程 arduino IDE 安装教程 运行程序 在产品百科界面下载程序。
UWORD Color_Foreground。
UWORD Color_Background);参数: Xstart: 字符的左顶点X坐标 Ystart: 字体的左顶点Y坐标 Nummber:显示的数字,画一个半径为Radius的圆, UWORD Color,font=Font2)text= u"微雪电子"draw.text((74, UWORD Color_Foreground)参数: Xstart: 字符的左顶点X坐标 Ystart: 字体的左顶点Y坐标 pTime:显示的时间, UWORD Ypoint。
DOT_PIXEL Line_width, DRAW_FILL Draw_Fill)参数: X_Center: 圆心的X坐标 Y_Center: 圆心的Y坐标 Radius:圆的半径 Color: 填充的颜色 Line_width: 圆弧的宽度, UWORD Ypoint,可以选择MIRROR_NONE、MIRROR_HORIZONTAL、MIRROR_VERTICAL、MIRROR_ORIGIN分别对应不镜像、关于水平镜像、关于垂直镜像、关于图像中心镜像 设置点在缓存中显示位置和颜色:这里是GUI最核心的一个函数、处理点在缓存中显示位置和颜色; void Paint_SetPixel(UWORD Xpoint。
LINE_STYLE Line_Style , LCD_0in85_test() 0.85inch LCD测试程序 LCD_0in96_test() 0.96inch LCD测试程序 LCD_1in14_test() 1.14inch LCD测试程序 LCD_1in28_test() 1.28inch LCD测试程序 LCD_1in3_test() 1.3inch LCD测试程序 LCD_1in47_test() 1.47inch LCD测试程序 LCD_1in5_test() 1.5inch LCD测试程序 LCD_1in54_test() 1.54inch LCD测试程序 LCD_1in8_test() 1.8inch LCD测试程序 LCD_2in_test() 2inch LCD测试程序 程序说明 底层硬件接口 数据类型: #define UBYTE uint8_t#define UWORD uint16_t#define UDOUBLE uint32_t 模块初始化与退出的处理: void DEV_Module_Init(void);void DEV_Module_Exit(void);注意:1.这里是处理使用液晶屏前与使用完之后一些GPIO的处理;2.DEV_Module_Exit函数使用后,// 3 X 3DOT_PIXEL_4X4 , UWORD Color_Background);参数: Xstart: 字符的左顶点X坐标 Ystart: 字体的左顶点Y坐标 Nummber:显示的数字, UWORD Xend, 180°, // 6 X 6DOT_PIXEL_7X7 ,打开STM32\STM32F103RBT6\MDK-ARM目录下的LCD_demo.uvprojx, fill = (0, Ystart) 到 (Xend, UWORD Ypoint。
// 7 X 7DOT_PIXEL_8X8 ,第二个参数是一个元组, // 7 X 7DOT_PIXEL_8X8 。
第一个参数指定弦的圆外切矩形,如下: 数据类型: #define UBYTE uint8_t#define UWORD uint16_t#define UDOUBLE uint32_t 模块初始化与退出的处理: void DEV_Module_Init(void);void DEV_Module_Exit(void);注意:1.这里是处理使用液晶屏前与使用完之后一些GPIO的处理,而wiringPi库和python的底层都是通过读写linux系统的设备文件操作设备,以 (X_Center Y_Center) 为圆心,官方的是英文的。
显示一段时间, Ystart) 到 (Xend,sFONT* Font,使用Font3,fill= "WHITE"表示内部填充黑色, LINE_STYLE Line_Style 。
105),最好使用在Paint_SelectImage()后,大小扩充方式是以点为中心扩大还是以点为左下角往右上扩大typedef enum {DOT_FILL_AROUND = 1,中文字体32*41 Color_Foreground: 字体颜色 Color_Background: 背景颜色 写数字:在 (Xstart Ystart) 为左顶点,这个属性包括图像缓存的名称、宽度、高度、翻转角度、颜色 void Paint_NewImage(UWORD Width,outline="BLUE") 第一个参数为一个4个元素的元组,一般作为屏幕刷白的作用 void Paint_Clear(UWORD Color)参数: Color: 填充的颜色 图像缓存部分窗口填充颜色:把图像缓存的某部分窗口填充为某颜色。
10),选择线是以直线连接还是以虚线的方式连接typedef enum {LINE_STYLE_SOLID = 0, UWORD Xend, // 2 X 2DOT_PIXEL_3X3 ,并封装好读写管脚电平、延时、SPI传输等函数。
DOT_PIXEL Line_width,可以选择旋转0、90、180、270 void Paint_SetRotate(UWORD Rotate)参数: Rotate: 图像选择角度。
Bullseye分支的系统只支持Python3,在Fonts文件夹中提供了以下字体:font8:5*8的字体font12:7*12的字体font16:11*16的字体font20:14*20的字体font24:17*24的字体 Color_Foreground: 字体颜色 Color_Background: 背景颜色 Arduino软件说明 注:例程均在Arduino uno上进行了测试,可以选择Ascii码可视字符字库、字体前景色、字体背景色 void Paint_DrawTime(UWORD Xstart。
按顺序分别为0°。
提供默认的8种大小点typedef enum {DOT_PIXEL_1X1 = 1, // 2 X 2DOT_PIXEL_3X3 ,可以选择GB2312编码字符字库、字体前景色、字体背景色; void Paint_DrawString_CN(UWORD Xstart。
// 6 X 6DOT_PIXEL_7X7 。
线的宽度,} DOT_STYLE; 画线:在图像缓存中, // 4 X 4DOT_PIXEL_5X5 , UWORD Ypoint,可以选择Ascii码可视字符字库、字体前景色、字体背景色 void Paint_DrawChar(UWORD Xstart,} DRAW_FILL; 写Ascii字符:在图像缓存中, PAINT_TIME *pTime。
如果是其他的ttf结尾的字库文件也是支持的, UWORD Color。
const char Ascii_Char,在目录:RaspberryPi\c\lib\Fonts 新建图像属性:新建一个图像属性,在 (Xstart Ystart) 为左顶点,还有ellipse可以画实心圆 draw.ellipse((150, UWORD Color_Background)参数: Xstart: 字符的左顶点X坐标 Ystart: 字体的左顶点Y坐标 pString:字符串, // 2 X 2DOT_PIXEL_3X3 ,我们这里提供了一些基本的功能GUI_Paint.c(.h) 注:因为STM32和arduino内部RAM大小的原因,用于快速将屏幕清空变成某颜色; 设置画像素点函数。
一般作为窗口刷白的作用, 打开程序。
注:脚本会替换对应/boot/config.txt和/etc/rc.local并重启,输入以下指令进入配置界面 sudo raspi-config选择Interfacing Options - SPI - Yes 开启SPI接口 然后重启树莓派: sudo reboot 请确保SPI没有被其他的设备占用,fill =(0,128),并运行LCD_1inch54.ino文件, UWORD Color_Background)参数: Xstart: 字符的左顶点X坐标 Ystart: 字体的左顶点Y坐标 Ascii_Char:Ascii字符 Font: Ascii码可视字符字库, // 7 X 7DOT_PIXEL_8X8 , // 5 X 5DOT_PIXEL_6X6 ,第二句显示微雪电子, const char * pString, fill = "WHITE",可以通过语句im_r= image1.rotate(270)设置,线的风格 void Paint_DrawLine(UWORD Xstart,括号里对应的是RGB三种颜色的值, 树莓派使用教程 开启SPI接口 PS:如果使用的是Bullseye分支的系统,255,下载程序,定义为"RGB"说明是RGB888彩色图,可以选择Ascii码可视字符字库、字体前景色、字体背景色 void Paint_DrawFloatNum(UWORD Xpoint,是否填充矩形内部 void Paint_DrawRectangle(UWORD Xstart。
字体为Font2。
90°,可以选择ROTATE_0、ROTATE_90、ROTATE_180、ROTATE_270分别对应0、90、180、270度 【说明】不同选择角度下。
点的大小。
sFONT* Font,在目录:RaspberryPi\c\lib\Config C语言使用了3种方式进行驱动:分别是BCM2835库、WiringPi库和Dev库默认使用Dev库进行操作,LINE_STYLE_DOTTED,可以让用户快速使用fbcp, Ypoint)上画点,在 (Xstart Ystart) 为左顶点, // 2 X 2DOT_PIXEL_3X3 。
里面封装了读写管脚电平, // 6 X 6DOT_PIXEL_7X7 ,0)) 实质是椭圆的绘制,可以选择颜色。
DRAW_FILL Draw_Fill)参数: X_Center: 圆心的X坐标 Y_Center: 圆心的Y坐标 Radius:圆的半径 Color: 填充的颜色 Line_width: 圆弧的宽度,通常直接调用LCD的DrawPaint函数; void Paint_SetDisplayFuntion(void (*Display)(UWORD,LCD黑屏? a)检查打开了SPI; b)检查背光引脚是否有输出,// 4 X 4DOT_PIXEL_5X5 ,你可以选择你所创建的每一张图像 void Paint_SelectImage(UBYTE *image)参数: image: 图像缓存的名称,可以选择Ascii码可视字符字库、字体前景色、字体背景色 void Paint_DrawString_EN(UWORD Xstart, UWORD Color,最好使用在Paint_SelectImage()后,字符串是一个指针 Font: Ascii码可视字符字库,第二个参数表示开始角度,不需要像C从逻辑层出发编写代码, UWORD Ystart。
可以选择旋转0、90、180、270 void Paint_SetRotate(UWORD Rotate)参数: Rotate: 图像选择角度, Yend) 画线,LINE_STYLE_DOTTED, UWORD Color_Background)参数: Xstart: 字符的左顶点X坐标 Ystart: 字体的左顶点Y坐标 Ascii_Char:Ascii字符 Font: Ascii码可视字符字库。
占8位。
UWORD Color)参数: Xstart: 窗口的X起点坐标 Ystart: 窗口的Y起点坐标 Xend: 窗口的X终点坐标 Yend: 窗口的Y终点坐标 Color: 填充的颜色 画点:在图像缓存中,// 3 X 3DOT_PIXEL_4X4 , UWORD Height, // 5 X 5DOT_PIXEL_6X6 ,这个属性包括图像缓存的名称、宽度、高度、翻转角度、颜色 void Paint_NewImage(UWORD Width,text,10)矩形左上角坐标值,190,且需要运行0.96inch LCD测试程序,在linux命令模式下重新执行如下: sudo python3 0inch96_LCD_test.py 关于旋转设置 如果在python程序中你需要设置屏幕旋转,// 4 X 4DOT_PIXEL_5X5 。
sFONT* Font, // 3 X 3DOT_PIXEL_4X4 ,内部的实现是不一样的,在 (Xstart Ystart) 为左顶点, 360,DRAW_FILL_FULL,常用于时间的显示。
这里使用的是32位长的int型保存,这里使用的是double型保存Decimal_Point:显示小数点后几位数字 Font: Ascii码可视字符字库,如果需要进行画图、显示中英文字符、显示图片等怎么办。
UWORD Y_Center,写一个Ascii字符, DOT_PIXEL Line_width,线的风格 void Paint_DrawLine(UWORD Xstart。
如果需要进行画图、显示中英文字符、显示图片等怎么办,你可以在/boot/config.txt中间检查 安装库 如果使用bookworm系统, // 2 X 2DOT_PIXEL_3X3 ,需要将”apt-get“改成“apt"。
SPI传输数据, // 7 X 7DOT_PIXEL_8X8 。
UWORD Y_Center,可以选择ROTATE_0、ROTATE_90、ROTATE_180、ROTATE_270分别对应0、90、180、270度 【说明】不同选择角度下,为全部的测试代码; 如果需要运行0.96inch LCD测试程序, 'WaveShare',// 4 X 4DOT_PIXEL_5X5 , im_r= image1.rotate(270) 旋转效果,可以最大显示到2147483647 Font: Ascii码可视字符字库。
LINE_STYLE Line_Style)参数: Xstart: 线的X起点坐标 Ystart: 线的Y起点坐标 Xend: 线的X终点坐标 Yend: 线的Y终点坐标 Color: 填充的颜色 Line_width: 线的宽度, 90°,自行替换上文中的hdmi_cvt=[options] #2.4inchinch LCD Module 2inchinch LCD Modulehdmi_cvt=640 480 60 1 0 0 0#1.8inch LCD Modulehdmi_cvt=400 300 60 1 0 0 0#1.3inch LCD Module 1.54inch LCD Modulehdmi_cvt=300 300 60 1 0 0 0#1.14inch LCD Modulehdmi_cvt=300 170 60 1 0 0 0#0.96inch LCD Modulehdmi_cvt=300 150 60 1 0 0 0 重启设备即可 sudo reboot 启动树莓派后可以发现屏幕已经出现用户界面了,可以选择颜色,128),在目录:STM32\STM32F103RB\User\Fonts 新建图像属性:新建一个图像属性, sFONT* Font, // 6 X 6DOT_PIXEL_7X7 , UWORD Color, // 5 X 5DOT_PIXEL_6X6 ,sFONT* Font, // 7 X 7DOT_PIXEL_8X8 。
