当前位置: 首页 > news >正文

6电商网站建设全屏网站设计

6电商网站建设,全屏网站设计,作文网有哪些,一家专门做衣服的网站文章目录 前言一、OLED是什么#xff1f;二、使用步骤1.复制 OLED.C .H文件1.1 遇到问题 2.统一风格3.主函数引用头文件3.1 oled.h 提供了什么函数 4.介绍显示一个字符的函数5. 显示十进制函数的讲解 三、使用注意事项3.1 配置符合自己的引脚3.2 花屏总结 前言 提示#xff… 文章目录 前言一、OLED是什么二、使用步骤1.复制 OLED.C .H文件1.1 遇到问题 2.统一风格3.主函数引用头文件3.1 oled.h 提供了什么函数 4.介绍显示一个字符的函数5. 显示十进制函数的讲解 三、使用注意事项3.1 配置符合自己的引脚3.2 花屏总结 前言 提示这里可以添加本文要记录的大概内容 项目需要 提示以下是本篇文章正文内容下面案例可供参考 一、OLED是什么 示例 二、使用步骤 1.复制 OLED.C .H文件 1.1 遇到问题 …\HARDWER\OLED.c(13): error: #268: declaration may not appear after executable statement in block 代码如下示例 1232.统一风格 OLED.H 代码如下示例 #ifndef __OLED_H #define __OLED_H#include stm32f10x.h #include OLED_Font.hvoid OLED_Init(void); void OLED_Clear(void); void OLED_ShowChar(uint8_t Line, uint8_t Column, char Char); void OLED_ShowString(uint8_t Line, uint8_t Column, char *String); void OLED_ShowNum(uint8_t Line, uint8_t Column, uint32_t Number, uint8_t Length); void OLED_ShowSignedNum(uint8_t Line, uint8_t Column, int32_t Number, uint8_t Length); void OLED_ShowHexNum(uint8_t Line, uint8_t Column, uint32_t Number, uint8_t Length); void OLED_ShowBinNum(uint8_t Line, uint8_t Column, uint32_t Number, uint8_t Length);#endif OLED.C #include OLED.h/*引脚配置*/ #define OLED_W_SCL(x) GPIO_WriteBit(GPIOB, GPIO_Pin_8, (BitAction)(x)) #define OLED_W_SDA(x) GPIO_WriteBit(GPIOB, GPIO_Pin_9, (BitAction)(x))/*引脚初始化*/ void OLED_I2C_Init(void) {GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);GPIO_InitStructure.GPIO_Mode GPIO_Mode_Out_OD;GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Pin GPIO_Pin_8;GPIO_Init(GPIOB, GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin GPIO_Pin_9;GPIO_Init(GPIOB, GPIO_InitStructure);OLED_W_SCL(1);OLED_W_SDA(1); }/*** brief I2C开始* param 无* retval 无*/ void OLED_I2C_Start(void) {OLED_W_SDA(1);OLED_W_SCL(1);OLED_W_SDA(0);OLED_W_SCL(0); }/*** brief I2C停止* param 无* retval 无*/ void OLED_I2C_Stop(void) {OLED_W_SDA(0);OLED_W_SCL(1);OLED_W_SDA(1); }/*** brief I2C发送一个字节* param Byte 要发送的一个字节* retval 无*/ void OLED_I2C_SendByte(uint8_t Byte) {uint8_t i;for (i 0; i 8; i){OLED_W_SDA(Byte (0x80 i));OLED_W_SCL(1);OLED_W_SCL(0);}OLED_W_SCL(1); //额外的一个时钟不处理应答信号OLED_W_SCL(0); }/*** brief OLED写命令* param Command 要写入的命令* retval 无*/ void OLED_WriteCommand(uint8_t Command) {OLED_I2C_Start();OLED_I2C_SendByte(0x78); //从机地址OLED_I2C_SendByte(0x00); //写命令OLED_I2C_SendByte(Command); OLED_I2C_Stop(); }/*** brief OLED写数据* param Data 要写入的数据* retval 无*/ void OLED_WriteData(uint8_t Data) {OLED_I2C_Start();OLED_I2C_SendByte(0x78); //从机地址OLED_I2C_SendByte(0x40); //写数据OLED_I2C_SendByte(Data);OLED_I2C_Stop(); }/*** brief OLED设置光标位置* param Y 以左上角为原点向下方向的坐标范围0~7* param X 以左上角为原点向右方向的坐标范围0~127* retval 无*/ void OLED_SetCursor(uint8_t Y, uint8_t X) {OLED_WriteCommand(0xB0 | Y); //设置Y位置OLED_WriteCommand(0x10 | ((X 0xF0) 4)); //设置X位置高4位OLED_WriteCommand(0x00 | (X 0x0F)); //设置X位置低4位 }/*** brief OLED清屏* param 无* retval 无*/ void OLED_Clear(void) { uint8_t i, j;for (j 0; j 8; j){OLED_SetCursor(j, 0);for(i 0; i 128; i){OLED_WriteData(0x00);}} }/*** brief OLED显示一个字符* param Line 行位置范围1~4* param Column 列位置范围1~16* param Char 要显示的一个字符范围ASCII可见字符* retval 无*/ void OLED_ShowChar(uint8_t Line, uint8_t Column, char Char) { uint8_t i;OLED_SetCursor((Line - 1) * 2, (Column - 1) * 8); //设置光标位置在上半部分for (i 0; i 8; i){OLED_WriteData(OLED_F8x16[Char - ][i]); //显示上半部分内容}OLED_SetCursor((Line - 1) * 2 1, (Column - 1) * 8); //设置光标位置在下半部分for (i 0; i 8; i){OLED_WriteData(OLED_F8x16[Char - ][i 8]); //显示下半部分内容} }/*** brief OLED显示字符串* param Line 起始行位置范围1~4* param Column 起始列位置范围1~16* param String 要显示的字符串范围ASCII可见字符* retval 无*/ void OLED_ShowString(uint8_t Line, uint8_t Column, char *String) {uint8_t i;for (i 0; String[i] ! \0; i){OLED_ShowChar(Line, Column i, String[i]);} }/*** brief OLED次方函数* retval 返回值等于X的Y次方*/ uint32_t OLED_Pow(uint32_t X, uint32_t Y) {uint32_t Result 1;while (Y--){Result * X;}return Result; }/*** brief OLED显示数字十进制正数* param Line 起始行位置范围1~4* param Column 起始列位置范围1~16* param Number 要显示的数字范围0~4294967295* param Length 要显示数字的长度范围1~10* retval 无*/ void OLED_ShowNum(uint8_t Line, uint8_t Column, uint32_t Number, uint8_t Length) {uint8_t i;for (i 0; i Length; i) {OLED_ShowChar(Line, Column i, Number / OLED_Pow(10, Length - i - 1) % 10 0);} }/*** brief OLED显示数字十进制带符号数* param Line 起始行位置范围1~4* param Column 起始列位置范围1~16* param Number 要显示的数字范围-2147483648~2147483647* param Length 要显示数字的长度范围1~10* retval 无*/ void OLED_ShowSignedNum(uint8_t Line, uint8_t Column, int32_t Number, uint8_t Length) {uint8_t i;uint32_t Number1;if (Number 0){OLED_ShowChar(Line, Column, );Number1 Number;}else{OLED_ShowChar(Line, Column, -);Number1 -Number;}for (i 0; i Length; i) {OLED_ShowChar(Line, Column i 1, Number1 / OLED_Pow(10, Length - i - 1) % 10 0);} }/*** brief OLED显示数字十六进制正数* param Line 起始行位置范围1~4* param Column 起始列位置范围1~16* param Number 要显示的数字范围0~0xFFFFFFFF* param Length 要显示数字的长度范围1~8* retval 无*/ void OLED_ShowHexNum(uint8_t Line, uint8_t Column, uint32_t Number, uint8_t Length) {uint8_t i, SingleNumber;for (i 0; i Length; i) {SingleNumber Number / OLED_Pow(16, Length - i - 1) % 16;if (SingleNumber 10){OLED_ShowChar(Line, Column i, SingleNumber 0);}else{OLED_ShowChar(Line, Column i, SingleNumber - 10 A);}} }/*** brief OLED显示数字二进制正数* param Line 起始行位置范围1~4* param Column 起始列位置范围1~16* param Number 要显示的数字范围0~1111 1111 1111 1111* param Length 要显示数字的长度范围1~16* retval 无*/ void OLED_ShowBinNum(uint8_t Line, uint8_t Column, uint32_t Number, uint8_t Length) {uint8_t i;for (i 0; i Length; i) {OLED_ShowChar(Line, Column i, Number / OLED_Pow(2, Length - i - 1) % 2 0);} }/*** brief OLED初始化* param 无* retval 无*/ void OLED_Init(void) {uint32_t i, j;for (i 0; i 1000; i) //上电延时{for (j 0; j 1000; j);}OLED_I2C_Init(); //端口初始化OLED_WriteCommand(0xAE); //关闭显示OLED_WriteCommand(0xD5); //设置显示时钟分频比/振荡器频率OLED_WriteCommand(0x80);OLED_WriteCommand(0xA8); //设置多路复用率OLED_WriteCommand(0x3F);OLED_WriteCommand(0xD3); //设置显示偏移OLED_WriteCommand(0x00);OLED_WriteCommand(0x40); //设置显示开始行OLED_WriteCommand(0xA1); //设置左右方向0xA1正常 0xA0左右反置OLED_WriteCommand(0xC8); //设置上下方向0xC8正常 0xC0上下反置OLED_WriteCommand(0xDA); //设置COM引脚硬件配置OLED_WriteCommand(0x12);OLED_WriteCommand(0x81); //设置对比度控制OLED_WriteCommand(0xCF);OLED_WriteCommand(0xD9); //设置预充电周期OLED_WriteCommand(0xF1);OLED_WriteCommand(0xDB); //设置VCOMH取消选择级别OLED_WriteCommand(0x30);OLED_WriteCommand(0xA4); //设置整个显示打开/关闭OLED_WriteCommand(0xA6); //设置正常/倒转显示OLED_WriteCommand(0x8D); //设置充电泵OLED_WriteCommand(0x14);OLED_WriteCommand(0xAF); //开启显示OLED_Clear(); //OLED清屏 } 3.主函数引用头文件 3.1 oled.h 提供了什么函数 .\Objects\text1.axf: Error: L6200E: Symbol OLED_F8x16 multiply defined (by oled.o and main.o). 修改.c #include OLED.h #include OLED_Font.h/*引脚配置*/ #define OLED_W_SCL(x) GPIO_WriteBit(GPIOB, GPIO_Pin_8, (BitAction)(x)) #define OLED_W_SDA(x) GPIO_WriteBit(GPIOB, GPIO_Pin_9, (BitAction)(x))/*引脚初始化*/ void OLED_I2C_Init(void) {GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);GPIO_InitStructure.GPIO_Mode GPIO_Mode_Out_OD;GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Pin GPIO_Pin_8;GPIO_Init(GPIOB, GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin GPIO_Pin_9;GPIO_Init(GPIOB, GPIO_InitStructure);OLED_W_SCL(1);OLED_W_SDA(1); }/*** brief I2C开始* param 无* retval 无*/ void OLED_I2C_Start(void) {OLED_W_SDA(1);OLED_W_SCL(1);OLED_W_SDA(0);OLED_W_SCL(0); }/*** brief I2C停止* param 无* retval 无*/ void OLED_I2C_Stop(void) {OLED_W_SDA(0);OLED_W_SCL(1);OLED_W_SDA(1); }/*** brief I2C发送一个字节* param Byte 要发送的一个字节* retval 无*/ void OLED_I2C_SendByte(uint8_t Byte) {uint8_t i;for (i 0; i 8; i){OLED_W_SDA(Byte (0x80 i));OLED_W_SCL(1);OLED_W_SCL(0);}OLED_W_SCL(1); //额外的一个时钟不处理应答信号OLED_W_SCL(0); }/*** brief OLED写命令* param Command 要写入的命令* retval 无*/ void OLED_WriteCommand(uint8_t Command) {OLED_I2C_Start();OLED_I2C_SendByte(0x78); //从机地址OLED_I2C_SendByte(0x00); //写命令OLED_I2C_SendByte(Command); OLED_I2C_Stop(); }/*** brief OLED写数据* param Data 要写入的数据* retval 无*/ void OLED_WriteData(uint8_t Data) {OLED_I2C_Start();OLED_I2C_SendByte(0x78); //从机地址OLED_I2C_SendByte(0x40); //写数据OLED_I2C_SendByte(Data);OLED_I2C_Stop(); }/*** brief OLED设置光标位置* param Y 以左上角为原点向下方向的坐标范围0~7* param X 以左上角为原点向右方向的坐标范围0~127* retval 无*/ void OLED_SetCursor(uint8_t Y, uint8_t X) {OLED_WriteCommand(0xB0 | Y); //设置Y位置OLED_WriteCommand(0x10 | ((X 0xF0) 4)); //设置X位置高4位OLED_WriteCommand(0x00 | (X 0x0F)); //设置X位置低4位 }/*** brief OLED清屏* param 无* retval 无*/ void OLED_Clear(void) { uint8_t i, j;for (j 0; j 8; j){OLED_SetCursor(j, 0);for(i 0; i 128; i){OLED_WriteData(0x00);}} }/*** brief OLED显示一个字符* param Line 行位置范围1~4* param Column 列位置范围1~16* param Char 要显示的一个字符范围ASCII可见字符* retval 无*/ void OLED_ShowChar(uint8_t Line, uint8_t Column, char Char) { uint8_t i;OLED_SetCursor((Line - 1) * 2, (Column - 1) * 8); //设置光标位置在上半部分for (i 0; i 8; i){OLED_WriteData(OLED_F8x16[Char - ][i]); //显示上半部分内容}OLED_SetCursor((Line - 1) * 2 1, (Column - 1) * 8); //设置光标位置在下半部分for (i 0; i 8; i){OLED_WriteData(OLED_F8x16[Char - ][i 8]); //显示下半部分内容} }/*** brief OLED显示字符串* param Line 起始行位置范围1~4* param Column 起始列位置范围1~16* param String 要显示的字符串范围ASCII可见字符* retval 无*/ void OLED_ShowString(uint8_t Line, uint8_t Column, char *String) {uint8_t i;for (i 0; String[i] ! \0; i){OLED_ShowChar(Line, Column i, String[i]);} }/*** brief OLED次方函数* retval 返回值等于X的Y次方*/ uint32_t OLED_Pow(uint32_t X, uint32_t Y) {uint32_t Result 1;while (Y--){Result * X;}return Result; }/*** brief OLED显示数字十进制正数* param Line 起始行位置范围1~4* param Column 起始列位置范围1~16* param Number 要显示的数字范围0~4294967295* param Length 要显示数字的长度范围1~10* retval 无*/ void OLED_ShowNum(uint8_t Line, uint8_t Column, uint32_t Number, uint8_t Length) {uint8_t i;for (i 0; i Length; i) {OLED_ShowChar(Line, Column i, Number / OLED_Pow(10, Length - i - 1) % 10 0);} }/*** brief OLED显示数字十进制带符号数* param Line 起始行位置范围1~4* param Column 起始列位置范围1~16* param Number 要显示的数字范围-2147483648~2147483647* param Length 要显示数字的长度范围1~10* retval 无*/ void OLED_ShowSignedNum(uint8_t Line, uint8_t Column, int32_t Number, uint8_t Length) {uint8_t i;uint32_t Number1;if (Number 0){OLED_ShowChar(Line, Column, );Number1 Number;}else{OLED_ShowChar(Line, Column, -);Number1 -Number;}for (i 0; i Length; i) {OLED_ShowChar(Line, Column i 1, Number1 / OLED_Pow(10, Length - i - 1) % 10 0);} }/*** brief OLED显示数字十六进制正数* param Line 起始行位置范围1~4* param Column 起始列位置范围1~16* param Number 要显示的数字范围0~0xFFFFFFFF* param Length 要显示数字的长度范围1~8* retval 无*/ void OLED_ShowHexNum(uint8_t Line, uint8_t Column, uint32_t Number, uint8_t Length) {uint8_t i, SingleNumber;for (i 0; i Length; i) {SingleNumber Number / OLED_Pow(16, Length - i - 1) % 16;if (SingleNumber 10){OLED_ShowChar(Line, Column i, SingleNumber 0);}else{OLED_ShowChar(Line, Column i, SingleNumber - 10 A);}} }/*** brief OLED显示数字二进制正数* param Line 起始行位置范围1~4* param Column 起始列位置范围1~16* param Number 要显示的数字范围0~1111 1111 1111 1111* param Length 要显示数字的长度范围1~16* retval 无*/ void OLED_ShowBinNum(uint8_t Line, uint8_t Column, uint32_t Number, uint8_t Length) {uint8_t i;for (i 0; i Length; i) {OLED_ShowChar(Line, Column i, Number / OLED_Pow(2, Length - i - 1) % 2 0);} }/*** brief OLED初始化* param 无* retval 无*/ void OLED_Init(void) {uint32_t i, j;for (i 0; i 1000; i) //上电延时{for (j 0; j 1000; j);}OLED_I2C_Init(); //端口初始化OLED_WriteCommand(0xAE); //关闭显示OLED_WriteCommand(0xD5); //设置显示时钟分频比/振荡器频率OLED_WriteCommand(0x80);OLED_WriteCommand(0xA8); //设置多路复用率OLED_WriteCommand(0x3F);OLED_WriteCommand(0xD3); //设置显示偏移OLED_WriteCommand(0x00);OLED_WriteCommand(0x40); //设置显示开始行OLED_WriteCommand(0xA1); //设置左右方向0xA1正常 0xA0左右反置OLED_WriteCommand(0xC8); //设置上下方向0xC8正常 0xC0上下反置OLED_WriteCommand(0xDA); //设置COM引脚硬件配置OLED_WriteCommand(0x12);OLED_WriteCommand(0x81); //设置对比度控制OLED_WriteCommand(0xCF);OLED_WriteCommand(0xD9); //设置预充电周期OLED_WriteCommand(0xF1);OLED_WriteCommand(0xDB); //设置VCOMH取消选择级别OLED_WriteCommand(0x30);OLED_WriteCommand(0xA4); //设置整个显示打开/关闭OLED_WriteCommand(0xA6); //设置正常/倒转显示OLED_WriteCommand(0x8D); //设置充电泵OLED_WriteCommand(0x14);OLED_WriteCommand(0xAF); //开启显示OLED_Clear(); //OLED清屏 } 修改.h #ifndef __OLED_H #define __OLED_H#include stm32f10x.hvoid OLED_Init(void); void OLED_Clear(void); void OLED_ShowChar(uint8_t Line, uint8_t Column, char Char); void OLED_ShowString(uint8_t Line, uint8_t Column, char *String); void OLED_ShowNum(uint8_t Line, uint8_t Column, uint32_t Number, uint8_t Length); void OLED_ShowSignedNum(uint8_t Line, uint8_t Column, int32_t Number, uint8_t Length); void OLED_ShowHexNum(uint8_t Line, uint8_t Column, uint32_t Number, uint8_t Length); void OLED_ShowBinNum(uint8_t Line, uint8_t Column, uint32_t Number, uint8_t Length);#endif 4.介绍显示一个字符的函数 调用 main.c #include stm32f10x.h#include key.h#include OLED.hvoid led_init() {//LED 指示用GPIO_InitTypeDef GPIO_InitStruct; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);GPIO_InitStruct.GPIO_Pin GPIO_Pin_1;GPIO_InitStruct.GPIO_Mode GPIO_Mode_Out_PP;GPIO_InitStruct.GPIO_Speed GPIO_Speed_50MHz;GPIO_Init(GPIOA, GPIO_InitStruct);}int main() {u8 temp;led_init();key_init();OLED_Init(); // GPIO_InitTypeDef GPIO_InitStruct; // RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOA, ENABLE); // //RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); // GPIO_InitStruct.GPIO_Pin GPIO_Pin_5; // GPIO_InitStruct.GPIO_Mode GPIO_Mode_IPU; // GPIO_InitStruct.GPIO_Speed GPIO_Speed_50MHz; // GPIO_Init(GPIOC, GPIO_InitStruct); // LED 指示用// // GPIO_InitStruct.GPIO_Pin GPIO_Pin_1; // GPIO_InitStruct.GPIO_Mode GPIO_Mode_Out_PP; // GPIO_InitStruct.GPIO_Speed GPIO_Speed_50MHz; // GPIO_Init(GPIOA, GPIO_InitStruct); // OLED_Clear();OLED_ShowChar(4, 4, 0);OLED_ShowString(1, 1, nihaoma?);OLED_ShowNum(2, 1, 54321, 5);while(1){// tempGPIO_ReadInputDataBit( GPIOC, GPIO_Pin_5); // // if(temp0) { // // //led 亮 // GPIO_SetBits( GPIOA, GPIO_Pin_1); // // } // else{ // // //led 灭 // // // }tempKEY_Scan(1);if(temp0){GPIO_SetBits( GPIOA, GPIO_Pin_1);}} }//#include stm32f10x.h//#define BIT(n) (1n)//int main() //{ // //PC1 配置为推挽输出 // *((unsigned int*)(0x400210000x18)) | 0X00000010; // RCC-APB2ENR | 0X00000010; // RCC-APB2ENR | 0X00000020; // GPIOC-CRL 1111 1111 1111 1111 1111 1111 1111 0000 1111 0X FFFF FF0F // GPIOC-CRL 0XFFFFFF0F;GPIOC-CRL 0000 0000 0000 0000 0000 0000 0011 0000 0X 0000 0030 // GPIOC-CRL | 0X00000030; // // GPIOD-CRL 0XFF0FFFFF; // GPIOD-CRL | 0X00300000; // // // // while(1) // { // GPIOC-ODR | 0X00000002; //给高电平的GPIOC-ODR ~ 0X00000002; //给低电平的GPIOC-ODR 0XFFFFFFFD; //给低电平的 // // GPIOC-ODR | 11; //给高电平的 PC1 GPIOC-ODR ~(11); //给高电平的 PC1 // // GPIOC-ODR | BIT(1); //给高电平的 PC1 // GPIOC-ODR ~BIT(1); //给高电平的 PC1 // // GPIOD-ODR | BIT(5); //给高电平的 PD1 // GPIOD-ODR ~BIT(5); //给高电平的 PD1 // // // } // //} 5. 显示十进制函数的讲解 三、使用注意事项 3.1 配置符合自己的引脚 3.2 花屏 总结 介绍了 OLED的移植和使用
http://www.hkea.cn/news/14321231/

相关文章:

  • 网站建设公司汕头的江苏电力建设网站
  • 京东网站建设有哪些优点网站使用mip后效果怎么样
  • 深圳网站seo地址买了个域名怎么做网站
  • 建网站怎样才能通过备案apache网站部署
  • 网站域名后缀那个好seo关键词智能排名
  • 东莞网站设计找哪里wordpress 建站教程
  • 竹子建站邀请码优质的成都网站建设推广
  • 有了网站源代码机场建设集团网站
  • 做直播哪个网站好wordpress所有人提问
  • 重庆公司专业建站学广告专业我后悔了
  • 烟台网站的优化如何卸载安装wordpress
  • 找人做销售网站手机网站微信登录
  • 专业做网站登录php网站开发需求分析
  • 网站设计方式网站流量查询 优帮云
  • 网站建设属于高新技术收入吗wordpress 图片暗箱
  • 百度推广做网站网站开发经验总结与教训
  • 电影网站虚拟主机和vps网站免费注册会员怎么做
  • 杭州余杭网站制作wordpress餐饮主题
  • 做签证的网站微信公众号建立网站
  • 杭州强龙网站建设电话qq小程序怎么开发
  • 东莞石排网站建设wordpress 商品 插件
  • 做网站要学什么知识北京西站到北京南站
  • 大型o2o网站开发时间深圳网站制作要多少钱
  • 爱网站查询丽水建设局网站文件
  • 廊坊网站建设搭建上海做网站品牌公司有哪些
  • 网站建设合同的注意点医院网站建设的计划
  • 如何修改网站后台怎样做电商卖货
  • 网站服务器权限小网站设计
  • 毕业设计做网站的步骤学校网站建设考评办法
  • 在线报名网站建设上海网站建设上海迈歌