微雪7寸LCD触摸屏连接树莓派并安装驱动

7寸HDMI触屏指南
本手册介绍了一款专为树莓派设计的7寸HDMI显示屏,具备800x480分辨率及电容触摸功能。适用于树莓派、BeagleBone等多种平台,提供了详细的安装和配置教程。

7inch HDMI LCD (B)用户手册

产品概述

本产品是专为树莓派打造、却也不限于树莓派的7寸HDMI显示屏,800x480高清分辨率,带电容触摸屏。 本产品同时也是通用HDMI显示屏,用户可以把它用到其他mini PC上(需要驱动支持),甚至将其作为计算机显示器。

产品特点

  • 800×480高清分辨率,支持触摸控制
  • 支持Raspberry Pi,提供Raspbian系统下的驱动(用户可直接在原有Raspbian系统下使用)
  • 支持BB Black,提供Angstrom相应镜像
  • 支持Banana Pi / Banana Pro,提供Lubuntu,Raspbian相应镜像
  • 通用HDMI显示屏,可作为计算机显示器(触摸屏功能无法使用)
  • HDMI接口用于显示,USB接口用于触摸

板载资源

图 1. 板载开关和接口
æä»¶:7inch-HDMI-LCD-B-1.png
  1. 背光开关:用于开启/关闭背光。
  2. USB触摸接口:USB触摸/电源接口。
  3. HDMI接口:用于连接主板和LCD显示屏。

连接树莓派使用

烧写Raspbian镜像

屏幕连接树莓派使用的时候,用户需要对官方的系统进行配置。您也可以直接烧写已经配置好的系统镜像。本节示例如何烧写镜像。7inch HDMI LCD (B) Raspberry 2 B module Raspbian启动镜像,该镜像文件支持树莓派2代B,如果您使用的是树莓派B\A+\B+,则可以用7inch HDMI LCD (B) Raspberry B / B+ Raspbian启动镜像

  1. 将压缩文件下载到电脑上,并解压得到.img文件(一般的解压缩工具,如好压、WinRAR等都可以进行7z解压)。
  2. TF卡连接到电脑,使用SDFormatter.exe软件格式化TF卡。注意:TF卡的容量不得低于4GB。此操作必须搭配TF卡读卡器,用户需要另外购买。
  3. 打开Win32DiskImager.exe软件,选择第一步准备的系统镜像,点击write烧写系统镜像。

硬件连接

  1. 用HDMI线连接LCD和树莓派的HDMI接口。
  2. 用type A转micro的USB线连接LCD的Touch接口和树莓派任意一个的USB接口。

使用树莓派虚拟键盘

LCD可以正常显示之后,调用树莓派系统自带的虚拟键盘,可以节省宝贵的USB资源。便于用户操作树莓派。执行: DISPLAY=:0.0 matchbox-keyboard -s 100 extended 即可进入虚拟键盘,如下图所示:

图 2. 树莓派虚拟键盘
5inch-HDMI-LCD-B-2.png

配置官方的Raspbian镜像

在之前的章节中,为了便于讲解,本手册示例直接烧写已经配置好的系统镜像(烧写Raspbian镜像),但是用户实际上可以更加自由地定制自己的系统,使用树莓派官方的Raspbian镜像,经过一定配置,也可以支持本款LCD。

安装驱动脚本

1. 把树莓派2代B Raspbian驱动程序复制树莓派系统的中。该文件支持树莓派2代B,如果您使用的是树莓派B\A+\B+,则可以用树莓派B+_A+_B Raspbian驱动程序。终端执行解压:


sudo tar zxvf file_name.tar.gz

2. 进入得到的文件夹,执行USB_TOUCH_CAP_7.0_RASPBIAN脚本文件,即执行:


cd dir_file_name
sudo ./USB_TOUCH_CAP_7.0_RASPBIAN

3. 脚本执行完,系统会自动重启,重启以后,系统便可支持本产品的显示和触摸。

注:如果原系统没有解除USB电流限制,可能会导致LCD供电不足。此时只需在config.txt文件中增加以下代码以解除USB电流限制即可:


max_usb_current=1

开源代码与协议

1. 将wavesahre-7inch-touchscreen-driver-master复制到树莓派

2. 执行以下命令


cd wavesahre-7inch-touchscreen-driver
chmod +x install.sh
sudo apt-get update
sudo ./install.sh

3. 树莓派关机并重新上电,正常启动后,显示和触摸功能都将可以正常使用。

注:相关代码请自行查阅,我们不提供开发环境搭建与源码修改等技术支持。

附:HID私有协议

7inch-HDMI-LCD-B-UserManual01.png

进入图形界面

注意:Raspbian系统默认进入终端界面,为了便于使用LCD,推荐您开机直接进入图形界面。请参考下面的步骤设置自动启动桌面。

1. 进入树莓派系统设置,执行:


sudo raspi-config

2. 选择Enable Boot to Desktop/Scratch,用方向键、空格或者回车的组合来设置。

3. 选择Desktop Login as user 'Pi' at the graphical desktop

4. 提示Would you like to reboot now?的时候选择Yes重启系统。

在树莓派的Ubuntu系统中使用

烧写7inch HDMI LCD (B) ubuntu启动镜像,该镜像文件支持Raspberry Pi 2B。用户名:linaro,密码:linaro。

连接BeagleBone使用

烧写Angstrom镜像

如果只用做显示而不需要触摸功能,可以直接烧写最新的Angstrom镜像,不需要做任何设置。BeagleBone会自动读取7寸HDMI显示器的显示参数,自动调整为800*480的分辨率。 当作触摸显示器使用的时候,用户需要烧写7inch HDMI LCD (B) Angstrom启动镜像。烧写镜像的方法:

  1. 将压缩文件下载到电脑上,并解压得到.img文件(一般的解压缩工具,如好压、WinRAR等都可以进行7z解压)。
  2. TF卡连接到电脑,使用SDFormatter.exe软件格式化TF卡。注意:TF卡的容量不得低于4GB。此操作必须搭配TF卡读卡器,用户需要另外购买。
  3. 打开Win32DiskImager.exe软件,选择第一步准备的系统镜像,点击write烧写系统镜像。
  4. 镜像写入到TF卡之后,即可把TF卡插上BeagleBone。按住uBOOT按钮,上电后再松开,此时会进入TF卡中的系统。等待一会,即可进入图形界面。

硬件连接

  1. 用HDMI转micro HDMI转接线(用户需要另外购买)连接LCD和BeagleBone的HDMI接口。
  2. 用type A转micro的USB线连接LCD的Touch接口和BeagleBone的主机USB接口。(BeagleBone提供了一个主机USB接口和一个从机USB接口,把LCD接入主机USB接口方可正常使用)

连接香蕉派使用

因为香蕉派启动的时候会读取显示器分辨率的参数,所以香蕉派上电之前需要和显示器接好,直到进桌面了,拔掉显示器再接上也能正常使用。

烧写Raspbian_For_BananaPi镜像

烧写7inch HDMI LCD (B) Raspbian启动镜像,该镜像文件支持BananaPi Pro和BananaPi。

  1. 将压缩文件下载到电脑上,并解压得到.img文件(一般的解压缩工具,如好压、WinRAR等都可以进行7z解压)。
  2. TF卡连接到电脑,使用SDFormatter.exe软件格式化TF卡。注意:TF卡的容量不得低于4GB。此操作必须搭配TF卡读卡器,用户需要另外购买。
  3. 打开Win32DiskImager.exe软件,选择第一步准备的系统镜像,点击write烧写系统镜像。

硬件连接

  1. 用HDMI线连接LCD和香蕉派的HDMI接口。
  2. 用双头micro USB线连接LCD的Touch接口和香蕉派的任意一个USB接口。

加载BananaPi Pro的WiFi驱动

BananaPi Pro 和Banana Pi主要差别在于BananaPi Pro板载了一个WiFi模块,用户使用BananaPi Pro的时候,可以SSH连接BananaPi Pro,执行下面的指令加载WiFi驱动:


sudo modprobe ap6210

在香蕉派的Lubuntu系统中使用

烧写7inch HDMI LCD (B) Lubuntu启动镜像,该镜像文件支持BananaPi Pro和BananaPi。用户名:bananapi,密码:bananapi

### STM32F103RBT6 驱动 2.4 LCD 屏教程及示例代码 STM32F103RBT6 是一款基于 ARM Cortex-M3 内核的微控制器,广泛应用于嵌入式系统开发。驱动 2.4 LCD 屏通常需要配置 SPI 或 I2C 接口,使用适当的库或驱动代码来实现显示功能。 以下是一个基于 SPI 接口的示例代码,用于驱动 2.4 LCD 屏幕: #### 硬件连接 确保 STM32F103RBT6 和 2.4 LCD 屏之间的硬件连接正确。常见的连接方式如下: - **SCK**(SPI 时钟) -> PB3 (SPI1_SCK) - **MOSI**(主输出从输入) -> PB5 (SPI1_MOSI) - **CS**(片选信号) -> PA4 - **RESET**(复位信号) -> PA5 - **DC**(数据/命令选择) -> PA6 - **BL**(背光控制) -> PA7 #### 示例代码 ```c #include "stm32f10x.h" #include "lcd.h" // 假设已包含 LCD 驱动库 // 初始化 GPIO 和 SPI void LCD_SPI_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; SPI_InitTypeDef SPI_InitStructure; // 启用相关时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI1, ENABLE); // 配置 SPI 引脚 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7; // PA5, PA6, PA7 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_5; // PB3, PB5 GPIO_Init(GPIOB, &GPIO_InitStructure); // 配置 CS、RESET、DC 引脚 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7; // PA4, PA5, PA6, PA7 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); // 初始化 SPI SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex; SPI_InitStructure.SPI_Mode = SPI_Mode_Master; SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b; SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low; SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge; SPI_InitStructure.SPI_NSS = SPI_NSS_Soft; SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_4; SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB; SPI_Init(SPI1, &SPI_InitStructure); SPI_Cmd(SPI1, ENABLE); } // 发送数据到 LCD void LCD_WriteData(uint8_t dat) { GPIO_ResetBits(GPIOA, GPIO_Pin_6); // 设置 DC 为高电平(数据模式) SPI_I2S_SendData(SPI1, dat); while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET); } // 发送命令到 LCD void LCD_WriteCommand(uint8_t cmd) { GPIO_SetBits(GPIOA, GPIO_Pin_6); // 设置 DC 为低电平(命令模式) SPI_I2S_SendData(SPI1, cmd); while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET); } // 主函数 int main(void) { LCD_SPI_Init(); // 初始化 SPI 和 GPIO LCD_Init(); // 初始化 LCD 屏幕 [^2] LCD_Clear(WHITE); // 清屏设置背景颜色为白色 LCD_SetCursor(20, 20); // 设置光标位置 LCD_DisplayString("Hello, World!"); // 显示字符串 while (1) { // 主循环 } } ``` #### 注意事项 1. 上述代码假设使用了 `lcd.h` 库文件,该库文件应包含 LCD 的初始化、清屏、设置光标等函数。 2. 如果没有现成的库文件,可以参考 ILI9341 或 ST7789 控制器的驱动代码,这些控制器常用于 2.4 LCD 屏幕[^3]。 3. 根据实际使用的 LCD 屏幕型号,可能需要调整初始化参数和引脚配置。 ####
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值