来月经喝什么汤好| 梦见怀孕是什么意思| 湉字五行属什么| 梦到猪肉是什么预兆| 橙花是什么花| 恶病质是什么意思| gmp什么意思| 面瘫是什么原因造成的| 骨髓抑制什么意思| 海胆什么味道| 天空什么的什么的| 女性排卵期是什么时候| 浑身麻是什么原因| 水便分离的原因是什么| 干眼症吃什么药好| 秦始皇叫什么名字| 梦见娃娃是什么意思| 老年人脚肿什么原因| 体脂率是什么意思| 玟是什么意思| 阴道是什么味道| 为什么要军训| 甲状旁腺是什么意思| 7月28号是什么星座| 脸过敏要注意什么| 滔滔不绝的绝是什么意思| 蜈蚣进家有什么预兆| 摇呼啦圈有什么好处| 贵州有什么美食| 安欣是什么电视剧| 为什么我的| 维生素d低是什么原因| s和m分别是什么意思| 桑叶有什么功效| 做梦捡到钱是什么意思| 感冒了吃什么水果| 胚胎是什么意思| 细胞是由什么构成的| catl是什么意思| 隐形眼镜什么牌子好| 梦见自己哭了是什么意思| 乳房结节挂什么科室| 情花是什么花| 山海经是什么| 晴雨伞是什么意思| 八仙过海是什么意思| 涟漪什么意思| 严重失眠挂什么科| 尿酸高是什么| 菠菜不能和什么食物一起吃| 风雨交加是什么生肖| 棺材用什么木材做最好| 脾虚湿热吃什么药| camel是什么意思| 痈疽是什么意思| 医生助理是做什么的| 婴儿什么时候开始认人| 鼻炎挂什么科| 肠炎吃什么食物调理| 味淋是什么东西| 感冒低烧吃什么药| 蝉鸣是什么季节| 虾不能跟什么一起吃| 补料是什么意思| 他说风雨中这点痛算什么| uv是什么材质| 婴儿足底血筛查什么| 利益最大化是什么意思| 什么原因引起静脉曲张| 亚硝酸钠是什么东西| 怀孕前三个月要注意什么| 手脱皮用什么药膏| 吃阿胶对女人有什么好处| 蒲公英的花是什么颜色| 糖尿病能吃什么主食| 章鱼的血液是什么颜色| 去皱纹用什么方法最好和最快| 有是什么意思| 天雨粟鬼夜哭什么意思| 震颤是什么症状| 孕妇的尿液有什么用途| 股骨径是指胎儿什么| 什么的樱桃| 子宫憩室是什么| 75属什么生肖| 95年是什么命| 孕检都检查什么项目| 三焦不通吃什么中成药| 品牌是什么意思| 男士背心什么牌子好| 三个火字读什么| 吃茄子有什么好处| 酸菜鱼一般加什么配菜| 女性口苦是什么原因引起的| 这什么情况| 蜜蜂蛰了用什么药| 占有欲强是什么意思| 我国计划生育什么时候开始| b型钠尿肽测定是什么检查| 什么体质的人戴银变黑| 低烧什么症状| eur是什么意思| 豌豆的什么不能吃| 缺磷吃什么食物好| 痛经是什么意思| 1950年属什么生肖| 脚气是什么菌感染| 13颗珠子的手串什么意思| 臭鱼烂虾什么意思| 腿酸是什么原因| 自言自语是什么原因导致| 肝肾阴虚吃什么中成药| 反应性增生是什么意思| 益生菌什么时间段吃效果好| 血压低容易得什么病| 儿女情长英雄气短是什么意思| 海马萎缩是什么情况| 小腹疼是什么原因| 转铁蛋白阳性什么意思| chb是什么意思| 待客是什么意思| 夏天喝什么汤| 平平仄仄是什么意思| 鼻头出汗是什么原因| 肚脐左侧按压疼是什么原因| 和田玉对身体有什么好处| 托腮是什么意思| 手掉皮是缺什么维生素| kg什么意思| 白血球低吃什么补得快| 生性是什么意思| 类风湿因子高吃什么药| 穿斐乐的都是什么人| 属龙和什么属相相冲| 乾隆叫什么| 7月30日什么星座| 查钙含量做什么检查| flair呈高信号是什么意思| 邓紫棋为什么叫gem| ria是什么意思| 大便真菌阳性说明什么| 孩子睡觉磨牙是什么原因| 宝宝不长肉是什么原因| opec是什么意思| 房客是什么意思| roi是什么| 刀口力念什么| 福禄寿什么意思| 废品收入计入什么科目| 腰椎间盘突出挂什么科室| 531是什么意思| 梦遗是啥意思是什么| 阴道恶臭是什么原因| 有什么黄色网站| 什么人容易得小脑萎缩| 捉摸不透是什么意思| 伛偻是什么意思| 黄油是什么油| fe是什么意思| 吃什么可以自然掉体毛| 低血糖的症状是什么| 燕窝是什么| 什么是手淫| 心脏右束支传导阻滞是什么意思| 吃饭的时候恶心想吐是什么原因| 血压低吃什么能补上来| 须菩提是什么意思| 不亚于是什么意思| 舌头伸不出来是什么原因| 打压什么意思| 女人脾胃虚弱吃什么好| 外婆家是什么菜系| 太阳光是什么颜色| 十二指肠溃疡吃什么中成药| 怀孕梦见蛇是什么意思| 桑树叶有什么功效| 运动后恶心想吐是什么原因| 咖喱块什么牌子的好| 七夕节是什么节日| 什么病| 食道炎症吃什么药最好| 为什么蚊子要吸血| 腿肿是什么原因| 什么大叫| 淋巴用什么药可以消除| 本科毕业证是什么颜色| 甲钴胺不能和什么药一起服用| 灵魂是什么意思| 喉咙发炎吃什么食物| 什么是多动症| 狭鳕鱼是什么鱼| 电轴右偏什么意思| 脑血管堵塞吃什么药最好| 人流是什么意思| 回本是什么意思| 中央组织部部长什么级别| 人乳头瘤病毒16型阳性是什么意思| 群聊名字什么最好听| 做提肛运动有什么好处| 睡不着什么原因| 小孩头疼是什么原因| 经常喝饮料有什么危害| 什么孕妇容易怀脑瘫儿| 静若幽兰什么意思| 88年属什么的生肖| 梦见自己和别人吵架是什么意思| aemape是什么牌子| 乳房是什么意思| 孕期不能吃什么| 庭字五行属什么| 7月初七是什么日子| 做梦梦到对象出轨是什么意思| 暴发火眼吃什么药| 虾米是什么意思| 王安石字什么号什么| 怀孕排卵试纸显示什么| 什么是重力| 斑马吃什么| 吃什么减肚子上的赘肉最快| 吃了螃蟹后不能吃什么| 牙发黑是什么原因怎么办| 外耳道疖肿用什么药| 子宫肌瘤有什么症状表现| 八十岁是什么之年| 脚趾抽筋是什么原因| 包皮手术后吃什么伤口愈合快| 聊是什么意思| 皮赘用什么药膏去除| 蓓蕾是什么意思| 调制乳粉是什么意思| 囊肿里面是什么东西| 康复治疗是做什么的| 24号来月经什么时候是排卵期| 梦见卖东西是什么意思| a型血rh阳性是什么意思| 血液生化检查能看出什么病| 脾虚湿气重吃什么药| 孕妇吃蓝莓对胎儿有什么好处| 维生素b1有什么作用| cma检测是什么| 手被辣椒辣了用什么方法解辣| 头晕用什么药好| 腿麻是什么原因引起的| 哦什么意思| 贼眉鼠眼是什么生肖| 为什么嘴巴老是干| 相手蟹吃什么| 什么叫色弱| 脸颊为什么会凹陷| 唯我独尊指什么生肖| 菊粉是什么| 念珠菌是什么病| 视力突然模糊是什么原因引起的| 外阴是指什么部位| 雪梨百合炖冰糖有什么功效| 特应性皮炎是什么意思| 总打哈欠是什么原因| 喉咙老是有白痰是什么原因| 胃痉挛是什么| 淋是什么意思| pcr医学上是什么意思| 男人吃什么药时间长| 梦见大蛇是什么意思| 85年的属什么| 百度
这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 ? 论坛首页 ? DIY与开源设计 ? 电子DIY ? 功率监测与控制系统DIY-03 实现OLED屏幕显示信息

共2条 1/1 1 跳转至

功率监测与控制系统DIY-03 实现OLED屏幕显示信息

助工
2025-08-04 11:48:36     打赏
百度 第一家Keepland即将于3月21日正式对外营业。


1. 任务目标

2. OLED 介绍

3. STM32 I2C配置

    3.1 选用 I2C1

    3.2   STM32CubeMX 工程配置

    3.3 PB8 配置为SCL

    3.4 PB9 配置为 SDA

4. PCtoLCD 汉字取模软件

5. 流程图

6. 关键代码

    6.1 主函数

    6.2 I2C 初始化

    6.3 OLED 接口函数

        6.3.1   Oled_Write_Data() 实现

        6.3.2   Oled_Write_Cmd() 实现

    6.4 OLED   API

        6.4.1   OLED_Init() 初始化

        6.4.2   OLED_Fill() 刷屏

        6.4.3   OLED_ShowStr()

        6.4.4   OLED_ShowCN()

7. 实操演示


1. 任务目标

 

实现OLED屏幕显示信息

 

2. OLED 介绍

 

此款 OLED Seeed Studio 出品的 Grove 接口的 0.96英寸 OLED 显示屏,驱动IC SSD1315.

OLED Display 0.96''  SSSD1315 V1.1 分辨率 128x64

供电为 3.3V 或者 5V,通信接口为 I2C


image.png


考虑到电流表 INA219 也是 I2C 通信接口,在STM32开发板上使用同一组I2C硬件,OLEDINA219配置不同的器件地址,就可以一个I2C控制器驱动两个I2C器件。

 

此开发板有 Arduino 接口,恰好把 Seeed Base Shield 扩展板接上。


image.png



 

3. STM32 I2C配置

 

3.1 选用 I2C1

信号

STM32F411 管脚

丝印

SCL

PB8

CN10.3 或者 Arduino.D15

SDA

PB9

CN10.5 或者 Arduino.D14


image.png



Nucleo-F411RE 管脚分配

参考两个文档

?        UM1724.pdf》,查看其中的 6.12 ST morpho connector 管脚和 6.10 Extension connections Figure19. NUCLEO-F411RE

?        mb1136-default-c04_schematic.pdfPage5Extension connectors

 

3.2 STM32CubeMX 工程配置

 

?        Connecity 中选择 I2C1

?        在右侧使能 i2c

?        配置 I2C 参数为 Standard Mode, 速率 100KHz,地址为7比特,主要的从器件地址为 0x78


image.png


 

3.3 PB8 配置为SCL


image.png



 

3.4 PB9 配置为 SDA


image.png



 

4. PCtoLCD 汉字取模软件

此次任务在OLED上展示中文字符如下:

 

电子产品世界

得捷

你好

功率检测

系统控制

电压电流

 

所有取模的文字:

电子产品世界得捷你好功率监测系统控制电压流

 

PCtoLCD2002 软件配置如下:

?        点阵格式:阴码

?        取模方式:列行式

?        取模走向:逆向(低位在前)

?        自定义格式:C51格式,且行前缀、行后缀都为空。


image.png

image.png

 

在输入框输入文字后点击生成字模,拷贝到工程中即可。


5. 流程图


image.png

6. 关键代码

 

6.1 主函数

 

?        HAL库初始化

?        时钟初始化

?        硬件初始化,如GPIOTIMUARTI2C

?        OLED初始化,清屏

?        显示界面,界面切换,死循环



int main(void)
{
    /* USER CODE BEGIN 1 */

    /* USER CODE END 1 */

    /* MCU Configuration--------------------------------------------------------*/

    /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
    HAL_Init();

    /* USER CODE BEGIN Init */

    /* USER CODE END Init */

    /* Configure the system clock */
    SystemClock_Config();

    /* USER CODE BEGIN SysInit */

    /* USER CODE END SysInit */

    /* Initialize all configured peripherals */
    MX_GPIO_Init();
    MX_USART2_UART_Init();
    MX_TIM1_Init();
    MX_I2C1_Init();

    /* USER CODE BEGIN 2 */

    printf("\r\n");
    printf("\t\t EEPW_2025_DIY1_Task2_OLED \r\n");
    printf("\t\t Build: %s %s \r\n", __DATE__, __TIME__);
    printf("\r\n");

    HAL_TIM_Base_Start_IT(&htim1);

    OLED_Init();

    /* USER CODE END 2 */

    /* Infinite loop */
    /* USER CODE BEGIN WHILE */
    while (1) {
        screen_00_welcome();
        HAL_Delay(1000 * 3);
        screen_01_welcome();
        HAL_Delay(1000 * 3);
        screen_02_diy_power_monitor();
        HAL_Delay(1000 * 5);
        /* USER CODE END WHILE */

        /* USER CODE BEGIN 3 */
        // HAL_Delay(2000);
    }
    /* USER CODE END 3 */
}


6.2 I2C 初始化

 

这里的初始化代码是 STM32CubeMX 生成的,初始化参数来自界面配置的参数。

 

?        函数 MX_I2C1_Init() 先保存 I2C 参数到 hi2c1 结构体上,调用 HAL_I2C_Init() 初始化硬件

?        函数 HAL_I2C_MspInit() HAL_I2C_Init() 函数调用,初始化 I2C1 管脚,配置为复用功能


void MX_I2C1_Init(void)
{

  /* USER CODE BEGIN I2C1_Init 0 */

  /* USER CODE END I2C1_Init 0 */

  /* USER CODE BEGIN I2C1_Init 1 */

  /* USER CODE END I2C1_Init 1 */
  hi2c1.Instance = I2C1;
  hi2c1.Init.ClockSpeed = 100000;
  hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_2;
  hi2c1.Init.OwnAddress1 = 240;
  hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
  hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
  hi2c1.Init.OwnAddress2 = 0;
  hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
  hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
  if (HAL_I2C_Init(&hi2c1) != HAL_OK)
  {
    Error_Handler();
  }
  /* USER CODE BEGIN I2C1_Init 2 */

  /* USER CODE END I2C1_Init 2 */

}

void HAL_I2C_MspInit(I2C_HandleTypeDef* i2cHandle)
{

  GPIO_InitTypeDef GPIO_InitStruct = {0};
  if(i2cHandle->Instance==I2C1)
  {
  /* USER CODE BEGIN I2C1_MspInit 0 */

  /* USER CODE END I2C1_MspInit 0 */

    __HAL_RCC_GPIOB_CLK_ENABLE();
    /**I2C1 GPIO Configuration
    PB8     ------> I2C1_SCL
    PB9     ------> I2C1_SDA
    */
    GPIO_InitStruct.Pin = OLED_SCL_Pin|OLED_SDA_Pin;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
    GPIO_InitStruct.Alternate = GPIO_AF4_I2C1;
    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

    /* I2C1 clock enable */
    __HAL_RCC_I2C1_CLK_ENABLE();
  /* USER CODE BEGIN I2C1_MspInit 1 */

  /* USER CODE END I2C1_MspInit 1 */
  }
}


6.3 OLED 接口函数

 

OLED 接口层,主要实现两个函数,其他的 OLED API都是依赖这两个函数

?        Oled_Write_Data() 发送数据到 OLED IC

?        Oled_Write_Cmd() 发送命令到 OLED IC


6.3.1 Oled_Write_Data() 实现

 

这里直接调用 HAL API OLED 发送数据


void Oled_Write_Data(uint8_t data)
{
    HAL_I2C_Mem_Write(&HI2CX, OLED_ID, OLED_WR_DATA, I2C_MEMADD_SIZE_8BIT, &data, 1, 0x100);
}


6.3.2 Oled_Write_Cmd() 实现

 

这里直接调用 HAL API OLED 发送命令


void Oled_Write_Cmd(uint8_t cmd)
{
    HAL_I2C_Mem_Write(&HI2CX, OLED_ID, OLED_WR_CMD, I2C_MEMADD_SIZE_8BIT, &cmd, 1, 0x100);
}


6.4 OLED API

 

这里仅列举几个常用的 API 实现。

 

6.4.1 OLED_Init() 初始化

 

OLED 上电后需要发送命令配置参数


void OLED_Init(void)
{
    /* 设置显示打开/关闭
     * AE--->显示打开
     * AF--->显示关闭(休眠模式)
     */
    Oled_Write_Cmd(0xAE);

    /* ================== 基本命令表 ===================*/
    /* 设置对比度
     * 0~255:数值越大 亮度越亮
     */
    Oled_Write_Cmd(0x81);
    Oled_Write_Cmd(0xFF);

    /* 使能全屏显示
     * A4--->恢复到RAM内容显示
     * A5--->忽略RAM内容显示
     */
    Oled_Write_Cmd(0xA4);

    /* 设置显示模式
     * A6--->正常显示:0灭1亮
     * A7--->逆显示:1灭0亮
     */
    Oled_Write_Cmd(0xA6);

    /* ================== 滚动命令表 ===================*/
    /* 滚动使能/失能
     * 2E--->失能
     * 2F--->使能
     */
    Oled_Write_Cmd(0x2E);

    /* 七字节命令: 连续水平滚动设置 */

    /* 左/右水平滚动设置
     * 26--->右水平滚动
     * 27--->左水平滚动
     */
    Oled_Write_Cmd(0x26);
    /* 虚拟字节 */
    Oled_Write_Cmd(0x00);
    /* 设置滚动起始页地址 */
    Oled_Write_Cmd(0x00);
    /* 设置滚动间隔 */
    Oled_Write_Cmd(0x03);
    /* 设置滚动结束地址 */
    Oled_Write_Cmd(0x07);
    /* 虚拟字节 */
    Oled_Write_Cmd(0x00);
    Oled_Write_Cmd(0xFF);

    /* =============== 寻址设置命令表 ==================*/

    /* 双字节命令:寄存器寻址模式 */
    Oled_Write_Cmd(0x20);

    /* 10:页寻址模式
     * 01:垂直寻址模式
     * 00:水平寻址模式
     */
    Oled_Write_Cmd(0x10);
    /* 单字节命令:设置页寻址的起始页地址 */
    Oled_Write_Cmd(0xB0);
    /* 单字节命令:设置页寻址的起始列地址低位 */
    Oled_Write_Cmd(0x00);
    /* 单字节命令:设置页寻址的起始列地址高位 */
    Oled_Write_Cmd(0x10);

    /*=============== 硬件配置命令表 ==================*/

    /* 设置显示开始线
     * 0x40~0x7F对应0~63
     */
    Oled_Write_Cmd(0x40);

    /* 设置列重映射
     * A0:addressX--->segX
     * A1:addressX--->seg(127-X)
     */
    Oled_Write_Cmd(0xA1);

    /* 设置多路复用比 */
    Oled_Write_Cmd(0xA8);
    Oled_Write_Cmd(0x3F);

    /* 设置COM输出扫描方向
     * C0:COM0--->COM63(从上往下扫描)
     * C8:COM63--->COM0(从下往上扫描)
     */
    Oled_Write_Cmd(0xC8);

    /* 双字节命令:设置COM显示偏移量 */
    Oled_Write_Cmd(0xD3);
    Oled_Write_Cmd(0x00); /* COM不偏移 */

    /* 双字节命令:配置COM重映射 */
    Oled_Write_Cmd(0xDA);
    Oled_Write_Cmd(0x12);

    /* 双字节命令:设置预充期 */
    Oled_Write_Cmd(0xD9);
    Oled_Write_Cmd(0x22); /* 阶段一2个无效DCLK时钟/阶段二2个无效DCLK时钟 */

    /* 设置VCOMH取消选择电平
     * 00:0.65xVcc
     * 20:0.77xVcc
     * 30:0.83xVcc
     */
    Oled_Write_Cmd(0xDB);
    Oled_Write_Cmd(0x20);

    /* 双字节命令:设置电荷泵 */
    Oled_Write_Cmd(0x8d);
    Oled_Write_Cmd(0x14);

    Oled_Write_Cmd(0xAF);
}


6.4.2 OLED_Fill() 刷屏

 

m 表示page 地址,数值0~7n 表示列地址,数值 0~127

填充的数据 fill_data,设置为0,则屏幕为黑色;设置为1,则屏幕白色;设置为其他值,屏幕显示条纹。



void OLED_Fill(uint8_t fill_data) // 全屏填充
{
    unsigned char m, n;
    for (m = 0; m < 8; m++) {
        Oled_Write_Cmd(0xb0 + m); // page0-page1
        Oled_Write_Cmd(0x00);     // low column start address
        Oled_Write_Cmd(0x10);     // high column start address
        for (n = 0; n < 128; n++) {
            Oled_Write_Data(fill_data);
        }
    }
}


6.4.3 OLED_ShowStr()

 

这里支持两种字体大小,分别是 6x8 8x16 大小。


/**
 * @brief 显示 ASCII 字符,有 6x8 和 8x16 字体大小可以选择
 *
 * @param x 起始点坐标 x [0, 127]
 * @param y 起始点坐标 y [0, 7]
 * @param ch 要显示的字符串
 * @param textsize 1 表示字体大小 6x8; 2 表示字体大小 8x16
 */
void OLED_ShowStr(uint16_t x, uint16_t y, uint8_t ch[], ascii_font_e font)
{
    uint8_t c = 0, i = 0, j = 0;
    switch (font) {
        case ASCII_FONT_6X8: {
            while (ch[j] != '\0') {
                c = ch[j] - 32;
                if (x > 126) {
                    x = 0;
                    y++;
                }
                OLED_SetPos(x, y);
                for (i = 0; i < 6; i++)
                    Oled_Write_Data(FONT_ASCII_6x8[c][i]);
                x += 6;
                j++;
            }
            break;
        }

        case ASCII_FONT_8X16: {
            while (ch[j] != '\0') {
                c = ch[j] - 32;
                if (x > 120) {
                    x = 0;
                    y++;
                }
                OLED_SetPos(x, y);
                for (i = 0; i < 8; i++)
                    Oled_Write_Data(FONT_ASCII_8x16[c * 16 + i]);
                OLED_SetPos(x, y + 1);
                for (i = 0; i < 8; i++)
                    Oled_Write_Data(FONT_ASCII_8x16[c * 16 + i + 8]);
                x += 8;
                j++;
            }
            break;
        }

        default:
            break;
    }
}


6.4.4 OLED_ShowCN()

 

这里只支持一种中文字体大小,16x16


/**
 * @brief 显示 oled_codetab.h 中的汉字,16x16 点阵
 *
 * @param x 起始坐标 x [0, 127]
 * @param y 起始坐标 y [0, 7]
 * @param n 汉字在 16x16 点阵中的索引,下标从0开始
 */
void OLED_ShowCN(uint16_t x, uint16_t y, uint16_t index)
{
    unsigned char wm = 0;
    unsigned int adder = 32 * index;

    OLED_SetPos(x, y);
    for (wm = 0; wm < 16; wm++) {
        Oled_Write_Data(FONT_CN_16x16[adder]);
        adder += 1;
    }
    OLED_SetPos(x, y + 1);
    for (wm = 0; wm < 16; wm++) {
        Oled_Write_Data(FONT_CN_16x16[adder]);
        adder += 1;
    }
}


7. 实操演示

 

显示中文欢迎界面


image.png

 

显示英文欢迎界面


image.png

显示功率检测界面,其中的电压、电流和功率数值是预设值,并非实际测量的。


image.png


VID_20250614_161146 00_00_00-00_00_30.gif





关键词: OLED    

专家
2025-08-04 08:46:03     打赏
2楼

谢谢分享


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]
肌酸激酶偏高说明什么 阳历10月是什么星座 属鸡的是什么星座 高密度脂蛋白偏高是什么原因 梦见头上长虱子是什么意思
夏占生女是什么意思 鱼精是什么 血脂厚有什么症状 山魈是什么 amh是什么
现在有什么好的创业项目 排毒吃什么最好能排脸上毒 父母都是o型血孩子是什么血型 美女是什么生肖 众里寻他千百度是什么意思
病毒性感冒吃什么药效果好 指甲薄软是什么原因 隽读什么 樟脑丸是干什么的 我用什么留住你
喉咙发炎不能吃什么食物hcv8jop2ns9r.cn 咖喱块什么牌子的好hcv8jop9ns1r.cn 失眠什么意思hcv9jop2ns2r.cn 苦瓜为什么是苦的hcv9jop5ns7r.cn 腰椎间盘突出什么症状hcv7jop4ns7r.cn
孩子张嘴睡觉是什么原因hcv8jop3ns1r.cn 喝鲜牛奶有什么好处和坏处hcv8jop0ns3r.cn 橙色加绿色是什么颜色520myf.com 女人眉毛稀少代表什么hcv8jop7ns1r.cn 胃气胃胀吃什么药最好hcv8jop6ns4r.cn
甲沟炎涂抹什么药膏最有效hcv7jop7ns4r.cn 狗狗感冒了是什么症状helloaicloud.com mers是什么病毒jiuxinfghf.com 想是什么意思xianpinbao.com design是什么牌子cl108k.com
嘴唇变厚是什么原因hcv7jop6ns5r.cn 男命正官代表什么hcv8jop6ns1r.cn b细胞淋巴肿瘤是一种什么病0297y7.com 惴惴不安什么意思xjhesheng.com 苋菜什么人不能吃mmeoe.com
百度