ug-2864hsweg01用户手册
时间: 2023-11-24 12:02:57 浏览: 70
ug-2864hsweg01是一款智能家居设备的用户手册,主要针对该设备的安装、使用、维护等方面进行了详细的介绍。
用户手册首先介绍了ug-2864hsweg01设备的外观和功能特点,让用户对设备有一个直观的了解。然后详细介绍了设备的安装步骤,包括安装位置的选择、安装方式的具体操作等。安装部分还包括设备连接网络的步骤,以确保设备正常工作。在使用方面,用户手册详细介绍了设备的各种功能和操作方法,包括如何通过手机或其他智能设备对设备进行远程控制,如何设置定时开关机等功能。另外,手册还介绍了设备的维护方法,例如定期清洁和注意事项,以确保设备长期稳定地运行。
此外,用户手册还包括了常见问题解决办法,以及设备的技术规格和注意事项。这些内容可以帮助用户更好地使用和维护ug-2864hsweg01设备,提高设备的使用寿命和性能。
总之,ug-2864hsweg01用户手册通过清晰的文字说明、图片示范等方式,对设备的安装、使用、维护等方面进行了全面而详细的介绍,旨在帮助用户更好地使用和维护该设备,提升用户体验。
相关问题
OlEd UG-2864HSWEG01与STM32连接
OLED UG-2864HSWEG01是一种128x64的OLED显示屏,可以通过SPI接口与STM32微控制器连接。
以下是连接步骤:
1. 将OLED显示屏的VCC引脚连接到STM32的3.3V电源引脚,将GND引脚连接到STM32的GND引脚。
2. 将OLED显示屏的SCK引脚连接到STM32的SPI时钟引脚(通常是PA5)。
3. 将OLED显示屏的SDA引脚连接到STM32的SPI MOSI引脚(通常是PA7)。
4. 将OLED显示屏的CS引脚连接到STM32的任意GPIO引脚(例如PC0)。
5. 在STM32中启用SPI接口和GPIO引脚。
6. 使用SPI协议发送数据到OLED显示屏,以控制其显示。
以下是示例代码:
```c
#include "stm32f10x.h"
void OLED_init(void);
void OLED_write_cmd(unsigned char cmd);
void OLED_write_data(unsigned char data);
int main(void)
{
// 启用SPI和GPIO接口
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1 | RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOC, ENABLE);
// 配置SPI MOSI引脚为推挽输出
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
// 配置SPI时钟引脚为推挽输出
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
GPIO_Init(GPIOA, &GPIO_InitStructure);
// 配置CS引脚为推挽输出
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOC, &GPIO_InitStructure);
// 配置SPI接口
SPI_InitTypeDef SPI_InitStructure;
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接口
SPI_Cmd(SPI1, ENABLE);
// 初始化OLED显示屏
OLED_init();
// 发送数据到OLED显示屏
OLED_write_cmd(0xAF); // 开启OLED显示屏
OLED_write_data(0xFF); // 在第1行第1列显示一个白色点
while (1)
{
}
}
void OLED_init(void)
{
GPIO_SetBits(GPIOC, GPIO_Pin_0); // 将CS引脚置高
GPIO_ResetBits(GPIOA, GPIO_Pin_5); // 将SPI时钟引脚置低
GPIO_SetBits(GPIOC, GPIO_Pin_0); // 将CS引脚置高
GPIO_SetBits(GPIOA, GPIO_Pin_5); // 将SPI时钟引脚置高
GPIO_ResetBits(GPIOC, GPIO_Pin_0); // 将CS引脚置低
OLED_write_cmd(0xAE); // 关闭OLED显示屏
OLED_write_cmd(0xD5); // 设置时钟分频因子
OLED_write_cmd(0x80); // 时钟分频因子为1
OLED_write_cmd(0xA8); // 设置驱动路数
OLED_write_cmd(0x3F); // 驱动路数为1/64
OLED_write_cmd(0xD3); // 设置显示偏移
OLED_write_cmd(0x00); // 显示偏移为0
OLED_write_cmd(0x40); // 设置显示开始行
OLED_write_cmd(0x8D); // 设置电荷泵
OLED_write_cmd(0x14); // 电荷泵开
OLED_write_cmd(0x20); // 设置内存地址模式
OLED_write_cmd(0x00); // 内存地址模式为水平地址模式
OLED_write_cmd(0xA1); // 设置列地址映射
OLED_write_cmd(0xC8); // 设置行地址映射
OLED_write_cmd(0xDA); // 设置COM硬件引脚配置
OLED_write_cmd(0x12); // COM硬件引脚配置为分割模式
OLED_write_cmd(0x81); // 设置对比度控制
OLED_write_cmd(0xCF); // 对比度为207
OLED_write_cmd(0xD9); // 设置预充电周期
OLED_write_cmd(0xF1); // 预充电周期为15个时钟周期
OLED_write_cmd(0xDB); // 设置VCOMH
OLED_write_cmd(0x40); // VCOMH为0.77倍VCC
OLED_write_cmd(0xA4); // 全部点亮
OLED_write_cmd(0xA6); // 设置显示方式为正常显示
OLED_write_cmd(0xAF); // 开启OLED显示屏
GPIO_SetBits(GPIOC, GPIO_Pin_0); // 将CS引脚置高
}
void OLED_write_cmd(unsigned char cmd)
{
GPIO_ResetBits(GPIOC, GPIO_Pin_0); // 将CS引脚置低
SPI_I2S_SendData(SPI1, 0x00); // 发送命令标志位
SPI_I2S_SendData(SPI1, cmd); // 发送命令
while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY) == SET); // 等待传输完成
GPIO_SetBits(GPIOC, GPIO_Pin_0); // 将CS引脚置高
}
void OLED_write_data(unsigned char data)
{
GPIO_ResetBits(GPIOC, GPIO_Pin_0); // 将CS引脚置低
SPI_I2S_SendData(SPI1, 0x40); // 发送数据标志位
SPI_I2S_SendData(SPI1, data); // 发送数据
while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY) == SET); // 等待传输完成
GPIO_SetBits(GPIOC, GPIO_Pin_0); // 将CS引脚置高
}
```
以上代码使用了STM32的SPI接口和GPIO引脚,以控制OLED显示屏的初始化和显示。
用AT89C51和DS18B20采集温度,在UG-2864HSWEG01上显示代码
以下是基于AT89C51和DS18B20采集温度,并在UG-2864HSWEG01上显示的示例代码:
```
#include <reg51.h>
#include <intrins.h>
#include <stdio.h>
#define DS18B20_DQ P3_7
#define UG_EN P2_3
#define UG_RW P2_2
#define UG_RS P2_1
#define UG_E P2_0
#define DS18B20_SKIP_ROM 0xCC
#define DS18B20_CONVERT_T 0x44
#define DS18B20_READ_SCRATCHPAD 0xBE
sbit SDA = P1^3;
sbit SCL = P1^2;
unsigned char code g_LcdInitCmd[] = {0x38, 0x0c, 0x06, 0x01, 0x02, 0x80};
unsigned char code g_LcdClearCmd[] = {0x01};
void delay_us(unsigned int us)
{
while (us--)
{
_nop_();
}
}
void delay_ms(unsigned int ms)
{
while (ms--)
{
delay_us(1000);
}
}
void DS18B20_Write_Byte(unsigned char dat)
{
unsigned char i;
for (i = 0; i < 8; i++)
{
DS18B20_DQ = 0;
_nop_();
_nop_();
DS18B20_DQ = dat & 0x01;
_nop_();
_nop_();
DS18B20_DQ = 1;
dat >>= 1;
}
}
unsigned char DS18B20_Read_Byte()
{
unsigned char i, dat = 0;
for (i = 0; i < 8; i++)
{
DS18B20_DQ = 0;
_nop_();
_nop_();
dat >>= 1;
if (DS18B20_DQ)
{
dat |= 0x80;
}
_nop_();
_nop_();
DS18B20_DQ = 1;
}
return dat;
}
void UG_Write_Cmd(unsigned char cmd)
{
UG_EN = 0;
UG_RW = 0;
UG_RS = 0;
P0 = cmd;
UG_EN = 1;
delay_us(1);
UG_EN = 0;
delay_ms(2);
}
void UG_Write_Data(unsigned char dat)
{
UG_EN = 0;
UG_RW = 0;
UG_RS = 1;
P0 = dat;
UG_EN = 1;
delay_us(1);
UG_EN = 0;
delay_ms(2);
}
void UG_Init()
{
unsigned char i;
UG_Write_Cmd(0x38);
UG_Write_Cmd(0x0c);
UG_Write_Cmd(0x06);
UG_Write_Cmd(0x01);
UG_Write_Cmd(0x02);
UG_Write_Cmd(0x80);
}
void UG_Clear()
{
UG_Write_Cmd(0x01);
}
void UG_Puts(unsigned char x, unsigned char y, unsigned char *str)
{
unsigned char i = 0;
if (y == 1)
{
UG_Write_Cmd(0x80 + x);
}
else
{
UG_Write_Cmd(0xc0 + x);
}
while (str[i] != '\0')
{
UG_Write_Data(str[i]);
i++;
}
}
void UG_Putc(unsigned char x, unsigned char y, unsigned char c)
{
if (y == 1)
{
UG_Write_Cmd(0x80 + x);
}
else
{
UG_Write_Cmd(0xc0 + x);
}
UG_Write_Data(c);
}
void UG_Display_Temperature(float temperature)
{
char str[17];
sprintf(str, "Temperature: %.1f C", temperature);
UG_Clear();
UG_Puts(0, 0, "AT89C51+DS18B20");
UG_Puts(0, 1, str);
}
void DS18B20_Start_Convert()
{
DS18B20_Write_Byte(DS18B20_SKIP_ROM);
DS18B20_Write_Byte(DS18B20_CONVERT_T);
}
unsigned int DS18B20_Read_Temperature()
{
unsigned char temp_l, temp_h;
unsigned int temp;
DS18B20_Write_Byte(DS18B20_SKIP_ROM);
DS18B20_Write_Byte(DS18B20_READ_SCRATCHPAD);
temp_l = DS18B20_Read_Byte();
temp_h = DS18B20_Read_Byte();
temp = temp_h;
temp <<= 8;
temp |= temp_l;
return temp;
}
void main()
{
float temperature;
unsigned int temp;
UG_Init();
UG_Clear();
UG_Puts(0, 0, "AT89C51+DS18B20");
while (1)
{
DS18B20_Start_Convert();
delay_ms(750);
temp = DS18B20_Read_Temperature();
temperature = (float)temp / 16.0;
UG_Display_Temperature(temperature);
delay_ms(2000);
}
}
```
需要注意的是,这个示例代码是基于AT89C51的,如果你使用的是其他型号的单片机,需要对代码进行相应的修改。同时,UG-2864HSWEG01显示屏需要通过SPI通信方式进行控制,如有需要也需要对代码进行修改。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)